diff --git a/dist/index.js.map b/dist/index.js.map index 5e76a1dd..cfc355cf 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1,6 +1,6 @@ { "version": 3, - "sources": ["../tools/cjs-shim.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/utils.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/command.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/file-command.ts", "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/src/proxy.ts", "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js", "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/errors.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/timers.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/basename.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/multipart.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/Decoder.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/urlencoded.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/main.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/global.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/webidl.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/dataURL.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/file.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/formdata.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/body.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/request.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/dispatcher.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/dispatcher-base.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/connect.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/src/llhttp/utils.ts", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/src/llhttp/constants.ts", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/client.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/node/fixed-queue.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/pool-stats.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/pool-base.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/pool.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/balanced-pool.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/agent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/readable.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/abort-signal.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-request.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-stream.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-pipeline.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-upgrade.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-connect.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-errors.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-utils.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-client.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-pool.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/pluralizer.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-agent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/proxy-agent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/handler/RetryHandler.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/global.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/headers.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/response.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/request.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/encoding.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/filereader.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/cache.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/cachestorage.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/parse.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/events.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/connection.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/frame.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/receiver.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/websocket.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/index.js", "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/src/index.ts", "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/src/auth.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/oidc-utils.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/summary.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/path-utils.ts", "../node_modules/.pnpm/@actions+io@1.1.3/node_modules/@actions/io/src/io-util.ts", "../node_modules/.pnpm/@actions+io@1.1.3/node_modules/@actions/io/src/io.ts", "../node_modules/.pnpm/@actions+exec@1.1.1/node_modules/@actions/exec/src/toolrunner.ts", "../node_modules/.pnpm/@actions+exec@1.1.1/node_modules/@actions/exec/src/exec.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/platform.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/core.ts", "../node_modules/.pnpm/chalk@5.4.0/node_modules/chalk/source/vendor/ansi-styles/index.js", "../node_modules/.pnpm/chalk@5.4.0/node_modules/chalk/source/vendor/supports-color/index.js", "../node_modules/.pnpm/chalk@5.4.0/node_modules/chalk/source/utilities.js", "../node_modules/.pnpm/chalk@5.4.0/node_modules/chalk/source/index.js", "../node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js", "../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js", "../src/utils/logger.ts", "../node_modules/.pnpm/@sindresorhus+is@7.0.1/node_modules/@sindresorhus/is/distribution/index.js", "../src/utils/types.ts", "../src/util.ts", "../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs", "../node_modules/.pnpm/@sindresorhus+is@4.6.0/node_modules/@sindresorhus/is/dist/index.js", "../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/config/global.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/constants/error-messages.ts", "../node_modules/.pnpm/safe-json-stringify@1.2.0/node_modules/safe-json-stringify/index.js", "../node_modules/.pnpm/ncp@2.0.0/node_modules/ncp/lib/ncp.js", "../node_modules/.pnpm/concat-map@0.0.1/node_modules/concat-map/index.js", "../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js", "../node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js", "../node_modules/.pnpm/minimatch@3.1.2/node_modules/minimatch/minimatch.js", "../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js", "../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js", "../node_modules/.pnpm/path-is-absolute@1.0.1/node_modules/path-is-absolute/index.js", "../node_modules/.pnpm/glob@6.0.4/node_modules/glob/common.js", "../node_modules/.pnpm/glob@6.0.4/node_modules/glob/sync.js", "../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js", "../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js", "../node_modules/.pnpm/inflight@1.0.6/node_modules/inflight/inflight.js", "../node_modules/.pnpm/glob@6.0.4/node_modules/glob/glob.js", "../node_modules/.pnpm/rimraf@2.4.5/node_modules/rimraf/rimraf.js", "../node_modules/.pnpm/mkdirp@0.5.6/node_modules/mkdirp/index.js", "../node_modules/.pnpm/mv@2.1.1/node_modules/mv/index.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/base64.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/base64-vlq.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/util.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/array-set.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/mapping-list.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-map-generator.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/binary-search.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/quick-sort.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-map-consumer.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-node.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/source-map.js", "../node_modules/.pnpm/buffer-from@1.1.2/node_modules/buffer-from/index.js", "../node_modules/.pnpm/source-map-support@0.5.21/node_modules/source-map-support/source-map-support.js", "../node_modules/.pnpm/bunyan@1.8.15/node_modules/bunyan/lib/bunyan.js", "../node_modules/.pnpm/universalify@2.0.1/node_modules/universalify/index.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/fs/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/mkdirs/utils.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/mkdirs/make-dir.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/mkdirs/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/path-exists/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/util/utimes.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/util/stat.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/copy/copy.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/copy/copy-sync.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/copy/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/remove/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/empty/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/file.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/link.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/symlink-paths.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/symlink-type.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/symlink.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/index.js", "../node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/utils.js", "../node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/jsonfile.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/output-file/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/output-json.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/output-json-sync.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/move/move.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/move/move-sync.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/move/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/index.js", "../node_modules/.pnpm/nanoid@3.3.8/node_modules/nanoid/url-alphabet/index.cjs", "../node_modules/.pnpm/nanoid@3.3.8/node_modules/nanoid/index.cjs", "../node_modules/.pnpm/upath@2.0.1/node_modules/upath/build/code/upath.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/cmd-serializer.ts", "../node_modules/.pnpm/neotraverse@0.6.18/node_modules/neotraverse/dist/legacy/legacy.cjs", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/config-serializer.ts", "../node_modules/.pnpm/p-cancelable@2.1.1/node_modules/p-cancelable/index.js", "../node_modules/.pnpm/defer-to-connect@2.0.1/node_modules/defer-to-connect/dist/source/index.js", "../node_modules/.pnpm/@szmarczak+http-timer@4.0.6/node_modules/@szmarczak/http-timer/dist/source/index.js", "../node_modules/.pnpm/cacheable-lookup@5.0.4/node_modules/cacheable-lookup/source/index.js", "../node_modules/.pnpm/normalize-url@6.1.0/node_modules/normalize-url/index.js", "../node_modules/.pnpm/end-of-stream@1.4.4/node_modules/end-of-stream/index.js", "../node_modules/.pnpm/pump@3.0.2/node_modules/pump/index.js", "../node_modules/.pnpm/get-stream@5.2.0/node_modules/get-stream/buffer-stream.js", "../node_modules/.pnpm/get-stream@5.2.0/node_modules/get-stream/index.js", "../node_modules/.pnpm/http-cache-semantics@4.1.1/node_modules/http-cache-semantics/index.js", "../node_modules/.pnpm/lowercase-keys@2.0.0/node_modules/lowercase-keys/index.js", "../node_modules/.pnpm/responselike@2.0.1/node_modules/responselike/src/index.js", "../node_modules/.pnpm/mimic-response@1.0.1/node_modules/mimic-response/index.js", "../node_modules/.pnpm/clone-response@1.0.3/node_modules/clone-response/src/index.js", "../node_modules/.pnpm/json-buffer@3.0.1/node_modules/json-buffer/index.js", "../node_modules/.pnpm/keyv@4.5.4/node_modules/keyv/src/index.js", "../node_modules/.pnpm/cacheable-request@7.0.4/node_modules/cacheable-request/src/index.js", "../node_modules/.pnpm/mimic-response@3.1.0/node_modules/mimic-response/index.js", "../node_modules/.pnpm/decompress-response@6.0.0/node_modules/decompress-response/index.js", "../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/agent.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/incoming-message.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/url-to-options.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/proxy-events.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/errors.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/client-request.js", "../node_modules/.pnpm/resolve-alpn@1.2.1/node_modules/resolve-alpn/index.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/calculate-server-name.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/auto.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/index.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/is-form-data.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/get-body-size.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/proxy-events.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/unhandle.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/timed-out.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/url-to-options.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/options-to-url.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/weakable-map.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/get-buffer.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/dns-ip-version.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/is-response-ok.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/utils/deprecation-warning.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/normalize-arguments.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/calculate-retry-delay.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/index.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/types.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/parse-body.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/index.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/create-rejection.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/utils/deep-freeze.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/types.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/create.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/index.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/util.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/ZodError.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/locales/en.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/errors.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/parseUtil.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/typeAliases.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/errorUtil.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/types.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/external.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/index.js", "../node_modules/.pnpm/re2@1.21.4/node_modules/re2/re2.js", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/doc.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/acorn.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/angular.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/babel.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/estree.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/flow.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/glimmer.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/graphql.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/markdown.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/meriyah.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/postcss.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/typescript.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/yaml.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/index.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/doc.js", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/index.cjs", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/writer.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/util.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/reader.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/streams.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/enums.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/config/config.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/util.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/encoding/base64.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/encoding/armor.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hash/md5.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hash/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/_assert.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/_polyval.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/aes.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/cfb.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cmac.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/eax.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/ocb.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/gcm.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/index.js", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/biginteger.ts", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/random.js", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/prime.ts", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/pkcs1.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/rsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elgamal.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/tweetnacl/crypto.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/tweetnacl/nacl-fast.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/oid.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/packet.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/eddsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/aes_kw.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hkdf.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/ecdh_x.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/oid_curves.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/ecdsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/eddsa_legacy.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/pkcs5.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/ecdh.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/dsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/ecdh_symkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/kdf_params.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/ecdh_x_symkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/crypto.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/s2k/argon2.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/s2k/generic.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/s2k/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/fflate/esm/index.mjs", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/literal_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/keyid.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/one_pass_signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/packetlist.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/compressed_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/sym_encrypted_integrity_protected_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/aead_encrypted_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/public_key_encrypted_session_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/sym_encrypted_session_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/public_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/symmetrically_encrypted_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/public_subkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/user_attribute.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/secret_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/userid.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/secret_subkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/helper.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/user.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/subkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/public_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/private_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/factory.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/message.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/cleartext.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/openpgp.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/_assert.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/cryptoNode.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/_md.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha256.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/hmac.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/modular.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/curve.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/weierstrass.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/_shortw_utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/p256.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/_u64.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha512.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/p384.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/p521.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha3.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/edwards.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/montgomery.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/ed448.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/secp256k1.js", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/elliptic/brainpool/brainpoolP256r1.ts", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/elliptic/brainpool/brainpoolP384r1.ts", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/elliptic/brainpool/brainpoolP512r1.ts", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/noble_curves.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/des.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/cast5.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/twofish.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/blowfish.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/legacy_ciphers.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha1.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/ripemd160.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hash/noble_hashes.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/lib/blake2b.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/lib/argon2id.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/lib/setup.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/bitreader.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/stream.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/crc32.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/marker.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/padding.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/trust.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/util.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/sqlite-error.js", "../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js", "../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/wrappers.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/transaction.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/pragma.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/backup.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/serialize.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/function.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/aggregate.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/table.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/inspect.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/database.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/expose.cjs", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/regex.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/string.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/sanitize.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/err-serializer.ts", "../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js", "../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js", "../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js", "../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js", "../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js", "../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js", "../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js", "../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js", "../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js", "../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js", "../node_modules/.pnpm/json-stringify-pretty-compact@3.0.0/node_modules/json-stringify-pretty-compact/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/pretty-stdout.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/once.ts", "../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/assert-valid-pattern.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/brace-expressions.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/unescape.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/ast.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/escape.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/minimatch.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/string-match.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/remap.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/renovate-logger.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/types/errors/external-host-error.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/array.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/memory/index.ts", "../node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/immutable.js", "../node_modules/.pnpm/parse-link-header@2.0.0/node_modules/parse-link-header/index.js", "../node_modules/.pnpm/url-join@4.0.1/node_modules/url-join/lib/url-join.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/stats.ts", "../node_modules/.pnpm/minipass@7.1.2/node_modules/minipass/src/index.ts", "../node_modules/.pnpm/minipass-collect@2.0.1/node_modules/minipass-collect/index.js", "../node_modules/.pnpm/minipass@3.3.6/node_modules/minipass/index.js", "../node_modules/.pnpm/minipass-pipeline@1.2.4/node_modules/minipass-pipeline/index.js", "../node_modules/.pnpm/ssri@12.0.0/node_modules/ssri/lib/index.js", "../node_modules/.pnpm/imurmurhash@0.1.4/node_modules/imurmurhash/imurmurhash.js", "../node_modules/.pnpm/unique-slug@5.0.0/node_modules/unique-slug/lib/index.js", "../node_modules/.pnpm/unique-filename@4.0.0/node_modules/unique-filename/lib/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/package.json", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/util/hash-to-segments.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/path.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/common/get-options.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/constants.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/debug.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/re.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/parse-options.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/identifiers.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/classes/semver.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/parse.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/valid.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/clean.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/inc.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/diff.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/major.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/minor.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/patch.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/prerelease.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/compare.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/rcompare.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/compare-loose.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/compare-build.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/sort.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/rsort.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/gt.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/lt.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/eq.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/neq.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/gte.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/lte.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/cmp.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/coerce.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/lrucache.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/classes/range.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/classes/comparator.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/satisfies.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/to-comparators.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/max-satisfying.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/min-satisfying.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/min-version.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/valid.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/outside.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/gtr.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/ltr.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/intersects.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/simplify.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/subset.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/index.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/common/node.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/cp/errors.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/cp/polyfill.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/cp/index.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/with-temp-dir.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/readdir-scoped.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/move-file.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/index.js", "../node_modules/.pnpm/p-map@7.0.3/node_modules/p-map/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/entry-index.js", "../node_modules/.pnpm/lru-cache@10.4.3/node_modules/lru-cache/src/index.ts", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/memoization.js", "../node_modules/.pnpm/fs-minipass@3.0.3/node_modules/fs-minipass/lib/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/read.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/get.js", "../node_modules/.pnpm/minipass-flush@1.0.5/node_modules/minipass-flush/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/write.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/put.js", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/assert-valid-pattern.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/brace-expressions.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/unescape.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/ast.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/escape.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/index.ts", "../node_modules/.pnpm/path-scurry@1.11.1/node_modules/path-scurry/src/index.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/pattern.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/ignore.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/processor.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/walker.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/glob.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/has-magic.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/index.ts", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/util/glob.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/rm.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/rm.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/verify.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/util/tmp.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/index.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/errors.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/formats.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/systemZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/IANAZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/locale.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/fixedOffsetZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/invalidZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/zoneUtil.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/digits.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/settings.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/invalid.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/conversions.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/util.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/english.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/formatter.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/regexParser.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/duration.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/interval.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/info.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/diff.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/tokenParser.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/datetime.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/luxon.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/compress.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/file.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/key.ts", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/APPEND.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITFIELD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/generic-transformers.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITPOS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BLMOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BLMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BLPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BRPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BZMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COPY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DECR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DECRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DUMP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVAL_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVAL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVALSHA.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXISTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FCALL_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FCALL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEODIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOHASH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOPOS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETBIT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETDEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HDEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXISTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HGETALL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HINCRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HKEYS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HMGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPERSIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPTTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSETNX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSTRLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HTTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HVALS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INCR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INCRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS_IDX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS_LEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LINDEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LINSERT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LMOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPUSHX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LREM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LTRIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MIGRATE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MSETNX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PERSIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PEXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PFADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PFCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PFMERGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PSETEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PTTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBLISH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RENAME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RENAMENX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RESTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPUSHX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SDIFF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETBIT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETNX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SINTER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SINTERCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SISMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SMEMBERS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SMOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SORT_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SORT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SORT_STORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SPUBLISH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SREM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SSCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/STRLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SUNION.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TOUCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TYPE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/UNLINK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/WATCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XACK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XCLAIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XDEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XPENDING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XREAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XREADGROUP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XREVRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XSETID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XTRIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZDIFF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINCRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZMSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREVRANK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZSCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZUNION.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/commands.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_CAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LOG.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_USERS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ASKING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/AUTH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BGSAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DBSIZE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DISCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ECHO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FAILOVER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FLUSHALL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FLUSHDB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HELLO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/KEYS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LASTSAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LOLWUT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/READONLY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/READWRITE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/REPLICAOF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ROLE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SWAPDB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/UNWATCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/WAIT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/commands.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/errors.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/utils.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/socket.js", "../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/iterator.js", "../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/yallist.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/decoder.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/pub-sub.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/commands-queue.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/command-options.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commander.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/multi-command.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/multi-command.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/factoryValidator.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PoolDefaults.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PoolOptions.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Deferred.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/errors.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/ResourceRequest.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/ResourceLoan.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PooledResourceStateEnum.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PooledResource.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DefaultEvictor.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DoublyLinkedList.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DoublyLinkedListIterator.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DequeIterator.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Deque.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Queue.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PriorityQueue.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/utils.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Pool.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/index.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/package.json", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/index.js", "../node_modules/.pnpm/cluster-key-slot@1.1.2/node_modules/cluster-key-slot/lib/index.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/cluster-slots.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/multi-command.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/index.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/lua-script.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/CARD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/INSERT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/MADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/CDF.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/MAX.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/MIN.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/RANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/RESET.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/COUNT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/LIST.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/QUERY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/index.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/CONFIG_GET.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/CONFIG_SET.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/DELETE.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/EXPLAIN.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/LIST.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/PROFILE.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/QUERY.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/RO_QUERY.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/SLOWLOG.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/index.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/graph.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/index.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRAPPEND.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRINDEX.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRINSERT.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRLEN.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRPOP.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRTRIM.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/DEL.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/FORGET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/GET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/MERGE.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/MGET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/MSET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/NUMINCRBY.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/NUMMULTBY.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/OBJKEYS.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/OBJLEN.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/RESP.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/SET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/STRAPPEND.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/STRLEN.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/TYPE.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/index.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/index.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/_LIST.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALTER.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/AGGREGATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALIASADD.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALIASDEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALIASUPDATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CONFIG_GET.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CONFIG_SET.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CREATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CURSOR_DEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CURSOR_READ.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DICTADD.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DICTDEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DICTDUMP.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DROPINDEX.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/EXPLAIN.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/EXPLAINCLI.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/INFO.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SEARCH.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SPELLCHECK.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGADD.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGDEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGLEN.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SYNDUMP.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SYNUPDATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/TAGVALS.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/index.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/index.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/ADD.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/ALTER.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/CREATE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/CREATERULE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/DECRBY.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/DEL.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/DELETERULE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/GET.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/INCRBY.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/INFO.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MADD.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MGET.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/QUERYINDEX.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/RANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/REVRANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MRANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MREVRANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/index.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/index.js", "../node_modules/.pnpm/redis@4.7.0/node_modules/redis/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/redis.ts", "../node_modules/.pnpm/yocto-queue@0.1.0/node_modules/yocto-queue/index.js", "../node_modules/.pnpm/p-limit@3.1.0/node_modules/p-limit/index.js", "../node_modules/.pnpm/p-locate@5.0.0/node_modules/p-locate/index.js", "../node_modules/.pnpm/locate-path@6.0.0/node_modules/locate-path/index.js", "../node_modules/.pnpm/path-exists@4.0.0/node_modules/path-exists/index.js", "../node_modules/.pnpm/find-up@5.0.0/node_modules/find-up/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/fs/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/fs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/sqlite.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/index.ts", "../node_modules/.pnpm/klona@2.0.6/node_modules/klona/json/index.js", "../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/stringify.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/clone.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/filter-map.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/result.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/decorator/index.ts", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/errors.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/Semaphore.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/Mutex.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/withTimeout.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/tryAcquire.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/mutex.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/decorator.ts", "../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/node.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/type.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/comment.js", "../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js", "../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js", "../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/generated/decode-data-html.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/generated/decode-data-xml.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/generated/encode-html.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.ts", "../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js", "../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.ts", "../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/index.js", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/sort.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/attributes.ts", "../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.ts", "../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.ts", "../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/filters.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/pseudos.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/aliases.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/subselects.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/index.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/general.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/compile.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/index.ts", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/back.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/matcher.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/void-tag.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/text.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/html.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/parse.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/valid.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/html.ts", "../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/hash.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/constants/platforms.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/constants/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/auth.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/hooks.ts", "../node_modules/.pnpm/boolean@3.2.0/node_modules/boolean/build/lib/boolean.js", "../node_modules/.pnpm/boolean@3.2.0/node_modules/boolean/build/lib/isBooleanable.js", "../node_modules/.pnpm/boolean@3.2.0/node_modules/boolean/build/lib/index.js", "../node_modules/.pnpm/detect-node@2.1.0/node_modules/detect-node/index.esm.js", "../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js", "../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js", "../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js", "../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js", "../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js", "../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js", "../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js", "../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js", "../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js", "../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js", "../node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/implementation.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/polyfill.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/shim.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/index.js", "../node_modules/.pnpm/json-stringify-safe@5.0.1/node_modules/json-stringify-safe/stringify.js", "../node_modules/.pnpm/sprintf-js@1.1.3/node_modules/sprintf-js/src/sprintf.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/constants.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createLogger.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createMockLogger.js", "../node_modules/.pnpm/semver-compare@1.0.0/node_modules/semver-compare/index.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/package.json", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createNodeWriter.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createRoarrInititialGlobalState.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/index.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/log.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/Logger.js", "../node_modules/.pnpm/serialize-error@7.0.1/node_modules/serialize-error/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/Agent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/HttpProxyAgent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/HttpsProxyAgent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/index.js", "../node_modules/.pnpm/es6-error@4.1.1/node_modules/es6-error/es6/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/errors.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/bindHttpMethod.js", "../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js", "../node_modules/.pnpm/matcher@3.0.0/node_modules/matcher/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/isUrlMatchingNoProxy.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/parseProxyUrl.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/factories/createProxyController.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/factories/createGlobalProxyAgent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/factories/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/routines/bootstrap.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/routines/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/proxy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/host-rules.ts", "../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js", "../node_modules/.pnpm/humanize-ms@1.2.1/node_modules/humanize-ms/index.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/constants.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/agent.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/https_agent.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/keep-alive.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/host-rules.ts", "../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js", "../node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.js", "../node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.js", "../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.js", "../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.js", "../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/rate-limits.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/queue.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/retry-after.ts", "../node_modules/.pnpm/p-throttle@4.1.1/node_modules/p-throttle/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/throttle.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/legacy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/datasource.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/artifactory/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/artifactory/index.ts", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/extensions/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/abort.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/auth.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpApiKeyAuth.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpAuthScheme.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpAuthSchemeProvider.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpSigner.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/IdentityProviderConfig.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/blob/blob-payload-input-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/checksum.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/client.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/command.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/config.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/manager.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/pool.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/crypto.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/encode.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoint.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/EndpointRuleObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/ErrorRuleObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/RuleSetObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/shared.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/TreeRuleObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/eventStream.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/checksum.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/defaultClientConfiguration.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/defaultExtensionConfiguration.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/feature-ids.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/http.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/http/httpHandlerInitialization.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/apiKeyIdentity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/awsCredentialIdentity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/identity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/tokenIdentity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/logger.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/middleware.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/pagination.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/profile.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/response.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/retry.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/serde.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/shapes.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/signature.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/stream.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-common-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-payload-input-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-payload-output-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transfer.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transform/client-payload-blob-type-narrow.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transform/no-undefined.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transform/type-transform.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/uri.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/util.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/waiter.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/index.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/Field.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/Fields.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/httpHandler.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/httpRequest.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/httpResponse.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/isValidHostname.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/types.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-host-header@3.696.0/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-logger@3.696.0/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-logger@3.696.0/node_modules/@aws-sdk/middleware-logger/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-recursion-detection@3.696.0/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/getSmithyContext.js", "../node_modules/.pnpm/@smithy+util-middleware@3.0.11/node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js", "../node_modules/.pnpm/@smithy+util-middleware@3.0.11/node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js", "../node_modules/.pnpm/@smithy+util-middleware@3.0.11/node_modules/@smithy/util-middleware/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-signing/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/normalizeProvider.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/pagination/createPaginator.js", "../node_modules/.pnpm/@smithy+is-array-buffer@3.0.0/node_modules/@smithy/is-array-buffer/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-buffer-from@3.0.0/node_modules/@smithy/util-buffer-from/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-base64@3.0.0/node_modules/@smithy/util-base64/dist-es/fromBase64.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/fromUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/toUint8Array.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/toUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-base64@3.0.0/node_modules/@smithy/util-base64/dist-es/toBase64.js", "../node_modules/.pnpm/@smithy+util-base64@3.0.0/node_modules/@smithy/util-base64/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/blob/transforms.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/getAwsChunkedEncodingStream.js", "../node_modules/.pnpm/@smithy+util-uri-escape@3.0.0/node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js", "../node_modules/.pnpm/@smithy+util-uri-escape@3.0.0/node_modules/@smithy/util-uri-escape/dist-es/escape-uri-path.js", "../node_modules/.pnpm/@smithy+util-uri-escape@3.0.0/node_modules/@smithy/util-uri-escape/dist-es/index.js", "../node_modules/.pnpm/@smithy+querystring-builder@3.0.11/node_modules/@smithy/querystring-builder/dist-es/index.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/constants.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/timing.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/index.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/create-request.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-hex-encoding@3.0.0/node_modules/@smithy/util-hex-encoding/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/stream-type-check.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/splitStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/splitStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/headStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/headStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/createChecksumStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/createChecksumStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/protocols/requestBuilder.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/setFeature.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/noAuth.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/isIpAddress.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/isValidHostLabel.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/debug/debugId.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/debug/toDebugString.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/debug/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/EndpointError.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/EndpointFunctions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/EndpointRuleObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/ErrorRuleObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/RuleSetObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/TreeRuleObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/shared.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/booleanEquals.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/getAttrPathList.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/isSet.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/not.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/parseURL.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/stringEquals.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/substring.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/uriEncode.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/callFunction.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperty.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointUrl.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTreeRule.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/aws.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/ProviderError.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/chain.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/fromStatic.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/memoize.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/constants.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/headerUtil.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/prepareRequest.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/utilDate.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/SignatureV4.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/coercing-serializers.js", "../node_modules/.pnpm/@smithy+middleware-stack@3.0.11/node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js", "../node_modules/.pnpm/@smithy+middleware-stack@3.0.11/node_modules/@smithy/middleware-stack/dist-es/index.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/client.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/collect-stream-body.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/command.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/constants.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/create-aggregated-client.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/parse-utils.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/date-utils.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/exceptions.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/default-error-handler.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/defaults-mode.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extended-encode-uri-component.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/retry.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/index.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/get-array-if-single-item.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/get-value-from-text-node.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/is-serializable-header-value.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/lazy-json.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/object-mapping.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/quote-header.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/resolve-path.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/ser-utils.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/serde-json.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/split-every.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/split-header.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/awsExpectUnion.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/util.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/validator.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js", "../node_modules/.pnpm/strnum@1.0.5/node_modules/strnum/strnum.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/node2json.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/fxp.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/check-features.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/encode-features.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/numberSelector.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/types.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/config.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/PartitionHash.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/RegionHash.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getResolvedHostname.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getResolvedPartition.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getRegionInfo.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-content-length@3.0.13/node_modules/@smithy/middleware-content-length/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/getSelectorName.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/fromEnv.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getHomeDir.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFilepath.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigData.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigFilepath.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getCredentialsFilepath.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/parseIni.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/slurpFile.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSharedConfigFiles.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getSsoSessionData.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSsoSessionData.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/mergeConfigFiles.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/parseKnownFiles.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/types.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/index.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/fromSharedConfigFiles.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/fromStatic.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/configLoader.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointUrlConfig.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.js", "../node_modules/.pnpm/@smithy+querystring-parser@3.0.11/node_modules/@smithy/querystring-parser/dist-es/index.js", "../node_modules/.pnpm/@smithy+url-parser@3.0.11/node_modules/@smithy/url-parser/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/types.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/config.js", "../node_modules/.pnpm/@smithy+service-error-classification@3.0.11/node_modules/@smithy/service-error-classification/dist-es/constants.js", "../node_modules/.pnpm/@smithy+service-error-classification@3.0.11/node_modules/@smithy/service-error-classification/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/constants.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/ConfiguredRetryStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/types.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/index.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/rng.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/regex.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/validate.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/stringify.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v1.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/parse.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v35.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/md5.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v3.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/native.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v4.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/sha1.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v5.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/nil.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/version.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/index.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/defaultRetryQuota.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/delayDecider.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/retryDecider.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/util.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/StandardRetryStrategy.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/AdaptiveRetryStrategy.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/configurations.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/omitRetryHeadersMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/isStreamingPayload/isStreamingPayload.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/package.json", "../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.696.0/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.696.0/node_modules/@aws-sdk/credential-provider-env/dist-es/index.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/types.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/checkUrl.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/requestHelpers.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/retry-wrapper.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-st_wniir447b4d6bdscdohi7gdupy/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/constants.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/package.json", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/crt-availability.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/is-crt-available.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/defaultUserAgent.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/nodeAppIdConfigOptions.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/index.js", "../node_modules/.pnpm/@smithy+hash-node@3.0.11/node_modules/@smithy/hash-node/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-body-length-node@3.0.0/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js", "../node_modules/.pnpm/@smithy+util-body-length-node@3.0.0/node_modules/@smithy/util-body-length-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/constants.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/defaultsModeConfig.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/resolveDefaultsModeConfig.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/config.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/isFipsRegion.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/getRealRegion.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/resolveRegionConfig.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/index.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/SSOOIDCClient.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/models/SSOOIDCServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/protocols/Aws_restJson1.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/CreateTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/CreateTokenWithIAMCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/RegisterClientCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/StartDeviceAuthorizationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/SSOOIDC.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/package.json", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/models/SSOServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/protocols/Aws_restJson1.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/GetRoleCredentialsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/LogoutCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/SSO.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/ListAccountRolesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/ListAccountsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/loadSso.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveCredentialSource.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/package.json", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/STSClient.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/models/STSServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/protocols/Aws_query.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithSAMLCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithWebIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRootCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/DecodeAuthorizationMessageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetAccessKeyInfoCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetCallerIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetFederationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetSessionTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/STS.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/defaultStsRoleAssumers.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/defaultRoleAssumers.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/getValidatedProcessCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProcessCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveStaticCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.696.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.696.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.696.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-st_wniir447b4d6bdscdohi7gdupy/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-st_wniir447b4d6bdscdohi7gdupy/node_modules/@aws-sdk/credential-provider-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/EC2Client.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/EC2ServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/protocols/Aws_ec2.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptAddressTransferCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptCapacityReservationBillingOwnershipCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptReservedInstancesExchangeQuoteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptTransitGatewayMulticastDomainAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptVpcEndpointConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AdvertiseByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AllocateAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AllocateHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AllocateIpamPoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ApplySecurityGroupsToClientVpnTargetNetworkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssignIpv6AddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssignPrivateIpAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssignPrivateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateCapacityReservationBillingOwnerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateClientVpnTargetNetworkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateEnclaveCertificateIamRoleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateIamInstanceProfileCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateSecurityGroupVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateSubnetCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTrunkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateVpcCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachClassicLinkVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AuthorizeClientVpnIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AuthorizeSecurityGroupEgressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AuthorizeSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/BundleInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelBundleTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelCapacityReservationFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelConversionTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelImageLaunchPermissionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelImportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelReservedInstancesListingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelSpotFleetRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelSpotInstanceRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ConfirmProductInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CopyFpgaImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CopyImageCommand.js", "../node_modules/.pnpm/@aws-sdk+util-format-url@3.696.0/node_modules/@aws-sdk/util-format-url/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-ec2@3.696.0/node_modules/@aws-sdk/middleware-sdk-ec2/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CopySnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCapacityReservationBySplittingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCapacityReservationFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCarrierGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateClientVpnEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateClientVpnRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCoipPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCustomerGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateDefaultSubnetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateDefaultVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateEgressOnlyInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateFlowLogsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateFpgaImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInstanceConnectEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInstanceExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamExternalResourceVerificationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_1.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateKeyPairCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLaunchTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLaunchTemplateVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteTableVpcAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateManagedPrefixListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNatGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkAclEntryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInsightsAccessScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInsightsPathCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInterfacePermissionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreatePlacementGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreatePublicIpv4PoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateReplaceRootVolumeTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateReservedInstancesListingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateRestoreImageTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSpotDatafeedSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateStoreImageTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSubnetCidrReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSubnetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTagsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorFilterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorFilterRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorTargetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayConnectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayConnectPeerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayPrefixListReferenceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayRouteTableAnnouncementCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_2.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcBlockPublicAccessExclusionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcEndpointConnectionNotificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcEndpointServiceConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpnConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpnConnectionRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCarrierGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteClientVpnEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteClientVpnRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCoipPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCustomerGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteEgressOnlyInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteFlowLogsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteFpgaImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteInstanceConnectEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamExternalResourceVerificationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteKeyPairCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLaunchTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLaunchTemplateVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteTableVpcAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteManagedPrefixListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNatGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkAclEntryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsAccessScopeAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsAccessScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsPathCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInterfacePermissionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeletePlacementGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeletePublicIpv4PoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteQueuedReservedInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSpotDatafeedSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSubnetCidrReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSubnetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTagsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorFilterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorFilterRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorTargetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayConnectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayConnectPeerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayPrefixListReferenceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayRouteTableAnnouncementCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_3.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcBlockPublicAccessExclusionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcEndpointConnectionNotificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcEndpointServiceConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpnConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpnConnectionRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionIpamPoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionPublicIpv4PoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterInstanceEventNotificationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterTransitGatewayMulticastGroupMembersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterTransitGatewayMulticastGroupSourcesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAccountAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAddressesAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAddressTransfersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAggregateIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAvailabilityZonesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAwsNetworkPerformanceMetricSubscriptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeBundleTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeByoipCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityBlockExtensionHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityBlockExtensionOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityBlockOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityReservationBillingRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityReservationFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityReservationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCarrierGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClassicLinkInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnAuthorizationRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnTargetNetworksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCoipPoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeConversionTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCustomerGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeEgressOnlyInternetGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeElasticGpusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeExportImageTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeExportTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFastLaunchImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFastSnapshotRestoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFleetHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFleetInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFlowLogsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFpgaImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFpgaImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeHostReservationOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeHostReservationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIamInstanceProfileAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIdentityIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_4.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImportImageTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImportSnapshotTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceConnectEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceCreditSpecificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceEventNotificationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceEventWindowsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceImageMetadataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceTopologyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceTypeOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceTypesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInternetGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamExternalResourceVerificationTokensCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamPoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamResourceDiscoveriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamResourceDiscoveryAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamScopesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpv6PoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeKeyPairsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLaunchTemplatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLaunchTemplateVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayRouteTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayRouteTableVpcAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayVirtualInterfaceGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayVirtualInterfacesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLockedSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeMacHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeManagedPrefixListsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeMovingAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNatGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkAclsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsAccessScopeAnalysesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsAccessScopesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsAnalysesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsPathsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInterfaceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInterfacePermissionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInterfacesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePlacementGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePrefixListsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePrincipalIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePublicIpv4PoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeRegionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReplaceRootVolumeTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesListingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesModificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeRouteTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeScheduledInstanceAvailabilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeScheduledInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupReferencesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupVpcAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSnapshotTierStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotDatafeedSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotFleetInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotFleetRequestHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_5.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotFleetRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotInstanceRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotPriceHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeStaleSecurityGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeStoreImageTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSubnetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTagsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorFilterRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorFiltersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorSessionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayAttachmentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayConnectPeersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayConnectsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayMulticastDomainsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayPeeringAttachmentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayPolicyTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayRouteTableAnnouncementsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayRouteTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayVpcAttachmentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrunkInterfaceAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessInstanceLoggingConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessTrustProvidersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumeAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumesModificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumeStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcBlockPublicAccessExclusionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcBlockPublicAccessOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcClassicLinkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcClassicLinkDnsSupportCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointConnectionNotificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointServiceConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointServicePermissionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointServicesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcPeeringConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpnConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpnGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachClassicLinkVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableAddressTransferCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableAwsNetworkPerformanceMetricSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableEbsEncryptionByDefaultCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableFastLaunchCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableFastSnapshotRestoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageDeprecationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageDeregistrationProtectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableIpamOrganizationAdminAccountCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableSerialConsoleAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableSnapshotBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableTransitGatewayRouteTablePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableVgwRoutePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableVpcClassicLinkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableVpcClassicLinkDnsSupportCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateCapacityReservationBillingOwnerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateClientVpnTargetNetworkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateEnclaveCertificateIamRoleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateIamInstanceProfileCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateSecurityGroupVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateSubnetCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTrunkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateVpcCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableAddressTransferCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableAwsNetworkPerformanceMetricSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableEbsEncryptionByDefaultCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableFastLaunchCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableFastSnapshotRestoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageDeprecationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageDeregistrationProtectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableIpamOrganizationAdminAccountCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableReachabilityAnalyzerOrganizationSharingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableSerialConsoleAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableSnapshotBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableTransitGatewayRouteTablePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVgwRoutePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVolumeIOCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVpcClassicLinkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVpcClassicLinkDnsSupportCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportClientVpnClientCertificateRevocationListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportClientVpnClientConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportTransitGatewayRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetAssociatedEnclaveCertificateIamRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetAssociatedIpv6PoolCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetAwsNetworkPerformanceDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetCapacityReservationUsageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetCoipPoolUsageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetConsoleOutputCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetConsoleScreenshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetDefaultCreditSpecificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetEbsDefaultKmsKeyIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetEbsEncryptionByDefaultCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetFlowLogsIntegrationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetGroupsForCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetHostReservationPurchasePreviewCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetImageBlockPublicAccessStateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceMetadataDefaultsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_6.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceTpmEkPubCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceTypesFromInstanceRequirementsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceUefiDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamAddressHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamDiscoveredAccountsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamDiscoveredPublicAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamDiscoveredResourceCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamPoolAllocationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamPoolCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamResourceCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetLaunchTemplateDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetManagedPrefixListAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetManagedPrefixListEntriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetNetworkInsightsAccessScopeAnalysisFindingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetNetworkInsightsAccessScopeContentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetPasswordDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetReservedInstancesExchangeQuoteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSecurityGroupsForVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSerialConsoleAccessStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSnapshotBlockPublicAccessStateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSpotPlacementScoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSubnetCidrReservationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayAttachmentPropagationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayMulticastDomainAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayPolicyTableAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayPolicyTableEntriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayPrefixListReferencesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayRouteTableAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayRouteTablePropagationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVerifiedAccessEndpointPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVerifiedAccessGroupPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVpnConnectionDeviceSampleConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVpnConnectionDeviceTypesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVpnTunnelReplacementStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportClientVpnClientCertificateRevocationListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportKeyPairCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ListImagesInRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ListSnapshotsInRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/LockSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyAddressAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyAvailabilityZoneGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyCapacityReservationFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyClientVpnEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyDefaultCreditSpecificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyEbsDefaultKmsKeyIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyFpgaImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIdentityIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceCapacityReservationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceCpuOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceCreditSpecificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceEventStartTimeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceMaintenanceOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceMetadataDefaultsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceMetadataOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstancePlacementCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamResourceCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyLaunchTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyLocalGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyManagedPrefixListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyNetworkInterfaceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyPrivateDnsNameOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyReservedInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySecurityGroupRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySnapshotTierCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySpotFleetRequestCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySubnetAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTrafficMirrorFilterNetworkServicesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTrafficMirrorFilterRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTrafficMirrorSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTransitGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTransitGatewayPrefixListReferenceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessEndpointPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessGroupPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessInstanceLoggingConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_7.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVolumeAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcBlockPublicAccessExclusionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcBlockPublicAccessOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointConnectionNotificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointServiceConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointServicePayerResponsibilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointServicePermissionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcPeeringConnectionOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcTenancyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnConnectionOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnTunnelCertificateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnTunnelOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MonitorInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MoveAddressToVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MoveByoipCidrToIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MoveCapacityReservationInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionIpamPoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionPublicIpv4PoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseCapacityBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseCapacityBlockExtensionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseHostReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseReservedInstancesOfferingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseScheduledInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RebootInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterInstanceEventNotificationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterTransitGatewayMulticastGroupMembersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterTransitGatewayMulticastGroupSourcesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectCapacityReservationBillingOwnershipCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectTransitGatewayMulticastDomainAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectVpcEndpointConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReleaseAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReleaseHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReleaseIpamPoolAllocationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceIamInstanceProfileAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceNetworkAclAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceNetworkAclEntryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceRouteTableAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceTransitGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceVpnTunnelCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReportInstanceStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RequestSpotFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RequestSpotInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetAddressAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetEbsDefaultKmsKeyIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetFpgaImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetInstanceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetNetworkInterfaceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreAddressToClassicCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreImageFromRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreManagedPrefixListVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreSnapshotFromRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreSnapshotTierCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RevokeClientVpnIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RevokeSecurityGroupEgressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RevokeSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RunInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RunScheduledInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SearchLocalGatewayRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SearchTransitGatewayMulticastGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SearchTransitGatewayRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SendDiagnosticInterruptCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartNetworkInsightsAccessScopeAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartNetworkInsightsAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartVpcEndpointServicePrivateDnsVerificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StopInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/TerminateClientVpnConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/TerminateInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnassignIpv6AddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnassignPrivateIpAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnassignPrivateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnlockSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnmonitorInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UpdateSecurityGroupRuleDescriptionsEgressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UpdateSecurityGroupRuleDescriptionsIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/WithdrawByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/EC2.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeAddressTransfersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeAddressesAttributePaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeAwsNetworkPerformanceMetricSubscriptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeByoipCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityBlockExtensionHistoryPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityBlockExtensionOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityBlockOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityReservationBillingRequestsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityReservationFleetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityReservationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCarrierGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClassicLinkInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnAuthorizationRulesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnConnectionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnRoutesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnTargetNetworksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCoipPoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeDhcpOptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeEgressOnlyInternetGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeExportImageTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFastLaunchImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFastSnapshotRestoresPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFleetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFlowLogsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFpgaImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeHostReservationOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeHostReservationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeHostsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIamInstanceProfileAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeImportImageTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeImportSnapshotTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceConnectEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceCreditSpecificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceEventWindowsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceImageMetadataPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceStatusPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceTopologyPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceTypeOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceTypesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInternetGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamPoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamResourceDiscoveriesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamResourceDiscoveryAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamScopesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpv6PoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLaunchTemplateVersionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLaunchTemplatesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayRouteTableVpcAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayRouteTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayVirtualInterfaceGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayVirtualInterfacesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeMacHostsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeManagedPrefixListsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeMovingAddressesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNatGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkAclsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsAccessScopeAnalysesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsAccessScopesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsAnalysesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsPathsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInterfacePermissionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInterfacesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribePrefixListsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribePrincipalIdFormatPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribePublicIpv4PoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeReplaceRootVolumeTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeReservedInstancesModificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeReservedInstancesOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeRouteTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeScheduledInstanceAvailabilityPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeScheduledInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSecurityGroupRulesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSecurityGroupVpcAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSecurityGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSnapshotTierStatusPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSnapshotsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSpotFleetRequestsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSpotInstanceRequestsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSpotPriceHistoryPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeStaleSecurityGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeStoreImageTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSubnetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTagsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrafficMirrorFiltersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrafficMirrorSessionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrafficMirrorTargetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayAttachmentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayConnectPeersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayConnectsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayMulticastDomainsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayPeeringAttachmentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayPolicyTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayRouteTableAnnouncementsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayRouteTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayVpcAttachmentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrunkInterfaceAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessInstanceLoggingConfigurationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessTrustProvidersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVolumeStatusPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVolumesModificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVolumesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcClassicLinkDnsSupportPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointConnectionNotificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointConnectionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointServiceConfigurationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointServicePermissionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcPeeringConnectionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetAssociatedIpv6PoolCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetAwsNetworkPerformanceDataPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetGroupsForCapacityReservationPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetInstanceTypesFromInstanceRequirementsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamAddressHistoryPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamDiscoveredAccountsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamDiscoveredResourceCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamPoolAllocationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamPoolCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamResourceCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetManagedPrefixListAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetManagedPrefixListEntriesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetNetworkInsightsAccessScopeAnalysisFindingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetSecurityGroupsForVpcPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetSpotPlacementScoresPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayAttachmentPropagationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayMulticastDomainAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayPolicyTableAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayPrefixListReferencesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayRouteTableAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayRouteTablePropagationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetVpnConnectionDeviceTypesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/ListImagesInRecycleBinPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/ListSnapshotsInRecycleBinPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/SearchLocalGatewayRoutesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/SearchTransitGatewayMulticastGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/index.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/utils/sleep.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/waiter.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/poller.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/utils/validate.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/utils/index.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/createWaiter.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForBundleTaskComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForConversionTaskCancelled.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForConversionTaskCompleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForConversionTaskDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForCustomerGatewayAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForExportTaskCancelled.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForExportTaskCompleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForImageAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForImageExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceRunning.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceStatusOk.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceStopped.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceTerminated.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInternetGatewayExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForKeyPairExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNatGatewayAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNatGatewayDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNetworkInterfaceAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSnapshotImported.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSecurityGroupExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSnapshotCompleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSpotInstanceRequestFulfilled.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForStoreImageTaskComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSubnetAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSystemStatusOk.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForPasswordDataAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeInUse.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcPeeringConnectionDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcPeeringConnectionExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpnConnectionAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpnConnectionDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/createCredentialChain.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/CognitoProviderParameters.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/Logins.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/Storage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/resolveLogins.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/package.json", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/CognitoIdentityClient.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/models/CognitoIdentityServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/protocols/Aws_json1_1.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/CreateIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DeleteIdentitiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DeleteIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DescribeIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DescribeIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetCredentialsForIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetIdentityPoolRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetOpenIdTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetOpenIdTokenForDeveloperIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetPrincipalTagAttributeMapCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/ListIdentitiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/ListIdentityPoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/ListTagsForResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/LookupDeveloperIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/MergeDeveloperIdentitiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/SetIdentityPoolRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/SetPrincipalTagAttributeMapCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/TagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UnlinkDeveloperIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UnlinkIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UntagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UpdateIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/CognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/pagination/ListIdentityPoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/loadCognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/IndexedDbStorage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/InMemoryStorage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/localStorage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentityPool.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentityPool.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromContainerMetadata.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromEnv.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromIni.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromInstanceMetadata.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromNodeProviderChain.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromProcess.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromSSO.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/loadSts.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromTemporaryCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromTokenFile.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromWebToken.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/generic.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/aws-machine-image/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/aws-machine-image/index.ts", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/package.json", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/RDSClient.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/RDSServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/models_1.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/protocols/Aws_query.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddRoleToDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddRoleToDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddSourceIdentifierToSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddTagsToResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ApplyPendingMaintenanceActionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AuthorizeDBSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/BacktrackDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CancelExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-rds@3.696.0/node_modules/@aws-sdk/middleware-sdk-rds/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBClusterSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateBlueGreenDeploymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateCustomDBEngineVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBInstanceReadReplicaCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBProxyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBProxyEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBSubnetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateEventSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateIntegrationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateTenantDatabaseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteBlueGreenDeploymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteCustomDBEngineVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterAutomatedBackupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBInstanceAutomatedBackupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBProxyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBProxyEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBSubnetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteEventSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteIntegrationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteTenantDatabaseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeregisterDBProxyTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeAccountAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeBlueGreenDeploymentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeCertificatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterAutomatedBackupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterBacktracksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterParameterGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClustersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterSnapshotAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBEngineVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBInstanceAutomatedBackupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBLogFilesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBParameterGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxyEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxyTargetGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxyTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBRecommendationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSecurityGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBShardGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSnapshotAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSnapshotTenantDatabasesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSubnetGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEngineDefaultClusterParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEngineDefaultParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEventCategoriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEventsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEventSubscriptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeExportTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeGlobalClustersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeIntegrationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeOptionGroupOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeOptionGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeOrderableDBInstanceOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribePendingMaintenanceActionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeReservedDBInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeReservedDBInstancesOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeSourceRegionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeTenantDatabasesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeValidDBInstanceModificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DisableHttpEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DownloadDBLogFilePortionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/EnableHttpEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/FailoverDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/FailoverGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ListTagsForResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyActivityStreamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyCertificatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyCurrentDBClusterCapacityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyCustomDBEngineVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBProxyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBProxyEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBProxyTargetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBRecommendationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBSubnetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyEventSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyIntegrationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyTenantDatabaseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/PromoteReadReplicaCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/PromoteReadReplicaDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/PurchaseReservedDBInstancesOfferingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RebootDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RebootDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RebootDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RegisterDBProxyTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveFromGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveRoleFromDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveRoleFromDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveSourceIdentifierFromSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveTagsFromResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ResetDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ResetDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBClusterFromS3Command.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBClusterFromSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBClusterToPointInTimeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBInstanceFromDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBInstanceFromS3Command.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBInstanceToPointInTimeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RevokeDBSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartActivityStreamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartDBInstanceAutomatedBackupsReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopActivityStreamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopDBInstanceAutomatedBackupsReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/SwitchoverBlueGreenDeploymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/SwitchoverGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/SwitchoverReadReplicaCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/RDS.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeBlueGreenDeploymentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeCertificatesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterAutomatedBackupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterBacktracksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterParameterGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterParametersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterSnapshotsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClustersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBEngineVersionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBInstanceAutomatedBackupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBLogFilesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBParameterGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBParametersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxiesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxyEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxyTargetGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxyTargetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBRecommendationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSecurityGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSnapshotTenantDatabasesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSnapshotsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSubnetGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeEngineDefaultParametersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeEventSubscriptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeEventsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeExportTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeGlobalClustersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeIntegrationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeOptionGroupOptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeOptionGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeOrderableDBInstanceOptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribePendingMaintenanceActionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeReservedDBInstancesOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeReservedDBInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeSourceRegionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeTenantDatabasesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DownloadDBLogFilePortionPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterSnapshotAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterSnapshotDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBInstanceAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBInstanceDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBSnapshotAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBSnapshotDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForTenantDatabaseAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForTenantDatabaseDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/lazy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/aws-rds/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/azure-rest-api/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/azure-bicep-resource/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/azure-bicep-resource/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/loose/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/azure-pipelines-tasks/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/bazel-module/bzlmod-version.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/bazel-module/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bazel/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bazel/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/bitbucket.ts", "../node_modules/.pnpm/json5@2.2.3/node_modules/json5/dist/index.mjs", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/string-intern.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/format.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/parser.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/edit.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/main.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/internal-utils/index.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/parser-options.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/errors.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/locs.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/code-point-iterator.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/code-point.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/tokenizer.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/index.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/toml-parser/keys-resolver.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/toml-parser/context.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/toml-parser/index.js", "../node_modules/.pnpm/eslint-visitor-keys@3.4.3/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/visitor-keys.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/parser.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/traverse.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/utils.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/meta.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/toml.ts", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/identity.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/visit.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/directives.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/anchors.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/applyReviver.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/toJS.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Node.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Alias.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/createNode.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Collection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyComment.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/foldFlowLines.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyString.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringify.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyPair.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/log.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/addPairToJSMap.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Pair.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyCollection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/YAMLMap.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/map.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/YAMLSeq.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/seq.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/string.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/null.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/bool.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyNumber.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/float.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/int.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/json/schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/float.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/int.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/set.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/tags.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/Schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyDocument.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/Document.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/errors.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-props.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-contains-newline.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-flow-indent-check.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-map-includes.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-block-map.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-block-seq.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-end.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-flow-collection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-collection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-block-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-node.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-doc.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/composer.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst-stringify.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst-visit.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/lexer.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/line-counter.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/parser.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/public-api.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/yaml.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/schema-utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/platform/bitbucket/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bitbucket-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/common.ts", "../node_modules/.pnpm/protocols@2.0.1/node_modules/protocols/lib/index.js", "../node_modules/.pnpm/parse-path@7.0.0/node_modules/parse-path/lib/index.js", "../node_modules/.pnpm/parse-url@9.2.0/node_modules/parse-url/dist/index.js", "../node_modules/.pnpm/is-ssh@1.4.0/node_modules/is-ssh/lib/index.js", "../node_modules/.pnpm/git-up@8.0.0/node_modules/git-up/lib/index.js", "../node_modules/.pnpm/git-url-parse@16.0.0/node_modules/git-url-parse/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/git/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/repository/impl/null.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/repository/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/mask.ts", "../node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js", "../node_modules/.pnpm/clean-stack@2.2.0/node_modules/clean-stack/index.js", "../node_modules/.pnpm/aggregate-error@3.1.0/node_modules/aggregate-error/index.js", "../node_modules/.pnpm/p-map@4.0.0/node_modules/p-map/index.js", "../node_modules/.pnpm/p-all@3.0.0/node_modules/p-all/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/promises.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/github.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/platform/github/schema.ts", "../node_modules/.pnpm/semver@6.3.1/node_modules/semver/semver.js", "../node_modules/.pnpm/semver-stable@3.0.0/node_modules/semver-stable/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/semver/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bitrise/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bitrise/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cdnjs/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cdnjs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/maven/compare.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/maven/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/maven/common.ts", "../node_modules/.pnpm/@aws-sdk+middleware-expect-continue@3.696.0/node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringUnionSelector.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js", "../node_modules/.pnpm/@smithy+is-array-buffer@2.2.0/node_modules/@smithy/is-array-buffer/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-buffer-from@2.2.0/node_modules/@smithy/util-buffer-from/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/fromUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/toUint8Array.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/toUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/index.js", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/isEmptyData.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/numToUint8.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/index.ts", "../node_modules/.pnpm/@aws-crypto+crc32c@5.2.0/node_modules/@aws-crypto/crc32c/src/aws_crc32c.ts", "../node_modules/.pnpm/@aws-crypto+crc32c@5.2.0/node_modules/@aws-crypto/crc32c/src/index.ts", "../node_modules/.pnpm/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/src/aws_crc32.ts", "../node_modules/.pnpm/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/src/index.ts", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getCrc32ChecksumAlgorithmFunction.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isChecksumWithPartNumber.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/streams/create-read-stream-on-buffer.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/resolveFlexibleChecksumsConfig.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js", "../node_modules/.pnpm/@aws-sdk+util-arn-parser@3.693.0/node_modules/@aws-sdk/util-arn-parser/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-serde-config-resolver@3.0.11/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js", "../node_modules/.pnpm/@smithy+eventstream-serde-config-resolver@3.0.11/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.696.0/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js", "../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.696.0/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js", "../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.696.0/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/package.json", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/NodeDisableMultiregionAccessPointConfigOptions.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/NodeUseArnRegionConfigOptions.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/bucketHostnameUtils.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/bucketHostname.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/bucketEndpointMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/configurations.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/Int64.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/Message.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/provider.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/utils.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/EventStreamMarshaller.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/provider.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/index.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/HashCalculator.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/fileStreamHasher.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/readableStreamHasher.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+middleware-ssec@3.696.0/node_modules/@aws-sdk/middleware-ssec/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+middleware-location-constraint@3.696.0/node_modules/@aws-sdk/middleware-location-constraint/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListDirectoryBucketsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/S3.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListBucketsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListDirectoryBucketsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListObjectsV2Paginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListPartsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/index.js", "../node_modules/.pnpm/sax@1.4.1/node_modules/sax/lib/sax.js", "../node_modules/.pnpm/xmldoc@1.3.0/node_modules/xmldoc/lib/xmldoc.js", "../node_modules/.pnpm/xmldoc@1.3.0/node_modules/xmldoc/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/s3.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/streams.ts", "../node_modules/.pnpm/github-url-from-git@1.5.0/node_modules/github-url-from-git/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/data/changelog-urls.json", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/data/source-urls.json", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/metadata-manual.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/metadata.ts", "../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js", "../node_modules/.pnpm/webidl-conversions@3.0.1/node_modules/webidl-conversions/lib/index.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/utils.js", "../node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/lib/mappingTable.json", "../node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/index.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/public-api.js", "../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/bom-handling.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/internal.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf32.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf16.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf7.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-codec.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-codec.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/shiftjis.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/eucjp.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp936.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gbk-added.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp949.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp950.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/big5-added.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-data.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/index.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/streams.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/index.js", "../node_modules/.pnpm/encoding@0.1.13/node_modules/encoding/lib/encoding.js", "../node_modules/.pnpm/node-fetch@2.7.0_encoding@0.1.13/node_modules/node-fetch/lib/index.mjs", "../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/package.json", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/util.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/common.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/retry.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/interceptor.ts", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/common.js", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/browser.js", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/node.js", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/index.js", "../node_modules/.pnpm/agent-base@7.1.3/node_modules/agent-base/src/helpers.ts", "../node_modules/.pnpm/agent-base@7.1.3/node_modules/agent-base/src/index.ts", "../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/src/index.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/gaxios.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/index.ts", "../node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js", "../node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/lib/stringify.js", "../node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/lib/parse.js", "../node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/index.js", "../node_modules/.pnpm/gcp-metadata@6.1.0_encoding@0.1.13/node_modules/gcp-metadata/src/gcp-residency.ts", "../node_modules/.pnpm/gcp-metadata@6.1.0_encoding@0.1.13/node_modules/gcp-metadata/src/index.ts", "../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/crypto/browser/crypto.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/crypto/node/crypto.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/crypto/crypto.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/options.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/package.json", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/transporters.js", "../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js", "../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js", "../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/util.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/authclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/loginticket.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/oauth2client.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/computeclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/idtokenclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/envDetect.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/data-stream.js", "../node_modules/.pnpm/buffer-equal-constant-time@1.0.1/node_modules/buffer-equal-constant-time/index.js", "../node_modules/.pnpm/jwa@2.0.0/node_modules/jwa/index.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/tostring.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/sign-stream.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/verify-stream.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/index.js", "../node_modules/.pnpm/gtoken@7.1.0_encoding@0.1.13/node_modules/gtoken/build/src/index.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/jwtaccess.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/jwtclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/refreshclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/impersonated.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/oauth2common.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/stscredentials.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/baseexternalclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/filesubjecttokensupplier.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/urlsubjecttokensupplier.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/identitypoolclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/awsrequestsigner.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/defaultawssecuritycredentialssupplier.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/awsclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/executable-response.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/pluggable-auth-handler.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/pluggable-auth-client.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/externalclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/externalAccountAuthorizedUserClient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/googleauth.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/iam.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/downscopedclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/passthrough.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/maven/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/maven/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/clojure/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/clojure/index.ts", "../node_modules/.pnpm/semver-utils@1.1.4/node_modules/semver-utils/semver-utils.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/semver/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/npm/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/npm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/cargo/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/composer/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/conan/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/conan/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/conan/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/deb/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/data-files.generated.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/distro.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/debian/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/debian/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/devbox/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/docker/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/git/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/glasskube/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/go-mod-directive/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/gradle/compare.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/gradle/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hashicorp/convertor.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hashicorp/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/helm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/regex/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hermit/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hex/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ivy/parse.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ivy/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/kubernetes-api/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nixpkgs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/node/schedule.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/node/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/parser.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/version.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/index.ts", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/version.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/operator.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/specifier.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/semantic.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pep440/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pep440/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/perl/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/poetry/patterns.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/poetry/transform.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/poetry/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pvp/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pvp/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pvp/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/python/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/redhat/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rez/pattern.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rez/transform.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rez/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rpm/index.ts", "../node_modules/.pnpm/@renovatebot+ruby-semver@4.0.0/node_modules/@renovatebot/ruby-semver/dist/ruby/version.js", "../node_modules/.pnpm/@renovatebot+ruby-semver@4.0.0/node_modules/@renovatebot/ruby-semver/dist/ruby/requirement.js", "../node_modules/.pnpm/@renovatebot+ruby-semver@4.0.0/node_modules/@renovatebot/ruby-semver/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/operator.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/version.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/replace.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/bump.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/pin.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/widen.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/semver-coerced/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/same-major/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/swift/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/swift/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ubuntu/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ubuntu/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/unity3d/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/api.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/modules/versioning/types.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conan/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conan/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conda/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conda/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cpan/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cpan/index.ts", "../node_modules/.pnpm/@kwsites+file-exists@1.1.1/node_modules/@kwsites/file-exists/src/index.ts", "../node_modules/.pnpm/@kwsites+file-exists@1.1.1/node_modules/@kwsites/file-exists/index.ts", "../node_modules/.pnpm/@kwsites+promise-deferred@1.1.1/node_modules/@kwsites/promise-deferred/src/index.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-response-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/args/pathspec.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-construct-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-plugin-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/task-configuration-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/util.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/argument-filters.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/exit-codes.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/git-output-streams.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/line-parser.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/simple-git-options.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/task-options.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/task-parser.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/index.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/check-is-repo.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/CleanSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/task.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/clean.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/ConfigList.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/config.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/diff-name-status.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/grep.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/reset.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/api.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/abort-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/block-unsafe-operations-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/command-config-prefixing-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/completion-detection.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/custom-binary.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/error-detection.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/plugin-store.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/progress-monitor-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/simple-git-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/spawn-options-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/timout-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/index.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/suffix-paths.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/git-logger.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/tasks-pending-queue.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/git-executor-chain.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/git-executor.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/task-callback.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/change-working-directory.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/checkout.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/count-objects.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-commit.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/commit.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/first-commit.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/hash-object.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/InitSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/init.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/args/log-format.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/DiffSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-diff-summary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/diff.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/log.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/MergeSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/PullSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-remote-objects.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-remote-messages.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-pull.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-merge.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/merge.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-push.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/push.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/show.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/FileStatusSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/StatusSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/status.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/version.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/simple-git-api.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/scheduler.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/apply-patch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-branch-delete.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/BranchSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-branch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/branch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/CheckIgnore.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/check-ignore.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/clone.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-fetch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/fetch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-move.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/move.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/pull.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/GetRemoteSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/remote.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/stash-list.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/sub-module.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/TagList.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/tag.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/git.js", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/git-factory.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/promise-wrapped.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/git/config.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/crate/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/crate/index.ts", "../node_modules/.pnpm/jsonata@2.0.6/node_modules/jsonata/jsonata.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/jsonata.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/html.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/json.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/plain.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/yaml.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/schema.ts", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/utils.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/exception.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/block-helper-missing.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/each.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/helper-missing.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/if.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/log.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/lookup.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/with.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/decorators/inline.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/decorators.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/logger.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/internal/create-new-lookup-object.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/internal/proto-access.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/base.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/safe-string.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/internal/wrapHelper.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/runtime.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/no-conflict.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars.runtime.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/ast.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/parser.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/visitor.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/helpers.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/base.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/compiler.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/code-gen.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/printer.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/exec/env.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/exec/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/template/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dart/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dart-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/checksum.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/file.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/release.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deno/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deno/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/object.ts", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/util.js", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/format.js", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/parse.js", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/package.json", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/ECRClient.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/models/ECRServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/protocols/Aws_json1_1.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchCheckLayerAvailabilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchDeleteImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchGetImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchGetRepositoryScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CompleteLayerUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CreatePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CreateRepositoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CreateRepositoryCreationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteLifecyclePolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeletePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRegistryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRepositoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRepositoryCreationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRepositoryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeImageReplicationStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeImageScanFindingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribePullThroughCacheRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeRegistryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeRepositoriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeRepositoryCreationTemplatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetAccountSettingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetAuthorizationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetDownloadUrlForLayerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetLifecyclePolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetLifecyclePolicyPreviewCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetRegistryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetRegistryScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetRepositoryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/InitiateLayerUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/ListImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/ListTagsForResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutAccountSettingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutImageScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutImageTagMutabilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutLifecyclePolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutRegistryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutRegistryScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutReplicationConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/SetRepositoryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/StartImageScanCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/StartLifecyclePolicyPreviewCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/TagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UntagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UpdatePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UpdateRepositoryCreationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UploadLayerPartCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/ValidatePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/ECR.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeImageScanFindingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribePullThroughCacheRulesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeRepositoriesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeRepositoryCreationTemplatesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/GetLifecyclePolicyPreviewPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/ListImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/waiters/waitForImageScanComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/waiters/waitForLifecyclePolicyPreviewComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/ecr.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/google.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/dockerhub-cache.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dotnet-version/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dotnet-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/endoflife-date/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/endoflife-date/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/endoflife-date/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/flutter-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy-collection/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy-collection/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/git/auth.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/git-refs/base.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/git-refs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/git-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/gitea.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-tags/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-releases/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-releases/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/cache-strategies/memory-cache-strategy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/cache-strategies/package-cache-strategy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/datasource-fetcher.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/query-adapters/releases-query-adapter.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/query-adapters/tags-query-adapter.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-release-attachments/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/tags.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-releases/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-runners/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/gitlab.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-packages/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-packages/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-releases/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-tags/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/glasskube-packages/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/glasskube-packages/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/base.ts", "../node_modules/.pnpm/moo@0.5.2/node_modules/moo/moo.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/goproxy-parser.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/releases-direct.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/releases-goproxy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/golang-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gradle-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hackage/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hackage/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/helm/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/helm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hermit/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hex/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hex/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hexpm-bob/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hexpm-bob/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/java-version/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/java-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/jenkins-plugins/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/kubernetes-api/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/node-version/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/node-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/get.ts", "../node_modules/.pnpm/ini@5.0.0/node_modules/ini/lib/ini.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/npmrc.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/v2.ts", "../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js", "../node_modules/.pnpm/fd-slicer@1.1.0/node_modules/fd-slicer/index.js", "../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js", "../node_modules/.pnpm/yauzl@2.10.0/node_modules/yauzl/index.js", "../node_modules/.pnpm/extract-zip@2.0.1/node_modules/extract-zip/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/v3.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/orb/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/packagist/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/packagist/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/pod/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/puppet-forge/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/puppet-forge/index.ts", "../node_modules/.pnpm/changelog-filename-regex@2.0.1/node_modules/changelog-filename-regex/index.mjs", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/pypi/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/pypi/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/python-version/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/python-version/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/python-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/repology/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/ruby-version/index.ts", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/global-this.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/fails.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-bind-native.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-apply.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-uncurry-this.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/classof-raw.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-uncurry-this-clause.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-callable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/descriptors.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-call.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-property-is-enumerable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/indexed-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-null-or-undefined.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/require-object-coercible.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-indexed-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/path.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-built-in.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-is-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/environment-user-agent.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/environment-v8-version.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-constructor-detection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/use-symbol-as-uid.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/try-to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-callable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/ordinary-to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-pure.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-global-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/shared-store.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/shared.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/has-own-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/uid.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/well-known-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-property-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/document-create-element.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/ie8-dom-define.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-forced.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-bind-context.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/v8-prototype-define-bug.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/an-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-non-enumerable-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/export.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/math-trunc.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-integer-or-infinity.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-length.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/length-of-array-like.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-string-tag-support.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/classof.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/inspect-source.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-species-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-species-create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-method-has-species-support.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-absolute-index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-includes.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/hidden-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-keys-internal.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/enum-bug-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-define-properties.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/html.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/shared-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-names.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-names-external.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-symbols.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-built-in.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-built-in-accessor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/well-known-symbol-wrapped.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/well-known-symbol-define.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-define-to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/set-to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/weak-map-basic-detection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/internal-state.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-iteration.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-registry-detection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.for.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.key-for.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-json-replacer-function.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.json.stringify.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.async-iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.description.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.has-instance.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.match.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.match-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.replace.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.search.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.species.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.split.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.unscopables.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.json.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.math.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.reflect.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/add-to-unscopables.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterators.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-name.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/correct-prototype-getter.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterators-core.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterator-create-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-uncurry-this-accessor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-possible-prototype.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-possible-prototype.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterator-define.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-iter-result-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/dom-iterables.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/web.dom-collections.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.function.metadata.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.dispose.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.metadata.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-is-registered.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-is-well-known.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.observable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-registered.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.matcher.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.replace-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/string-multibyte.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.string.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/symbol/iterator.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/typeof.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/freezing.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-built-ins.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-buffer-non-extensible.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-is-extensible.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/internal-metadata.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-array-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterator-close.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterate.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/an-instance.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-weak.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.weak-map.constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.weak-map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/caller.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/weak-map-helpers.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-weak-map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.emplace.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.get-or-insert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.get-or-insert-computed.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.delete-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/map-upsert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.upsert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/get-own-property-descriptor.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/interopRequireWildcard.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.function.bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-built-in-prototype-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/function/virtual/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/bind.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/setPrototypeOf.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/inherits.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.reflect.construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/get-prototype-of.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/getPrototypeOf.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/isNativeReflectConstruct.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/assertThisInitialized.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/possibleConstructorReturn.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/createSuper.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/set-species.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-strong.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.map.constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/map-helpers.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.map.group-by.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.group-by.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.key-by.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.delete-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.emplace.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterate-simple.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/map-iterate.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.every.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.filter.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.find.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.find-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/same-value-zero.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.includes.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.get-or-insert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.get-or-insert-computed.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.key-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.map-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.map-values.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.merge.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.reduce.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.some.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.update.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.upsert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.update-or-insert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-method-is-strict.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/index-of.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/isNativeFunction.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-set-length.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/push.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/construct.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/wrapNativeSuper.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/error.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/concat.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/check-correctness-of-iteration.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/array/from.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/array/is-array.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/arrayLikeToArray.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/array/from.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/slice.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/unsupportedIterableToArray.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.date.to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/symbol/to-primitive.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/createClass.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/defineProperty.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/parse.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/marshal-object.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/assign-keys.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/metadata-cache.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/date.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/versions-endpoint-cache.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/sbt-package/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/sbt-package/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/sbt-plugin/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-module/base.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-module/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-module/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-provider/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/unity3d/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/api.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/modules/datasource/types.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/index.ts", "../src/utils/datasource/index.ts", "../src/utils/versioning/ubuntu.ts", "../src/utils/versioning/index.ts", "../src/utils/renovate.ts", "../src/utils/builds.ts", "../src/utils/docker/common.ts", "../src/utils/docker/buildx.ts", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/context.ts", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/internal/utils.ts", "../node_modules/.pnpm/universal-user-agent@6.0.1/node_modules/universal-user-agent/dist-src/index.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/version.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/defaults.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/is-plain-object.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/merge.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/omit.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/url-template.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/parse.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/with-defaults.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/index.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/version.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/is-plain-object.js", "../node_modules/.pnpm/deprecation@2.3.1/node_modules/deprecation/dist-web/index.js", "../node_modules/.pnpm/@octokit+request-error@5.1.0/node_modules/@octokit/request-error/dist-src/index.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/get-buffer-response.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/fetch-wrapper.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/with-defaults.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/index.js", "../node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-web/index.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/auth.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/hook.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/index.js", "../node_modules/.pnpm/@octokit+core@5.2.0/node_modules/@octokit/core/dist-web/index.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js", "../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/utils.ts", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/github.ts", "../node_modules/.pnpm/p-cancelable@4.0.1/node_modules/p-cancelable/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/errors.js", "../node_modules/.pnpm/@szmarczak+http-timer@5.0.1/node_modules/@szmarczak/http-timer/dist/source/index.js", "../node_modules/.pnpm/normalize-url@8.0.1/node_modules/normalize-url/index.js", "../node_modules/.pnpm/is-stream@4.0.1/node_modules/is-stream/index.js", "../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js", "../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js", "../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/stream.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/contents.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/utils.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/array-buffer.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/buffer.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/exports.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/index.js", "../node_modules/.pnpm/lowercase-keys@3.0.0/node_modules/lowercase-keys/index.js", "../node_modules/.pnpm/responselike@3.0.0/node_modules/responselike/index.js", "../node_modules/.pnpm/mimic-response@4.0.0/node_modules/mimic-response/index.js", "../node_modules/.pnpm/cacheable-request@12.0.1/node_modules/cacheable-request/src/types.ts", "../node_modules/.pnpm/cacheable-request@12.0.1/node_modules/cacheable-request/src/index.ts", "../node_modules/.pnpm/form-data-encoder@4.0.2/node_modules/form-data-encoder/lib/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/is-form-data.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/get-body-size.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/proxy-events.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/unhandle.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/timed-out.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/url-to-options.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/weakable-map.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/calculate-retry-delay.js", "../node_modules/.pnpm/cacheable-lookup@7.0.0/node_modules/cacheable-lookup/source/index.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/delay-async-destroy.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/agent.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/incoming-message.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-events.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/errors.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-name.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-value.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-socket-handler.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/client-request.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/calculate-server-name.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/auto.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/js-stream-socket.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/unexpected-status-code-error.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/check-type.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/initialize.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/get-auth-headers.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h1-over-h2.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-hx.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h2.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h1.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/parse-link-header.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/options.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/response.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/is-client-request.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/is-unix-socket-url.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/as-promise/types.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/as-promise/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/create.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/types.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/index.js", "../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js", "../src/utils/config.ts", "../src/utils/github.ts", "../src/utils/sum.ts", "../src/commands/binary/utils.ts", "../src/commands/binary/index.ts", "../src/utils/docker.ts", "../src/utils/docker/cosign.ts", "../src/commands/docker/builder.ts", "../src/commands/docker/config.ts", "../src/index.ts", "../src/runner.ts", "../src/types.ts"], + "sources": ["../tools/cjs-shim.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/utils.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/command.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/file-command.ts", "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/src/proxy.ts", "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js", "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/errors.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/timers.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/basename.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/multipart.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/Decoder.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/urlencoded.js", "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/main.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/global.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/webidl.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/dataURL.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/file.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/formdata.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/body.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/request.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/dispatcher.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/dispatcher-base.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/core/connect.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/src/llhttp/utils.ts", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/src/llhttp/constants.ts", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/client.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/node/fixed-queue.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/pool-stats.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/pool-base.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/pool.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/balanced-pool.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/agent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/readable.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/abort-signal.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-request.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-stream.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-pipeline.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-upgrade.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/api-connect.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/api/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-errors.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-utils.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-client.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-pool.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/pluralizer.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/mock/mock-agent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/proxy-agent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/handler/RetryHandler.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/global.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/headers.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/response.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/request.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fetch/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/encoding.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/fileapi/filereader.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/cache.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cache/cachestorage.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/parse.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/cookies/index.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/constants.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/symbols.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/events.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/util.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/connection.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/frame.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/receiver.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/lib/websocket/websocket.js", "../node_modules/.pnpm/undici@5.28.4/node_modules/undici/index.js", "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/src/index.ts", "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/src/auth.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/oidc-utils.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/summary.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/path-utils.ts", "../node_modules/.pnpm/@actions+io@1.1.3/node_modules/@actions/io/src/io-util.ts", "../node_modules/.pnpm/@actions+io@1.1.3/node_modules/@actions/io/src/io.ts", "../node_modules/.pnpm/@actions+exec@1.1.1/node_modules/@actions/exec/src/toolrunner.ts", "../node_modules/.pnpm/@actions+exec@1.1.1/node_modules/@actions/exec/src/exec.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/platform.ts", "../node_modules/.pnpm/@actions+core@1.11.1/node_modules/@actions/core/src/core.ts", "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/vendor/ansi-styles/index.js", "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/vendor/supports-color/index.js", "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/utilities.js", "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/index.js", "../node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js", "../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js", "../src/utils/logger.ts", "../node_modules/.pnpm/@sindresorhus+is@7.0.1/node_modules/@sindresorhus/is/distribution/index.js", "../src/utils/types.ts", "../src/util.ts", "../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs", "../node_modules/.pnpm/@sindresorhus+is@4.6.0/node_modules/@sindresorhus/is/dist/index.js", "../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/config/global.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/constants/error-messages.ts", "../node_modules/.pnpm/safe-json-stringify@1.2.0/node_modules/safe-json-stringify/index.js", "../node_modules/.pnpm/ncp@2.0.0/node_modules/ncp/lib/ncp.js", "../node_modules/.pnpm/concat-map@0.0.1/node_modules/concat-map/index.js", "../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js", "../node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js", "../node_modules/.pnpm/minimatch@3.1.2/node_modules/minimatch/minimatch.js", "../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js", "../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js", "../node_modules/.pnpm/path-is-absolute@1.0.1/node_modules/path-is-absolute/index.js", "../node_modules/.pnpm/glob@6.0.4/node_modules/glob/common.js", "../node_modules/.pnpm/glob@6.0.4/node_modules/glob/sync.js", "../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js", "../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js", "../node_modules/.pnpm/inflight@1.0.6/node_modules/inflight/inflight.js", "../node_modules/.pnpm/glob@6.0.4/node_modules/glob/glob.js", "../node_modules/.pnpm/rimraf@2.4.5/node_modules/rimraf/rimraf.js", "../node_modules/.pnpm/mkdirp@0.5.6/node_modules/mkdirp/index.js", "../node_modules/.pnpm/mv@2.1.1/node_modules/mv/index.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/base64.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/base64-vlq.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/util.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/array-set.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/mapping-list.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-map-generator.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/binary-search.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/quick-sort.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-map-consumer.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-node.js", "../node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/source-map.js", "../node_modules/.pnpm/buffer-from@1.1.2/node_modules/buffer-from/index.js", "../node_modules/.pnpm/source-map-support@0.5.21/node_modules/source-map-support/source-map-support.js", "../node_modules/.pnpm/bunyan@1.8.15/node_modules/bunyan/lib/bunyan.js", "../node_modules/.pnpm/universalify@2.0.1/node_modules/universalify/index.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js", "../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/fs/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/mkdirs/utils.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/mkdirs/make-dir.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/mkdirs/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/path-exists/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/util/utimes.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/util/stat.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/copy/copy.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/copy/copy-sync.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/copy/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/remove/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/empty/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/file.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/link.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/symlink-paths.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/symlink-type.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/symlink.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/ensure/index.js", "../node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/utils.js", "../node_modules/.pnpm/jsonfile@6.1.0/node_modules/jsonfile/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/jsonfile.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/output-file/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/output-json.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/output-json-sync.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/json/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/move/move.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/move/move-sync.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/move/index.js", "../node_modules/.pnpm/fs-extra@11.2.0/node_modules/fs-extra/lib/index.js", "../node_modules/.pnpm/nanoid@3.3.8/node_modules/nanoid/url-alphabet/index.cjs", "../node_modules/.pnpm/nanoid@3.3.8/node_modules/nanoid/index.cjs", "../node_modules/.pnpm/upath@2.0.1/node_modules/upath/build/code/upath.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/cmd-serializer.ts", "../node_modules/.pnpm/neotraverse@0.6.18/node_modules/neotraverse/dist/legacy/legacy.cjs", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/config-serializer.ts", "../node_modules/.pnpm/p-cancelable@2.1.1/node_modules/p-cancelable/index.js", "../node_modules/.pnpm/defer-to-connect@2.0.1/node_modules/defer-to-connect/dist/source/index.js", "../node_modules/.pnpm/@szmarczak+http-timer@4.0.6/node_modules/@szmarczak/http-timer/dist/source/index.js", "../node_modules/.pnpm/cacheable-lookup@5.0.4/node_modules/cacheable-lookup/source/index.js", "../node_modules/.pnpm/normalize-url@6.1.0/node_modules/normalize-url/index.js", "../node_modules/.pnpm/end-of-stream@1.4.4/node_modules/end-of-stream/index.js", "../node_modules/.pnpm/pump@3.0.2/node_modules/pump/index.js", "../node_modules/.pnpm/get-stream@5.2.0/node_modules/get-stream/buffer-stream.js", "../node_modules/.pnpm/get-stream@5.2.0/node_modules/get-stream/index.js", "../node_modules/.pnpm/http-cache-semantics@4.1.1/node_modules/http-cache-semantics/index.js", "../node_modules/.pnpm/lowercase-keys@2.0.0/node_modules/lowercase-keys/index.js", "../node_modules/.pnpm/responselike@2.0.1/node_modules/responselike/src/index.js", "../node_modules/.pnpm/mimic-response@1.0.1/node_modules/mimic-response/index.js", "../node_modules/.pnpm/clone-response@1.0.3/node_modules/clone-response/src/index.js", "../node_modules/.pnpm/json-buffer@3.0.1/node_modules/json-buffer/index.js", "../node_modules/.pnpm/keyv@4.5.4/node_modules/keyv/src/index.js", "../node_modules/.pnpm/cacheable-request@7.0.4/node_modules/cacheable-request/src/index.js", "../node_modules/.pnpm/mimic-response@3.1.0/node_modules/mimic-response/index.js", "../node_modules/.pnpm/decompress-response@6.0.0/node_modules/decompress-response/index.js", "../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/agent.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/incoming-message.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/url-to-options.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/proxy-events.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/errors.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/client-request.js", "../node_modules/.pnpm/resolve-alpn@1.2.1/node_modules/resolve-alpn/index.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/utils/calculate-server-name.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/auto.js", "../node_modules/.pnpm/http2-wrapper@1.0.3/node_modules/http2-wrapper/source/index.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/is-form-data.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/get-body-size.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/proxy-events.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/unhandle.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/timed-out.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/url-to-options.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/options-to-url.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/weakable-map.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/get-buffer.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/dns-ip-version.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/utils/is-response-ok.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/utils/deprecation-warning.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/normalize-arguments.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/calculate-retry-delay.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/core/index.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/types.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/parse-body.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/index.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/as-promise/create-rejection.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/utils/deep-freeze.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/types.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/create.js", "../node_modules/.pnpm/got@11.8.6/node_modules/got/dist/source/index.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/util.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/ZodError.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/locales/en.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/errors.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/parseUtil.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/typeAliases.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/helpers/errorUtil.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/types.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/external.js", "../node_modules/.pnpm/zod@3.24.1/node_modules/zod/lib/index.js", "../node_modules/.pnpm/re2@1.21.4/node_modules/re2/re2.js", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/doc.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/acorn.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/angular.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/babel.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/estree.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/flow.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/glimmer.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/graphql.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/markdown.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/meriyah.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/postcss.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/typescript.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/yaml.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/index.mjs", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/doc.js", "../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/index.cjs", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/writer.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/util.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/reader.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/web-stream-tools/lib/streams.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/enums.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/config/config.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/util.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/encoding/base64.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/encoding/armor.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hash/md5.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hash/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/_assert.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/_polyval.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/ciphers/esm/aes.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/cfb.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cmac.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/eax.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/ocb.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/gcm.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/mode/index.js", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/biginteger.ts", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/random.js", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/prime.ts", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/pkcs1.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/rsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elgamal.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/tweetnacl/crypto.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/tweetnacl/nacl-fast.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/oid.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/packet.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/eddsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/aes_kw.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hkdf.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/ecdh_x.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/oid_curves.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/ecdsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/eddsa_legacy.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/pkcs5.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/ecdh.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/dsa.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/ecdh_symkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/kdf_params.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/ecdh_x_symkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/crypto.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/s2k/argon2.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/s2k/generic.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/s2k/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/fflate/esm/index.mjs", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/literal_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/type/keyid.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/one_pass_signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/packetlist.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/compressed_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/sym_encrypted_integrity_protected_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/aead_encrypted_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/public_key_encrypted_session_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/sym_encrypted_session_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/public_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/symmetrically_encrypted_data.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/public_subkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/user_attribute.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/secret_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/userid.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/secret_subkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/signature.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/helper.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/user.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/subkey.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/public_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/private_key.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/key/factory.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/message.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/cleartext.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/openpgp.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/_assert.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/cryptoNode.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/_md.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha256.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/hmac.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/modular.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/curve.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/weierstrass.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/_shortw_utils.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/p256.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/_u64.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha512.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/p384.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/p521.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha3.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/edwards.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/abstract/montgomery.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/ed448.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/curves/esm/secp256k1.js", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/elliptic/brainpool/brainpoolP256r1.ts", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/elliptic/brainpool/brainpoolP384r1.ts", "../node_modules/.pnpm/openpgp@6.0.1/src/crypto/public_key/elliptic/brainpool/brainpoolP512r1.ts", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/public_key/elliptic/noble_curves.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/des.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/cast5.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/twofish.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/blowfish.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/cipher/legacy_ciphers.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/sha1.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@noble/hashes/esm/ripemd160.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/crypto/hash/noble_hashes.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/lib/blake2b.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/lib/argon2id.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/lib/setup.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/argon2id/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/bitreader.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/stream.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/crc32.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/node_modules/@openpgp/seek-bzip/lib/index.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/marker.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/padding.js", "../node_modules/.pnpm/openpgp@6.0.1/node_modules/openpgp/src/packet/trust.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/util.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/sqlite-error.js", "../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js", "../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/wrappers.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/transaction.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/pragma.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/backup.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/serialize.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/function.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/aggregate.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/table.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/methods/inspect.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/database.js", "../node_modules/.pnpm/better-sqlite3@11.7.0/node_modules/better-sqlite3/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/expose.cjs", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/regex.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/string.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/sanitize.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/err-serializer.ts", "../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js", "../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js", "../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js", "../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js", "../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js", "../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js", "../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js", "../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js", "../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js", "../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js", "../node_modules/.pnpm/json-stringify-pretty-compact@3.0.0/node_modules/json-stringify-pretty-compact/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/pretty-stdout.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/once.ts", "../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/assert-valid-pattern.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/brace-expressions.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/unescape.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/ast.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/escape.ts", "../node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/src/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/minimatch.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/string-match.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/remap.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/renovate-logger.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/logger/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/types/errors/external-host-error.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/array.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/memory/index.ts", "../node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/immutable.js", "../node_modules/.pnpm/parse-link-header@2.0.0/node_modules/parse-link-header/index.js", "../node_modules/.pnpm/url-join@4.0.1/node_modules/url-join/lib/url-join.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/stats.ts", "../node_modules/.pnpm/minipass@7.1.2/node_modules/minipass/src/index.ts", "../node_modules/.pnpm/minipass-collect@2.0.1/node_modules/minipass-collect/index.js", "../node_modules/.pnpm/minipass@3.3.6/node_modules/minipass/index.js", "../node_modules/.pnpm/minipass-pipeline@1.2.4/node_modules/minipass-pipeline/index.js", "../node_modules/.pnpm/ssri@12.0.0/node_modules/ssri/lib/index.js", "../node_modules/.pnpm/imurmurhash@0.1.4/node_modules/imurmurhash/imurmurhash.js", "../node_modules/.pnpm/unique-slug@5.0.0/node_modules/unique-slug/lib/index.js", "../node_modules/.pnpm/unique-filename@4.0.0/node_modules/unique-filename/lib/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/package.json", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/util/hash-to-segments.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/path.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/common/get-options.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/constants.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/debug.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/re.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/parse-options.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/identifiers.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/classes/semver.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/parse.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/valid.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/clean.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/inc.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/diff.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/major.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/minor.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/patch.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/prerelease.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/compare.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/rcompare.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/compare-loose.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/compare-build.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/sort.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/rsort.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/gt.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/lt.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/eq.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/neq.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/gte.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/lte.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/cmp.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/coerce.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/internal/lrucache.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/classes/range.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/classes/comparator.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/functions/satisfies.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/to-comparators.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/max-satisfying.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/min-satisfying.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/min-version.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/valid.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/outside.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/gtr.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/ltr.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/intersects.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/simplify.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/ranges/subset.js", "../node_modules/.pnpm/semver@7.6.3/node_modules/semver/index.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/common/node.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/cp/errors.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/cp/polyfill.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/cp/index.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/with-temp-dir.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/readdir-scoped.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/move-file.js", "../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/index.js", "../node_modules/.pnpm/p-map@7.0.3/node_modules/p-map/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/entry-index.js", "../node_modules/.pnpm/lru-cache@10.4.3/node_modules/lru-cache/src/index.ts", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/memoization.js", "../node_modules/.pnpm/fs-minipass@3.0.3/node_modules/fs-minipass/lib/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/read.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/get.js", "../node_modules/.pnpm/minipass-flush@1.0.5/node_modules/minipass-flush/index.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/write.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/put.js", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/assert-valid-pattern.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/brace-expressions.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/unescape.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/ast.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/escape.ts", "../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/src/index.ts", "../node_modules/.pnpm/path-scurry@1.11.1/node_modules/path-scurry/src/index.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/pattern.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/ignore.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/processor.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/walker.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/glob.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/has-magic.ts", "../node_modules/.pnpm/glob@10.4.5/node_modules/glob/src/index.ts", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/util/glob.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/content/rm.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/rm.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/verify.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/util/tmp.js", "../node_modules/.pnpm/cacache@19.0.1/node_modules/cacache/lib/index.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/errors.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/formats.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/systemZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/IANAZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/locale.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/fixedOffsetZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zones/invalidZone.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/zoneUtil.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/digits.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/settings.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/invalid.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/conversions.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/util.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/english.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/formatter.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/regexParser.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/duration.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/interval.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/info.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/diff.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/impl/tokenParser.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/datetime.js", "../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/luxon.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/compress.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/file.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/key.ts", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/APPEND.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITFIELD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/generic-transformers.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BITPOS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BLMOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BLMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BLPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BRPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BZMPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COPY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DECR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DECRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DUMP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVAL_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVAL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EVALSHA.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXISTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FCALL_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FCALL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEODIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOHASH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOPOS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETBIT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETDEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/GETSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HDEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXISTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HGETALL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HINCRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HKEYS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HMGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPERSIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HPTTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSETNX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HSTRLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HTTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HVALS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INCR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INCRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS_IDX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LCS_LEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LINDEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LINSERT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LMOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LPUSHX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LREM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LTRIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MIGRATE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MSET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MSETNX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PERSIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PEXPIRE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PFADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PFCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PFMERGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PSETEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PTTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBLISH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RENAME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RENAMENX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RESTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RPUSHX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SDIFF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETBIT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETNX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SETRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SINTER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SINTERCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SISMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SMEMBERS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SMOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SORT_RO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SORT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SORT_STORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SPOP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SPUBLISH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SREM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SSCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/STRLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SUNION.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TOUCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TTL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TYPE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/UNLINK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/WATCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XACK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XCLAIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XDEL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XLEN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XPENDING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XREAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XREADGROUP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XREVRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XSETID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/XTRIM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZADD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZDIFF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINCRBY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZMSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZRANK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREM.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZREVRANK.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZSCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZSCORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZUNION.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/commands.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_CAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_LOG.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_USERS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ASKING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/AUTH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/BGSAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/COMMAND.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DBSIZE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/DISCARD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ECHO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FAILOVER.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FLUSHALL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FLUSHDB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/HELLO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/INFO.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/KEYS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LASTSAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/LOLWUT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/MOVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/READONLY.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/READWRITE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/REPLICAOF.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/ROLE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SAVE.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCAN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/SWAPDB.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/TIME.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/UNWATCH.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commands/WAIT.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/commands.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/errors.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/utils.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/socket.js", "../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/iterator.js", "../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/yallist.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/decoder.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/pub-sub.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/commands-queue.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/command-options.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/commander.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/multi-command.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/multi-command.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/factoryValidator.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PoolDefaults.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PoolOptions.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Deferred.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/errors.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/ResourceRequest.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/ResourceLoan.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PooledResourceStateEnum.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PooledResource.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DefaultEvictor.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DoublyLinkedList.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DoublyLinkedListIterator.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/DequeIterator.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Deque.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Queue.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/PriorityQueue.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/utils.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/lib/Pool.js", "../node_modules/.pnpm/generic-pool@3.9.0/node_modules/generic-pool/index.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/package.json", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/client/index.js", "../node_modules/.pnpm/cluster-key-slot@1.1.2/node_modules/cluster-key-slot/lib/index.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/cluster-slots.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/multi-command.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/cluster/index.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/lib/lua-script.js", "../node_modules/.pnpm/@redis+client@1.6.0/node_modules/@redis/client/dist/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/CARD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/INSERT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/MADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/bloom/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/cuckoo/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/CDF.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/MAX.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/MIN.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/RANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/RESET.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/t-digest/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/ADD.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/COUNT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/INFO.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/LIST.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/QUERY.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/top-k/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/commands/index.js", "../node_modules/.pnpm/@redis+bloom@1.2.0_@redis+client@1.6.0/node_modules/@redis/bloom/dist/index.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/CONFIG_GET.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/CONFIG_SET.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/DELETE.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/EXPLAIN.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/LIST.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/PROFILE.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/QUERY.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/RO_QUERY.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/SLOWLOG.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/commands/index.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/graph.js", "../node_modules/.pnpm/@redis+graph@1.1.1_@redis+client@1.6.0/node_modules/@redis/graph/dist/index.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRAPPEND.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRINDEX.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRINSERT.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRLEN.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRPOP.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/ARRTRIM.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/DEL.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/FORGET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/GET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/MERGE.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/MGET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/MSET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/NUMINCRBY.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/NUMMULTBY.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/OBJKEYS.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/OBJLEN.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/RESP.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/SET.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/STRAPPEND.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/STRLEN.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/TYPE.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/commands/index.js", "../node_modules/.pnpm/@redis+json@1.0.7_@redis+client@1.6.0/node_modules/@redis/json/dist/index.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/_LIST.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALTER.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/AGGREGATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALIASADD.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALIASDEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/ALIASUPDATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CONFIG_GET.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CONFIG_SET.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CREATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CURSOR_DEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/CURSOR_READ.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DICTADD.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DICTDEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DICTDUMP.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/DROPINDEX.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/EXPLAIN.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/EXPLAINCLI.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/INFO.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SEARCH.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SPELLCHECK.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGADD.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGDEL.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SUGLEN.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SYNDUMP.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/SYNUPDATE.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/TAGVALS.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/commands/index.js", "../node_modules/.pnpm/@redis+search@1.2.0_@redis+client@1.6.0/node_modules/@redis/search/dist/index.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/ADD.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/ALTER.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/CREATE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/CREATERULE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/DECRBY.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/DEL.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/DELETERULE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/GET.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/INCRBY.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/INFO.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MADD.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MGET.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/QUERYINDEX.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/RANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/REVRANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MRANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MREVRANGE.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/commands/index.js", "../node_modules/.pnpm/@redis+time-series@1.1.0_@redis+client@1.6.0/node_modules/@redis/time-series/dist/index.js", "../node_modules/.pnpm/redis@4.7.0/node_modules/redis/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/redis.ts", "../node_modules/.pnpm/yocto-queue@0.1.0/node_modules/yocto-queue/index.js", "../node_modules/.pnpm/p-limit@3.1.0/node_modules/p-limit/index.js", "../node_modules/.pnpm/p-locate@5.0.0/node_modules/p-locate/index.js", "../node_modules/.pnpm/locate-path@6.0.0/node_modules/locate-path/index.js", "../node_modules/.pnpm/path-exists@4.0.0/node_modules/path-exists/index.js", "../node_modules/.pnpm/find-up@5.0.0/node_modules/find-up/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/fs/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/fs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/sqlite.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/index.ts", "../node_modules/.pnpm/klona@2.0.6/node_modules/klona/json/index.js", "../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/stringify.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/clone.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/filter-map.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/result.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/decorator/index.ts", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/errors.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/Semaphore.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/Mutex.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/withTimeout.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/tryAcquire.js", "../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/mutex.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/package/decorator.ts", "../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/node.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/type.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/comment.js", "../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js", "../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js", "../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/generated/decode-data-html.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/generated/decode-data-xml.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/generated/encode-html.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.ts", "../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js", "../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.ts", "../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.js", "../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/index.js", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/sort.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/attributes.ts", "../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.ts", "../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.ts", "../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/filters.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/pseudos.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/aliases.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/subselects.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudo-selectors/index.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/general.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/compile.ts", "../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/index.ts", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/back.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/matcher.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/void-tag.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/text.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/html.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/parse.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/valid.js", "../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/html.ts", "../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/hash.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/constants/platforms.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/constants/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/auth.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/hooks.ts", "../node_modules/.pnpm/boolean@3.2.0/node_modules/boolean/build/lib/boolean.js", "../node_modules/.pnpm/boolean@3.2.0/node_modules/boolean/build/lib/isBooleanable.js", "../node_modules/.pnpm/boolean@3.2.0/node_modules/boolean/build/lib/index.js", "../node_modules/.pnpm/detect-node@2.1.0/node_modules/detect-node/index.esm.js", "../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js", "../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js", "../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js", "../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js", "../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js", "../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js", "../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js", "../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js", "../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js", "../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js", "../node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/implementation.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/polyfill.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/shim.js", "../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/index.js", "../node_modules/.pnpm/json-stringify-safe@5.0.1/node_modules/json-stringify-safe/stringify.js", "../node_modules/.pnpm/sprintf-js@1.1.3/node_modules/sprintf-js/src/sprintf.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/constants.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createLogger.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createMockLogger.js", "../node_modules/.pnpm/semver-compare@1.0.0/node_modules/semver-compare/index.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/package.json", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createNodeWriter.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/createRoarrInititialGlobalState.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/factories/index.js", "../node_modules/.pnpm/roarr@2.15.4/node_modules/roarr/src/log.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/Logger.js", "../node_modules/.pnpm/serialize-error@7.0.1/node_modules/serialize-error/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/Agent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/HttpProxyAgent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/HttpsProxyAgent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/classes/index.js", "../node_modules/.pnpm/es6-error@4.1.1/node_modules/es6-error/es6/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/errors.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/bindHttpMethod.js", "../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js", "../node_modules/.pnpm/matcher@3.0.0/node_modules/matcher/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/isUrlMatchingNoProxy.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/parseProxyUrl.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/utilities/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/factories/createProxyController.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/factories/createGlobalProxyAgent.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/factories/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/routines/bootstrap.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/routines/index.js", "../node_modules/.pnpm/global-agent@3.0.0/node_modules/global-agent/src/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/proxy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/host-rules.ts", "../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js", "../node_modules/.pnpm/humanize-ms@1.2.1/node_modules/humanize-ms/index.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/constants.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/agent.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/https_agent.js", "../node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/keep-alive.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/host-rules.ts", "../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js", "../node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.js", "../node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.js", "../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.js", "../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.js", "../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/rate-limits.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/queue.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/retry-after.ts", "../node_modules/.pnpm/p-throttle@4.1.1/node_modules/p-throttle/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/throttle.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/legacy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/datasource.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/artifactory/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/artifactory/index.ts", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/extensions/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/abort.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/auth.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpApiKeyAuth.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpAuthScheme.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpAuthSchemeProvider.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/HttpSigner.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/IdentityProviderConfig.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/auth/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/blob/blob-payload-input-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/checksum.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/client.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/command.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/config.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/manager.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/pool.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/connection/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/crypto.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/encode.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoint.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/EndpointRuleObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/ErrorRuleObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/RuleSetObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/shared.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/TreeRuleObject.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/endpoints/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/eventStream.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/checksum.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/defaultClientConfiguration.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/defaultExtensionConfiguration.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/extensions/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/feature-ids.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/http.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/http/httpHandlerInitialization.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/apiKeyIdentity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/awsCredentialIdentity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/identity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/tokenIdentity.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/identity/index.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/logger.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/middleware.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/pagination.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/profile.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/response.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/retry.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/serde.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/shapes.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/signature.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/stream.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-common-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-payload-input-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-payload-output-types.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transfer.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transform/client-payload-blob-type-narrow.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transform/no-undefined.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/transform/type-transform.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/uri.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/util.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/waiter.js", "../node_modules/.pnpm/@smithy+types@3.7.2/node_modules/@smithy/types/dist-es/index.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/Field.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/Fields.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/httpHandler.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/httpRequest.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/httpResponse.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/isValidHostname.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/types.js", "../node_modules/.pnpm/@smithy+protocol-http@4.1.8/node_modules/@smithy/protocol-http/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-host-header@3.696.0/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-logger@3.696.0/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-logger@3.696.0/node_modules/@aws-sdk/middleware-logger/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-recursion-detection@3.696.0/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/getSmithyContext.js", "../node_modules/.pnpm/@smithy+util-middleware@3.0.11/node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js", "../node_modules/.pnpm/@smithy+util-middleware@3.0.11/node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js", "../node_modules/.pnpm/@smithy+util-middleware@3.0.11/node_modules/@smithy/util-middleware/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js", "../node_modules/.pnpm/@smithy+middleware-serde@3.0.11/node_modules/@smithy/middleware-serde/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/middleware-http-signing/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/normalizeProvider.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/pagination/createPaginator.js", "../node_modules/.pnpm/@smithy+is-array-buffer@3.0.0/node_modules/@smithy/is-array-buffer/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-buffer-from@3.0.0/node_modules/@smithy/util-buffer-from/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-base64@3.0.0/node_modules/@smithy/util-base64/dist-es/fromBase64.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/fromUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/toUint8Array.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/toUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@3.0.0/node_modules/@smithy/util-utf8/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-base64@3.0.0/node_modules/@smithy/util-base64/dist-es/toBase64.js", "../node_modules/.pnpm/@smithy+util-base64@3.0.0/node_modules/@smithy/util-base64/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/blob/transforms.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/getAwsChunkedEncodingStream.js", "../node_modules/.pnpm/@smithy+util-uri-escape@3.0.0/node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js", "../node_modules/.pnpm/@smithy+util-uri-escape@3.0.0/node_modules/@smithy/util-uri-escape/dist-es/escape-uri-path.js", "../node_modules/.pnpm/@smithy+util-uri-escape@3.0.0/node_modules/@smithy/util-uri-escape/dist-es/index.js", "../node_modules/.pnpm/@smithy+querystring-builder@3.0.11/node_modules/@smithy/querystring-builder/dist-es/index.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/constants.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/timing.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js", "../node_modules/.pnpm/@smithy+node-http-handler@3.3.2/node_modules/@smithy/node-http-handler/dist-es/index.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/create-request.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js", "../node_modules/.pnpm/@smithy+fetch-http-handler@4.1.2/node_modules/@smithy/fetch-http-handler/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-hex-encoding@3.0.0/node_modules/@smithy/util-hex-encoding/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/stream-type-check.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/splitStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/splitStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/headStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/headStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/createChecksumStream.browser.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/checksum/createChecksumStream.js", "../node_modules/.pnpm/@smithy+util-stream@3.3.2/node_modules/@smithy/util-stream/dist-es/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/submodules/protocols/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/protocols/requestBuilder.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/setFeature.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/noAuth.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/util-identity-and-auth/index.js", "../node_modules/.pnpm/@smithy+core@2.5.5/node_modules/@smithy/core/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/isIpAddress.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/isValidHostLabel.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/debug/debugId.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/debug/toDebugString.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/debug/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/EndpointError.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/EndpointFunctions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/EndpointRuleObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/ErrorRuleObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/RuleSetObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/TreeRuleObject.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/shared.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/types/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/booleanEquals.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/getAttrPathList.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/isSet.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/not.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/parseURL.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/stringEquals.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/substring.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/uriEncode.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/lib/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/callFunction.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperty.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointUrl.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTreeRule.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/utils/index.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js", "../node_modules/.pnpm/@smithy+util-endpoints@2.1.7/node_modules/@smithy/util-endpoints/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/aws.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointRuleObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/ErrorRuleObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/RuleSetObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/TreeRuleObject.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/shared.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/types/index.js", "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.696.0/node_modules/@aws-sdk/util-endpoints/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/ProviderError.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/chain.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/fromStatic.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/memoize.js", "../node_modules/.pnpm/@smithy+property-provider@3.1.11/node_modules/@smithy/property-provider/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/constants.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/headerUtil.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/prepareRequest.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/utilDate.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/SignatureV4.js", "../node_modules/.pnpm/@smithy+signature-v4@4.2.4/node_modules/@smithy/signature-v4/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/coercing-serializers.js", "../node_modules/.pnpm/@smithy+middleware-stack@3.0.11/node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js", "../node_modules/.pnpm/@smithy+middleware-stack@3.0.11/node_modules/@smithy/middleware-stack/dist-es/index.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/client.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/collect-stream-body.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/command.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/constants.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/create-aggregated-client.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/parse-utils.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/date-utils.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/exceptions.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/default-error-handler.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/defaults-mode.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/emitWarningIfUnsupportedVersion.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extended-encode-uri-component.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/retry.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/extensions/index.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/get-array-if-single-item.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/get-value-from-text-node.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/is-serializable-header-value.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/lazy-json.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/object-mapping.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/quote-header.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/resolve-path.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/ser-utils.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/serde-json.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/split-every.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/split-header.js", "../node_modules/.pnpm/@smithy+smithy-client@3.5.0/node_modules/@smithy/smithy-client/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/awsExpectUnion.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/util.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/validator.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js", "../node_modules/.pnpm/strnum@1.0.5/node_modules/strnum/strnum.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/node2json.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js", "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/fxp.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js", "../node_modules/.pnpm/@aws-sdk+core@3.696.0/node_modules/@aws-sdk/core/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/check-features.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/encode-features.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.696.0/node_modules/@aws-sdk/middleware-user-agent/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/numberSelector.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/types.js", "../node_modules/.pnpm/@smithy+util-config-provider@3.0.0/node_modules/@smithy/util-config-provider/dist-es/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/resolveCustomEndpointsConfig.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/config.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionConfig/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/PartitionHash.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/RegionHash.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getResolvedHostname.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getResolvedPartition.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/getRegionInfo.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/regionInfo/index.js", "../node_modules/.pnpm/@smithy+config-resolver@3.0.13/node_modules/@smithy/config-resolver/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-content-length@3.0.13/node_modules/@smithy/middleware-content-length/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/getSelectorName.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/fromEnv.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getHomeDir.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFilepath.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigData.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigFilepath.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getCredentialsFilepath.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/parseIni.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/slurpFile.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSharedConfigFiles.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/getSsoSessionData.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSsoSessionData.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/mergeConfigFiles.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/parseKnownFiles.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/types.js", "../node_modules/.pnpm/@smithy+shared-ini-file-loader@3.1.12/node_modules/@smithy/shared-ini-file-loader/dist-es/index.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/fromSharedConfigFiles.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/fromStatic.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/configLoader.js", "../node_modules/.pnpm/@smithy+node-config-provider@3.1.12/node_modules/@smithy/node-config-provider/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointUrlConfig.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.js", "../node_modules/.pnpm/@smithy+querystring-parser@3.0.11/node_modules/@smithy/querystring-parser/dist-es/index.js", "../node_modules/.pnpm/@smithy+url-parser@3.0.11/node_modules/@smithy/url-parser/dist-es/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/index.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/types.js", "../node_modules/.pnpm/@smithy+middleware-endpoint@3.2.5/node_modules/@smithy/middleware-endpoint/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/config.js", "../node_modules/.pnpm/@smithy+service-error-classification@3.0.11/node_modules/@smithy/service-error-classification/dist-es/constants.js", "../node_modules/.pnpm/@smithy+service-error-classification@3.0.11/node_modules/@smithy/service-error-classification/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/constants.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/ConfiguredRetryStrategy.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/types.js", "../node_modules/.pnpm/@smithy+util-retry@3.0.11/node_modules/@smithy/util-retry/dist-es/index.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/rng.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/regex.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/validate.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/stringify.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v1.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/parse.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v35.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/md5.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v3.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/native.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v4.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/sha1.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v5.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/nil.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/version.js", "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/index.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/defaultRetryQuota.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/delayDecider.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/retryDecider.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/util.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/StandardRetryStrategy.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/AdaptiveRetryStrategy.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/configurations.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/omitRetryHeadersMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/isStreamingPayload/isStreamingPayload.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js", "../node_modules/.pnpm/@smithy+middleware-retry@3.0.30/node_modules/@smithy/middleware-retry/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/package.json", "../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.696.0/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.696.0/node_modules/@aws-sdk/credential-provider-env/dist-es/index.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/types.js", "../node_modules/.pnpm/@smithy+credential-provider-imds@3.2.8/node_modules/@smithy/credential-provider-imds/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/checkUrl.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/requestHelpers.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/retry-wrapper.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.696.0/node_modules/@aws-sdk/credential-provider-http/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-st_wniir447b4d6bdscdohi7gdupy/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/constants.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/package.json", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/crt-availability.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/is-crt-available.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/defaultUserAgent.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/nodeAppIdConfigOptions.js", "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.696.0/node_modules/@aws-sdk/util-user-agent-node/dist-es/index.js", "../node_modules/.pnpm/@smithy+hash-node@3.0.11/node_modules/@smithy/hash-node/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-body-length-node@3.0.0/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js", "../node_modules/.pnpm/@smithy+util-body-length-node@3.0.0/node_modules/@smithy/util-body-length-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/constants.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/defaultsModeConfig.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/resolveDefaultsModeConfig.js", "../node_modules/.pnpm/@smithy+util-defaults-mode-node@3.0.30/node_modules/@smithy/util-defaults-mode-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/config.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/isFipsRegion.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/getRealRegion.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/resolveRegionConfig.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/index.js", "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.696.0/node_modules/@aws-sdk/region-config-resolver/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/SSOOIDCClient.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/models/SSOOIDCServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/protocols/Aws_restJson1.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/CreateTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/CreateTokenWithIAMCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/RegisterClientCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/StartDeviceAuthorizationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/SSOOIDC.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sso-oidc/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js", "../node_modules/.pnpm/@aws-sdk+token-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/token-providers/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/package.json", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/models/SSOServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/protocols/Aws_restJson1.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/GetRoleCredentialsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/LogoutCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/SSO.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/ListAccountRolesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/ListAccountsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-sso@3.696.0/node_modules/@aws-sdk/client-sso/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/loadSso.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-provider-sso/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveCredentialSource.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/package.json", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/STSClient.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/models/STSServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/protocols/Aws_query.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithSAMLCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithWebIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRootCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/DecodeAuthorizationMessageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetAccessKeyInfoCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetCallerIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetFederationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/GetSessionTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/STS.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/defaultStsRoleAssumers.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/defaultRoleAssumers.js", "../node_modules/.pnpm/@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/client-sts/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/getValidatedProcessCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.696.0/node_modules/@aws-sdk/credential-provider-process/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProcessCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveStaticCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.696.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.696.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.696.0_@aws-sdk+client-sts@3.699.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts_2guavycxfirw3d2d2k6433ciba/node_modules/@aws-sdk/credential-provider-ini/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-st_wniir447b4d6bdscdohi7gdupy/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-st_wniir447b4d6bdscdohi7gdupy/node_modules/@aws-sdk/credential-provider-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/EC2Client.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/EC2ServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/protocols/Aws_ec2.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptAddressTransferCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptCapacityReservationBillingOwnershipCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptReservedInstancesExchangeQuoteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptTransitGatewayMulticastDomainAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptVpcEndpointConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AcceptVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AdvertiseByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AllocateAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AllocateHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AllocateIpamPoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ApplySecurityGroupsToClientVpnTargetNetworkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssignIpv6AddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssignPrivateIpAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssignPrivateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateCapacityReservationBillingOwnerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateClientVpnTargetNetworkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateEnclaveCertificateIamRoleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateIamInstanceProfileCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateSecurityGroupVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateSubnetCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateTrunkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AssociateVpcCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachClassicLinkVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AttachVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AuthorizeClientVpnIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AuthorizeSecurityGroupEgressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/AuthorizeSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/BundleInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelBundleTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelCapacityReservationFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelConversionTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelImageLaunchPermissionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelImportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelReservedInstancesListingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelSpotFleetRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CancelSpotInstanceRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ConfirmProductInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CopyFpgaImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CopyImageCommand.js", "../node_modules/.pnpm/@aws-sdk+util-format-url@3.696.0/node_modules/@aws-sdk/util-format-url/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-ec2@3.696.0/node_modules/@aws-sdk/middleware-sdk-ec2/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CopySnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCapacityReservationBySplittingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCapacityReservationFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCarrierGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateClientVpnEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateClientVpnRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCoipPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateCustomerGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateDefaultSubnetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateDefaultVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateEgressOnlyInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateFlowLogsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateFpgaImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInstanceConnectEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInstanceExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamExternalResourceVerificationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateIpamScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_1.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateKeyPairCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLaunchTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLaunchTemplateVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateLocalGatewayRouteTableVpcAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateManagedPrefixListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNatGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkAclEntryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInsightsAccessScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInsightsPathCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateNetworkInterfacePermissionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreatePlacementGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreatePublicIpv4PoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateReplaceRootVolumeTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateReservedInstancesListingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateRestoreImageTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSpotDatafeedSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateStoreImageTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSubnetCidrReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateSubnetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTagsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorFilterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorFilterRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTrafficMirrorTargetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayConnectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayConnectPeerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayPrefixListReferenceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayRouteTableAnnouncementCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_2.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcBlockPublicAccessExclusionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcEndpointConnectionNotificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcEndpointServiceConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpnConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpnConnectionRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/CreateVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCarrierGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteClientVpnEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteClientVpnRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCoipPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteCustomerGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteEgressOnlyInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteFlowLogsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteFpgaImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteInstanceConnectEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamExternalResourceVerificationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteIpamScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteKeyPairCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLaunchTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLaunchTemplateVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteLocalGatewayRouteTableVpcAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteManagedPrefixListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNatGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkAclEntryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsAccessScopeAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsAccessScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInsightsPathCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteNetworkInterfacePermissionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeletePlacementGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeletePublicIpv4PoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteQueuedReservedInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSpotDatafeedSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSubnetCidrReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteSubnetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTagsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorFilterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorFilterRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTrafficMirrorTargetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayConnectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayConnectPeerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayPrefixListReferenceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayRouteTableAnnouncementCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_3.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcBlockPublicAccessExclusionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcEndpointConnectionNotificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcEndpointServiceConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpnConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpnConnectionRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeleteVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionIpamPoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeprovisionPublicIpv4PoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterInstanceEventNotificationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterTransitGatewayMulticastGroupMembersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DeregisterTransitGatewayMulticastGroupSourcesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAccountAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAddressesAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAddressTransfersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAggregateIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAvailabilityZonesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeAwsNetworkPerformanceMetricSubscriptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeBundleTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeByoipCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityBlockExtensionHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityBlockExtensionOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityBlockOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityReservationBillingRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityReservationFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCapacityReservationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCarrierGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClassicLinkInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnAuthorizationRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeClientVpnTargetNetworksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCoipPoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeConversionTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeCustomerGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeDhcpOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeEgressOnlyInternetGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeElasticGpusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeExportImageTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeExportTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFastLaunchImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFastSnapshotRestoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFleetHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFleetInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFleetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFlowLogsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFpgaImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeFpgaImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeHostReservationOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeHostReservationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIamInstanceProfileAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIdentityIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_4.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImportImageTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeImportSnapshotTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceConnectEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceCreditSpecificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceEventNotificationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceEventWindowsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceImageMetadataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceTopologyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceTypeOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInstanceTypesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeInternetGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamExternalResourceVerificationTokensCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamPoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamResourceDiscoveriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamResourceDiscoveryAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpamScopesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeIpv6PoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeKeyPairsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLaunchTemplatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLaunchTemplateVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayRouteTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayRouteTableVpcAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayVirtualInterfaceGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLocalGatewayVirtualInterfacesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeLockedSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeMacHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeManagedPrefixListsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeMovingAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNatGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkAclsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsAccessScopeAnalysesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsAccessScopesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsAnalysesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInsightsPathsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInterfaceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInterfacePermissionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeNetworkInterfacesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePlacementGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePrefixListsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePrincipalIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribePublicIpv4PoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeRegionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReplaceRootVolumeTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesListingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesModificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeReservedInstancesOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeRouteTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeScheduledInstanceAvailabilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeScheduledInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupReferencesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSecurityGroupVpcAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSnapshotTierStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotDatafeedSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotFleetInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotFleetRequestHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_5.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotFleetRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotInstanceRequestsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSpotPriceHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeStaleSecurityGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeStoreImageTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeSubnetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTagsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorFilterRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorFiltersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorSessionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrafficMirrorTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayAttachmentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayConnectPeersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayConnectsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayMulticastDomainsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayPeeringAttachmentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayPolicyTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayRouteTableAnnouncementsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayRouteTablesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTransitGatewayVpcAttachmentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeTrunkInterfaceAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessInstanceLoggingConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVerifiedAccessTrustProvidersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumeAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumesModificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVolumeStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcBlockPublicAccessExclusionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcBlockPublicAccessOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcClassicLinkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcClassicLinkDnsSupportCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointConnectionNotificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointServiceConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointServicePermissionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcEndpointServicesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcPeeringConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpcsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpnConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DescribeVpnGatewaysCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachClassicLinkVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachInternetGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachNetworkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DetachVpnGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableAddressTransferCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableAwsNetworkPerformanceMetricSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableEbsEncryptionByDefaultCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableFastLaunchCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableFastSnapshotRestoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageDeprecationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableImageDeregistrationProtectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableIpamOrganizationAdminAccountCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableSerialConsoleAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableSnapshotBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableTransitGatewayRouteTablePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableVgwRoutePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableVpcClassicLinkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisableVpcClassicLinkDnsSupportCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateCapacityReservationBillingOwnerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateClientVpnTargetNetworkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateEnclaveCertificateIamRoleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateIamInstanceProfileCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateSecurityGroupVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateSubnetCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTransitGatewayMulticastDomainCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTransitGatewayPolicyTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTransitGatewayRouteTableCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateTrunkInterfaceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/DisassociateVpcCidrBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableAddressTransferCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableAwsNetworkPerformanceMetricSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableEbsEncryptionByDefaultCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableFastLaunchCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableFastSnapshotRestoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageDeprecationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableImageDeregistrationProtectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableIpamOrganizationAdminAccountCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableReachabilityAnalyzerOrganizationSharingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableSerialConsoleAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableSnapshotBlockPublicAccessCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableTransitGatewayRouteTablePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVgwRoutePropagationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVolumeIOCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVpcClassicLinkCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/EnableVpcClassicLinkDnsSupportCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportClientVpnClientCertificateRevocationListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportClientVpnClientConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ExportTransitGatewayRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetAssociatedEnclaveCertificateIamRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetAssociatedIpv6PoolCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetAwsNetworkPerformanceDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetCapacityReservationUsageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetCoipPoolUsageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetConsoleOutputCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetConsoleScreenshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetDefaultCreditSpecificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetEbsDefaultKmsKeyIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetEbsEncryptionByDefaultCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetFlowLogsIntegrationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetGroupsForCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetHostReservationPurchasePreviewCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetImageBlockPublicAccessStateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceMetadataDefaultsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_6.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceTpmEkPubCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceTypesFromInstanceRequirementsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetInstanceUefiDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamAddressHistoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamDiscoveredAccountsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamDiscoveredPublicAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamDiscoveredResourceCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamPoolAllocationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamPoolCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetIpamResourceCidrsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetLaunchTemplateDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetManagedPrefixListAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetManagedPrefixListEntriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetNetworkInsightsAccessScopeAnalysisFindingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetNetworkInsightsAccessScopeContentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetPasswordDataCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetReservedInstancesExchangeQuoteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSecurityGroupsForVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSerialConsoleAccessStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSnapshotBlockPublicAccessStateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSpotPlacementScoresCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetSubnetCidrReservationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayAttachmentPropagationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayMulticastDomainAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayPolicyTableAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayPolicyTableEntriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayPrefixListReferencesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayRouteTableAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetTransitGatewayRouteTablePropagationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVerifiedAccessEndpointPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVerifiedAccessGroupPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVpnConnectionDeviceSampleConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVpnConnectionDeviceTypesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/GetVpnTunnelReplacementStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportClientVpnClientCertificateRevocationListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportKeyPairCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ImportVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ListImagesInRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ListSnapshotsInRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/LockSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyAddressAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyAvailabilityZoneGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyCapacityReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyCapacityReservationFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyClientVpnEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyDefaultCreditSpecificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyEbsDefaultKmsKeyIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyFpgaImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIdentityIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIdFormatCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceCapacityReservationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceCpuOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceCreditSpecificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceEventStartTimeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceEventWindowCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceMaintenanceOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceMetadataDefaultsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstanceMetadataOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyInstancePlacementCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamResourceCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamResourceDiscoveryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyIpamScopeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyLaunchTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyLocalGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyManagedPrefixListCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyNetworkInterfaceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyPrivateDnsNameOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyReservedInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySecurityGroupRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySnapshotTierCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySpotFleetRequestCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifySubnetAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTrafficMirrorFilterNetworkServicesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTrafficMirrorFilterRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTrafficMirrorSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTransitGatewayCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTransitGatewayPrefixListReferenceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessEndpointPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessGroupPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessInstanceLoggingConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/models_7.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVerifiedAccessTrustProviderCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVolumeAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVolumeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcBlockPublicAccessExclusionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcBlockPublicAccessOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointConnectionNotificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointServiceConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointServicePayerResponsibilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcEndpointServicePermissionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcPeeringConnectionOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpcTenancyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnConnectionOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnTunnelCertificateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ModifyVpnTunnelOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MonitorInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MoveAddressToVpcCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MoveByoipCidrToIpamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/MoveCapacityReservationInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionIpamByoasnCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionIpamPoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ProvisionPublicIpv4PoolCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseCapacityBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseCapacityBlockExtensionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseHostReservationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseReservedInstancesOfferingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/PurchaseScheduledInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RebootInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterInstanceEventNotificationAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterTransitGatewayMulticastGroupMembersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RegisterTransitGatewayMulticastGroupSourcesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectCapacityReservationBillingOwnershipCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectTransitGatewayMulticastDomainAssociationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectTransitGatewayPeeringAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectTransitGatewayVpcAttachmentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectVpcEndpointConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RejectVpcPeeringConnectionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReleaseAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReleaseHostsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReleaseIpamPoolAllocationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceIamInstanceProfileAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceNetworkAclAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceNetworkAclEntryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceRouteTableAssociationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceTransitGatewayRouteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReplaceVpnTunnelCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ReportInstanceStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RequestSpotFleetCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RequestSpotInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetAddressAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetEbsDefaultKmsKeyIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetFpgaImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetImageAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetInstanceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetNetworkInterfaceAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/ResetSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreAddressToClassicCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreImageFromRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreManagedPrefixListVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreSnapshotFromRecycleBinCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RestoreSnapshotTierCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RevokeClientVpnIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RevokeSecurityGroupEgressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RevokeSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RunInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/RunScheduledInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SearchLocalGatewayRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SearchTransitGatewayMulticastGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SearchTransitGatewayRoutesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/SendDiagnosticInterruptCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartNetworkInsightsAccessScopeAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartNetworkInsightsAnalysisCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StartVpcEndpointServicePrivateDnsVerificationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/StopInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/TerminateClientVpnConnectionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/TerminateInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnassignIpv6AddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnassignPrivateIpAddressesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnassignPrivateNatGatewayAddressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnlockSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UnmonitorInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UpdateSecurityGroupRuleDescriptionsEgressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/UpdateSecurityGroupRuleDescriptionsIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/WithdrawByoipCidrCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/EC2.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeAddressTransfersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeAddressesAttributePaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeAwsNetworkPerformanceMetricSubscriptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeByoipCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityBlockExtensionHistoryPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityBlockExtensionOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityBlockOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityReservationBillingRequestsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityReservationFleetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCapacityReservationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCarrierGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClassicLinkInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnAuthorizationRulesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnConnectionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnRoutesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeClientVpnTargetNetworksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeCoipPoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeDhcpOptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeEgressOnlyInternetGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeExportImageTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFastLaunchImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFastSnapshotRestoresPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFleetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFlowLogsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeFpgaImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeHostReservationOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeHostReservationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeHostsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIamInstanceProfileAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeImportImageTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeImportSnapshotTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceConnectEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceCreditSpecificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceEventWindowsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceImageMetadataPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceStatusPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceTopologyPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceTypeOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstanceTypesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeInternetGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamPoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamResourceDiscoveriesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamResourceDiscoveryAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamScopesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpamsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeIpv6PoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLaunchTemplateVersionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLaunchTemplatesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayRouteTableVpcAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayRouteTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayVirtualInterfaceGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewayVirtualInterfacesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeLocalGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeMacHostsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeManagedPrefixListsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeMovingAddressesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNatGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkAclsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsAccessScopeAnalysesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsAccessScopesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsAnalysesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInsightsPathsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInterfacePermissionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeNetworkInterfacesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribePrefixListsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribePrincipalIdFormatPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribePublicIpv4PoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeReplaceRootVolumeTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeReservedInstancesModificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeReservedInstancesOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeRouteTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeScheduledInstanceAvailabilityPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeScheduledInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSecurityGroupRulesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSecurityGroupVpcAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSecurityGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSnapshotTierStatusPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSnapshotsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSpotFleetRequestsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSpotInstanceRequestsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSpotPriceHistoryPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeStaleSecurityGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeStoreImageTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeSubnetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTagsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrafficMirrorFiltersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrafficMirrorSessionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrafficMirrorTargetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayAttachmentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayConnectPeersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayConnectsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayMulticastDomainsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayPeeringAttachmentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayPolicyTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayRouteTableAnnouncementsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayRouteTablesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewayVpcAttachmentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTransitGatewaysPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeTrunkInterfaceAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessInstanceLoggingConfigurationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVerifiedAccessTrustProvidersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVolumeStatusPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVolumesModificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVolumesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcClassicLinkDnsSupportPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointConnectionNotificationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointConnectionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointServiceConfigurationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointServicePermissionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcPeeringConnectionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/DescribeVpcsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetAssociatedIpv6PoolCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetAwsNetworkPerformanceDataPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetGroupsForCapacityReservationPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetInstanceTypesFromInstanceRequirementsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamAddressHistoryPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamDiscoveredAccountsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamDiscoveredResourceCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamPoolAllocationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamPoolCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetIpamResourceCidrsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetManagedPrefixListAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetManagedPrefixListEntriesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetNetworkInsightsAccessScopeAnalysisFindingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetSecurityGroupsForVpcPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetSpotPlacementScoresPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayAttachmentPropagationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayMulticastDomainAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayPolicyTableAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayPrefixListReferencesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayRouteTableAssociationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetTransitGatewayRouteTablePropagationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/GetVpnConnectionDeviceTypesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/ListImagesInRecycleBinPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/ListSnapshotsInRecycleBinPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/SearchLocalGatewayRoutesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/SearchTransitGatewayMulticastGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/pagination/index.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/utils/sleep.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/waiter.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/poller.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/utils/validate.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/utils/index.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/createWaiter.js", "../node_modules/.pnpm/@smithy+util-waiter@3.2.0/node_modules/@smithy/util-waiter/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForBundleTaskComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForConversionTaskCancelled.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForConversionTaskCompleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForConversionTaskDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForCustomerGatewayAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForExportTaskCancelled.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForExportTaskCompleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForImageAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForImageExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceRunning.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceStatusOk.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceStopped.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceTerminated.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInternetGatewayExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForKeyPairExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNatGatewayAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNatGatewayDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNetworkInterfaceAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSnapshotImported.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSecurityGroupExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSnapshotCompleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSpotInstanceRequestFulfilled.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForStoreImageTaskComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSubnetAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSystemStatusOk.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForPasswordDataAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeInUse.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcPeeringConnectionDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcPeeringConnectionExists.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpnConnectionAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpnConnectionDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-ec2@3.701.0/node_modules/@aws-sdk/client-ec2/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/createCredentialChain.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/CognitoProviderParameters.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/Logins.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/Storage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/resolveLogins.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/package.json", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/CognitoIdentityClient.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/models/CognitoIdentityServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/protocols/Aws_json1_1.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/CreateIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DeleteIdentitiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DeleteIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DescribeIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/DescribeIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetCredentialsForIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetIdCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetIdentityPoolRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetOpenIdTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetOpenIdTokenForDeveloperIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetPrincipalTagAttributeMapCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/ListIdentitiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/ListIdentityPoolsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/ListTagsForResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/LookupDeveloperIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/MergeDeveloperIdentitiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/SetIdentityPoolRolesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/SetPrincipalTagAttributeMapCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/TagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UnlinkDeveloperIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UnlinkIdentityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UntagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/UpdateIdentityPoolCommand.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/CognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/pagination/ListIdentityPoolsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-cognito-identity@3.699.0/node_modules/@aws-sdk/client-cognito-identity/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/loadCognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/IndexedDbStorage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/InMemoryStorage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/localStorage.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentityPool.js", "../node_modules/.pnpm/@aws-sdk+credential-provider-cognito-identity@3.699.0/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentity.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromCognitoIdentityPool.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromContainerMetadata.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromEnv.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromIni.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromInstanceMetadata.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromNodeProviderChain.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromProcess.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromSSO.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/loadSts.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromTemporaryCredentials.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromTokenFile.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/fromWebToken.js", "../node_modules/.pnpm/@aws-sdk+credential-providers@3.699.0_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0_/node_modules/@aws-sdk/credential-providers/dist-es/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/generic.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/aws-machine-image/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/aws-machine-image/index.ts", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/package.json", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/RDSClient.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/RDSServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/models_1.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/protocols/Aws_query.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddRoleToDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddRoleToDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddSourceIdentifierToSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AddTagsToResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ApplyPendingMaintenanceActionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/AuthorizeDBSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/BacktrackDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CancelExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-rds@3.696.0/node_modules/@aws-sdk/middleware-sdk-rds/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBClusterSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CopyOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateBlueGreenDeploymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateCustomDBEngineVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBClusterSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBInstanceReadReplicaCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBProxyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBProxyEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateDBSubnetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateEventSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateIntegrationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/CreateTenantDatabaseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteBlueGreenDeploymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteCustomDBEngineVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterAutomatedBackupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBClusterSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBInstanceAutomatedBackupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBProxyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBProxyEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBSecurityGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteDBSubnetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteEventSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteIntegrationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeleteTenantDatabaseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DeregisterDBProxyTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeAccountAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeBlueGreenDeploymentsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeCertificatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterAutomatedBackupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterBacktracksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterParameterGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClustersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterSnapshotAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBClusterSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBEngineVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBInstanceAutomatedBackupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBLogFilesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBParameterGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxiesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxyEndpointsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxyTargetGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBProxyTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBRecommendationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSecurityGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBShardGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSnapshotAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSnapshotsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSnapshotTenantDatabasesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeDBSubnetGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEngineDefaultClusterParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEngineDefaultParametersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEventCategoriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEventsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeEventSubscriptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeExportTasksCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeGlobalClustersCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeIntegrationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeOptionGroupOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeOptionGroupsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeOrderableDBInstanceOptionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribePendingMaintenanceActionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeReservedDBInstancesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeReservedDBInstancesOfferingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeSourceRegionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeTenantDatabasesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DescribeValidDBInstanceModificationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DisableHttpEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/DownloadDBLogFilePortionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/EnableHttpEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/FailoverDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/FailoverGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ListTagsForResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyActivityStreamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyCertificatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyCurrentDBClusterCapacityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyCustomDBEngineVersionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBClusterSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBProxyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBProxyEndpointCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBProxyTargetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBRecommendationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBSnapshotAttributeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyDBSubnetGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyEventSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyIntegrationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyOptionGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ModifyTenantDatabaseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/PromoteReadReplicaCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/PromoteReadReplicaDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/PurchaseReservedDBInstancesOfferingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RebootDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RebootDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RebootDBShardGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RegisterDBProxyTargetsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveFromGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveRoleFromDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveRoleFromDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveSourceIdentifierFromSubscriptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RemoveTagsFromResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ResetDBClusterParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/ResetDBParameterGroupCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBClusterFromS3Command.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBClusterFromSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBClusterToPointInTimeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBInstanceFromDBSnapshotCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBInstanceFromS3Command.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RestoreDBInstanceToPointInTimeCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/RevokeDBSecurityGroupIngressCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartActivityStreamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartDBInstanceAutomatedBackupsReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StartExportTaskCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopActivityStreamCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopDBClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopDBInstanceAutomatedBackupsReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/StopDBInstanceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/SwitchoverBlueGreenDeploymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/SwitchoverGlobalClusterCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/SwitchoverReadReplicaCommand.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/RDS.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeBlueGreenDeploymentsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeCertificatesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterAutomatedBackupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterBacktracksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterParameterGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterParametersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClusterSnapshotsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBClustersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBEngineVersionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBInstanceAutomatedBackupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBLogFilesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBParameterGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBParametersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxiesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxyEndpointsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxyTargetGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBProxyTargetsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBRecommendationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSecurityGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSnapshotTenantDatabasesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSnapshotsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeDBSubnetGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeEngineDefaultParametersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeEventSubscriptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeEventsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeExportTasksPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeGlobalClustersPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeIntegrationsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeOptionGroupOptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeOptionGroupsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeOrderableDBInstanceOptionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribePendingMaintenanceActionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeReservedDBInstancesOfferingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeReservedDBInstancesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeSourceRegionsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DescribeTenantDatabasesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/DownloadDBLogFilePortionPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterSnapshotAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBClusterSnapshotDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBInstanceAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBInstanceDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBSnapshotAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForDBSnapshotDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForTenantDatabaseAvailable.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/waitForTenantDatabaseDeleted.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-rds@3.699.0/node_modules/@aws-sdk/client-rds/dist-es/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/lazy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/aws-rds/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/azure-rest-api/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/azure-bicep-resource/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/azure-bicep-resource/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/loose/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/azure-pipelines-tasks/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/bazel-module/bzlmod-version.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/bazel-module/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bazel/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bazel/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/bitbucket.ts", "../node_modules/.pnpm/json5@2.2.3/node_modules/json5/dist/index.mjs", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/string-intern.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/format.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/parser.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/edit.js", "../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/main.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/internal-utils/index.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/parser-options.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/errors.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/locs.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/code-point-iterator.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/code-point.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/tokenizer.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/tokenizer/index.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/toml-parser/keys-resolver.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/toml-parser/context.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/toml-parser/index.js", "../node_modules/.pnpm/eslint-visitor-keys@3.4.3/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/visitor-keys.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/parser.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/traverse.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/utils.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/meta.js", "../node_modules/.pnpm/toml-eslint-parser@0.10.0/node_modules/toml-eslint-parser/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/toml.ts", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/identity.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/visit.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/directives.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/anchors.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/applyReviver.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/toJS.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Node.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Alias.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/createNode.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Collection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyComment.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/foldFlowLines.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyString.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringify.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyPair.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/log.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/addPairToJSMap.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/Pair.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyCollection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/YAMLMap.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/map.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/nodes/YAMLSeq.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/seq.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/string.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/common/null.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/bool.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyNumber.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/float.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/int.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/core/schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/json/schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/float.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/int.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/set.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/tags.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/schema/Schema.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/stringify/stringifyDocument.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/doc/Document.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/errors.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-props.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-contains-newline.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-flow-indent-check.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-map-includes.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-block-map.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-block-seq.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-end.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-flow-collection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-collection.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-block-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-node.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/compose-doc.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/compose/composer.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst-scalar.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst-stringify.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst-visit.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/cst.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/lexer.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/line-counter.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/parse/parser.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/public-api.js", "../node_modules/.pnpm/yaml@2.6.1/node_modules/yaml/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/yaml.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/schema-utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/platform/bitbucket/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bitbucket-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/common.ts", "../node_modules/.pnpm/protocols@2.0.1/node_modules/protocols/lib/index.js", "../node_modules/.pnpm/parse-path@7.0.0/node_modules/parse-path/lib/index.js", "../node_modules/.pnpm/parse-url@9.2.0/node_modules/parse-url/dist/index.js", "../node_modules/.pnpm/is-ssh@1.4.0/node_modules/is-ssh/lib/index.js", "../node_modules/.pnpm/git-up@8.0.0/node_modules/git-up/lib/index.js", "../node_modules/.pnpm/git-url-parse@16.0.0/node_modules/git-url-parse/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/git/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/repository/impl/null.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/cache/repository/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/mask.ts", "../node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js", "../node_modules/.pnpm/clean-stack@2.2.0/node_modules/clean-stack/index.js", "../node_modules/.pnpm/aggregate-error@3.1.0/node_modules/aggregate-error/index.js", "../node_modules/.pnpm/p-map@4.0.0/node_modules/p-map/index.js", "../node_modules/.pnpm/p-all@3.0.0/node_modules/p-all/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/promises.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/github.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/platform/github/schema.ts", "../node_modules/.pnpm/semver@6.3.1/node_modules/semver/semver.js", "../node_modules/.pnpm/semver-stable@3.0.0/node_modules/semver-stable/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/semver/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bitrise/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/bitrise/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cdnjs/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cdnjs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/maven/compare.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/maven/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/maven/common.ts", "../node_modules/.pnpm/@aws-sdk+middleware-expect-continue@3.696.0/node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringUnionSelector.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js", "../node_modules/.pnpm/@smithy+is-array-buffer@2.2.0/node_modules/@smithy/is-array-buffer/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-buffer-from@2.2.0/node_modules/@smithy/util-buffer-from/dist-es/index.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/fromUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/toUint8Array.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/toUtf8.js", "../node_modules/.pnpm/@smithy+util-utf8@2.3.0/node_modules/@smithy/util-utf8/dist-es/index.js", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/isEmptyData.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/numToUint8.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../node_modules/.pnpm/@aws-crypto+util@5.2.0/node_modules/@aws-crypto/util/src/index.ts", "../node_modules/.pnpm/@aws-crypto+crc32c@5.2.0/node_modules/@aws-crypto/crc32c/src/aws_crc32c.ts", "../node_modules/.pnpm/@aws-crypto+crc32c@5.2.0/node_modules/@aws-crypto/crc32c/src/index.ts", "../node_modules/.pnpm/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/src/aws_crc32.ts", "../node_modules/.pnpm/@aws-crypto+crc32@5.2.0/node_modules/@aws-crypto/crc32/src/index.ts", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getCrc32ChecksumAlgorithmFunction.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isChecksumWithPartNumber.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/streams/create-read-stream-on-buffer.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/resolveFlexibleChecksumsConfig.js", "../node_modules/.pnpm/@aws-sdk+middleware-flexible-checksums@3.701.0/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js", "../node_modules/.pnpm/@aws-sdk+util-arn-parser@3.693.0/node_modules/@aws-sdk/util-arn-parser/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js", "../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.696.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-serde-config-resolver@3.0.11/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js", "../node_modules/.pnpm/@smithy+eventstream-serde-config-resolver@3.0.11/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.696.0/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js", "../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.696.0/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js", "../node_modules/.pnpm/@aws-sdk+signature-v4-multi-region@3.696.0/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js", "../node_modules/.pnpm/@aws-sdk+xml-builder@3.696.0/node_modules/@aws-sdk/xml-builder/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/package.json", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/NodeDisableMultiregionAccessPointConfigOptions.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/NodeUseArnRegionConfigOptions.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/bucketHostnameUtils.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/bucketHostname.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/bucketEndpointMiddleware.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/configurations.js", "../node_modules/.pnpm/@aws-sdk+middleware-bucket-endpoint@3.696.0/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/Int64.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/Message.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js", "../node_modules/.pnpm/@smithy+eventstream-codec@3.1.10/node_modules/@smithy/eventstream-codec/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/provider.js", "../node_modules/.pnpm/@smithy+eventstream-serde-universal@3.0.13/node_modules/@smithy/eventstream-serde-universal/dist-es/index.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/utils.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/EventStreamMarshaller.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/provider.js", "../node_modules/.pnpm/@smithy+eventstream-serde-node@3.0.13/node_modules/@smithy/eventstream-serde-node/dist-es/index.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/HashCalculator.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/fileStreamHasher.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/readableStreamHasher.js", "../node_modules/.pnpm/@smithy+hash-stream-node@3.1.10/node_modules/@smithy/hash-stream-node/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+middleware-ssec@3.696.0/node_modules/@aws-sdk/middleware-ssec/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+middleware-location-constraint@3.696.0/node_modules/@aws-sdk/middleware-location-constraint/dist-es/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListDirectoryBucketsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/S3.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListBucketsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListDirectoryBucketsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListObjectsV2Paginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/ListPartsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-s3@3.701.0/node_modules/@aws-sdk/client-s3/dist-es/index.js", "../node_modules/.pnpm/sax@1.4.1/node_modules/sax/lib/sax.js", "../node_modules/.pnpm/xmldoc@1.3.0/node_modules/xmldoc/lib/xmldoc.js", "../node_modules/.pnpm/xmldoc@1.3.0/node_modules/xmldoc/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/s3.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/streams.ts", "../node_modules/.pnpm/github-url-from-git@1.5.0/node_modules/github-url-from-git/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/data/changelog-urls.json", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/data/source-urls.json", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/metadata-manual.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/metadata.ts", "../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js", "../node_modules/.pnpm/webidl-conversions@3.0.1/node_modules/webidl-conversions/lib/index.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/utils.js", "../node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/lib/mappingTable.json", "../node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/index.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL.js", "../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/public-api.js", "../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/bom-handling.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/internal.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf32.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf16.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/utf7.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-codec.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-codec.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/shiftjis.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/eucjp.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp936.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gbk-added.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp949.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/cp950.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/tables/big5-added.json", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/dbcs-data.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/encodings/index.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/streams.js", "../node_modules/.pnpm/iconv-lite@0.6.3/node_modules/iconv-lite/lib/index.js", "../node_modules/.pnpm/encoding@0.1.13/node_modules/encoding/lib/encoding.js", "../node_modules/.pnpm/node-fetch@2.7.0_encoding@0.1.13/node_modules/node-fetch/lib/index.mjs", "../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/package.json", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/util.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/common.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/retry.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/interceptor.ts", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/common.js", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/browser.js", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/node.js", "../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/index.js", "../node_modules/.pnpm/agent-base@7.1.3/node_modules/agent-base/src/helpers.ts", "../node_modules/.pnpm/agent-base@7.1.3/node_modules/agent-base/src/index.ts", "../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/.pnpm/https-proxy-agent@7.0.6/node_modules/https-proxy-agent/src/index.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/gaxios.ts", "../node_modules/.pnpm/gaxios@6.7.1_encoding@0.1.13/node_modules/gaxios/src/index.ts", "../node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js", "../node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/lib/stringify.js", "../node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/lib/parse.js", "../node_modules/.pnpm/json-bigint@1.0.0/node_modules/json-bigint/index.js", "../node_modules/.pnpm/gcp-metadata@6.1.0_encoding@0.1.13/node_modules/gcp-metadata/src/gcp-residency.ts", "../node_modules/.pnpm/gcp-metadata@6.1.0_encoding@0.1.13/node_modules/gcp-metadata/src/index.ts", "../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/crypto/browser/crypto.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/crypto/node/crypto.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/crypto/crypto.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/options.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/package.json", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/transporters.js", "../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js", "../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js", "../node_modules/.pnpm/ecdsa-sig-formatter@1.0.11/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/util.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/authclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/loginticket.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/oauth2client.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/computeclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/idtokenclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/envDetect.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/data-stream.js", "../node_modules/.pnpm/buffer-equal-constant-time@1.0.1/node_modules/buffer-equal-constant-time/index.js", "../node_modules/.pnpm/jwa@2.0.0/node_modules/jwa/index.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/tostring.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/sign-stream.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/lib/verify-stream.js", "../node_modules/.pnpm/jws@4.0.0/node_modules/jws/index.js", "../node_modules/.pnpm/gtoken@7.1.0_encoding@0.1.13/node_modules/gtoken/build/src/index.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/jwtaccess.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/jwtclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/refreshclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/impersonated.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/oauth2common.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/stscredentials.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/baseexternalclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/filesubjecttokensupplier.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/urlsubjecttokensupplier.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/identitypoolclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/awsrequestsigner.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/defaultawssecuritycredentialssupplier.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/awsclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/executable-response.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/pluggable-auth-handler.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/pluggable-auth-client.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/externalclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/externalAccountAuthorizedUserClient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/googleauth.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/iam.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/downscopedclient.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/passthrough.js", "../node_modules/.pnpm/google-auth-library@9.15.0_encoding@0.1.13/node_modules/google-auth-library/build/src/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/maven/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/maven/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/clojure/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/clojure/index.ts", "../node_modules/.pnpm/semver-utils@1.1.4/node_modules/semver-utils/semver-utils.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/semver/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/npm/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/npm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/cargo/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/composer/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/conan/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/conan/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/conan/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/deb/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/data-files.generated.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/distro.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/debian/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/debian/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/devbox/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/docker/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/git/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/glasskube/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/go-mod-directive/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/gradle/compare.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/gradle/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hashicorp/convertor.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hashicorp/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/helm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/regex/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hermit/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/hex/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ivy/parse.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ivy/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/kubernetes-api/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nixpkgs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/node/schedule.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/node/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/parser.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/version.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/nuget/index.ts", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/version.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/operator.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/specifier.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/lib/semantic.js", "../node_modules/.pnpm/@renovatebot+pep440@4.0.1/node_modules/@renovatebot/pep440/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pep440/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pep440/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/perl/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/poetry/patterns.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/poetry/transform.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/poetry/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pvp/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pvp/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/pvp/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/python/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/redhat/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rez/pattern.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rez/transform.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rez/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/rpm/index.ts", "../node_modules/.pnpm/@renovatebot+ruby-semver@4.0.0/node_modules/@renovatebot/ruby-semver/dist/ruby/version.js", "../node_modules/.pnpm/@renovatebot+ruby-semver@4.0.0/node_modules/@renovatebot/ruby-semver/dist/ruby/requirement.js", "../node_modules/.pnpm/@renovatebot+ruby-semver@4.0.0/node_modules/@renovatebot/ruby-semver/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/operator.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/version.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/replace.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/bump.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/pin.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/widen.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/strategies/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ruby/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/semver-coerced/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/same-major/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/swift/range.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/swift/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ubuntu/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/ubuntu/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/unity3d/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/api.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/modules/versioning/types.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/versioning/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conan/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conan/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conda/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/conda/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cpan/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/cpan/index.ts", "../node_modules/.pnpm/@kwsites+file-exists@1.1.1/node_modules/@kwsites/file-exists/src/index.ts", "../node_modules/.pnpm/@kwsites+file-exists@1.1.1/node_modules/@kwsites/file-exists/index.ts", "../node_modules/.pnpm/@kwsites+promise-deferred@1.1.1/node_modules/@kwsites/promise-deferred/src/index.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-response-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/args/pathspec.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-construct-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/git-plugin-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/errors/task-configuration-error.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/util.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/argument-filters.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/exit-codes.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/git-output-streams.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/line-parser.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/simple-git-options.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/task-options.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/task-parser.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/utils/index.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/check-is-repo.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/CleanSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/task.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/clean.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/ConfigList.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/config.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/diff-name-status.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/grep.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/reset.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/api.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/abort-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/block-unsafe-operations-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/command-config-prefixing-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/completion-detection.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/custom-binary.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/error-detection.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/plugin-store.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/progress-monitor-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/simple-git-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/spawn-options-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/timout-plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/index.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/plugins/suffix-paths.plugin.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/git-logger.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/tasks-pending-queue.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/git-executor-chain.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/git-executor.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/task-callback.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/change-working-directory.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/checkout.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/count-objects.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-commit.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/commit.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/first-commit.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/hash-object.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/InitSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/init.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/args/log-format.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/DiffSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-diff-summary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/diff.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/log.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/MergeSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/PullSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-remote-objects.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-remote-messages.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-pull.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-merge.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/merge.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-push.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/push.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/show.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/FileStatusSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/StatusSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/status.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/version.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/simple-git-api.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/scheduler.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/apply-patch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-branch-delete.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/BranchSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-branch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/branch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/CheckIgnore.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/check-ignore.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/clone.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-fetch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/fetch.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/parsers/parse-move.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/move.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/pull.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/GetRemoteSummary.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/remote.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/stash-list.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/sub-module.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/responses/TagList.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/tasks/tag.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/git.js", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/git-factory.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/lib/runners/promise-wrapped.ts", "../node_modules/.pnpm/simple-git@3.27.0/node_modules/simple-git/src/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/git/config.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/crate/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/crate/index.ts", "../node_modules/.pnpm/jsonata@2.0.6/node_modules/jsonata/jsonata.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/jsonata.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/html.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/json.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/plain.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/yaml.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/formats/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/schema.ts", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/utils.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/exception.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/block-helper-missing.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/each.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/helper-missing.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/if.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/log.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/lookup.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers/with.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/helpers.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/decorators/inline.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/decorators.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/logger.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/internal/create-new-lookup-object.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/internal/proto-access.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/base.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/safe-string.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/internal/wrapHelper.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/runtime.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/no-conflict.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars.runtime.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/ast.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/parser.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/visitor.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/helpers.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/base.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/compiler.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/code-gen.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/handlebars/compiler/printer.js", "../node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/exec/env.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/exec/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/template/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/custom/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dart/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dart-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/checksum.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/file.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/release.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deb/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/url.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deno/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/deno/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/object.ts", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/util.js", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/format.js", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/parse.js", "../node_modules/.pnpm/auth-header@1.0.0/node_modules/auth-header/src/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/auth/httpAuthSchemeProvider.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/endpoint/EndpointParameters.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/package.json", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/endpoint/ruleset.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/endpoint/endpointResolver.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/runtimeConfig.shared.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/runtimeConfig.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/auth/httpAuthExtensionConfiguration.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/runtimeExtensions.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/ECRClient.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/models/ECRServiceException.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/models/models_0.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/protocols/Aws_json1_1.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchCheckLayerAvailabilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchDeleteImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchGetImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/BatchGetRepositoryScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CompleteLayerUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CreatePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CreateRepositoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/CreateRepositoryCreationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteLifecyclePolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeletePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRegistryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRepositoryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRepositoryCreationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DeleteRepositoryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeImageReplicationStatusCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeImageScanFindingsCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribePullThroughCacheRulesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeRegistryCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeRepositoriesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/DescribeRepositoryCreationTemplatesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetAccountSettingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetAuthorizationTokenCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetDownloadUrlForLayerCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetLifecyclePolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetLifecyclePolicyPreviewCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetRegistryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetRegistryScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/GetRepositoryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/InitiateLayerUploadCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/ListImagesCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/ListTagsForResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutAccountSettingCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutImageCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutImageScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutImageTagMutabilityCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutLifecyclePolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutRegistryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutRegistryScanningConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/PutReplicationConfigurationCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/SetRepositoryPolicyCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/StartImageScanCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/StartLifecyclePolicyPreviewCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/TagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UntagResourceCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UpdatePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UpdateRepositoryCreationTemplateCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/UploadLayerPartCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/ValidatePullThroughCacheRuleCommand.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/ECR.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/commands/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeImageScanFindingsPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribePullThroughCacheRulesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeRepositoriesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/DescribeRepositoryCreationTemplatesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/GetLifecyclePolicyPreviewPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/Interfaces.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/ListImagesPaginator.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/pagination/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/waiters/waitForImageScanComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/waiters/waitForLifecyclePolicyPreviewComplete.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/waiters/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/models/index.js", "../node_modules/.pnpm/@aws-sdk+client-ecr@3.699.0/node_modules/@aws-sdk/client-ecr/dist-es/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/ecr.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/google.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/dockerhub-cache.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/docker/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dotnet-version/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/dotnet-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/endoflife-date/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/endoflife-date/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/endoflife-date/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/flutter-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy-collection/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/galaxy-collection/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/git/auth.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/git-refs/base.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/git-refs/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/git-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/gitea.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-tags/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-releases/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitea-releases/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/cache-strategies/memory-cache-strategy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/cache-strategies/package-cache-strategy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/datasource-fetcher.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/query-adapters/releases-query-adapter.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/query-adapters/tags-query-adapter.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/graphql/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-release-attachments/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/github/tags.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-releases/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-runners/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/github-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/http/gitlab.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-packages/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-packages/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-releases/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-tags/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gitlab-tags/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/glasskube-packages/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/glasskube-packages/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/base.ts", "../node_modules/.pnpm/moo@0.5.2/node_modules/moo/moo.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/goproxy-parser.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/releases-direct.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/releases-goproxy.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/go/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/golang-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/gradle-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hackage/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hackage/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/helm/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/helm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hermit/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hex/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hex/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hexpm-bob/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/hexpm-bob/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/java-version/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/java-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/jenkins-plugins/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/kubernetes-api/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/node-version/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/node-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/get.ts", "../node_modules/.pnpm/ini@5.0.0/node_modules/ini/lib/ini.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/npmrc.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/npm/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/v2.ts", "../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js", "../node_modules/.pnpm/fd-slicer@1.1.0/node_modules/fd-slicer/index.js", "../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js", "../node_modules/.pnpm/yauzl@2.10.0/node_modules/yauzl/index.js", "../node_modules/.pnpm/extract-zip@2.0.1/node_modules/extract-zip/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/v3.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/nuget/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/orb/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/packagist/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/packagist/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/pod/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/puppet-forge/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/puppet-forge/index.ts", "../node_modules/.pnpm/changelog-filename-regex@2.0.1/node_modules/changelog-filename-regex/index.mjs", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/pypi/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/pypi/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/python-version/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/python-version/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/python-version/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/repology/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/ruby-version/index.ts", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/global-this.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/fails.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-bind-native.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-apply.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-uncurry-this.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/classof-raw.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-uncurry-this-clause.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-callable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/descriptors.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-call.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-property-is-enumerable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/indexed-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-null-or-undefined.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/require-object-coercible.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-indexed-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/path.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-built-in.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-is-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/environment-user-agent.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/environment-v8-version.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-constructor-detection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/use-symbol-as-uid.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/try-to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-callable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/ordinary-to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-pure.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-global-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/shared-store.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/shared.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/has-own-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/uid.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/well-known-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-property-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/document-create-element.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/ie8-dom-define.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-forced.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-bind-context.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/v8-prototype-define-bug.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/an-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-non-enumerable-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/export.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/math-trunc.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-integer-or-infinity.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-length.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/length-of-array-like.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-string-tag-support.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/classof.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/inspect-source.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-species-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-species-create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-method-has-species-support.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/to-absolute-index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-includes.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/hidden-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-keys-internal.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/enum-bug-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-define-properties.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/html.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/shared-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-names.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-names-external.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-own-property-symbols.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-built-in.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-built-in-accessor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/well-known-symbol-wrapped.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/well-known-symbol-define.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-define-to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-to-string.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/set-to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/weak-map-basic-detection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/internal-state.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-iteration.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-registry-detection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.for.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.key-for.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-json-replacer-function.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.json.stringify.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.async-iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.description.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.has-instance.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.match.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.match-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.replace.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.search.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.species.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.split.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.symbol.unscopables.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.json.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.math.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.reflect.to-string-tag.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/add-to-unscopables.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterators.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-name.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/correct-prototype-getter.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterators-core.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterator-create-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-uncurry-this-accessor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-possible-prototype.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-possible-prototype.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterator-define.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/create-iter-result-object.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/dom-iterables.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/web.dom-collections.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.function.metadata.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.dispose.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.metadata.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-is-registered.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/symbol-is-well-known.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.observable.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-registered.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.matcher.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.symbol.replace-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/symbol/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/string-multibyte.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.string.iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/symbol/iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/symbol/iterator.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/typeof.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/freezing.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/define-built-ins.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-buffer-non-extensible.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/object-is-extensible.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/internal-metadata.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/is-array-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-iterator.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterator-close.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterate.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/an-instance.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-weak.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.weak-map.constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.weak-map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/caller.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/weak-map-helpers.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-weak-map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.emplace.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.get-or-insert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.get-or-insert-computed.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.delete-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/map-upsert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.weak-map.upsert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/weak-map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/define-property.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/get-own-property-descriptor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/get-own-property-descriptor.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/interopRequireWildcard.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/create.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/set-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/function-bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.function.bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/get-built-in-prototype-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/function/virtual/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/bind.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/bind.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/setPrototypeOf.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/inherits.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.reflect.construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/reflect/construct.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.object.get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/object/get-prototype-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/object/get-prototype-of.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/getPrototypeOf.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/isNativeReflectConstruct.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/assertThisInitialized.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/possibleConstructorReturn.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/createSuper.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/set-species.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/collection-strong.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.map.constructor.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/map-helpers.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.map.group-by.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.group-by.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.key-by.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/a-map.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.delete-all.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.emplace.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/iterate-simple.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/map-iterate.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.every.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.filter.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.find.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.find-key.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/same-value-zero.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.includes.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.get-or-insert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.get-or-insert-computed.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.key-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.map-keys.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.map-values.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.merge.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.reduce.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.some.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.update.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.upsert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/esnext.map.update-or-insert.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/map/index.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-method-is-strict.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/index-of.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/index-of.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/isNativeFunction.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-set-length.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/push.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/push.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/construct.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/wrapNativeSuper.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/error.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/concat.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/array-from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/internals/check-correctness-of-iteration.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/array/from.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/array/is-array.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/array/is-array.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/arrayLikeToArray.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/get-iterator-method.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/array/from.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/array/from.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.array.slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/array/virtual/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/instance/slice.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/instance/slice.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/unsupportedIterableToArray.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/modules/es.date.to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/es/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/stable/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/actual/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/full/symbol/to-primitive.js", "../node_modules/.pnpm/core-js-pure@3.39.0/node_modules/core-js-pure/features/symbol/to-primitive.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/createClass.js", "../node_modules/.pnpm/@babel+runtime-corejs3@7.26.0/node_modules/@babel/runtime-corejs3/helpers/defineProperty.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/parse.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/marshal-object.js", "../node_modules/.pnpm/@qnighy+marshal@0.1.3/node_modules/@qnighy/marshal/dist/index.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/assign-keys.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/schema.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/metadata-cache.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/util/date.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/versions-endpoint-cache.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/rubygems/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/sbt-package/util.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/sbt-package/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/sbt-plugin/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-module/base.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-module/utils.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-module/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/terraform-provider/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/unity3d/index.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/api.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/common.ts", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/dist/modules/datasource/types.js", "../node_modules/.pnpm/renovate@39.82.1_@aws-sdk+client-sso-oidc@3.699.0_@aws-sdk+client-sts@3.699.0__encoding@0.1.13_typanion@3.14.0/node_modules/renovate/lib/modules/datasource/index.ts", "../src/utils/datasource/index.ts", "../src/utils/versioning/ubuntu.ts", "../src/utils/versioning/index.ts", "../src/utils/renovate.ts", "../src/utils/builds.ts", "../src/utils/docker/common.ts", "../src/utils/docker/buildx.ts", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/context.ts", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/internal/utils.ts", "../node_modules/.pnpm/universal-user-agent@6.0.1/node_modules/universal-user-agent/dist-src/index.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js", "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/version.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/defaults.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/is-plain-object.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/merge.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/omit.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/util/url-template.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/parse.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/with-defaults.js", "../node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-src/index.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/version.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/is-plain-object.js", "../node_modules/.pnpm/deprecation@2.3.1/node_modules/deprecation/dist-web/index.js", "../node_modules/.pnpm/@octokit+request-error@5.1.0/node_modules/@octokit/request-error/dist-src/index.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/get-buffer-response.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/fetch-wrapper.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/with-defaults.js", "../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-src/index.js", "../node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-web/index.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/auth.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/hook.js", "../node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-src/index.js", "../node_modules/.pnpm/@octokit+core@5.2.0/node_modules/@octokit/core/dist-web/index.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js", "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js", "../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/utils.ts", "../node_modules/.pnpm/@actions+github@6.0.0/node_modules/@actions/github/src/github.ts", "../node_modules/.pnpm/p-cancelable@4.0.1/node_modules/p-cancelable/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/errors.js", "../node_modules/.pnpm/@szmarczak+http-timer@5.0.1/node_modules/@szmarczak/http-timer/dist/source/index.js", "../node_modules/.pnpm/normalize-url@8.0.1/node_modules/normalize-url/index.js", "../node_modules/.pnpm/is-stream@4.0.1/node_modules/is-stream/index.js", "../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js", "../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js", "../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/stream.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/contents.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/utils.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/array-buffer.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/buffer.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/exports.js", "../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/index.js", "../node_modules/.pnpm/lowercase-keys@3.0.0/node_modules/lowercase-keys/index.js", "../node_modules/.pnpm/responselike@3.0.0/node_modules/responselike/index.js", "../node_modules/.pnpm/mimic-response@4.0.0/node_modules/mimic-response/index.js", "../node_modules/.pnpm/cacheable-request@12.0.1/node_modules/cacheable-request/src/types.ts", "../node_modules/.pnpm/cacheable-request@12.0.1/node_modules/cacheable-request/src/index.ts", "../node_modules/.pnpm/form-data-encoder@4.0.2/node_modules/form-data-encoder/lib/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/is-form-data.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/get-body-size.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/proxy-events.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/unhandle.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/timed-out.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/url-to-options.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/weakable-map.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/calculate-retry-delay.js", "../node_modules/.pnpm/cacheable-lookup@7.0.0/node_modules/cacheable-lookup/source/index.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/delay-async-destroy.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/agent.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/incoming-message.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-events.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/errors.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-name.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-value.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-socket-handler.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/client-request.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/calculate-server-name.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/auto.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/js-stream-socket.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/unexpected-status-code-error.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/check-type.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/initialize.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/get-auth-headers.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h1-over-h2.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-hx.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h2.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h1.js", "../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/parse-link-header.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/options.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/response.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/is-client-request.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/utils/is-unix-socket-url.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/core/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/as-promise/types.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/as-promise/index.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/create.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/types.js", "../node_modules/.pnpm/got@14.4.5/node_modules/got/dist/source/index.js", "../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js", "../src/utils/config.ts", "../src/utils/github.ts", "../src/utils/sum.ts", "../src/commands/binary/utils.ts", "../src/commands/binary/index.ts", "../src/utils/docker.ts", "../src/utils/docker/cosign.ts", "../src/commands/docker/builder.ts", "../src/commands/docker/config.ts", "../src/index.ts", "../src/runner.ts", "../src/types.ts"], "sourcesContent": ["// https://github.com/evanw/esbuild/issues/1921#issuecomment-1898197331\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\nimport url from 'node:url';\n\nglobalThis.require = createRequire(import.meta.url);\nglobalThis.__filename = url.fileURLToPath(import.meta.url);\nglobalThis.__dirname = path.dirname(__filename);\n", null, null, null, null, "'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n", "module.exports = require('./lib/tunnel');\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kHTTP2BuildRequest: Symbol('http2 build request'),\n kHTTP1BuildRequest: Symbol('http1 build request'),\n kHTTP2CopyHeaders: Symbol('http2 copy headers'),\n kHTTPConnVersion: Symbol('http connection version'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n Error.captureStackTrace(this, RequestRetryError)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError\n}\n", "'use strict'\n\n/** @type {Record} */\nconst headerNameLowerCasedRecord = {}\n\n// https://developer.mozilla.org/docs/Web/HTTP/Headers\nconst wellknownHeaderNames = [\n 'Accept',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Alt-Svc',\n 'Alt-Used',\n 'Authorization',\n 'Cache-Control',\n 'Clear-Site-Data',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-Range',\n 'Content-Security-Policy',\n 'Content-Security-Policy-Report-Only',\n 'Content-Type',\n 'Cookie',\n 'Cross-Origin-Embedder-Policy',\n 'Cross-Origin-Opener-Policy',\n 'Cross-Origin-Resource-Policy',\n 'Date',\n 'Device-Memory',\n 'Downlink',\n 'ECT',\n 'ETag',\n 'Expect',\n 'Expect-CT',\n 'Expires',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Link',\n 'Location',\n 'Max-Forwards',\n 'Origin',\n 'Permissions-Policy',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'RTT',\n 'Range',\n 'Referer',\n 'Referrer-Policy',\n 'Refresh',\n 'Retry-After',\n 'Sec-WebSocket-Accept',\n 'Sec-WebSocket-Extensions',\n 'Sec-WebSocket-Key',\n 'Sec-WebSocket-Protocol',\n 'Sec-WebSocket-Version',\n 'Server',\n 'Server-Timing',\n 'Service-Worker-Allowed',\n 'Service-Worker-Navigation-Preload',\n 'Set-Cookie',\n 'SourceMap',\n 'Strict-Transport-Security',\n 'Supports-Loading-Mode',\n 'TE',\n 'Timing-Allow-Origin',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'Upgrade-Insecure-Requests',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'WWW-Authenticate',\n 'X-Content-Type-Options',\n 'X-DNS-Prefetch-Control',\n 'X-Frame-Options',\n 'X-Permitted-Cross-Domain-Policies',\n 'X-Powered-By',\n 'X-Requested-With',\n 'X-XSS-Protection'\n]\n\nfor (let i = 0; i < wellknownHeaderNames.length; ++i) {\n const key = wellknownHeaderNames[i]\n const lowerCasedKey = key.toLowerCase()\n headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] =\n lowerCasedKey\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(headerNameLowerCasedRecord, null)\n\nmodule.exports = {\n wellknownHeaderNames,\n headerNameLowerCasedRecord\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substring(1, idx)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substring(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (stream == null || !isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\n/**\n * Retrieves a header name and returns its lowercase value.\n * @param {string | Buffer} value Header name\n * @returns {string}\n */\nfunction headerNameToString (value) {\n return headerNameLowerCasedRecord[value] || value.toLowerCase()\n}\n\nfunction parseHeaders (headers, obj = {}) {\n // For H2 support\n if (!Array.isArray(headers)) return headers\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1].map(x => x.toString('utf8'))\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nasync function * convertIterableToBuffer (iterable) {\n for await (const chunk of iterable) {\n yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n return ReadableStream.from(convertIterableToBuffer(iterable))\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nfunction addAbortListener (signal, listener) {\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\n// Parsed accordingly to RFC 9110\n// https://www.rfc-editor.org/rfc/rfc9110#field.content-range\nfunction parseRangeHeader (range) {\n if (range == null || range === '') return { start: 0, end: null, size: null }\n\n const m = range ? range.match(/^bytes (\\d+)-(\\d+)\\/(\\d+)?$/) : null\n return m\n ? {\n start: parseInt(m[1]),\n end: m[2] ? parseInt(m[2]) : null,\n size: m[3] ? parseInt(m[3]) : null\n }\n : null\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n headerNameToString,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n parseRangeHeader,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13),\n safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict'\n\n/**\n * Copyright Brian White. All rights reserved.\n *\n * @see https://github.com/mscdex/streamsearch\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n */\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\n\nfunction SBMH (needle) {\n if (typeof needle === 'string') {\n needle = Buffer.from(needle)\n }\n\n if (!Buffer.isBuffer(needle)) {\n throw new TypeError('The needle has to be a String or a Buffer.')\n }\n\n const needleLength = needle.length\n\n if (needleLength === 0) {\n throw new Error('The needle cannot be an empty String/Buffer.')\n }\n\n if (needleLength > 256) {\n throw new Error('The needle cannot have a length bigger than 256.')\n }\n\n this.maxMatches = Infinity\n this.matches = 0\n\n this._occ = new Array(256)\n .fill(needleLength) // Initialize occurrence table.\n this._lookbehind_size = 0\n this._needle = needle\n this._bufpos = 0\n\n this._lookbehind = Buffer.alloc(needleLength)\n\n // Populate occurrence table with analysis of the needle,\n // ignoring last letter.\n for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var\n this._occ[needle[i]] = needleLength - 1 - i\n }\n}\ninherits(SBMH, EventEmitter)\n\nSBMH.prototype.reset = function () {\n this._lookbehind_size = 0\n this.matches = 0\n this._bufpos = 0\n}\n\nSBMH.prototype.push = function (chunk, pos) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk, 'binary')\n }\n const chlen = chunk.length\n this._bufpos = pos || 0\n let r\n while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }\n return r\n}\n\nSBMH.prototype._sbmh_feed = function (data) {\n const len = data.length\n const needle = this._needle\n const needleLength = needle.length\n const lastNeedleChar = needle[needleLength - 1]\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehind_size - 2]\n let pos = -this._lookbehind_size\n let ch\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= len - needleLength) {\n ch = this._sbmh_lookup_char(data, pos + needleLength - 1)\n\n if (\n ch === lastNeedleChar &&\n this._sbmh_memcmp(data, pos, needleLength - 1)\n ) {\n this._lookbehind_size = 0\n ++this.matches\n this.emit('info', true)\n\n return (this._bufpos = pos + needleLength)\n }\n pos += this._occ[ch]\n }\n\n // No match.\n\n if (pos < 0) {\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }\n }\n\n if (pos >= 0) {\n // Discard lookbehind buffer.\n this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)\n this._lookbehind_size = 0\n } else {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = this._lookbehind_size + pos\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n this.emit('info', false, this._lookbehind, 0, bytesToCutOff)\n }\n\n this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,\n this._lookbehind_size - bytesToCutOff)\n this._lookbehind_size -= bytesToCutOff\n\n data.copy(this._lookbehind, this._lookbehind_size)\n this._lookbehind_size += len\n\n this._bufpos = len\n return len\n }\n }\n\n pos += (pos >= 0) * this._bufpos\n\n // Lookbehind buffer is now empty. We only need to check if the\n // needle is in the haystack.\n if (data.indexOf(needle, pos) !== -1) {\n pos = data.indexOf(needle, pos)\n ++this.matches\n if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }\n\n return (this._bufpos = pos + needleLength)\n } else {\n pos = len - needleLength\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (\n pos < len &&\n (\n data[pos] !== needle[0] ||\n (\n (Buffer.compare(\n data.subarray(pos, pos + len - pos),\n needle.subarray(0, len - pos)\n ) !== 0)\n )\n )\n ) {\n ++pos\n }\n if (pos < len) {\n data.copy(this._lookbehind, 0, pos, pos + (len - pos))\n this._lookbehind_size = len - pos\n }\n\n // Everything until pos is guaranteed not to contain needle data.\n if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }\n\n this._bufpos = len\n return len\n}\n\nSBMH.prototype._sbmh_lookup_char = function (data, pos) {\n return (pos < 0)\n ? this._lookbehind[this._lookbehind_size + pos]\n : data[pos]\n}\n\nSBMH.prototype._sbmh_memcmp = function (data, pos, len) {\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }\n }\n return true\n}\n\nmodule.exports = SBMH\n", "'use strict'\n\nconst inherits = require('node:util').inherits\nconst ReadableStream = require('node:stream').Readable\n\nfunction PartStream (opts) {\n ReadableStream.call(this, opts)\n}\ninherits(PartStream, ReadableStream)\n\nPartStream.prototype._read = function (n) {}\n\nmodule.exports = PartStream\n", "'use strict'\n\nmodule.exports = function getLimit (limits, name, defaultLimit) {\n if (\n !limits ||\n limits[name] === undefined ||\n limits[name] === null\n ) { return defaultLimit }\n\n if (\n typeof limits[name] !== 'number' ||\n isNaN(limits[name])\n ) { throw new TypeError('Limit ' + name + ' is not a valid number') }\n\n return limits[name]\n}\n", "'use strict'\n\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\nconst getLimit = require('../../../lib/utils/getLimit')\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst B_DCRLF = Buffer.from('\\r\\n\\r\\n')\nconst RE_CRLF = /\\r\\n/g\nconst RE_HDR = /^([^:]+):[ \\t]?([\\x00-\\xFF]+)?$/ // eslint-disable-line no-control-regex\n\nfunction HeaderParser (cfg) {\n EventEmitter.call(this)\n\n cfg = cfg || {}\n const self = this\n this.nread = 0\n this.maxed = false\n this.npairs = 0\n this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)\n this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)\n this.buffer = ''\n this.header = {}\n this.finished = false\n this.ss = new StreamSearch(B_DCRLF)\n this.ss.on('info', function (isMatch, data, start, end) {\n if (data && !self.maxed) {\n if (self.nread + end - start >= self.maxHeaderSize) {\n end = self.maxHeaderSize - self.nread + start\n self.nread = self.maxHeaderSize\n self.maxed = true\n } else { self.nread += (end - start) }\n\n self.buffer += data.toString('binary', start, end)\n }\n if (isMatch) { self._finish() }\n })\n}\ninherits(HeaderParser, EventEmitter)\n\nHeaderParser.prototype.push = function (data) {\n const r = this.ss.push(data)\n if (this.finished) { return r }\n}\n\nHeaderParser.prototype.reset = function () {\n this.finished = false\n this.buffer = ''\n this.header = {}\n this.ss.reset()\n}\n\nHeaderParser.prototype._finish = function () {\n if (this.buffer) { this._parseHeader() }\n this.ss.matches = this.ss.maxMatches\n const header = this.header\n this.header = {}\n this.buffer = ''\n this.finished = true\n this.nread = this.npairs = 0\n this.maxed = false\n this.emit('header', header)\n}\n\nHeaderParser.prototype._parseHeader = function () {\n if (this.npairs === this.maxHeaderPairs) { return }\n\n const lines = this.buffer.split(RE_CRLF)\n const len = lines.length\n let m, h\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (lines[i].length === 0) { continue }\n if (lines[i][0] === '\\t' || lines[i][0] === ' ') {\n // folded header content\n // RFC2822 says to just remove the CRLF and not the whitespace following\n // it, so we follow the RFC and include the leading whitespace ...\n if (h) {\n this.header[h][this.header[h].length - 1] += lines[i]\n continue\n }\n }\n\n const posColon = lines[i].indexOf(':')\n if (\n posColon === -1 ||\n posColon === 0\n ) {\n return\n }\n m = RE_HDR.exec(lines[i])\n h = m[1].toLowerCase()\n this.header[h] = this.header[h] || []\n this.header[h].push((m[2] || ''))\n if (++this.npairs === this.maxHeaderPairs) { break }\n }\n}\n\nmodule.exports = HeaderParser\n", "'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst inherits = require('node:util').inherits\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst PartStream = require('./PartStream')\nconst HeaderParser = require('./HeaderParser')\n\nconst DASH = 45\nconst B_ONEDASH = Buffer.from('-')\nconst B_CRLF = Buffer.from('\\r\\n')\nconst EMPTY_FN = function () {}\n\nfunction Dicer (cfg) {\n if (!(this instanceof Dicer)) { return new Dicer(cfg) }\n WritableStream.call(this, cfg)\n\n if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }\n\n if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }\n\n this._headerFirst = cfg.headerFirst\n\n this._dashes = 0\n this._parts = 0\n this._finished = false\n this._realFinish = false\n this._isPreamble = true\n this._justMatched = false\n this._firstWrite = true\n this._inHeader = true\n this._part = undefined\n this._cb = undefined\n this._ignoreData = false\n this._partOpts = { highWaterMark: cfg.partHwm }\n this._pause = false\n\n const self = this\n this._hparser = new HeaderParser(cfg)\n this._hparser.on('header', function (header) {\n self._inHeader = false\n self._part.emit('header', header)\n })\n}\ninherits(Dicer, WritableStream)\n\nDicer.prototype.emit = function (ev) {\n if (ev === 'finish' && !this._realFinish) {\n if (!this._finished) {\n const self = this\n process.nextTick(function () {\n self.emit('error', new Error('Unexpected end of multipart data'))\n if (self._part && !self._ignoreData) {\n const type = (self._isPreamble ? 'Preamble' : 'Part')\n self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))\n self._part.push(null)\n process.nextTick(function () {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n return\n }\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n }\n } else { WritableStream.prototype.emit.apply(this, arguments) }\n}\n\nDicer.prototype._write = function (data, encoding, cb) {\n // ignore unexpected data (e.g. extra trailer data after finished)\n if (!this._hparser && !this._bparser) { return cb() }\n\n if (this._headerFirst && this._isPreamble) {\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() }\n }\n const r = this._hparser.push(data)\n if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }\n }\n\n // allows for \"easier\" testing\n if (this._firstWrite) {\n this._bparser.push(B_CRLF)\n this._firstWrite = false\n }\n\n this._bparser.push(data)\n\n if (this._pause) { this._cb = cb } else { cb() }\n}\n\nDicer.prototype.reset = function () {\n this._part = undefined\n this._bparser = undefined\n this._hparser = undefined\n}\n\nDicer.prototype.setBoundary = function (boundary) {\n const self = this\n this._bparser = new StreamSearch('\\r\\n--' + boundary)\n this._bparser.on('info', function (isMatch, data, start, end) {\n self._oninfo(isMatch, data, start, end)\n })\n}\n\nDicer.prototype._ignore = function () {\n if (this._part && !this._ignoreData) {\n this._ignoreData = true\n this._part.on('error', EMPTY_FN)\n // we must perform some kind of read on the stream even though we are\n // ignoring the data, otherwise node's Readable stream will not emit 'end'\n // after pushing null to the stream\n this._part.resume()\n }\n}\n\nDicer.prototype._oninfo = function (isMatch, data, start, end) {\n let buf; const self = this; let i = 0; let r; let shouldWriteMore = true\n\n if (!this._part && this._justMatched && data) {\n while (this._dashes < 2 && (start + i) < end) {\n if (data[start + i] === DASH) {\n ++i\n ++this._dashes\n } else {\n if (this._dashes) { buf = B_ONEDASH }\n this._dashes = 0\n break\n }\n }\n if (this._dashes === 2) {\n if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) }\n this.reset()\n this._finished = true\n // no more parts will be added\n if (self._parts === 0) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n }\n }\n if (this._dashes) { return }\n }\n if (this._justMatched) { this._justMatched = false }\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n this._part._read = function (n) {\n self._unpause()\n }\n if (this._isPreamble && this.listenerCount('preamble') !== 0) {\n this.emit('preamble', this._part)\n } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) {\n this.emit('part', this._part)\n } else {\n this._ignore()\n }\n if (!this._isPreamble) { this._inHeader = true }\n }\n if (data && start < end && !this._ignoreData) {\n if (this._isPreamble || !this._inHeader) {\n if (buf) { shouldWriteMore = this._part.push(buf) }\n shouldWriteMore = this._part.push(data.slice(start, end))\n if (!shouldWriteMore) { this._pause = true }\n } else if (!this._isPreamble && this._inHeader) {\n if (buf) { this._hparser.push(buf) }\n r = this._hparser.push(data.slice(start, end))\n if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }\n }\n }\n if (isMatch) {\n this._hparser.reset()\n if (this._isPreamble) { this._isPreamble = false } else {\n if (start !== end) {\n ++this._parts\n this._part.on('end', function () {\n if (--self._parts === 0) {\n if (self._finished) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n } else {\n self._unpause()\n }\n }\n })\n }\n }\n this._part.push(null)\n this._part = undefined\n this._ignoreData = false\n this._justMatched = true\n this._dashes = 0\n }\n}\n\nDicer.prototype._unpause = function () {\n if (!this._pause) { return }\n\n this._pause = false\n if (this._cb) {\n const cb = this._cb\n this._cb = undefined\n cb()\n }\n}\n\nmodule.exports = Dicer\n", "'use strict'\n\n// Node has always utf-8\nconst utf8Decoder = new TextDecoder('utf-8')\nconst textDecoders = new Map([\n ['utf-8', utf8Decoder],\n ['utf8', utf8Decoder]\n])\n\nfunction getDecoder (charset) {\n let lc\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le\n case 'base64':\n return decoders.base64\n default:\n if (lc === undefined) {\n lc = true\n charset = charset.toLowerCase()\n continue\n }\n return decoders.other.bind(charset)\n }\n }\n}\n\nconst decoders = {\n utf8: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.utf8Slice(0, data.length)\n },\n\n latin1: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n return data\n }\n return data.latin1Slice(0, data.length)\n },\n\n utf16le: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.ucs2Slice(0, data.length)\n },\n\n base64: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.base64Slice(0, data.length)\n },\n\n other: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n\n if (textDecoders.has(this.toString())) {\n try {\n return textDecoders.get(this).decode(data)\n } catch {}\n }\n return typeof data === 'string'\n ? data\n : data.toString()\n }\n}\n\nfunction decodeText (text, sourceEncoding, destEncoding) {\n if (text) {\n return getDecoder(destEncoding)(text, sourceEncoding)\n }\n return text\n}\n\nmodule.exports = decodeText\n", "/* eslint-disable object-property-newline */\n'use strict'\n\nconst decodeText = require('./decodeText')\n\nconst RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g\n\nconst EncodedLookup = {\n '%00': '\\x00', '%01': '\\x01', '%02': '\\x02', '%03': '\\x03', '%04': '\\x04',\n '%05': '\\x05', '%06': '\\x06', '%07': '\\x07', '%08': '\\x08', '%09': '\\x09',\n '%0a': '\\x0a', '%0A': '\\x0a', '%0b': '\\x0b', '%0B': '\\x0b', '%0c': '\\x0c',\n '%0C': '\\x0c', '%0d': '\\x0d', '%0D': '\\x0d', '%0e': '\\x0e', '%0E': '\\x0e',\n '%0f': '\\x0f', '%0F': '\\x0f', '%10': '\\x10', '%11': '\\x11', '%12': '\\x12',\n '%13': '\\x13', '%14': '\\x14', '%15': '\\x15', '%16': '\\x16', '%17': '\\x17',\n '%18': '\\x18', '%19': '\\x19', '%1a': '\\x1a', '%1A': '\\x1a', '%1b': '\\x1b',\n '%1B': '\\x1b', '%1c': '\\x1c', '%1C': '\\x1c', '%1d': '\\x1d', '%1D': '\\x1d',\n '%1e': '\\x1e', '%1E': '\\x1e', '%1f': '\\x1f', '%1F': '\\x1f', '%20': '\\x20',\n '%21': '\\x21', '%22': '\\x22', '%23': '\\x23', '%24': '\\x24', '%25': '\\x25',\n '%26': '\\x26', '%27': '\\x27', '%28': '\\x28', '%29': '\\x29', '%2a': '\\x2a',\n '%2A': '\\x2a', '%2b': '\\x2b', '%2B': '\\x2b', '%2c': '\\x2c', '%2C': '\\x2c',\n '%2d': '\\x2d', '%2D': '\\x2d', '%2e': '\\x2e', '%2E': '\\x2e', '%2f': '\\x2f',\n '%2F': '\\x2f', '%30': '\\x30', '%31': '\\x31', '%32': '\\x32', '%33': '\\x33',\n '%34': '\\x34', '%35': '\\x35', '%36': '\\x36', '%37': '\\x37', '%38': '\\x38',\n '%39': '\\x39', '%3a': '\\x3a', '%3A': '\\x3a', '%3b': '\\x3b', '%3B': '\\x3b',\n '%3c': '\\x3c', '%3C': '\\x3c', '%3d': '\\x3d', '%3D': '\\x3d', '%3e': '\\x3e',\n '%3E': '\\x3e', '%3f': '\\x3f', '%3F': '\\x3f', '%40': '\\x40', '%41': '\\x41',\n '%42': '\\x42', '%43': '\\x43', '%44': '\\x44', '%45': '\\x45', '%46': '\\x46',\n '%47': '\\x47', '%48': '\\x48', '%49': '\\x49', '%4a': '\\x4a', '%4A': '\\x4a',\n '%4b': '\\x4b', '%4B': '\\x4b', '%4c': '\\x4c', '%4C': '\\x4c', '%4d': '\\x4d',\n '%4D': '\\x4d', '%4e': '\\x4e', '%4E': '\\x4e', '%4f': '\\x4f', '%4F': '\\x4f',\n '%50': '\\x50', '%51': '\\x51', '%52': '\\x52', '%53': '\\x53', '%54': '\\x54',\n '%55': '\\x55', '%56': '\\x56', '%57': '\\x57', '%58': '\\x58', '%59': '\\x59',\n '%5a': '\\x5a', '%5A': '\\x5a', '%5b': '\\x5b', '%5B': '\\x5b', '%5c': '\\x5c',\n '%5C': '\\x5c', '%5d': '\\x5d', '%5D': '\\x5d', '%5e': '\\x5e', '%5E': '\\x5e',\n '%5f': '\\x5f', '%5F': '\\x5f', '%60': '\\x60', '%61': '\\x61', '%62': '\\x62',\n '%63': '\\x63', '%64': '\\x64', '%65': '\\x65', '%66': '\\x66', '%67': '\\x67',\n '%68': '\\x68', '%69': '\\x69', '%6a': '\\x6a', '%6A': '\\x6a', '%6b': '\\x6b',\n '%6B': '\\x6b', '%6c': '\\x6c', '%6C': '\\x6c', '%6d': '\\x6d', '%6D': '\\x6d',\n '%6e': '\\x6e', '%6E': '\\x6e', '%6f': '\\x6f', '%6F': '\\x6f', '%70': '\\x70',\n '%71': '\\x71', '%72': '\\x72', '%73': '\\x73', '%74': '\\x74', '%75': '\\x75',\n '%76': '\\x76', '%77': '\\x77', '%78': '\\x78', '%79': '\\x79', '%7a': '\\x7a',\n '%7A': '\\x7a', '%7b': '\\x7b', '%7B': '\\x7b', '%7c': '\\x7c', '%7C': '\\x7c',\n '%7d': '\\x7d', '%7D': '\\x7d', '%7e': '\\x7e', '%7E': '\\x7e', '%7f': '\\x7f',\n '%7F': '\\x7f', '%80': '\\x80', '%81': '\\x81', '%82': '\\x82', '%83': '\\x83',\n '%84': '\\x84', '%85': '\\x85', '%86': '\\x86', '%87': '\\x87', '%88': '\\x88',\n '%89': '\\x89', '%8a': '\\x8a', '%8A': '\\x8a', '%8b': '\\x8b', '%8B': '\\x8b',\n '%8c': '\\x8c', '%8C': '\\x8c', '%8d': '\\x8d', '%8D': '\\x8d', '%8e': '\\x8e',\n '%8E': '\\x8e', '%8f': '\\x8f', '%8F': '\\x8f', '%90': '\\x90', '%91': '\\x91',\n '%92': '\\x92', '%93': '\\x93', '%94': '\\x94', '%95': '\\x95', '%96': '\\x96',\n '%97': '\\x97', '%98': '\\x98', '%99': '\\x99', '%9a': '\\x9a', '%9A': '\\x9a',\n '%9b': '\\x9b', '%9B': '\\x9b', '%9c': '\\x9c', '%9C': '\\x9c', '%9d': '\\x9d',\n '%9D': '\\x9d', '%9e': '\\x9e', '%9E': '\\x9e', '%9f': '\\x9f', '%9F': '\\x9f',\n '%a0': '\\xa0', '%A0': '\\xa0', '%a1': '\\xa1', '%A1': '\\xa1', '%a2': '\\xa2',\n '%A2': '\\xa2', '%a3': '\\xa3', '%A3': '\\xa3', '%a4': '\\xa4', '%A4': '\\xa4',\n '%a5': '\\xa5', '%A5': '\\xa5', '%a6': '\\xa6', '%A6': '\\xa6', '%a7': '\\xa7',\n '%A7': '\\xa7', '%a8': '\\xa8', '%A8': '\\xa8', '%a9': '\\xa9', '%A9': '\\xa9',\n '%aa': '\\xaa', '%Aa': '\\xaa', '%aA': '\\xaa', '%AA': '\\xaa', '%ab': '\\xab',\n '%Ab': '\\xab', '%aB': '\\xab', '%AB': '\\xab', '%ac': '\\xac', '%Ac': '\\xac',\n '%aC': '\\xac', '%AC': '\\xac', '%ad': '\\xad', '%Ad': '\\xad', '%aD': '\\xad',\n '%AD': '\\xad', '%ae': '\\xae', '%Ae': '\\xae', '%aE': '\\xae', '%AE': '\\xae',\n '%af': '\\xaf', '%Af': '\\xaf', '%aF': '\\xaf', '%AF': '\\xaf', '%b0': '\\xb0',\n '%B0': '\\xb0', '%b1': '\\xb1', '%B1': '\\xb1', '%b2': '\\xb2', '%B2': '\\xb2',\n '%b3': '\\xb3', '%B3': '\\xb3', '%b4': '\\xb4', '%B4': '\\xb4', '%b5': '\\xb5',\n '%B5': '\\xb5', '%b6': '\\xb6', '%B6': '\\xb6', '%b7': '\\xb7', '%B7': '\\xb7',\n '%b8': '\\xb8', '%B8': '\\xb8', '%b9': '\\xb9', '%B9': '\\xb9', '%ba': '\\xba',\n '%Ba': '\\xba', '%bA': '\\xba', '%BA': '\\xba', '%bb': '\\xbb', '%Bb': '\\xbb',\n '%bB': '\\xbb', '%BB': '\\xbb', '%bc': '\\xbc', '%Bc': '\\xbc', '%bC': '\\xbc',\n '%BC': '\\xbc', '%bd': '\\xbd', '%Bd': '\\xbd', '%bD': '\\xbd', '%BD': '\\xbd',\n '%be': '\\xbe', '%Be': '\\xbe', '%bE': '\\xbe', '%BE': '\\xbe', '%bf': '\\xbf',\n '%Bf': '\\xbf', '%bF': '\\xbf', '%BF': '\\xbf', '%c0': '\\xc0', '%C0': '\\xc0',\n '%c1': '\\xc1', '%C1': '\\xc1', '%c2': '\\xc2', '%C2': '\\xc2', '%c3': '\\xc3',\n '%C3': '\\xc3', '%c4': '\\xc4', '%C4': '\\xc4', '%c5': '\\xc5', '%C5': '\\xc5',\n '%c6': '\\xc6', '%C6': '\\xc6', '%c7': '\\xc7', '%C7': '\\xc7', '%c8': '\\xc8',\n '%C8': '\\xc8', '%c9': '\\xc9', '%C9': '\\xc9', '%ca': '\\xca', '%Ca': '\\xca',\n '%cA': '\\xca', '%CA': '\\xca', '%cb': '\\xcb', '%Cb': '\\xcb', '%cB': '\\xcb',\n '%CB': '\\xcb', '%cc': '\\xcc', '%Cc': '\\xcc', '%cC': '\\xcc', '%CC': '\\xcc',\n '%cd': '\\xcd', '%Cd': '\\xcd', '%cD': '\\xcd', '%CD': '\\xcd', '%ce': '\\xce',\n '%Ce': '\\xce', '%cE': '\\xce', '%CE': '\\xce', '%cf': '\\xcf', '%Cf': '\\xcf',\n '%cF': '\\xcf', '%CF': '\\xcf', '%d0': '\\xd0', '%D0': '\\xd0', '%d1': '\\xd1',\n '%D1': '\\xd1', '%d2': '\\xd2', '%D2': '\\xd2', '%d3': '\\xd3', '%D3': '\\xd3',\n '%d4': '\\xd4', '%D4': '\\xd4', '%d5': '\\xd5', '%D5': '\\xd5', '%d6': '\\xd6',\n '%D6': '\\xd6', '%d7': '\\xd7', '%D7': '\\xd7', '%d8': '\\xd8', '%D8': '\\xd8',\n '%d9': '\\xd9', '%D9': '\\xd9', '%da': '\\xda', '%Da': '\\xda', '%dA': '\\xda',\n '%DA': '\\xda', '%db': '\\xdb', '%Db': '\\xdb', '%dB': '\\xdb', '%DB': '\\xdb',\n '%dc': '\\xdc', '%Dc': '\\xdc', '%dC': '\\xdc', '%DC': '\\xdc', '%dd': '\\xdd',\n '%Dd': '\\xdd', '%dD': '\\xdd', '%DD': '\\xdd', '%de': '\\xde', '%De': '\\xde',\n '%dE': '\\xde', '%DE': '\\xde', '%df': '\\xdf', '%Df': '\\xdf', '%dF': '\\xdf',\n '%DF': '\\xdf', '%e0': '\\xe0', '%E0': '\\xe0', '%e1': '\\xe1', '%E1': '\\xe1',\n '%e2': '\\xe2', '%E2': '\\xe2', '%e3': '\\xe3', '%E3': '\\xe3', '%e4': '\\xe4',\n '%E4': '\\xe4', '%e5': '\\xe5', '%E5': '\\xe5', '%e6': '\\xe6', '%E6': '\\xe6',\n '%e7': '\\xe7', '%E7': '\\xe7', '%e8': '\\xe8', '%E8': '\\xe8', '%e9': '\\xe9',\n '%E9': '\\xe9', '%ea': '\\xea', '%Ea': '\\xea', '%eA': '\\xea', '%EA': '\\xea',\n '%eb': '\\xeb', '%Eb': '\\xeb', '%eB': '\\xeb', '%EB': '\\xeb', '%ec': '\\xec',\n '%Ec': '\\xec', '%eC': '\\xec', '%EC': '\\xec', '%ed': '\\xed', '%Ed': '\\xed',\n '%eD': '\\xed', '%ED': '\\xed', '%ee': '\\xee', '%Ee': '\\xee', '%eE': '\\xee',\n '%EE': '\\xee', '%ef': '\\xef', '%Ef': '\\xef', '%eF': '\\xef', '%EF': '\\xef',\n '%f0': '\\xf0', '%F0': '\\xf0', '%f1': '\\xf1', '%F1': '\\xf1', '%f2': '\\xf2',\n '%F2': '\\xf2', '%f3': '\\xf3', '%F3': '\\xf3', '%f4': '\\xf4', '%F4': '\\xf4',\n '%f5': '\\xf5', '%F5': '\\xf5', '%f6': '\\xf6', '%F6': '\\xf6', '%f7': '\\xf7',\n '%F7': '\\xf7', '%f8': '\\xf8', '%F8': '\\xf8', '%f9': '\\xf9', '%F9': '\\xf9',\n '%fa': '\\xfa', '%Fa': '\\xfa', '%fA': '\\xfa', '%FA': '\\xfa', '%fb': '\\xfb',\n '%Fb': '\\xfb', '%fB': '\\xfb', '%FB': '\\xfb', '%fc': '\\xfc', '%Fc': '\\xfc',\n '%fC': '\\xfc', '%FC': '\\xfc', '%fd': '\\xfd', '%Fd': '\\xfd', '%fD': '\\xfd',\n '%FD': '\\xfd', '%fe': '\\xfe', '%Fe': '\\xfe', '%fE': '\\xfe', '%FE': '\\xfe',\n '%ff': '\\xff', '%Ff': '\\xff', '%fF': '\\xff', '%FF': '\\xff'\n}\n\nfunction encodedReplacer (match) {\n return EncodedLookup[match]\n}\n\nconst STATE_KEY = 0\nconst STATE_VALUE = 1\nconst STATE_CHARSET = 2\nconst STATE_LANG = 3\n\nfunction parseParams (str) {\n const res = []\n let state = STATE_KEY\n let charset = ''\n let inquote = false\n let escaping = false\n let p = 0\n let tmp = ''\n const len = str.length\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n const char = str[i]\n if (char === '\\\\' && inquote) {\n if (escaping) { escaping = false } else {\n escaping = true\n continue\n }\n } else if (char === '\"') {\n if (!escaping) {\n if (inquote) {\n inquote = false\n state = STATE_KEY\n } else { inquote = true }\n continue\n } else { escaping = false }\n } else {\n if (escaping && inquote) { tmp += '\\\\' }\n escaping = false\n if ((state === STATE_CHARSET || state === STATE_LANG) && char === \"'\") {\n if (state === STATE_CHARSET) {\n state = STATE_LANG\n charset = tmp.substring(1)\n } else { state = STATE_VALUE }\n tmp = ''\n continue\n } else if (state === STATE_KEY &&\n (char === '*' || char === '=') &&\n res.length) {\n state = char === '*'\n ? STATE_CHARSET\n : STATE_VALUE\n res[p] = [tmp, undefined]\n tmp = ''\n continue\n } else if (!inquote && char === ';') {\n state = STATE_KEY\n if (charset) {\n if (tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n }\n charset = ''\n } else if (tmp.length) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }\n tmp = ''\n ++p\n continue\n } else if (!inquote && (char === ' ' || char === '\\t')) { continue }\n }\n tmp += char\n }\n if (charset && tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n } else if (tmp) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n\n if (res[p] === undefined) {\n if (tmp) { res[p] = tmp }\n } else { res[p][1] = tmp }\n\n return res\n}\n\nmodule.exports = parseParams\n", "'use strict'\n\nmodule.exports = function basename (path) {\n if (typeof path !== 'string') { return '' }\n for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1)\n return (path === '..' || path === '.' ? '' : path)\n }\n }\n return (path === '..' || path === '.' ? '' : path)\n}\n", "'use strict'\n\n// TODO:\n// * support 1 nested multipart level\n// (see second multipart example here:\n// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)\n// * support limits.fieldNameSize\n// -- this will require modifications to utils.parseParams\n\nconst { Readable } = require('node:stream')\nconst { inherits } = require('node:util')\n\nconst Dicer = require('../../deps/dicer/lib/Dicer')\n\nconst parseParams = require('../utils/parseParams')\nconst decodeText = require('../utils/decodeText')\nconst basename = require('../utils/basename')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_BOUNDARY = /^boundary$/i\nconst RE_FIELD = /^form-data$/i\nconst RE_CHARSET = /^charset$/i\nconst RE_FILENAME = /^filename$/i\nconst RE_NAME = /^name$/i\n\nMultipart.detect = /^multipart\\/form-data/i\nfunction Multipart (boy, cfg) {\n let i\n let len\n const self = this\n let boundary\n const limits = cfg.limits\n const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))\n const parsedConType = cfg.parsedConType || []\n const defCharset = cfg.defCharset || 'utf8'\n const preservePath = cfg.preservePath\n const fileOpts = { highWaterMark: cfg.fileHwm }\n\n for (i = 0, len = parsedConType.length; i < len; ++i) {\n if (Array.isArray(parsedConType[i]) &&\n RE_BOUNDARY.test(parsedConType[i][0])) {\n boundary = parsedConType[i][1]\n break\n }\n }\n\n function checkFinished () {\n if (nends === 0 && finished && !boy._done) {\n finished = false\n self.end()\n }\n }\n\n if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }\n\n const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)\n const filesLimit = getLimit(limits, 'files', Infinity)\n const fieldsLimit = getLimit(limits, 'fields', Infinity)\n const partsLimit = getLimit(limits, 'parts', Infinity)\n const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)\n const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)\n\n let nfiles = 0\n let nfields = 0\n let nends = 0\n let curFile\n let curField\n let finished = false\n\n this._needDrain = false\n this._pause = false\n this._cb = undefined\n this._nparts = 0\n this._boy = boy\n\n const parserCfg = {\n boundary,\n maxHeaderPairs: headerPairsLimit,\n maxHeaderSize: headerSizeLimit,\n partHwm: fileOpts.highWaterMark,\n highWaterMark: cfg.highWaterMark\n }\n\n this.parser = new Dicer(parserCfg)\n this.parser.on('drain', function () {\n self._needDrain = false\n if (self._cb && !self._pause) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }).on('part', function onPart (part) {\n if (++self._nparts > partsLimit) {\n self.parser.removeListener('part', onPart)\n self.parser.on('part', skipPart)\n boy.hitPartsLimit = true\n boy.emit('partsLimit')\n return skipPart(part)\n }\n\n // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let\n // us emit 'end' early since we know the part has ended if we are already\n // seeing the next part\n if (curField) {\n const field = curField\n field.emit('end')\n field.removeAllListeners('end')\n }\n\n part.on('header', function (header) {\n let contype\n let fieldname\n let parsed\n let charset\n let encoding\n let filename\n let nsize = 0\n\n if (header['content-type']) {\n parsed = parseParams(header['content-type'][0])\n if (parsed[0]) {\n contype = parsed[0].toLowerCase()\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_CHARSET.test(parsed[i][0])) {\n charset = parsed[i][1].toLowerCase()\n break\n }\n }\n }\n }\n\n if (contype === undefined) { contype = 'text/plain' }\n if (charset === undefined) { charset = defCharset }\n\n if (header['content-disposition']) {\n parsed = parseParams(header['content-disposition'][0])\n if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_NAME.test(parsed[i][0])) {\n fieldname = parsed[i][1]\n } else if (RE_FILENAME.test(parsed[i][0])) {\n filename = parsed[i][1]\n if (!preservePath) { filename = basename(filename) }\n }\n }\n } else { return skipPart(part) }\n\n if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }\n\n let onData,\n onEnd\n\n if (isPartAFile(fieldname, contype, filename)) {\n // file/binary field\n if (nfiles === filesLimit) {\n if (!boy.hitFilesLimit) {\n boy.hitFilesLimit = true\n boy.emit('filesLimit')\n }\n return skipPart(part)\n }\n\n ++nfiles\n\n if (boy.listenerCount('file') === 0) {\n self.parser._ignore()\n return\n }\n\n ++nends\n const file = new FileStream(fileOpts)\n curFile = file\n file.on('end', function () {\n --nends\n self._pause = false\n checkFinished()\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n })\n file._read = function (n) {\n if (!self._pause) { return }\n self._pause = false\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }\n boy.emit('file', fieldname, file, filename, encoding, contype)\n\n onData = function (data) {\n if ((nsize += data.length) > fileSizeLimit) {\n const extralen = fileSizeLimit - nsize + data.length\n if (extralen > 0) { file.push(data.slice(0, extralen)) }\n file.truncated = true\n file.bytesRead = fileSizeLimit\n part.removeAllListeners('data')\n file.emit('limit')\n return\n } else if (!file.push(data)) { self._pause = true }\n\n file.bytesRead = nsize\n }\n\n onEnd = function () {\n curFile = undefined\n file.push(null)\n }\n } else {\n // non-file field\n if (nfields === fieldsLimit) {\n if (!boy.hitFieldsLimit) {\n boy.hitFieldsLimit = true\n boy.emit('fieldsLimit')\n }\n return skipPart(part)\n }\n\n ++nfields\n ++nends\n let buffer = ''\n let truncated = false\n curField = part\n\n onData = function (data) {\n if ((nsize += data.length) > fieldSizeLimit) {\n const extralen = (fieldSizeLimit - (nsize - data.length))\n buffer += data.toString('binary', 0, extralen)\n truncated = true\n part.removeAllListeners('data')\n } else { buffer += data.toString('binary') }\n }\n\n onEnd = function () {\n curField = undefined\n if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }\n boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)\n --nends\n checkFinished()\n }\n }\n\n /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become\n broken. Streams2/streams3 is a huge black box of confusion, but\n somehow overriding the sync state seems to fix things again (and still\n seems to work for previous node versions).\n */\n part._readableState.sync = false\n\n part.on('data', onData)\n part.on('end', onEnd)\n }).on('error', function (err) {\n if (curFile) { curFile.emit('error', err) }\n })\n }).on('error', function (err) {\n boy.emit('error', err)\n }).on('finish', function () {\n finished = true\n checkFinished()\n })\n}\n\nMultipart.prototype.write = function (chunk, cb) {\n const r = this.parser.write(chunk)\n if (r && !this._pause) {\n cb()\n } else {\n this._needDrain = !r\n this._cb = cb\n }\n}\n\nMultipart.prototype.end = function () {\n const self = this\n\n if (self.parser.writable) {\n self.parser.end()\n } else if (!self._boy._done) {\n process.nextTick(function () {\n self._boy._done = true\n self._boy.emit('finish')\n })\n }\n}\n\nfunction skipPart (part) {\n part.resume()\n}\n\nfunction FileStream (opts) {\n Readable.call(this, opts)\n\n this.bytesRead = 0\n\n this.truncated = false\n}\n\ninherits(FileStream, Readable)\n\nFileStream.prototype._read = function (n) {}\n\nmodule.exports = Multipart\n", "'use strict'\n\nconst RE_PLUS = /\\+/g\n\nconst HEX = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\nfunction Decoder () {\n this.buffer = undefined\n}\nDecoder.prototype.write = function (str) {\n // Replace '+' with ' ' before decoding\n str = str.replace(RE_PLUS, ' ')\n let res = ''\n let i = 0; let p = 0; const len = str.length\n for (; i < len; ++i) {\n if (this.buffer !== undefined) {\n if (!HEX[str.charCodeAt(i)]) {\n res += '%' + this.buffer\n this.buffer = undefined\n --i // retry character\n } else {\n this.buffer += str[i]\n ++p\n if (this.buffer.length === 2) {\n res += String.fromCharCode(parseInt(this.buffer, 16))\n this.buffer = undefined\n }\n }\n } else if (str[i] === '%') {\n if (i > p) {\n res += str.substring(p, i)\n p = i\n }\n this.buffer = ''\n ++p\n }\n }\n if (p < len && this.buffer === undefined) { res += str.substring(p) }\n return res\n}\nDecoder.prototype.reset = function () {\n this.buffer = undefined\n}\n\nmodule.exports = Decoder\n", "'use strict'\n\nconst Decoder = require('../utils/Decoder')\nconst decodeText = require('../utils/decodeText')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_CHARSET = /^charset$/i\n\nUrlEncoded.detect = /^application\\/x-www-form-urlencoded/i\nfunction UrlEncoded (boy, cfg) {\n const limits = cfg.limits\n const parsedConType = cfg.parsedConType\n this.boy = boy\n\n this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)\n this.fieldsLimit = getLimit(limits, 'fields', Infinity)\n\n let charset\n for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var\n if (Array.isArray(parsedConType[i]) &&\n RE_CHARSET.test(parsedConType[i][0])) {\n charset = parsedConType[i][1].toLowerCase()\n break\n }\n }\n\n if (charset === undefined) { charset = cfg.defCharset || 'utf8' }\n\n this.decoder = new Decoder()\n this.charset = charset\n this._fields = 0\n this._state = 'key'\n this._checkingBytes = true\n this._bytesKey = 0\n this._bytesVal = 0\n this._key = ''\n this._val = ''\n this._keyTrunc = false\n this._valTrunc = false\n this._hitLimit = false\n}\n\nUrlEncoded.prototype.write = function (data, cb) {\n if (this._fields === this.fieldsLimit) {\n if (!this.boy.hitFieldsLimit) {\n this.boy.hitFieldsLimit = true\n this.boy.emit('fieldsLimit')\n }\n return cb()\n }\n\n let idxeq; let idxamp; let i; let p = 0; const len = data.length\n\n while (p < len) {\n if (this._state === 'key') {\n idxeq = idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x3D/* = */) {\n idxeq = i\n break\n } else if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesKey }\n }\n\n if (idxeq !== undefined) {\n // key with assignment\n if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }\n this._state = 'val'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._val = ''\n this._bytesVal = 0\n this._valTrunc = false\n this.decoder.reset()\n\n p = idxeq + 1\n } else if (idxamp !== undefined) {\n // key with no assignment\n ++this._fields\n let key; const keyTrunc = this._keyTrunc\n if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n if (key.length) {\n this.boy.emit('field', decodeText(key, 'binary', this.charset),\n '',\n keyTrunc,\n false)\n }\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._keyTrunc = true\n }\n } else {\n if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n } else {\n idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesVal }\n }\n\n if (idxamp !== undefined) {\n ++this._fields\n if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n this._state = 'key'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._val === '' && this.fieldSizeLimit === 0) ||\n (this._bytesVal = this._val.length) === this.fieldSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._valTrunc = true\n }\n } else {\n if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n }\n }\n cb()\n}\n\nUrlEncoded.prototype.end = function () {\n if (this.boy._done) { return }\n\n if (this._state === 'key' && this._key.length > 0) {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n '',\n this._keyTrunc,\n false)\n } else if (this._state === 'val') {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n }\n this.boy._done = true\n this.boy.emit('finish')\n}\n\nmodule.exports = UrlEncoded\n", "'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst { inherits } = require('node:util')\nconst Dicer = require('../deps/dicer/lib/Dicer')\n\nconst MultipartParser = require('./types/multipart')\nconst UrlencodedParser = require('./types/urlencoded')\nconst parseParams = require('./utils/parseParams')\n\nfunction Busboy (opts) {\n if (!(this instanceof Busboy)) { return new Busboy(opts) }\n\n if (typeof opts !== 'object') {\n throw new TypeError('Busboy expected an options-Object.')\n }\n if (typeof opts.headers !== 'object') {\n throw new TypeError('Busboy expected an options-Object with headers-attribute.')\n }\n if (typeof opts.headers['content-type'] !== 'string') {\n throw new TypeError('Missing Content-Type-header.')\n }\n\n const {\n headers,\n ...streamOptions\n } = opts\n\n this.opts = {\n autoDestroy: false,\n ...streamOptions\n }\n WritableStream.call(this, this.opts)\n\n this._done = false\n this._parser = this.getParserByHeaders(headers)\n this._finished = false\n}\ninherits(Busboy, WritableStream)\n\nBusboy.prototype.emit = function (ev) {\n if (ev === 'finish') {\n if (!this._done) {\n this._parser?.end()\n return\n } else if (this._finished) {\n return\n }\n this._finished = true\n }\n WritableStream.prototype.emit.apply(this, arguments)\n}\n\nBusboy.prototype.getParserByHeaders = function (headers) {\n const parsed = parseParams(headers['content-type'])\n\n const cfg = {\n defCharset: this.opts.defCharset,\n fileHwm: this.opts.fileHwm,\n headers,\n highWaterMark: this.opts.highWaterMark,\n isPartAFile: this.opts.isPartAFile,\n limits: this.opts.limits,\n parsedConType: parsed,\n preservePath: this.opts.preservePath\n }\n\n if (MultipartParser.detect.test(parsed[0])) {\n return new MultipartParser(this, cfg)\n }\n if (UrlencodedParser.detect.test(parsed[0])) {\n return new UrlencodedParser(this, cfg)\n }\n throw new Error('Unsupported Content-Type.')\n}\n\nBusboy.prototype._write = function (chunk, encoding, cb) {\n this._parser.write(chunk, cb)\n}\n\nmodule.exports = Busboy\nmodule.exports.default = Busboy\nmodule.exports.Busboy = Busboy\n\nmodule.exports.Dicer = Dicer\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\nconst corsSafeListedMethodsSet = new Set(corsSafeListedMethods)\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\nconst redirectStatusSet = new Set(redirectStatus)\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nconst badPortsSet = new Set(badPorts)\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\nconst referrerPolicySet = new Set(referrerPolicy)\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\nconst safeMethodsSet = new Set(safeMethods)\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\nconst forbiddenMethodsSet = new Set(forbiddenMethods)\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\nconst subresourceSet = new Set(subresource)\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex,\n subresourceSet,\n badPortsSet,\n redirectStatusSet,\n corsSafeListedMethodsSet,\n safeMethodsSet,\n forbiddenMethodsSet,\n referrerPolicySet\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\nlet supportedHashes = []\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']\n supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))\n/* c8 ignore next 3 */\n} catch {\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatusSet.has(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n * @param {number} c\n */\nfunction isTokenCharCode (c) {\n switch (c) {\n case 0x22:\n case 0x28:\n case 0x29:\n case 0x2c:\n case 0x2f:\n case 0x3a:\n case 0x3b:\n case 0x3c:\n case 0x3d:\n case 0x3e:\n case 0x3f:\n case 0x40:\n case 0x5b:\n case 0x5c:\n case 0x5d:\n case 0x7b:\n case 0x7d:\n // DQUOTE and \"(),/:;<=>?@[\\]{}\"\n return false\n default:\n // VCHAR %x21-7E\n return c >= 0x21 && c <= 0x7e\n }\n}\n\n/**\n * @param {string} characters\n */\nfunction isValidHTTPToken (characters) {\n if (characters.length === 0) {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n if (!isTokenCharCode(characters.charCodeAt(i))) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-name\n * @param {string} potentialValue\n */\nfunction isValidHeaderName (potentialValue) {\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.has(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If response is not eligible for integrity validation, return false.\n // TODO\n\n // 4. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 5. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const strongest = getStrongestMetadata(parsedMetadata)\n const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)\n\n // 6. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e\n // \"be liberal with padding\". This is annoying, and it's not even in the spec.\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n if (actualValue[actualValue.length - 1] === '=') {\n if (actualValue[actualValue.length - 2] === '=') {\n actualValue = actualValue.slice(0, -2)\n } else {\n actualValue = actualValue.slice(0, -1)\n }\n }\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (compareBase64Mixed(actualValue, expectedValue)) {\n return true\n }\n }\n\n // 7. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\\s|$)( +[!-~]*)?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (\n parsedToken === null ||\n parsedToken.groups === undefined ||\n parsedToken.groups.algo === undefined\n ) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo.toLowerCase()\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm)) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n/**\n * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList\n */\nfunction getStrongestMetadata (metadataList) {\n // Let algorithm be the algo component of the first item in metadataList.\n // Can be sha256\n let algorithm = metadataList[0].algo\n // If the algorithm is sha512, then it is the strongest\n // and we can return immediately\n if (algorithm[3] === '5') {\n return algorithm\n }\n\n for (let i = 1; i < metadataList.length; ++i) {\n const metadata = metadataList[i]\n // If the algorithm is sha512, then it is the strongest\n // and we can break the loop immediately\n if (metadata.algo[3] === '5') {\n algorithm = 'sha512'\n break\n // If the algorithm is sha384, then a potential sha256 or sha384 is ignored\n } else if (algorithm[3] === '3') {\n continue\n // algorithm is sha256, check if algorithm is sha384 and if so, set it as\n // the strongest\n } else if (metadata.algo[3] === '3') {\n algorithm = 'sha384'\n }\n }\n return algorithm\n}\n\nfunction filterMetadataListByAlgorithm (metadataList, algorithm) {\n if (metadataList.length === 1) {\n return metadataList\n }\n\n let pos = 0\n for (let i = 0; i < metadataList.length; ++i) {\n if (metadataList[i].algo === algorithm) {\n metadataList[pos++] = metadataList[i]\n }\n }\n\n metadataList.length = pos\n\n return metadataList\n}\n\n/**\n * Compares two base64 strings, allowing for base64url\n * in the second string.\n *\n* @param {string} actualValue always base64\n * @param {string} expectedValue base64 or base64url\n * @returns {boolean}\n */\nfunction compareBase64Mixed (actualValue, expectedValue) {\n if (actualValue.length !== expectedValue.length) {\n return false\n }\n for (let i = 0; i < actualValue.length; ++i) {\n if (actualValue[i] !== expectedValue[i]) {\n if (\n (actualValue[i] === '+' && expectedValue[i] === '-') ||\n (actualValue[i] === '/' && expectedValue[i] === '_')\n ) {\n continue\n }\n return false\n }\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\nconst normalizeMethodRecord = {\n delete: 'DELETE',\n DELETE: 'DELETE',\n get: 'GET',\n GET: 'GET',\n head: 'HEAD',\n HEAD: 'HEAD',\n options: 'OPTIONS',\n OPTIONS: 'OPTIONS',\n post: 'POST',\n POST: 'POST',\n put: 'PUT',\n PUT: 'PUT'\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(normalizeMethodRecord, null)\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-method-normalize\n * @param {string} method\n */\nfunction normalizeMethod (method) {\n return normalizeMethodRecord[method.toLowerCase()] ?? method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = processBody\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = processBodyError\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n try {\n const result = await readAllBytes(reader)\n successSteps(result)\n } catch (e) {\n errorSteps(e)\n }\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n */\nasync function readAllBytes (reader) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n const { done, value: chunk } = await reader.read()\n\n if (done) {\n // 1. Call successSteps with bytes.\n return Buffer.concat(bytes, byteLength)\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n throw new TypeError('Received non-Uint8Array chunk')\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes,\n normalizeMethodRecord,\n parseMetadata\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n if (x.charCodeAt(index) > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n if (!excludeFragment) {\n return url.href\n }\n\n const href = url.href\n const hashLength = url.hash.length\n\n return hashLength === 0 ? href : href.substring(0, href.length - hashLength)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\nconst encoder = new TextEncoder()\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(encoder.encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('@fastify/busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? textEncoder.encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = textEncoder.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = textEncoder.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = textEncoder.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = new Busboy({\n headers,\n preservePath: true\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, filename, encoding, mimeType) => {\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n // Note that streaming decoder is stateful and cannot be reused\n const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += streamingDecoder.decode(chunk, { stream: true })\n }\n text += streamingDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n await fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = textDecoder.decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require('./symbols')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n util.destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n // TODO: adjust to support H2\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n\n static [kHTTP1BuildRequest] (origin, opts, handler) {\n // TODO: Migrate header parsing here, to make Requests\n // HTTP agnostic\n return new Request(origin, opts, handler)\n }\n\n static [kHTTP2BuildRequest] (origin, opts, handler) {\n const headers = opts.headers\n opts = { ...opts, headers: null }\n\n const request = new Request(origin, opts, handler)\n\n request.headers = {}\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(request, headers[i], headers[i + 1], true)\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(request, key, headers[key], true)\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n return request\n }\n\n static [kHTTP2CopyHeaders] (raw) {\n const rawHeaders = raw.split('\\r\\n')\n const headers = {}\n\n for (const header of rawHeaders) {\n const [key, value] = header.split(': ')\n\n if (value == null || value.length === 0) continue\n\n if (headers[key]) headers[key] += `,${value}`\n else headers[key] = value\n }\n\n return headers\n }\n}\n\nfunction processHeaderValue (key, val, skipAppend) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return skipAppend ? val : `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val, skipAppend = false) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n if (skipAppend) {\n if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`\n else request.headers[key] = processHeaderValue(key, val[i], skipAppend)\n } else {\n request.headers += processHeaderValue(key, val[i])\n }\n }\n } else {\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\n// FIXME: remove workaround when the Node bug is fixed\n// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\nif (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n allowH2 = allowH2 != null ? allowH2 : false\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n // TODO(HTTP/2): Add support for h2c\n ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'],\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n if (header.length === 4) {\n return util.headerNameToString(header) === 'host'\n }\n if (removeContent && util.headerNameToString(header).startsWith('content-')) {\n return true\n }\n if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {\n const name = util.headerNameToString(header)\n return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization'\n }\n return false\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst http = require('http')\nconst { pipeline } = require('stream')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize,\n kHTTPConnVersion,\n // HTTP2\n kHost,\n kHTTP2Session,\n kHTTP2SessionState,\n kHTTP2BuildRequest,\n kHTTP2CopyHeaders,\n kHTTP1BuildRequest\n} = require('./core/symbols')\n\n/** @type {import('http2')} */\nlet http2\ntry {\n http2 = require('http2')\n} catch {\n // @ts-ignore\n http2 = { constants: {} }\n}\n\nconst {\n constants: {\n HTTP2_HEADER_AUTHORITY,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_CONTENT_LENGTH,\n HTTP2_HEADER_EXPECT,\n HTTP2_HEADER_STATUS\n }\n} = http2\n\n// Experimental\nlet h2ExperimentalWarned = false\n\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n // h2\n allowH2,\n maxConcurrentStreams\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n // h2\n if (allowH2 != null && typeof allowH2 !== 'boolean') {\n throw new InvalidArgumentError('allowH2 must be a valid boolean value')\n }\n\n if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) {\n throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n this[kHTTPConnVersion] = 'h1'\n\n // HTTP/2\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = !allowH2\n ? null\n : {\n // streams: null, // Fixed queue of streams - For future support of `push`\n openStreams: 0, // Keep track of them to decide wether or not unref the session\n maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server\n }\n this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = this[kHTTPConnVersion] === 'h2'\n ? Request[kHTTP2BuildRequest](origin, opts, handler)\n : Request[kHTTP1BuildRequest](origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n // TODO: for H2 we need to gracefully flush the remaining enqueued\n // request and close each stream.\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (this[kHTTP2Session] != null) {\n util.destroy(this[kHTTP2Session], err)\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = null\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nfunction onHttp2SessionError (err) {\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n this[kSocket][kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onHttp2FrameError (type, code, id) {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n\n if (id === 0) {\n this[kSocket][kError] = err\n onError(this[kClient], err)\n }\n}\n\nfunction onHttp2SessionEnd () {\n util.destroy(this, new SocketError('other side closed'))\n util.destroy(this[kSocket], new SocketError('other side closed'))\n}\n\nfunction onHTTP2GoAway (code) {\n const client = this[kClient]\n const err = new InformationalError(`HTTP/2: \"GOAWAY\" frame received with code ${code}`)\n client[kSocket] = null\n client[kHTTP2Session] = null\n\n if (client.destroyed) {\n assert(this[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n } else if (client[kRunning] > 0) {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect',\n client[kUrl],\n [client],\n err\n )\n\n resume(client)\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n\n if (request.aborted) {\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n request.onComplete(headers)\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n if (parser) {\n parser.readMore()\n }\n}\n\nfunction onSocketError (err) {\n const { [kClient]: client, [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n if (client[kHTTPConnVersion] !== 'h2') {\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser, [kClient]: client } = this\n\n if (client[kHTTPConnVersion] !== 'h2') {\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client, [kParser]: parser } = this\n\n if (client[kHTTPConnVersion] === 'h1' && parser) {\n if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n }\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substring(1, idx)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n const isH2 = socket.alpnProtocol === 'h2'\n if (isH2) {\n if (!h2ExperimentalWarned) {\n h2ExperimentalWarned = true\n process.emitWarning('H2 support is experimental, expect them to change at any time.', {\n code: 'UNDICI-H2'\n })\n }\n\n const session = http2.connect(client[kUrl], {\n createConnection: () => socket,\n peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams\n })\n\n client[kHTTPConnVersion] = 'h2'\n session[kClient] = client\n session[kSocket] = socket\n session.on('error', onHttp2SessionError)\n session.on('frameError', onHttp2FrameError)\n session.on('end', onHttp2SessionEnd)\n session.on('goaway', onHTTP2GoAway)\n session.on('close', onSocketClose)\n session.unref()\n\n client[kHTTP2Session] = session\n socket[kHTTP2Session] = session\n } else {\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n }\n\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket[kClient] = client\n socket[kError] = null\n\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket && !client[kHTTP2Session]) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\n// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2\nfunction shouldSendContentLength (method) {\n return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'\n}\n\nfunction write (client, request) {\n if (client[kHTTPConnVersion] === 'h2') {\n writeH2(client, client[kHTTP2Session], request)\n return\n }\n\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n const bodyLength = util.bodyLength(body)\n\n let contentLength = bodyLength\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body || bodyLength === 0) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeH2 (client, session, request) {\n const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request\n\n let headers\n if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim())\n else headers = reqHeaders\n\n if (upgrade) {\n errorRequest(client, request, new Error('Upgrade not supported for H2'))\n return false\n }\n\n try {\n // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event?\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n /** @type {import('node:http2').ClientHttp2Stream} */\n let stream\n const h2State = client[kHTTP2SessionState]\n\n headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]\n headers[HTTP2_HEADER_METHOD] = method\n\n if (method === 'CONNECT') {\n session.ref()\n // we are already connected, streams are pending, first request\n // will create a new stream. We trigger a request to create the stream and wait until\n // `ready` event is triggered\n // We disabled endStream to allow the user to write to the stream\n stream = session.request(headers, { endStream: false, signal })\n\n if (stream.id && !stream.pending) {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n } else {\n stream.once('ready', () => {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n })\n }\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) session.unref()\n })\n\n return true\n }\n\n // https://tools.ietf.org/html/rfc7540#section-8.3\n // :path and :scheme headers must be omited when sending CONNECT\n\n headers[HTTP2_HEADER_PATH] = path\n headers[HTTP2_HEADER_SCHEME] = 'https'\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength == null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 || !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (contentLength != null) {\n assert(body, 'no body must not have content length')\n headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`\n }\n\n session.ref()\n\n const shouldEndStream = method === 'GET' || method === 'HEAD'\n if (expectContinue) {\n headers[HTTP2_HEADER_EXPECT] = '100-continue'\n stream = session.request(headers, { endStream: shouldEndStream, signal })\n\n stream.once('continue', writeBodyH2)\n } else {\n stream = session.request(headers, {\n endStream: shouldEndStream,\n signal\n })\n writeBodyH2()\n }\n\n // Increment counter as we have new several streams open\n ++h2State.openStreams\n\n stream.once('response', headers => {\n const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers\n\n if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {\n stream.pause()\n }\n })\n\n stream.once('end', () => {\n request.onComplete([])\n })\n\n stream.on('data', (chunk) => {\n if (request.onData(chunk) === false) {\n stream.pause()\n }\n })\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) {\n session.unref()\n }\n })\n\n stream.once('error', function (err) {\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n stream.once('frameError', (type, code) => {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n errorRequest(client, request, err)\n\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n // stream.on('aborted', () => {\n // // TODO(HTTP/2): Support aborted\n // })\n\n // stream.on('timeout', () => {\n // // TODO(HTTP/2): Support timeout\n // })\n\n // stream.on('push', headers => {\n // // TODO(HTTP/2): Suppor push\n // })\n\n // stream.on('trailers', headers => {\n // // TODO(HTTP/2): Support trailers\n // })\n\n return true\n\n function writeBodyH2 () {\n /* istanbul ignore else: assertion */\n if (!body) {\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n stream.cork()\n stream.write(body)\n stream.uncork()\n stream.end()\n request.onBodySent(body)\n request.onRequestSent()\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({\n client,\n request,\n contentLength,\n h2stream: stream,\n expectsPayload,\n body: body.stream(),\n socket: client[kSocket],\n header: ''\n })\n } else {\n writeBlob({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n h2stream: stream,\n header: '',\n socket: client[kSocket]\n })\n }\n } else if (util.isStream(body)) {\n writeStream({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n socket: client[kSocket],\n h2stream: stream,\n header: ''\n })\n } else if (util.isIterable(body)) {\n writeIterable({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n header: '',\n h2stream: stream,\n socket: client[kSocket]\n })\n } else {\n assert(false)\n }\n }\n}\n\nfunction writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n if (client[kHTTPConnVersion] === 'h2') {\n // For HTTP/2, is enough to pipe the stream\n const pipe = pipeline(\n body,\n h2stream,\n (err) => {\n if (err) {\n util.destroy(body, err)\n util.destroy(h2stream, err)\n } else {\n request.onRequestSent()\n }\n }\n )\n\n pipe.on('data', onPipeData)\n pipe.once('end', () => {\n pipe.removeListener('data', onPipeData)\n util.destroy(pipe)\n })\n\n function onPipeData (chunk) {\n request.onBodySent(chunk)\n }\n\n return\n }\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n if (finished) {\n return\n }\n const err = new RequestAbortedError()\n queueMicrotask(() => onFinished(err))\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n const isH2 = client[kHTTPConnVersion] === 'h2'\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n if (isH2) {\n h2stream.cork()\n h2stream.write(buffer)\n h2stream.uncork()\n } else {\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n }\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(isH2 ? h2stream : socket, err)\n }\n}\n\nasync function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n if (client[kHTTPConnVersion] === 'h2') {\n h2stream\n .on('close', onDrain)\n .on('drain', onDrain)\n\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n const res = h2stream.write(chunk)\n request.onBodySent(chunk)\n if (!res) {\n await waitForDrain()\n }\n }\n } catch (err) {\n h2stream.destroy(err)\n } finally {\n request.onRequestSent()\n h2stream.end()\n h2stream\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n\n return\n }\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n allowH2,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect, allowH2 }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n if (dispatcher.on) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n }\n}\n\nmodule.exports = function () {\n // FIXME: remove workaround when the Node bug is fixed\n // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\n if (process.env.NODE_V8_COVERAGE) {\n return {\n WeakRef: CompatWeakRef,\n FinalizationRegistry: CompatFinalizer\n }\n }\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nconst noop = () => {}\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n\n if (signal) {\n try {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n if (this.closed) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve, reject) => {\n const signalListenerCleanup = signal\n ? util.addAbortListener(signal, () => {\n this.destroy()\n })\n : noop\n\n this\n .on('close', function () {\n signalListenerCleanup()\n if (signal && signal.aborted) {\n reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))\n } else {\n resolve(null)\n }\n })\n .on('error', noop)\n .on('data', function (chunk) {\n limit -= chunk.length\n if (limit <= 0) {\n this.destroy()\n }\n })\n .resume()\n })\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst.buffer)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\nmodule.exports.RequestHandler = RequestHandler\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n if (factory === null) {\n return\n }\n\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res ? res.write(chunk) : true\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n if (!res) {\n return\n }\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { AsyncResource } = require('async_hooks')\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n\n let headers = rawHeaders\n // Indicates is an HTTP2Session\n if (headers != null) {\n headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host, username, password } = resolvedUrl\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n } else if (username && password) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`\n }\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "const assert = require('assert')\n\nconst { kRetryHandlerDefaultRetry } = require('../core/symbols')\nconst { RequestRetryError } = require('../core/errors')\nconst { isDisturbed, parseHeaders, parseRangeHeader } = require('../core/util')\n\nfunction calculateRetryAfterHeader (retryAfter) {\n const current = Date.now()\n const diff = new Date(retryAfter).getTime() - current\n\n return diff\n}\n\nclass RetryHandler {\n constructor (opts, handlers) {\n const { retryOptions, ...dispatchOpts } = opts\n const {\n // Retry scoped\n retry: retryFn,\n maxRetries,\n maxTimeout,\n minTimeout,\n timeoutFactor,\n // Response scoped\n methods,\n errorCodes,\n retryAfter,\n statusCodes\n } = retryOptions ?? {}\n\n this.dispatch = handlers.dispatch\n this.handler = handlers.handler\n this.opts = dispatchOpts\n this.abort = null\n this.aborted = false\n this.retryOpts = {\n retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry],\n retryAfter: retryAfter ?? true,\n maxTimeout: maxTimeout ?? 30 * 1000, // 30s,\n timeout: minTimeout ?? 500, // .5s\n timeoutFactor: timeoutFactor ?? 2,\n maxRetries: maxRetries ?? 5,\n // What errors we should retry\n methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],\n // Indicates which errors to retry\n statusCodes: statusCodes ?? [500, 502, 503, 504, 429],\n // List of errors to retry\n errorCodes: errorCodes ?? [\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENOTFOUND',\n 'ENETDOWN',\n 'ENETUNREACH',\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'EPIPE'\n ]\n }\n\n this.retryCount = 0\n this.start = 0\n this.end = null\n this.etag = null\n this.resume = null\n\n // Handle possible onConnect duplication\n this.handler.onConnect(reason => {\n this.aborted = true\n if (this.abort) {\n this.abort(reason)\n } else {\n this.reason = reason\n }\n })\n }\n\n onRequestSent () {\n if (this.handler.onRequestSent) {\n this.handler.onRequestSent()\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n if (this.handler.onUpgrade) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n }\n\n onConnect (abort) {\n if (this.aborted) {\n abort(this.reason)\n } else {\n this.abort = abort\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) return this.handler.onBodySent(chunk)\n }\n\n static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {\n const { statusCode, code, headers } = err\n const { method, retryOptions } = opts\n const {\n maxRetries,\n timeout,\n maxTimeout,\n timeoutFactor,\n statusCodes,\n errorCodes,\n methods\n } = retryOptions\n let { counter, currentTimeout } = state\n\n currentTimeout =\n currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout\n\n // Any code that is not a Undici's originated and allowed to retry\n if (\n code &&\n code !== 'UND_ERR_REQ_RETRY' &&\n code !== 'UND_ERR_SOCKET' &&\n !errorCodes.includes(code)\n ) {\n cb(err)\n return\n }\n\n // If a set of method are provided and the current method is not in the list\n if (Array.isArray(methods) && !methods.includes(method)) {\n cb(err)\n return\n }\n\n // If a set of status code are provided and the current status code is not in the list\n if (\n statusCode != null &&\n Array.isArray(statusCodes) &&\n !statusCodes.includes(statusCode)\n ) {\n cb(err)\n return\n }\n\n // If we reached the max number of retries\n if (counter > maxRetries) {\n cb(err)\n return\n }\n\n let retryAfterHeader = headers != null && headers['retry-after']\n if (retryAfterHeader) {\n retryAfterHeader = Number(retryAfterHeader)\n retryAfterHeader = isNaN(retryAfterHeader)\n ? calculateRetryAfterHeader(retryAfterHeader)\n : retryAfterHeader * 1e3 // Retry-After is in seconds\n }\n\n const retryTimeout =\n retryAfterHeader > 0\n ? Math.min(retryAfterHeader, maxTimeout)\n : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout)\n\n state.currentTimeout = retryTimeout\n\n setTimeout(() => cb(null), retryTimeout)\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const headers = parseHeaders(rawHeaders)\n\n this.retryCount += 1\n\n if (statusCode >= 300) {\n this.abort(\n new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Checkpoint for resume from where we left it\n if (this.resume != null) {\n this.resume = null\n\n if (statusCode !== 206) {\n return true\n }\n\n const contentRange = parseRangeHeader(headers['content-range'])\n // If no content range\n if (!contentRange) {\n this.abort(\n new RequestRetryError('Content-Range mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Let's start with a weak etag check\n if (this.etag != null && this.etag !== headers.etag) {\n this.abort(\n new RequestRetryError('ETag mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n const { start, size, end = size } = contentRange\n\n assert(this.start === start, 'content-range mismatch')\n assert(this.end == null || this.end === end, 'content-range mismatch')\n\n this.resume = resume\n return true\n }\n\n if (this.end == null) {\n if (statusCode === 206) {\n // First time we receive 206\n const range = parseRangeHeader(headers['content-range'])\n\n if (range == null) {\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const { start, size, end = size } = range\n\n assert(\n start != null && Number.isFinite(start) && this.start !== start,\n 'content-range mismatch'\n )\n assert(Number.isFinite(start))\n assert(\n end != null && Number.isFinite(end) && this.end !== end,\n 'invalid content-length'\n )\n\n this.start = start\n this.end = end\n }\n\n // We make our best to checkpoint the body for further range headers\n if (this.end == null) {\n const contentLength = headers['content-length']\n this.end = contentLength != null ? Number(contentLength) : null\n }\n\n assert(Number.isFinite(this.start))\n assert(\n this.end == null || Number.isFinite(this.end),\n 'invalid content-length'\n )\n\n this.resume = resume\n this.etag = headers.etag != null ? headers.etag : null\n\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const err = new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n\n this.abort(err)\n\n return false\n }\n\n onData (chunk) {\n this.start += chunk.length\n\n return this.handler.onData(chunk)\n }\n\n onComplete (rawTrailers) {\n this.retryCount = 0\n return this.handler.onComplete(rawTrailers)\n }\n\n onError (err) {\n if (this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n this.retryOpts.retry(\n err,\n {\n state: { counter: this.retryCount++, currentTimeout: this.retryAfter },\n opts: { retryOptions: this.retryOpts, ...this.opts }\n },\n onRetry.bind(this)\n )\n\n function onRetry (err) {\n if (err != null || this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n if (this.start !== 0) {\n this.opts = {\n ...this.opts,\n headers: {\n ...this.opts.headers,\n range: `bytes=${this.start}-${this.end ?? ''}`\n }\n }\n }\n\n try {\n this.dispatch(this.opts, this)\n } catch (err) {\n this.handler.onError(err)\n }\n }\n }\n}\n\nmodule.exports = RetryHandler\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @param {number} code\n */\nfunction isHTTPWhiteSpaceCharCode (code) {\n return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n let i = 0; let j = potentialValue.length\n\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i\n\n return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j)\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; ++i) {\n const header = object[i]\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n appendHeader(headers, header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n const keys = Object.keys(object)\n for (let i = 0; i < keys.length; ++i) {\n appendHeader(headers, keys[i], object[keys[i]])\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-headers-append\n */\nfunction appendHeader (headers, name, value) {\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (headers[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (headers[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n return headers[kHeadersList].append(name, value)\n\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies === null ? null : [...init.cookies]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n const value = this[kHeadersMap].get(name.toLowerCase())\n\n // 1. If list does not contain name, then return null.\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return value === undefined ? null : value.value\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n if (init === kConstruct) {\n return\n }\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n return appendHeader(this, name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (let i = 0; i < names.length; ++i) {\n const [name, value] = names[i]\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (let j = 0; j < cookies.length; ++j) {\n headers.push([name, cookies[j]])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key+value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\nconst textEncoder = new TextEncoder('utf-8')\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = textEncoder.encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatusSet.has(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams, err = null) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err }))\n : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err }))\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer,\n normalizeMethodRecord\n} = require('./util')\nconst {\n forbiddenMethodsSet,\n corsSafeListedMethodsSet,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kConstruct) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n const initHasKey = Object.keys(init).length !== 0\n\n // 13. If init is not empty, then:\n if (initHasKey) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(method)) {\n throw new TypeError(`'${method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethodsSet.has(method.toUpperCase())) {\n throw new TypeError(`'${method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethodRecord[method] ?? normalizeMethod(method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethodsSet.has(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (initHasKey) {\n /** @type {HeadersList} */\n const headersList = this[kHeaders][kHeadersList]\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList)\n\n // 3. Empty this\u2019s headers\u2019s header list.\n headersList.clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers instanceof HeadersList) {\n for (const [key, val] of headers) {\n headersList.append(key, val)\n }\n // Note: Copy the `set-cookie` meta-data.\n headersList.cookies = headers.cookies\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kConstruct)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers(kConstruct)\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n safeMethodsSet,\n requestBodyHeader,\n subresourceSet,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\nconst GET_OR_HEAD = ['GET', 'HEAD']\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nfunction fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return Promise.resolve()\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return Promise.resolve()\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return Promise.resolve()\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!response.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresourceSet.has(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nfunction schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return Promise.resolve(makeAppropriateNetworkError(fetchParams))\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return Promise.resolve(makeNetworkError('about scheme is not supported'))\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.'))\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return Promise.resolve(makeNetworkError('invalid method'))\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return Promise.resolve(response)\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return Promise.resolve(makeNetworkError('failed to fetch the data URL'))\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return Promise.resolve(makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n }))\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return Promise.resolve(makeNetworkError('not implemented... yet...'))\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return Promise.resolve(makeNetworkError('unknown scheme'))\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nfunction fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n return fullyReadBody(response.body, processBody, processBodyError)\n }\n return Promise.resolve()\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatusSet.has(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nfunction httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return Promise.resolve(makeNetworkError(err))\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme'))\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return Promise.resolve(makeNetworkError('redirect count exceeded'))\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return Promise.resolve(makeNetworkError('cross origin not allowed for request mode \"cors\"'))\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return Promise.resolve(makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n ))\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return Promise.resolve(makeNetworkError())\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !GET_OR_HEAD.includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n\n // https://fetch.spec.whatwg.org/#authentication-entries\n request.headersList.delete('proxy-authorization', true)\n\n // \"Cookie\" and \"Host\" are forbidden request-headers, which undici doesn't implement.\n request.headersList.delete('cookie')\n request.headersList.delete('host')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n httpRequest.headersList.delete('host')\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethodsSet.has(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams, err)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n\n // For H2, the headers are a plain JS object\n // We distinguish between them and iterate accordingly\n if (Array.isArray(headersList)) {\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n } else {\n const keys = Object.keys(headersList)\n for (const key of keys) {\n const val = headersList[key]\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatusSet.has(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers[kHeadersList].append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: require('../core/symbols').kConstruct\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = \n token = 1*\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = \n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = crypto.randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik \n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { getGlobalOrigin } = require('../fetch/global')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let baseURL be this's relevant settings object's API base URL.\n const baseURL = getGlobalOrigin()\n\n // 1. Let urlRecord be the result of applying the URL parser to url with baseURL.\n let urlRecord\n\n try {\n urlRecord = new URL(url, baseURL)\n } catch (e) {\n // 3. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 4. If urlRecord\u2019s scheme is \"http\", then set urlRecord\u2019s scheme to \"ws\".\n if (urlRecord.protocol === 'http:') {\n urlRecord.protocol = 'ws:'\n } else if (urlRecord.protocol === 'https:') {\n // 5. Otherwise, if urlRecord\u2019s scheme is \"https\", set urlRecord\u2019s scheme to \"wss\".\n urlRecord.protocol = 'wss:'\n }\n\n // 6. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 7. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash || urlRecord.href.endsWith('#')) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 8. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 9. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 10. Set this's url to urlRecord.\n this[kWebSocketURL] = new URL(urlRecord.href)\n\n // 11. Let client be this's relevant settings object.\n\n // 12. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst RetryHandler = require('./lib/handler/RetryHandler')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\nmodule.exports.RetryHandler = RetryHandler\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n if (typeof err === 'object') {\n Error.captureStackTrace(err, this)\n }\n\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, null, null, null, null, null, null, null, null, "const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n", "import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n", "// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n", "import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` \u2192 `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n", "export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n", "import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n", "import { error as _error, warning as _warn } from '@actions/core';\nimport chalk from 'chalk';\nimport stripAnsi from 'strip-ansi';\n\nfunction write(prefix: string, ...args: unknown[]): void {\n console.log([`[${prefix}]`, ...args].join(' '));\n}\n\nfunction dir(obj: unknown): void {\n console.dir(obj);\n}\n\nfunction debug(msg: unknown, ...args: unknown[]): void {\n write(chalk.blue('DEBUG'), msg, ...args);\n}\n\nfunction info(msg: unknown, ...args: unknown[]): void {\n write(chalk.green(' INFO'), msg, ...args);\n}\n\nfunction warn(msg: unknown, ...args: unknown[]): void {\n write(chalk.magenta(' WARN'), msg, ...args);\n _warn(stripAnsi([msg, ...args].join(' ')));\n}\n\nfunction error(msg: unknown, ...args: unknown[]): void {\n write(chalk.red('ERROR'), msg, ...args);\n _error(stripAnsi([msg, ...args].join(' ')));\n}\n\nconst log = (m: unknown, ...args: unknown[]): void => debug(m, ...args);\n\nlog.dir = (m: unknown): void => dir(m);\nlog.info = (m: unknown, ...args: unknown[]): void => info(m, ...args);\nlog.warn = (m: unknown, ...args: unknown[]): void => warn(m, ...args);\nlog.error = (m: unknown, ...args: unknown[]): void => error(m, ...args);\n\nexport default log;\n", "const typedArrayTypeNames = [\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array',\n];\nfunction isTypedArrayName(name) {\n return typedArrayTypeNames.includes(name);\n}\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Blob',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'WeakRef',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'FormData',\n 'URLSearchParams',\n 'HTMLElement',\n 'NaN',\n ...typedArrayTypeNames,\n];\nfunction isObjectTypeName(name) {\n return objectTypeNames.includes(name);\n}\nconst primitiveTypeNames = [\n 'null',\n 'undefined',\n 'string',\n 'number',\n 'bigint',\n 'boolean',\n 'symbol',\n];\nfunction isPrimitiveTypeName(name) {\n return primitiveTypeNames.includes(name);\n}\nconst assertionTypeDescriptions = [\n 'positive number',\n 'negative number',\n 'Class',\n 'string with a number',\n 'null or undefined',\n 'Iterable',\n 'AsyncIterable',\n 'native Promise',\n 'EnumCase',\n 'string with a URL',\n 'truthy',\n 'falsy',\n 'primitive',\n 'integer',\n 'plain object',\n 'TypedArray',\n 'array-like',\n 'tuple-like',\n 'Node.js Stream',\n 'infinite number',\n 'empty array',\n 'non-empty array',\n 'empty string',\n 'empty string or whitespace',\n 'non-empty string',\n 'non-empty string and not whitespace',\n 'empty object',\n 'non-empty object',\n 'empty set',\n 'non-empty set',\n 'empty map',\n 'non-empty map',\n 'PropertyKey',\n 'even integer',\n 'odd integer',\n 'T',\n 'in range',\n 'predicate returns truthy for any value',\n 'predicate returns truthy for all values',\n 'valid Date',\n 'valid length',\n 'whitespace string',\n ...objectTypeNames,\n ...primitiveTypeNames,\n];\nconst getObjectType = (value) => {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName) && isHtmlElement(value)) {\n return 'HTMLElement';\n }\n if (isObjectTypeName(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n};\nfunction detect(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'undefined': {\n return 'undefined';\n }\n case 'string': {\n return 'string';\n }\n case 'number': {\n return Number.isNaN(value) ? 'NaN' : 'number';\n }\n case 'boolean': {\n return 'boolean';\n }\n case 'function': {\n return 'Function';\n }\n case 'bigint': {\n return 'bigint';\n }\n case 'symbol': {\n return 'symbol';\n }\n default:\n }\n if (isObservable(value)) {\n return 'Observable';\n }\n if (isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const tagType = getObjectType(value);\n if (tagType) {\n return tagType;\n }\n if (value instanceof String || value instanceof Boolean || value instanceof Number) {\n throw new TypeError('Please don\\'t use object wrappers for primitive types');\n }\n return 'Object';\n}\nfunction hasPromiseApi(value) {\n return isFunction(value?.then) && isFunction(value?.catch);\n}\nconst is = Object.assign(detect, {\n all: isAll,\n any: isAny,\n array: isArray,\n arrayBuffer: isArrayBuffer,\n arrayLike: isArrayLike,\n asyncFunction: isAsyncFunction,\n asyncGenerator: isAsyncGenerator,\n asyncGeneratorFunction: isAsyncGeneratorFunction,\n asyncIterable: isAsyncIterable,\n bigint: isBigint,\n bigInt64Array: isBigInt64Array,\n bigUint64Array: isBigUint64Array,\n blob: isBlob,\n boolean: isBoolean,\n boundFunction: isBoundFunction,\n buffer: isBuffer,\n class: isClass,\n dataView: isDataView,\n date: isDate,\n detect,\n directInstanceOf: isDirectInstanceOf,\n emptyArray: isEmptyArray,\n emptyMap: isEmptyMap,\n emptyObject: isEmptyObject,\n emptySet: isEmptySet,\n emptyString: isEmptyString,\n emptyStringOrWhitespace: isEmptyStringOrWhitespace,\n enumCase: isEnumCase,\n error: isError,\n evenInteger: isEvenInteger,\n falsy: isFalsy,\n float32Array: isFloat32Array,\n float64Array: isFloat64Array,\n formData: isFormData,\n function: isFunction,\n generator: isGenerator,\n generatorFunction: isGeneratorFunction,\n htmlElement: isHtmlElement,\n infinite: isInfinite,\n inRange: isInRange,\n int16Array: isInt16Array,\n int32Array: isInt32Array,\n int8Array: isInt8Array,\n integer: isInteger,\n iterable: isIterable,\n map: isMap,\n nan: isNan,\n nativePromise: isNativePromise,\n negativeNumber: isNegativeNumber,\n nodeStream: isNodeStream,\n nonEmptyArray: isNonEmptyArray,\n nonEmptyMap: isNonEmptyMap,\n nonEmptyObject: isNonEmptyObject,\n nonEmptySet: isNonEmptySet,\n nonEmptyString: isNonEmptyString,\n nonEmptyStringAndNotWhitespace: isNonEmptyStringAndNotWhitespace,\n null: isNull,\n nullOrUndefined: isNullOrUndefined,\n number: isNumber,\n numericString: isNumericString,\n object: isObject,\n observable: isObservable,\n oddInteger: isOddInteger,\n plainObject: isPlainObject,\n positiveNumber: isPositiveNumber,\n primitive: isPrimitive,\n promise: isPromise,\n propertyKey: isPropertyKey,\n regExp: isRegExp,\n safeInteger: isSafeInteger,\n set: isSet,\n sharedArrayBuffer: isSharedArrayBuffer,\n string: isString,\n symbol: isSymbol,\n truthy: isTruthy,\n tupleLike: isTupleLike,\n typedArray: isTypedArray,\n uint16Array: isUint16Array,\n uint32Array: isUint32Array,\n uint8Array: isUint8Array,\n uint8ClampedArray: isUint8ClampedArray,\n undefined: isUndefined,\n urlInstance: isUrlInstance,\n urlSearchParams: isUrlSearchParams,\n urlString: isUrlString,\n validDate: isValidDate,\n validLength: isValidLength,\n weakMap: isWeakMap,\n weakRef: isWeakRef,\n weakSet: isWeakSet,\n whitespaceString: isWhitespaceString,\n});\nfunction isAbsoluteModule2(remainder) {\n return (value) => isInteger(value) && Math.abs(value % 2) === remainder;\n}\nexport function isAll(predicate, ...values) {\n return predicateOnArray(Array.prototype.every, predicate, values);\n}\nexport function isAny(predicate, ...values) {\n const predicates = isArray(predicate) ? predicate : [predicate];\n return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values));\n}\nexport function isArray(value, assertion) {\n if (!Array.isArray(value)) {\n return false;\n }\n if (!isFunction(assertion)) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return value.every(element => assertion(element));\n}\nexport function isArrayBuffer(value) {\n return getObjectType(value) === 'ArrayBuffer';\n}\nexport function isArrayLike(value) {\n return !isNullOrUndefined(value) && !isFunction(value) && isValidLength(value.length);\n}\nexport function isAsyncFunction(value) {\n return getObjectType(value) === 'AsyncFunction';\n}\nexport function isAsyncGenerator(value) {\n return isAsyncIterable(value) && isFunction(value.next) && isFunction(value.throw);\n}\nexport function isAsyncGeneratorFunction(value) {\n return getObjectType(value) === 'AsyncGeneratorFunction';\n}\nexport function isAsyncIterable(value) {\n return isFunction(value?.[Symbol.asyncIterator]);\n}\nexport function isBigint(value) {\n return typeof value === 'bigint';\n}\nexport function isBigInt64Array(value) {\n return getObjectType(value) === 'BigInt64Array';\n}\nexport function isBigUint64Array(value) {\n return getObjectType(value) === 'BigUint64Array';\n}\nexport function isBlob(value) {\n return getObjectType(value) === 'Blob';\n}\nexport function isBoolean(value) {\n return value === true || value === false;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isBoundFunction(value) {\n return isFunction(value) && !Object.hasOwn(value, 'prototype');\n}\n/**\nNote: [Prefer using `Uint8Array` instead of `Buffer`.](https://sindresorhus.com/blog/goodbye-nodejs-buffer)\n*/\nexport function isBuffer(value) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return value?.constructor?.isBuffer?.(value) ?? false;\n}\nexport function isClass(value) {\n return isFunction(value) && value.toString().startsWith('class ');\n}\nexport function isDataView(value) {\n return getObjectType(value) === 'DataView';\n}\nexport function isDate(value) {\n return getObjectType(value) === 'Date';\n}\nexport function isDirectInstanceOf(instance, class_) {\n if (instance === undefined || instance === null) {\n return false;\n }\n return Object.getPrototypeOf(instance) === class_.prototype;\n}\nexport function isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nexport function isEmptyMap(value) {\n return isMap(value) && value.size === 0;\n}\nexport function isEmptyObject(value) {\n return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length === 0;\n}\nexport function isEmptySet(value) {\n return isSet(value) && value.size === 0;\n}\nexport function isEmptyString(value) {\n return isString(value) && value.length === 0;\n}\nexport function isEmptyStringOrWhitespace(value) {\n return isEmptyString(value) || isWhitespaceString(value);\n}\nexport function isEnumCase(value, targetEnum) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return Object.values(targetEnum).includes(value);\n}\nexport function isError(value) {\n return getObjectType(value) === 'Error';\n}\nexport function isEvenInteger(value) {\n return isAbsoluteModule2(0)(value);\n}\n// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`\nexport function isFalsy(value) {\n return !value;\n}\nexport function isFloat32Array(value) {\n return getObjectType(value) === 'Float32Array';\n}\nexport function isFloat64Array(value) {\n return getObjectType(value) === 'Float64Array';\n}\nexport function isFormData(value) {\n return getObjectType(value) === 'FormData';\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isGenerator(value) {\n return isIterable(value) && isFunction(value?.next) && isFunction(value?.throw);\n}\nexport function isGeneratorFunction(value) {\n return getObjectType(value) === 'GeneratorFunction';\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst NODE_TYPE_ELEMENT = 1;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n];\nexport function isHtmlElement(value) {\n return isObject(value)\n && value.nodeType === NODE_TYPE_ELEMENT\n && isString(value.nodeName)\n && !isPlainObject(value)\n && DOM_PROPERTIES_TO_CHECK.every(property => property in value);\n}\nexport function isInfinite(value) {\n return value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY;\n}\nexport function isInRange(value, range) {\n if (isNumber(range)) {\n return value >= Math.min(0, range) && value <= Math.max(range, 0);\n }\n if (isArray(range) && range.length === 2) {\n return value >= Math.min(...range) && value <= Math.max(...range);\n }\n throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);\n}\nexport function isInt16Array(value) {\n return getObjectType(value) === 'Int16Array';\n}\nexport function isInt32Array(value) {\n return getObjectType(value) === 'Int32Array';\n}\nexport function isInt8Array(value) {\n return getObjectType(value) === 'Int8Array';\n}\nexport function isInteger(value) {\n return Number.isInteger(value);\n}\nexport function isIterable(value) {\n return isFunction(value?.[Symbol.iterator]);\n}\nexport function isMap(value) {\n return getObjectType(value) === 'Map';\n}\nexport function isNan(value) {\n return Number.isNaN(value);\n}\nexport function isNativePromise(value) {\n return getObjectType(value) === 'Promise';\n}\nexport function isNegativeNumber(value) {\n return isNumber(value) && value < 0;\n}\nexport function isNodeStream(value) {\n return isObject(value) && isFunction(value.pipe) && !isObservable(value);\n}\nexport function isNonEmptyArray(value) {\n return isArray(value) && value.length > 0;\n}\nexport function isNonEmptyMap(value) {\n return isMap(value) && value.size > 0;\n}\n// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:\n// - https://github.com/Microsoft/TypeScript/pull/29317\nexport function isNonEmptyObject(value) {\n return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length > 0;\n}\nexport function isNonEmptySet(value) {\n return isSet(value) && value.size > 0;\n}\n// TODO: Use `not ''` when the `not` operator is available.\nexport function isNonEmptyString(value) {\n return isString(value) && value.length > 0;\n}\n// TODO: Use `not ''` when the `not` operator is available.\nexport function isNonEmptyStringAndNotWhitespace(value) {\n return isString(value) && !isEmptyStringOrWhitespace(value);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNull(value) {\n return value === null;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNullOrUndefined(value) {\n return isNull(value) || isUndefined(value);\n}\nexport function isNumber(value) {\n return typeof value === 'number' && !Number.isNaN(value);\n}\nexport function isNumericString(value) {\n return isString(value) && !isEmptyStringOrWhitespace(value) && !Number.isNaN(Number(value));\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isObject(value) {\n return !isNull(value) && (typeof value === 'object' || isFunction(value));\n}\nexport function isObservable(value) {\n if (!value) {\n return false;\n }\n // eslint-disable-next-line no-use-extend-native/no-use-extend-native, @typescript-eslint/no-unsafe-call\n if (value === value[Symbol.observable]?.()) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (value === value['@@observable']?.()) {\n return true;\n }\n return false;\n}\nexport function isOddInteger(value) {\n return isAbsoluteModule2(1)(value);\n}\nexport function isPlainObject(value) {\n // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\nexport function isPositiveNumber(value) {\n return isNumber(value) && value > 0;\n}\nexport function isPrimitive(value) {\n return isNull(value) || isPrimitiveTypeName(typeof value);\n}\nexport function isPromise(value) {\n return isNativePromise(value) || hasPromiseApi(value);\n}\n// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)\nexport function isPropertyKey(value) {\n return isAny([isString, isNumber, isSymbol], value);\n}\nexport function isRegExp(value) {\n return getObjectType(value) === 'RegExp';\n}\nexport function isSafeInteger(value) {\n return Number.isSafeInteger(value);\n}\nexport function isSet(value) {\n return getObjectType(value) === 'Set';\n}\nexport function isSharedArrayBuffer(value) {\n return getObjectType(value) === 'SharedArrayBuffer';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function isSymbol(value) {\n return typeof value === 'symbol';\n}\n// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`\n// eslint-disable-next-line unicorn/prefer-native-coercion-functions\nexport function isTruthy(value) {\n return Boolean(value);\n}\nexport function isTupleLike(value, guards) {\n if (isArray(guards) && isArray(value) && guards.length === value.length) {\n return guards.every((guard, index) => guard(value[index]));\n }\n return false;\n}\nexport function isTypedArray(value) {\n return isTypedArrayName(getObjectType(value));\n}\nexport function isUint16Array(value) {\n return getObjectType(value) === 'Uint16Array';\n}\nexport function isUint32Array(value) {\n return getObjectType(value) === 'Uint32Array';\n}\nexport function isUint8Array(value) {\n return getObjectType(value) === 'Uint8Array';\n}\nexport function isUint8ClampedArray(value) {\n return getObjectType(value) === 'Uint8ClampedArray';\n}\nexport function isUndefined(value) {\n return value === undefined;\n}\nexport function isUrlInstance(value) {\n return getObjectType(value) === 'URL';\n}\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport function isUrlSearchParams(value) {\n return getObjectType(value) === 'URLSearchParams';\n}\nexport function isUrlString(value) {\n if (!isString(value)) {\n return false;\n }\n try {\n new URL(value); // eslint-disable-line no-new\n return true;\n }\n catch {\n return false;\n }\n}\nexport function isValidDate(value) {\n return isDate(value) && !isNan(Number(value));\n}\nexport function isValidLength(value) {\n return isSafeInteger(value) && value >= 0;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isWeakMap(value) {\n return getObjectType(value) === 'WeakMap';\n}\n// eslint-disable-next-line @typescript-eslint/ban-types, unicorn/prevent-abbreviations\nexport function isWeakRef(value) {\n return getObjectType(value) === 'WeakRef';\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isWeakSet(value) {\n return getObjectType(value) === 'WeakSet';\n}\nexport function isWhitespaceString(value) {\n return isString(value) && /^\\s+$/.test(value);\n}\nfunction predicateOnArray(method, predicate, values) {\n if (!isFunction(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n return method.call(values, predicate);\n}\nfunction typeErrorMessage(description, value) {\n return `Expected value which is \\`${description}\\`, received value of type \\`${is(value)}\\`.`;\n}\nfunction unique(values) {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(new Set(values));\n}\nconst andFormatter = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' });\nconst orFormatter = new Intl.ListFormat('en', { style: 'long', type: 'disjunction' });\nfunction typeErrorMessageMultipleValues(expectedType, values) {\n const uniqueExpectedTypes = unique((isArray(expectedType) ? expectedType : [expectedType]).map(value => `\\`${value}\\``));\n const uniqueValueTypes = unique(values.map(value => `\\`${is(value)}\\``));\n return `Expected values which are ${orFormatter.format(uniqueExpectedTypes)}. Received values of type${uniqueValueTypes.length > 1 ? 's' : ''} ${andFormatter.format(uniqueValueTypes)}.`;\n}\nexport const assert = {\n all: assertAll,\n any: assertAny,\n array: assertArray,\n arrayBuffer: assertArrayBuffer,\n arrayLike: assertArrayLike,\n asyncFunction: assertAsyncFunction,\n asyncGenerator: assertAsyncGenerator,\n asyncGeneratorFunction: assertAsyncGeneratorFunction,\n asyncIterable: assertAsyncIterable,\n bigint: assertBigint,\n bigInt64Array: assertBigInt64Array,\n bigUint64Array: assertBigUint64Array,\n blob: assertBlob,\n boolean: assertBoolean,\n boundFunction: assertBoundFunction,\n buffer: assertBuffer,\n class: assertClass,\n dataView: assertDataView,\n date: assertDate,\n directInstanceOf: assertDirectInstanceOf,\n emptyArray: assertEmptyArray,\n emptyMap: assertEmptyMap,\n emptyObject: assertEmptyObject,\n emptySet: assertEmptySet,\n emptyString: assertEmptyString,\n emptyStringOrWhitespace: assertEmptyStringOrWhitespace,\n enumCase: assertEnumCase,\n error: assertError,\n evenInteger: assertEvenInteger,\n falsy: assertFalsy,\n float32Array: assertFloat32Array,\n float64Array: assertFloat64Array,\n formData: assertFormData,\n function: assertFunction,\n generator: assertGenerator,\n generatorFunction: assertGeneratorFunction,\n htmlElement: assertHtmlElement,\n infinite: assertInfinite,\n inRange: assertInRange,\n int16Array: assertInt16Array,\n int32Array: assertInt32Array,\n int8Array: assertInt8Array,\n integer: assertInteger,\n iterable: assertIterable,\n map: assertMap,\n nan: assertNan,\n nativePromise: assertNativePromise,\n negativeNumber: assertNegativeNumber,\n nodeStream: assertNodeStream,\n nonEmptyArray: assertNonEmptyArray,\n nonEmptyMap: assertNonEmptyMap,\n nonEmptyObject: assertNonEmptyObject,\n nonEmptySet: assertNonEmptySet,\n nonEmptyString: assertNonEmptyString,\n nonEmptyStringAndNotWhitespace: assertNonEmptyStringAndNotWhitespace,\n null: assertNull,\n nullOrUndefined: assertNullOrUndefined,\n number: assertNumber,\n numericString: assertNumericString,\n object: assertObject,\n observable: assertObservable,\n oddInteger: assertOddInteger,\n plainObject: assertPlainObject,\n positiveNumber: assertPositiveNumber,\n primitive: assertPrimitive,\n promise: assertPromise,\n propertyKey: assertPropertyKey,\n regExp: assertRegExp,\n safeInteger: assertSafeInteger,\n set: assertSet,\n sharedArrayBuffer: assertSharedArrayBuffer,\n string: assertString,\n symbol: assertSymbol,\n truthy: assertTruthy,\n tupleLike: assertTupleLike,\n typedArray: assertTypedArray,\n uint16Array: assertUint16Array,\n uint32Array: assertUint32Array,\n uint8Array: assertUint8Array,\n uint8ClampedArray: assertUint8ClampedArray,\n undefined: assertUndefined,\n urlInstance: assertUrlInstance,\n urlSearchParams: assertUrlSearchParams,\n urlString: assertUrlString,\n validDate: assertValidDate,\n validLength: assertValidLength,\n weakMap: assertWeakMap,\n weakRef: assertWeakRef,\n weakSet: assertWeakSet,\n whitespaceString: assertWhitespaceString,\n};\nconst methodTypeMap = {\n isArray: 'Array',\n isArrayBuffer: 'ArrayBuffer',\n isArrayLike: 'array-like',\n isAsyncFunction: 'AsyncFunction',\n isAsyncGenerator: 'AsyncGenerator',\n isAsyncGeneratorFunction: 'AsyncGeneratorFunction',\n isAsyncIterable: 'AsyncIterable',\n isBigint: 'bigint',\n isBigInt64Array: 'BigInt64Array',\n isBigUint64Array: 'BigUint64Array',\n isBlob: 'Blob',\n isBoolean: 'boolean',\n isBoundFunction: 'Function',\n isBuffer: 'Buffer',\n isClass: 'Class',\n isDataView: 'DataView',\n isDate: 'Date',\n isDirectInstanceOf: 'T',\n isEmptyArray: 'empty array',\n isEmptyMap: 'empty map',\n isEmptyObject: 'empty object',\n isEmptySet: 'empty set',\n isEmptyString: 'empty string',\n isEmptyStringOrWhitespace: 'empty string or whitespace',\n isEnumCase: 'EnumCase',\n isError: 'Error',\n isEvenInteger: 'even integer',\n isFalsy: 'falsy',\n isFloat32Array: 'Float32Array',\n isFloat64Array: 'Float64Array',\n isFormData: 'FormData',\n isFunction: 'Function',\n isGenerator: 'Generator',\n isGeneratorFunction: 'GeneratorFunction',\n isHtmlElement: 'HTMLElement',\n isInfinite: 'infinite number',\n isInRange: 'in range',\n isInt16Array: 'Int16Array',\n isInt32Array: 'Int32Array',\n isInt8Array: 'Int8Array',\n isInteger: 'integer',\n isIterable: 'Iterable',\n isMap: 'Map',\n isNan: 'NaN',\n isNativePromise: 'native Promise',\n isNegativeNumber: 'negative number',\n isNodeStream: 'Node.js Stream',\n isNonEmptyArray: 'non-empty array',\n isNonEmptyMap: 'non-empty map',\n isNonEmptyObject: 'non-empty object',\n isNonEmptySet: 'non-empty set',\n isNonEmptyString: 'non-empty string',\n isNonEmptyStringAndNotWhitespace: 'non-empty string and not whitespace',\n isNull: 'null',\n isNullOrUndefined: 'null or undefined',\n isNumber: 'number',\n isNumericString: 'string with a number',\n isObject: 'Object',\n isObservable: 'Observable',\n isOddInteger: 'odd integer',\n isPlainObject: 'plain object',\n isPositiveNumber: 'positive number',\n isPrimitive: 'primitive',\n isPromise: 'Promise',\n isPropertyKey: 'PropertyKey',\n isRegExp: 'RegExp',\n isSafeInteger: 'integer',\n isSet: 'Set',\n isSharedArrayBuffer: 'SharedArrayBuffer',\n isString: 'string',\n isSymbol: 'symbol',\n isTruthy: 'truthy',\n isTupleLike: 'tuple-like',\n isTypedArray: 'TypedArray',\n isUint16Array: 'Uint16Array',\n isUint32Array: 'Uint32Array',\n isUint8Array: 'Uint8Array',\n isUint8ClampedArray: 'Uint8ClampedArray',\n isUndefined: 'undefined',\n isUrlInstance: 'URL',\n isUrlSearchParams: 'URLSearchParams',\n isUrlString: 'string with a URL',\n isValidDate: 'valid Date',\n isValidLength: 'valid length',\n isWeakMap: 'WeakMap',\n isWeakRef: 'WeakRef',\n isWeakSet: 'WeakSet',\n isWhitespaceString: 'whitespace string',\n};\nfunction keysOf(value) {\n return Object.keys(value);\n}\nconst isMethodNames = keysOf(methodTypeMap);\nfunction isIsMethodName(value) {\n return isMethodNames.includes(value);\n}\nexport function assertAll(predicate, ...values) {\n if (!isAll(predicate, ...values)) {\n const expectedType = isIsMethodName(predicate.name) ? methodTypeMap[predicate.name] : 'predicate returns truthy for all values';\n throw new TypeError(typeErrorMessageMultipleValues(expectedType, values));\n }\n}\nexport function assertAny(predicate, ...values) {\n if (!isAny(predicate, ...values)) {\n const predicates = isArray(predicate) ? predicate : [predicate];\n const expectedTypes = predicates.map(predicate => isIsMethodName(predicate.name) ? methodTypeMap[predicate.name] : 'predicate returns truthy for any value');\n throw new TypeError(typeErrorMessageMultipleValues(expectedTypes, values));\n }\n}\nexport function assertArray(value, assertion, message) {\n if (!isArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('Array', value));\n }\n if (assertion) {\n for (const element of value) {\n // @ts-expect-error: \"Assertions require every name in the call target to be declared with an explicit type annotation.\"\n assertion(element, message);\n }\n }\n}\nexport function assertArrayBuffer(value, message) {\n if (!isArrayBuffer(value)) {\n throw new TypeError(message ?? typeErrorMessage('ArrayBuffer', value));\n }\n}\nexport function assertArrayLike(value, message) {\n if (!isArrayLike(value)) {\n throw new TypeError(message ?? typeErrorMessage('array-like', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertAsyncFunction(value, message) {\n if (!isAsyncFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncFunction', value));\n }\n}\nexport function assertAsyncGenerator(value, message) {\n if (!isAsyncGenerator(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncGenerator', value));\n }\n}\nexport function assertAsyncGeneratorFunction(value, message) {\n if (!isAsyncGeneratorFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncGeneratorFunction', value));\n }\n}\nexport function assertAsyncIterable(value, message) {\n if (!isAsyncIterable(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncIterable', value));\n }\n}\nexport function assertBigint(value, message) {\n if (!isBigint(value)) {\n throw new TypeError(message ?? typeErrorMessage('bigint', value));\n }\n}\nexport function assertBigInt64Array(value, message) {\n if (!isBigInt64Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('BigInt64Array', value));\n }\n}\nexport function assertBigUint64Array(value, message) {\n if (!isBigUint64Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('BigUint64Array', value));\n }\n}\nexport function assertBlob(value, message) {\n if (!isBlob(value)) {\n throw new TypeError(message ?? typeErrorMessage('Blob', value));\n }\n}\nexport function assertBoolean(value, message) {\n if (!isBoolean(value)) {\n throw new TypeError(message ?? typeErrorMessage('boolean', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertBoundFunction(value, message) {\n if (!isBoundFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('Function', value));\n }\n}\n/**\nNote: [Prefer using `Uint8Array` instead of `Buffer`.](https://sindresorhus.com/blog/goodbye-nodejs-buffer)\n*/\nexport function assertBuffer(value, message) {\n if (!isBuffer(value)) {\n throw new TypeError(message ?? typeErrorMessage('Buffer', value));\n }\n}\nexport function assertClass(value, message) {\n if (!isClass(value)) {\n throw new TypeError(message ?? typeErrorMessage('Class', value));\n }\n}\nexport function assertDataView(value, message) {\n if (!isDataView(value)) {\n throw new TypeError(message ?? typeErrorMessage('DataView', value));\n }\n}\nexport function assertDate(value, message) {\n if (!isDate(value)) {\n throw new TypeError(message ?? typeErrorMessage('Date', value));\n }\n}\nexport function assertDirectInstanceOf(instance, class_, message) {\n if (!isDirectInstanceOf(instance, class_)) {\n throw new TypeError(message ?? typeErrorMessage('T', instance));\n }\n}\nexport function assertEmptyArray(value, message) {\n if (!isEmptyArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty array', value));\n }\n}\nexport function assertEmptyMap(value, message) {\n if (!isEmptyMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty map', value));\n }\n}\nexport function assertEmptyObject(value, message) {\n if (!isEmptyObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty object', value));\n }\n}\nexport function assertEmptySet(value, message) {\n if (!isEmptySet(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty set', value));\n }\n}\nexport function assertEmptyString(value, message) {\n if (!isEmptyString(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty string', value));\n }\n}\nexport function assertEmptyStringOrWhitespace(value, message) {\n if (!isEmptyStringOrWhitespace(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty string or whitespace', value));\n }\n}\nexport function assertEnumCase(value, targetEnum, message) {\n if (!isEnumCase(value, targetEnum)) {\n throw new TypeError(message ?? typeErrorMessage('EnumCase', value));\n }\n}\nexport function assertError(value, message) {\n if (!isError(value)) {\n throw new TypeError(message ?? typeErrorMessage('Error', value));\n }\n}\nexport function assertEvenInteger(value, message) {\n if (!isEvenInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('even integer', value));\n }\n}\nexport function assertFalsy(value, message) {\n if (!isFalsy(value)) {\n throw new TypeError(message ?? typeErrorMessage('falsy', value));\n }\n}\nexport function assertFloat32Array(value, message) {\n if (!isFloat32Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Float32Array', value));\n }\n}\nexport function assertFloat64Array(value, message) {\n if (!isFloat64Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Float64Array', value));\n }\n}\nexport function assertFormData(value, message) {\n if (!isFormData(value)) {\n throw new TypeError(message ?? typeErrorMessage('FormData', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertFunction(value, message) {\n if (!isFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('Function', value));\n }\n}\nexport function assertGenerator(value, message) {\n if (!isGenerator(value)) {\n throw new TypeError(message ?? typeErrorMessage('Generator', value));\n }\n}\nexport function assertGeneratorFunction(value, message) {\n if (!isGeneratorFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('GeneratorFunction', value));\n }\n}\nexport function assertHtmlElement(value, message) {\n if (!isHtmlElement(value)) {\n throw new TypeError(message ?? typeErrorMessage('HTMLElement', value));\n }\n}\nexport function assertInfinite(value, message) {\n if (!isInfinite(value)) {\n throw new TypeError(message ?? typeErrorMessage('infinite number', value));\n }\n}\nexport function assertInRange(value, range, message) {\n if (!isInRange(value, range)) {\n throw new TypeError(message ?? typeErrorMessage('in range', value));\n }\n}\nexport function assertInt16Array(value, message) {\n if (!isInt16Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Int16Array', value));\n }\n}\nexport function assertInt32Array(value, message) {\n if (!isInt32Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Int32Array', value));\n }\n}\nexport function assertInt8Array(value, message) {\n if (!isInt8Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Int8Array', value));\n }\n}\nexport function assertInteger(value, message) {\n if (!isInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('integer', value));\n }\n}\nexport function assertIterable(value, message) {\n if (!isIterable(value)) {\n throw new TypeError(message ?? typeErrorMessage('Iterable', value));\n }\n}\nexport function assertMap(value, message) {\n if (!isMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('Map', value));\n }\n}\nexport function assertNan(value, message) {\n if (!isNan(value)) {\n throw new TypeError(message ?? typeErrorMessage('NaN', value));\n }\n}\nexport function assertNativePromise(value, message) {\n if (!isNativePromise(value)) {\n throw new TypeError(message ?? typeErrorMessage('native Promise', value));\n }\n}\nexport function assertNegativeNumber(value, message) {\n if (!isNegativeNumber(value)) {\n throw new TypeError(message ?? typeErrorMessage('negative number', value));\n }\n}\nexport function assertNodeStream(value, message) {\n if (!isNodeStream(value)) {\n throw new TypeError(message ?? typeErrorMessage('Node.js Stream', value));\n }\n}\nexport function assertNonEmptyArray(value, message) {\n if (!isNonEmptyArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty array', value));\n }\n}\nexport function assertNonEmptyMap(value, message) {\n if (!isNonEmptyMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty map', value));\n }\n}\nexport function assertNonEmptyObject(value, message) {\n if (!isNonEmptyObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty object', value));\n }\n}\nexport function assertNonEmptySet(value, message) {\n if (!isNonEmptySet(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty set', value));\n }\n}\nexport function assertNonEmptyString(value, message) {\n if (!isNonEmptyString(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty string', value));\n }\n}\nexport function assertNonEmptyStringAndNotWhitespace(value, message) {\n if (!isNonEmptyStringAndNotWhitespace(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty string and not whitespace', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertNull(value, message) {\n if (!isNull(value)) {\n throw new TypeError(message ?? typeErrorMessage('null', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertNullOrUndefined(value, message) {\n if (!isNullOrUndefined(value)) {\n throw new TypeError(message ?? typeErrorMessage('null or undefined', value));\n }\n}\nexport function assertNumber(value, message) {\n if (!isNumber(value)) {\n throw new TypeError(message ?? typeErrorMessage('number', value));\n }\n}\nexport function assertNumericString(value, message) {\n if (!isNumericString(value)) {\n throw new TypeError(message ?? typeErrorMessage('string with a number', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertObject(value, message) {\n if (!isObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('Object', value));\n }\n}\nexport function assertObservable(value, message) {\n if (!isObservable(value)) {\n throw new TypeError(message ?? typeErrorMessage('Observable', value));\n }\n}\nexport function assertOddInteger(value, message) {\n if (!isOddInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('odd integer', value));\n }\n}\nexport function assertPlainObject(value, message) {\n if (!isPlainObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('plain object', value));\n }\n}\nexport function assertPositiveNumber(value, message) {\n if (!isPositiveNumber(value)) {\n throw new TypeError(message ?? typeErrorMessage('positive number', value));\n }\n}\nexport function assertPrimitive(value, message) {\n if (!isPrimitive(value)) {\n throw new TypeError(message ?? typeErrorMessage('primitive', value));\n }\n}\nexport function assertPromise(value, message) {\n if (!isPromise(value)) {\n throw new TypeError(message ?? typeErrorMessage('Promise', value));\n }\n}\nexport function assertPropertyKey(value, message) {\n if (!isPropertyKey(value)) {\n throw new TypeError(message ?? typeErrorMessage('PropertyKey', value));\n }\n}\nexport function assertRegExp(value, message) {\n if (!isRegExp(value)) {\n throw new TypeError(message ?? typeErrorMessage('RegExp', value));\n }\n}\nexport function assertSafeInteger(value, message) {\n if (!isSafeInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('integer', value));\n }\n}\nexport function assertSet(value, message) {\n if (!isSet(value)) {\n throw new TypeError(message ?? typeErrorMessage('Set', value));\n }\n}\nexport function assertSharedArrayBuffer(value, message) {\n if (!isSharedArrayBuffer(value)) {\n throw new TypeError(message ?? typeErrorMessage('SharedArrayBuffer', value));\n }\n}\nexport function assertString(value, message) {\n if (!isString(value)) {\n throw new TypeError(message ?? typeErrorMessage('string', value));\n }\n}\nexport function assertSymbol(value, message) {\n if (!isSymbol(value)) {\n throw new TypeError(message ?? typeErrorMessage('symbol', value));\n }\n}\nexport function assertTruthy(value, message) {\n if (!isTruthy(value)) {\n throw new TypeError(message ?? typeErrorMessage('truthy', value));\n }\n}\nexport function assertTupleLike(value, guards, message) {\n if (!isTupleLike(value, guards)) {\n throw new TypeError(message ?? typeErrorMessage('tuple-like', value));\n }\n}\nexport function assertTypedArray(value, message) {\n if (!isTypedArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('TypedArray', value));\n }\n}\nexport function assertUint16Array(value, message) {\n if (!isUint16Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint16Array', value));\n }\n}\nexport function assertUint32Array(value, message) {\n if (!isUint32Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint32Array', value));\n }\n}\nexport function assertUint8Array(value, message) {\n if (!isUint8Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint8Array', value));\n }\n}\nexport function assertUint8ClampedArray(value, message) {\n if (!isUint8ClampedArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint8ClampedArray', value));\n }\n}\nexport function assertUndefined(value, message) {\n if (!isUndefined(value)) {\n throw new TypeError(message ?? typeErrorMessage('undefined', value));\n }\n}\nexport function assertUrlInstance(value, message) {\n if (!isUrlInstance(value)) {\n throw new TypeError(message ?? typeErrorMessage('URL', value));\n }\n}\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport function assertUrlSearchParams(value, message) {\n if (!isUrlSearchParams(value)) {\n throw new TypeError(message ?? typeErrorMessage('URLSearchParams', value));\n }\n}\nexport function assertUrlString(value, message) {\n if (!isUrlString(value)) {\n throw new TypeError(message ?? typeErrorMessage('string with a URL', value));\n }\n}\nexport function assertValidDate(value, message) {\n if (!isValidDate(value)) {\n throw new TypeError(message ?? typeErrorMessage('valid Date', value));\n }\n}\nexport function assertValidLength(value, message) {\n if (!isValidLength(value)) {\n throw new TypeError(message ?? typeErrorMessage('valid length', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertWeakMap(value, message) {\n if (!isWeakMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('WeakMap', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types, unicorn/prevent-abbreviations\nexport function assertWeakRef(value, message) {\n if (!isWeakRef(value)) {\n throw new TypeError(message ?? typeErrorMessage('WeakRef', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertWeakSet(value, message) {\n if (!isWeakSet(value)) {\n throw new TypeError(message ?? typeErrorMessage('WeakSet', value));\n }\n}\nexport function assertWhitespaceString(value, message) {\n if (!isWhitespaceString(value)) {\n throw new TypeError(message ?? typeErrorMessage('whitespace string', value));\n }\n}\nexport default is;\n", "export interface ExecResult {\n readonly code: number;\n readonly stdout: string;\n readonly stderr: string;\n}\n\nexport class ExecError extends Error implements ExecResult {\n override readonly name = 'ExecError';\n\n constructor(\n public readonly code: number,\n public readonly stdout: string,\n public readonly stderr: string,\n public readonly cmd: string,\n ) {\n super(`ExecError: (${code}) ` + stderr.split('\\n').slice(-10).join('\\n'));\n }\n}\n\nexport interface BuildsConfig {\n buildArg: string;\n buildArgs?: string[];\n buildOnly: boolean;\n tagSuffix?: string;\n depName: string;\n imagePrefix: string;\n image: string;\n ignoredVersions: string[];\n majorMinor: boolean;\n lastOnly: boolean;\n dryRun: boolean;\n prune: boolean;\n versioning: string;\n}\n\nexport interface ConfigFile {\n allowedVersions?: string;\n datasource: string;\n image: string;\n depName?: string;\n lookupName?: string;\n versioning?: string;\n startVersion: string;\n cache?: string;\n buildArg?: string;\n ignoredVersions?: string[];\n forceUnstable?: boolean;\n versions?: string[];\n latestVersion?: string;\n maxVersions?: number;\n extractVersion?: string;\n skipLatestTag?: boolean;\n /**\n * If `true` process versions from highest to lowest,\n * otherwise process from lowest to highest.\n */\n reverse?: boolean;\n}\n\nexport type DockerBuilderConfig = {\n buildArg: string;\n buildArgs?: string[];\n buildOnly: boolean;\n tagSuffix?: string;\n depName: string;\n imagePrefix: string;\n imagePrefixes: string[];\n image: string;\n ignoredVersions: string[];\n majorMinor: boolean;\n lastOnly: boolean;\n dryRun: boolean;\n prune: boolean;\n versioning: string;\n platforms: string[];\n} & ConfigFile;\n\nexport type BinaryBuilderConfig = {\n buildArgs?: string[];\n depName: string;\n ignoredVersions: string[];\n lastOnly: boolean;\n dryRun: boolean;\n versioning: string;\n} & ConfigFile;\n\nexport const sumType = 'sha512';\n", "import * as fs from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { endGroup, getInput, startGroup } from '@actions/core';\nimport { exec as _exec } from '@actions/exec';\nimport type { ExecOptions as _ExecOptions } from '@actions/exec/lib/interfaces';\nimport { which } from '@actions/io';\nimport { isNonEmptyStringAndNotWhitespace } from '@sindresorhus/is';\nimport { findUp } from 'find-up';\nimport type { DockerArch } from './utils/docker/common';\nimport { ExecError, ExecResult } from './utils/types';\n\nexport type ExecOptions = _ExecOptions;\n\nexport async function exists(command: string): Promise {\n try {\n await which(command, true);\n } catch {\n return false;\n }\n\n return true;\n}\n\nexport async function exec(\n cmd: string,\n args: string[],\n options?: ExecOptions,\n): Promise {\n let stdout = '';\n let stderr = '';\n let code: number;\n\n try {\n startGroup(`${cmd} ${args.join(' ')}`);\n code = await _exec(cmd, args, {\n ...options,\n ignoreReturnCode: true,\n listeners: {\n stdout: (data: Buffer) => {\n stdout += data.toString();\n },\n stderr: (data: Buffer) => {\n stderr += data.toString();\n },\n },\n });\n } finally {\n endGroup();\n }\n if (code) {\n throw new ExecError(code, stdout, stderr, `${cmd} ${args.join(' ')}`);\n }\n\n return { code, stdout, stderr };\n}\n\n/**\n * Get environment variable or empty string.\n * Used for easy mocking.\n * @param key variable name\n */\nexport function getEnv(key: string): string {\n return process.env[key] ?? '';\n}\n\nexport function isCI(): boolean {\n return !!getEnv('CI');\n}\n\nexport function isDryRun(): boolean {\n const val = getInput('dry-run') || getEnv('DRY_RUN');\n return (!!val && val === 'true') || !isCI();\n}\n\nexport function getWorkspace(): string {\n return getEnv('GITHUB_WORKSPACE') || process.cwd();\n}\n\nexport function getDistro(): string {\n return getEnv('DISTRO') || getEnv('FLAVOR');\n}\n\nexport function getArch(): DockerArch {\n return getEnv('ARCH') as DockerArch;\n}\n\nexport async function readJson(file: string): Promise {\n const json = await readFile(file);\n return JSON.parse(json) as T;\n}\n\nexport async function readFile(file: string): Promise {\n const path = join(getWorkspace(), file);\n return await fs.readFile(path, 'utf8');\n}\n\nexport async function readBuffer(file: string): Promise {\n const path = join(getWorkspace(), file);\n return await fs.readFile(path);\n}\n\nexport async function writeFile(\n file: string,\n contents: string | Buffer,\n): Promise {\n const path = join(getWorkspace(), file);\n await fs.writeFile(path, contents);\n}\n\nexport const MultiArgsSplitRe = /\\s*(?:[;,]|$)\\s*/;\n\nexport function getArg(name: string, opts?: { required?: boolean }): string;\nexport function getArg(\n name: string,\n opts?: { required?: boolean; multi: true },\n): string[];\nexport function getArg(\n name: string,\n opts?: { required?: boolean; multi?: boolean },\n): string | string[];\nexport function getArg(\n name: string,\n opts?: { required?: boolean; multi?: boolean },\n): string | string[] {\n /* c8 ignore start */\n // istanbul ignore if: just for local testing where dash is not allowed\n if (process.env.NODE_ENV === 'debug') {\n name = name.replace(/-/g, '_');\n }\n /* c8 ignore stop */\n const val = getInput(name, opts);\n return opts?.multi\n ? val.split(MultiArgsSplitRe).filter(isNonEmptyStringAndNotWhitespace)\n : val;\n}\n\nlet _pkg: Promise;\n\n/**\n * Resolve path for a file relative to renovate root directory (our package.json)\n * @param file a file to resolve\n */\nexport async function resolveFile(file: string): Promise {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!_pkg) {\n _pkg = findUp('package.json', { cwd: __dirname, type: 'file' });\n }\n const pkg = await _pkg;\n /* c8 ignore start */\n // istanbul ignore if\n if (!pkg) {\n throw new Error('Missing package.json');\n }\n /* c8 ignore stop */\n return join(pkg, '../', file);\n}\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n", "\"use strict\";\n/// \n/// \n/// \nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst typedArrayTypeNames = [\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nfunction isTypedArrayName(name) {\n return typedArrayTypeNames.includes(name);\n}\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Blob',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'FormData',\n 'URLSearchParams',\n 'HTMLElement',\n ...typedArrayTypeNames\n];\nfunction isObjectTypeName(name) {\n return objectTypeNames.includes(name);\n}\nconst primitiveTypeNames = [\n 'null',\n 'undefined',\n 'string',\n 'number',\n 'bigint',\n 'boolean',\n 'symbol'\n];\nfunction isPrimitiveTypeName(name) {\n return primitiveTypeNames.includes(name);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType(type) {\n return (value) => typeof value === type;\n}\nconst { toString } = Object.prototype;\nconst getObjectType = (value) => {\n const objectTypeName = toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName) && is.domElement(value)) {\n return 'HTMLElement';\n }\n if (isObjectTypeName(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n};\nconst isObjectOfType = (type) => (value) => getObjectType(value) === type;\nfunction is(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'undefined':\n return 'undefined';\n case 'string':\n return 'string';\n case 'number':\n return 'number';\n case 'boolean':\n return 'boolean';\n case 'function':\n return 'Function';\n case 'bigint':\n return 'bigint';\n case 'symbol':\n return 'symbol';\n default:\n }\n if (is.observable(value)) {\n return 'Observable';\n }\n if (is.array(value)) {\n return 'Array';\n }\n if (is.buffer(value)) {\n return 'Buffer';\n }\n const tagType = getObjectType(value);\n if (tagType) {\n return tagType;\n }\n if (value instanceof String || value instanceof Boolean || value instanceof Number) {\n throw new TypeError('Please don\\'t use object wrappers for primitive types');\n }\n return 'Object';\n}\nis.undefined = isOfType('undefined');\nis.string = isOfType('string');\nconst isNumberType = isOfType('number');\nis.number = (value) => isNumberType(value) && !is.nan(value);\nis.bigint = isOfType('bigint');\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function_ = isOfType('function');\nis.null_ = (value) => value === null;\nis.class_ = (value) => is.function_(value) && value.toString().startsWith('class ');\nis.boolean = (value) => value === true || value === false;\nis.symbol = isOfType('symbol');\nis.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value));\nis.array = (value, assertion) => {\n if (!Array.isArray(value)) {\n return false;\n }\n if (!is.function_(assertion)) {\n return true;\n }\n return value.every(assertion);\n};\nis.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; };\nis.blob = (value) => isObjectOfType('Blob')(value);\nis.nullOrUndefined = (value) => is.null_(value) || is.undefined(value);\nis.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value));\nis.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); };\nis.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); };\nis.generator = (value) => { var _a, _b; return is.iterable(value) && is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.next) && is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.throw); };\nis.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw);\nis.nativePromise = (value) => isObjectOfType('Promise')(value);\nconst hasPromiseAPI = (value) => {\n var _a, _b;\n return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) &&\n is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch);\n};\nis.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value);\nis.generatorFunction = isObjectOfType('GeneratorFunction');\nis.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction';\nis.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction';\n// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types\nis.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype');\nis.regExp = isObjectOfType('RegExp');\nis.date = isObjectOfType('Date');\nis.error = isObjectOfType('Error');\nis.map = (value) => isObjectOfType('Map')(value);\nis.set = (value) => isObjectOfType('Set')(value);\nis.weakMap = (value) => isObjectOfType('WeakMap')(value);\nis.weakSet = (value) => isObjectOfType('WeakSet')(value);\nis.int8Array = isObjectOfType('Int8Array');\nis.uint8Array = isObjectOfType('Uint8Array');\nis.uint8ClampedArray = isObjectOfType('Uint8ClampedArray');\nis.int16Array = isObjectOfType('Int16Array');\nis.uint16Array = isObjectOfType('Uint16Array');\nis.int32Array = isObjectOfType('Int32Array');\nis.uint32Array = isObjectOfType('Uint32Array');\nis.float32Array = isObjectOfType('Float32Array');\nis.float64Array = isObjectOfType('Float64Array');\nis.bigInt64Array = isObjectOfType('BigInt64Array');\nis.bigUint64Array = isObjectOfType('BigUint64Array');\nis.arrayBuffer = isObjectOfType('ArrayBuffer');\nis.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer');\nis.dataView = isObjectOfType('DataView');\nis.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value);\nis.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;\nis.urlInstance = (value) => isObjectOfType('URL')(value);\nis.urlString = (value) => {\n if (!is.string(value)) {\n return false;\n }\n try {\n new URL(value); // eslint-disable-line no-new\n return true;\n }\n catch (_a) {\n return false;\n }\n};\n// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`\nis.truthy = (value) => Boolean(value);\n// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`\nis.falsy = (value) => !value;\nis.nan = (value) => Number.isNaN(value);\nis.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value);\nis.integer = (value) => Number.isInteger(value);\nis.safeInteger = (value) => Number.isSafeInteger(value);\nis.plainObject = (value) => {\n // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\n if (toString.call(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\nis.typedArray = (value) => isTypedArrayName(getObjectType(value));\nconst isValidLength = (value) => is.safeInteger(value) && value >= 0;\nis.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length);\nis.inRange = (value, range) => {\n if (is.number(range)) {\n return value >= Math.min(0, range) && value <= Math.max(range, 0);\n }\n if (is.array(range) && range.length === 2) {\n return value >= Math.min(...range) && value <= Math.max(...range);\n }\n throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);\n};\nconst NODE_TYPE_ELEMENT = 1;\nconst DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue'\n];\nis.domElement = (value) => {\n return is.object(value) &&\n value.nodeType === NODE_TYPE_ELEMENT &&\n is.string(value.nodeName) &&\n !is.plainObject(value) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in value);\n};\nis.observable = (value) => {\n var _a, _b, _c, _d;\n if (!value) {\n return false;\n }\n // eslint-disable-next-line no-use-extend-native/no-use-extend-native\n if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) {\n return true;\n }\n if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) {\n return true;\n }\n return false;\n};\nis.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value);\nis.infinite = (value) => value === Infinity || value === -Infinity;\nconst isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder;\nis.evenInteger = isAbsoluteMod2(0);\nis.oddInteger = isAbsoluteMod2(1);\nis.emptyArray = (value) => is.array(value) && value.length === 0;\nis.nonEmptyArray = (value) => is.array(value) && value.length > 0;\nis.emptyString = (value) => is.string(value) && value.length === 0;\nconst isWhiteSpaceString = (value) => is.string(value) && !/\\S/.test(value);\nis.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value);\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyString = (value) => is.string(value) && value.length > 0;\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyStringAndNotWhitespace = (value) => is.string(value) && !is.emptyStringOrWhitespace(value);\nis.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0;\n// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:\n// - https://github.com/Microsoft/TypeScript/pull/29317\nis.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0;\nis.emptySet = (value) => is.set(value) && value.size === 0;\nis.nonEmptySet = (value) => is.set(value) && value.size > 0;\nis.emptyMap = (value) => is.map(value) && value.size === 0;\nis.nonEmptyMap = (value) => is.map(value) && value.size > 0;\n// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)\nis.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value);\nis.formData = (value) => isObjectOfType('FormData')(value);\nis.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value);\nconst predicateOnArray = (method, predicate, values) => {\n if (!is.function_(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n return method.call(values, predicate);\n};\nis.any = (predicate, ...values) => {\n const predicates = is.array(predicate) ? predicate : [predicate];\n return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values));\n};\nis.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values);\nconst assertType = (condition, description, value, options = {}) => {\n if (!condition) {\n const { multipleValues } = options;\n const valuesMessage = multipleValues ?\n `received values of types ${[\n ...new Set(value.map(singleValue => `\\`${is(singleValue)}\\``))\n ].join(', ')}` :\n `received value of type \\`${is(value)}\\``;\n throw new TypeError(`Expected value which is \\`${description}\\`, ${valuesMessage}.`);\n }\n};\nexports.assert = {\n // Unknowns.\n undefined: (value) => assertType(is.undefined(value), 'undefined', value),\n string: (value) => assertType(is.string(value), 'string', value),\n number: (value) => assertType(is.number(value), 'number', value),\n bigint: (value) => assertType(is.bigint(value), 'bigint', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n function_: (value) => assertType(is.function_(value), 'Function', value),\n null_: (value) => assertType(is.null_(value), 'null', value),\n class_: (value) => assertType(is.class_(value), \"Class\" /* class_ */, value),\n boolean: (value) => assertType(is.boolean(value), 'boolean', value),\n symbol: (value) => assertType(is.symbol(value), 'symbol', value),\n numericString: (value) => assertType(is.numericString(value), \"string with a number\" /* numericString */, value),\n array: (value, assertion) => {\n const assert = assertType;\n assert(is.array(value), 'Array', value);\n if (assertion) {\n value.forEach(assertion);\n }\n },\n buffer: (value) => assertType(is.buffer(value), 'Buffer', value),\n blob: (value) => assertType(is.blob(value), 'Blob', value),\n nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), \"null or undefined\" /* nullOrUndefined */, value),\n object: (value) => assertType(is.object(value), 'Object', value),\n iterable: (value) => assertType(is.iterable(value), \"Iterable\" /* iterable */, value),\n asyncIterable: (value) => assertType(is.asyncIterable(value), \"AsyncIterable\" /* asyncIterable */, value),\n generator: (value) => assertType(is.generator(value), 'Generator', value),\n asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value),\n nativePromise: (value) => assertType(is.nativePromise(value), \"native Promise\" /* nativePromise */, value),\n promise: (value) => assertType(is.promise(value), 'Promise', value),\n generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value),\n asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value),\n regExp: (value) => assertType(is.regExp(value), 'RegExp', value),\n date: (value) => assertType(is.date(value), 'Date', value),\n error: (value) => assertType(is.error(value), 'Error', value),\n map: (value) => assertType(is.map(value), 'Map', value),\n set: (value) => assertType(is.set(value), 'Set', value),\n weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value),\n weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value),\n int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value),\n uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value),\n uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value),\n int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value),\n uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value),\n int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value),\n uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value),\n float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value),\n float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value),\n bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value),\n bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value),\n arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value),\n sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value),\n dataView: (value) => assertType(is.dataView(value), 'DataView', value),\n enumCase: (value, targetEnum) => assertType(is.enumCase(value, targetEnum), 'EnumCase', value),\n urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value),\n urlString: (value) => assertType(is.urlString(value), \"string with a URL\" /* urlString */, value),\n truthy: (value) => assertType(is.truthy(value), \"truthy\" /* truthy */, value),\n falsy: (value) => assertType(is.falsy(value), \"falsy\" /* falsy */, value),\n nan: (value) => assertType(is.nan(value), \"NaN\" /* nan */, value),\n primitive: (value) => assertType(is.primitive(value), \"primitive\" /* primitive */, value),\n integer: (value) => assertType(is.integer(value), \"integer\" /* integer */, value),\n safeInteger: (value) => assertType(is.safeInteger(value), \"integer\" /* safeInteger */, value),\n plainObject: (value) => assertType(is.plainObject(value), \"plain object\" /* plainObject */, value),\n typedArray: (value) => assertType(is.typedArray(value), \"TypedArray\" /* typedArray */, value),\n arrayLike: (value) => assertType(is.arrayLike(value), \"array-like\" /* arrayLike */, value),\n domElement: (value) => assertType(is.domElement(value), \"HTMLElement\" /* domElement */, value),\n observable: (value) => assertType(is.observable(value), 'Observable', value),\n nodeStream: (value) => assertType(is.nodeStream(value), \"Node.js Stream\" /* nodeStream */, value),\n infinite: (value) => assertType(is.infinite(value), \"infinite number\" /* infinite */, value),\n emptyArray: (value) => assertType(is.emptyArray(value), \"empty array\" /* emptyArray */, value),\n nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), \"non-empty array\" /* nonEmptyArray */, value),\n emptyString: (value) => assertType(is.emptyString(value), \"empty string\" /* emptyString */, value),\n emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), \"empty string or whitespace\" /* emptyStringOrWhitespace */, value),\n nonEmptyString: (value) => assertType(is.nonEmptyString(value), \"non-empty string\" /* nonEmptyString */, value),\n nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), \"non-empty string and not whitespace\" /* nonEmptyStringAndNotWhitespace */, value),\n emptyObject: (value) => assertType(is.emptyObject(value), \"empty object\" /* emptyObject */, value),\n nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), \"non-empty object\" /* nonEmptyObject */, value),\n emptySet: (value) => assertType(is.emptySet(value), \"empty set\" /* emptySet */, value),\n nonEmptySet: (value) => assertType(is.nonEmptySet(value), \"non-empty set\" /* nonEmptySet */, value),\n emptyMap: (value) => assertType(is.emptyMap(value), \"empty map\" /* emptyMap */, value),\n nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), \"non-empty map\" /* nonEmptyMap */, value),\n propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value),\n formData: (value) => assertType(is.formData(value), 'FormData', value),\n urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value),\n // Numbers.\n evenInteger: (value) => assertType(is.evenInteger(value), \"even integer\" /* evenInteger */, value),\n oddInteger: (value) => assertType(is.oddInteger(value), \"odd integer\" /* oddInteger */, value),\n // Two arguments.\n directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), \"T\" /* directInstanceOf */, instance),\n inRange: (value, range) => assertType(is.inRange(value, range), \"in range\" /* inRange */, value),\n // Variadic functions.\n any: (predicate, ...values) => {\n return assertType(is.any(predicate, ...values), \"predicate returns truthy for any value\" /* any */, values, { multipleValues: true });\n },\n all: (predicate, ...values) => assertType(is.all(predicate, ...values), \"predicate returns truthy for all values\" /* all */, values, { multipleValues: true })\n};\n// Some few keywords are reserved, but we'll populate them for Node.js users\n// See https://github.com/Microsoft/TypeScript/issues/2536\nObject.defineProperties(is, {\n class: {\n value: is.class_\n },\n function: {\n value: is.function_\n },\n null: {\n value: is.null_\n }\n});\nObject.defineProperties(exports.assert, {\n class: {\n value: exports.assert.class_\n },\n function: {\n value: exports.assert.function_\n },\n null: {\n value: exports.assert.null_\n }\n});\nexports.default = is;\n// For CommonJS default export support\nmodule.exports = is;\nmodule.exports.default = is;\nmodule.exports.assert = exports.assert;\n", "var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nfunction dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "import type { RenovateConfig, RepoGlobalConfig } from './types';\n\nexport class GlobalConfig {\n // TODO: once global config work is complete, add a test to make sure this list includes all options with globalOnly=true (#9603)\n private static readonly OPTIONS: (keyof RepoGlobalConfig)[] = [\n 'allowedEnv',\n 'allowCustomCrateRegistries',\n 'allowedHeaders',\n 'allowedPostUpgradeCommands',\n 'allowPlugins',\n 'allowPostUpgradeCommandTemplating',\n 'allowScripts',\n 'binarySource',\n 'cacheDir',\n 'cacheHardTtlMinutes',\n 'cacheTtlOverride',\n 'containerbaseDir',\n 'customEnvVariables',\n 'dockerChildPrefix',\n 'dockerCliOptions',\n 'dockerSidecarImage',\n 'dockerUser',\n 'dryRun',\n 'encryptedWarning',\n 'exposeAllEnv',\n 'executionTimeout',\n 'githubTokenWarn',\n 'localDir',\n 'migratePresets',\n 'presetCachePersistence',\n 'privateKey',\n 'privateKeyOld',\n 'gitTimeout',\n 'platform',\n 'endpoint',\n 'httpCacheTtlDays',\n 'autodiscoverRepoSort',\n 'autodiscoverRepoOrder',\n 'userAgent',\n 'dockerMaxPages',\n 's3Endpoint',\n 's3PathStyle',\n 'cachePrivatePackages',\n ];\n\n private static config: RepoGlobalConfig = {};\n\n static get(): RepoGlobalConfig;\n static get(\n key: Key,\n ): RepoGlobalConfig[Key];\n static get(\n key: Key,\n defaultValue: Required[Key],\n ): Required[Key];\n static get(\n key?: Key,\n defaultValue?: RepoGlobalConfig[Key],\n ): RepoGlobalConfig | RepoGlobalConfig[Key] {\n return key\n ? (GlobalConfig.config[key] ?? defaultValue)\n : GlobalConfig.config;\n }\n\n static set(config: RenovateConfig | RepoGlobalConfig): RenovateConfig {\n GlobalConfig.reset();\n\n const result = { ...config };\n for (const option of GlobalConfig.OPTIONS) {\n GlobalConfig.config[option] = config[option] as never;\n delete result[option];\n }\n\n return result;\n }\n\n static reset(): void {\n GlobalConfig.config = {};\n }\n}\n", "// System error\nexport const SYSTEM_INSUFFICIENT_DISK_SPACE = 'disk-space';\nexport const SYSTEM_INSUFFICIENT_MEMORY = 'out-of-memory';\n\n// Platform Error\nexport const PLATFORM_AUTHENTICATION_ERROR = 'authentication-error';\nexport const PLATFORM_BAD_CREDENTIALS = 'bad-credentials';\nexport const PLATFORM_GPG_FAILED = 'gpg-failed';\nexport const PLATFORM_INTEGRATION_UNAUTHORIZED = 'integration-unauthorized';\nexport const PLATFORM_NOT_FOUND = 'platform-not-found';\nexport const PLATFORM_RATE_LIMIT_EXCEEDED = 'rate-limit-exceeded';\nexport const PLATFORM_UNKNOWN_ERROR = 'platform-unknown-error';\n\n// Config Error\nexport const CONFIG_VALIDATION = 'config-validation';\nexport const CONFIG_PRESETS_INVALID = 'config-presets-invalid';\nexport const CONFIG_SECRETS_EXPOSED = 'config-secrets-exposed';\nexport const CONFIG_SECRETS_INVALID = 'config-secrets-invalid';\nexport const CONFIG_GIT_URL_UNAVAILABLE = 'config-git-url-unavailable';\nexport const CONFIG_INHERIT_NOT_FOUND = 'config-inherit-not-found';\nexport const CONFIG_INHERIT_PARSE_ERROR = 'config-inherit-parse-error';\n\n// Repository Errors - causes repo to be considered as disabled\nexport const REPOSITORY_ACCESS_FORBIDDEN = 'forbidden';\nexport const REPOSITORY_ARCHIVED = 'archived';\nexport const REPOSITORY_BLOCKED = 'blocked';\nexport const REPOSITORY_CANNOT_FORK = 'cannot-fork';\nexport const REPOSITORY_DISABLED = 'disabled';\nexport const REPOSITORY_CLOSED_ONBOARDING = 'disabled-closed-onboarding';\nexport const REPOSITORY_DISABLED_BY_CONFIG = 'disabled-by-config';\nexport const REPOSITORY_NO_CONFIG = 'disabled-no-config';\nexport const REPOSITORY_EMPTY = 'empty';\nexport const REPOSITORY_FORK_MISSING = 'fork-missing';\nexport const REPOSITORY_FORK_MODE_FORKED = 'fork-mode-forked';\nexport const REPOSITORY_FORKED = 'fork';\nexport const REPOSITORY_MIRRORED = 'mirror';\nexport const REPOSITORY_NOT_FOUND = 'not-found';\nexport const REPOSITORY_NO_PACKAGE_FILES = 'no-package-files';\nexport const REPOSITORY_RENAMED = 'renamed';\nexport const REPOSITORY_UNINITIATED = 'uninitiated';\n\n// Temporary Error\nexport const REPOSITORY_CHANGED = 'repository-changed';\nexport const TEMPORARY_ERROR = 'temporary-error';\nexport const NO_VULNERABILITY_ALERTS = 'no-vulnerability-alerts';\n\n// Manager Error\nexport const MANAGER_LOCKFILE_ERROR = 'lockfile-error';\nexport const FILE_ACCESS_VIOLATION_ERROR = 'file-access-violation-error';\n\n// Host error\nexport const EXTERNAL_HOST_ERROR = 'external-host-error';\nexport const IGNORABLE_HOST_ERROR = 'ignorable-host-error';\nexport const HOST_DISABLED = 'host-disabled';\n\n// Worker Error\nexport const WORKER_FILE_UPDATE_FAILED = 'update-failure';\n\n// Bundler Error\nexport const BUNDLER_INVALID_CREDENTIALS = 'bundler-credentials';\n\n// Unknown Error\nexport const UNKNOWN_ERROR = 'unknown-error';\n\n// PATH Error\nexport const INVALID_PATH = 'invalid-path';\n\n// PAGE NOT FOUND\nexport const PAGE_NOT_FOUND_ERROR = 'page-not-found';\n\n// Missing API required credentials\nexport const MISSING_API_CREDENTIALS = 'missing-api-credentials';\n", "var hasProp = Object.prototype.hasOwnProperty;\n\nfunction throwsMessage(err) {\n\treturn '[Throws: ' + (err ? err.message : '?') + ']';\n}\n\nfunction safeGetValueFromPropertyOnObject(obj, property) {\n\tif (hasProp.call(obj, property)) {\n\t\ttry {\n\t\t\treturn obj[property];\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn throwsMessage(err);\n\t\t}\n\t}\n\n\treturn obj[property];\n}\n\nfunction ensureProperties(obj) {\n\tvar seen = [ ]; // store references to objects we have seen before\n\n\tfunction visit(obj) {\n\t\tif (obj === null || typeof obj !== 'object') {\n\t\t\treturn obj;\n\t\t}\n\n\t\tif (seen.indexOf(obj) !== -1) {\n\t\t\treturn '[Circular]';\n\t\t}\n\t\tseen.push(obj);\n\n\t\tif (typeof obj.toJSON === 'function') {\n\t\t\ttry {\n\t\t\t\tvar fResult = visit(obj.toJSON());\n\t\t\t\tseen.pop();\n\t\t\t\treturn fResult;\n\t\t\t} catch(err) {\n\t\t\t\treturn throwsMessage(err);\n\t\t\t}\n\t\t}\n\n\t\tif (Array.isArray(obj)) {\n\t\t\tvar aResult = obj.map(visit);\n\t\t\tseen.pop();\n\t\t\treturn aResult;\n\t\t}\n\n\t\tvar result = Object.keys(obj).reduce(function(result, prop) {\n\t\t\t// prevent faulty defined getter properties\n\t\t\tresult[prop] = visit(safeGetValueFromPropertyOnObject(obj, prop));\n\t\t\treturn result;\n\t\t}, {});\n\t\tseen.pop();\n\t\treturn result;\n\t};\n\n\treturn visit(obj);\n}\n\nmodule.exports = function(data, replacer, space) {\n\treturn JSON.stringify(ensureProperties(data), replacer, space);\n}\n\nmodule.exports.ensureProperties = ensureProperties;\n", "var fs = require('fs'),\n path = require('path');\n\nmodule.exports = ncp;\nncp.ncp = ncp;\n\nfunction ncp (source, dest, options, callback) {\n var cback = callback;\n\n if (!callback) {\n cback = options;\n options = {};\n }\n\n var basePath = process.cwd(),\n currentPath = path.resolve(basePath, source),\n targetPath = path.resolve(basePath, dest),\n filter = options.filter,\n rename = options.rename,\n transform = options.transform,\n clobber = options.clobber !== false,\n modified = options.modified,\n dereference = options.dereference,\n errs = null,\n started = 0,\n finished = 0,\n running = 0,\n limit = options.limit || ncp.limit || 16;\n\n limit = (limit < 1) ? 1 : (limit > 512) ? 512 : limit;\n\n startCopy(currentPath);\n \n function startCopy(source) {\n started++;\n if (filter) {\n if (filter instanceof RegExp) {\n if (!filter.test(source)) {\n return cb(true);\n }\n }\n else if (typeof filter === 'function') {\n if (!filter(source)) {\n return cb(true);\n }\n }\n }\n return getStats(source);\n }\n\n function getStats(source) {\n var stat = dereference ? fs.stat : fs.lstat;\n if (running >= limit) {\n return setImmediate(function () {\n getStats(source);\n });\n }\n running++;\n stat(source, function (err, stats) {\n var item = {};\n if (err) {\n return onError(err);\n }\n\n // We need to get the mode from the stats object and preserve it.\n item.name = source;\n item.mode = stats.mode;\n item.mtime = stats.mtime; //modified time\n item.atime = stats.atime; //access time\n\n if (stats.isDirectory()) {\n return onDir(item);\n }\n else if (stats.isFile()) {\n return onFile(item);\n }\n else if (stats.isSymbolicLink()) {\n // Symlinks don't really need to know about the mode.\n return onLink(source);\n }\n });\n }\n\n function onFile(file) {\n var target = file.name.replace(currentPath, targetPath);\n if(rename) {\n target = rename(target);\n }\n isWritable(target, function (writable) {\n if (writable) {\n return copyFile(file, target);\n }\n if(clobber) {\n rmFile(target, function () {\n copyFile(file, target);\n });\n }\n if (modified) {\n var stat = dereference ? fs.stat : fs.lstat;\n stat(target, function(err, stats) {\n //if souce modified time greater to target modified time copy file\n if (file.mtime.getTime()>stats.mtime.getTime())\n copyFile(file, target);\n else return cb();\n });\n }\n else {\n return cb();\n }\n });\n }\n\n function copyFile(file, target) {\n var readStream = fs.createReadStream(file.name),\n writeStream = fs.createWriteStream(target, { mode: file.mode });\n \n readStream.on('error', onError);\n writeStream.on('error', onError);\n \n if(transform) {\n transform(readStream, writeStream, file);\n } else {\n writeStream.on('open', function() {\n readStream.pipe(writeStream);\n });\n }\n writeStream.once('finish', function() {\n if (modified) {\n //target file modified date sync.\n fs.utimesSync(target, file.atime, file.mtime);\n cb();\n }\n else cb();\n });\n }\n\n function rmFile(file, done) {\n fs.unlink(file, function (err) {\n if (err) {\n return onError(err);\n }\n return done();\n });\n }\n\n function onDir(dir) {\n var target = dir.name.replace(currentPath, targetPath);\n isWritable(target, function (writable) {\n if (writable) {\n return mkDir(dir, target);\n }\n copyDir(dir.name);\n });\n }\n\n function mkDir(dir, target) {\n fs.mkdir(target, dir.mode, function (err) {\n if (err) {\n return onError(err);\n }\n copyDir(dir.name);\n });\n }\n\n function copyDir(dir) {\n fs.readdir(dir, function (err, items) {\n if (err) {\n return onError(err);\n }\n items.forEach(function (item) {\n startCopy(path.join(dir, item));\n });\n return cb();\n });\n }\n\n function onLink(link) {\n var target = link.replace(currentPath, targetPath);\n fs.readlink(link, function (err, resolvedPath) {\n if (err) {\n return onError(err);\n }\n checkLink(resolvedPath, target);\n });\n }\n\n function checkLink(resolvedPath, target) {\n if (dereference) {\n resolvedPath = path.resolve(basePath, resolvedPath);\n }\n isWritable(target, function (writable) {\n if (writable) {\n return makeLink(resolvedPath, target);\n }\n fs.readlink(target, function (err, targetDest) {\n if (err) {\n return onError(err);\n }\n if (dereference) {\n targetDest = path.resolve(basePath, targetDest);\n }\n if (targetDest === resolvedPath) {\n return cb();\n }\n return rmFile(target, function () {\n makeLink(resolvedPath, target);\n });\n });\n });\n }\n\n function makeLink(linkPath, target) {\n fs.symlink(linkPath, target, function (err) {\n if (err) {\n return onError(err);\n }\n return cb();\n });\n }\n\n function isWritable(path, done) {\n fs.lstat(path, function (err) {\n if (err) {\n if (err.code === 'ENOENT') return done(true);\n return done(false);\n }\n return done(false);\n });\n }\n\n function onError(err) {\n if (options.stopOnError) {\n return cback(err);\n }\n else if (!errs && options.errs) {\n errs = fs.createWriteStream(options.errs);\n }\n else if (!errs) {\n errs = [];\n }\n if (typeof errs.write === 'undefined') {\n errs.push(err);\n }\n else { \n errs.write(err.stack + '\\n\\n');\n }\n return cb();\n }\n\n function cb(skipped) {\n if (!skipped) running--;\n finished++;\n if ((started === finished) && (running === 0)) {\n if (cback !== undefined ) {\n return errs ? cback(errs) : cback(null);\n }\n }\n }\n}\n\n\n", "module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n", "'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n", "var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n", "module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = (function () { try { return require('path') } catch (e) {}}()) || {\n sep: '/'\n}\nminimatch.sep = path.sep\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n b = b || {}\n var t = {}\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n m.Minimatch.defaults = function defaults (options) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n\n m.filter = function filter (pattern, options) {\n return orig.filter(pattern, ext(def, options))\n }\n\n m.defaults = function defaults (options) {\n return orig.defaults(ext(def, options))\n }\n\n m.makeRe = function makeRe (pattern, options) {\n return orig.makeRe(pattern, ext(def, options))\n }\n\n m.braceExpand = function braceExpand (pattern, options) {\n return orig.braceExpand(pattern, ext(def, options))\n }\n\n m.match = function (list, pattern, options) {\n return orig.match(list, pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (!options.allowWindowsEscape && path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nvar MAX_PATTERN_LENGTH = 1024 * 64\nvar assertValidPattern = function (pattern) {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n var options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:)\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '[': case '.': case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = function match (f, partial) {\n if (typeof partial === 'undefined') partial = this.partial\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n", "'use strict';\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunction win32(path) {\n\t// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56\n\tvar splitDeviceRe = /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\n\tvar result = splitDeviceRe.exec(path);\n\tvar device = result[1] || '';\n\tvar isUnc = Boolean(device && device.charAt(1) !== ':');\n\n\t// UNC paths are always absolute\n\treturn Boolean(result[2] || isUnc);\n}\n\nmodule.exports = process.platform === 'win32' ? win32 : posix;\nmodule.exports.posix = posix;\nmodule.exports.win32 = win32;\n", "exports.alphasort = alphasort\nexports.alphasorti = alphasorti\nexports.setopts = setopts\nexports.ownProp = ownProp\nexports.makeAbs = makeAbs\nexports.finish = finish\nexports.mark = mark\nexports.isIgnored = isIgnored\nexports.childrenIgnored = childrenIgnored\n\nfunction ownProp (obj, field) {\n return Object.prototype.hasOwnProperty.call(obj, field)\n}\n\nvar path = require(\"path\")\nvar minimatch = require(\"minimatch\")\nvar isAbsolute = require(\"path-is-absolute\")\nvar Minimatch = minimatch.Minimatch\n\nfunction alphasorti (a, b) {\n return a.toLowerCase().localeCompare(b.toLowerCase())\n}\n\nfunction alphasort (a, b) {\n return a.localeCompare(b)\n}\n\nfunction setupIgnores (self, options) {\n self.ignore = options.ignore || []\n\n if (!Array.isArray(self.ignore))\n self.ignore = [self.ignore]\n\n if (self.ignore.length) {\n self.ignore = self.ignore.map(ignoreMap)\n }\n}\n\n// ignore patterns are always in dot:true mode.\nfunction ignoreMap (pattern) {\n var gmatcher = null\n if (pattern.slice(-3) === '/**') {\n var gpattern = pattern.replace(/(\\/\\*\\*)+$/, '')\n gmatcher = new Minimatch(gpattern, { dot: true })\n }\n\n return {\n matcher: new Minimatch(pattern, { dot: true }),\n gmatcher: gmatcher\n }\n}\n\nfunction setopts (self, pattern, options) {\n if (!options)\n options = {}\n\n // base-matching: just use globstar for that.\n if (options.matchBase && -1 === pattern.indexOf(\"/\")) {\n if (options.noglobstar) {\n throw new Error(\"base matching requires globstar\")\n }\n pattern = \"**/\" + pattern\n }\n\n self.silent = !!options.silent\n self.pattern = pattern\n self.strict = options.strict !== false\n self.realpath = !!options.realpath\n self.realpathCache = options.realpathCache || Object.create(null)\n self.follow = !!options.follow\n self.dot = !!options.dot\n self.mark = !!options.mark\n self.nodir = !!options.nodir\n if (self.nodir)\n self.mark = true\n self.sync = !!options.sync\n self.nounique = !!options.nounique\n self.nonull = !!options.nonull\n self.nosort = !!options.nosort\n self.nocase = !!options.nocase\n self.stat = !!options.stat\n self.noprocess = !!options.noprocess\n\n self.maxLength = options.maxLength || Infinity\n self.cache = options.cache || Object.create(null)\n self.statCache = options.statCache || Object.create(null)\n self.symlinks = options.symlinks || Object.create(null)\n\n setupIgnores(self, options)\n\n self.changedCwd = false\n var cwd = process.cwd()\n if (!ownProp(options, \"cwd\"))\n self.cwd = cwd\n else {\n self.cwd = options.cwd\n self.changedCwd = path.resolve(options.cwd) !== cwd\n }\n\n self.root = options.root || path.resolve(self.cwd, \"/\")\n self.root = path.resolve(self.root)\n if (process.platform === \"win32\")\n self.root = self.root.replace(/\\\\/g, \"/\")\n\n self.nomount = !!options.nomount\n\n // disable comments and negation in Minimatch.\n // Note that they are not supported in Glob itself anyway.\n options.nonegate = true\n options.nocomment = true\n\n self.minimatch = new Minimatch(pattern, options)\n self.options = self.minimatch.options\n}\n\nfunction finish (self) {\n var nou = self.nounique\n var all = nou ? [] : Object.create(null)\n\n for (var i = 0, l = self.matches.length; i < l; i ++) {\n var matches = self.matches[i]\n if (!matches || Object.keys(matches).length === 0) {\n if (self.nonull) {\n // do like the shell, and spit out the literal glob\n var literal = self.minimatch.globSet[i]\n if (nou)\n all.push(literal)\n else\n all[literal] = true\n }\n } else {\n // had matches\n var m = Object.keys(matches)\n if (nou)\n all.push.apply(all, m)\n else\n m.forEach(function (m) {\n all[m] = true\n })\n }\n }\n\n if (!nou)\n all = Object.keys(all)\n\n if (!self.nosort)\n all = all.sort(self.nocase ? alphasorti : alphasort)\n\n // at *some* point we statted all of these\n if (self.mark) {\n for (var i = 0; i < all.length; i++) {\n all[i] = self._mark(all[i])\n }\n if (self.nodir) {\n all = all.filter(function (e) {\n return !(/\\/$/.test(e))\n })\n }\n }\n\n if (self.ignore.length)\n all = all.filter(function(m) {\n return !isIgnored(self, m)\n })\n\n self.found = all\n}\n\nfunction mark (self, p) {\n var abs = makeAbs(self, p)\n var c = self.cache[abs]\n var m = p\n if (c) {\n var isDir = c === 'DIR' || Array.isArray(c)\n var slash = p.slice(-1) === '/'\n\n if (isDir && !slash)\n m += '/'\n else if (!isDir && slash)\n m = m.slice(0, -1)\n\n if (m !== p) {\n var mabs = makeAbs(self, m)\n self.statCache[mabs] = self.statCache[abs]\n self.cache[mabs] = self.cache[abs]\n }\n }\n\n return m\n}\n\n// lotta situps...\nfunction makeAbs (self, f) {\n var abs = f\n if (f.charAt(0) === '/') {\n abs = path.join(self.root, f)\n } else if (isAbsolute(f) || f === '') {\n abs = f\n } else if (self.changedCwd) {\n abs = path.resolve(self.cwd, f)\n } else {\n abs = path.resolve(f)\n }\n return abs\n}\n\n\n// Return true, if pattern ends with globstar '**', for the accompanying parent directory.\n// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents\nfunction isIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n\nfunction childrenIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n", "module.exports = globSync\nglobSync.GlobSync = GlobSync\n\nvar fs = require('fs')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar Glob = require('./glob.js').Glob\nvar util = require('util')\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar common = require('./common.js')\nvar alphasort = common.alphasort\nvar alphasorti = common.alphasorti\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar childrenIgnored = common.childrenIgnored\n\nfunction globSync (pattern, options) {\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n return new GlobSync(pattern, options).found\n}\n\nfunction GlobSync (pattern, options) {\n if (!pattern)\n throw new Error('must provide pattern')\n\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n if (!(this instanceof GlobSync))\n return new GlobSync(pattern, options)\n\n setopts(this, pattern, options)\n\n if (this.noprocess)\n return this\n\n var n = this.minimatch.set.length\n this.matches = new Array(n)\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false)\n }\n this._finish()\n}\n\nGlobSync.prototype._finish = function () {\n assert(this instanceof GlobSync)\n if (this.realpath) {\n var self = this\n this.matches.forEach(function (matchset, index) {\n var set = self.matches[index] = Object.create(null)\n for (var p in matchset) {\n try {\n p = self._makeAbs(p)\n var real = fs.realpathSync(p, self.realpathCache)\n set[real] = true\n } catch (er) {\n if (er.syscall === 'stat')\n set[self._makeAbs(p)] = true\n else\n throw er\n }\n }\n })\n }\n common.finish(this)\n}\n\n\nGlobSync.prototype._process = function (pattern, index, inGlobStar) {\n assert(this instanceof GlobSync)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // See if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip processing\n if (childrenIgnored(this, read))\n return\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar)\n}\n\n\nGlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {\n var entries = this._readdir(abs, inGlobStar)\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix.slice(-1) !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this.matches[index][e] = true\n }\n // This was the last one, and no stats were needed\n return\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix)\n newPattern = [prefix, e]\n else\n newPattern = [e]\n this._process(newPattern.concat(remain), index, inGlobStar)\n }\n}\n\n\nGlobSync.prototype._emitMatch = function (index, e) {\n var abs = this._makeAbs(e)\n if (this.mark)\n e = this._mark(e)\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[this._makeAbs(e)]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n if (this.stat)\n this._stat(e)\n}\n\n\nGlobSync.prototype._readdirInGlobStar = function (abs) {\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false)\n\n var entries\n var lstat\n var stat\n try {\n lstat = fs.lstatSync(abs)\n } catch (er) {\n // lstat failed, doesn't exist\n return null\n }\n\n var isSym = lstat.isSymbolicLink()\n this.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && !lstat.isDirectory())\n this.cache[abs] = 'FILE'\n else\n entries = this._readdir(abs, false)\n\n return entries\n}\n\nGlobSync.prototype._readdir = function (abs, inGlobStar) {\n var entries\n\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return null\n\n if (Array.isArray(c))\n return c\n }\n\n try {\n return this._readdirEntries(abs, fs.readdirSync(abs))\n } catch (er) {\n this._readdirError(abs, er)\n return null\n }\n}\n\nGlobSync.prototype._readdirEntries = function (abs, entries) {\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n\n // mark and cache dir-ness\n return entries\n}\n\nGlobSync.prototype._readdirError = function (f, er) {\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n this.cache[this._makeAbs(f)] = 'FILE'\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict)\n throw er\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n}\n\nGlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {\n\n var entries = this._readdir(abs, inGlobStar)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false)\n\n var len = entries.length\n var isSym = this.symlinks[abs]\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true)\n }\n}\n\nGlobSync.prototype._processSimple = function (prefix, index) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var exists = this._stat(prefix)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this.matches[index][prefix] = true\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlobSync.prototype._stat = function (f) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return false\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return c\n\n if (needDir && c === 'FILE')\n return false\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (!stat) {\n var lstat\n try {\n lstat = fs.lstatSync(abs)\n } catch (er) {\n return false\n }\n\n if (lstat.isSymbolicLink()) {\n try {\n stat = fs.statSync(abs)\n } catch (er) {\n stat = lstat\n }\n } else {\n stat = lstat\n }\n }\n\n this.statCache[abs] = stat\n\n var c = stat.isDirectory() ? 'DIR' : 'FILE'\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c !== 'DIR')\n return false\n\n return c\n}\n\nGlobSync.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlobSync.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n", "// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n", "var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n", "var wrappy = require('wrappy')\nvar reqs = Object.create(null)\nvar once = require('once')\n\nmodule.exports = wrappy(inflight)\n\nfunction inflight (key, cb) {\n if (reqs[key]) {\n reqs[key].push(cb)\n return null\n } else {\n reqs[key] = [cb]\n return makeres(key)\n }\n}\n\nfunction makeres (key) {\n return once(function RES () {\n var cbs = reqs[key]\n var len = cbs.length\n var args = slice(arguments)\n\n // XXX It's somewhat ambiguous whether a new callback added in this\n // pass should be queued for later execution if something in the\n // list of callbacks throws, or if it should just be discarded.\n // However, it's such an edge case that it hardly matters, and either\n // choice is likely as surprising as the other.\n // As it happens, we do go ahead and schedule it for later execution.\n try {\n for (var i = 0; i < len; i++) {\n cbs[i].apply(null, args)\n }\n } finally {\n if (cbs.length > len) {\n // added more in the interim.\n // de-zalgo, just in case, but don't call again.\n cbs.splice(0, len)\n process.nextTick(function () {\n RES.apply(null, args)\n })\n } else {\n delete reqs[key]\n }\n }\n })\n}\n\nfunction slice (args) {\n var length = args.length\n var array = []\n\n for (var i = 0; i < length; i++) array[i] = args[i]\n return array\n}\n", "// Approach:\n//\n// 1. Get the minimatch set\n// 2. For each pattern in the set, PROCESS(pattern, false)\n// 3. Store matches per-set, then uniq them\n//\n// PROCESS(pattern, inGlobStar)\n// Get the first [n] items from pattern that are all strings\n// Join these together. This is PREFIX.\n// If there is no more remaining, then stat(PREFIX) and\n// add to matches if it succeeds. END.\n//\n// If inGlobStar and PREFIX is symlink and points to dir\n// set ENTRIES = []\n// else readdir(PREFIX) as ENTRIES\n// If fail, END\n//\n// with ENTRIES\n// If pattern[n] is GLOBSTAR\n// // handle the case where the globstar match is empty\n// // by pruning it out, and testing the resulting pattern\n// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)\n// // handle other cases.\n// for ENTRY in ENTRIES (not dotfiles)\n// // attach globstar + tail onto the entry\n// // Mark that this entry is a globstar match\n// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)\n//\n// else // not globstar\n// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)\n// Test ENTRY against pattern[n]\n// If fails, continue\n// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])\n//\n// Caveat:\n// Cache all stats and readdirs results to minimize syscall. Since all\n// we ever care about is existence and directory-ness, we can just keep\n// `true` for files, and [children,...] for directories, or `false` for\n// things that don't exist.\n\nmodule.exports = glob\n\nvar fs = require('fs')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar inherits = require('inherits')\nvar EE = require('events').EventEmitter\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar globSync = require('./sync.js')\nvar common = require('./common.js')\nvar alphasort = common.alphasort\nvar alphasorti = common.alphasorti\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar inflight = require('inflight')\nvar util = require('util')\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nvar once = require('once')\n\nfunction glob (pattern, options, cb) {\n if (typeof options === 'function') cb = options, options = {}\n if (!options) options = {}\n\n if (options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return globSync(pattern, options)\n }\n\n return new Glob(pattern, options, cb)\n}\n\nglob.sync = globSync\nvar GlobSync = glob.GlobSync = globSync.GlobSync\n\n// old api surface\nglob.glob = glob\n\nfunction extend (origin, add) {\n if (add === null || typeof add !== 'object') {\n return origin\n }\n\n var keys = Object.keys(add)\n var i = keys.length\n while (i--) {\n origin[keys[i]] = add[keys[i]]\n }\n return origin\n}\n\nglob.hasMagic = function (pattern, options_) {\n var options = extend({}, options_)\n options.noprocess = true\n\n var g = new Glob(pattern, options)\n var set = g.minimatch.set\n if (set.length > 1)\n return true\n\n for (var j = 0; j < set[0].length; j++) {\n if (typeof set[0][j] !== 'string')\n return true\n }\n\n return false\n}\n\nglob.Glob = Glob\ninherits(Glob, EE)\nfunction Glob (pattern, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n\n if (options && options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return new GlobSync(pattern, options)\n }\n\n if (!(this instanceof Glob))\n return new Glob(pattern, options, cb)\n\n setopts(this, pattern, options)\n this._didRealPath = false\n\n // process each pattern in the minimatch set\n var n = this.minimatch.set.length\n\n // The matches are stored as {: true,...} so that\n // duplicates are automagically pruned.\n // Later, we do an Object.keys() on these.\n // Keep them as a list so we can fill in when nonull is set.\n this.matches = new Array(n)\n\n if (typeof cb === 'function') {\n cb = once(cb)\n this.on('error', cb)\n this.on('end', function (matches) {\n cb(null, matches)\n })\n }\n\n var self = this\n var n = this.minimatch.set.length\n this._processing = 0\n this.matches = new Array(n)\n\n this._emitQueue = []\n this._processQueue = []\n this.paused = false\n\n if (this.noprocess)\n return this\n\n if (n === 0)\n return done()\n\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false, done)\n }\n\n function done () {\n --self._processing\n if (self._processing <= 0)\n self._finish()\n }\n}\n\nGlob.prototype._finish = function () {\n assert(this instanceof Glob)\n if (this.aborted)\n return\n\n if (this.realpath && !this._didRealpath)\n return this._realpath()\n\n common.finish(this)\n this.emit('end', this.found)\n}\n\nGlob.prototype._realpath = function () {\n if (this._didRealpath)\n return\n\n this._didRealpath = true\n\n var n = this.matches.length\n if (n === 0)\n return this._finish()\n\n var self = this\n for (var i = 0; i < this.matches.length; i++)\n this._realpathSet(i, next)\n\n function next () {\n if (--n === 0)\n self._finish()\n }\n}\n\nGlob.prototype._realpathSet = function (index, cb) {\n var matchset = this.matches[index]\n if (!matchset)\n return cb()\n\n var found = Object.keys(matchset)\n var self = this\n var n = found.length\n\n if (n === 0)\n return cb()\n\n var set = this.matches[index] = Object.create(null)\n found.forEach(function (p, i) {\n // If there's a problem with the stat, then it means that\n // one or more of the links in the realpath couldn't be\n // resolved. just return the abs value in that case.\n p = self._makeAbs(p)\n fs.realpath(p, self.realpathCache, function (er, real) {\n if (!er)\n set[real] = true\n else if (er.syscall === 'stat')\n set[p] = true\n else\n self.emit('error', er) // srsly wtf right here\n\n if (--n === 0) {\n self.matches[index] = set\n cb()\n }\n })\n })\n}\n\nGlob.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlob.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n\nGlob.prototype.abort = function () {\n this.aborted = true\n this.emit('abort')\n}\n\nGlob.prototype.pause = function () {\n if (!this.paused) {\n this.paused = true\n this.emit('pause')\n }\n}\n\nGlob.prototype.resume = function () {\n if (this.paused) {\n this.emit('resume')\n this.paused = false\n if (this._emitQueue.length) {\n var eq = this._emitQueue.slice(0)\n this._emitQueue.length = 0\n for (var i = 0; i < eq.length; i ++) {\n var e = eq[i]\n this._emitMatch(e[0], e[1])\n }\n }\n if (this._processQueue.length) {\n var pq = this._processQueue.slice(0)\n this._processQueue.length = 0\n for (var i = 0; i < pq.length; i ++) {\n var p = pq[i]\n this._processing--\n this._process(p[0], p[1], p[2], p[3])\n }\n }\n }\n}\n\nGlob.prototype._process = function (pattern, index, inGlobStar, cb) {\n assert(this instanceof Glob)\n assert(typeof cb === 'function')\n\n if (this.aborted)\n return\n\n this._processing++\n if (this.paused) {\n this._processQueue.push([pattern, index, inGlobStar, cb])\n return\n }\n\n //console.error('PROCESS %d', this._processing, pattern)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // see if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index, cb)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip _processing\n if (childrenIgnored(this, read))\n return cb()\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)\n}\n\nGlob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\nGlob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return cb()\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return cb()\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return cb()\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n this._process([e].concat(remain), index, inGlobStar, cb)\n }\n cb()\n}\n\nGlob.prototype._emitMatch = function (index, e) {\n if (this.aborted)\n return\n\n if (this.matches[index][e])\n return\n\n if (isIgnored(this, e))\n return\n\n if (this.paused) {\n this._emitQueue.push([index, e])\n return\n }\n\n var abs = this._makeAbs(e)\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n if (this.mark)\n e = this._mark(e)\n\n this.matches[index][e] = true\n\n var st = this.statCache[abs]\n if (st)\n this.emit('stat', e, st)\n\n this.emit('match', e)\n}\n\nGlob.prototype._readdirInGlobStar = function (abs, cb) {\n if (this.aborted)\n return\n\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false, cb)\n\n var lstatkey = 'lstat\\0' + abs\n var self = this\n var lstatcb = inflight(lstatkey, lstatcb_)\n\n if (lstatcb)\n fs.lstat(abs, lstatcb)\n\n function lstatcb_ (er, lstat) {\n if (er)\n return cb()\n\n var isSym = lstat.isSymbolicLink()\n self.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && !lstat.isDirectory()) {\n self.cache[abs] = 'FILE'\n cb()\n } else\n self._readdir(abs, false, cb)\n }\n}\n\nGlob.prototype._readdir = function (abs, inGlobStar, cb) {\n if (this.aborted)\n return\n\n cb = inflight('readdir\\0'+abs+'\\0'+inGlobStar, cb)\n if (!cb)\n return\n\n //console.error('RD %j %j', +inGlobStar, abs)\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs, cb)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return cb()\n\n if (Array.isArray(c))\n return cb(null, c)\n }\n\n var self = this\n fs.readdir(abs, readdirCb(this, abs, cb))\n}\n\nfunction readdirCb (self, abs, cb) {\n return function (er, entries) {\n if (er)\n self._readdirError(abs, er, cb)\n else\n self._readdirEntries(abs, entries, cb)\n }\n}\n\nGlob.prototype._readdirEntries = function (abs, entries, cb) {\n if (this.aborted)\n return\n\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n return cb(null, entries)\n}\n\nGlob.prototype._readdirError = function (f, er, cb) {\n if (this.aborted)\n return\n\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n this.cache[this._makeAbs(f)] = 'FILE'\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict) {\n this.emit('error', er)\n // If the error is handled, then we abort\n // if not, we threw out of here\n this.abort()\n }\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n\n return cb()\n}\n\nGlob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\n\nGlob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n //console.error('pgs2', prefix, remain[0], entries)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return cb()\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false, cb)\n\n var isSym = this.symlinks[abs]\n var len = entries.length\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return cb()\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true, cb)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true, cb)\n }\n\n cb()\n}\n\nGlob.prototype._processSimple = function (prefix, index, cb) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var self = this\n this._stat(prefix, function (er, exists) {\n self._processSimple2(prefix, index, er, exists, cb)\n })\n}\nGlob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {\n\n //console.error('ps2', prefix, exists)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return cb()\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n cb()\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlob.prototype._stat = function (f, cb) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return cb()\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return cb(null, c)\n\n if (needDir && c === 'FILE')\n return cb()\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (stat !== undefined) {\n if (stat === false)\n return cb(null, stat)\n else {\n var type = stat.isDirectory() ? 'DIR' : 'FILE'\n if (needDir && type === 'FILE')\n return cb()\n else\n return cb(null, type, stat)\n }\n }\n\n var self = this\n var statcb = inflight('stat\\0' + abs, lstatcb_)\n if (statcb)\n fs.lstat(abs, statcb)\n\n function lstatcb_ (er, lstat) {\n if (lstat && lstat.isSymbolicLink()) {\n // If it's a symlink, then treat it as the target, unless\n // the target does not exist, then treat it as a file.\n return fs.stat(abs, function (er, stat) {\n if (er)\n self._stat2(f, abs, null, lstat, cb)\n else\n self._stat2(f, abs, er, stat, cb)\n })\n } else {\n self._stat2(f, abs, er, lstat, cb)\n }\n }\n}\n\nGlob.prototype._stat2 = function (f, abs, er, stat, cb) {\n if (er) {\n this.statCache[abs] = false\n return cb()\n }\n\n var needDir = f.slice(-1) === '/'\n this.statCache[abs] = stat\n\n if (abs.slice(-1) === '/' && !stat.isDirectory())\n return cb(null, false, stat)\n\n var c = stat.isDirectory() ? 'DIR' : 'FILE'\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c !== 'DIR')\n return cb()\n\n return cb(null, c, stat)\n}\n", "module.exports = rimraf\nrimraf.sync = rimrafSync\n\nvar assert = require(\"assert\")\nvar path = require(\"path\")\nvar fs = require(\"fs\")\nvar glob = require(\"glob\")\n\nvar globOpts = {\n nosort: true,\n nocomment: true,\n nonegate: true,\n silent: true\n}\n\n// for EMFILE handling\nvar timeout = 0\n\nvar isWindows = (process.platform === \"win32\")\n\nfunction defaults (options) {\n var methods = [\n 'unlink',\n 'chmod',\n 'stat',\n 'lstat',\n 'rmdir',\n 'readdir'\n ]\n methods.forEach(function(m) {\n options[m] = options[m] || fs[m]\n m = m + 'Sync'\n options[m] = options[m] || fs[m]\n })\n\n options.maxBusyTries = options.maxBusyTries || 3\n options.emfileWait = options.emfileWait || 1000\n options.disableGlob = options.disableGlob || false\n}\n\nfunction rimraf (p, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n assert(p, 'rimraf: missing path')\n assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.equal(typeof options, 'object', 'rimraf: options should be object')\n assert.equal(typeof cb, 'function', 'rimraf: callback function required')\n\n defaults(options)\n\n var busyTries = 0\n var errState = null\n var n = 0\n\n if (options.disableGlob || !glob.hasMagic(p))\n return afterGlob(null, [p])\n\n fs.lstat(p, function (er, stat) {\n if (!er)\n return afterGlob(null, [p])\n\n glob(p, globOpts, afterGlob)\n })\n\n function next (er) {\n errState = errState || er\n if (--n === 0)\n cb(errState)\n }\n\n function afterGlob (er, results) {\n if (er)\n return cb(er)\n\n n = results.length\n if (n === 0)\n return cb()\n\n results.forEach(function (p) {\n rimraf_(p, options, function CB (er) {\n if (er) {\n if (isWindows && (er.code === \"EBUSY\" || er.code === \"ENOTEMPTY\" || er.code === \"EPERM\") &&\n busyTries < options.maxBusyTries) {\n busyTries ++\n var time = busyTries * 100\n // try again, with the same exact callback as this one.\n return setTimeout(function () {\n rimraf_(p, options, CB)\n }, time)\n }\n\n // this one won't happen if graceful-fs is used.\n if (er.code === \"EMFILE\" && timeout < options.emfileWait) {\n return setTimeout(function () {\n rimraf_(p, options, CB)\n }, timeout ++)\n }\n\n // already gone\n if (er.code === \"ENOENT\") er = null\n }\n\n timeout = 0\n next(er)\n })\n })\n }\n}\n\n// Two possible strategies.\n// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR\n// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR\n//\n// Both result in an extra syscall when you guess wrong. However, there\n// are likely far more normal files in the world than directories. This\n// is based on the assumption that a the average number of files per\n// directory is >= 1.\n//\n// If anyone ever complains about this, then I guess the strategy could\n// be made configurable somehow. But until then, YAGNI.\nfunction rimraf_ (p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // sunos lets the root user unlink directories, which is... weird.\n // so we have to lstat here and make sure it's not a dir.\n options.lstat(p, function (er, st) {\n if (er && er.code === \"ENOENT\")\n return cb(null)\n\n if (st && st.isDirectory())\n return rmdir(p, options, er, cb)\n\n options.unlink(p, function (er) {\n if (er) {\n if (er.code === \"ENOENT\")\n return cb(null)\n if (er.code === \"EPERM\")\n return (isWindows)\n ? fixWinEPERM(p, options, er, cb)\n : rmdir(p, options, er, cb)\n if (er.code === \"EISDIR\")\n return rmdir(p, options, er, cb)\n }\n return cb(er)\n })\n })\n}\n\nfunction fixWinEPERM (p, options, er, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n if (er)\n assert(er instanceof Error)\n\n options.chmod(p, 666, function (er2) {\n if (er2)\n cb(er2.code === \"ENOENT\" ? null : er)\n else\n options.stat(p, function(er3, stats) {\n if (er3)\n cb(er3.code === \"ENOENT\" ? null : er)\n else if (stats.isDirectory())\n rmdir(p, options, er, cb)\n else\n options.unlink(p, cb)\n })\n })\n}\n\nfunction fixWinEPERMSync (p, options, er) {\n assert(p)\n assert(options)\n if (er)\n assert(er instanceof Error)\n\n try {\n options.chmodSync(p, 666)\n } catch (er2) {\n if (er2.code === \"ENOENT\")\n return\n else\n throw er\n }\n\n try {\n var stats = options.statSync(p)\n } catch (er3) {\n if (er3.code === \"ENOENT\")\n return\n else\n throw er\n }\n\n if (stats.isDirectory())\n rmdirSync(p, options, er)\n else\n options.unlinkSync(p)\n}\n\nfunction rmdir (p, options, originalEr, cb) {\n assert(p)\n assert(options)\n if (originalEr)\n assert(originalEr instanceof Error)\n assert(typeof cb === 'function')\n\n // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)\n // if we guessed wrong, and it's not a directory, then\n // raise the original error.\n options.rmdir(p, function (er) {\n if (er && (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\"))\n rmkids(p, options, cb)\n else if (er && er.code === \"ENOTDIR\")\n cb(originalEr)\n else\n cb(er)\n })\n}\n\nfunction rmkids(p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.readdir(p, function (er, files) {\n if (er)\n return cb(er)\n var n = files.length\n if (n === 0)\n return options.rmdir(p, cb)\n var errState\n files.forEach(function (f) {\n rimraf(path.join(p, f), options, function (er) {\n if (errState)\n return\n if (er)\n return cb(errState = er)\n if (--n === 0)\n options.rmdir(p, cb)\n })\n })\n })\n}\n\n// this looks simpler, and is strictly *faster*, but will\n// tie up the JavaScript thread and fail on excessively\n// deep directory trees.\nfunction rimrafSync (p, options) {\n options = options || {}\n defaults(options)\n\n assert(p, 'rimraf: missing path')\n assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n var results\n\n if (options.disableGlob || !glob.hasMagic(p)) {\n results = [p]\n } else {\n try {\n fs.lstatSync(p)\n results = [p]\n } catch (er) {\n results = glob.sync(p, globOpts)\n }\n }\n\n if (!results.length)\n return\n\n for (var i = 0; i < results.length; i++) {\n var p = results[i]\n\n try {\n var st = options.lstatSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n }\n\n try {\n // sunos lets the root user unlink directories, which is... weird.\n if (st && st.isDirectory())\n rmdirSync(p, options, null)\n else\n options.unlinkSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n if (er.code === \"EPERM\")\n return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n if (er.code !== \"EISDIR\")\n throw er\n rmdirSync(p, options, er)\n }\n }\n}\n\nfunction rmdirSync (p, options, originalEr) {\n assert(p)\n assert(options)\n if (originalEr)\n assert(originalEr instanceof Error)\n\n try {\n options.rmdirSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n if (er.code === \"ENOTDIR\")\n throw originalEr\n if (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\")\n rmkidsSync(p, options)\n }\n}\n\nfunction rmkidsSync (p, options) {\n assert(p)\n assert(options)\n options.readdirSync(p).forEach(function (f) {\n rimrafSync(path.join(p, f), options)\n })\n options.rmdirSync(p, options)\n}\n", "var path = require('path');\nvar fs = require('fs');\nvar _0777 = parseInt('0777', 8);\n\nmodule.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;\n\nfunction mkdirP (p, opts, f, made) {\n if (typeof opts === 'function') {\n f = opts;\n opts = {};\n }\n else if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n \n var mode = opts.mode;\n var xfs = opts.fs || fs;\n \n if (mode === undefined) {\n mode = _0777\n }\n if (!made) made = null;\n \n var cb = f || /* istanbul ignore next */ function () {};\n p = path.resolve(p);\n \n xfs.mkdir(p, mode, function (er) {\n if (!er) {\n made = made || p;\n return cb(null, made);\n }\n switch (er.code) {\n case 'ENOENT':\n /* istanbul ignore if */\n if (path.dirname(p) === p) return cb(er);\n mkdirP(path.dirname(p), opts, function (er, made) {\n /* istanbul ignore if */\n if (er) cb(er, made);\n else mkdirP(p, opts, cb, made);\n });\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n xfs.stat(p, function (er2, stat) {\n // if the stat fails, then that's super weird.\n // let the original error be the failure reason.\n if (er2 || !stat.isDirectory()) cb(er, made)\n else cb(null, made);\n });\n break;\n }\n });\n}\n\nmkdirP.sync = function sync (p, opts, made) {\n if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n \n var mode = opts.mode;\n var xfs = opts.fs || fs;\n \n if (mode === undefined) {\n mode = _0777\n }\n if (!made) made = null;\n\n p = path.resolve(p);\n\n try {\n xfs.mkdirSync(p, mode);\n made = made || p;\n }\n catch (err0) {\n switch (err0.code) {\n case 'ENOENT' :\n made = sync(path.dirname(p), opts, made);\n sync(p, opts, made);\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n var stat;\n try {\n stat = xfs.statSync(p);\n }\n catch (err1) /* istanbul ignore next */ {\n throw err0;\n }\n /* istanbul ignore if */\n if (!stat.isDirectory()) throw err0;\n break;\n }\n }\n\n return made;\n};\n", "var fs = require('fs');\nvar ncp = require('ncp').ncp;\nvar path = require('path');\nvar rimraf = require('rimraf');\nvar mkdirp = require('mkdirp');\n\nmodule.exports = mv;\n\nfunction mv(source, dest, options, cb){\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n var shouldMkdirp = !!options.mkdirp;\n var clobber = options.clobber !== false;\n var limit = options.limit || 16;\n\n if (shouldMkdirp) {\n mkdirs();\n } else {\n doRename();\n }\n\n function mkdirs() {\n mkdirp(path.dirname(dest), function(err) {\n if (err) return cb(err);\n doRename();\n });\n }\n\n function doRename() {\n if (clobber) {\n fs.rename(source, dest, function(err) {\n if (!err) return cb();\n if (err.code !== 'EXDEV') return cb(err);\n moveFileAcrossDevice(source, dest, clobber, limit, cb);\n });\n } else {\n fs.link(source, dest, function(err) {\n if (err) {\n if (err.code === 'EXDEV') {\n moveFileAcrossDevice(source, dest, clobber, limit, cb);\n return;\n }\n if (err.code === 'EISDIR' || err.code === 'EPERM') {\n moveDirAcrossDevice(source, dest, clobber, limit, cb);\n return;\n }\n cb(err);\n return;\n }\n fs.unlink(source, cb);\n });\n }\n }\n}\n\nfunction moveFileAcrossDevice(source, dest, clobber, limit, cb) {\n var outFlags = clobber ? 'w' : 'wx';\n var ins = fs.createReadStream(source);\n var outs = fs.createWriteStream(dest, {flags: outFlags});\n ins.on('error', function(err){\n ins.destroy();\n outs.destroy();\n outs.removeListener('close', onClose);\n if (err.code === 'EISDIR' || err.code === 'EPERM') {\n moveDirAcrossDevice(source, dest, clobber, limit, cb);\n } else {\n cb(err);\n }\n });\n outs.on('error', function(err){\n ins.destroy();\n outs.destroy();\n outs.removeListener('close', onClose);\n cb(err);\n });\n outs.once('close', onClose);\n ins.pipe(outs);\n function onClose(){\n fs.unlink(source, cb);\n }\n}\n\nfunction moveDirAcrossDevice(source, dest, clobber, limit, cb) {\n var options = {\n stopOnErr: true,\n clobber: false,\n limit: limit,\n };\n if (clobber) {\n rimraf(dest, { disableGlob: true }, function(err) {\n if (err) return cb(err);\n startNcp();\n });\n } else {\n startNcp();\n }\n function startNcp() {\n ncp(source, dest, options, function(errList) {\n if (errList) return cb(errList[0]);\n rimraf(source, { disableGlob: true }, cb);\n });\n }\n}\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // \u201Csources\u201D entry. This value is prepended to the individual\n // entries in the \u201Csource\u201D field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // \u201CsourceRoot\u201D, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n", "/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n", "/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n", "var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction globalProcessVersion() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.version;\n } else {\n return '';\n }\n}\n\nfunction globalProcessStderr() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.stderr;\n }\n}\n\nfunction globalProcessExit(code) {\n if ((typeof process === 'object') && (process !== null) && (typeof process.exit === 'function')) {\n return process.exit(code);\n }\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(globalProcessVersion()) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n var name = error.name || 'Error';\n var message = error.message || '';\n var errorString = name + \": \" + message;\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n var stderr = globalProcessStderr();\n if (stderr && stderr._handle && stderr._handle.setBlocking) {\n stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error();\n console.error(source);\n }\n\n console.error(error.stack);\n globalProcessExit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n", "/**\n * Copyright 2021 Trent Mick.\n * Copyright 2020 Joyent Inc.\n *\n * The bunyan logging library for node.js.\n *\n * -*- mode: js -*-\n * vim: expandtab:ts=4:sw=4\n */\n\nvar VERSION = '1.8.15';\n\n/*\n * Bunyan log format version. This becomes the 'v' field on all log records.\n * This will be incremented if there is any backward incompatible change to\n * the log record format. Details will be in 'CHANGES.md' (the change log).\n */\nvar LOG_VERSION = 0;\n\n\nvar xxx = function xxx(s) { // internal dev/debug logging\n var args = ['XX' + 'X: '+s].concat(\n Array.prototype.slice.call(arguments, 1));\n console.error.apply(this, args);\n};\nvar xxx = function xxx() {}; // comment out to turn on debug logging\n\n\n/*\n * Runtime environment notes:\n *\n * Bunyan is intended to run in a number of runtime environments. Here are\n * some notes on differences for those envs and how the code copes.\n *\n * - node.js: The primary target environment.\n * - NW.js: http://nwjs.io/ An *app* environment that feels like both a\n * node env -- it has node-like globals (`process`, `global`) and\n * browser-like globals (`window`, `navigator`). My *understanding* is that\n * bunyan can operate as if this is vanilla node.js.\n * - browser: Failing the above, we sniff using the `window` global\n * .\n * - browserify: http://browserify.org/ A browser-targetting bundler of\n * node.js deps. The runtime is a browser env, so can't use fs access,\n * etc. Browserify's build looks for `require()` imports\n * to bundle. For some imports it won't be able to handle, we \"hide\"\n * from browserify with `require('frobshizzle' + '')`.\n * - Other? Please open issues if things are broken.\n */\nvar runtimeEnv;\nif (typeof (process) !== 'undefined' && process.versions) {\n if (process.versions.nw) {\n runtimeEnv = 'nw';\n } else if (process.versions.node) {\n runtimeEnv = 'node';\n }\n}\nif (!runtimeEnv && typeof (window) !== 'undefined' &&\n window.window === window) {\n runtimeEnv = 'browser';\n}\nif (!runtimeEnv) {\n throw new Error('unknown runtime environment');\n}\n\n\nvar os, fs, dtrace;\nif (runtimeEnv === 'browser') {\n os = {\n hostname: function () {\n return window.location.host;\n }\n };\n fs = {};\n dtrace = null;\n} else {\n os = require('os');\n fs = require('fs');\n try {\n dtrace = require('dtrace-provider' + '');\n } catch (e) {\n dtrace = null;\n }\n}\nvar util = require('util');\nvar assert = require('assert');\nvar EventEmitter = require('events').EventEmitter;\nvar stream = require('stream');\n\ntry {\n var safeJsonStringify = require('safe-json-stringify');\n} catch (e) {\n safeJsonStringify = null;\n}\nif (process.env.BUNYAN_TEST_NO_SAFE_JSON_STRINGIFY) {\n safeJsonStringify = null;\n}\n\n// The 'mv' module is required for rotating-file stream support.\ntry {\n var mv = require('mv' + '');\n} catch (e) {\n mv = null;\n}\n\ntry {\n var sourceMapSupport = require('source-map-support' + '');\n} catch (_) {\n sourceMapSupport = null;\n}\n\n\n//---- Internal support stuff\n\n/**\n * A shallow copy of an object. Bunyan logging attempts to never cause\n * exceptions, so this function attempts to handle non-objects gracefully.\n */\nfunction objCopy(obj) {\n if (obj == null) { // null or undefined\n return obj;\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else if (typeof (obj) === 'object') {\n var copy = {};\n Object.keys(obj).forEach(function (k) {\n copy[k] = obj[k];\n });\n return copy;\n } else {\n return obj;\n }\n}\n\nvar format = util.format;\nif (!format) {\n // If node < 0.6, then use its `util.format`:\n // :\n var inspect = util.inspect;\n var formatRegExp = /%[sdj%]/g;\n format = function format(f) {\n if (typeof (f) !== 'string') {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (i >= len)\n return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j': return fastAndSafeJsonStringify(args[i++]);\n case '%%': return '%';\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (x === null || typeof (x) !== 'object') {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n };\n}\n\n\n/**\n * Gather some caller info 3 stack levels up.\n * See .\n */\nfunction getCaller3Info() {\n if (this === undefined) {\n // Cannot access caller info in 'strict' mode.\n return;\n }\n var obj = {};\n var saveLimit = Error.stackTraceLimit;\n var savePrepare = Error.prepareStackTrace;\n Error.stackTraceLimit = 3;\n\n Error.prepareStackTrace = function (_, stack) {\n var caller = stack[2];\n if (sourceMapSupport) {\n caller = sourceMapSupport.wrapCallSite(caller);\n }\n obj.file = caller.getFileName();\n obj.line = caller.getLineNumber();\n var func = caller.getFunctionName();\n if (func)\n obj.func = func;\n };\n Error.captureStackTrace(this, getCaller3Info);\n this.stack;\n\n Error.stackTraceLimit = saveLimit;\n Error.prepareStackTrace = savePrepare;\n return obj;\n}\n\n\nfunction _indent(s, indent) {\n if (!indent) indent = ' ';\n var lines = s.split(/\\r?\\n/g);\n return indent + lines.join('\\n' + indent);\n}\n\n\n/**\n * Warn about an bunyan processing error.\n *\n * @param msg {String} Message with which to warn.\n * @param dedupKey {String} Optional. A short string key for this warning to\n * have its warning only printed once.\n */\nfunction _warn(msg, dedupKey) {\n assert.ok(msg);\n if (dedupKey) {\n if (_warned[dedupKey]) {\n return;\n }\n _warned[dedupKey] = true;\n }\n process.stderr.write(msg + '\\n');\n}\nfunction _haveWarned(dedupKey) {\n return _warned[dedupKey];\n}\nvar _warned = {};\n\n\nfunction ConsoleRawStream() {}\nConsoleRawStream.prototype.write = function (rec) {\n if (rec.level < INFO) {\n console.log(rec);\n } else if (rec.level < WARN) {\n console.info(rec);\n } else if (rec.level < ERROR) {\n console.warn(rec);\n } else {\n console.error(rec);\n }\n};\n\n\n//---- Levels\n\nvar TRACE = 10;\nvar DEBUG = 20;\nvar INFO = 30;\nvar WARN = 40;\nvar ERROR = 50;\nvar FATAL = 60;\n\nvar levelFromName = {\n 'trace': TRACE,\n 'debug': DEBUG,\n 'info': INFO,\n 'warn': WARN,\n 'error': ERROR,\n 'fatal': FATAL\n};\nvar nameFromLevel = {};\nObject.keys(levelFromName).forEach(function (name) {\n nameFromLevel[levelFromName[name]] = name;\n});\n\n// Dtrace probes.\nvar dtp = undefined;\nvar probes = dtrace && {};\n\n/**\n * Resolve a level number, name (upper or lowercase) to a level number value.\n *\n * @param nameOrNum {String|Number} A level name (case-insensitive) or positive\n * integer level.\n * @api public\n */\nfunction resolveLevel(nameOrNum) {\n var level;\n var type = typeof (nameOrNum);\n if (type === 'string') {\n level = levelFromName[nameOrNum.toLowerCase()];\n if (!level) {\n throw new Error(format('unknown level name: \"%s\"', nameOrNum));\n }\n } else if (type !== 'number') {\n throw new TypeError(format('cannot resolve level: invalid arg (%s):',\n type, nameOrNum));\n } else if (nameOrNum < 0 || Math.floor(nameOrNum) !== nameOrNum) {\n throw new TypeError(format('level is not a positive integer: %s',\n nameOrNum));\n } else {\n level = nameOrNum;\n }\n return level;\n}\n\n\nfunction isWritable(obj) {\n if (obj instanceof stream.Writable) {\n return true;\n }\n return typeof (obj.write) === 'function';\n}\n\n\n//---- Logger class\n\n/**\n * Create a Logger instance.\n *\n * @param options {Object} See documentation for full details. At minimum\n * this must include a 'name' string key. Configuration keys:\n * - `streams`: specify the logger output streams. This is an array of\n * objects with these fields:\n * - `type`: The stream type. See README.md for full details.\n * Often this is implied by the other fields. Examples are\n * 'file', 'stream' and \"raw\".\n * - `level`: Defaults to 'info'.\n * - `path` or `stream`: The specify the file path or writeable\n * stream to which log records are written. E.g.\n * `stream: process.stdout`.\n * - `closeOnExit` (boolean): Optional. Default is true for a\n * 'file' stream when `path` is given, false otherwise.\n * See README.md for full details.\n * - `level`: set the level for a single output stream (cannot be used\n * with `streams`)\n * - `stream`: the output stream for a logger with just one, e.g.\n * `process.stdout` (cannot be used with `streams`)\n * - `serializers`: object mapping log record field names to\n * serializing functions. See README.md for details.\n * - `src`: Boolean (default false). Set true to enable 'src' automatic\n * field with log call source info.\n * All other keys are log record fields.\n *\n * An alternative *internal* call signature is used for creating a child:\n * new Logger(, [, ]);\n *\n * @param _childSimple (Boolean) An assertion that the given `_childOptions`\n * (a) only add fields (no config) and (b) no serialization handling is\n * required for them. IOW, this is a fast path for frequent child\n * creation.\n */\nfunction Logger(options, _childOptions, _childSimple) {\n xxx('Logger start:', options)\n if (!(this instanceof Logger)) {\n return new Logger(options, _childOptions);\n }\n\n // Input arg validation.\n var parent;\n if (_childOptions !== undefined) {\n parent = options;\n options = _childOptions;\n if (!(parent instanceof Logger)) {\n throw new TypeError(\n 'invalid Logger creation: do not pass a second arg');\n }\n }\n if (!options) {\n throw new TypeError('options (object) is required');\n }\n if (!parent) {\n if (!options.name) {\n throw new TypeError('options.name (string) is required');\n }\n } else {\n if (options.name) {\n throw new TypeError(\n 'invalid options.name: child cannot set logger name');\n }\n }\n if (options.stream && options.streams) {\n throw new TypeError('cannot mix \"streams\" and \"stream\" options');\n }\n if (options.streams && !Array.isArray(options.streams)) {\n throw new TypeError('invalid options.streams: must be an array')\n }\n if (options.serializers && (typeof (options.serializers) !== 'object' ||\n Array.isArray(options.serializers))) {\n throw new TypeError('invalid options.serializers: must be an object')\n }\n\n EventEmitter.call(this);\n\n // Fast path for simple child creation.\n if (parent && _childSimple) {\n // `_isSimpleChild` is a signal to stream close handling that this child\n // owns none of its streams.\n this._isSimpleChild = true;\n\n this._level = parent._level;\n this.streams = parent.streams;\n this.serializers = parent.serializers;\n this.src = parent.src;\n var fields = this.fields = {};\n var parentFieldNames = Object.keys(parent.fields);\n for (var i = 0; i < parentFieldNames.length; i++) {\n var name = parentFieldNames[i];\n fields[name] = parent.fields[name];\n }\n var names = Object.keys(options);\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n fields[name] = options[name];\n }\n return;\n }\n\n // Start values.\n var self = this;\n if (parent) {\n this._level = parent._level;\n this.streams = [];\n for (var i = 0; i < parent.streams.length; i++) {\n var s = objCopy(parent.streams[i]);\n s.closeOnExit = false; // Don't own parent stream.\n this.streams.push(s);\n }\n this.serializers = objCopy(parent.serializers);\n this.src = parent.src;\n this.fields = objCopy(parent.fields);\n if (options.level) {\n this.level(options.level);\n }\n } else {\n this._level = Number.POSITIVE_INFINITY;\n this.streams = [];\n this.serializers = null;\n this.src = false;\n this.fields = {};\n }\n\n if (!dtp && dtrace) {\n dtp = dtrace.createDTraceProvider('bunyan');\n\n for (var level in levelFromName) {\n var probe;\n\n probes[levelFromName[level]] = probe =\n dtp.addProbe('log-' + level, 'char *');\n\n // Explicitly add a reference to dtp to prevent it from being GC'd\n probe.dtp = dtp;\n }\n\n dtp.enable();\n }\n\n // Handle *config* options (i.e. options that are not just plain data\n // for log records).\n if (options.stream) {\n self.addStream({\n type: 'stream',\n stream: options.stream,\n closeOnExit: false,\n level: options.level\n });\n } else if (options.streams) {\n options.streams.forEach(function (s) {\n self.addStream(s, options.level);\n });\n } else if (parent && options.level) {\n this.level(options.level);\n } else if (!parent) {\n if (runtimeEnv === 'browser') {\n /*\n * In the browser we'll be emitting to console.log by default.\n * Any console.log worth its salt these days can nicely render\n * and introspect objects (e.g. the Firefox and Chrome console)\n * so let's emit the raw log record. Are there browsers for which\n * that breaks things?\n */\n self.addStream({\n type: 'raw',\n stream: new ConsoleRawStream(),\n closeOnExit: false,\n level: options.level\n });\n } else {\n self.addStream({\n type: 'stream',\n stream: process.stdout,\n closeOnExit: false,\n level: options.level\n });\n }\n }\n if (options.serializers) {\n self.addSerializers(options.serializers);\n }\n if (options.src) {\n this.src = true;\n }\n xxx('Logger: ', self)\n\n // Fields.\n // These are the default fields for log records (minus the attributes\n // removed in this constructor). To allow storing raw log records\n // (unrendered), `this.fields` must never be mutated. Create a copy for\n // any changes.\n var fields = objCopy(options);\n delete fields.stream;\n delete fields.level;\n delete fields.streams;\n delete fields.serializers;\n delete fields.src;\n if (this.serializers) {\n this._applySerializers(fields);\n }\n if (!fields.hostname && !self.fields.hostname) {\n fields.hostname = os.hostname();\n }\n if (!fields.pid) {\n fields.pid = process.pid;\n }\n Object.keys(fields).forEach(function (k) {\n self.fields[k] = fields[k];\n });\n}\n\nutil.inherits(Logger, EventEmitter);\n\n\n/**\n * Add a stream\n *\n * @param stream {Object}. Object with these fields:\n * - `type`: The stream type. See README.md for full details.\n * Often this is implied by the other fields. Examples are\n * 'file', 'stream' and \"raw\".\n * - `path` or `stream`: The specify the file path or writeable\n * stream to which log records are written. E.g.\n * `stream: process.stdout`.\n * - `level`: Optional. Falls back to `defaultLevel`.\n * - `closeOnExit` (boolean): Optional. Default is true for a\n * 'file' stream when `path` is given, false otherwise.\n * See README.md for full details.\n * @param defaultLevel {Number|String} Optional. A level to use if\n * `stream.level` is not set. If neither is given, this defaults to INFO.\n */\nLogger.prototype.addStream = function addStream(s, defaultLevel) {\n var self = this;\n if (defaultLevel === null || defaultLevel === undefined) {\n defaultLevel = INFO;\n }\n\n s = objCopy(s);\n\n // Implicit 'type' from other args.\n if (!s.type) {\n if (s.stream) {\n s.type = 'stream';\n } else if (s.path) {\n s.type = 'file'\n }\n }\n s.raw = (s.type === 'raw'); // PERF: Allow for faster check in `_emit`.\n\n if (s.level !== undefined) {\n s.level = resolveLevel(s.level);\n } else {\n s.level = resolveLevel(defaultLevel);\n }\n if (s.level < self._level) {\n self._level = s.level;\n }\n\n switch (s.type) {\n case 'stream':\n assert.ok(isWritable(s.stream),\n '\"stream\" stream is not writable: ' + util.inspect(s.stream));\n\n if (!s.closeOnExit) {\n s.closeOnExit = false;\n }\n break;\n case 'file':\n if (s.reemitErrorEvents === undefined) {\n s.reemitErrorEvents = true;\n }\n if (!s.stream) {\n s.stream = fs.createWriteStream(s.path,\n {flags: 'a', encoding: 'utf8'});\n if (!s.closeOnExit) {\n s.closeOnExit = true;\n }\n } else {\n if (!s.closeOnExit) {\n s.closeOnExit = false;\n }\n }\n break;\n case 'rotating-file':\n assert.ok(!s.stream,\n '\"rotating-file\" stream should not give a \"stream\"');\n assert.ok(s.path);\n assert.ok(mv, '\"rotating-file\" stream type is not supported: '\n + 'missing \"mv\" module');\n s.stream = new RotatingFileStream(s);\n if (!s.closeOnExit) {\n s.closeOnExit = true;\n }\n break;\n case 'raw':\n if (!s.closeOnExit) {\n s.closeOnExit = false;\n }\n break;\n default:\n throw new TypeError('unknown stream type \"' + s.type + '\"');\n }\n\n if (s.reemitErrorEvents && typeof (s.stream.on) === 'function') {\n // TODO: When we have `.close()`, it should remove event\n // listeners to not leak Logger instances.\n s.stream.on('error', function onStreamError(err) {\n self.emit('error', err, s);\n });\n }\n\n self.streams.push(s);\n delete self.haveNonRawStreams; // reset\n}\n\n\n/**\n * Add serializers\n *\n * @param serializers {Object} Optional. Object mapping log record field names\n * to serializing functions. See README.md for details.\n */\nLogger.prototype.addSerializers = function addSerializers(serializers) {\n var self = this;\n\n if (!self.serializers) {\n self.serializers = {};\n }\n Object.keys(serializers).forEach(function (field) {\n var serializer = serializers[field];\n if (typeof (serializer) !== 'function') {\n throw new TypeError(format(\n 'invalid serializer for \"%s\" field: must be a function',\n field));\n } else {\n self.serializers[field] = serializer;\n }\n });\n}\n\n\n\n/**\n * Create a child logger, typically to add a few log record fields.\n *\n * This can be useful when passing a logger to a sub-component, e.g. a\n * 'wuzzle' component of your service:\n *\n * var wuzzleLog = log.child({component: 'wuzzle'})\n * var wuzzle = new Wuzzle({..., log: wuzzleLog})\n *\n * Then log records from the wuzzle code will have the same structure as\n * the app log, *plus the component='wuzzle' field*.\n *\n * @param options {Object} Optional. Set of options to apply to the child.\n * All of the same options for a new Logger apply here. Notes:\n * - The parent's streams are inherited and cannot be removed in this\n * call. Any given `streams` are *added* to the set inherited from\n * the parent.\n * - The parent's serializers are inherited, though can effectively be\n * overwritten by using duplicate keys.\n * - Can use `level` to set the level of the streams inherited from\n * the parent. The level for the parent is NOT affected.\n * @param simple {Boolean} Optional. Set to true to assert that `options`\n * (a) only add fields (no config) and (b) no serialization handling is\n * required for them. IOW, this is a fast path for frequent child\n * creation. See 'tools/timechild.js' for numbers.\n */\nLogger.prototype.child = function (options, simple) {\n return new (this.constructor)(this, options || {}, simple);\n}\n\n\n/**\n * A convenience method to reopen 'file' streams on a logger. This can be\n * useful with external log rotation utilities that move and re-open log files\n * (e.g. logrotate on Linux, logadm on SmartOS/Illumos). Those utilities\n * typically have rotation options to copy-and-truncate the log file, but\n * you may not want to use that. An alternative is to do this in your\n * application:\n *\n * var log = bunyan.createLogger(...);\n * ...\n * process.on('SIGUSR2', function () {\n * log.reopenFileStreams();\n * });\n * ...\n *\n * See .\n */\nLogger.prototype.reopenFileStreams = function () {\n var self = this;\n self.streams.forEach(function (s) {\n if (s.type === 'file') {\n if (s.stream) {\n // Not sure if typically would want this, or more immediate\n // `s.stream.destroy()`.\n s.stream.end();\n s.stream.destroySoon();\n delete s.stream;\n }\n s.stream = fs.createWriteStream(s.path,\n {flags: 'a', encoding: 'utf8'});\n s.stream.on('error', function (err) {\n self.emit('error', err, s);\n });\n }\n });\n};\n\n\n/* BEGIN JSSTYLED */\n/**\n * Close this logger.\n *\n * This closes streams (that it owns, as per 'endOnClose' attributes on\n * streams), etc. Typically you **don't** need to bother calling this.\nLogger.prototype.close = function () {\n if (this._closed) {\n return;\n }\n if (!this._isSimpleChild) {\n self.streams.forEach(function (s) {\n if (s.endOnClose) {\n xxx('closing stream s:', s);\n s.stream.end();\n s.endOnClose = false;\n }\n });\n }\n this._closed = true;\n}\n */\n/* END JSSTYLED */\n\n\n/**\n * Get/set the level of all streams on this logger.\n *\n * Get Usage:\n * // Returns the current log level (lowest level of all its streams).\n * log.level() -> INFO\n *\n * Set Usage:\n * log.level(INFO) // set all streams to level INFO\n * log.level('info') // can use 'info' et al aliases\n */\nLogger.prototype.level = function level(value) {\n if (value === undefined) {\n return this._level;\n }\n var newLevel = resolveLevel(value);\n var len = this.streams.length;\n for (var i = 0; i < len; i++) {\n this.streams[i].level = newLevel;\n }\n this._level = newLevel;\n}\n\n\n/**\n * Get/set the level of a particular stream on this logger.\n *\n * Get Usage:\n * // Returns an array of the levels of each stream.\n * log.levels() -> [TRACE, INFO]\n *\n * // Returns a level of the identified stream.\n * log.levels(0) -> TRACE // level of stream at index 0\n * log.levels('foo') // level of stream with name 'foo'\n *\n * Set Usage:\n * log.levels(0, INFO) // set level of stream 0 to INFO\n * log.levels(0, 'info') // can use 'info' et al aliases\n * log.levels('foo', WARN) // set stream named 'foo' to WARN\n *\n * Stream names: When streams are defined, they can optionally be given\n * a name. For example,\n * log = new Logger({\n * streams: [\n * {\n * name: 'foo',\n * path: '/var/log/my-service/foo.log'\n * level: 'trace'\n * },\n * ...\n *\n * @param name {String|Number} The stream index or name.\n * @param value {Number|String} The level value (INFO) or alias ('info').\n * If not given, this is a 'get' operation.\n * @throws {Error} If there is no stream with the given name.\n */\nLogger.prototype.levels = function levels(name, value) {\n if (name === undefined) {\n assert.equal(value, undefined);\n return this.streams.map(\n function (s) { return s.level });\n }\n var stream;\n if (typeof (name) === 'number') {\n stream = this.streams[name];\n if (stream === undefined) {\n throw new Error('invalid stream index: ' + name);\n }\n } else {\n var len = this.streams.length;\n for (var i = 0; i < len; i++) {\n var s = this.streams[i];\n if (s.name === name) {\n stream = s;\n break;\n }\n }\n if (!stream) {\n throw new Error(format('no stream with name \"%s\"', name));\n }\n }\n if (value === undefined) {\n return stream.level;\n } else {\n var newLevel = resolveLevel(value);\n stream.level = newLevel;\n if (newLevel < this._level) {\n this._level = newLevel;\n }\n }\n}\n\n\n/**\n * Apply registered serializers to the appropriate keys in the given fields.\n *\n * Pre-condition: This is only called if there is at least one serializer.\n *\n * @param fields (Object) The log record fields.\n * @param excludeFields (Object) Optional mapping of keys to `true` for\n * keys to NOT apply a serializer.\n */\nLogger.prototype._applySerializers = function (fields, excludeFields) {\n var self = this;\n\n xxx('_applySerializers: excludeFields', excludeFields);\n\n // Check each serializer against these (presuming number of serializers\n // is typically less than number of fields).\n Object.keys(this.serializers).forEach(function (name) {\n if (fields[name] === undefined ||\n (excludeFields && excludeFields[name]))\n {\n return;\n }\n xxx('_applySerializers; apply to \"%s\" key', name)\n try {\n fields[name] = self.serializers[name](fields[name]);\n } catch (err) {\n _warn(format('bunyan: ERROR: Exception thrown from the \"%s\" '\n + 'Bunyan serializer. This should never happen. This is a bug '\n + 'in that serializer function.\\n%s',\n name, err.stack || err));\n fields[name] = format('(Error in Bunyan log \"%s\" serializer '\n + 'broke field. See stderr for details.)', name);\n }\n });\n}\n\n\n/**\n * Emit a log record.\n *\n * @param rec {log record}\n * @param noemit {Boolean} Optional. Set to true to skip emission\n * and just return the JSON string.\n */\nLogger.prototype._emit = function (rec, noemit) {\n var i;\n\n // Lazily determine if this Logger has non-'raw' streams. If there are\n // any, then we need to stringify the log record.\n if (this.haveNonRawStreams === undefined) {\n this.haveNonRawStreams = false;\n for (i = 0; i < this.streams.length; i++) {\n if (!this.streams[i].raw) {\n this.haveNonRawStreams = true;\n break;\n }\n }\n }\n\n // Stringify the object (creates a warning str on error).\n var str;\n if (noemit || this.haveNonRawStreams) {\n str = fastAndSafeJsonStringify(rec) + os.EOL;\n }\n\n if (noemit)\n return str;\n\n var level = rec.level;\n for (i = 0; i < this.streams.length; i++) {\n var s = this.streams[i];\n if (s.level <= level) {\n xxx('writing log rec \"%s\" to \"%s\" stream (%d <= %d): %j',\n rec.msg, s.type, s.level, level, rec);\n s.stream.write(s.raw ? rec : str);\n }\n };\n\n return str;\n}\n\n\n/**\n * Build a record object suitable for emitting from the arguments\n * provided to the a log emitter.\n */\nfunction mkRecord(log, minLevel, args) {\n var excludeFields, fields, msgArgs;\n if (args[0] instanceof Error) {\n // `log.(err, ...)`\n fields = {\n // Use this Logger's err serializer, if defined.\n err: (log.serializers && log.serializers.err\n ? log.serializers.err(args[0])\n : Logger.stdSerializers.err(args[0]))\n };\n excludeFields = {err: true};\n if (args.length === 1) {\n msgArgs = [fields.err.message];\n } else {\n msgArgs = args.slice(1);\n }\n } else if (typeof (args[0]) !== 'object' || Array.isArray(args[0])) {\n // `log.(msg, ...)`\n fields = null;\n msgArgs = args.slice();\n } else if (Buffer.isBuffer(args[0])) { // `log.(buf, ...)`\n // Almost certainly an error, show `inspect(buf)`. See bunyan\n // issue #35.\n fields = null;\n msgArgs = args.slice();\n msgArgs[0] = util.inspect(msgArgs[0]);\n } else { // `log.(fields, msg, ...)`\n fields = args[0];\n if (fields && args.length === 1 && fields.err &&\n fields.err instanceof Error)\n {\n msgArgs = [fields.err.message];\n } else {\n msgArgs = args.slice(1);\n }\n }\n\n // Build up the record object.\n var rec = objCopy(log.fields);\n var level = rec.level = minLevel;\n var recFields = (fields ? objCopy(fields) : null);\n if (recFields) {\n if (log.serializers) {\n log._applySerializers(recFields, excludeFields);\n }\n Object.keys(recFields).forEach(function (k) {\n rec[k] = recFields[k];\n });\n }\n rec.msg = format.apply(log, msgArgs);\n if (!rec.time) {\n rec.time = (new Date());\n }\n // Get call source info\n if (log.src && !rec.src) {\n rec.src = getCaller3Info()\n }\n rec.v = LOG_VERSION;\n\n return rec;\n};\n\n\n/**\n * Build an array that dtrace-provider can use to fire a USDT probe. If we've\n * already built the appropriate string, we use it. Otherwise, build the\n * record object and stringify it.\n */\nfunction mkProbeArgs(str, log, minLevel, msgArgs) {\n return [ str || log._emit(mkRecord(log, minLevel, msgArgs), true) ];\n}\n\n\n/**\n * Build a log emitter function for level minLevel. I.e. this is the\n * creator of `log.info`, `log.error`, etc.\n */\nfunction mkLogEmitter(minLevel) {\n return function () {\n var log = this;\n var str = null;\n var rec = null;\n\n if (!this._emit) {\n /*\n * Show this invalid Bunyan usage warning *once*.\n *\n * See for\n * an example of how this can happen.\n */\n var dedupKey = 'unbound';\n if (!_haveWarned[dedupKey]) {\n var caller = getCaller3Info();\n _warn(format('bunyan usage error: %s:%s: attempt to log '\n + 'with an unbound log method: `this` is: %s',\n caller.file, caller.line, util.inspect(this)),\n dedupKey);\n }\n return;\n } else if (arguments.length === 0) { // `log.()`\n return (this._level <= minLevel);\n }\n\n var msgArgs = new Array(arguments.length);\n for (var i = 0; i < msgArgs.length; ++i) {\n msgArgs[i] = arguments[i];\n }\n\n if (this._level <= minLevel) {\n rec = mkRecord(log, minLevel, msgArgs);\n str = this._emit(rec);\n }\n\n if (probes) {\n probes[minLevel].fire(mkProbeArgs, str, log, minLevel, msgArgs);\n }\n }\n}\n\n\n/**\n * The functions below log a record at a specific level.\n *\n * Usages:\n * log.() -> boolean is-trace-enabled\n * log.( err, [ msg, ...])\n * log.( msg, ...)\n * log.( fields, msg, ...)\n *\n * where is the lowercase version of the log level. E.g.:\n *\n * log.info()\n *\n * @params fields {Object} Optional set of additional fields to log.\n * @params msg {String} Log message. This can be followed by additional\n * arguments that are handled like\n * [util.format](http://nodejs.org/docs/latest/api/all.html#util.format).\n */\nLogger.prototype.trace = mkLogEmitter(TRACE);\nLogger.prototype.debug = mkLogEmitter(DEBUG);\nLogger.prototype.info = mkLogEmitter(INFO);\nLogger.prototype.warn = mkLogEmitter(WARN);\nLogger.prototype.error = mkLogEmitter(ERROR);\nLogger.prototype.fatal = mkLogEmitter(FATAL);\n\n\n\n//---- Standard serializers\n// A serializer is a function that serializes a JavaScript object to a\n// JSON representation for logging. There is a standard set of presumed\n// interesting objects in node.js-land.\n\nLogger.stdSerializers = {};\n\n// Serialize an HTTP request.\nLogger.stdSerializers.req = function (req) {\n if (!req || !req.connection)\n return req;\n return {\n method: req.method,\n // Accept `req.originalUrl` for expressjs usage.\n // https://expressjs.com/en/api.html#req.originalUrl\n url: req.originalUrl || req.url,\n headers: req.headers,\n remoteAddress: req.connection.remoteAddress,\n remotePort: req.connection.remotePort\n };\n // Trailers: Skipping for speed. If you need trailers in your app, then\n // make a custom serializer.\n //if (Object.keys(trailers).length > 0) {\n // obj.trailers = req.trailers;\n //}\n};\n\n// Serialize an HTTP response.\nLogger.stdSerializers.res = function (res) {\n if (!res || !res.statusCode)\n return res;\n return {\n statusCode: res.statusCode,\n header: res._header\n }\n};\n\n\n/*\n * This function dumps long stack traces for exceptions having a cause()\n * method. The error classes from\n * [verror](https://github.com/davepacheco/node-verror) and\n * [restify v2.0](https://github.com/mcavage/node-restify) are examples.\n *\n * Based on `dumpException` in\n * https://github.com/davepacheco/node-extsprintf/blob/master/lib/extsprintf.js\n */\nfunction getFullErrorStack(ex)\n{\n var ret = ex.stack || ex.toString();\n if (ex.cause && typeof (ex.cause) === 'function') {\n var cex = ex.cause();\n if (cex) {\n ret += '\\nCaused by: ' + getFullErrorStack(cex);\n }\n }\n return (ret);\n}\n\n// Serialize an Error object\n// (Core error properties are enumerable in node 0.4, not in 0.6).\nvar errSerializer = Logger.stdSerializers.err = function (err) {\n if (!err || !err.stack)\n return err;\n var obj = {\n message: err.message,\n name: err.name,\n stack: getFullErrorStack(err),\n code: err.code,\n signal: err.signal\n }\n return obj;\n};\n\n\n// A JSON stringifier that handles cycles safely - tracks seen values in a Set.\nfunction safeCyclesSet() {\n var seen = new Set();\n return function (key, val) {\n if (!val || typeof (val) !== 'object') {\n return val;\n }\n if (seen.has(val)) {\n return '[Circular]';\n }\n seen.add(val);\n return val;\n };\n}\n\n/**\n * A JSON stringifier that handles cycles safely - tracks seen vals in an Array.\n *\n * Note: This approach has performance problems when dealing with large objects,\n * see trentm/node-bunyan#445, but since this is the only option for node 0.10\n * and earlier (as Set was introduced in Node 0.12), it's used as a fallback\n * when Set is not available.\n */\nfunction safeCyclesArray() {\n var seen = [];\n return function (key, val) {\n if (!val || typeof (val) !== 'object') {\n return val;\n }\n if (seen.indexOf(val) !== -1) {\n return '[Circular]';\n }\n seen.push(val);\n return val;\n };\n}\n\n/**\n * A JSON stringifier that handles cycles safely.\n *\n * Usage: JSON.stringify(obj, safeCycles())\n *\n * Choose the best safe cycle function from what is available - see\n * trentm/node-bunyan#445.\n */\nvar safeCycles = typeof (Set) !== 'undefined' ? safeCyclesSet : safeCyclesArray;\n\n/**\n * A fast JSON.stringify that handles cycles and getter exceptions (when\n * safeJsonStringify is installed).\n *\n * This function attempts to use the regular JSON.stringify for speed, but on\n * error (e.g. JSON cycle detection exception) it falls back to safe stringify\n * handlers that can deal with cycles and/or getter exceptions.\n */\nfunction fastAndSafeJsonStringify(rec) {\n try {\n return JSON.stringify(rec);\n } catch (ex) {\n try {\n return JSON.stringify(rec, safeCycles());\n } catch (e) {\n if (safeJsonStringify) {\n return safeJsonStringify(rec);\n } else {\n var dedupKey = e.stack.split(/\\n/g, 3).join('\\n');\n _warn('bunyan: ERROR: Exception in '\n + '`JSON.stringify(rec)`. You can install the '\n + '\"safe-json-stringify\" module to have Bunyan fallback '\n + 'to safer stringification. Record:\\n'\n + _indent(format('%s\\n%s', util.inspect(rec), e.stack)),\n dedupKey);\n return format('(Exception in JSON.stringify(rec): %j. '\n + 'See stderr for details.)', e.message);\n }\n }\n }\n}\n\n\nvar RotatingFileStream = null;\nif (mv) {\n\nRotatingFileStream = function RotatingFileStream(options) {\n this.path = options.path;\n\n this.count = (options.count == null ? 10 : options.count);\n assert.equal(typeof (this.count), 'number',\n format('rotating-file stream \"count\" is not a number: %j (%s) in %j',\n this.count, typeof (this.count), this));\n assert.ok(this.count >= 0,\n format('rotating-file stream \"count\" is not >= 0: %j in %j',\n this.count, this));\n\n // Parse `options.period`.\n if (options.period) {\n // where scope is:\n // h hours (at the start of the hour)\n // d days (at the start of the day, i.e. just after midnight)\n // w weeks (at the start of Sunday)\n // m months (on the first of the month)\n // y years (at the start of Jan 1st)\n // with special values 'hourly' (1h), 'daily' (1d), \"weekly\" (1w),\n // 'monthly' (1m) and 'yearly' (1y)\n var period = {\n 'hourly': '1h',\n 'daily': '1d',\n 'weekly': '1w',\n 'monthly': '1m',\n 'yearly': '1y'\n }[options.period] || options.period;\n var m = /^([1-9][0-9]*)([hdwmy]|ms)$/.exec(period);\n if (!m) {\n throw new Error(format('invalid period: \"%s\"', options.period));\n }\n this.periodNum = Number(m[1]);\n this.periodScope = m[2];\n } else {\n this.periodNum = 1;\n this.periodScope = 'd';\n }\n\n var lastModified = null;\n try {\n var fileInfo = fs.statSync(this.path);\n lastModified = fileInfo.mtime.getTime();\n }\n catch (err) {\n // file doesn't exist\n }\n var rotateAfterOpen = false;\n if (lastModified) {\n var lastRotTime = this._calcRotTime(0);\n if (lastModified < lastRotTime) {\n rotateAfterOpen = true;\n }\n }\n\n // TODO: template support for backup files\n // template: \n // default is %P.%n\n // '/var/log/archive/foo.log' -> foo.log.%n\n // '/var/log/archive/foo.log.%n'\n // codes:\n // XXX support strftime codes (per node version of those)\n // or whatever module. Pick non-colliding for extra\n // codes\n // %P `path` base value\n // %n integer number of rotated log (1,2,3,...)\n // %d datetime in YYYY-MM-DD_HH-MM-SS\n // XXX what should default date format be?\n // prior art? Want to avoid ':' in\n // filenames (illegal on Windows for one).\n\n this.stream = fs.createWriteStream(this.path,\n {flags: 'a', encoding: 'utf8'});\n\n this.rotQueue = [];\n this.rotating = false;\n if (rotateAfterOpen) {\n this._debug('rotateAfterOpen -> call rotate()');\n this.rotate();\n } else {\n this._setupNextRot();\n }\n}\n\nutil.inherits(RotatingFileStream, EventEmitter);\n\nRotatingFileStream.prototype._debug = function () {\n // Set this to `true` to add debug logging.\n if (false) {\n if (arguments.length === 0) {\n return true;\n }\n var args = Array.prototype.slice.call(arguments);\n args[0] = '[' + (new Date().toISOString()) + ', '\n + this.path + '] ' + args[0];\n console.log.apply(this, args);\n } else {\n return false;\n }\n};\n\nRotatingFileStream.prototype._setupNextRot = function () {\n this.rotAt = this._calcRotTime(1);\n this._setRotationTimer();\n}\n\nRotatingFileStream.prototype._setRotationTimer = function () {\n var self = this;\n var delay = this.rotAt - Date.now();\n // Cap timeout to Node's max setTimeout, see\n // .\n var TIMEOUT_MAX = 2147483647; // 2^31-1\n if (delay > TIMEOUT_MAX) {\n delay = TIMEOUT_MAX;\n }\n this.timeout = setTimeout(\n function () {\n self._debug('_setRotationTimer timeout -> call rotate()');\n self.rotate();\n },\n delay);\n if (typeof (this.timeout.unref) === 'function') {\n this.timeout.unref();\n }\n}\n\nRotatingFileStream.prototype._calcRotTime =\nfunction _calcRotTime(periodOffset) {\n this._debug('_calcRotTime: %s%s', this.periodNum, this.periodScope);\n var d = new Date();\n\n this._debug(' now local: %s', d);\n this._debug(' now utc: %s', d.toISOString());\n var rotAt;\n switch (this.periodScope) {\n case 'ms':\n // Hidden millisecond period for debugging.\n if (this.rotAt) {\n rotAt = this.rotAt + this.periodNum * periodOffset;\n } else {\n rotAt = Date.now() + this.periodNum * periodOffset;\n }\n break;\n case 'h':\n if (this.rotAt) {\n rotAt = this.rotAt + this.periodNum * 60 * 60 * 1000 * periodOffset;\n } else {\n // First time: top of the next hour.\n rotAt = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(),\n d.getUTCDate(), d.getUTCHours() + periodOffset);\n }\n break;\n case 'd':\n if (this.rotAt) {\n rotAt = this.rotAt + this.periodNum * 24 * 60 * 60 * 1000\n * periodOffset;\n } else {\n // First time: start of tomorrow (i.e. at the coming midnight) UTC.\n rotAt = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(),\n d.getUTCDate() + periodOffset);\n }\n break;\n case 'w':\n // Currently, always on Sunday morning at 00:00:00 (UTC).\n if (this.rotAt) {\n rotAt = this.rotAt + this.periodNum * 7 * 24 * 60 * 60 * 1000\n * periodOffset;\n } else {\n // First time: this coming Sunday.\n var dayOffset = (7 - d.getUTCDay());\n if (periodOffset < 1) {\n dayOffset = -d.getUTCDay();\n }\n if (periodOffset > 1 || periodOffset < -1) {\n dayOffset += 7 * periodOffset;\n }\n rotAt = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(),\n d.getUTCDate() + dayOffset);\n }\n break;\n case 'm':\n if (this.rotAt) {\n rotAt = Date.UTC(d.getUTCFullYear(),\n d.getUTCMonth() + this.periodNum * periodOffset, 1);\n } else {\n // First time: the start of the next month.\n rotAt = Date.UTC(d.getUTCFullYear(),\n d.getUTCMonth() + periodOffset, 1);\n }\n break;\n case 'y':\n if (this.rotAt) {\n rotAt = Date.UTC(d.getUTCFullYear() + this.periodNum * periodOffset,\n 0, 1);\n } else {\n // First time: the start of the next year.\n rotAt = Date.UTC(d.getUTCFullYear() + periodOffset, 0, 1);\n }\n break;\n default:\n assert.fail(format('invalid period scope: \"%s\"', this.periodScope));\n }\n\n if (this._debug()) {\n this._debug(' **rotAt**: %s (utc: %s)', rotAt,\n new Date(rotAt).toUTCString());\n var now = Date.now();\n this._debug(' now: %s (%sms == %smin == %sh to go)',\n now,\n rotAt - now,\n (rotAt-now)/1000/60,\n (rotAt-now)/1000/60/60);\n }\n return rotAt;\n};\n\nRotatingFileStream.prototype.rotate = function rotate() {\n // XXX What about shutdown?\n var self = this;\n\n // If rotation period is > ~25 days, we have to break into multiple\n // setTimeout's. See .\n if (self.rotAt && self.rotAt > Date.now()) {\n return self._setRotationTimer();\n }\n\n this._debug('rotate');\n if (self.rotating) {\n throw new TypeError('cannot start a rotation when already rotating');\n }\n self.rotating = true;\n\n self.stream.end(); // XXX can do moves sync after this? test at high rate\n\n function del() {\n var toDel = self.path + '.' + String(n - 1);\n if (n === 0) {\n toDel = self.path;\n }\n n -= 1;\n self._debug(' rm %s', toDel);\n fs.unlink(toDel, function (delErr) {\n //XXX handle err other than not exists\n moves();\n });\n }\n\n function moves() {\n if (self.count === 0 || n < 0) {\n return finish();\n }\n var before = self.path;\n var after = self.path + '.' + String(n);\n if (n > 0) {\n before += '.' + String(n - 1);\n }\n n -= 1;\n fs.exists(before, function (exists) {\n if (!exists) {\n moves();\n } else {\n self._debug(' mv %s %s', before, after);\n mv(before, after, function (mvErr) {\n if (mvErr) {\n self.emit('error', mvErr);\n finish(); // XXX finish here?\n } else {\n moves();\n }\n });\n }\n })\n }\n\n function finish() {\n self._debug(' open %s', self.path);\n self.stream = fs.createWriteStream(self.path,\n {flags: 'a', encoding: 'utf8'});\n var q = self.rotQueue, len = q.length;\n for (var i = 0; i < len; i++) {\n self.stream.write(q[i]);\n }\n self.rotQueue = [];\n self.rotating = false;\n self.emit('drain');\n self._setupNextRot();\n }\n\n var n = this.count;\n del();\n};\n\nRotatingFileStream.prototype.write = function write(s) {\n if (this.rotating) {\n this.rotQueue.push(s);\n return false;\n } else {\n return this.stream.write(s);\n }\n};\n\nRotatingFileStream.prototype.end = function end(s) {\n this.stream.end();\n};\n\nRotatingFileStream.prototype.destroy = function destroy(s) {\n this.stream.destroy();\n};\n\nRotatingFileStream.prototype.destroySoon = function destroySoon(s) {\n this.stream.destroySoon();\n};\n\n} /* if (mv) */\n\n\n\n/**\n * RingBuffer is a Writable Stream that just stores the last N records in\n * memory.\n *\n * @param options {Object}, with the following fields:\n *\n * - limit: number of records to keep in memory\n */\nfunction RingBuffer(options) {\n this.limit = options && options.limit ? options.limit : 100;\n this.writable = true;\n this.records = [];\n EventEmitter.call(this);\n}\n\nutil.inherits(RingBuffer, EventEmitter);\n\nRingBuffer.prototype.write = function (record) {\n if (!this.writable)\n throw (new Error('RingBuffer has been ended already'));\n\n this.records.push(record);\n\n if (this.records.length > this.limit)\n this.records.shift();\n\n return (true);\n};\n\nRingBuffer.prototype.end = function () {\n if (arguments.length > 0)\n this.write.apply(this, Array.prototype.slice.call(arguments));\n this.writable = false;\n};\n\nRingBuffer.prototype.destroy = function () {\n this.writable = false;\n this.emit('close');\n};\n\nRingBuffer.prototype.destroySoon = function () {\n this.destroy();\n};\n\n\n//---- Exports\n\nmodule.exports = Logger;\n\nmodule.exports.TRACE = TRACE;\nmodule.exports.DEBUG = DEBUG;\nmodule.exports.INFO = INFO;\nmodule.exports.WARN = WARN;\nmodule.exports.ERROR = ERROR;\nmodule.exports.FATAL = FATAL;\nmodule.exports.resolveLevel = resolveLevel;\nmodule.exports.levelFromName = levelFromName;\nmodule.exports.nameFromLevel = nameFromLevel;\n\nmodule.exports.VERSION = VERSION;\nmodule.exports.LOG_VERSION = LOG_VERSION;\n\nmodule.exports.createLogger = function createLogger(options) {\n return new Logger(options);\n};\n\nmodule.exports.RingBuffer = RingBuffer;\nmodule.exports.RotatingFileStream = RotatingFileStream;\n\n// Useful for custom `type == 'raw'` streams that may do JSON stringification\n// of log records themselves. Usage:\n// var str = JSON.stringify(rec, bunyan.safeCycles());\nmodule.exports.safeCycles = safeCycles;\n", "'use strict'\n\nexports.fromCallback = function (fn) {\n return Object.defineProperty(function (...args) {\n if (typeof args[args.length - 1] === 'function') fn.apply(this, args)\n else {\n return new Promise((resolve, reject) => {\n args.push((err, res) => (err != null) ? reject(err) : resolve(res))\n fn.apply(this, args)\n })\n }\n }, 'name', { value: fn.name })\n}\n\nexports.fromPromise = function (fn) {\n return Object.defineProperty(function (...args) {\n const cb = args[args.length - 1]\n if (typeof cb !== 'function') return fn.apply(this, args)\n else {\n args.pop()\n fn.apply(this, args).then(r => cb(null, r), cb)\n }\n }, 'name', { value: fn.name })\n}\n", "var constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n var chdir = process.chdir\n process.chdir = function (d) {\n cwd = null\n chdir.call(process, d)\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (fs.chmod && !fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (fs.chown && !fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = typeof fs.rename !== 'function' ? fs.rename\n : (function (fs$rename) {\n function rename (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\" || er.code === \"EBUSY\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename)\n return rename\n })(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = typeof fs.read !== 'function' ? fs.read\n : (function (fs$read) {\n function read (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n\n // This ensures `util.promisify` works as it does for native `fs.read`.\n if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n return read\n })(fs.read)\n\n fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync\n : (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n\n function patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n }\n\n function patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\") && fs.futimes) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else if (fs.futimes) {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n }\n\n function chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n\n function chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n function statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n function callback (er, stats) {\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n if (cb) cb.apply(this, arguments)\n }\n return options ? orig.call(fs, target, options, callback)\n : orig.call(fs, target, callback)\n }\n }\n\n function statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options) {\n var stats = options ? orig.call(fs, target, options)\n : orig.call(fs, target)\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n return stats;\n }\n }\n\n // ENOSYS means that the fs doesn't support the op. Just ignore\n // that, because it doesn't matter.\n //\n // if there's no getuid, or if getuid() is something other\n // than 0, and the error is EINVAL or EPERM, then just ignore\n // it.\n //\n // This specific case is a silent failure in cp, install, tar,\n // and most other unix tools that manage permissions.\n //\n // When running as root, or if other types of errors are\n // encountered, then it's strict.\n function chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n }\n}\n", "var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n", "'use strict'\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n return obj.__proto__\n}\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: getPrototypeOf(obj) }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n", "var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar clone = require('./clone.js')\n\nvar util = require('util')\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n gracefulQueue = Symbol.for('graceful-fs.queue')\n // This is used in testing by future versions\n previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n gracefulQueue = '___graceful-fs.queue'\n previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n Object.defineProperty(context, gracefulQueue, {\n get: function() {\n return queue\n }\n })\n}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n // This queue can be shared by multiple loaded instances\n var queue = global[gracefulQueue] || []\n publishQueue(fs, queue)\n\n // Patch fs.close/closeSync to shared queue version, because we need\n // to retry() whenever a close happens *anywhere* in the program.\n // This is essential when multiple graceful-fs instances are\n // in play at the same time.\n fs.close = (function (fs$close) {\n function close (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n // This function uses the graceful-fs shared queue\n if (!err) {\n resetQueue()\n }\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n }\n\n Object.defineProperty(close, previousSymbol, {\n value: fs$close\n })\n return close\n })(fs.close)\n\n fs.closeSync = (function (fs$closeSync) {\n function closeSync (fd) {\n // This function uses the graceful-fs shared queue\n fs$closeSync.apply(fs, arguments)\n resetQueue()\n }\n\n Object.defineProperty(closeSync, previousSymbol, {\n value: fs$closeSync\n })\n return closeSync\n })(fs.closeSync)\n\n if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(fs[gracefulQueue])\n require('assert').equal(fs[gracefulQueue].length, 0)\n })\n }\n}\n\nif (!global[gracefulQueue]) {\n publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n module.exports = patch(fs)\n fs.__patched = true;\n}\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb, startTime) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb, startTime) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb, startTime) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$copyFile = fs.copyFile\n if (fs$copyFile)\n fs.copyFile = copyFile\n function copyFile (src, dest, flags, cb) {\n if (typeof flags === 'function') {\n cb = flags\n flags = 0\n }\n return go$copyFile(src, dest, flags, cb)\n\n function go$copyFile (src, dest, flags, cb, startTime) {\n return fs$copyFile(src, dest, flags, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n var noReaddirOptionVersions = /^v[0-5]\\./\n function readdir (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n var go$readdir = noReaddirOptionVersions.test(process.version)\n ? function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, fs$readdirCallback(\n path, options, cb, startTime\n ))\n }\n : function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, options, fs$readdirCallback(\n path, options, cb, startTime\n ))\n }\n\n return go$readdir(path, options, cb)\n\n function fs$readdirCallback (path, options, cb, startTime) {\n return function (err, files) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([\n go$readdir,\n [path, options, cb],\n err,\n startTime || Date.now(),\n Date.now()\n ])\n else {\n if (files && files.sort)\n files.sort()\n\n if (typeof cb === 'function')\n cb.call(this, err, files)\n }\n }\n }\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n if (fs$ReadStream) {\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n }\n\n var fs$WriteStream = fs.WriteStream\n if (fs$WriteStream) {\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n }\n\n Object.defineProperty(fs, 'ReadStream', {\n get: function () {\n return ReadStream\n },\n set: function (val) {\n ReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n Object.defineProperty(fs, 'WriteStream', {\n get: function () {\n return WriteStream\n },\n set: function (val) {\n WriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n // legacy names\n var FileReadStream = ReadStream\n Object.defineProperty(fs, 'FileReadStream', {\n get: function () {\n return FileReadStream\n },\n set: function (val) {\n FileReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n var FileWriteStream = WriteStream\n Object.defineProperty(fs, 'FileWriteStream', {\n get: function () {\n return FileWriteStream\n },\n set: function (val) {\n FileWriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new fs.ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new fs.WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb, startTime) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n fs[gracefulQueue].push(elem)\n retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n var now = Date.now()\n for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n // entries that are only a length of 2 are from an older version, don't\n // bother modifying those since they'll be retried anyway.\n if (fs[gracefulQueue][i].length > 2) {\n fs[gracefulQueue][i][3] = now // startTime\n fs[gracefulQueue][i][4] = now // lastTime\n }\n }\n // call retry to make sure we're actively processing the queue\n retry()\n}\n\nfunction retry () {\n // clear the timer and remove it to help prevent unintended concurrency\n clearTimeout(retryTimer)\n retryTimer = undefined\n\n if (fs[gracefulQueue].length === 0)\n return\n\n var elem = fs[gracefulQueue].shift()\n var fn = elem[0]\n var args = elem[1]\n // these items may be unset if they were added by an older graceful-fs\n var err = elem[2]\n var startTime = elem[3]\n var lastTime = elem[4]\n\n // if we don't have a startTime we have no way of knowing if we've waited\n // long enough, so go ahead and retry this item now\n if (startTime === undefined) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args)\n } else if (Date.now() - startTime >= 60000) {\n // it's been more than 60 seconds total, bail now\n debug('TIMEOUT', fn.name, args)\n var cb = args.pop()\n if (typeof cb === 'function')\n cb.call(null, err)\n } else {\n // the amount of time between the last attempt and right now\n var sinceAttempt = Date.now() - lastTime\n // the amount of time between when we first tried, and when we last tried\n // rounded up to at least 1\n var sinceStart = Math.max(lastTime - startTime, 1)\n // backoff. wait longer than the total time we've been retrying, but only\n // up to a maximum of 100ms\n var desiredDelay = Math.min(sinceStart * 1.2, 100)\n // it's been long enough since the last retry, do it again\n if (sinceAttempt >= desiredDelay) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args.concat([startTime]))\n } else {\n // if we can't do this job yet, push it to the end of the queue\n // and let the next iteration check again\n fs[gracefulQueue].push(elem)\n }\n }\n\n // schedule our next run if one isn't already scheduled\n if (retryTimer === undefined) {\n retryTimer = setTimeout(retry, 0)\n }\n}\n", "'use strict'\n// This is adapted from https://github.com/normalize/mz\n// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\n\nconst api = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'close',\n 'copyFile',\n 'fchmod',\n 'fchown',\n 'fdatasync',\n 'fstat',\n 'fsync',\n 'ftruncate',\n 'futimes',\n 'lchmod',\n 'lchown',\n 'link',\n 'lstat',\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'opendir',\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'rename',\n 'rm',\n 'rmdir',\n 'stat',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile'\n].filter(key => {\n // Some commands are not available on some systems. Ex:\n // fs.cp was added in Node.js v16.7.0\n // fs.lchown is not available on at least some Linux\n return typeof fs[key] === 'function'\n})\n\n// Export cloned fs:\nObject.assign(exports, fs)\n\n// Universalify async methods:\napi.forEach(method => {\n exports[method] = u(fs[method])\n})\n\n// We differ from mz/fs in that we still ship the old, broken, fs.exists()\n// since we are a drop-in replacement for the native module\nexports.exists = function (filename, callback) {\n if (typeof callback === 'function') {\n return fs.exists(filename, callback)\n }\n return new Promise(resolve => {\n return fs.exists(filename, resolve)\n })\n}\n\n// fs.read(), fs.write(), fs.readv(), & fs.writev() need special treatment due to multiple callback args\n\nexports.read = function (fd, buffer, offset, length, position, callback) {\n if (typeof callback === 'function') {\n return fs.read(fd, buffer, offset, length, position, callback)\n }\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffer })\n })\n })\n}\n\n// Function signature can be\n// fs.write(fd, buffer[, offset[, length[, position]]], callback)\n// OR\n// fs.write(fd, string[, position[, encoding]], callback)\n// We need to handle both cases, so we use ...args\nexports.write = function (fd, buffer, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.write(fd, buffer, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffer })\n })\n })\n}\n\n// Function signature is\n// s.readv(fd, buffers[, position], callback)\n// We need to handle the optional arg, so we use ...args\nexports.readv = function (fd, buffers, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.readv(fd, buffers, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.readv(fd, buffers, ...args, (err, bytesRead, buffers) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffers })\n })\n })\n}\n\n// Function signature is\n// s.writev(fd, buffers[, position], callback)\n// We need to handle the optional arg, so we use ...args\nexports.writev = function (fd, buffers, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.writev(fd, buffers, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffers })\n })\n })\n}\n\n// fs.realpath.native sometimes not available if fs is monkey-patched\nif (typeof fs.realpath.native === 'function') {\n exports.realpath.native = u(fs.realpath.native)\n} else {\n process.emitWarning(\n 'fs.realpath.native is not a function. Is fs being monkey-patched?',\n 'Warning', 'fs-extra-WARN0003'\n )\n}\n", "// Adapted from https://github.com/sindresorhus/make-dir\n// Copyright (c) Sindre Sorhus (sindresorhus.com)\n// 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:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// 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.\n'use strict'\nconst path = require('path')\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nmodule.exports.checkPath = function checkPath (pth) {\n if (process.platform === 'win32') {\n const pathHasInvalidWinCharacters = /[<>:\"|?*]/.test(pth.replace(path.parse(pth).root, ''))\n\n if (pathHasInvalidWinCharacters) {\n const error = new Error(`Path contains invalid characters: ${pth}`)\n error.code = 'EINVAL'\n throw error\n }\n }\n}\n", "'use strict'\nconst fs = require('../fs')\nconst { checkPath } = require('./utils')\n\nconst getMode = options => {\n const defaults = { mode: 0o777 }\n if (typeof options === 'number') return options\n return ({ ...defaults, ...options }).mode\n}\n\nmodule.exports.makeDir = async (dir, options) => {\n checkPath(dir)\n\n return fs.mkdir(dir, {\n mode: getMode(options),\n recursive: true\n })\n}\n\nmodule.exports.makeDirSync = (dir, options) => {\n checkPath(dir)\n\n return fs.mkdirSync(dir, {\n mode: getMode(options),\n recursive: true\n })\n}\n", "'use strict'\nconst u = require('universalify').fromPromise\nconst { makeDir: _makeDir, makeDirSync } = require('./make-dir')\nconst makeDir = u(_makeDir)\n\nmodule.exports = {\n mkdirs: makeDir,\n mkdirsSync: makeDirSync,\n // alias\n mkdirp: makeDir,\n mkdirpSync: makeDirSync,\n ensureDir: makeDir,\n ensureDirSync: makeDirSync\n}\n", "'use strict'\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\n\nfunction pathExists (path) {\n return fs.access(path).then(() => true).catch(() => false)\n}\n\nmodule.exports = {\n pathExists: u(pathExists),\n pathExistsSync: fs.existsSync\n}\n", "'use strict'\n\nconst fs = require('../fs')\nconst u = require('universalify').fromPromise\n\nasync function utimesMillis (path, atime, mtime) {\n // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)\n const fd = await fs.open(path, 'r+')\n\n let closeErr = null\n\n try {\n await fs.futimes(fd, atime, mtime)\n } finally {\n try {\n await fs.close(fd)\n } catch (e) {\n closeErr = e\n }\n }\n\n if (closeErr) {\n throw closeErr\n }\n}\n\nfunction utimesMillisSync (path, atime, mtime) {\n const fd = fs.openSync(path, 'r+')\n fs.futimesSync(fd, atime, mtime)\n return fs.closeSync(fd)\n}\n\nmodule.exports = {\n utimesMillis: u(utimesMillis),\n utimesMillisSync\n}\n", "'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst u = require('universalify').fromPromise\n\nfunction getStats (src, dest, opts) {\n const statFunc = opts.dereference\n ? (file) => fs.stat(file, { bigint: true })\n : (file) => fs.lstat(file, { bigint: true })\n return Promise.all([\n statFunc(src),\n statFunc(dest).catch(err => {\n if (err.code === 'ENOENT') return null\n throw err\n })\n ]).then(([srcStat, destStat]) => ({ srcStat, destStat }))\n}\n\nfunction getStatsSync (src, dest, opts) {\n let destStat\n const statFunc = opts.dereference\n ? (file) => fs.statSync(file, { bigint: true })\n : (file) => fs.lstatSync(file, { bigint: true })\n const srcStat = statFunc(src)\n try {\n destStat = statFunc(dest)\n } catch (err) {\n if (err.code === 'ENOENT') return { srcStat, destStat: null }\n throw err\n }\n return { srcStat, destStat }\n}\n\nasync function checkPaths (src, dest, funcName, opts) {\n const { srcStat, destStat } = await getStats(src, dest, opts)\n if (destStat) {\n if (areIdentical(srcStat, destStat)) {\n const srcBaseName = path.basename(src)\n const destBaseName = path.basename(dest)\n if (funcName === 'move' &&\n srcBaseName !== destBaseName &&\n srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {\n return { srcStat, destStat, isChangingCase: true }\n }\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n if (!srcStat.isDirectory() && destStat.isDirectory()) {\n throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)\n }\n }\n\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n\n return { srcStat, destStat }\n}\n\nfunction checkPathsSync (src, dest, funcName, opts) {\n const { srcStat, destStat } = getStatsSync(src, dest, opts)\n\n if (destStat) {\n if (areIdentical(srcStat, destStat)) {\n const srcBaseName = path.basename(src)\n const destBaseName = path.basename(dest)\n if (funcName === 'move' &&\n srcBaseName !== destBaseName &&\n srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {\n return { srcStat, destStat, isChangingCase: true }\n }\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n if (!srcStat.isDirectory() && destStat.isDirectory()) {\n throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)\n }\n }\n\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n return { srcStat, destStat }\n}\n\n// recursively check if dest parent is a subdirectory of src.\n// It works for all file types including symlinks since it\n// checks the src and dest inodes. It starts from the deepest\n// parent and stops once it reaches the src parent or the root path.\nasync function checkParentPaths (src, srcStat, dest, funcName) {\n const srcParent = path.resolve(path.dirname(src))\n const destParent = path.resolve(path.dirname(dest))\n if (destParent === srcParent || destParent === path.parse(destParent).root) return\n\n let destStat\n try {\n destStat = await fs.stat(destParent, { bigint: true })\n } catch (err) {\n if (err.code === 'ENOENT') return\n throw err\n }\n\n if (areIdentical(srcStat, destStat)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n\n return checkParentPaths(src, srcStat, destParent, funcName)\n}\n\nfunction checkParentPathsSync (src, srcStat, dest, funcName) {\n const srcParent = path.resolve(path.dirname(src))\n const destParent = path.resolve(path.dirname(dest))\n if (destParent === srcParent || destParent === path.parse(destParent).root) return\n let destStat\n try {\n destStat = fs.statSync(destParent, { bigint: true })\n } catch (err) {\n if (err.code === 'ENOENT') return\n throw err\n }\n if (areIdentical(srcStat, destStat)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n return checkParentPathsSync(src, srcStat, destParent, funcName)\n}\n\nfunction areIdentical (srcStat, destStat) {\n return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev\n}\n\n// return true if dest is a subdir of src, otherwise false.\n// It only checks the path strings.\nfunction isSrcSubdir (src, dest) {\n const srcArr = path.resolve(src).split(path.sep).filter(i => i)\n const destArr = path.resolve(dest).split(path.sep).filter(i => i)\n return srcArr.every((cur, i) => destArr[i] === cur)\n}\n\nfunction errMsg (src, dest, funcName) {\n return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`\n}\n\nmodule.exports = {\n // checkPaths\n checkPaths: u(checkPaths),\n checkPathsSync,\n // checkParent\n checkParentPaths: u(checkParentPaths),\n checkParentPathsSync,\n // Misc\n isSrcSubdir,\n areIdentical\n}\n", "'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst { mkdirs } = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst { utimesMillis } = require('../util/utimes')\nconst stat = require('../util/stat')\n\nasync function copy (src, dest, opts = {}) {\n if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n process.emitWarning(\n 'Using the preserveTimestamps option in 32-bit node is not recommended;\\n\\n' +\n '\\tsee https://github.com/jprichardson/node-fs-extra/issues/269',\n 'Warning', 'fs-extra-WARN0001'\n )\n }\n\n const { srcStat, destStat } = await stat.checkPaths(src, dest, 'copy', opts)\n\n await stat.checkParentPaths(src, srcStat, dest, 'copy')\n\n const include = await runFilter(src, dest, opts)\n\n if (!include) return\n\n // check if the parent of dest exists, and create it if it doesn't exist\n const destParent = path.dirname(dest)\n const dirExists = await pathExists(destParent)\n if (!dirExists) {\n await mkdirs(destParent)\n }\n\n await getStatsAndPerformCopy(destStat, src, dest, opts)\n}\n\nasync function runFilter (src, dest, opts) {\n if (!opts.filter) return true\n return opts.filter(src, dest)\n}\n\nasync function getStatsAndPerformCopy (destStat, src, dest, opts) {\n const statFn = opts.dereference ? fs.stat : fs.lstat\n const srcStat = await statFn(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n\n if (\n srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()\n ) return onFile(srcStat, destStat, src, dest, opts)\n\n if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)\n if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)\n throw new Error(`Unknown file: ${src}`)\n}\n\nasync function onFile (srcStat, destStat, src, dest, opts) {\n if (!destStat) return copyFile(srcStat, src, dest, opts)\n\n if (opts.overwrite) {\n await fs.unlink(dest)\n return copyFile(srcStat, src, dest, opts)\n }\n if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nasync function copyFile (srcStat, src, dest, opts) {\n await fs.copyFile(src, dest)\n if (opts.preserveTimestamps) {\n // Make sure the file is writable before setting the timestamp\n // otherwise open fails with EPERM when invoked with 'r+'\n // (through utimes call)\n if (fileIsNotWritable(srcStat.mode)) {\n await makeFileWritable(dest, srcStat.mode)\n }\n\n // Set timestamps and mode correspondingly\n\n // Note that The initial srcStat.atime cannot be trusted\n // because it is modified by the read(2) system call\n // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n const updatedSrcStat = await fs.stat(src)\n await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n }\n\n return fs.chmod(dest, srcStat.mode)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n return fs.chmod(dest, srcMode | 0o200)\n}\n\nasync function onDir (srcStat, destStat, src, dest, opts) {\n // the dest directory might not exist, create it\n if (!destStat) {\n await fs.mkdir(dest)\n }\n\n const items = await fs.readdir(src)\n\n // loop through the files in the current directory to copy everything\n await Promise.all(items.map(async item => {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n\n // skip the item if it is matches by the filter function\n const include = await runFilter(srcItem, destItem, opts)\n if (!include) return\n\n const { destStat } = await stat.checkPaths(srcItem, destItem, 'copy', opts)\n\n // If the item is a copyable file, `getStatsAndPerformCopy` will copy it\n // If the item is a directory, `getStatsAndPerformCopy` will call `onDir` recursively\n return getStatsAndPerformCopy(destStat, srcItem, destItem, opts)\n }))\n\n if (!destStat) {\n await fs.chmod(dest, srcStat.mode)\n }\n}\n\nasync function onLink (destStat, src, dest, opts) {\n let resolvedSrc = await fs.readlink(src)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n if (!destStat) {\n return fs.symlink(resolvedSrc, dest)\n }\n\n let resolvedDest = null\n try {\n resolvedDest = await fs.readlink(dest)\n } catch (e) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (e.code === 'EINVAL' || e.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest)\n throw e\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // do not copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n\n // copy the link\n await fs.unlink(dest)\n return fs.symlink(resolvedSrc, dest)\n}\n\nmodule.exports = copy\n", "'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirsSync = require('../mkdirs').mkdirsSync\nconst utimesMillisSync = require('../util/utimes').utimesMillisSync\nconst stat = require('../util/stat')\n\nfunction copySync (src, dest, opts) {\n if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n opts = opts || {}\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n process.emitWarning(\n 'Using the preserveTimestamps option in 32-bit node is not recommended;\\n\\n' +\n '\\tsee https://github.com/jprichardson/node-fs-extra/issues/269',\n 'Warning', 'fs-extra-WARN0002'\n )\n }\n\n const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts)\n stat.checkParentPathsSync(src, srcStat, dest, 'copy')\n if (opts.filter && !opts.filter(src, dest)) return\n const destParent = path.dirname(dest)\n if (!fs.existsSync(destParent)) mkdirsSync(destParent)\n return getStats(destStat, src, dest, opts)\n}\n\nfunction getStats (destStat, src, dest, opts) {\n const statSync = opts.dereference ? fs.statSync : fs.lstatSync\n const srcStat = statSync(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)\n else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)\n throw new Error(`Unknown file: ${src}`)\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts) {\n if (!destStat) return copyFile(srcStat, src, dest, opts)\n return mayCopyFile(srcStat, src, dest, opts)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts) {\n if (opts.overwrite) {\n fs.unlinkSync(dest)\n return copyFile(srcStat, src, dest, opts)\n } else if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nfunction copyFile (srcStat, src, dest, opts) {\n fs.copyFileSync(src, dest)\n if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest)\n return setDestMode(dest, srcStat.mode)\n}\n\nfunction handleTimestamps (srcMode, src, dest) {\n // Make sure the file is writable before setting the timestamp\n // otherwise open fails with EPERM when invoked with 'r+'\n // (through utimes call)\n if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode)\n return setDestTimestamps(src, dest)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n return setDestMode(dest, srcMode | 0o200)\n}\n\nfunction setDestMode (dest, srcMode) {\n return fs.chmodSync(dest, srcMode)\n}\n\nfunction setDestTimestamps (src, dest) {\n // The initial srcStat.atime cannot be trusted\n // because it is modified by the read(2) system call\n // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n const updatedSrcStat = fs.statSync(src)\n return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts) {\n if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts)\n return copyDir(src, dest, opts)\n}\n\nfunction mkDirAndCopy (srcMode, src, dest, opts) {\n fs.mkdirSync(dest)\n copyDir(src, dest, opts)\n return setDestMode(dest, srcMode)\n}\n\nfunction copyDir (src, dest, opts) {\n fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))\n}\n\nfunction copyDirItem (item, src, dest, opts) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n if (opts.filter && !opts.filter(srcItem, destItem)) return\n const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts)\n return getStats(destStat, srcItem, destItem, opts)\n}\n\nfunction onLink (destStat, src, dest, opts) {\n let resolvedSrc = fs.readlinkSync(src)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (!destStat) {\n return fs.symlinkSync(resolvedSrc, dest)\n } else {\n let resolvedDest\n try {\n resolvedDest = fs.readlinkSync(dest)\n } catch (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)\n throw err\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // prevent copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n return copyLink(resolvedSrc, dest)\n }\n}\n\nfunction copyLink (resolvedSrc, dest) {\n fs.unlinkSync(dest)\n return fs.symlinkSync(resolvedSrc, dest)\n}\n\nmodule.exports = copySync\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nmodule.exports = {\n copy: u(require('./copy')),\n copySync: require('./copy-sync')\n}\n", "'use strict'\n\nconst fs = require('graceful-fs')\nconst u = require('universalify').fromCallback\n\nfunction remove (path, callback) {\n fs.rm(path, { recursive: true, force: true }, callback)\n}\n\nfunction removeSync (path) {\n fs.rmSync(path, { recursive: true, force: true })\n}\n\nmodule.exports = {\n remove: u(remove),\n removeSync\n}\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst remove = require('../remove')\n\nconst emptyDir = u(async function emptyDir (dir) {\n let items\n try {\n items = await fs.readdir(dir)\n } catch {\n return mkdir.mkdirs(dir)\n }\n\n return Promise.all(items.map(item => remove.remove(path.join(dir, item))))\n})\n\nfunction emptyDirSync (dir) {\n let items\n try {\n items = fs.readdirSync(dir)\n } catch {\n return mkdir.mkdirsSync(dir)\n }\n\n items.forEach(item => {\n item = path.join(dir, item)\n remove.removeSync(item)\n })\n}\n\nmodule.exports = {\n emptyDirSync,\n emptydirSync: emptyDirSync,\n emptyDir,\n emptydir: emptyDir\n}\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\nconst mkdir = require('../mkdirs')\n\nasync function createFile (file) {\n let stats\n try {\n stats = await fs.stat(file)\n } catch { }\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n\n let dirStats = null\n try {\n dirStats = await fs.stat(dir)\n } catch (err) {\n // if the directory doesn't exist, make it\n if (err.code === 'ENOENT') {\n await mkdir.mkdirs(dir)\n await fs.writeFile(file, '')\n return\n } else {\n throw err\n }\n }\n\n if (dirStats.isDirectory()) {\n await fs.writeFile(file, '')\n } else {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n await fs.readdir(dir)\n }\n}\n\nfunction createFileSync (file) {\n let stats\n try {\n stats = fs.statSync(file)\n } catch { }\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n try {\n if (!fs.statSync(dir).isDirectory()) {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n fs.readdirSync(dir)\n }\n } catch (err) {\n // If the stat call above failed because the directory doesn't exist, create it\n if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir)\n else throw err\n }\n\n fs.writeFileSync(file, '')\n}\n\nmodule.exports = {\n createFile: u(createFile),\n createFileSync\n}\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\nconst mkdir = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst { areIdentical } = require('../util/stat')\n\nasync function createLink (srcpath, dstpath) {\n let dstStat\n try {\n dstStat = await fs.lstat(dstpath)\n } catch {\n // ignore error\n }\n\n let srcStat\n try {\n srcStat = await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n if (dstStat && areIdentical(srcStat, dstStat)) return\n\n const dir = path.dirname(dstpath)\n\n const dirExists = await pathExists(dir)\n\n if (!dirExists) {\n await mkdir.mkdirs(dir)\n }\n\n await fs.link(srcpath, dstpath)\n}\n\nfunction createLinkSync (srcpath, dstpath) {\n let dstStat\n try {\n dstStat = fs.lstatSync(dstpath)\n } catch {}\n\n try {\n const srcStat = fs.lstatSync(srcpath)\n if (dstStat && areIdentical(srcStat, dstStat)) return\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n const dir = path.dirname(dstpath)\n const dirExists = fs.existsSync(dir)\n if (dirExists) return fs.linkSync(srcpath, dstpath)\n mkdir.mkdirsSync(dir)\n\n return fs.linkSync(srcpath, dstpath)\n}\n\nmodule.exports = {\n createLink: u(createLink),\n createLinkSync\n}\n", "'use strict'\n\nconst path = require('path')\nconst fs = require('../fs')\nconst { pathExists } = require('../path-exists')\n\nconst u = require('universalify').fromPromise\n\n/**\n * Function that returns two types of paths, one relative to symlink, and one\n * relative to the current working directory. Checks if path is absolute or\n * relative. If the path is relative, this function checks if the path is\n * relative to symlink or relative to current working directory. This is an\n * initiative to find a smarter `srcpath` to supply when building symlinks.\n * This allows you to determine which path to use out of one of three possible\n * types of source paths. The first is an absolute path. This is detected by\n * `path.isAbsolute()`. When an absolute path is provided, it is checked to\n * see if it exists. If it does it's used, if not an error is returned\n * (callback)/ thrown (sync). The other two options for `srcpath` are a\n * relative url. By default Node's `fs.symlink` works by creating a symlink\n * using `dstpath` and expects the `srcpath` to be relative to the newly\n * created symlink. If you provide a `srcpath` that does not exist on the file\n * system it results in a broken symlink. To minimize this, the function\n * checks to see if the 'relative to symlink' source file exists, and if it\n * does it will use it. If it does not, it checks if there's a file that\n * exists that is relative to the current working directory, if does its used.\n * This preserves the expectations of the original fs.symlink spec and adds\n * the ability to pass in `relative to current working direcotry` paths.\n */\n\nasync function symlinkPaths (srcpath, dstpath) {\n if (path.isAbsolute(srcpath)) {\n try {\n await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n throw err\n }\n\n return {\n toCwd: srcpath,\n toDst: srcpath\n }\n }\n\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n\n const exists = await pathExists(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n }\n\n try {\n await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n throw err\n }\n\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n}\n\nfunction symlinkPathsSync (srcpath, dstpath) {\n if (path.isAbsolute(srcpath)) {\n const exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('absolute srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: srcpath\n }\n }\n\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n const exists = fs.existsSync(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n }\n\n const srcExists = fs.existsSync(srcpath)\n if (!srcExists) throw new Error('relative srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n}\n\nmodule.exports = {\n symlinkPaths: u(symlinkPaths),\n symlinkPathsSync\n}\n", "'use strict'\n\nconst fs = require('../fs')\nconst u = require('universalify').fromPromise\n\nasync function symlinkType (srcpath, type) {\n if (type) return type\n\n let stats\n try {\n stats = await fs.lstat(srcpath)\n } catch {\n return 'file'\n }\n\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nfunction symlinkTypeSync (srcpath, type) {\n if (type) return type\n\n let stats\n try {\n stats = fs.lstatSync(srcpath)\n } catch {\n return 'file'\n }\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nmodule.exports = {\n symlinkType: u(symlinkType),\n symlinkTypeSync\n}\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\n\nconst { mkdirs, mkdirsSync } = require('../mkdirs')\n\nconst { symlinkPaths, symlinkPathsSync } = require('./symlink-paths')\nconst { symlinkType, symlinkTypeSync } = require('./symlink-type')\n\nconst { pathExists } = require('../path-exists')\n\nconst { areIdentical } = require('../util/stat')\n\nasync function createSymlink (srcpath, dstpath, type) {\n let stats\n try {\n stats = await fs.lstat(dstpath)\n } catch { }\n\n if (stats && stats.isSymbolicLink()) {\n const [srcStat, dstStat] = await Promise.all([\n fs.stat(srcpath),\n fs.stat(dstpath)\n ])\n\n if (areIdentical(srcStat, dstStat)) return\n }\n\n const relative = await symlinkPaths(srcpath, dstpath)\n srcpath = relative.toDst\n const toType = await symlinkType(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n\n if (!(await pathExists(dir))) {\n await mkdirs(dir)\n }\n\n return fs.symlink(srcpath, dstpath, toType)\n}\n\nfunction createSymlinkSync (srcpath, dstpath, type) {\n let stats\n try {\n stats = fs.lstatSync(dstpath)\n } catch { }\n if (stats && stats.isSymbolicLink()) {\n const srcStat = fs.statSync(srcpath)\n const dstStat = fs.statSync(dstpath)\n if (areIdentical(srcStat, dstStat)) return\n }\n\n const relative = symlinkPathsSync(srcpath, dstpath)\n srcpath = relative.toDst\n type = symlinkTypeSync(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n const exists = fs.existsSync(dir)\n if (exists) return fs.symlinkSync(srcpath, dstpath, type)\n mkdirsSync(dir)\n return fs.symlinkSync(srcpath, dstpath, type)\n}\n\nmodule.exports = {\n createSymlink: u(createSymlink),\n createSymlinkSync\n}\n", "'use strict'\n\nconst { createFile, createFileSync } = require('./file')\nconst { createLink, createLinkSync } = require('./link')\nconst { createSymlink, createSymlinkSync } = require('./symlink')\n\nmodule.exports = {\n // file\n createFile,\n createFileSync,\n ensureFile: createFile,\n ensureFileSync: createFileSync,\n // link\n createLink,\n createLinkSync,\n ensureLink: createLink,\n ensureLinkSync: createLinkSync,\n // symlink\n createSymlink,\n createSymlinkSync,\n ensureSymlink: createSymlink,\n ensureSymlinkSync: createSymlinkSync\n}\n", "function stringify (obj, { EOL = '\\n', finalEOL = true, replacer = null, spaces } = {}) {\n const EOF = finalEOL ? EOL : ''\n const str = JSON.stringify(obj, replacer, spaces)\n\n return str.replace(/\\n/g, EOL) + EOF\n}\n\nfunction stripBom (content) {\n // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified\n if (Buffer.isBuffer(content)) content = content.toString('utf8')\n return content.replace(/^\\uFEFF/, '')\n}\n\nmodule.exports = { stringify, stripBom }\n", "let _fs\ntry {\n _fs = require('graceful-fs')\n} catch (_) {\n _fs = require('fs')\n}\nconst universalify = require('universalify')\nconst { stringify, stripBom } = require('./utils')\n\nasync function _readFile (file, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n const fs = options.fs || _fs\n\n const shouldThrow = 'throws' in options ? options.throws : true\n\n let data = await universalify.fromCallback(fs.readFile)(file, options)\n\n data = stripBom(data)\n\n let obj\n try {\n obj = JSON.parse(data, options ? options.reviver : null)\n } catch (err) {\n if (shouldThrow) {\n err.message = `${file}: ${err.message}`\n throw err\n } else {\n return null\n }\n }\n\n return obj\n}\n\nconst readFile = universalify.fromPromise(_readFile)\n\nfunction readFileSync (file, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n const fs = options.fs || _fs\n\n const shouldThrow = 'throws' in options ? options.throws : true\n\n try {\n let content = fs.readFileSync(file, options)\n content = stripBom(content)\n return JSON.parse(content, options.reviver)\n } catch (err) {\n if (shouldThrow) {\n err.message = `${file}: ${err.message}`\n throw err\n } else {\n return null\n }\n }\n}\n\nasync function _writeFile (file, obj, options = {}) {\n const fs = options.fs || _fs\n\n const str = stringify(obj, options)\n\n await universalify.fromCallback(fs.writeFile)(file, str, options)\n}\n\nconst writeFile = universalify.fromPromise(_writeFile)\n\nfunction writeFileSync (file, obj, options = {}) {\n const fs = options.fs || _fs\n\n const str = stringify(obj, options)\n // not sure if fs.writeFileSync returns anything, but just in case\n return fs.writeFileSync(file, str, options)\n}\n\nconst jsonfile = {\n readFile,\n readFileSync,\n writeFile,\n writeFileSync\n}\n\nmodule.exports = jsonfile\n", "'use strict'\n\nconst jsonFile = require('jsonfile')\n\nmodule.exports = {\n // jsonfile exports\n readJson: jsonFile.readFile,\n readJsonSync: jsonFile.readFileSync,\n writeJson: jsonFile.writeFile,\n writeJsonSync: jsonFile.writeFileSync\n}\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nasync function outputFile (file, data, encoding = 'utf-8') {\n const dir = path.dirname(file)\n\n if (!(await pathExists(dir))) {\n await mkdir.mkdirs(dir)\n }\n\n return fs.writeFile(file, data, encoding)\n}\n\nfunction outputFileSync (file, ...args) {\n const dir = path.dirname(file)\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n fs.writeFileSync(file, ...args)\n}\n\nmodule.exports = {\n outputFile: u(outputFile),\n outputFileSync\n}\n", "'use strict'\n\nconst { stringify } = require('jsonfile/utils')\nconst { outputFile } = require('../output-file')\n\nasync function outputJson (file, data, options = {}) {\n const str = stringify(data, options)\n\n await outputFile(file, str, options)\n}\n\nmodule.exports = outputJson\n", "'use strict'\n\nconst { stringify } = require('jsonfile/utils')\nconst { outputFileSync } = require('../output-file')\n\nfunction outputJsonSync (file, data, options) {\n const str = stringify(data, options)\n\n outputFileSync(file, str, options)\n}\n\nmodule.exports = outputJsonSync\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nconst jsonFile = require('./jsonfile')\n\njsonFile.outputJson = u(require('./output-json'))\njsonFile.outputJsonSync = require('./output-json-sync')\n// aliases\njsonFile.outputJSON = jsonFile.outputJson\njsonFile.outputJSONSync = jsonFile.outputJsonSync\njsonFile.writeJSON = jsonFile.writeJson\njsonFile.writeJSONSync = jsonFile.writeJsonSync\njsonFile.readJSON = jsonFile.readJson\njsonFile.readJSONSync = jsonFile.readJsonSync\n\nmodule.exports = jsonFile\n", "'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst { copy } = require('../copy')\nconst { remove } = require('../remove')\nconst { mkdirp } = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst stat = require('../util/stat')\n\nasync function move (src, dest, opts = {}) {\n const overwrite = opts.overwrite || opts.clobber || false\n\n const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, 'move', opts)\n\n await stat.checkParentPaths(src, srcStat, dest, 'move')\n\n // If the parent of dest is not root, make sure it exists before proceeding\n const destParent = path.dirname(dest)\n const parsedParentPath = path.parse(destParent)\n if (parsedParentPath.root !== destParent) {\n await mkdirp(destParent)\n }\n\n return doRename(src, dest, overwrite, isChangingCase)\n}\n\nasync function doRename (src, dest, overwrite, isChangingCase) {\n if (!isChangingCase) {\n if (overwrite) {\n await remove(dest)\n } else if (await pathExists(dest)) {\n throw new Error('dest already exists.')\n }\n }\n\n try {\n // Try w/ rename first, and try copy + remove if EXDEV\n await fs.rename(src, dest)\n } catch (err) {\n if (err.code !== 'EXDEV') {\n throw err\n }\n await moveAcrossDevice(src, dest, overwrite)\n }\n}\n\nasync function moveAcrossDevice (src, dest, overwrite) {\n const opts = {\n overwrite,\n errorOnExist: true,\n preserveTimestamps: true\n }\n\n await copy(src, dest, opts)\n return remove(src)\n}\n\nmodule.exports = move\n", "'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copySync = require('../copy').copySync\nconst removeSync = require('../remove').removeSync\nconst mkdirpSync = require('../mkdirs').mkdirpSync\nconst stat = require('../util/stat')\n\nfunction moveSync (src, dest, opts) {\n opts = opts || {}\n const overwrite = opts.overwrite || opts.clobber || false\n\n const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, 'move', opts)\n stat.checkParentPathsSync(src, srcStat, dest, 'move')\n if (!isParentRoot(dest)) mkdirpSync(path.dirname(dest))\n return doRename(src, dest, overwrite, isChangingCase)\n}\n\nfunction isParentRoot (dest) {\n const parent = path.dirname(dest)\n const parsedPath = path.parse(parent)\n return parsedPath.root === parent\n}\n\nfunction doRename (src, dest, overwrite, isChangingCase) {\n if (isChangingCase) return rename(src, dest, overwrite)\n if (overwrite) {\n removeSync(dest)\n return rename(src, dest, overwrite)\n }\n if (fs.existsSync(dest)) throw new Error('dest already exists.')\n return rename(src, dest, overwrite)\n}\n\nfunction rename (src, dest, overwrite) {\n try {\n fs.renameSync(src, dest)\n } catch (err) {\n if (err.code !== 'EXDEV') throw err\n return moveAcrossDevice(src, dest, overwrite)\n }\n}\n\nfunction moveAcrossDevice (src, dest, overwrite) {\n const opts = {\n overwrite,\n errorOnExist: true,\n preserveTimestamps: true\n }\n copySync(src, dest, opts)\n return removeSync(src)\n}\n\nmodule.exports = moveSync\n", "'use strict'\n\nconst u = require('universalify').fromPromise\nmodule.exports = {\n move: u(require('./move')),\n moveSync: require('./move-sync')\n}\n", "'use strict'\n\nmodule.exports = {\n // Export promiseified graceful-fs:\n ...require('./fs'),\n // Export extra methods:\n ...require('./copy'),\n ...require('./empty'),\n ...require('./ensure'),\n ...require('./json'),\n ...require('./mkdirs'),\n ...require('./move'),\n ...require('./output-file'),\n ...require('./path-exists'),\n ...require('./remove')\n}\n", "// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// Same as in non-secure/index.js\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nmodule.exports = { urlAlphabet }\n", "let crypto = require('crypto')\n\nlet { urlAlphabet } = require('./url-alphabet/index.cjs')\n\n// It is best to make fewer, larger requests to the crypto module to\n// avoid system call overhead. So, random numbers are generated in a\n// pool. The pool is a Buffer that is larger than the initial random\n// request size by this multiplier. The pool is enlarged if subsequent\n// requests exceed the maximum buffer size.\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\n\nlet fillPool = bytes => {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.randomFillSync(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.randomFillSync(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\n\nlet random = bytes => {\n // `|=` convert `bytes` to number to prevent `valueOf` abusing and pool pollution\n fillPool((bytes |= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\n\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n // First, a bitmask is necessary to generate the ID. The bitmask makes bytes\n // values closer to the alphabet size. The bitmask calculates the closest\n // `2^31 - 1` number, which exceeds the alphabet size.\n // For example, the bitmask for the alphabet size 30 is 31 (00011111).\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n // Though, the bitmask solution is not perfect since the bytes exceeding\n // the alphabet size are refused. Therefore, to reliably generate the ID,\n // the random bytes redundancy has to be satisfied.\n\n // Note: every hardware random generator call is performance expensive,\n // because the system call for entropy collection takes a lot of time.\n // So, to avoid additional system calls, extra bytes are requested in advance.\n\n // Next, a step determines how many random bytes to generate.\n // The number of random bytes gets decided upon the ID size, mask,\n // alphabet size, and magic number 1.6 (using 1.6 peaks at performance\n // according to benchmarks).\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n // A compact alternative for `for (let i = 0; i < step; i++)`.\n let i = step\n while (i--) {\n // Adding `|| ''` refuses a random byte that exceeds the alphabet size.\n id += alphabet[bytes[i] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\n\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\n\nlet nanoid = (size = 21) => {\n // `|=` convert `size` to number to prevent `valueOf` abusing and pool pollution\n fillPool((size |= 0))\n let id = ''\n // We are reading directly from the random pool to avoid creating new array\n for (let i = poolOffset - size; i < poolOffset; i++) {\n // It is incorrect to use bytes exceeding the alphabet size.\n // The following mask reduces the random byte in the 0-255 value\n // range to the 0-63 value range. Therefore, adding hacks, such\n // as empty string fallback or magic numbers, is unneccessary because\n // the bitmask trims bytes down to the alphabet size.\n id += urlAlphabet[pool[i] & 63]\n }\n return id\n}\n\nmodule.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n", "/**\n* upath http://github.com/anodynos/upath/\n*\n* A proxy to `path`, replacing `\\` with `/` for all results (supports UNC paths) & new methods to normalize & join keeping leading `./` and add, change, default, trim file extensions.\n* Version 2.0.1 - Compiled on 2020-11-07 16:59:47\n* Repository git://github.com/anodynos/upath\n* Copyright(c) 2020 Angelos Pikoulas \n* License MIT\n*/\n\n// Generated by uRequire v0.7.0-beta.33 target: 'lib' template: 'nodejs'\n\n\nvar VERSION = '2.0.1'; // injected by urequire-rc-inject-version\n\nvar extraFn, extraFunctions, isFunction, isString, isValidExt, name, path, propName, propValue, toUnix, upath, slice = [].slice, indexOf = [].indexOf || function (item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (i in this && this[i] === item)\n return i;\n }\n return -1;\n }, hasProp = {}.hasOwnProperty;\npath = require(\"path\");\nisFunction = function (val) {\n return typeof val === \"function\";\n};\nisString = function (val) {\n return typeof val === \"string\" || !!val && typeof val === \"object\" && Object.prototype.toString.call(val) === \"[object String]\";\n};\nupath = exports;\nupath.VERSION = typeof VERSION !== \"undefined\" && VERSION !== null ? VERSION : \"NO-VERSION\";\ntoUnix = function (p) {\n p = p.replace(/\\\\/g, \"/\");\n p = p.replace(/(? 0) {\n p0 = toUnix(p[0]);\n if (p0.startsWith(\"./\") && !result.startsWith(\"./\") && !result.startsWith(\"..\")) {\n result = \"./\" + result;\n } else if (p0.startsWith(\"//\") && !result.startsWith(\"//\")) {\n if (p0.startsWith(\"//./\")) {\n result = \"//.\" + result;\n } else {\n result = \"/\" + result;\n }\n }\n }\n return result;\n },\n addExt: function (file, ext) {\n if (!ext) {\n return file;\n } else {\n if (ext[0] !== \".\") {\n ext = \".\" + ext;\n }\n return file + (file.endsWith(ext) ? \"\" : ext);\n }\n },\n trimExt: function (filename, ignoreExts, maxSize) {\n var oldExt;\n if (maxSize == null) {\n maxSize = 7;\n }\n oldExt = upath.extname(filename);\n if (isValidExt(oldExt, ignoreExts, maxSize)) {\n return filename.slice(0, +(filename.length - oldExt.length - 1) + 1 || 9000000000);\n } else {\n return filename;\n }\n },\n removeExt: function (filename, ext) {\n if (!ext) {\n return filename;\n } else {\n ext = ext[0] === \".\" ? ext : \".\" + ext;\n if (upath.extname(filename) === ext) {\n return upath.trimExt(filename, [], ext.length);\n } else {\n return filename;\n }\n }\n },\n changeExt: function (filename, ext, ignoreExts, maxSize) {\n if (maxSize == null) {\n maxSize = 7;\n }\n return upath.trimExt(filename, ignoreExts, maxSize) + (!ext ? \"\" : ext[0] === \".\" ? ext : \".\" + ext);\n },\n defaultExt: function (filename, ext, ignoreExts, maxSize) {\n var oldExt;\n if (maxSize == null) {\n maxSize = 7;\n }\n oldExt = upath.extname(filename);\n if (isValidExt(oldExt, ignoreExts, maxSize)) {\n return filename;\n } else {\n return upath.addExt(filename, ext);\n }\n }\n};\nisValidExt = function (ext, ignoreExts, maxSize) {\n if (ignoreExts == null) {\n ignoreExts = [];\n }\n return ext && ext.length <= maxSize && indexOf.call(ignoreExts.map(function (e) {\n return (e && e[0] !== \".\" ? \".\" : \"\") + e;\n }), ext) < 0;\n};\nfor (name in extraFunctions) {\n if (!hasProp.call(extraFunctions, name))\n continue;\n extraFn = extraFunctions[name];\n if (upath[name] !== void 0) {\n throw new Error(\"path.\" + name + \" already exists.\");\n } else {\n upath[name] = extraFn;\n }\n}\n\n;", "// istanbul ignore next\nexport default function cmdSerializer(\n cmd: string | string[],\n): string | string[] {\n if (typeof cmd === 'string') {\n return cmd.replace(/https:\\/\\/[^@]*@/g, 'https://**redacted**@'); // TODO #12874\n }\n return cmd;\n}\n", "\"use strict\";\nfunction _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __typeError = function(msg) {\n throw TypeError(msg);\n};\nvar __export = function(target, all) {\n for(var name in all)__defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n};\nvar __copyProps = function(to, from, except, desc) {\n if (from && (typeof from === \"undefined\" ? \"undefined\" : _type_of(from)) === \"object\" || typeof from === \"function\") {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n var _loop = function() {\n var key = _step.value;\n if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: function() {\n return from[key];\n },\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n };\n for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return to;\n};\nvar __toCommonJS = function(mod) {\n return __copyProps(__defProp({}, \"__esModule\", {\n value: true\n }), mod);\n};\nvar __accessCheck = function(obj, member, msg) {\n return member.has(obj) || __typeError(\"Cannot \" + msg);\n};\nvar __privateGet = function(obj, member, getter) {\n return __accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = function(obj, member, value) {\n return member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : _instanceof(member, WeakSet) ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = function(obj, member, value, setter) {\n return __accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value;\n};\n// src/legacy.cts\nvar legacy_exports = {};\n__export(legacy_exports, {\n default: function() {\n return src_default;\n }\n});\nmodule.exports = __toCommonJS(legacy_exports);\n// src/index.ts\nvar to_string = function(obj) {\n return Object.prototype.toString.call(obj);\n};\nvar is_typed_array = function(value) {\n return ArrayBuffer.isView(value) && !_instanceof(value, DataView);\n};\nvar is_date = function(obj) {\n return to_string(obj) === \"[object Date]\";\n};\nvar is_regexp = function(obj) {\n return to_string(obj) === \"[object RegExp]\";\n};\nvar is_error = function(obj) {\n return to_string(obj) === \"[object Error]\";\n};\nvar is_boolean = function(obj) {\n return to_string(obj) === \"[object Boolean]\";\n};\nvar is_number = function(obj) {\n return to_string(obj) === \"[object Number]\";\n};\nvar is_string = function(obj) {\n return to_string(obj) === \"[object String]\";\n};\nvar is_array = Array.isArray;\nvar gopd = Object.getOwnPropertyDescriptor;\nvar is_property_enumerable = Object.prototype.propertyIsEnumerable;\nvar get_own_property_symbols = Object.getOwnPropertySymbols;\nvar has_own_property = Object.prototype.hasOwnProperty;\nfunction own_enumerable_keys(obj) {\n var res = Object.keys(obj);\n var symbols = get_own_property_symbols(obj);\n for(var i = 0; i < symbols.length; i++){\n if (is_property_enumerable.call(obj, symbols[i])) {\n res.push(symbols[i]);\n }\n }\n return res;\n}\nfunction is_writable(object, key) {\n var _gopd;\n return !((_gopd = gopd(object, key)) === null || _gopd === void 0 ? void 0 : _gopd.writable);\n}\nfunction copy(src, options) {\n if ((typeof src === \"undefined\" ? \"undefined\" : _type_of(src)) === \"object\" && src !== null) {\n var dst;\n if (is_array(src)) {\n dst = [];\n } else if (is_date(src)) {\n dst = new Date(src.getTime ? src.getTime() : src);\n } else if (is_regexp(src)) {\n dst = new RegExp(src);\n } else if (is_error(src)) {\n dst = {\n message: src.message\n };\n } else if (is_boolean(src) || is_number(src) || is_string(src)) {\n dst = Object(src);\n } else if (is_typed_array(src)) {\n return src.slice();\n } else {\n dst = Object.create(Object.getPrototypeOf(src));\n }\n var iterator_function = options.includeSymbols ? own_enumerable_keys : Object.keys;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = iterator_function(src)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var key = _step.value;\n dst[key] = src[key];\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return dst;\n }\n return src;\n}\nvar empty_null = {\n includeSymbols: false,\n immutable: false\n};\nfunction walk(root, cb) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : empty_null;\n var path = [];\n var parents = [];\n var alive = true;\n var iterator_function = options.includeSymbols ? own_enumerable_keys : Object.keys;\n var immutable = !!options.immutable;\n return function walker(node_) {\n var node = immutable ? copy(node_, options) : node_;\n var modifiers = {};\n var keep_going = true;\n var state = {\n node: node,\n node_: node_,\n path: [].concat(path),\n parent: parents[parents.length - 1],\n parents: parents,\n key: path[path.length - 1],\n isRoot: path.length === 0,\n level: path.length,\n circular: void 0,\n isLeaf: false,\n notLeaf: true,\n notRoot: true,\n isFirst: false,\n isLast: false,\n update: function update(x) {\n var stopHere = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n if (!state.isRoot) {\n state.parent.node[state.key] = x;\n }\n state.node = x;\n if (stopHere) {\n keep_going = false;\n }\n },\n delete: function _delete(stopHere) {\n delete state.parent.node[state.key];\n if (stopHere) {\n keep_going = false;\n }\n },\n remove: function remove(stopHere) {\n if (is_array(state.parent.node)) {\n state.parent.node.splice(state.key, 1);\n } else {\n delete state.parent.node[state.key];\n }\n if (stopHere) {\n keep_going = false;\n }\n },\n keys: null,\n before: function before(f) {\n modifiers.before = f;\n },\n after: function after(f) {\n modifiers.after = f;\n },\n pre: function pre(f) {\n modifiers.pre = f;\n },\n post: function post(f) {\n modifiers.post = f;\n },\n stop: function stop() {\n alive = false;\n },\n block: function block() {\n keep_going = false;\n }\n };\n if (!alive) {\n return state;\n }\n function update_state() {\n if (_type_of(state.node) === \"object\" && state.node !== null) {\n if (!state.keys || state.node_ !== state.node) {\n state.keys = iterator_function(state.node);\n }\n state.isLeaf = state.keys.length === 0;\n for(var i = 0; i < parents.length; i++){\n if (parents[i].node_ === node_) {\n state.circular = parents[i];\n break;\n }\n }\n } else {\n state.isLeaf = true;\n state.keys = null;\n }\n state.notLeaf = !state.isLeaf;\n state.notRoot = !state.isRoot;\n }\n update_state();\n var ret = cb.call(state, state.node);\n if (ret !== void 0 && state.update) {\n state.update(ret);\n }\n if (modifiers.before) {\n modifiers.before.call(state, state.node);\n }\n if (!keep_going) {\n return state;\n }\n if (_type_of(state.node) === \"object\" && state.node !== null && !state.circular) {\n parents.push(state);\n update_state();\n var _state_keys;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.entries((_state_keys = state.keys) !== null && _state_keys !== void 0 ? _state_keys : [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _step_value = _sliced_to_array(_step.value, 2), index = _step_value[0], key = _step_value[1];\n var _state_keys1;\n path.push(key);\n if (modifiers.pre) {\n modifiers.pre.call(state, state.node[key], key);\n }\n var child = walker(state.node[key]);\n if (immutable && has_own_property.call(state.node, key) && !is_writable(state.node, key)) {\n state.node[key] = child.node;\n }\n child.isLast = ((_state_keys1 = state.keys) === null || _state_keys1 === void 0 ? void 0 : _state_keys1.length) ? +index === state.keys.length - 1 : false;\n child.isFirst = +index === 0;\n if (modifiers.post) {\n modifiers.post.call(state, child);\n }\n path.pop();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n parents.pop();\n }\n if (modifiers.after) {\n modifiers.after.call(state, state.node);\n }\n return state;\n }(root).node;\n}\nvar _value, _options;\nvar Traverse = /*#__PURE__*/ function() {\n function Traverse(obj) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : empty_null;\n _class_call_check(this, Traverse);\n // ! Have to keep these public as legacy mode requires them\n __privateAdd(this, _value);\n __privateAdd(this, _options);\n __privateSet(this, _value, obj);\n __privateSet(this, _options, options);\n }\n _create_class(Traverse, [\n {\n /**\n * Get the element at the array `path`.\n */ key: \"get\",\n value: function get(paths) {\n var node = __privateGet(this, _value);\n for(var i = 0; node && i < paths.length; i++){\n var key = paths[i];\n if (!has_own_property.call(node, key) || !__privateGet(this, _options).includeSymbols && (typeof key === \"undefined\" ? \"undefined\" : _type_of(key)) === \"symbol\") {\n return void 0;\n }\n node = node[key];\n }\n return node;\n }\n },\n {\n /**\n * Return whether the element at the array `path` exists.\n */ key: \"has\",\n value: function has(paths) {\n var node = __privateGet(this, _value);\n for(var i = 0; node && i < paths.length; i++){\n var key = paths[i];\n if (!has_own_property.call(node, key) || !__privateGet(this, _options).includeSymbols && (typeof key === \"undefined\" ? \"undefined\" : _type_of(key)) === \"symbol\") {\n return false;\n }\n node = node[key];\n }\n return true;\n }\n },\n {\n /**\n * Set the element at the array `path` to `value`.\n */ key: \"set\",\n value: function set(path, value) {\n var node = __privateGet(this, _value);\n var i = 0;\n for(i = 0; i < path.length - 1; i++){\n var key = path[i];\n if (!has_own_property.call(node, key)) {\n node[key] = {};\n }\n node = node[key];\n }\n node[path[i]] = value;\n return value;\n }\n },\n {\n /**\n * Execute `fn` for each node in the object and return a new object with the results of the walk. To update nodes in the result use `this.update(value)`.\n */ key: \"map\",\n value: function map(cb) {\n return walk(__privateGet(this, _value), cb, {\n immutable: true,\n includeSymbols: !!__privateGet(this, _options).includeSymbols\n });\n }\n },\n {\n /**\n * Execute `fn` for each node in the object but unlike `.map()`, when `this.update()` is called it updates the object in-place.\n */ key: \"forEach\",\n value: function forEach(cb) {\n __privateSet(this, _value, walk(__privateGet(this, _value), cb, __privateGet(this, _options)));\n return __privateGet(this, _value);\n }\n },\n {\n /**\n * For each node in the object, perform a [left-fold](http://en.wikipedia.org/wiki/Fold_(higher-order_function)) with the return value of `fn(acc, node)`.\n *\n * If `init` isn't specified, `init` is set to the root object for the first step and the root element is skipped.\n */ key: \"reduce\",\n value: function reduce(cb, init) {\n var skip = arguments.length === 1;\n var acc = skip ? __privateGet(this, _value) : init;\n this.forEach(function(x) {\n if (!this.isRoot || !skip) {\n acc = cb.call(this, acc, x);\n }\n });\n return acc;\n }\n },\n {\n /**\n * Return an `Array` of every possible non-cyclic path in the object.\n * Paths are `Array`s of string keys.\n */ key: \"paths\",\n value: function paths() {\n var acc = [];\n this.forEach(function() {\n acc.push(this.path);\n });\n return acc;\n }\n },\n {\n /**\n * Return an `Array` of every node in the object.\n */ key: \"nodes\",\n value: function nodes() {\n var acc = [];\n this.forEach(function() {\n acc.push(this.node);\n });\n return acc;\n }\n },\n {\n /**\n * Create a deep clone of the object.\n */ key: \"clone\",\n value: function clone() {\n var parents = [];\n var nodes = [];\n var options = __privateGet(this, _options);\n if (is_typed_array(__privateGet(this, _value))) {\n return __privateGet(this, _value).slice();\n }\n return function clone(src) {\n for(var i = 0; i < parents.length; i++){\n if (parents[i] === src) {\n return nodes[i];\n }\n }\n if ((typeof src === \"undefined\" ? \"undefined\" : _type_of(src)) === \"object\" && src !== null) {\n var dst = copy(src, options);\n parents.push(src);\n nodes.push(dst);\n var iteratorFunction = options.includeSymbols ? own_enumerable_keys : Object.keys;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = iteratorFunction(src)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var key = _step.value;\n dst[key] = clone(src[key]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n parents.pop();\n nodes.pop();\n return dst;\n }\n return src;\n }(__privateGet(this, _value));\n }\n }\n ]);\n return Traverse;\n}();\n_value = new WeakMap();\n_options = new WeakMap();\nvar traverse = function(obj, options) {\n return new Traverse(obj, options);\n};\ntraverse.get = function(obj, paths, options) {\n return new Traverse(obj, options).get(paths);\n};\ntraverse.set = function(obj, path, value, options) {\n return new Traverse(obj, options).set(path, value);\n};\ntraverse.has = function(obj, paths, options) {\n return new Traverse(obj, options).has(paths);\n};\ntraverse.map = function(obj, cb, options) {\n return new Traverse(obj, options).map(cb);\n};\ntraverse.forEach = function(obj, cb, options) {\n return new Traverse(obj, options).forEach(cb);\n};\ntraverse.reduce = function(obj, cb, init, options) {\n return new Traverse(obj, options).reduce(cb, init);\n};\ntraverse.paths = function(obj, options) {\n return new Traverse(obj, options).paths();\n};\ntraverse.nodes = function(obj, options) {\n return new Traverse(obj, options).nodes();\n};\ntraverse.clone = function(obj, options) {\n return new Traverse(obj, options).clone();\n};\nvar src_default = traverse;\n// src/legacy.cts\nmodule.exports = src_default;\n", "import traverse from 'neotraverse/legacy';\nimport type { RenovateConfig } from '../config/types';\n\nexport default function configSerializer(\n config: RenovateConfig,\n): RenovateConfig {\n const templateFields = ['prBody'];\n const contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n ];\n const arrayFields = ['packageFiles', 'upgrades'];\n\n return traverse(config).map(function scrub(val: string) {\n if (this.key && val) {\n const key = this.key.toString();\n if (templateFields.includes(key)) {\n this.update('[Template]');\n }\n if (contentFields.includes(key)) {\n this.update('[content]');\n }\n // istanbul ignore if\n if (arrayFields.includes(key)) {\n this.update('[Array]');\n }\n }\n });\n}\n", "'use strict';\n\nclass CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nclass PCancelable {\n\tstatic fn(userFn) {\n\t\treturn (...arguments_) => {\n\t\t\treturn new PCancelable((resolve, reject, onCancel) => {\n\t\t\t\targuments_.push(onCancel);\n\t\t\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\t\t\tuserFn(...arguments_).then(resolve, reject);\n\t\t\t});\n\t\t};\n\t}\n\n\tconstructor(executor) {\n\t\tthis._cancelHandlers = [];\n\t\tthis._isPending = true;\n\t\tthis._isCanceled = false;\n\t\tthis._rejectOnCancel = true;\n\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (!this._isCanceled || !onCancel.shouldReject) {\n\t\t\t\t\tthis._isPending = false;\n\t\t\t\t\tresolve(value);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tthis._isPending = false;\n\t\t\t\treject(error);\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (!this._isPending) {\n\t\t\t\t\tthrow new Error('The `onCancel` handler was attached after the promise settled.');\n\t\t\t\t}\n\n\t\t\t\tthis._cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this._rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis._rejectOnCancel = boolean;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\tthen(onFulfilled, onRejected) {\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (!this._isPending || this._isCanceled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isCanceled = true;\n\n\t\tif (this._cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this._cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis._reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._rejectOnCancel) {\n\t\t\tthis._reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this._isCanceled;\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n\nmodule.exports = PCancelable;\nmodule.exports.CancelError = CancelError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isTLSSocket(socket) {\n return socket.encrypted;\n}\nconst deferToConnect = (socket, fn) => {\n let listeners;\n if (typeof fn === 'function') {\n const connect = fn;\n listeners = { connect };\n }\n else {\n listeners = fn;\n }\n const hasConnectListener = typeof listeners.connect === 'function';\n const hasSecureConnectListener = typeof listeners.secureConnect === 'function';\n const hasCloseListener = typeof listeners.close === 'function';\n const onConnect = () => {\n if (hasConnectListener) {\n listeners.connect();\n }\n if (isTLSSocket(socket) && hasSecureConnectListener) {\n if (socket.authorized) {\n listeners.secureConnect();\n }\n else if (!socket.authorizationError) {\n socket.once('secureConnect', listeners.secureConnect);\n }\n }\n if (hasCloseListener) {\n socket.once('close', listeners.close);\n }\n };\n if (socket.writable && !socket.connecting) {\n onConnect();\n }\n else if (socket.connecting) {\n socket.once('connect', onConnect);\n }\n else if (socket.destroyed && hasCloseListener) {\n listeners.close(socket._hadError);\n }\n};\nexports.default = deferToConnect;\n// For CommonJS default export support\nmodule.exports = deferToConnect;\nmodule.exports.default = deferToConnect;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst defer_to_connect_1 = require(\"defer-to-connect\");\nconst util_1 = require(\"util\");\nconst nodejsMajorVersion = Number(process.versions.node.split('.')[0]);\nconst timer = (request) => {\n if (request.timings) {\n return request.timings;\n }\n const timings = {\n start: Date.now(),\n socket: undefined,\n lookup: undefined,\n connect: undefined,\n secureConnect: undefined,\n upload: undefined,\n response: undefined,\n end: undefined,\n error: undefined,\n abort: undefined,\n phases: {\n wait: undefined,\n dns: undefined,\n tcp: undefined,\n tls: undefined,\n request: undefined,\n firstByte: undefined,\n download: undefined,\n total: undefined\n }\n };\n request.timings = timings;\n const handleError = (origin) => {\n const emit = origin.emit.bind(origin);\n origin.emit = (event, ...args) => {\n // Catches the `error` event\n if (event === 'error') {\n timings.error = Date.now();\n timings.phases.total = timings.error - timings.start;\n origin.emit = emit;\n }\n // Saves the original behavior\n return emit(event, ...args);\n };\n };\n handleError(request);\n const onAbort = () => {\n timings.abort = Date.now();\n // Let the `end` response event be responsible for setting the total phase,\n // unless the Node.js major version is >= 13.\n if (!timings.response || nodejsMajorVersion >= 13) {\n timings.phases.total = Date.now() - timings.start;\n }\n };\n request.prependOnceListener('abort', onAbort);\n const onSocket = (socket) => {\n timings.socket = Date.now();\n timings.phases.wait = timings.socket - timings.start;\n if (util_1.types.isProxy(socket)) {\n return;\n }\n const lookupListener = () => {\n timings.lookup = Date.now();\n timings.phases.dns = timings.lookup - timings.socket;\n };\n socket.prependOnceListener('lookup', lookupListener);\n defer_to_connect_1.default(socket, {\n connect: () => {\n timings.connect = Date.now();\n if (timings.lookup === undefined) {\n socket.removeListener('lookup', lookupListener);\n timings.lookup = timings.connect;\n timings.phases.dns = timings.lookup - timings.socket;\n }\n timings.phases.tcp = timings.connect - timings.lookup;\n // This callback is called before flushing any data,\n // so we don't need to set `timings.phases.request` here.\n },\n secureConnect: () => {\n timings.secureConnect = Date.now();\n timings.phases.tls = timings.secureConnect - timings.connect;\n }\n });\n };\n if (request.socket) {\n onSocket(request.socket);\n }\n else {\n request.prependOnceListener('socket', onSocket);\n }\n const onUpload = () => {\n var _a;\n timings.upload = Date.now();\n timings.phases.request = timings.upload - ((_a = timings.secureConnect) !== null && _a !== void 0 ? _a : timings.connect);\n };\n const writableFinished = () => {\n if (typeof request.writableFinished === 'boolean') {\n return request.writableFinished;\n }\n // Node.js doesn't have `request.writableFinished` property\n return request.finished && request.outputSize === 0 && (!request.socket || request.socket.writableLength === 0);\n };\n if (writableFinished()) {\n onUpload();\n }\n else {\n request.prependOnceListener('finish', onUpload);\n }\n request.prependOnceListener('response', (response) => {\n timings.response = Date.now();\n timings.phases.firstByte = timings.response - timings.upload;\n response.timings = timings;\n handleError(response);\n response.prependOnceListener('end', () => {\n timings.end = Date.now();\n timings.phases.download = timings.end - timings.response;\n timings.phases.total = timings.end - timings.start;\n });\n response.prependOnceListener('aborted', onAbort);\n });\n return timings;\n};\nexports.default = timer;\n// For CommonJS default export support\nmodule.exports = timer;\nmodule.exports.default = timer;\n", "'use strict';\nconst {\n\tV4MAPPED,\n\tADDRCONFIG,\n\tALL,\n\tpromises: {\n\t\tResolver: AsyncResolver\n\t},\n\tlookup: dnsLookup\n} = require('dns');\nconst {promisify} = require('util');\nconst os = require('os');\n\nconst kCacheableLookupCreateConnection = Symbol('cacheableLookupCreateConnection');\nconst kCacheableLookupInstance = Symbol('cacheableLookupInstance');\nconst kExpires = Symbol('expires');\n\nconst supportsALL = typeof ALL === 'number';\n\nconst verifyAgent = agent => {\n\tif (!(agent && typeof agent.createConnection === 'function')) {\n\t\tthrow new Error('Expected an Agent instance as the first argument');\n\t}\n};\n\nconst map4to6 = entries => {\n\tfor (const entry of entries) {\n\t\tif (entry.family === 6) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tentry.address = `::ffff:${entry.address}`;\n\t\tentry.family = 6;\n\t}\n};\n\nconst getIfaceInfo = () => {\n\tlet has4 = false;\n\tlet has6 = false;\n\n\tfor (const device of Object.values(os.networkInterfaces())) {\n\t\tfor (const iface of device) {\n\t\t\tif (iface.internal) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (iface.family === 'IPv6') {\n\t\t\t\thas6 = true;\n\t\t\t} else {\n\t\t\t\thas4 = true;\n\t\t\t}\n\n\t\t\tif (has4 && has6) {\n\t\t\t\treturn {has4, has6};\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {has4, has6};\n};\n\nconst isIterable = map => {\n\treturn Symbol.iterator in map;\n};\n\nconst ttl = {ttl: true};\nconst all = {all: true};\n\nclass CacheableLookup {\n\tconstructor({\n\t\tcache = new Map(),\n\t\tmaxTtl = Infinity,\n\t\tfallbackDuration = 3600,\n\t\terrorTtl = 0.15,\n\t\tresolver = new AsyncResolver(),\n\t\tlookup = dnsLookup\n\t} = {}) {\n\t\tthis.maxTtl = maxTtl;\n\t\tthis.errorTtl = errorTtl;\n\n\t\tthis._cache = cache;\n\t\tthis._resolver = resolver;\n\t\tthis._dnsLookup = promisify(lookup);\n\n\t\tif (this._resolver instanceof AsyncResolver) {\n\t\t\tthis._resolve4 = this._resolver.resolve4.bind(this._resolver);\n\t\t\tthis._resolve6 = this._resolver.resolve6.bind(this._resolver);\n\t\t} else {\n\t\t\tthis._resolve4 = promisify(this._resolver.resolve4.bind(this._resolver));\n\t\t\tthis._resolve6 = promisify(this._resolver.resolve6.bind(this._resolver));\n\t\t}\n\n\t\tthis._iface = getIfaceInfo();\n\n\t\tthis._pending = {};\n\t\tthis._nextRemovalTime = false;\n\t\tthis._hostnamesToFallback = new Set();\n\n\t\tif (fallbackDuration < 1) {\n\t\t\tthis._fallback = false;\n\t\t} else {\n\t\t\tthis._fallback = true;\n\n\t\t\tconst interval = setInterval(() => {\n\t\t\t\tthis._hostnamesToFallback.clear();\n\t\t\t}, fallbackDuration * 1000);\n\n\t\t\t/* istanbul ignore next: There is no `interval.unref()` when running inside an Electron renderer */\n\t\t\tif (interval.unref) {\n\t\t\t\tinterval.unref();\n\t\t\t}\n\t\t}\n\n\t\tthis.lookup = this.lookup.bind(this);\n\t\tthis.lookupAsync = this.lookupAsync.bind(this);\n\t}\n\n\tset servers(servers) {\n\t\tthis.clear();\n\n\t\tthis._resolver.setServers(servers);\n\t}\n\n\tget servers() {\n\t\treturn this._resolver.getServers();\n\t}\n\n\tlookup(hostname, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t} else if (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\tfamily: options\n\t\t\t};\n\t\t}\n\n\t\tif (!callback) {\n\t\t\tthrow new Error('Callback must be a function.');\n\t\t}\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\tthis.lookupAsync(hostname, options).then(result => {\n\t\t\tif (options.all) {\n\t\t\t\tcallback(null, result);\n\t\t\t} else {\n\t\t\t\tcallback(null, result.address, result.family, result.expires, result.ttl);\n\t\t\t}\n\t\t}, callback);\n\t}\n\n\tasync lookupAsync(hostname, options = {}) {\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\tfamily: options\n\t\t\t};\n\t\t}\n\n\t\tlet cached = await this.query(hostname);\n\n\t\tif (options.family === 6) {\n\t\t\tconst filtered = cached.filter(entry => entry.family === 6);\n\n\t\t\tif (options.hints & V4MAPPED) {\n\t\t\t\tif ((supportsALL && options.hints & ALL) || filtered.length === 0) {\n\t\t\t\t\tmap4to6(cached);\n\t\t\t\t} else {\n\t\t\t\t\tcached = filtered;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcached = filtered;\n\t\t\t}\n\t\t} else if (options.family === 4) {\n\t\t\tcached = cached.filter(entry => entry.family === 4);\n\t\t}\n\n\t\tif (options.hints & ADDRCONFIG) {\n\t\t\tconst {_iface} = this;\n\t\t\tcached = cached.filter(entry => entry.family === 6 ? _iface.has6 : _iface.has4);\n\t\t}\n\n\t\tif (cached.length === 0) {\n\t\t\tconst error = new Error(`cacheableLookup ENOTFOUND ${hostname}`);\n\t\t\terror.code = 'ENOTFOUND';\n\t\t\terror.hostname = hostname;\n\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (options.all) {\n\t\t\treturn cached;\n\t\t}\n\n\t\treturn cached[0];\n\t}\n\n\tasync query(hostname) {\n\t\tlet cached = await this._cache.get(hostname);\n\n\t\tif (!cached) {\n\t\t\tconst pending = this._pending[hostname];\n\n\t\t\tif (pending) {\n\t\t\t\tcached = await pending;\n\t\t\t} else {\n\t\t\t\tconst newPromise = this.queryAndCache(hostname);\n\t\t\t\tthis._pending[hostname] = newPromise;\n\n\t\t\t\ttry {\n\t\t\t\t\tcached = await newPromise;\n\t\t\t\t} finally {\n\t\t\t\t\tdelete this._pending[hostname];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcached = cached.map(entry => {\n\t\t\treturn {...entry};\n\t\t});\n\n\t\treturn cached;\n\t}\n\n\tasync _resolve(hostname) {\n\t\tconst wrap = async promise => {\n\t\t\ttry {\n\t\t\t\treturn await promise;\n\t\t\t} catch (error) {\n\t\t\t\tif (error.code === 'ENODATA' || error.code === 'ENOTFOUND') {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t};\n\n\t\t// ANY is unsafe as it doesn't trigger new queries in the underlying server.\n\t\tconst [A, AAAA] = await Promise.all([\n\t\t\tthis._resolve4(hostname, ttl),\n\t\t\tthis._resolve6(hostname, ttl)\n\t\t].map(promise => wrap(promise)));\n\n\t\tlet aTtl = 0;\n\t\tlet aaaaTtl = 0;\n\t\tlet cacheTtl = 0;\n\n\t\tconst now = Date.now();\n\n\t\tfor (const entry of A) {\n\t\t\tentry.family = 4;\n\t\t\tentry.expires = now + (entry.ttl * 1000);\n\n\t\t\taTtl = Math.max(aTtl, entry.ttl);\n\t\t}\n\n\t\tfor (const entry of AAAA) {\n\t\t\tentry.family = 6;\n\t\t\tentry.expires = now + (entry.ttl * 1000);\n\n\t\t\taaaaTtl = Math.max(aaaaTtl, entry.ttl);\n\t\t}\n\n\t\tif (A.length > 0) {\n\t\t\tif (AAAA.length > 0) {\n\t\t\t\tcacheTtl = Math.min(aTtl, aaaaTtl);\n\t\t\t} else {\n\t\t\t\tcacheTtl = aTtl;\n\t\t\t}\n\t\t} else {\n\t\t\tcacheTtl = aaaaTtl;\n\t\t}\n\n\t\treturn {\n\t\t\tentries: [\n\t\t\t\t...A,\n\t\t\t\t...AAAA\n\t\t\t],\n\t\t\tcacheTtl\n\t\t};\n\t}\n\n\tasync _lookup(hostname) {\n\t\ttry {\n\t\t\tconst entries = await this._dnsLookup(hostname, {\n\t\t\t\tall: true\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tentries,\n\t\t\t\tcacheTtl: 0\n\t\t\t};\n\t\t} catch (_) {\n\t\t\treturn {\n\t\t\t\tentries: [],\n\t\t\t\tcacheTtl: 0\n\t\t\t};\n\t\t}\n\t}\n\n\tasync _set(hostname, data, cacheTtl) {\n\t\tif (this.maxTtl > 0 && cacheTtl > 0) {\n\t\t\tcacheTtl = Math.min(cacheTtl, this.maxTtl) * 1000;\n\t\t\tdata[kExpires] = Date.now() + cacheTtl;\n\n\t\t\ttry {\n\t\t\t\tawait this._cache.set(hostname, data, cacheTtl);\n\t\t\t} catch (error) {\n\t\t\t\tthis.lookupAsync = async () => {\n\t\t\t\t\tconst cacheError = new Error('Cache Error. Please recreate the CacheableLookup instance.');\n\t\t\t\t\tcacheError.cause = error;\n\n\t\t\t\t\tthrow cacheError;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (isIterable(this._cache)) {\n\t\t\t\tthis._tick(cacheTtl);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync queryAndCache(hostname) {\n\t\tif (this._hostnamesToFallback.has(hostname)) {\n\t\t\treturn this._dnsLookup(hostname, all);\n\t\t}\n\n\t\tlet query = await this._resolve(hostname);\n\n\t\tif (query.entries.length === 0 && this._fallback) {\n\t\t\tquery = await this._lookup(hostname);\n\n\t\t\tif (query.entries.length !== 0) {\n\t\t\t\t// Use `dns.lookup(...)` for that particular hostname\n\t\t\t\tthis._hostnamesToFallback.add(hostname);\n\t\t\t}\n\t\t}\n\n\t\tconst cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl;\n\t\tawait this._set(hostname, query.entries, cacheTtl);\n\n\t\treturn query.entries;\n\t}\n\n\t_tick(ms) {\n\t\tconst nextRemovalTime = this._nextRemovalTime;\n\n\t\tif (!nextRemovalTime || ms < nextRemovalTime) {\n\t\t\tclearTimeout(this._removalTimeout);\n\n\t\t\tthis._nextRemovalTime = ms;\n\n\t\t\tthis._removalTimeout = setTimeout(() => {\n\t\t\t\tthis._nextRemovalTime = false;\n\n\t\t\t\tlet nextExpiry = Infinity;\n\n\t\t\t\tconst now = Date.now();\n\n\t\t\t\tfor (const [hostname, entries] of this._cache) {\n\t\t\t\t\tconst expires = entries[kExpires];\n\n\t\t\t\t\tif (now >= expires) {\n\t\t\t\t\t\tthis._cache.delete(hostname);\n\t\t\t\t\t} else if (expires < nextExpiry) {\n\t\t\t\t\t\tnextExpiry = expires;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (nextExpiry !== Infinity) {\n\t\t\t\t\tthis._tick(nextExpiry - now);\n\t\t\t\t}\n\t\t\t}, ms);\n\n\t\t\t/* istanbul ignore next: There is no `timeout.unref()` when running inside an Electron renderer */\n\t\t\tif (this._removalTimeout.unref) {\n\t\t\t\tthis._removalTimeout.unref();\n\t\t\t}\n\t\t}\n\t}\n\n\tinstall(agent) {\n\t\tverifyAgent(agent);\n\n\t\tif (kCacheableLookupCreateConnection in agent) {\n\t\t\tthrow new Error('CacheableLookup has been already installed');\n\t\t}\n\n\t\tagent[kCacheableLookupCreateConnection] = agent.createConnection;\n\t\tagent[kCacheableLookupInstance] = this;\n\n\t\tagent.createConnection = (options, callback) => {\n\t\t\tif (!('lookup' in options)) {\n\t\t\t\toptions.lookup = this.lookup;\n\t\t\t}\n\n\t\t\treturn agent[kCacheableLookupCreateConnection](options, callback);\n\t\t};\n\t}\n\n\tuninstall(agent) {\n\t\tverifyAgent(agent);\n\n\t\tif (agent[kCacheableLookupCreateConnection]) {\n\t\t\tif (agent[kCacheableLookupInstance] !== this) {\n\t\t\t\tthrow new Error('The agent is not owned by this CacheableLookup instance');\n\t\t\t}\n\n\t\t\tagent.createConnection = agent[kCacheableLookupCreateConnection];\n\n\t\t\tdelete agent[kCacheableLookupCreateConnection];\n\t\t\tdelete agent[kCacheableLookupInstance];\n\t\t}\n\t}\n\n\tupdateInterfaceInfo() {\n\t\tconst {_iface} = this;\n\n\t\tthis._iface = getIfaceInfo();\n\n\t\tif ((_iface.has4 && !this._iface.has4) || (_iface.has6 && !this._iface.has6)) {\n\t\t\tthis._cache.clear();\n\t\t}\n\t}\n\n\tclear(hostname) {\n\t\tif (hostname) {\n\t\t\tthis._cache.delete(hostname);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cache.clear();\n\t}\n}\n\nmodule.exports = CacheableLookup;\nmodule.exports.default = CacheableLookup;\n", "'use strict';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\nconst DATA_URL_DEFAULT_MIME_TYPE = 'text/plain';\nconst DATA_URL_DEFAULT_CHARSET = 'us-ascii';\n\nconst testParameter = (name, filters) => {\n\treturn filters.some(filter => filter instanceof RegExp ? filter.test(name) : filter === name);\n};\n\nconst normalizeDataURL = (urlString, {stripHash}) => {\n\tconst match = /^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(urlString);\n\n\tif (!match) {\n\t\tthrow new Error(`Invalid URL: ${urlString}`);\n\t}\n\n\tlet {type, data, hash} = match.groups;\n\tconst mediaType = type.split(';');\n\thash = stripHash ? '' : hash;\n\n\tlet isBase64 = false;\n\tif (mediaType[mediaType.length - 1] === 'base64') {\n\t\tmediaType.pop();\n\t\tisBase64 = true;\n\t}\n\n\t// Lowercase MIME type\n\tconst mimeType = (mediaType.shift() || '').toLowerCase();\n\tconst attributes = mediaType\n\t\t.map(attribute => {\n\t\t\tlet [key, value = ''] = attribute.split('=').map(string => string.trim());\n\n\t\t\t// Lowercase `charset`\n\t\t\tif (key === 'charset') {\n\t\t\t\tvalue = value.toLowerCase();\n\n\t\t\t\tif (value === DATA_URL_DEFAULT_CHARSET) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn `${key}${value ? `=${value}` : ''}`;\n\t\t})\n\t\t.filter(Boolean);\n\n\tconst normalizedMediaType = [\n\t\t...attributes\n\t];\n\n\tif (isBase64) {\n\t\tnormalizedMediaType.push('base64');\n\t}\n\n\tif (normalizedMediaType.length !== 0 || (mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE)) {\n\t\tnormalizedMediaType.unshift(mimeType);\n\t}\n\n\treturn `data:${normalizedMediaType.join(';')},${isBase64 ? data.trim() : data}${hash ? `#${hash}` : ''}`;\n};\n\nconst normalizeUrl = (urlString, options) => {\n\toptions = {\n\t\tdefaultProtocol: 'http:',\n\t\tnormalizeProtocol: true,\n\t\tforceHttp: false,\n\t\tforceHttps: false,\n\t\tstripAuthentication: true,\n\t\tstripHash: false,\n\t\tstripTextFragment: true,\n\t\tstripWWW: true,\n\t\tremoveQueryParameters: [/^utm_\\w+/i],\n\t\tremoveTrailingSlash: true,\n\t\tremoveSingleSlash: true,\n\t\tremoveDirectoryIndex: false,\n\t\tsortQueryParameters: true,\n\t\t...options\n\t};\n\n\turlString = urlString.trim();\n\n\t// Data URL\n\tif (/^data:/i.test(urlString)) {\n\t\treturn normalizeDataURL(urlString, options);\n\t}\n\n\tif (/^view-source:/i.test(urlString)) {\n\t\tthrow new Error('`view-source:` is not supported as it is a non-standard protocol');\n\t}\n\n\tconst hasRelativeProtocol = urlString.startsWith('//');\n\tconst isRelativeUrl = !hasRelativeProtocol && /^\\.*\\//.test(urlString);\n\n\t// Prepend protocol\n\tif (!isRelativeUrl) {\n\t\turlString = urlString.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//, options.defaultProtocol);\n\t}\n\n\tconst urlObj = new URL(urlString);\n\n\tif (options.forceHttp && options.forceHttps) {\n\t\tthrow new Error('The `forceHttp` and `forceHttps` options cannot be used together');\n\t}\n\n\tif (options.forceHttp && urlObj.protocol === 'https:') {\n\t\turlObj.protocol = 'http:';\n\t}\n\n\tif (options.forceHttps && urlObj.protocol === 'http:') {\n\t\turlObj.protocol = 'https:';\n\t}\n\n\t// Remove auth\n\tif (options.stripAuthentication) {\n\t\turlObj.username = '';\n\t\turlObj.password = '';\n\t}\n\n\t// Remove hash\n\tif (options.stripHash) {\n\t\turlObj.hash = '';\n\t} else if (options.stripTextFragment) {\n\t\turlObj.hash = urlObj.hash.replace(/#?:~:text.*?$/i, '');\n\t}\n\n\t// Remove duplicate slashes if not preceded by a protocol\n\tif (urlObj.pathname) {\n\t\turlObj.pathname = urlObj.pathname.replace(/(? 0) {\n\t\tlet pathComponents = urlObj.pathname.split('/');\n\t\tconst lastComponent = pathComponents[pathComponents.length - 1];\n\n\t\tif (testParameter(lastComponent, options.removeDirectoryIndex)) {\n\t\t\tpathComponents = pathComponents.slice(0, pathComponents.length - 1);\n\t\t\turlObj.pathname = pathComponents.slice(1).join('/') + '/';\n\t\t}\n\t}\n\n\tif (urlObj.hostname) {\n\t\t// Remove trailing dot\n\t\turlObj.hostname = urlObj.hostname.replace(/\\.$/, '');\n\n\t\t// Remove `www.`\n\t\tif (options.stripWWW && /^www\\.(?!www\\.)(?:[a-z\\-\\d]{1,63})\\.(?:[a-z.\\-\\d]{2,63})$/.test(urlObj.hostname)) {\n\t\t\t// Each label should be max 63 at length (min: 1).\n\t\t\t// Source: https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names\n\t\t\t// Each TLD should be up to 63 characters long (min: 2).\n\t\t\t// It is technically possible to have a single character TLD, but none currently exist.\n\t\t\turlObj.hostname = urlObj.hostname.replace(/^www\\./, '');\n\t\t}\n\t}\n\n\t// Remove query unwanted parameters\n\tif (Array.isArray(options.removeQueryParameters)) {\n\t\tfor (const key of [...urlObj.searchParams.keys()]) {\n\t\t\tif (testParameter(key, options.removeQueryParameters)) {\n\t\t\t\turlObj.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (options.removeQueryParameters === true) {\n\t\turlObj.search = '';\n\t}\n\n\t// Sort query parameters\n\tif (options.sortQueryParameters) {\n\t\turlObj.searchParams.sort();\n\t}\n\n\tif (options.removeTrailingSlash) {\n\t\turlObj.pathname = urlObj.pathname.replace(/\\/$/, '');\n\t}\n\n\tconst oldUrlString = urlString;\n\n\t// Take advantage of many of the Node `url` normalizations\n\turlString = urlObj.toString();\n\n\tif (!options.removeSingleSlash && urlObj.pathname === '/' && !oldUrlString.endsWith('/') && urlObj.hash === '') {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Remove ending `/` unless removeSingleSlash is false\n\tif ((options.removeTrailingSlash || urlObj.pathname === '/') && urlObj.hash === '' && options.removeSingleSlash) {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Restore relative protocol, if applicable\n\tif (hasRelativeProtocol && !options.normalizeProtocol) {\n\t\turlString = urlString.replace(/^http:\\/\\//, '//');\n\t}\n\n\t// Remove http/https\n\tif (options.stripProtocol) {\n\t\turlString = urlString.replace(/^(?:https?:)?\\/\\//, '');\n\t}\n\n\treturn urlString;\n};\n\nmodule.exports = normalizeUrl;\n", "var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n", "var once = require('once')\nvar eos = require('end-of-stream')\nvar fs\n\ntry {\n fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n} catch (e) {}\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n", "'use strict';\nconst {PassThrough: PassThroughStream} = require('stream');\n\nmodule.exports = options => {\n\toptions = {...options};\n\n\tconst {array} = options;\n\tlet {encoding} = options;\n\tconst isBuffer = encoding === 'buffer';\n\tlet objectMode = false;\n\n\tif (array) {\n\t\tobjectMode = !(encoding || isBuffer);\n\t} else {\n\t\tencoding = encoding || 'utf8';\n\t}\n\n\tif (isBuffer) {\n\t\tencoding = null;\n\t}\n\n\tconst stream = new PassThroughStream({objectMode});\n\n\tif (encoding) {\n\t\tstream.setEncoding(encoding);\n\t}\n\n\tlet length = 0;\n\tconst chunks = [];\n\n\tstream.on('data', chunk => {\n\t\tchunks.push(chunk);\n\n\t\tif (objectMode) {\n\t\t\tlength = chunks.length;\n\t\t} else {\n\t\t\tlength += chunk.length;\n\t\t}\n\t});\n\n\tstream.getBufferedValue = () => {\n\t\tif (array) {\n\t\t\treturn chunks;\n\t\t}\n\n\t\treturn isBuffer ? Buffer.concat(chunks, length) : chunks.join('');\n\t};\n\n\tstream.getBufferedLength = () => length;\n\n\treturn stream;\n};\n", "'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst pump = require('pump');\nconst bufferStream = require('./buffer-stream');\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\treturn Promise.reject(new Error('Expected a stream'));\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\n\tlet stream;\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\tstream = pump(inputStream, bufferStream(options), error => {\n\t\t\tif (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolve();\n\t\t});\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\n// TODO: Remove this for the next major release\nmodule.exports.default = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n", "'use strict';\n// rfc7231 6.1\nconst statusCodeCacheableByDefault = new Set([\n 200,\n 203,\n 204,\n 206,\n 300,\n 301,\n 308,\n 404,\n 405,\n 410,\n 414,\n 501,\n]);\n\n// This implementation does not understand partial responses (206)\nconst understoodStatuses = new Set([\n 200,\n 203,\n 204,\n 300,\n 301,\n 302,\n 303,\n 307,\n 308,\n 404,\n 405,\n 410,\n 414,\n 501,\n]);\n\nconst errorStatusCodes = new Set([\n 500,\n 502,\n 503, \n 504,\n]);\n\nconst hopByHopHeaders = {\n date: true, // included, because we add Age update Date\n connection: true,\n 'keep-alive': true,\n 'proxy-authenticate': true,\n 'proxy-authorization': true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n};\n\nconst excludedFromRevalidationUpdate = {\n // Since the old body is reused, it doesn't make sense to change properties of the body\n 'content-length': true,\n 'content-encoding': true,\n 'transfer-encoding': true,\n 'content-range': true,\n};\n\nfunction toNumberOrZero(s) {\n const n = parseInt(s, 10);\n return isFinite(n) ? n : 0;\n}\n\n// RFC 5861\nfunction isErrorResponse(response) {\n // consider undefined response as faulty\n if(!response) {\n return true\n }\n return errorStatusCodes.has(response.status);\n}\n\nfunction parseCacheControl(header) {\n const cc = {};\n if (!header) return cc;\n\n // TODO: When there is more than one value present for a given directive (e.g., two Expires header fields, multiple Cache-Control: max-age directives),\n // the directive's value is considered invalid. Caches are encouraged to consider responses that have invalid freshness information to be stale\n const parts = header.trim().split(/,/);\n for (const part of parts) {\n const [k, v] = part.split(/=/, 2);\n cc[k.trim()] = v === undefined ? true : v.trim().replace(/^\"|\"$/g, '');\n }\n\n return cc;\n}\n\nfunction formatCacheControl(cc) {\n let parts = [];\n for (const k in cc) {\n const v = cc[k];\n parts.push(v === true ? k : k + '=' + v);\n }\n if (!parts.length) {\n return undefined;\n }\n return parts.join(', ');\n}\n\nmodule.exports = class CachePolicy {\n constructor(\n req,\n res,\n {\n shared,\n cacheHeuristic,\n immutableMinTimeToLive,\n ignoreCargoCult,\n _fromObject,\n } = {}\n ) {\n if (_fromObject) {\n this._fromObject(_fromObject);\n return;\n }\n\n if (!res || !res.headers) {\n throw Error('Response headers missing');\n }\n this._assertRequestHasHeaders(req);\n\n this._responseTime = this.now();\n this._isShared = shared !== false;\n this._cacheHeuristic =\n undefined !== cacheHeuristic ? cacheHeuristic : 0.1; // 10% matches IE\n this._immutableMinTtl =\n undefined !== immutableMinTimeToLive\n ? immutableMinTimeToLive\n : 24 * 3600 * 1000;\n\n this._status = 'status' in res ? res.status : 200;\n this._resHeaders = res.headers;\n this._rescc = parseCacheControl(res.headers['cache-control']);\n this._method = 'method' in req ? req.method : 'GET';\n this._url = req.url;\n this._host = req.headers.host;\n this._noAuthorization = !req.headers.authorization;\n this._reqHeaders = res.headers.vary ? req.headers : null; // Don't keep all request headers if they won't be used\n this._reqcc = parseCacheControl(req.headers['cache-control']);\n\n // Assume that if someone uses legacy, non-standard uncecessary options they don't understand caching,\n // so there's no point stricly adhering to the blindly copy&pasted directives.\n if (\n ignoreCargoCult &&\n 'pre-check' in this._rescc &&\n 'post-check' in this._rescc\n ) {\n delete this._rescc['pre-check'];\n delete this._rescc['post-check'];\n delete this._rescc['no-cache'];\n delete this._rescc['no-store'];\n delete this._rescc['must-revalidate'];\n this._resHeaders = Object.assign({}, this._resHeaders, {\n 'cache-control': formatCacheControl(this._rescc),\n });\n delete this._resHeaders.expires;\n delete this._resHeaders.pragma;\n }\n\n // When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive\n // as having the same effect as if \"Cache-Control: no-cache\" were present (see Section 5.2.1).\n if (\n res.headers['cache-control'] == null &&\n /no-cache/.test(res.headers.pragma)\n ) {\n this._rescc['no-cache'] = true;\n }\n }\n\n now() {\n return Date.now();\n }\n\n storable() {\n // The \"no-store\" request directive indicates that a cache MUST NOT store any part of either this request or any response to it.\n return !!(\n !this._reqcc['no-store'] &&\n // A cache MUST NOT store a response to any request, unless:\n // The request method is understood by the cache and defined as being cacheable, and\n ('GET' === this._method ||\n 'HEAD' === this._method ||\n ('POST' === this._method && this._hasExplicitExpiration())) &&\n // the response status code is understood by the cache, and\n understoodStatuses.has(this._status) &&\n // the \"no-store\" cache directive does not appear in request or response header fields, and\n !this._rescc['no-store'] &&\n // the \"private\" response directive does not appear in the response, if the cache is shared, and\n (!this._isShared || !this._rescc.private) &&\n // the Authorization header field does not appear in the request, if the cache is shared,\n (!this._isShared ||\n this._noAuthorization ||\n this._allowsStoringAuthenticated()) &&\n // the response either:\n // contains an Expires header field, or\n (this._resHeaders.expires ||\n // contains a max-age response directive, or\n // contains a s-maxage response directive and the cache is shared, or\n // contains a public response directive.\n this._rescc['max-age'] ||\n (this._isShared && this._rescc['s-maxage']) ||\n this._rescc.public ||\n // has a status code that is defined as cacheable by default\n statusCodeCacheableByDefault.has(this._status))\n );\n }\n\n _hasExplicitExpiration() {\n // 4.2.1 Calculating Freshness Lifetime\n return (\n (this._isShared && this._rescc['s-maxage']) ||\n this._rescc['max-age'] ||\n this._resHeaders.expires\n );\n }\n\n _assertRequestHasHeaders(req) {\n if (!req || !req.headers) {\n throw Error('Request headers missing');\n }\n }\n\n satisfiesWithoutRevalidation(req) {\n this._assertRequestHasHeaders(req);\n\n // When presented with a request, a cache MUST NOT reuse a stored response, unless:\n // the presented request does not contain the no-cache pragma (Section 5.4), nor the no-cache cache directive,\n // unless the stored response is successfully validated (Section 4.3), and\n const requestCC = parseCacheControl(req.headers['cache-control']);\n if (requestCC['no-cache'] || /no-cache/.test(req.headers.pragma)) {\n return false;\n }\n\n if (requestCC['max-age'] && this.age() > requestCC['max-age']) {\n return false;\n }\n\n if (\n requestCC['min-fresh'] &&\n this.timeToLive() < 1000 * requestCC['min-fresh']\n ) {\n return false;\n }\n\n // the stored response is either:\n // fresh, or allowed to be served stale\n if (this.stale()) {\n const allowsStale =\n requestCC['max-stale'] &&\n !this._rescc['must-revalidate'] &&\n (true === requestCC['max-stale'] ||\n requestCC['max-stale'] > this.age() - this.maxAge());\n if (!allowsStale) {\n return false;\n }\n }\n\n return this._requestMatches(req, false);\n }\n\n _requestMatches(req, allowHeadMethod) {\n // The presented effective request URI and that of the stored response match, and\n return (\n (!this._url || this._url === req.url) &&\n this._host === req.headers.host &&\n // the request method associated with the stored response allows it to be used for the presented request, and\n (!req.method ||\n this._method === req.method ||\n (allowHeadMethod && 'HEAD' === req.method)) &&\n // selecting header fields nominated by the stored response (if any) match those presented, and\n this._varyMatches(req)\n );\n }\n\n _allowsStoringAuthenticated() {\n // following Cache-Control response directives (Section 5.2.2) have such an effect: must-revalidate, public, and s-maxage.\n return (\n this._rescc['must-revalidate'] ||\n this._rescc.public ||\n this._rescc['s-maxage']\n );\n }\n\n _varyMatches(req) {\n if (!this._resHeaders.vary) {\n return true;\n }\n\n // A Vary header field-value of \"*\" always fails to match\n if (this._resHeaders.vary === '*') {\n return false;\n }\n\n const fields = this._resHeaders.vary\n .trim()\n .toLowerCase()\n .split(/\\s*,\\s*/);\n for (const name of fields) {\n if (req.headers[name] !== this._reqHeaders[name]) return false;\n }\n return true;\n }\n\n _copyWithoutHopByHopHeaders(inHeaders) {\n const headers = {};\n for (const name in inHeaders) {\n if (hopByHopHeaders[name]) continue;\n headers[name] = inHeaders[name];\n }\n // 9.1. Connection\n if (inHeaders.connection) {\n const tokens = inHeaders.connection.trim().split(/\\s*,\\s*/);\n for (const name of tokens) {\n delete headers[name];\n }\n }\n if (headers.warning) {\n const warnings = headers.warning.split(/,/).filter(warning => {\n return !/^\\s*1[0-9][0-9]/.test(warning);\n });\n if (!warnings.length) {\n delete headers.warning;\n } else {\n headers.warning = warnings.join(',').trim();\n }\n }\n return headers;\n }\n\n responseHeaders() {\n const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);\n const age = this.age();\n\n // A cache SHOULD generate 113 warning if it heuristically chose a freshness\n // lifetime greater than 24 hours and the response's age is greater than 24 hours.\n if (\n age > 3600 * 24 &&\n !this._hasExplicitExpiration() &&\n this.maxAge() > 3600 * 24\n ) {\n headers.warning =\n (headers.warning ? `${headers.warning}, ` : '') +\n '113 - \"rfc7234 5.5.4\"';\n }\n headers.age = `${Math.round(age)}`;\n headers.date = new Date(this.now()).toUTCString();\n return headers;\n }\n\n /**\n * Value of the Date response header or current time if Date was invalid\n * @return timestamp\n */\n date() {\n const serverDate = Date.parse(this._resHeaders.date);\n if (isFinite(serverDate)) {\n return serverDate;\n }\n return this._responseTime;\n }\n\n /**\n * Value of the Age header, in seconds, updated for the current time.\n * May be fractional.\n *\n * @return Number\n */\n age() {\n let age = this._ageValue();\n\n const residentTime = (this.now() - this._responseTime) / 1000;\n return age + residentTime;\n }\n\n _ageValue() {\n return toNumberOrZero(this._resHeaders.age);\n }\n\n /**\n * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`.\n *\n * For an up-to-date value, see `timeToLive()`.\n *\n * @return Number\n */\n maxAge() {\n if (!this.storable() || this._rescc['no-cache']) {\n return 0;\n }\n\n // Shared responses with cookies are cacheable according to the RFC, but IMHO it'd be unwise to do so by default\n // so this implementation requires explicit opt-in via public header\n if (\n this._isShared &&\n (this._resHeaders['set-cookie'] &&\n !this._rescc.public &&\n !this._rescc.immutable)\n ) {\n return 0;\n }\n\n if (this._resHeaders.vary === '*') {\n return 0;\n }\n\n if (this._isShared) {\n if (this._rescc['proxy-revalidate']) {\n return 0;\n }\n // if a response includes the s-maxage directive, a shared cache recipient MUST ignore the Expires field.\n if (this._rescc['s-maxage']) {\n return toNumberOrZero(this._rescc['s-maxage']);\n }\n }\n\n // If a response includes a Cache-Control field with the max-age directive, a recipient MUST ignore the Expires field.\n if (this._rescc['max-age']) {\n return toNumberOrZero(this._rescc['max-age']);\n }\n\n const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;\n\n const serverDate = this.date();\n if (this._resHeaders.expires) {\n const expires = Date.parse(this._resHeaders.expires);\n // A cache recipient MUST interpret invalid date formats, especially the value \"0\", as representing a time in the past (i.e., \"already expired\").\n if (Number.isNaN(expires) || expires < serverDate) {\n return 0;\n }\n return Math.max(defaultMinTtl, (expires - serverDate) / 1000);\n }\n\n if (this._resHeaders['last-modified']) {\n const lastModified = Date.parse(this._resHeaders['last-modified']);\n if (isFinite(lastModified) && serverDate > lastModified) {\n return Math.max(\n defaultMinTtl,\n ((serverDate - lastModified) / 1000) * this._cacheHeuristic\n );\n }\n }\n\n return defaultMinTtl;\n }\n\n timeToLive() {\n const age = this.maxAge() - this.age();\n const staleIfErrorAge = age + toNumberOrZero(this._rescc['stale-if-error']);\n const staleWhileRevalidateAge = age + toNumberOrZero(this._rescc['stale-while-revalidate']);\n return Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1000;\n }\n\n stale() {\n return this.maxAge() <= this.age();\n }\n\n _useStaleIfError() {\n return this.maxAge() + toNumberOrZero(this._rescc['stale-if-error']) > this.age();\n }\n\n useStaleWhileRevalidate() {\n return this.maxAge() + toNumberOrZero(this._rescc['stale-while-revalidate']) > this.age();\n }\n\n static fromObject(obj) {\n return new this(undefined, undefined, { _fromObject: obj });\n }\n\n _fromObject(obj) {\n if (this._responseTime) throw Error('Reinitialized');\n if (!obj || obj.v !== 1) throw Error('Invalid serialization');\n\n this._responseTime = obj.t;\n this._isShared = obj.sh;\n this._cacheHeuristic = obj.ch;\n this._immutableMinTtl =\n obj.imm !== undefined ? obj.imm : 24 * 3600 * 1000;\n this._status = obj.st;\n this._resHeaders = obj.resh;\n this._rescc = obj.rescc;\n this._method = obj.m;\n this._url = obj.u;\n this._host = obj.h;\n this._noAuthorization = obj.a;\n this._reqHeaders = obj.reqh;\n this._reqcc = obj.reqcc;\n }\n\n toObject() {\n return {\n v: 1,\n t: this._responseTime,\n sh: this._isShared,\n ch: this._cacheHeuristic,\n imm: this._immutableMinTtl,\n st: this._status,\n resh: this._resHeaders,\n rescc: this._rescc,\n m: this._method,\n u: this._url,\n h: this._host,\n a: this._noAuthorization,\n reqh: this._reqHeaders,\n reqcc: this._reqcc,\n };\n }\n\n /**\n * Headers for sending to the origin server to revalidate stale response.\n * Allows server to return 304 to allow reuse of the previous response.\n *\n * Hop by hop headers are always stripped.\n * Revalidation headers may be added or removed, depending on request.\n */\n revalidationHeaders(incomingReq) {\n this._assertRequestHasHeaders(incomingReq);\n const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);\n\n // This implementation does not understand range requests\n delete headers['if-range'];\n\n if (!this._requestMatches(incomingReq, true) || !this.storable()) {\n // revalidation allowed via HEAD\n // not for the same resource, or wasn't allowed to be cached anyway\n delete headers['if-none-match'];\n delete headers['if-modified-since'];\n return headers;\n }\n\n /* MUST send that entity-tag in any cache validation request (using If-Match or If-None-Match) if an entity-tag has been provided by the origin server. */\n if (this._resHeaders.etag) {\n headers['if-none-match'] = headers['if-none-match']\n ? `${headers['if-none-match']}, ${this._resHeaders.etag}`\n : this._resHeaders.etag;\n }\n\n // Clients MAY issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients MUST NOT use weak validators in other forms of request.\n const forbidsWeakValidators =\n headers['accept-ranges'] ||\n headers['if-match'] ||\n headers['if-unmodified-since'] ||\n (this._method && this._method != 'GET');\n\n /* SHOULD send the Last-Modified value in non-subrange cache validation requests (using If-Modified-Since) if only a Last-Modified value has been provided by the origin server.\n Note: This implementation does not understand partial responses (206) */\n if (forbidsWeakValidators) {\n delete headers['if-modified-since'];\n\n if (headers['if-none-match']) {\n const etags = headers['if-none-match']\n .split(/,/)\n .filter(etag => {\n return !/^\\s*W\\//.test(etag);\n });\n if (!etags.length) {\n delete headers['if-none-match'];\n } else {\n headers['if-none-match'] = etags.join(',').trim();\n }\n }\n } else if (\n this._resHeaders['last-modified'] &&\n !headers['if-modified-since']\n ) {\n headers['if-modified-since'] = this._resHeaders['last-modified'];\n }\n\n return headers;\n }\n\n /**\n * Creates new CachePolicy with information combined from the previews response,\n * and the new revalidation response.\n *\n * Returns {policy, modified} where modified is a boolean indicating\n * whether the response body has been modified, and old cached body can't be used.\n *\n * @return {Object} {policy: CachePolicy, modified: Boolean}\n */\n revalidatedPolicy(request, response) {\n this._assertRequestHasHeaders(request);\n if(this._useStaleIfError() && isErrorResponse(response)) { // I consider the revalidation request unsuccessful\n return {\n modified: false,\n matches: false,\n policy: this,\n };\n }\n if (!response || !response.headers) {\n throw Error('Response headers missing');\n }\n\n // These aren't going to be supported exactly, since one CachePolicy object\n // doesn't know about all the other cached objects.\n let matches = false;\n if (response.status !== undefined && response.status != 304) {\n matches = false;\n } else if (\n response.headers.etag &&\n !/^\\s*W\\//.test(response.headers.etag)\n ) {\n // \"All of the stored responses with the same strong validator are selected.\n // If none of the stored responses contain the same strong validator,\n // then the cache MUST NOT use the new response to update any stored responses.\"\n matches =\n this._resHeaders.etag &&\n this._resHeaders.etag.replace(/^\\s*W\\//, '') ===\n response.headers.etag;\n } else if (this._resHeaders.etag && response.headers.etag) {\n // \"If the new response contains a weak validator and that validator corresponds\n // to one of the cache's stored responses,\n // then the most recent of those matching stored responses is selected for update.\"\n matches =\n this._resHeaders.etag.replace(/^\\s*W\\//, '') ===\n response.headers.etag.replace(/^\\s*W\\//, '');\n } else if (this._resHeaders['last-modified']) {\n matches =\n this._resHeaders['last-modified'] ===\n response.headers['last-modified'];\n } else {\n // If the new response does not include any form of validator (such as in the case where\n // a client generates an If-Modified-Since request from a source other than the Last-Modified\n // response header field), and there is only one stored response, and that stored response also\n // lacks a validator, then that stored response is selected for update.\n if (\n !this._resHeaders.etag &&\n !this._resHeaders['last-modified'] &&\n !response.headers.etag &&\n !response.headers['last-modified']\n ) {\n matches = true;\n }\n }\n\n if (!matches) {\n return {\n policy: new this.constructor(request, response),\n // Client receiving 304 without body, even if it's invalid/mismatched has no option\n // but to reuse a cached body. We don't have a good way to tell clients to do\n // error recovery in such case.\n modified: response.status != 304,\n matches: false,\n };\n }\n\n // use other header fields provided in the 304 (Not Modified) response to replace all instances\n // of the corresponding header fields in the stored response.\n const headers = {};\n for (const k in this._resHeaders) {\n headers[k] =\n k in response.headers && !excludedFromRevalidationUpdate[k]\n ? response.headers[k]\n : this._resHeaders[k];\n }\n\n const newResponse = Object.assign({}, response, {\n status: this._status,\n method: this._method,\n headers,\n });\n return {\n policy: new this.constructor(request, newResponse, {\n shared: this._isShared,\n cacheHeuristic: this._cacheHeuristic,\n immutableMinTimeToLive: this._immutableMinTtl,\n }),\n modified: false,\n matches: true,\n };\n }\n};\n", "'use strict';\nmodule.exports = object => {\n\tconst result = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tresult[key.toLowerCase()] = value;\n\t}\n\n\treturn result;\n};\n", "'use strict';\n\nconst Readable = require('stream').Readable;\nconst lowercaseKeys = require('lowercase-keys');\n\nclass Response extends Readable {\n\tconstructor(statusCode, headers, body, url) {\n\t\tif (typeof statusCode !== 'number') {\n\t\t\tthrow new TypeError('Argument `statusCode` should be a number');\n\t\t}\n\t\tif (typeof headers !== 'object') {\n\t\t\tthrow new TypeError('Argument `headers` should be an object');\n\t\t}\n\t\tif (!(body instanceof Buffer)) {\n\t\t\tthrow new TypeError('Argument `body` should be a buffer');\n\t\t}\n\t\tif (typeof url !== 'string') {\n\t\t\tthrow new TypeError('Argument `url` should be a string');\n\t\t}\n\n\t\tsuper();\n\t\tthis.statusCode = statusCode;\n\t\tthis.headers = lowercaseKeys(headers);\n\t\tthis.body = body;\n\t\tthis.url = url;\n\t}\n\n\t_read() {\n\t\tthis.push(this.body);\n\t\tthis.push(null);\n\t}\n}\n\nmodule.exports = Response;\n", "'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProps = [\n\t'destroy',\n\t'setTimeout',\n\t'socket',\n\t'headers',\n\t'trailers',\n\t'rawHeaders',\n\t'statusCode',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'rawTrailers',\n\t'statusMessage'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tconst fromProps = new Set(Object.keys(fromStream).concat(knownProps));\n\n\tfor (const prop of fromProps) {\n\t\t// Don't overwrite existing properties\n\t\tif (prop in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttoStream[prop] = typeof fromStream[prop] === 'function' ? fromStream[prop].bind(fromStream) : fromStream[prop];\n\t}\n};\n", "'use strict';\n\nconst PassThrough = require('stream').PassThrough;\nconst mimicResponse = require('mimic-response');\n\nconst cloneResponse = response => {\n\tif (!(response && response.pipe)) {\n\t\tthrow new TypeError('Parameter `response` must be a response stream.');\n\t}\n\n\tconst clone = new PassThrough();\n\tmimicResponse(response, clone);\n\n\treturn response.pipe(clone);\n};\n\nmodule.exports = cloneResponse;\n", "//TODO: handle reviver/dehydrate function like normal\n//and handle indentation, like normal.\n//if anyone needs this... please send pull request.\n\nexports.stringify = function stringify (o) {\n if('undefined' == typeof o) return o\n\n if(o && Buffer.isBuffer(o))\n return JSON.stringify(':base64:' + o.toString('base64'))\n\n if(o && o.toJSON)\n o = o.toJSON()\n\n if(o && 'object' === typeof o) {\n var s = ''\n var array = Array.isArray(o)\n s = array ? '[' : '{'\n var first = true\n\n for(var k in o) {\n var ignore = 'function' == typeof o[k] || (!array && 'undefined' === typeof o[k])\n if(Object.hasOwnProperty.call(o, k) && !ignore) {\n if(!first)\n s += ','\n first = false\n if (array) {\n if(o[k] == undefined)\n s += 'null'\n else\n s += stringify(o[k])\n } else if (o[k] !== void(0)) {\n s += stringify(k) + ':' + stringify(o[k])\n }\n }\n }\n\n s += array ? ']' : '}'\n\n return s\n } else if ('string' === typeof o) {\n return JSON.stringify(/^:/.test(o) ? ':' + o : o)\n } else if ('undefined' === typeof o) {\n return 'null';\n } else\n return JSON.stringify(o)\n}\n\nexports.parse = function (s) {\n return JSON.parse(s, function (key, value) {\n if('string' === typeof value) {\n if(/^:base64:/.test(value))\n return Buffer.from(value.substring(8), 'base64')\n else\n return /^:/.test(value) ? value.substring(1) : value \n }\n return value\n })\n}\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst JSONB = require('json-buffer');\n\nconst loadStore = options => {\n\tconst adapters = {\n\t\tredis: '@keyv/redis',\n\t\trediss: '@keyv/redis',\n\t\tmongodb: '@keyv/mongo',\n\t\tmongo: '@keyv/mongo',\n\t\tsqlite: '@keyv/sqlite',\n\t\tpostgresql: '@keyv/postgres',\n\t\tpostgres: '@keyv/postgres',\n\t\tmysql: '@keyv/mysql',\n\t\tetcd: '@keyv/etcd',\n\t\toffline: '@keyv/offline',\n\t\ttiered: '@keyv/tiered',\n\t};\n\tif (options.adapter || options.uri) {\n\t\tconst adapter = options.adapter || /^[^:+]*/.exec(options.uri)[0];\n\t\treturn new (require(adapters[adapter]))(options);\n\t}\n\n\treturn new Map();\n};\n\nconst iterableAdapters = [\n\t'sqlite',\n\t'postgres',\n\t'mysql',\n\t'mongo',\n\t'redis',\n\t'tiered',\n];\n\nclass Keyv extends EventEmitter {\n\tconstructor(uri, {emitErrors = true, ...options} = {}) {\n\t\tsuper();\n\t\tthis.opts = {\n\t\t\tnamespace: 'keyv',\n\t\t\tserialize: JSONB.stringify,\n\t\t\tdeserialize: JSONB.parse,\n\t\t\t...((typeof uri === 'string') ? {uri} : uri),\n\t\t\t...options,\n\t\t};\n\n\t\tif (!this.opts.store) {\n\t\t\tconst adapterOptions = {...this.opts};\n\t\t\tthis.opts.store = loadStore(adapterOptions);\n\t\t}\n\n\t\tif (this.opts.compression) {\n\t\t\tconst compression = this.opts.compression;\n\t\t\tthis.opts.serialize = compression.serialize.bind(compression);\n\t\t\tthis.opts.deserialize = compression.deserialize.bind(compression);\n\t\t}\n\n\t\tif (typeof this.opts.store.on === 'function' && emitErrors) {\n\t\t\tthis.opts.store.on('error', error => this.emit('error', error));\n\t\t}\n\n\t\tthis.opts.store.namespace = this.opts.namespace;\n\n\t\tconst generateIterator = iterator => async function * () {\n\t\t\tfor await (const [key, raw] of typeof iterator === 'function'\n\t\t\t\t? iterator(this.opts.store.namespace)\n\t\t\t\t: iterator) {\n\t\t\t\tconst data = await this.opts.deserialize(raw);\n\t\t\t\tif (this.opts.store.namespace && !key.includes(this.opts.store.namespace)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\tthis.delete(key);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tyield [this._getKeyUnprefix(key), data.value];\n\t\t\t}\n\t\t};\n\n\t\t// Attach iterators\n\t\tif (typeof this.opts.store[Symbol.iterator] === 'function' && this.opts.store instanceof Map) {\n\t\t\tthis.iterator = generateIterator(this.opts.store);\n\t\t} else if (typeof this.opts.store.iterator === 'function' && this.opts.store.opts\n\t\t\t&& this._checkIterableAdaptar()) {\n\t\t\tthis.iterator = generateIterator(this.opts.store.iterator.bind(this.opts.store));\n\t\t}\n\t}\n\n\t_checkIterableAdaptar() {\n\t\treturn iterableAdapters.includes(this.opts.store.opts.dialect)\n\t\t\t|| iterableAdapters.findIndex(element => this.opts.store.opts.url.includes(element)) >= 0;\n\t}\n\n\t_getKeyPrefix(key) {\n\t\treturn `${this.opts.namespace}:${key}`;\n\t}\n\n\t_getKeyPrefixArray(keys) {\n\t\treturn keys.map(key => `${this.opts.namespace}:${key}`);\n\t}\n\n\t_getKeyUnprefix(key) {\n\t\treturn key\n\t\t\t.split(':')\n\t\t\t.splice(1)\n\t\t\t.join(':');\n\t}\n\n\tget(key, options) {\n\t\tconst {store} = this.opts;\n\t\tconst isArray = Array.isArray(key);\n\t\tconst keyPrefixed = isArray ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key);\n\t\tif (isArray && store.getMany === undefined) {\n\t\t\tconst promises = [];\n\t\t\tfor (const key of keyPrefixed) {\n\t\t\t\tpromises.push(Promise.resolve()\n\t\t\t\t\t.then(() => store.get(key))\n\t\t\t\t\t.then(data => (typeof data === 'string') ? this.opts.deserialize(data) : (this.opts.compression ? this.opts.deserialize(data) : data))\n\t\t\t\t\t.then(data => {\n\t\t\t\t\t\tif (data === undefined || data === null) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\t\t\treturn this.delete(key).then(() => undefined);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (options && options.raw) ? data : data.value;\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn Promise.allSettled(promises)\n\t\t\t\t.then(values => {\n\t\t\t\t\tconst data = [];\n\t\t\t\t\tfor (const value of values) {\n\t\t\t\t\t\tdata.push(value.value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => isArray ? store.getMany(keyPrefixed) : store.get(keyPrefixed))\n\t\t\t.then(data => (typeof data === 'string') ? this.opts.deserialize(data) : (this.opts.compression ? this.opts.deserialize(data) : data))\n\t\t\t.then(data => {\n\t\t\t\tif (data === undefined || data === null) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\treturn data.map((row, index) => {\n\t\t\t\t\t\tif ((typeof row === 'string')) {\n\t\t\t\t\t\t\trow = this.opts.deserialize(row);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (row === undefined || row === null) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof row.expires === 'number' && Date.now() > row.expires) {\n\t\t\t\t\t\t\tthis.delete(key[index]).then(() => undefined);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (options && options.raw) ? row : row.value;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\treturn this.delete(key).then(() => undefined);\n\t\t\t\t}\n\n\t\t\t\treturn (options && options.raw) ? data : data.value;\n\t\t\t});\n\t}\n\n\tset(key, value, ttl) {\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\tif (typeof ttl === 'undefined') {\n\t\t\tttl = this.opts.ttl;\n\t\t}\n\n\t\tif (ttl === 0) {\n\t\t\tttl = undefined;\n\t\t}\n\n\t\tconst {store} = this.opts;\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => {\n\t\t\t\tconst expires = (typeof ttl === 'number') ? (Date.now() + ttl) : null;\n\t\t\t\tif (typeof value === 'symbol') {\n\t\t\t\t\tthis.emit('error', 'symbol cannot be serialized');\n\t\t\t\t}\n\n\t\t\t\tvalue = {value, expires};\n\t\t\t\treturn this.opts.serialize(value);\n\t\t\t})\n\t\t\t.then(value => store.set(keyPrefixed, value, ttl))\n\t\t\t.then(() => true);\n\t}\n\n\tdelete(key) {\n\t\tconst {store} = this.opts;\n\t\tif (Array.isArray(key)) {\n\t\t\tconst keyPrefixed = this._getKeyPrefixArray(key);\n\t\t\tif (store.deleteMany === undefined) {\n\t\t\t\tconst promises = [];\n\t\t\t\tfor (const key of keyPrefixed) {\n\t\t\t\t\tpromises.push(store.delete(key));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.allSettled(promises)\n\t\t\t\t\t.then(values => values.every(x => x.value === true));\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => store.deleteMany(keyPrefixed));\n\t\t}\n\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\treturn Promise.resolve()\n\t\t\t.then(() => store.delete(keyPrefixed));\n\t}\n\n\tclear() {\n\t\tconst {store} = this.opts;\n\t\treturn Promise.resolve()\n\t\t\t.then(() => store.clear());\n\t}\n\n\thas(key) {\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\tconst {store} = this.opts;\n\t\treturn Promise.resolve()\n\t\t\t.then(async () => {\n\t\t\t\tif (typeof store.has === 'function') {\n\t\t\t\t\treturn store.has(keyPrefixed);\n\t\t\t\t}\n\n\t\t\t\tconst value = await store.get(keyPrefixed);\n\t\t\t\treturn value !== undefined;\n\t\t\t});\n\t}\n\n\tdisconnect() {\n\t\tconst {store} = this.opts;\n\t\tif (typeof store.disconnect === 'function') {\n\t\t\treturn store.disconnect();\n\t\t}\n\t}\n}\n\nmodule.exports = Keyv;\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst urlLib = require('url');\nconst normalizeUrl = require('normalize-url');\nconst getStream = require('get-stream');\nconst CachePolicy = require('http-cache-semantics');\nconst Response = require('responselike');\nconst lowercaseKeys = require('lowercase-keys');\nconst cloneResponse = require('clone-response');\nconst Keyv = require('keyv');\n\nclass CacheableRequest {\n\tconstructor(request, cacheAdapter) {\n\t\tif (typeof request !== 'function') {\n\t\t\tthrow new TypeError('Parameter `request` must be a function');\n\t\t}\n\n\t\tthis.cache = new Keyv({\n\t\t\turi: typeof cacheAdapter === 'string' && cacheAdapter,\n\t\t\tstore: typeof cacheAdapter !== 'string' && cacheAdapter,\n\t\t\tnamespace: 'cacheable-request'\n\t\t});\n\n\t\treturn this.createCacheableRequest(request);\n\t}\n\n\tcreateCacheableRequest(request) {\n\t\treturn (opts, cb) => {\n\t\t\tlet url;\n\t\t\tif (typeof opts === 'string') {\n\t\t\t\turl = normalizeUrlObject(urlLib.parse(opts));\n\t\t\t\topts = {};\n\t\t\t} else if (opts instanceof urlLib.URL) {\n\t\t\t\turl = normalizeUrlObject(urlLib.parse(opts.toString()));\n\t\t\t\topts = {};\n\t\t\t} else {\n\t\t\t\tconst [pathname, ...searchParts] = (opts.path || '').split('?');\n\t\t\t\tconst search = searchParts.length > 0 ?\n\t\t\t\t\t`?${searchParts.join('?')}` :\n\t\t\t\t\t'';\n\t\t\t\turl = normalizeUrlObject({ ...opts, pathname, search });\n\t\t\t}\n\n\t\t\topts = {\n\t\t\t\theaders: {},\n\t\t\t\tmethod: 'GET',\n\t\t\t\tcache: true,\n\t\t\t\tstrictTtl: false,\n\t\t\t\tautomaticFailover: false,\n\t\t\t\t...opts,\n\t\t\t\t...urlObjectToRequestOptions(url)\n\t\t\t};\n\t\t\topts.headers = lowercaseKeys(opts.headers);\n\n\t\t\tconst ee = new EventEmitter();\n\t\t\tconst normalizedUrlString = normalizeUrl(\n\t\t\t\turlLib.format(url),\n\t\t\t\t{\n\t\t\t\t\tstripWWW: false,\n\t\t\t\t\tremoveTrailingSlash: false,\n\t\t\t\t\tstripAuthentication: false\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst key = `${opts.method}:${normalizedUrlString}`;\n\t\t\tlet revalidate = false;\n\t\t\tlet madeRequest = false;\n\n\t\t\tconst makeRequest = opts => {\n\t\t\t\tmadeRequest = true;\n\t\t\t\tlet requestErrored = false;\n\t\t\t\tlet requestErrorCallback;\n\n\t\t\t\tconst requestErrorPromise = new Promise(resolve => {\n\t\t\t\t\trequestErrorCallback = () => {\n\t\t\t\t\t\tif (!requestErrored) {\n\t\t\t\t\t\t\trequestErrored = true;\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\tconst handler = response => {\n\t\t\t\t\tif (revalidate && !opts.forceRefresh) {\n\t\t\t\t\t\tresponse.status = response.statusCode;\n\t\t\t\t\t\tconst revalidatedPolicy = CachePolicy.fromObject(revalidate.cachePolicy).revalidatedPolicy(opts, response);\n\t\t\t\t\t\tif (!revalidatedPolicy.modified) {\n\t\t\t\t\t\t\tconst headers = revalidatedPolicy.policy.responseHeaders();\n\t\t\t\t\t\t\tresponse = new Response(revalidate.statusCode, headers, revalidate.body, revalidate.url);\n\t\t\t\t\t\t\tresponse.cachePolicy = revalidatedPolicy.policy;\n\t\t\t\t\t\t\tresponse.fromCache = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!response.fromCache) {\n\t\t\t\t\t\tresponse.cachePolicy = new CachePolicy(opts, response, opts);\n\t\t\t\t\t\tresponse.fromCache = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet clonedResponse;\n\t\t\t\t\tif (opts.cache && response.cachePolicy.storable()) {\n\t\t\t\t\t\tclonedResponse = cloneResponse(response);\n\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst bodyPromise = getStream.buffer(response);\n\n\t\t\t\t\t\t\t\tawait Promise.race([\n\t\t\t\t\t\t\t\t\trequestErrorPromise,\n\t\t\t\t\t\t\t\t\tnew Promise(resolve => response.once('end', resolve))\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (requestErrored) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst body = await bodyPromise;\n\n\t\t\t\t\t\t\t\tconst value = {\n\t\t\t\t\t\t\t\t\tcachePolicy: response.cachePolicy.toObject(),\n\t\t\t\t\t\t\t\t\turl: response.url,\n\t\t\t\t\t\t\t\t\tstatusCode: response.fromCache ? revalidate.statusCode : response.statusCode,\n\t\t\t\t\t\t\t\t\tbody\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet ttl = opts.strictTtl ? response.cachePolicy.timeToLive() : undefined;\n\t\t\t\t\t\t\t\tif (opts.maxTtl) {\n\t\t\t\t\t\t\t\t\tttl = ttl ? Math.min(ttl, opts.maxTtl) : opts.maxTtl;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tawait this.cache.set(key, value, ttl);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})();\n\t\t\t\t\t} else if (opts.cache && revalidate) {\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait this.cache.delete(key);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})();\n\t\t\t\t\t}\n\n\t\t\t\t\tee.emit('response', clonedResponse || response);\n\t\t\t\t\tif (typeof cb === 'function') {\n\t\t\t\t\t\tcb(clonedResponse || response);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\ttry {\n\t\t\t\t\tconst req = request(opts, handler);\n\t\t\t\t\treq.once('error', requestErrorCallback);\n\t\t\t\t\treq.once('abort', requestErrorCallback);\n\t\t\t\t\tee.emit('request', req);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tee.emit('error', new CacheableRequest.RequestError(error));\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t(async () => {\n\t\t\t\tconst get = async opts => {\n\t\t\t\t\tawait Promise.resolve();\n\n\t\t\t\t\tconst cacheEntry = opts.cache ? await this.cache.get(key) : undefined;\n\t\t\t\t\tif (typeof cacheEntry === 'undefined') {\n\t\t\t\t\t\treturn makeRequest(opts);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst policy = CachePolicy.fromObject(cacheEntry.cachePolicy);\n\t\t\t\t\tif (policy.satisfiesWithoutRevalidation(opts) && !opts.forceRefresh) {\n\t\t\t\t\t\tconst headers = policy.responseHeaders();\n\t\t\t\t\t\tconst response = new Response(cacheEntry.statusCode, headers, cacheEntry.body, cacheEntry.url);\n\t\t\t\t\t\tresponse.cachePolicy = policy;\n\t\t\t\t\t\tresponse.fromCache = true;\n\n\t\t\t\t\t\tee.emit('response', response);\n\t\t\t\t\t\tif (typeof cb === 'function') {\n\t\t\t\t\t\t\tcb(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trevalidate = cacheEntry;\n\t\t\t\t\t\topts.headers = policy.revalidationHeaders(opts);\n\t\t\t\t\t\tmakeRequest(opts);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst errorHandler = error => ee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\tthis.cache.once('error', errorHandler);\n\t\t\t\tee.on('response', () => this.cache.removeListener('error', errorHandler));\n\n\t\t\t\ttry {\n\t\t\t\t\tawait get(opts);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (opts.automaticFailover && !madeRequest) {\n\t\t\t\t\t\tmakeRequest(opts);\n\t\t\t\t\t}\n\n\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t}\n\t\t\t})();\n\n\t\t\treturn ee;\n\t\t};\n\t}\n}\n\nfunction urlObjectToRequestOptions(url) {\n\tconst options = { ...url };\n\toptions.path = `${url.pathname || '/'}${url.search || ''}`;\n\tdelete options.pathname;\n\tdelete options.search;\n\treturn options;\n}\n\nfunction normalizeUrlObject(url) {\n\t// If url was parsed by url.parse or new URL:\n\t// - hostname will be set\n\t// - host will be hostname[:port]\n\t// - port will be set if it was explicit in the parsed string\n\t// Otherwise, url was from request options:\n\t// - hostname or host may be set\n\t// - host shall not have port encoded\n\treturn {\n\t\tprotocol: url.protocol,\n\t\tauth: url.auth,\n\t\thostname: url.hostname || url.host || 'localhost',\n\t\tport: url.port,\n\t\tpathname: url.pathname,\n\t\tsearch: url.search\n\t};\n}\n\nCacheableRequest.RequestError = class extends Error {\n\tconstructor(error) {\n\t\tsuper(error.message);\n\t\tthis.name = 'RequestError';\n\t\tObject.assign(this, error);\n\t}\n};\n\nCacheableRequest.CacheError = class extends Error {\n\tconstructor(error) {\n\t\tsuper(error.message);\n\t\tthis.name = 'CacheError';\n\t\tObject.assign(this, error);\n\t}\n};\n\nmodule.exports = CacheableRequest;\n", "'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProperties = [\n\t'aborted',\n\t'complete',\n\t'headers',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'method',\n\t'rawHeaders',\n\t'rawTrailers',\n\t'setTimeout',\n\t'socket',\n\t'statusCode',\n\t'statusMessage',\n\t'trailers',\n\t'url'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tif (toStream._readableState.autoDestroy) {\n\t\tthrow new Error('The second stream must have the `autoDestroy` option set to `false`');\n\t}\n\n\tconst fromProperties = new Set(Object.keys(fromStream).concat(knownProperties));\n\n\tconst properties = {};\n\n\tfor (const property of fromProperties) {\n\t\t// Don't overwrite existing properties.\n\t\tif (property in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tproperties[property] = {\n\t\t\tget() {\n\t\t\t\tconst value = fromStream[property];\n\t\t\t\tconst isFunction = typeof value === 'function';\n\n\t\t\t\treturn isFunction ? value.bind(fromStream) : value;\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tfromStream[property] = value;\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false\n\t\t};\n\t}\n\n\tObject.defineProperties(toStream, properties);\n\n\tfromStream.once('aborted', () => {\n\t\ttoStream.destroy();\n\n\t\ttoStream.emit('aborted');\n\t});\n\n\tfromStream.once('close', () => {\n\t\tif (fromStream.complete) {\n\t\t\tif (toStream.readable) {\n\t\t\t\ttoStream.once('end', () => {\n\t\t\t\t\ttoStream.emit('close');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoStream.emit('close');\n\t\t\t}\n\t\t} else {\n\t\t\ttoStream.emit('close');\n\t\t}\n\t});\n\n\treturn toStream;\n};\n", "'use strict';\nconst {Transform, PassThrough} = require('stream');\nconst zlib = require('zlib');\nconst mimicResponse = require('mimic-response');\n\nmodule.exports = response => {\n\tconst contentEncoding = (response.headers['content-encoding'] || '').toLowerCase();\n\n\tif (!['gzip', 'deflate', 'br'].includes(contentEncoding)) {\n\t\treturn response;\n\t}\n\n\t// TODO: Remove this when targeting Node.js 12.\n\tconst isBrotli = contentEncoding === 'br';\n\tif (isBrotli && typeof zlib.createBrotliDecompress !== 'function') {\n\t\tresponse.destroy(new Error('Brotli is not supported on Node.js < 12'));\n\t\treturn response;\n\t}\n\n\tlet isEmpty = true;\n\n\tconst checker = new Transform({\n\t\ttransform(data, _encoding, callback) {\n\t\t\tisEmpty = false;\n\n\t\t\tcallback(null, data);\n\t\t},\n\n\t\tflush(callback) {\n\t\t\tcallback();\n\t\t}\n\t});\n\n\tconst finalStream = new PassThrough({\n\t\tautoDestroy: false,\n\t\tdestroy(error, callback) {\n\t\t\tresponse.destroy();\n\n\t\t\tcallback(error);\n\t\t}\n\t});\n\n\tconst decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();\n\n\tdecompressStream.once('error', error => {\n\t\tif (isEmpty && !response.readable) {\n\t\t\tfinalStream.end();\n\t\t\treturn;\n\t\t}\n\n\t\tfinalStream.destroy(error);\n\t});\n\n\tmimicResponse(response, finalStream);\n\tresponse.pipe(checker).pipe(decompressStream).pipe(finalStream);\n\n\treturn finalStream;\n};\n", "'use strict';\n\nclass QuickLRU {\n\tconstructor(options = {}) {\n\t\tif (!(options.maxSize && options.maxSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tthis.maxSize = options.maxSize;\n\t\tthis.onEviction = options.onEviction;\n\t\tthis.cache = new Map();\n\t\tthis.oldCache = new Map();\n\t\tthis._size = 0;\n\t}\n\n\t_set(key, value) {\n\t\tthis.cache.set(key, value);\n\t\tthis._size++;\n\n\t\tif (this._size >= this.maxSize) {\n\t\t\tthis._size = 0;\n\n\t\t\tif (typeof this.onEviction === 'function') {\n\t\t\t\tfor (const [key, value] of this.oldCache.entries()) {\n\t\t\t\t\tthis.onEviction(key, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.oldCache = this.cache;\n\t\t\tthis.cache = new Map();\n\t\t}\n\t}\n\n\tget(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\tconst value = this.oldCache.get(key);\n\t\t\tthis.oldCache.delete(key);\n\t\t\tthis._set(key, value);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tset(key, value) {\n\t\tif (this.cache.has(key)) {\n\t\t\tthis.cache.set(key, value);\n\t\t} else {\n\t\t\tthis._set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\thas(key) {\n\t\treturn this.cache.has(key) || this.oldCache.has(key);\n\t}\n\n\tpeek(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn this.oldCache.get(key);\n\t\t}\n\t}\n\n\tdelete(key) {\n\t\tconst deleted = this.cache.delete(key);\n\t\tif (deleted) {\n\t\t\tthis._size--;\n\t\t}\n\n\t\treturn this.oldCache.delete(key) || deleted;\n\t}\n\n\tclear() {\n\t\tthis.cache.clear();\n\t\tthis.oldCache.clear();\n\t\tthis._size = 0;\n\t}\n\n\t* keys() {\n\t\tfor (const [key] of this) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const [, value] of this) {\n\t\t\tyield value;\n\t\t}\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const item of this.cache) {\n\t\t\tyield item;\n\t\t}\n\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t}\n\t}\n\n\tget size() {\n\t\tlet oldCacheSize = 0;\n\t\tfor (const key of this.oldCache.keys()) {\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\toldCacheSize++;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this._size + oldCacheSize, this.maxSize);\n\t}\n}\n\nmodule.exports = QuickLRU;\n", "'use strict';\nconst EventEmitter = require('events');\nconst tls = require('tls');\nconst http2 = require('http2');\nconst QuickLRU = require('quick-lru');\n\nconst kCurrentStreamsCount = Symbol('currentStreamsCount');\nconst kRequest = Symbol('request');\nconst kOriginSet = Symbol('cachedOriginSet');\nconst kGracefullyClosing = Symbol('gracefullyClosing');\n\nconst nameKeys = [\n\t// `http2.connect()` options\n\t'maxDeflateDynamicTableSize',\n\t'maxSessionMemory',\n\t'maxHeaderListPairs',\n\t'maxOutstandingPings',\n\t'maxReservedRemoteStreams',\n\t'maxSendHeaderBlockLength',\n\t'paddingStrategy',\n\n\t// `tls.connect()` options\n\t'localAddress',\n\t'path',\n\t'rejectUnauthorized',\n\t'minDHSize',\n\n\t// `tls.createSecureContext()` options\n\t'ca',\n\t'cert',\n\t'clientCertEngine',\n\t'ciphers',\n\t'key',\n\t'pfx',\n\t'servername',\n\t'minVersion',\n\t'maxVersion',\n\t'secureProtocol',\n\t'crl',\n\t'honorCipherOrder',\n\t'ecdhCurve',\n\t'dhparam',\n\t'secureOptions',\n\t'sessionIdContext'\n];\n\nconst getSortedIndex = (array, value, compare) => {\n\tlet low = 0;\n\tlet high = array.length;\n\n\twhile (low < high) {\n\t\tconst mid = (low + high) >>> 1;\n\n\t\t/* istanbul ignore next */\n\t\tif (compare(array[mid], value)) {\n\t\t\t// This never gets called because we use descending sort. Better to have this anyway.\n\t\t\tlow = mid + 1;\n\t\t} else {\n\t\t\thigh = mid;\n\t\t}\n\t}\n\n\treturn low;\n};\n\nconst compareSessions = (a, b) => {\n\treturn a.remoteSettings.maxConcurrentStreams > b.remoteSettings.maxConcurrentStreams;\n};\n\n// See https://tools.ietf.org/html/rfc8336\nconst closeCoveredSessions = (where, session) => {\n\t// Clients SHOULD NOT emit new requests on any connection whose Origin\n\t// Set is a proper subset of another connection's Origin Set, and they\n\t// SHOULD close it once all outstanding requests are satisfied.\n\tfor (const coveredSession of where) {\n\t\tif (\n\t\t\t// The set is a proper subset when its length is less than the other set.\n\t\t\tcoveredSession[kOriginSet].length < session[kOriginSet].length &&\n\n\t\t\t// And the other set includes all elements of the subset.\n\t\t\tcoveredSession[kOriginSet].every(origin => session[kOriginSet].includes(origin)) &&\n\n\t\t\t// Makes sure that the session can handle all requests from the covered session.\n\t\t\tcoveredSession[kCurrentStreamsCount] + session[kCurrentStreamsCount] <= session.remoteSettings.maxConcurrentStreams\n\t\t) {\n\t\t\t// This allows pending requests to finish and prevents making new requests.\n\t\t\tgracefullyClose(coveredSession);\n\t\t}\n\t}\n};\n\n// This is basically inverted `closeCoveredSessions(...)`.\nconst closeSessionIfCovered = (where, coveredSession) => {\n\tfor (const session of where) {\n\t\tif (\n\t\t\tcoveredSession[kOriginSet].length < session[kOriginSet].length &&\n\t\t\tcoveredSession[kOriginSet].every(origin => session[kOriginSet].includes(origin)) &&\n\t\t\tcoveredSession[kCurrentStreamsCount] + session[kCurrentStreamsCount] <= session.remoteSettings.maxConcurrentStreams\n\t\t) {\n\t\t\tgracefullyClose(coveredSession);\n\t\t}\n\t}\n};\n\nconst getSessions = ({agent, isFree}) => {\n\tconst result = {};\n\n\t// eslint-disable-next-line guard-for-in\n\tfor (const normalizedOptions in agent.sessions) {\n\t\tconst sessions = agent.sessions[normalizedOptions];\n\n\t\tconst filtered = sessions.filter(session => {\n\t\t\tconst result = session[Agent.kCurrentStreamsCount] < session.remoteSettings.maxConcurrentStreams;\n\n\t\t\treturn isFree ? result : !result;\n\t\t});\n\n\t\tif (filtered.length !== 0) {\n\t\t\tresult[normalizedOptions] = filtered;\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst gracefullyClose = session => {\n\tsession[kGracefullyClosing] = true;\n\n\tif (session[kCurrentStreamsCount] === 0) {\n\t\tsession.close();\n\t}\n};\n\nclass Agent extends EventEmitter {\n\tconstructor({timeout = 60000, maxSessions = Infinity, maxFreeSessions = 10, maxCachedTlsSessions = 100} = {}) {\n\t\tsuper();\n\n\t\t// A session is considered busy when its current streams count\n\t\t// is equal to or greater than the `maxConcurrentStreams` value.\n\n\t\t// A session is considered free when its current streams count\n\t\t// is less than the `maxConcurrentStreams` value.\n\n\t\t// SESSIONS[NORMALIZED_OPTIONS] = [];\n\t\tthis.sessions = {};\n\n\t\t// The queue for creating new sessions. It looks like this:\n\t\t// QUEUE[NORMALIZED_OPTIONS][NORMALIZED_ORIGIN] = ENTRY_FUNCTION\n\t\t//\n\t\t// The entry function has `listeners`, `completed` and `destroyed` properties.\n\t\t// `listeners` is an array of objects containing `resolve` and `reject` functions.\n\t\t// `completed` is a boolean. It's set to true after ENTRY_FUNCTION is executed.\n\t\t// `destroyed` is a boolean. If it's set to true, the session will be destroyed if hasn't connected yet.\n\t\tthis.queue = {};\n\n\t\t// Each session will use this timeout value.\n\t\tthis.timeout = timeout;\n\n\t\t// Max sessions in total\n\t\tthis.maxSessions = maxSessions;\n\n\t\t// Max free sessions in total\n\t\t// TODO: decreasing `maxFreeSessions` should close some sessions\n\t\tthis.maxFreeSessions = maxFreeSessions;\n\n\t\tthis._freeSessionsCount = 0;\n\t\tthis._sessionsCount = 0;\n\n\t\t// We don't support push streams by default.\n\t\tthis.settings = {\n\t\t\tenablePush: false\n\t\t};\n\n\t\t// Reusing TLS sessions increases performance.\n\t\tthis.tlsSessionCache = new QuickLRU({maxSize: maxCachedTlsSessions});\n\t}\n\n\tstatic normalizeOrigin(url, servername) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = new URL(url);\n\t\t}\n\n\t\tif (servername && url.hostname !== servername) {\n\t\t\turl.hostname = servername;\n\t\t}\n\n\t\treturn url.origin;\n\t}\n\n\tnormalizeOptions(options) {\n\t\tlet normalized = '';\n\n\t\tif (options) {\n\t\t\tfor (const key of nameKeys) {\n\t\t\t\tif (options[key]) {\n\t\t\t\t\tnormalized += `:${options[key]}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn normalized;\n\t}\n\n\t_tryToCreateNewSession(normalizedOptions, normalizedOrigin) {\n\t\tif (!(normalizedOptions in this.queue) || !(normalizedOrigin in this.queue[normalizedOptions])) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this.queue[normalizedOptions][normalizedOrigin];\n\n\t\t// The entry function can be run only once.\n\t\t// BUG: The session may be never created when:\n\t\t// - the first condition is false AND\n\t\t// - this function is never called with the same arguments in the future.\n\t\tif (this._sessionsCount < this.maxSessions && !item.completed) {\n\t\t\titem.completed = true;\n\n\t\t\titem();\n\t\t}\n\t}\n\n\tgetSession(origin, options, listeners) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (Array.isArray(listeners)) {\n\t\t\t\tlisteners = [...listeners];\n\n\t\t\t\t// Resolve the current promise ASAP, we're just moving the listeners.\n\t\t\t\t// They will be executed at a different time.\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\tlisteners = [{resolve, reject}];\n\t\t\t}\n\n\t\t\tconst normalizedOptions = this.normalizeOptions(options);\n\t\t\tconst normalizedOrigin = Agent.normalizeOrigin(origin, options && options.servername);\n\n\t\t\tif (normalizedOrigin === undefined) {\n\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\treject(new TypeError('The `origin` argument needs to be a string or an URL object'));\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (normalizedOptions in this.sessions) {\n\t\t\t\tconst sessions = this.sessions[normalizedOptions];\n\n\t\t\t\tlet maxConcurrentStreams = -1;\n\t\t\t\tlet currentStreamsCount = -1;\n\t\t\t\tlet optimalSession;\n\n\t\t\t\t// We could just do this.sessions[normalizedOptions].find(...) but that isn't optimal.\n\t\t\t\t// Additionally, we are looking for session which has biggest current pending streams count.\n\t\t\t\tfor (const session of sessions) {\n\t\t\t\t\tconst sessionMaxConcurrentStreams = session.remoteSettings.maxConcurrentStreams;\n\n\t\t\t\t\tif (sessionMaxConcurrentStreams < maxConcurrentStreams) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (session[kOriginSet].includes(normalizedOrigin)) {\n\t\t\t\t\t\tconst sessionCurrentStreamsCount = session[kCurrentStreamsCount];\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsessionCurrentStreamsCount >= sessionMaxConcurrentStreams ||\n\t\t\t\t\t\t\tsession[kGracefullyClosing] ||\n\t\t\t\t\t\t\t// Unfortunately the `close` event isn't called immediately,\n\t\t\t\t\t\t\t// so `session.destroyed` is `true`, but `session.closed` is `false`.\n\t\t\t\t\t\t\tsession.destroyed\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// We only need set this once.\n\t\t\t\t\t\tif (!optimalSession) {\n\t\t\t\t\t\t\tmaxConcurrentStreams = sessionMaxConcurrentStreams;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// We're looking for the session which has biggest current pending stream count,\n\t\t\t\t\t\t// in order to minimalize the amount of active sessions.\n\t\t\t\t\t\tif (sessionCurrentStreamsCount > currentStreamsCount) {\n\t\t\t\t\t\t\toptimalSession = session;\n\t\t\t\t\t\t\tcurrentStreamsCount = sessionCurrentStreamsCount;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (optimalSession) {\n\t\t\t\t\t/* istanbul ignore next: safety check */\n\t\t\t\t\tif (listeners.length !== 1) {\n\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\tconst error = new Error(\n\t\t\t\t\t\t\t\t`Expected the length of listeners to be 1, got ${listeners.length}.\\n` +\n\t\t\t\t\t\t\t\t'Please report this to https://github.com/szmarczak/http2-wrapper/'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlisteners[0].resolve(optimalSession);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (normalizedOptions in this.queue) {\n\t\t\t\tif (normalizedOrigin in this.queue[normalizedOptions]) {\n\t\t\t\t\t// There's already an item in the queue, just attach ourselves to it.\n\t\t\t\t\tthis.queue[normalizedOptions][normalizedOrigin].listeners.push(...listeners);\n\n\t\t\t\t\t// This shouldn't be executed here.\n\t\t\t\t\t// See the comment inside _tryToCreateNewSession.\n\t\t\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.queue[normalizedOptions] = {};\n\t\t\t}\n\n\t\t\t// The entry must be removed from the queue IMMEDIATELY when:\n\t\t\t// 1. the session connects successfully,\n\t\t\t// 2. an error occurs.\n\t\t\tconst removeFromQueue = () => {\n\t\t\t\t// Our entry can be replaced. We cannot remove the new one.\n\t\t\t\tif (normalizedOptions in this.queue && this.queue[normalizedOptions][normalizedOrigin] === entry) {\n\t\t\t\t\tdelete this.queue[normalizedOptions][normalizedOrigin];\n\n\t\t\t\t\tif (Object.keys(this.queue[normalizedOptions]).length === 0) {\n\t\t\t\t\t\tdelete this.queue[normalizedOptions];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// The main logic is here\n\t\t\tconst entry = () => {\n\t\t\t\tconst name = `${normalizedOrigin}:${normalizedOptions}`;\n\t\t\t\tlet receivedSettings = false;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst session = http2.connect(origin, {\n\t\t\t\t\t\tcreateConnection: this.createConnection,\n\t\t\t\t\t\tsettings: this.settings,\n\t\t\t\t\t\tsession: this.tlsSessionCache.get(name),\n\t\t\t\t\t\t...options\n\t\t\t\t\t});\n\t\t\t\t\tsession[kCurrentStreamsCount] = 0;\n\t\t\t\t\tsession[kGracefullyClosing] = false;\n\n\t\t\t\t\tconst isFree = () => session[kCurrentStreamsCount] < session.remoteSettings.maxConcurrentStreams;\n\t\t\t\t\tlet wasFree = true;\n\n\t\t\t\t\tsession.socket.once('session', tlsSession => {\n\t\t\t\t\t\tthis.tlsSessionCache.set(name, tlsSession);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('error', error => {\n\t\t\t\t\t\t// Listeners are empty when the session successfully connected.\n\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// The connection got broken, purge the cache.\n\t\t\t\t\t\tthis.tlsSessionCache.delete(name);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.setTimeout(this.timeout, () => {\n\t\t\t\t\t\t// Terminates all streams owned by this session.\n\t\t\t\t\t\t// TODO: Maybe the streams should have a \"Session timed out\" error?\n\t\t\t\t\t\tsession.destroy();\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('close', () => {\n\t\t\t\t\t\tif (receivedSettings) {\n\t\t\t\t\t\t\t// 1. If it wasn't free then no need to decrease because\n\t\t\t\t\t\t\t// it has been decreased already in session.request().\n\t\t\t\t\t\t\t// 2. `stream.once('close')` won't increment the count\n\t\t\t\t\t\t\t// because the session is already closed.\n\t\t\t\t\t\t\tif (wasFree) {\n\t\t\t\t\t\t\t\tthis._freeSessionsCount--;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis._sessionsCount--;\n\n\t\t\t\t\t\t\t// This cannot be moved to the stream logic,\n\t\t\t\t\t\t\t// because there may be a session that hadn't made a single request.\n\t\t\t\t\t\t\tconst where = this.sessions[normalizedOptions];\n\t\t\t\t\t\t\twhere.splice(where.indexOf(session), 1);\n\n\t\t\t\t\t\t\tif (where.length === 0) {\n\t\t\t\t\t\t\t\tdelete this.sessions[normalizedOptions];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Broken connection\n\t\t\t\t\t\t\tconst error = new Error('Session closed without receiving a SETTINGS frame');\n\t\t\t\t\t\t\terror.code = 'HTTP2WRAPPER_NOSETTINGS';\n\n\t\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tremoveFromQueue();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// There may be another session awaiting.\n\t\t\t\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Iterates over the queue and processes listeners.\n\t\t\t\t\tconst processListeners = () => {\n\t\t\t\t\t\tif (!(normalizedOptions in this.queue) || !isFree()) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const origin of session[kOriginSet]) {\n\t\t\t\t\t\t\tif (origin in this.queue[normalizedOptions]) {\n\t\t\t\t\t\t\t\tconst {listeners} = this.queue[normalizedOptions][origin];\n\n\t\t\t\t\t\t\t\t// Prevents session overloading.\n\t\t\t\t\t\t\t\twhile (listeners.length !== 0 && isFree()) {\n\t\t\t\t\t\t\t\t\t// We assume `resolve(...)` calls `request(...)` *directly*,\n\t\t\t\t\t\t\t\t\t// otherwise the session will get overloaded.\n\t\t\t\t\t\t\t\t\tlisteners.shift().resolve(session);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst where = this.queue[normalizedOptions];\n\t\t\t\t\t\t\t\tif (where[origin].listeners.length === 0) {\n\t\t\t\t\t\t\t\t\tdelete where[origin];\n\n\t\t\t\t\t\t\t\t\tif (Object.keys(where).length === 0) {\n\t\t\t\t\t\t\t\t\t\tdelete this.queue[normalizedOptions];\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// We're no longer free, no point in continuing.\n\t\t\t\t\t\t\t\tif (!isFree()) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t// The Origin Set cannot shrink. No need to check if it suddenly became covered by another one.\n\t\t\t\t\tsession.on('origin', () => {\n\t\t\t\t\t\tsession[kOriginSet] = session.originSet;\n\n\t\t\t\t\t\tif (!isFree()) {\n\t\t\t\t\t\t\t// The session is full.\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprocessListeners();\n\n\t\t\t\t\t\t// Close covered sessions (if possible).\n\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('remoteSettings', () => {\n\t\t\t\t\t\t// Fix Node.js bug preventing the process from exiting\n\t\t\t\t\t\tsession.ref();\n\t\t\t\t\t\tsession.unref();\n\n\t\t\t\t\t\tthis._sessionsCount++;\n\n\t\t\t\t\t\t// The Agent could have been destroyed already.\n\t\t\t\t\t\tif (entry.destroyed) {\n\t\t\t\t\t\t\tconst error = new Error('Agent has been destroyed');\n\n\t\t\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\t\t\tlistener.reject(error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsession.destroy();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsession[kOriginSet] = session.originSet;\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst where = this.sessions;\n\n\t\t\t\t\t\t\tif (normalizedOptions in where) {\n\t\t\t\t\t\t\t\tconst sessions = where[normalizedOptions];\n\t\t\t\t\t\t\t\tsessions.splice(getSortedIndex(sessions, session, compareSessions), 0, session);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twhere[normalizedOptions] = [session];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._freeSessionsCount += 1;\n\t\t\t\t\t\treceivedSettings = true;\n\n\t\t\t\t\t\tthis.emit('session', session);\n\n\t\t\t\t\t\tprocessListeners();\n\t\t\t\t\t\tremoveFromQueue();\n\n\t\t\t\t\t\t// TODO: Close last recently used (or least used?) session\n\t\t\t\t\t\tif (session[kCurrentStreamsCount] === 0 && this._freeSessionsCount > this.maxFreeSessions) {\n\t\t\t\t\t\t\tsession.close();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if we haven't managed to execute all listeners.\n\t\t\t\t\t\tif (listeners.length !== 0) {\n\t\t\t\t\t\t\t// Request for a new session with predefined listeners.\n\t\t\t\t\t\t\tthis.getSession(normalizedOrigin, options, listeners);\n\t\t\t\t\t\t\tlisteners.length = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// `session.remoteSettings.maxConcurrentStreams` might get increased\n\t\t\t\t\t\tsession.on('remoteSettings', () => {\n\t\t\t\t\t\t\tprocessListeners();\n\n\t\t\t\t\t\t\t// In case the Origin Set changes\n\t\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\t// Shim `session.request()` in order to catch all streams\n\t\t\t\t\tsession[kRequest] = session.request;\n\t\t\t\t\tsession.request = (headers, streamOptions) => {\n\t\t\t\t\t\tif (session[kGracefullyClosing]) {\n\t\t\t\t\t\t\tthrow new Error('The session is gracefully closing. No new streams are allowed.');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst stream = session[kRequest](headers, streamOptions);\n\n\t\t\t\t\t\t// The process won't exit until the session is closed or all requests are gone.\n\t\t\t\t\t\tsession.ref();\n\n\t\t\t\t\t\t++session[kCurrentStreamsCount];\n\n\t\t\t\t\t\tif (session[kCurrentStreamsCount] === session.remoteSettings.maxConcurrentStreams) {\n\t\t\t\t\t\t\tthis._freeSessionsCount--;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstream.once('close', () => {\n\t\t\t\t\t\t\twasFree = isFree();\n\n\t\t\t\t\t\t\t--session[kCurrentStreamsCount];\n\n\t\t\t\t\t\t\tif (!session.destroyed && !session.closed) {\n\t\t\t\t\t\t\t\tcloseSessionIfCovered(this.sessions[normalizedOptions], session);\n\n\t\t\t\t\t\t\t\tif (isFree() && !session.closed) {\n\t\t\t\t\t\t\t\t\tif (!wasFree) {\n\t\t\t\t\t\t\t\t\t\tthis._freeSessionsCount++;\n\n\t\t\t\t\t\t\t\t\t\twasFree = true;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst isEmpty = session[kCurrentStreamsCount] === 0;\n\n\t\t\t\t\t\t\t\t\tif (isEmpty) {\n\t\t\t\t\t\t\t\t\t\tsession.unref();\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tisEmpty &&\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tthis._freeSessionsCount > this.maxFreeSessions ||\n\t\t\t\t\t\t\t\t\t\t\tsession[kGracefullyClosing]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tsession.close();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t\t\t\t\t\tprocessListeners();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn stream;\n\t\t\t\t\t};\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tlistener.reject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveFromQueue();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tentry.listeners = listeners;\n\t\t\tentry.completed = false;\n\t\t\tentry.destroyed = false;\n\n\t\t\tthis.queue[normalizedOptions][normalizedOrigin] = entry;\n\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t});\n\t}\n\n\trequest(origin, options, headers, streamOptions) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.getSession(origin, options, [{\n\t\t\t\treject,\n\t\t\t\tresolve: session => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(session.request(headers, streamOptions));\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}]);\n\t\t});\n\t}\n\n\tcreateConnection(origin, options) {\n\t\treturn Agent.connect(origin, options);\n\t}\n\n\tstatic connect(origin, options) {\n\t\toptions.ALPNProtocols = ['h2'];\n\n\t\tconst port = origin.port || 443;\n\t\tconst host = origin.hostname || origin.host;\n\n\t\tif (typeof options.servername === 'undefined') {\n\t\t\toptions.servername = host;\n\t\t}\n\n\t\treturn tls.connect(port, host, options);\n\t}\n\n\tcloseFreeSessions() {\n\t\tfor (const sessions of Object.values(this.sessions)) {\n\t\t\tfor (const session of sessions) {\n\t\t\t\tif (session[kCurrentStreamsCount] === 0) {\n\t\t\t\t\tsession.close();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy(reason) {\n\t\tfor (const sessions of Object.values(this.sessions)) {\n\t\t\tfor (const session of sessions) {\n\t\t\t\tsession.destroy(reason);\n\t\t\t}\n\t\t}\n\n\t\tfor (const entriesOfAuthority of Object.values(this.queue)) {\n\t\t\tfor (const entry of Object.values(entriesOfAuthority)) {\n\t\t\t\tentry.destroyed = true;\n\t\t\t}\n\t\t}\n\n\t\t// New requests should NOT attach to destroyed sessions\n\t\tthis.queue = {};\n\t}\n\n\tget freeSessions() {\n\t\treturn getSessions({agent: this, isFree: true});\n\t}\n\n\tget busySessions() {\n\t\treturn getSessions({agent: this, isFree: false});\n\t}\n}\n\nAgent.kCurrentStreamsCount = kCurrentStreamsCount;\nAgent.kGracefullyClosing = kGracefullyClosing;\n\nmodule.exports = {\n\tAgent,\n\tglobalAgent: new Agent()\n};\n", "'use strict';\nconst {Readable} = require('stream');\n\nclass IncomingMessage extends Readable {\n\tconstructor(socket, highWaterMark) {\n\t\tsuper({\n\t\t\thighWaterMark,\n\t\t\tautoDestroy: false\n\t\t});\n\n\t\tthis.statusCode = null;\n\t\tthis.statusMessage = '';\n\t\tthis.httpVersion = '2.0';\n\t\tthis.httpVersionMajor = 2;\n\t\tthis.httpVersionMinor = 0;\n\t\tthis.headers = {};\n\t\tthis.trailers = {};\n\t\tthis.req = null;\n\n\t\tthis.aborted = false;\n\t\tthis.complete = false;\n\t\tthis.upgrade = null;\n\n\t\tthis.rawHeaders = [];\n\t\tthis.rawTrailers = [];\n\n\t\tthis.socket = socket;\n\t\tthis.connection = socket;\n\n\t\tthis._dumped = false;\n\t}\n\n\t_destroy(error) {\n\t\tthis.req._request.destroy(error);\n\t}\n\n\tsetTimeout(ms, callback) {\n\t\tthis.req.setTimeout(ms, callback);\n\t\treturn this;\n\t}\n\n\t_dump() {\n\t\tif (!this._dumped) {\n\t\t\tthis._dumped = true;\n\n\t\t\tthis.removeAllListeners('data');\n\t\t\tthis.resume();\n\t\t}\n\t}\n\n\t_read() {\n\t\tif (this.req) {\n\t\t\tthis.req._request.resume();\n\t\t}\n\t}\n}\n\nmodule.exports = IncomingMessage;\n", "'use strict';\n/* istanbul ignore file: https://github.com/nodejs/node/blob/a91293d4d9ab403046ab5eb022332e4e3d249bd3/lib/internal/url.js#L1257 */\n\nmodule.exports = url => {\n\tconst options = {\n\t\tprotocol: url.protocol,\n\t\thostname: typeof url.hostname === 'string' && url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname,\n\t\thost: url.host,\n\t\thash: url.hash,\n\t\tsearch: url.search,\n\t\tpathname: url.pathname,\n\t\thref: url.href,\n\t\tpath: `${url.pathname || ''}${url.search || ''}`\n\t};\n\n\tif (typeof url.port === 'string' && url.port.length !== 0) {\n\t\toptions.port = Number(url.port);\n\t}\n\n\tif (url.username || url.password) {\n\t\toptions.auth = `${url.username || ''}:${url.password || ''}`;\n\t}\n\n\treturn options;\n};\n", "'use strict';\n\nmodule.exports = (from, to, events) => {\n\tfor (const event of events) {\n\t\tfrom.on(event, (...args) => to.emit(event, ...args));\n\t}\n};\n", "'use strict';\n\nmodule.exports = header => {\n\tswitch (header) {\n\t\tcase ':method':\n\t\tcase ':scheme':\n\t\tcase ':authority':\n\t\tcase ':path':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n", "'use strict';\n/* istanbul ignore file: https://github.com/nodejs/node/blob/master/lib/internal/errors.js */\n\nconst makeError = (Base, key, getMessage) => {\n\tmodule.exports[key] = class NodeError extends Base {\n\t\tconstructor(...args) {\n\t\t\tsuper(typeof getMessage === 'string' ? getMessage : getMessage(args));\n\t\t\tthis.name = `${super.name} [${key}]`;\n\t\t\tthis.code = key;\n\t\t}\n\t};\n};\n\nmakeError(TypeError, 'ERR_INVALID_ARG_TYPE', args => {\n\tconst type = args[0].includes('.') ? 'property' : 'argument';\n\n\tlet valid = args[1];\n\tconst isManyTypes = Array.isArray(valid);\n\n\tif (isManyTypes) {\n\t\tvalid = `${valid.slice(0, -1).join(', ')} or ${valid.slice(-1)}`;\n\t}\n\n\treturn `The \"${args[0]}\" ${type} must be ${isManyTypes ? 'one of' : 'of'} type ${valid}. Received ${typeof args[2]}`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_PROTOCOL', args => {\n\treturn `Protocol \"${args[0]}\" not supported. Expected \"${args[1]}\"`;\n});\n\nmakeError(Error, 'ERR_HTTP_HEADERS_SENT', args => {\n\treturn `Cannot ${args[0]} headers after they are sent to the client`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_HTTP_TOKEN', args => {\n\treturn `${args[0]} must be a valid HTTP token [${args[1]}]`;\n});\n\nmakeError(TypeError, 'ERR_HTTP_INVALID_HEADER_VALUE', args => {\n\treturn `Invalid value \"${args[0]} for header \"${args[1]}\"`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_CHAR', args => {\n\treturn `Invalid character in ${args[0]} [${args[1]}]`;\n});\n", "'use strict';\nconst http2 = require('http2');\nconst {Writable} = require('stream');\nconst {Agent, globalAgent} = require('./agent');\nconst IncomingMessage = require('./incoming-message');\nconst urlToOptions = require('./utils/url-to-options');\nconst proxyEvents = require('./utils/proxy-events');\nconst isRequestPseudoHeader = require('./utils/is-request-pseudo-header');\nconst {\n\tERR_INVALID_ARG_TYPE,\n\tERR_INVALID_PROTOCOL,\n\tERR_HTTP_HEADERS_SENT,\n\tERR_INVALID_HTTP_TOKEN,\n\tERR_HTTP_INVALID_HEADER_VALUE,\n\tERR_INVALID_CHAR\n} = require('./utils/errors');\n\nconst {\n\tHTTP2_HEADER_STATUS,\n\tHTTP2_HEADER_METHOD,\n\tHTTP2_HEADER_PATH,\n\tHTTP2_METHOD_CONNECT\n} = http2.constants;\n\nconst kHeaders = Symbol('headers');\nconst kOrigin = Symbol('origin');\nconst kSession = Symbol('session');\nconst kOptions = Symbol('options');\nconst kFlushedHeaders = Symbol('flushedHeaders');\nconst kJobs = Symbol('jobs');\n\nconst isValidHttpToken = /^[\\^`\\-\\w!#$%&*+.|~]+$/;\nconst isInvalidHeaderValue = /[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/;\n\nclass ClientRequest extends Writable {\n\tconstructor(input, options, callback) {\n\t\tsuper({\n\t\t\tautoDestroy: false\n\t\t});\n\n\t\tconst hasInput = typeof input === 'string' || input instanceof URL;\n\t\tif (hasInput) {\n\t\t\tinput = urlToOptions(input instanceof URL ? input : new URL(input));\n\t\t}\n\n\t\tif (typeof options === 'function' || options === undefined) {\n\t\t\t// (options, callback)\n\t\t\tcallback = options;\n\t\t\toptions = hasInput ? input : {...input};\n\t\t} else {\n\t\t\t// (input, options, callback)\n\t\t\toptions = {...input, ...options};\n\t\t}\n\n\t\tif (options.h2session) {\n\t\t\tthis[kSession] = options.h2session;\n\t\t} else if (options.agent === false) {\n\t\t\tthis.agent = new Agent({maxFreeSessions: 0});\n\t\t} else if (typeof options.agent === 'undefined' || options.agent === null) {\n\t\t\tif (typeof options.createConnection === 'function') {\n\t\t\t\t// This is a workaround - we don't have to create the session on our own.\n\t\t\t\tthis.agent = new Agent({maxFreeSessions: 0});\n\t\t\t\tthis.agent.createConnection = options.createConnection;\n\t\t\t} else {\n\t\t\t\tthis.agent = globalAgent;\n\t\t\t}\n\t\t} else if (typeof options.agent.request === 'function') {\n\t\t\tthis.agent = options.agent;\n\t\t} else {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('options.agent', ['Agent-like Object', 'undefined', 'false'], options.agent);\n\t\t}\n\n\t\tif (options.protocol && options.protocol !== 'https:') {\n\t\t\tthrow new ERR_INVALID_PROTOCOL(options.protocol, 'https:');\n\t\t}\n\n\t\tconst port = options.port || options.defaultPort || (this.agent && this.agent.defaultPort) || 443;\n\t\tconst host = options.hostname || options.host || 'localhost';\n\n\t\t// Don't enforce the origin via options. It may be changed in an Agent.\n\t\tdelete options.hostname;\n\t\tdelete options.host;\n\t\tdelete options.port;\n\n\t\tconst {timeout} = options;\n\t\toptions.timeout = undefined;\n\n\t\tthis[kHeaders] = Object.create(null);\n\t\tthis[kJobs] = [];\n\n\t\tthis.socket = null;\n\t\tthis.connection = null;\n\n\t\tthis.method = options.method || 'GET';\n\t\tthis.path = options.path;\n\n\t\tthis.res = null;\n\t\tthis.aborted = false;\n\t\tthis.reusedSocket = false;\n\n\t\tif (options.headers) {\n\t\t\tfor (const [header, value] of Object.entries(options.headers)) {\n\t\t\t\tthis.setHeader(header, value);\n\t\t\t}\n\t\t}\n\n\t\tif (options.auth && !('authorization' in this[kHeaders])) {\n\t\t\tthis[kHeaders].authorization = 'Basic ' + Buffer.from(options.auth).toString('base64');\n\t\t}\n\n\t\toptions.session = options.tlsSession;\n\t\toptions.path = options.socketPath;\n\n\t\tthis[kOptions] = options;\n\n\t\t// Clients that generate HTTP/2 requests directly SHOULD use the :authority pseudo-header field instead of the Host header field.\n\t\tif (port === 443) {\n\t\t\tthis[kOrigin] = `https://${host}`;\n\n\t\t\tif (!(':authority' in this[kHeaders])) {\n\t\t\t\tthis[kHeaders][':authority'] = host;\n\t\t\t}\n\t\t} else {\n\t\t\tthis[kOrigin] = `https://${host}:${port}`;\n\n\t\t\tif (!(':authority' in this[kHeaders])) {\n\t\t\t\tthis[kHeaders][':authority'] = `${host}:${port}`;\n\t\t\t}\n\t\t}\n\n\t\tif (timeout) {\n\t\t\tthis.setTimeout(timeout);\n\t\t}\n\n\t\tif (callback) {\n\t\t\tthis.once('response', callback);\n\t\t}\n\n\t\tthis[kFlushedHeaders] = false;\n\t}\n\n\tget method() {\n\t\treturn this[kHeaders][HTTP2_HEADER_METHOD];\n\t}\n\n\tset method(value) {\n\t\tif (value) {\n\t\t\tthis[kHeaders][HTTP2_HEADER_METHOD] = value.toUpperCase();\n\t\t}\n\t}\n\n\tget path() {\n\t\treturn this[kHeaders][HTTP2_HEADER_PATH];\n\t}\n\n\tset path(value) {\n\t\tif (value) {\n\t\t\tthis[kHeaders][HTTP2_HEADER_PATH] = value;\n\t\t}\n\t}\n\n\tget _mustNotHaveABody() {\n\t\treturn this.method === 'GET' || this.method === 'HEAD' || this.method === 'DELETE';\n\t}\n\n\t_write(chunk, encoding, callback) {\n\t\t// https://github.com/nodejs/node/blob/654df09ae0c5e17d1b52a900a545f0664d8c7627/lib/internal/http2/util.js#L148-L156\n\t\tif (this._mustNotHaveABody) {\n\t\t\tcallback(new Error('The GET, HEAD and DELETE methods must NOT have a body'));\n\t\t\t/* istanbul ignore next: Node.js 12 throws directly */\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flushHeaders();\n\n\t\tconst callWrite = () => this._request.write(chunk, encoding, callback);\n\t\tif (this._request) {\n\t\t\tcallWrite();\n\t\t} else {\n\t\t\tthis[kJobs].push(callWrite);\n\t\t}\n\t}\n\n\t_final(callback) {\n\t\tif (this.destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flushHeaders();\n\n\t\tconst callEnd = () => {\n\t\t\t// For GET, HEAD and DELETE\n\t\t\tif (this._mustNotHaveABody) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._request.end(callback);\n\t\t};\n\n\t\tif (this._request) {\n\t\t\tcallEnd();\n\t\t} else {\n\t\t\tthis[kJobs].push(callEnd);\n\t\t}\n\t}\n\n\tabort() {\n\t\tif (this.res && this.res.complete) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aborted) {\n\t\t\tprocess.nextTick(() => this.emit('abort'));\n\t\t}\n\n\t\tthis.aborted = true;\n\n\t\tthis.destroy();\n\t}\n\n\t_destroy(error, callback) {\n\t\tif (this.res) {\n\t\t\tthis.res._dump();\n\t\t}\n\n\t\tif (this._request) {\n\t\t\tthis._request.destroy();\n\t\t}\n\n\t\tcallback(error);\n\t}\n\n\tasync flushHeaders() {\n\t\tif (this[kFlushedHeaders] || this.destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis[kFlushedHeaders] = true;\n\n\t\tconst isConnectMethod = this.method === HTTP2_METHOD_CONNECT;\n\n\t\t// The real magic is here\n\t\tconst onStream = stream => {\n\t\t\tthis._request = stream;\n\n\t\t\tif (this.destroyed) {\n\t\t\t\tstream.destroy();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Forwards `timeout`, `continue`, `close` and `error` events to this instance.\n\t\t\tif (!isConnectMethod) {\n\t\t\t\tproxyEvents(stream, this, ['timeout', 'continue', 'close', 'error']);\n\t\t\t}\n\n\t\t\t// Wait for the `finish` event. We don't want to emit the `response` event\n\t\t\t// before `request.end()` is called.\n\t\t\tconst waitForEnd = fn => {\n\t\t\t\treturn (...args) => {\n\t\t\t\t\tif (!this.writable && !this.destroyed) {\n\t\t\t\t\t\tfn(...args);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.once('finish', () => {\n\t\t\t\t\t\t\tfn(...args);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t// This event tells we are ready to listen for the data.\n\t\t\tstream.once('response', waitForEnd((headers, flags, rawHeaders) => {\n\t\t\t\t// If we were to emit raw request stream, it would be as fast as the native approach.\n\t\t\t\t// Note that wrapping the raw stream in a Proxy instance won't improve the performance (already tested it).\n\t\t\t\tconst response = new IncomingMessage(this.socket, stream.readableHighWaterMark);\n\t\t\t\tthis.res = response;\n\n\t\t\t\tresponse.req = this;\n\t\t\t\tresponse.statusCode = headers[HTTP2_HEADER_STATUS];\n\t\t\t\tresponse.headers = headers;\n\t\t\t\tresponse.rawHeaders = rawHeaders;\n\n\t\t\t\tresponse.once('end', () => {\n\t\t\t\t\tif (this.aborted) {\n\t\t\t\t\t\tresponse.aborted = true;\n\t\t\t\t\t\tresponse.emit('aborted');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresponse.complete = true;\n\n\t\t\t\t\t\t// Has no effect, just be consistent with the Node.js behavior\n\t\t\t\t\t\tresponse.socket = null;\n\t\t\t\t\t\tresponse.connection = null;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (isConnectMethod) {\n\t\t\t\t\tresponse.upgrade = true;\n\n\t\t\t\t\t// The HTTP1 API says the socket is detached here,\n\t\t\t\t\t// but we can't do that so we pass the original HTTP2 request.\n\t\t\t\t\tif (this.emit('connect', response, stream, Buffer.alloc(0))) {\n\t\t\t\t\t\tthis.emit('close');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No listeners attached, destroy the original request.\n\t\t\t\t\t\tstream.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Forwards data\n\t\t\t\t\tstream.on('data', chunk => {\n\t\t\t\t\t\tif (!response._dumped && !response.push(chunk)) {\n\t\t\t\t\t\t\tstream.pause();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tstream.once('end', () => {\n\t\t\t\t\t\tresponse.push(null);\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!this.emit('response', response)) {\n\t\t\t\t\t\t// No listeners attached, dump the response.\n\t\t\t\t\t\tresponse._dump();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\t// Emits `information` event\n\t\t\tstream.once('headers', waitForEnd(\n\t\t\t\theaders => this.emit('information', {statusCode: headers[HTTP2_HEADER_STATUS]})\n\t\t\t));\n\n\t\t\tstream.once('trailers', waitForEnd((trailers, flags, rawTrailers) => {\n\t\t\t\tconst {res} = this;\n\n\t\t\t\t// Assigns trailers to the response object.\n\t\t\t\tres.trailers = trailers;\n\t\t\t\tres.rawTrailers = rawTrailers;\n\t\t\t}));\n\n\t\t\tconst {socket} = stream.session;\n\t\t\tthis.socket = socket;\n\t\t\tthis.connection = socket;\n\n\t\t\tfor (const job of this[kJobs]) {\n\t\t\t\tjob();\n\t\t\t}\n\n\t\t\tthis.emit('socket', this.socket);\n\t\t};\n\n\t\t// Makes a HTTP2 request\n\t\tif (this[kSession]) {\n\t\t\ttry {\n\t\t\t\tonStream(this[kSession].request(this[kHeaders]));\n\t\t\t} catch (error) {\n\t\t\t\tthis.emit('error', error);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.reusedSocket = true;\n\n\t\t\ttry {\n\t\t\t\tonStream(await this.agent.request(this[kOrigin], this[kOptions], this[kHeaders]));\n\t\t\t} catch (error) {\n\t\t\t\tthis.emit('error', error);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeader(name) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('name', 'string', name);\n\t\t}\n\n\t\treturn this[kHeaders][name.toLowerCase()];\n\t}\n\n\tget headersSent() {\n\t\treturn this[kFlushedHeaders];\n\t}\n\n\tremoveHeader(name) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('name', 'string', name);\n\t\t}\n\n\t\tif (this.headersSent) {\n\t\t\tthrow new ERR_HTTP_HEADERS_SENT('remove');\n\t\t}\n\n\t\tdelete this[kHeaders][name.toLowerCase()];\n\t}\n\n\tsetHeader(name, value) {\n\t\tif (this.headersSent) {\n\t\t\tthrow new ERR_HTTP_HEADERS_SENT('set');\n\t\t}\n\n\t\tif (typeof name !== 'string' || (!isValidHttpToken.test(name) && !isRequestPseudoHeader(name))) {\n\t\t\tthrow new ERR_INVALID_HTTP_TOKEN('Header name', name);\n\t\t}\n\n\t\tif (typeof value === 'undefined') {\n\t\t\tthrow new ERR_HTTP_INVALID_HEADER_VALUE(value, name);\n\t\t}\n\n\t\tif (isInvalidHeaderValue.test(value)) {\n\t\t\tthrow new ERR_INVALID_CHAR('header content', name);\n\t\t}\n\n\t\tthis[kHeaders][name.toLowerCase()] = value;\n\t}\n\n\tsetNoDelay() {\n\t\t// HTTP2 sockets cannot be malformed, do nothing.\n\t}\n\n\tsetSocketKeepAlive() {\n\t\t// HTTP2 sockets cannot be malformed, do nothing.\n\t}\n\n\tsetTimeout(ms, callback) {\n\t\tconst applyTimeout = () => this._request.setTimeout(ms, callback);\n\n\t\tif (this._request) {\n\t\t\tapplyTimeout();\n\t\t} else {\n\t\t\tthis[kJobs].push(applyTimeout);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tget maxHeadersCount() {\n\t\tif (!this.destroyed && this._request) {\n\t\t\treturn this._request.session.localSettings.maxHeaderListSize;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tset maxHeadersCount(_value) {\n\t\t// Updating HTTP2 settings would affect all requests, do nothing.\n\t}\n}\n\nmodule.exports = ClientRequest;\n", "'use strict';\nconst tls = require('tls');\n\nmodule.exports = (options = {}, connect = tls.connect) => new Promise((resolve, reject) => {\n\tlet timeout = false;\n\n\tlet socket;\n\n\tconst callback = async () => {\n\t\tawait socketPromise;\n\n\t\tsocket.off('timeout', onTimeout);\n\t\tsocket.off('error', reject);\n\n\t\tif (options.resolveSocket) {\n\t\t\tresolve({alpnProtocol: socket.alpnProtocol, socket, timeout});\n\n\t\t\tif (timeout) {\n\t\t\t\tawait Promise.resolve();\n\t\t\t\tsocket.emit('timeout');\n\t\t\t}\n\t\t} else {\n\t\t\tsocket.destroy();\n\t\t\tresolve({alpnProtocol: socket.alpnProtocol, timeout});\n\t\t}\n\t};\n\n\tconst onTimeout = async () => {\n\t\ttimeout = true;\n\t\tcallback();\n\t};\n\n\tconst socketPromise = (async () => {\n\t\ttry {\n\t\t\tsocket = await connect(options, callback);\n\n\t\t\tsocket.on('error', reject);\n\t\t\tsocket.once('timeout', onTimeout);\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t})();\n});\n", "'use strict';\nconst net = require('net');\n/* istanbul ignore file: https://github.com/nodejs/node/blob/v13.0.1/lib/_http_agent.js */\n\nmodule.exports = options => {\n\tlet servername = options.host;\n\tconst hostHeader = options.headers && options.headers.host;\n\n\tif (hostHeader) {\n\t\tif (hostHeader.startsWith('[')) {\n\t\t\tconst index = hostHeader.indexOf(']');\n\t\t\tif (index === -1) {\n\t\t\t\tservername = hostHeader;\n\t\t\t} else {\n\t\t\t\tservername = hostHeader.slice(1, -1);\n\t\t\t}\n\t\t} else {\n\t\t\tservername = hostHeader.split(':', 1)[0];\n\t\t}\n\t}\n\n\tif (net.isIP(servername)) {\n\t\treturn '';\n\t}\n\n\treturn servername;\n};\n", "'use strict';\nconst http = require('http');\nconst https = require('https');\nconst resolveALPN = require('resolve-alpn');\nconst QuickLRU = require('quick-lru');\nconst Http2ClientRequest = require('./client-request');\nconst calculateServerName = require('./utils/calculate-server-name');\nconst urlToOptions = require('./utils/url-to-options');\n\nconst cache = new QuickLRU({maxSize: 100});\nconst queue = new Map();\n\nconst installSocket = (agent, socket, options) => {\n\tsocket._httpMessage = {shouldKeepAlive: true};\n\n\tconst onFree = () => {\n\t\tagent.emit('free', socket, options);\n\t};\n\n\tsocket.on('free', onFree);\n\n\tconst onClose = () => {\n\t\tagent.removeSocket(socket, options);\n\t};\n\n\tsocket.on('close', onClose);\n\n\tconst onRemove = () => {\n\t\tagent.removeSocket(socket, options);\n\t\tsocket.off('close', onClose);\n\t\tsocket.off('free', onFree);\n\t\tsocket.off('agentRemove', onRemove);\n\t};\n\n\tsocket.on('agentRemove', onRemove);\n\n\tagent.emit('free', socket, options);\n};\n\nconst resolveProtocol = async options => {\n\tconst name = `${options.host}:${options.port}:${options.ALPNProtocols.sort()}`;\n\n\tif (!cache.has(name)) {\n\t\tif (queue.has(name)) {\n\t\t\tconst result = await queue.get(name);\n\t\t\treturn result.alpnProtocol;\n\t\t}\n\n\t\tconst {path, agent} = options;\n\t\toptions.path = options.socketPath;\n\n\t\tconst resultPromise = resolveALPN(options);\n\t\tqueue.set(name, resultPromise);\n\n\t\ttry {\n\t\t\tconst {socket, alpnProtocol} = await resultPromise;\n\t\t\tcache.set(name, alpnProtocol);\n\n\t\t\toptions.path = path;\n\n\t\t\tif (alpnProtocol === 'h2') {\n\t\t\t\t// https://github.com/nodejs/node/issues/33343\n\t\t\t\tsocket.destroy();\n\t\t\t} else {\n\t\t\t\tconst {globalAgent} = https;\n\t\t\t\tconst defaultCreateConnection = https.Agent.prototype.createConnection;\n\n\t\t\t\tif (agent) {\n\t\t\t\t\tif (agent.createConnection === defaultCreateConnection) {\n\t\t\t\t\t\tinstallSocket(agent, socket, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsocket.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else if (globalAgent.createConnection === defaultCreateConnection) {\n\t\t\t\t\tinstallSocket(globalAgent, socket, options);\n\t\t\t\t} else {\n\t\t\t\t\tsocket.destroy();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tqueue.delete(name);\n\n\t\t\treturn alpnProtocol;\n\t\t} catch (error) {\n\t\t\tqueue.delete(name);\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn cache.get(name);\n};\n\nmodule.exports = async (input, options, callback) => {\n\tif (typeof input === 'string' || input instanceof URL) {\n\t\tinput = urlToOptions(new URL(input));\n\t}\n\n\tif (typeof options === 'function') {\n\t\tcallback = options;\n\t\toptions = undefined;\n\t}\n\n\toptions = {\n\t\tALPNProtocols: ['h2', 'http/1.1'],\n\t\t...input,\n\t\t...options,\n\t\tresolveSocket: true\n\t};\n\n\tif (!Array.isArray(options.ALPNProtocols) || options.ALPNProtocols.length === 0) {\n\t\tthrow new Error('The `ALPNProtocols` option must be an Array with at least one entry');\n\t}\n\n\toptions.protocol = options.protocol || 'https:';\n\tconst isHttps = options.protocol === 'https:';\n\n\toptions.host = options.hostname || options.host || 'localhost';\n\toptions.session = options.tlsSession;\n\toptions.servername = options.servername || calculateServerName(options);\n\toptions.port = options.port || (isHttps ? 443 : 80);\n\toptions._defaultAgent = isHttps ? https.globalAgent : http.globalAgent;\n\n\tconst agents = options.agent;\n\n\tif (agents) {\n\t\tif (agents.addRequest) {\n\t\t\tthrow new Error('The `options.agent` object can contain only `http`, `https` or `http2` properties');\n\t\t}\n\n\t\toptions.agent = agents[isHttps ? 'https' : 'http'];\n\t}\n\n\tif (isHttps) {\n\t\tconst protocol = await resolveProtocol(options);\n\n\t\tif (protocol === 'h2') {\n\t\t\tif (agents) {\n\t\t\t\toptions.agent = agents.http2;\n\t\t\t}\n\n\t\t\treturn new Http2ClientRequest(options, callback);\n\t\t}\n\t}\n\n\treturn http.request(options, callback);\n};\n\nmodule.exports.protocolCache = cache;\n", "'use strict';\nconst http2 = require('http2');\nconst agent = require('./agent');\nconst ClientRequest = require('./client-request');\nconst IncomingMessage = require('./incoming-message');\nconst auto = require('./auto');\n\nconst request = (url, options, callback) => {\n\treturn new ClientRequest(url, options, callback);\n};\n\nconst get = (url, options, callback) => {\n\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\tconst req = new ClientRequest(url, options, callback);\n\treq.end();\n\n\treturn req;\n};\n\nmodule.exports = {\n\t...http2,\n\tClientRequest,\n\tIncomingMessage,\n\t...agent,\n\trequest,\n\tget,\n\tauto\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nexports.default = (body) => is_1.default.nodeStream(body) && is_1.default.function_(body.getBoundary);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = require(\"fs\");\nconst util_1 = require(\"util\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst is_form_data_1 = require(\"./is-form-data\");\nconst statAsync = util_1.promisify(fs_1.stat);\nexports.default = async (body, headers) => {\n if (headers && 'content-length' in headers) {\n return Number(headers['content-length']);\n }\n if (!body) {\n return 0;\n }\n if (is_1.default.string(body)) {\n return Buffer.byteLength(body);\n }\n if (is_1.default.buffer(body)) {\n return body.length;\n }\n if (is_form_data_1.default(body)) {\n return util_1.promisify(body.getLength.bind(body))();\n }\n if (body instanceof fs_1.ReadStream) {\n const { size } = await statAsync(body.path);\n if (size === 0) {\n return undefined;\n }\n return size;\n }\n return undefined;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction default_1(from, to, events) {\n const fns = {};\n for (const event of events) {\n fns[event] = (...args) => {\n to.emit(event, ...args);\n };\n from.on(event, fns[event]);\n }\n return () => {\n for (const event of events) {\n from.off(event, fns[event]);\n }\n };\n}\nexports.default = default_1;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// When attaching listeners, it's very easy to forget about them.\n// Especially if you do error handling and set timeouts.\n// So instead of checking if it's proper to throw an error on every timeout ever,\n// use this simple tool which will remove all listeners you have attached.\nexports.default = () => {\n const handlers = [];\n return {\n once(origin, event, fn) {\n origin.once(event, fn);\n handlers.push({ origin, event, fn });\n },\n unhandleAll() {\n for (const handler of handlers) {\n const { origin, event, fn } = handler;\n origin.removeListener(event, fn);\n }\n handlers.length = 0;\n }\n };\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeoutError = void 0;\nconst net = require(\"net\");\nconst unhandle_1 = require(\"./unhandle\");\nconst reentry = Symbol('reentry');\nconst noop = () => { };\nclass TimeoutError extends Error {\n constructor(threshold, event) {\n super(`Timeout awaiting '${event}' for ${threshold}ms`);\n this.event = event;\n this.name = 'TimeoutError';\n this.code = 'ETIMEDOUT';\n }\n}\nexports.TimeoutError = TimeoutError;\nexports.default = (request, delays, options) => {\n if (reentry in request) {\n return noop;\n }\n request[reentry] = true;\n const cancelers = [];\n const { once, unhandleAll } = unhandle_1.default();\n const addTimeout = (delay, callback, event) => {\n var _a;\n const timeout = setTimeout(callback, delay, delay, event);\n (_a = timeout.unref) === null || _a === void 0 ? void 0 : _a.call(timeout);\n const cancel = () => {\n clearTimeout(timeout);\n };\n cancelers.push(cancel);\n return cancel;\n };\n const { host, hostname } = options;\n const timeoutHandler = (delay, event) => {\n request.destroy(new TimeoutError(delay, event));\n };\n const cancelTimeouts = () => {\n for (const cancel of cancelers) {\n cancel();\n }\n unhandleAll();\n };\n request.once('error', error => {\n cancelTimeouts();\n // Save original behavior\n /* istanbul ignore next */\n if (request.listenerCount('error') === 0) {\n throw error;\n }\n });\n request.once('close', cancelTimeouts);\n once(request, 'response', (response) => {\n once(response, 'end', cancelTimeouts);\n });\n if (typeof delays.request !== 'undefined') {\n addTimeout(delays.request, timeoutHandler, 'request');\n }\n if (typeof delays.socket !== 'undefined') {\n const socketTimeoutHandler = () => {\n timeoutHandler(delays.socket, 'socket');\n };\n request.setTimeout(delays.socket, socketTimeoutHandler);\n // `request.setTimeout(0)` causes a memory leak.\n // We can just remove the listener and forget about the timer - it's unreffed.\n // See https://github.com/sindresorhus/got/issues/690\n cancelers.push(() => {\n request.removeListener('timeout', socketTimeoutHandler);\n });\n }\n once(request, 'socket', (socket) => {\n var _a;\n const { socketPath } = request;\n /* istanbul ignore next: hard to test */\n if (socket.connecting) {\n const hasPath = Boolean(socketPath !== null && socketPath !== void 0 ? socketPath : net.isIP((_a = hostname !== null && hostname !== void 0 ? hostname : host) !== null && _a !== void 0 ? _a : '') !== 0);\n if (typeof delays.lookup !== 'undefined' && !hasPath && typeof socket.address().address === 'undefined') {\n const cancelTimeout = addTimeout(delays.lookup, timeoutHandler, 'lookup');\n once(socket, 'lookup', cancelTimeout);\n }\n if (typeof delays.connect !== 'undefined') {\n const timeConnect = () => addTimeout(delays.connect, timeoutHandler, 'connect');\n if (hasPath) {\n once(socket, 'connect', timeConnect());\n }\n else {\n once(socket, 'lookup', (error) => {\n if (error === null) {\n once(socket, 'connect', timeConnect());\n }\n });\n }\n }\n if (typeof delays.secureConnect !== 'undefined' && options.protocol === 'https:') {\n once(socket, 'connect', () => {\n const cancelTimeout = addTimeout(delays.secureConnect, timeoutHandler, 'secureConnect');\n once(socket, 'secureConnect', cancelTimeout);\n });\n }\n }\n if (typeof delays.send !== 'undefined') {\n const timeRequest = () => addTimeout(delays.send, timeoutHandler, 'send');\n /* istanbul ignore next: hard to test */\n if (socket.connecting) {\n once(socket, 'connect', () => {\n once(request, 'upload-complete', timeRequest());\n });\n }\n else {\n once(request, 'upload-complete', timeRequest());\n }\n }\n });\n if (typeof delays.response !== 'undefined') {\n once(request, 'upload-complete', () => {\n const cancelTimeout = addTimeout(delays.response, timeoutHandler, 'response');\n once(request, 'response', cancelTimeout);\n });\n }\n return cancelTimeouts;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nexports.default = (url) => {\n // Cast to URL\n url = url;\n const options = {\n protocol: url.protocol,\n hostname: is_1.default.string(url.hostname) && url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname,\n host: url.host,\n hash: url.hash,\n search: url.search,\n pathname: url.pathname,\n href: url.href,\n path: `${url.pathname || ''}${url.search || ''}`\n };\n if (is_1.default.string(url.port) && url.port.length > 0) {\n options.port = Number(url.port);\n }\n if (url.username || url.password) {\n options.auth = `${url.username || ''}:${url.password || ''}`;\n }\n return options;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* istanbul ignore file: deprecated */\nconst url_1 = require(\"url\");\nconst keys = [\n 'protocol',\n 'host',\n 'hostname',\n 'port',\n 'pathname',\n 'search'\n];\nexports.default = (origin, options) => {\n var _a, _b;\n if (options.path) {\n if (options.pathname) {\n throw new TypeError('Parameters `path` and `pathname` are mutually exclusive.');\n }\n if (options.search) {\n throw new TypeError('Parameters `path` and `search` are mutually exclusive.');\n }\n if (options.searchParams) {\n throw new TypeError('Parameters `path` and `searchParams` are mutually exclusive.');\n }\n }\n if (options.search && options.searchParams) {\n throw new TypeError('Parameters `search` and `searchParams` are mutually exclusive.');\n }\n if (!origin) {\n if (!options.protocol) {\n throw new TypeError('No URL protocol specified');\n }\n origin = `${options.protocol}//${(_b = (_a = options.hostname) !== null && _a !== void 0 ? _a : options.host) !== null && _b !== void 0 ? _b : ''}`;\n }\n const url = new url_1.URL(origin);\n if (options.path) {\n const searchIndex = options.path.indexOf('?');\n if (searchIndex === -1) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.slice(0, searchIndex);\n options.search = options.path.slice(searchIndex + 1);\n }\n delete options.path;\n }\n for (const key of keys) {\n if (options[key]) {\n url[key] = options[key].toString();\n }\n }\n return url;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass WeakableMap {\n constructor() {\n this.weakMap = new WeakMap();\n this.map = new Map();\n }\n set(key, value) {\n if (typeof key === 'object') {\n this.weakMap.set(key, value);\n }\n else {\n this.map.set(key, value);\n }\n }\n get(key) {\n if (typeof key === 'object') {\n return this.weakMap.get(key);\n }\n return this.map.get(key);\n }\n has(key) {\n if (typeof key === 'object') {\n return this.weakMap.has(key);\n }\n return this.map.has(key);\n }\n}\nexports.default = WeakableMap;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// TODO: Update https://github.com/sindresorhus/get-stream\nconst getBuffer = async (stream) => {\n const chunks = [];\n let length = 0;\n for await (const chunk of stream) {\n chunks.push(chunk);\n length += Buffer.byteLength(chunk);\n }\n if (Buffer.isBuffer(chunks[0])) {\n return Buffer.concat(chunks, length);\n }\n return Buffer.from(chunks.join(''));\n};\nexports.default = getBuffer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dnsLookupIpVersionToFamily = exports.isDnsLookupIpVersion = void 0;\nconst conversionTable = {\n auto: 0,\n ipv4: 4,\n ipv6: 6\n};\nexports.isDnsLookupIpVersion = (value) => {\n return value in conversionTable;\n};\nexports.dnsLookupIpVersionToFamily = (dnsLookupIpVersion) => {\n if (exports.isDnsLookupIpVersion(dnsLookupIpVersion)) {\n return conversionTable[dnsLookupIpVersion];\n }\n throw new Error('Invalid DNS lookup IP version');\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isResponseOk = void 0;\nexports.isResponseOk = (response) => {\n const { statusCode } = response;\n const limitStatusCode = response.request.options.followRedirect ? 299 : 399;\n return (statusCode >= 200 && statusCode <= limitStatusCode) || statusCode === 304;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst alreadyWarned = new Set();\nexports.default = (message) => {\n if (alreadyWarned.has(message)) {\n return;\n }\n alreadyWarned.add(message);\n // @ts-expect-error Missing types.\n process.emitWarning(`Got: ${message}`, {\n type: 'DeprecationWarning'\n });\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nconst normalizeArguments = (options, defaults) => {\n if (is_1.default.null_(options.encoding)) {\n throw new TypeError('To get a Buffer, set `options.responseType` to `buffer` instead');\n }\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.encoding);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.resolveBodyOnly);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.methodRewriting);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.isStream);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.responseType);\n // `options.responseType`\n if (options.responseType === undefined) {\n options.responseType = 'text';\n }\n // `options.retry`\n const { retry } = options;\n if (defaults) {\n options.retry = { ...defaults.retry };\n }\n else {\n options.retry = {\n calculateDelay: retryObject => retryObject.computedValue,\n limit: 0,\n methods: [],\n statusCodes: [],\n errorCodes: [],\n maxRetryAfter: undefined\n };\n }\n if (is_1.default.object(retry)) {\n options.retry = {\n ...options.retry,\n ...retry\n };\n options.retry.methods = [...new Set(options.retry.methods.map(method => method.toUpperCase()))];\n options.retry.statusCodes = [...new Set(options.retry.statusCodes)];\n options.retry.errorCodes = [...new Set(options.retry.errorCodes)];\n }\n else if (is_1.default.number(retry)) {\n options.retry.limit = retry;\n }\n if (is_1.default.undefined(options.retry.maxRetryAfter)) {\n options.retry.maxRetryAfter = Math.min(\n // TypeScript is not smart enough to handle `.filter(x => is.number(x))`.\n // eslint-disable-next-line unicorn/no-fn-reference-in-iterator\n ...[options.timeout.request, options.timeout.connect].filter(is_1.default.number));\n }\n // `options.pagination`\n if (is_1.default.object(options.pagination)) {\n if (defaults) {\n options.pagination = {\n ...defaults.pagination,\n ...options.pagination\n };\n }\n const { pagination } = options;\n if (!is_1.default.function_(pagination.transform)) {\n throw new Error('`options.pagination.transform` must be implemented');\n }\n if (!is_1.default.function_(pagination.shouldContinue)) {\n throw new Error('`options.pagination.shouldContinue` must be implemented');\n }\n if (!is_1.default.function_(pagination.filter)) {\n throw new TypeError('`options.pagination.filter` must be implemented');\n }\n if (!is_1.default.function_(pagination.paginate)) {\n throw new Error('`options.pagination.paginate` must be implemented');\n }\n }\n // JSON mode\n if (options.responseType === 'json' && options.headers.accept === undefined) {\n options.headers.accept = 'application/json';\n }\n return options;\n};\nexports.default = normalizeArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryAfterStatusCodes = void 0;\nexports.retryAfterStatusCodes = new Set([413, 429, 503]);\nconst calculateRetryDelay = ({ attemptCount, retryOptions, error, retryAfter }) => {\n if (attemptCount > retryOptions.limit) {\n return 0;\n }\n const hasMethod = retryOptions.methods.includes(error.options.method);\n const hasErrorCode = retryOptions.errorCodes.includes(error.code);\n const hasStatusCode = error.response && retryOptions.statusCodes.includes(error.response.statusCode);\n if (!hasMethod || (!hasErrorCode && !hasStatusCode)) {\n return 0;\n }\n if (error.response) {\n if (retryAfter) {\n if (retryOptions.maxRetryAfter === undefined || retryAfter > retryOptions.maxRetryAfter) {\n return 0;\n }\n return retryAfter;\n }\n if (error.response.statusCode === 413) {\n return 0;\n }\n }\n const noise = Math.random() * 100;\n return ((2 ** (attemptCount - 1)) * 1000) + noise;\n};\nexports.default = calculateRetryDelay;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnsupportedProtocolError = exports.ReadError = exports.TimeoutError = exports.UploadError = exports.CacheError = exports.HTTPError = exports.MaxRedirectsError = exports.RequestError = exports.setNonEnumerableProperties = exports.knownHookEvents = exports.withoutBody = exports.kIsNormalizedAlready = void 0;\nconst util_1 = require(\"util\");\nconst stream_1 = require(\"stream\");\nconst fs_1 = require(\"fs\");\nconst url_1 = require(\"url\");\nconst http = require(\"http\");\nconst http_1 = require(\"http\");\nconst https = require(\"https\");\nconst http_timer_1 = require(\"@szmarczak/http-timer\");\nconst cacheable_lookup_1 = require(\"cacheable-lookup\");\nconst CacheableRequest = require(\"cacheable-request\");\nconst decompressResponse = require(\"decompress-response\");\n// @ts-expect-error Missing types\nconst http2wrapper = require(\"http2-wrapper\");\nconst lowercaseKeys = require(\"lowercase-keys\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst get_body_size_1 = require(\"./utils/get-body-size\");\nconst is_form_data_1 = require(\"./utils/is-form-data\");\nconst proxy_events_1 = require(\"./utils/proxy-events\");\nconst timed_out_1 = require(\"./utils/timed-out\");\nconst url_to_options_1 = require(\"./utils/url-to-options\");\nconst options_to_url_1 = require(\"./utils/options-to-url\");\nconst weakable_map_1 = require(\"./utils/weakable-map\");\nconst get_buffer_1 = require(\"./utils/get-buffer\");\nconst dns_ip_version_1 = require(\"./utils/dns-ip-version\");\nconst is_response_ok_1 = require(\"./utils/is-response-ok\");\nconst deprecation_warning_1 = require(\"../utils/deprecation-warning\");\nconst normalize_arguments_1 = require(\"../as-promise/normalize-arguments\");\nconst calculate_retry_delay_1 = require(\"./calculate-retry-delay\");\nlet globalDnsCache;\nconst kRequest = Symbol('request');\nconst kResponse = Symbol('response');\nconst kResponseSize = Symbol('responseSize');\nconst kDownloadedSize = Symbol('downloadedSize');\nconst kBodySize = Symbol('bodySize');\nconst kUploadedSize = Symbol('uploadedSize');\nconst kServerResponsesPiped = Symbol('serverResponsesPiped');\nconst kUnproxyEvents = Symbol('unproxyEvents');\nconst kIsFromCache = Symbol('isFromCache');\nconst kCancelTimeouts = Symbol('cancelTimeouts');\nconst kStartedReading = Symbol('startedReading');\nconst kStopReading = Symbol('stopReading');\nconst kTriggerRead = Symbol('triggerRead');\nconst kBody = Symbol('body');\nconst kJobs = Symbol('jobs');\nconst kOriginalResponse = Symbol('originalResponse');\nconst kRetryTimeout = Symbol('retryTimeout');\nexports.kIsNormalizedAlready = Symbol('isNormalizedAlready');\nconst supportsBrotli = is_1.default.string(process.versions.brotli);\nexports.withoutBody = new Set(['GET', 'HEAD']);\nexports.knownHookEvents = [\n 'init',\n 'beforeRequest',\n 'beforeRedirect',\n 'beforeError',\n 'beforeRetry',\n // Promise-Only\n 'afterResponse'\n];\nfunction validateSearchParameters(searchParameters) {\n // eslint-disable-next-line guard-for-in\n for (const key in searchParameters) {\n const value = searchParameters[key];\n if (!is_1.default.string(value) && !is_1.default.number(value) && !is_1.default.boolean(value) && !is_1.default.null_(value) && !is_1.default.undefined(value)) {\n throw new TypeError(`The \\`searchParams\\` value '${String(value)}' must be a string, number, boolean or null`);\n }\n }\n}\nfunction isClientRequest(clientRequest) {\n return is_1.default.object(clientRequest) && !('statusCode' in clientRequest);\n}\nconst cacheableStore = new weakable_map_1.default();\nconst waitForOpenFile = async (file) => new Promise((resolve, reject) => {\n const onError = (error) => {\n reject(error);\n };\n // Node.js 12 has incomplete types\n if (!file.pending) {\n resolve();\n }\n file.once('error', onError);\n file.once('ready', () => {\n file.off('error', onError);\n resolve();\n });\n});\nconst redirectCodes = new Set([300, 301, 302, 303, 304, 307, 308]);\nconst nonEnumerableProperties = [\n 'context',\n 'body',\n 'json',\n 'form'\n];\nexports.setNonEnumerableProperties = (sources, to) => {\n // Non enumerable properties shall not be merged\n const properties = {};\n for (const source of sources) {\n if (!source) {\n continue;\n }\n for (const name of nonEnumerableProperties) {\n if (!(name in source)) {\n continue;\n }\n properties[name] = {\n writable: true,\n configurable: true,\n enumerable: false,\n // @ts-expect-error TS doesn't see the check above\n value: source[name]\n };\n }\n }\n Object.defineProperties(to, properties);\n};\n/**\nAn error to be thrown when a request fails.\nContains a `code` property with error class code, like `ECONNREFUSED`.\n*/\nclass RequestError extends Error {\n constructor(message, error, self) {\n var _a, _b;\n super(message);\n Error.captureStackTrace(this, this.constructor);\n this.name = 'RequestError';\n this.code = (_a = error.code) !== null && _a !== void 0 ? _a : 'ERR_GOT_REQUEST_ERROR';\n if (self instanceof Request) {\n Object.defineProperty(this, 'request', {\n enumerable: false,\n value: self\n });\n Object.defineProperty(this, 'response', {\n enumerable: false,\n value: self[kResponse]\n });\n Object.defineProperty(this, 'options', {\n // This fails because of TS 3.7.2 useDefineForClassFields\n // Ref: https://github.com/microsoft/TypeScript/issues/34972\n enumerable: false,\n value: self.options\n });\n }\n else {\n Object.defineProperty(this, 'options', {\n // This fails because of TS 3.7.2 useDefineForClassFields\n // Ref: https://github.com/microsoft/TypeScript/issues/34972\n enumerable: false,\n value: self\n });\n }\n this.timings = (_b = this.request) === null || _b === void 0 ? void 0 : _b.timings;\n // Recover the original stacktrace\n if (is_1.default.string(error.stack) && is_1.default.string(this.stack)) {\n const indexOfMessage = this.stack.indexOf(this.message) + this.message.length;\n const thisStackTrace = this.stack.slice(indexOfMessage).split('\\n').reverse();\n const errorStackTrace = error.stack.slice(error.stack.indexOf(error.message) + error.message.length).split('\\n').reverse();\n // Remove duplicated traces\n while (errorStackTrace.length !== 0 && errorStackTrace[0] === thisStackTrace[0]) {\n thisStackTrace.shift();\n }\n this.stack = `${this.stack.slice(0, indexOfMessage)}${thisStackTrace.reverse().join('\\n')}${errorStackTrace.reverse().join('\\n')}`;\n }\n }\n}\nexports.RequestError = RequestError;\n/**\nAn error to be thrown when the server redirects you more than ten times.\nIncludes a `response` property.\n*/\nclass MaxRedirectsError extends RequestError {\n constructor(request) {\n super(`Redirected ${request.options.maxRedirects} times. Aborting.`, {}, request);\n this.name = 'MaxRedirectsError';\n this.code = 'ERR_TOO_MANY_REDIRECTS';\n }\n}\nexports.MaxRedirectsError = MaxRedirectsError;\n/**\nAn error to be thrown when the server response code is not 2xx nor 3xx if `options.followRedirect` is `true`, but always except for 304.\nIncludes a `response` property.\n*/\nclass HTTPError extends RequestError {\n constructor(response) {\n super(`Response code ${response.statusCode} (${response.statusMessage})`, {}, response.request);\n this.name = 'HTTPError';\n this.code = 'ERR_NON_2XX_3XX_RESPONSE';\n }\n}\nexports.HTTPError = HTTPError;\n/**\nAn error to be thrown when a cache method fails.\nFor example, if the database goes down or there's a filesystem error.\n*/\nclass CacheError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'CacheError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_CACHE_ACCESS' : this.code;\n }\n}\nexports.CacheError = CacheError;\n/**\nAn error to be thrown when the request body is a stream and an error occurs while reading from that stream.\n*/\nclass UploadError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'UploadError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_UPLOAD' : this.code;\n }\n}\nexports.UploadError = UploadError;\n/**\nAn error to be thrown when the request is aborted due to a timeout.\nIncludes an `event` and `timings` property.\n*/\nclass TimeoutError extends RequestError {\n constructor(error, timings, request) {\n super(error.message, error, request);\n this.name = 'TimeoutError';\n this.event = error.event;\n this.timings = timings;\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\nAn error to be thrown when reading from response stream fails.\n*/\nclass ReadError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'ReadError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_READING_RESPONSE_STREAM' : this.code;\n }\n}\nexports.ReadError = ReadError;\n/**\nAn error to be thrown when given an unsupported protocol.\n*/\nclass UnsupportedProtocolError extends RequestError {\n constructor(options) {\n super(`Unsupported protocol \"${options.url.protocol}\"`, {}, options);\n this.name = 'UnsupportedProtocolError';\n this.code = 'ERR_UNSUPPORTED_PROTOCOL';\n }\n}\nexports.UnsupportedProtocolError = UnsupportedProtocolError;\nconst proxiedRequestEvents = [\n 'socket',\n 'connect',\n 'continue',\n 'information',\n 'upgrade',\n 'timeout'\n];\nclass Request extends stream_1.Duplex {\n constructor(url, options = {}, defaults) {\n super({\n // This must be false, to enable throwing after destroy\n // It is used for retry logic in Promise API\n autoDestroy: false,\n // It needs to be zero because we're just proxying the data to another stream\n highWaterMark: 0\n });\n this[kDownloadedSize] = 0;\n this[kUploadedSize] = 0;\n this.requestInitialized = false;\n this[kServerResponsesPiped] = new Set();\n this.redirects = [];\n this[kStopReading] = false;\n this[kTriggerRead] = false;\n this[kJobs] = [];\n this.retryCount = 0;\n // TODO: Remove this when targeting Node.js >= 12\n this._progressCallbacks = [];\n const unlockWrite = () => this._unlockWrite();\n const lockWrite = () => this._lockWrite();\n this.on('pipe', (source) => {\n source.prependListener('data', unlockWrite);\n source.on('data', lockWrite);\n source.prependListener('end', unlockWrite);\n source.on('end', lockWrite);\n });\n this.on('unpipe', (source) => {\n source.off('data', unlockWrite);\n source.off('data', lockWrite);\n source.off('end', unlockWrite);\n source.off('end', lockWrite);\n });\n this.on('pipe', source => {\n if (source instanceof http_1.IncomingMessage) {\n this.options.headers = {\n ...source.headers,\n ...this.options.headers\n };\n }\n });\n const { json, body, form } = options;\n if (json || body || form) {\n this._lockWrite();\n }\n if (exports.kIsNormalizedAlready in options) {\n this.options = options;\n }\n else {\n try {\n // @ts-expect-error Common TypeScript bug saying that `this.constructor` is not accessible\n this.options = this.constructor.normalizeArguments(url, options, defaults);\n }\n catch (error) {\n // TODO: Move this to `_destroy()`\n if (is_1.default.nodeStream(options.body)) {\n options.body.destroy();\n }\n this.destroy(error);\n return;\n }\n }\n (async () => {\n var _a;\n try {\n if (this.options.body instanceof fs_1.ReadStream) {\n await waitForOpenFile(this.options.body);\n }\n const { url: normalizedURL } = this.options;\n if (!normalizedURL) {\n throw new TypeError('Missing `url` property');\n }\n this.requestUrl = normalizedURL.toString();\n decodeURI(this.requestUrl);\n await this._finalizeBody();\n await this._makeRequest();\n if (this.destroyed) {\n (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.destroy();\n return;\n }\n // Queued writes etc.\n for (const job of this[kJobs]) {\n job();\n }\n // Prevent memory leak\n this[kJobs].length = 0;\n this.requestInitialized = true;\n }\n catch (error) {\n if (error instanceof RequestError) {\n this._beforeError(error);\n return;\n }\n // This is a workaround for https://github.com/nodejs/node/issues/33335\n if (!this.destroyed) {\n this.destroy(error);\n }\n }\n })();\n }\n static normalizeArguments(url, options, defaults) {\n var _a, _b, _c, _d, _e;\n const rawOptions = options;\n if (is_1.default.object(url) && !is_1.default.urlInstance(url)) {\n options = { ...defaults, ...url, ...options };\n }\n else {\n if (url && options && options.url !== undefined) {\n throw new TypeError('The `url` option is mutually exclusive with the `input` argument');\n }\n options = { ...defaults, ...options };\n if (url !== undefined) {\n options.url = url;\n }\n if (is_1.default.urlInstance(options.url)) {\n options.url = new url_1.URL(options.url.toString());\n }\n }\n // TODO: Deprecate URL options in Got 12.\n // Support extend-specific options\n if (options.cache === false) {\n options.cache = undefined;\n }\n if (options.dnsCache === false) {\n options.dnsCache = undefined;\n }\n // Nice type assertions\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.method);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.headers);\n is_1.assert.any([is_1.default.string, is_1.default.urlInstance, is_1.default.undefined], options.prefixUrl);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.cookieJar);\n is_1.assert.any([is_1.default.object, is_1.default.string, is_1.default.undefined], options.searchParams);\n is_1.assert.any([is_1.default.object, is_1.default.string, is_1.default.undefined], options.cache);\n is_1.assert.any([is_1.default.object, is_1.default.number, is_1.default.undefined], options.timeout);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.context);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.hooks);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.decompress);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.ignoreInvalidCookies);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.followRedirect);\n is_1.assert.any([is_1.default.number, is_1.default.undefined], options.maxRedirects);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.throwHttpErrors);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.http2);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.allowGetBody);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.localAddress);\n is_1.assert.any([dns_ip_version_1.isDnsLookupIpVersion, is_1.default.undefined], options.dnsLookupIpVersion);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.https);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.rejectUnauthorized);\n if (options.https) {\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.https.rejectUnauthorized);\n is_1.assert.any([is_1.default.function_, is_1.default.undefined], options.https.checkServerIdentity);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.certificateAuthority);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.key);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.certificate);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.https.passphrase);\n is_1.assert.any([is_1.default.string, is_1.default.buffer, is_1.default.array, is_1.default.undefined], options.https.pfx);\n }\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.cacheOptions);\n // `options.method`\n if (is_1.default.string(options.method)) {\n options.method = options.method.toUpperCase();\n }\n else {\n options.method = 'GET';\n }\n // `options.headers`\n if (options.headers === (defaults === null || defaults === void 0 ? void 0 : defaults.headers)) {\n options.headers = { ...options.headers };\n }\n else {\n options.headers = lowercaseKeys({ ...(defaults === null || defaults === void 0 ? void 0 : defaults.headers), ...options.headers });\n }\n // Disallow legacy `url.Url`\n if ('slashes' in options) {\n throw new TypeError('The legacy `url.Url` has been deprecated. Use `URL` instead.');\n }\n // `options.auth`\n if ('auth' in options) {\n throw new TypeError('Parameter `auth` is deprecated. Use `username` / `password` instead.');\n }\n // `options.searchParams`\n if ('searchParams' in options) {\n if (options.searchParams && options.searchParams !== (defaults === null || defaults === void 0 ? void 0 : defaults.searchParams)) {\n let searchParameters;\n if (is_1.default.string(options.searchParams) || (options.searchParams instanceof url_1.URLSearchParams)) {\n searchParameters = new url_1.URLSearchParams(options.searchParams);\n }\n else {\n validateSearchParameters(options.searchParams);\n searchParameters = new url_1.URLSearchParams();\n // eslint-disable-next-line guard-for-in\n for (const key in options.searchParams) {\n const value = options.searchParams[key];\n if (value === null) {\n searchParameters.append(key, '');\n }\n else if (value !== undefined) {\n searchParameters.append(key, value);\n }\n }\n }\n // `normalizeArguments()` is also used to merge options\n (_a = defaults === null || defaults === void 0 ? void 0 : defaults.searchParams) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => {\n // Only use default if one isn't already defined\n if (!searchParameters.has(key)) {\n searchParameters.append(key, value);\n }\n });\n options.searchParams = searchParameters;\n }\n }\n // `options.username` & `options.password`\n options.username = (_b = options.username) !== null && _b !== void 0 ? _b : '';\n options.password = (_c = options.password) !== null && _c !== void 0 ? _c : '';\n // `options.prefixUrl` & `options.url`\n if (is_1.default.undefined(options.prefixUrl)) {\n options.prefixUrl = (_d = defaults === null || defaults === void 0 ? void 0 : defaults.prefixUrl) !== null && _d !== void 0 ? _d : '';\n }\n else {\n options.prefixUrl = options.prefixUrl.toString();\n if (options.prefixUrl !== '' && !options.prefixUrl.endsWith('/')) {\n options.prefixUrl += '/';\n }\n }\n if (is_1.default.string(options.url)) {\n if (options.url.startsWith('/')) {\n throw new Error('`input` must not start with a slash when using `prefixUrl`');\n }\n options.url = options_to_url_1.default(options.prefixUrl + options.url, options);\n }\n else if ((is_1.default.undefined(options.url) && options.prefixUrl !== '') || options.protocol) {\n options.url = options_to_url_1.default(options.prefixUrl, options);\n }\n if (options.url) {\n if ('port' in options) {\n delete options.port;\n }\n // Make it possible to change `options.prefixUrl`\n let { prefixUrl } = options;\n Object.defineProperty(options, 'prefixUrl', {\n set: (value) => {\n const url = options.url;\n if (!url.href.startsWith(value)) {\n throw new Error(`Cannot change \\`prefixUrl\\` from ${prefixUrl} to ${value}: ${url.href}`);\n }\n options.url = new url_1.URL(value + url.href.slice(prefixUrl.length));\n prefixUrl = value;\n },\n get: () => prefixUrl\n });\n // Support UNIX sockets\n let { protocol } = options.url;\n if (protocol === 'unix:') {\n protocol = 'http:';\n options.url = new url_1.URL(`http://unix${options.url.pathname}${options.url.search}`);\n }\n // Set search params\n if (options.searchParams) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n options.url.search = options.searchParams.toString();\n }\n // Protocol check\n if (protocol !== 'http:' && protocol !== 'https:') {\n throw new UnsupportedProtocolError(options);\n }\n // Update `username`\n if (options.username === '') {\n options.username = options.url.username;\n }\n else {\n options.url.username = options.username;\n }\n // Update `password`\n if (options.password === '') {\n options.password = options.url.password;\n }\n else {\n options.url.password = options.password;\n }\n }\n // `options.cookieJar`\n const { cookieJar } = options;\n if (cookieJar) {\n let { setCookie, getCookieString } = cookieJar;\n is_1.assert.function_(setCookie);\n is_1.assert.function_(getCookieString);\n /* istanbul ignore next: Horrible `tough-cookie` v3 check */\n if (setCookie.length === 4 && getCookieString.length === 0) {\n setCookie = util_1.promisify(setCookie.bind(options.cookieJar));\n getCookieString = util_1.promisify(getCookieString.bind(options.cookieJar));\n options.cookieJar = {\n setCookie,\n getCookieString: getCookieString\n };\n }\n }\n // `options.cache`\n const { cache } = options;\n if (cache) {\n if (!cacheableStore.has(cache)) {\n cacheableStore.set(cache, new CacheableRequest(((requestOptions, handler) => {\n const result = requestOptions[kRequest](requestOptions, handler);\n // TODO: remove this when `cacheable-request` supports async request functions.\n if (is_1.default.promise(result)) {\n // @ts-expect-error\n // We only need to implement the error handler in order to support HTTP2 caching.\n // The result will be a promise anyway.\n result.once = (event, handler) => {\n if (event === 'error') {\n result.catch(handler);\n }\n else if (event === 'abort') {\n // The empty catch is needed here in case when\n // it rejects before it's `await`ed in `_makeRequest`.\n (async () => {\n try {\n const request = (await result);\n request.once('abort', handler);\n }\n catch (_a) { }\n })();\n }\n else {\n /* istanbul ignore next: safety check */\n throw new Error(`Unknown HTTP2 promise event: ${event}`);\n }\n return result;\n };\n }\n return result;\n }), cache));\n }\n }\n // `options.cacheOptions`\n options.cacheOptions = { ...options.cacheOptions };\n // `options.dnsCache`\n if (options.dnsCache === true) {\n if (!globalDnsCache) {\n globalDnsCache = new cacheable_lookup_1.default();\n }\n options.dnsCache = globalDnsCache;\n }\n else if (!is_1.default.undefined(options.dnsCache) && !options.dnsCache.lookup) {\n throw new TypeError(`Parameter \\`dnsCache\\` must be a CacheableLookup instance or a boolean, got ${is_1.default(options.dnsCache)}`);\n }\n // `options.timeout`\n if (is_1.default.number(options.timeout)) {\n options.timeout = { request: options.timeout };\n }\n else if (defaults && options.timeout !== defaults.timeout) {\n options.timeout = {\n ...defaults.timeout,\n ...options.timeout\n };\n }\n else {\n options.timeout = { ...options.timeout };\n }\n // `options.context`\n if (!options.context) {\n options.context = {};\n }\n // `options.hooks`\n const areHooksDefault = options.hooks === (defaults === null || defaults === void 0 ? void 0 : defaults.hooks);\n options.hooks = { ...options.hooks };\n for (const event of exports.knownHookEvents) {\n if (event in options.hooks) {\n if (is_1.default.array(options.hooks[event])) {\n // See https://github.com/microsoft/TypeScript/issues/31445#issuecomment-576929044\n options.hooks[event] = [...options.hooks[event]];\n }\n else {\n throw new TypeError(`Parameter \\`${event}\\` must be an Array, got ${is_1.default(options.hooks[event])}`);\n }\n }\n else {\n options.hooks[event] = [];\n }\n }\n if (defaults && !areHooksDefault) {\n for (const event of exports.knownHookEvents) {\n const defaultHooks = defaults.hooks[event];\n if (defaultHooks.length > 0) {\n // See https://github.com/microsoft/TypeScript/issues/31445#issuecomment-576929044\n options.hooks[event] = [\n ...defaults.hooks[event],\n ...options.hooks[event]\n ];\n }\n }\n }\n // DNS options\n if ('family' in options) {\n deprecation_warning_1.default('\"options.family\" was never documented, please use \"options.dnsLookupIpVersion\"');\n }\n // HTTPS options\n if (defaults === null || defaults === void 0 ? void 0 : defaults.https) {\n options.https = { ...defaults.https, ...options.https };\n }\n if ('rejectUnauthorized' in options) {\n deprecation_warning_1.default('\"options.rejectUnauthorized\" is now deprecated, please use \"options.https.rejectUnauthorized\"');\n }\n if ('checkServerIdentity' in options) {\n deprecation_warning_1.default('\"options.checkServerIdentity\" was never documented, please use \"options.https.checkServerIdentity\"');\n }\n if ('ca' in options) {\n deprecation_warning_1.default('\"options.ca\" was never documented, please use \"options.https.certificateAuthority\"');\n }\n if ('key' in options) {\n deprecation_warning_1.default('\"options.key\" was never documented, please use \"options.https.key\"');\n }\n if ('cert' in options) {\n deprecation_warning_1.default('\"options.cert\" was never documented, please use \"options.https.certificate\"');\n }\n if ('passphrase' in options) {\n deprecation_warning_1.default('\"options.passphrase\" was never documented, please use \"options.https.passphrase\"');\n }\n if ('pfx' in options) {\n deprecation_warning_1.default('\"options.pfx\" was never documented, please use \"options.https.pfx\"');\n }\n // Other options\n if ('followRedirects' in options) {\n throw new TypeError('The `followRedirects` option does not exist. Use `followRedirect` instead.');\n }\n if (options.agent) {\n for (const key in options.agent) {\n if (key !== 'http' && key !== 'https' && key !== 'http2') {\n throw new TypeError(`Expected the \\`options.agent\\` properties to be \\`http\\`, \\`https\\` or \\`http2\\`, got \\`${key}\\``);\n }\n }\n }\n options.maxRedirects = (_e = options.maxRedirects) !== null && _e !== void 0 ? _e : 0;\n // Set non-enumerable properties\n exports.setNonEnumerableProperties([defaults, rawOptions], options);\n return normalize_arguments_1.default(options, defaults);\n }\n _lockWrite() {\n const onLockedWrite = () => {\n throw new TypeError('The payload has been already provided');\n };\n this.write = onLockedWrite;\n this.end = onLockedWrite;\n }\n _unlockWrite() {\n this.write = super.write;\n this.end = super.end;\n }\n async _finalizeBody() {\n const { options } = this;\n const { headers } = options;\n const isForm = !is_1.default.undefined(options.form);\n const isJSON = !is_1.default.undefined(options.json);\n const isBody = !is_1.default.undefined(options.body);\n const hasPayload = isForm || isJSON || isBody;\n const cannotHaveBody = exports.withoutBody.has(options.method) && !(options.method === 'GET' && options.allowGetBody);\n this._cannotHaveBody = cannotHaveBody;\n if (hasPayload) {\n if (cannotHaveBody) {\n throw new TypeError(`The \\`${options.method}\\` method cannot be used with a body`);\n }\n if ([isBody, isForm, isJSON].filter(isTrue => isTrue).length > 1) {\n throw new TypeError('The `body`, `json` and `form` options are mutually exclusive');\n }\n if (isBody &&\n !(options.body instanceof stream_1.Readable) &&\n !is_1.default.string(options.body) &&\n !is_1.default.buffer(options.body) &&\n !is_form_data_1.default(options.body)) {\n throw new TypeError('The `body` option must be a stream.Readable, string or Buffer');\n }\n if (isForm && !is_1.default.object(options.form)) {\n throw new TypeError('The `form` option must be an Object');\n }\n {\n // Serialize body\n const noContentType = !is_1.default.string(headers['content-type']);\n if (isBody) {\n // Special case for https://github.com/form-data/form-data\n if (is_form_data_1.default(options.body) && noContentType) {\n headers['content-type'] = `multipart/form-data; boundary=${options.body.getBoundary()}`;\n }\n this[kBody] = options.body;\n }\n else if (isForm) {\n if (noContentType) {\n headers['content-type'] = 'application/x-www-form-urlencoded';\n }\n this[kBody] = (new url_1.URLSearchParams(options.form)).toString();\n }\n else {\n if (noContentType) {\n headers['content-type'] = 'application/json';\n }\n this[kBody] = options.stringifyJson(options.json);\n }\n const uploadBodySize = await get_body_size_1.default(this[kBody], options.headers);\n // See https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body. For example, a Content-Length header\n // field is normally sent in a POST request even when the value is 0\n // (indicating an empty payload body). A user agent SHOULD NOT send a\n // Content-Length header field when the request message does not contain\n // a payload body and the method semantics do not anticipate such a\n // body.\n if (is_1.default.undefined(headers['content-length']) && is_1.default.undefined(headers['transfer-encoding'])) {\n if (!cannotHaveBody && !is_1.default.undefined(uploadBodySize)) {\n headers['content-length'] = String(uploadBodySize);\n }\n }\n }\n }\n else if (cannotHaveBody) {\n this._lockWrite();\n }\n else {\n this._unlockWrite();\n }\n this[kBodySize] = Number(headers['content-length']) || undefined;\n }\n async _onResponseBase(response) {\n const { options } = this;\n const { url } = options;\n this[kOriginalResponse] = response;\n if (options.decompress) {\n response = decompressResponse(response);\n }\n const statusCode = response.statusCode;\n const typedResponse = response;\n typedResponse.statusMessage = typedResponse.statusMessage ? typedResponse.statusMessage : http.STATUS_CODES[statusCode];\n typedResponse.url = options.url.toString();\n typedResponse.requestUrl = this.requestUrl;\n typedResponse.redirectUrls = this.redirects;\n typedResponse.request = this;\n typedResponse.isFromCache = response.fromCache || false;\n typedResponse.ip = this.ip;\n typedResponse.retryCount = this.retryCount;\n this[kIsFromCache] = typedResponse.isFromCache;\n this[kResponseSize] = Number(response.headers['content-length']) || undefined;\n this[kResponse] = response;\n response.once('end', () => {\n this[kResponseSize] = this[kDownloadedSize];\n this.emit('downloadProgress', this.downloadProgress);\n });\n response.once('error', (error) => {\n // Force clean-up, because some packages don't do this.\n // TODO: Fix decompress-response\n response.destroy();\n this._beforeError(new ReadError(error, this));\n });\n response.once('aborted', () => {\n this._beforeError(new ReadError({\n name: 'Error',\n message: 'The server aborted pending request',\n code: 'ECONNRESET'\n }, this));\n });\n this.emit('downloadProgress', this.downloadProgress);\n const rawCookies = response.headers['set-cookie'];\n if (is_1.default.object(options.cookieJar) && rawCookies) {\n let promises = rawCookies.map(async (rawCookie) => options.cookieJar.setCookie(rawCookie, url.toString()));\n if (options.ignoreInvalidCookies) {\n promises = promises.map(async (p) => p.catch(() => { }));\n }\n try {\n await Promise.all(promises);\n }\n catch (error) {\n this._beforeError(error);\n return;\n }\n }\n if (options.followRedirect && response.headers.location && redirectCodes.has(statusCode)) {\n // We're being redirected, we don't care about the response.\n // It'd be best to abort the request, but we can't because\n // we would have to sacrifice the TCP connection. We don't want that.\n response.resume();\n if (this[kRequest]) {\n this[kCancelTimeouts]();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this[kRequest];\n this[kUnproxyEvents]();\n }\n const shouldBeGet = statusCode === 303 && options.method !== 'GET' && options.method !== 'HEAD';\n if (shouldBeGet || !options.methodRewriting) {\n // Server responded with \"see other\", indicating that the resource exists at another location,\n // and the client should request it from that location via GET or HEAD.\n options.method = 'GET';\n if ('body' in options) {\n delete options.body;\n }\n if ('json' in options) {\n delete options.json;\n }\n if ('form' in options) {\n delete options.form;\n }\n this[kBody] = undefined;\n delete options.headers['content-length'];\n }\n if (this.redirects.length >= options.maxRedirects) {\n this._beforeError(new MaxRedirectsError(this));\n return;\n }\n try {\n // Do not remove. See https://github.com/sindresorhus/got/pull/214\n const redirectBuffer = Buffer.from(response.headers.location, 'binary').toString();\n // Handles invalid URLs. See https://github.com/sindresorhus/got/issues/604\n const redirectUrl = new url_1.URL(redirectBuffer, url);\n const redirectString = redirectUrl.toString();\n decodeURI(redirectString);\n // eslint-disable-next-line no-inner-declarations\n function isUnixSocketURL(url) {\n return url.protocol === 'unix:' || url.hostname === 'unix';\n }\n if (!isUnixSocketURL(url) && isUnixSocketURL(redirectUrl)) {\n this._beforeError(new RequestError('Cannot redirect to UNIX socket', {}, this));\n return;\n }\n // Redirecting to a different site, clear sensitive data.\n if (redirectUrl.hostname !== url.hostname || redirectUrl.port !== url.port) {\n if ('host' in options.headers) {\n delete options.headers.host;\n }\n if ('cookie' in options.headers) {\n delete options.headers.cookie;\n }\n if ('authorization' in options.headers) {\n delete options.headers.authorization;\n }\n if (options.username || options.password) {\n options.username = '';\n options.password = '';\n }\n }\n else {\n redirectUrl.username = options.username;\n redirectUrl.password = options.password;\n }\n this.redirects.push(redirectString);\n options.url = redirectUrl;\n for (const hook of options.hooks.beforeRedirect) {\n // eslint-disable-next-line no-await-in-loop\n await hook(options, typedResponse);\n }\n this.emit('redirect', typedResponse, options);\n await this._makeRequest();\n }\n catch (error) {\n this._beforeError(error);\n return;\n }\n return;\n }\n if (options.isStream && options.throwHttpErrors && !is_response_ok_1.isResponseOk(typedResponse)) {\n this._beforeError(new HTTPError(typedResponse));\n return;\n }\n response.on('readable', () => {\n if (this[kTriggerRead]) {\n this._read();\n }\n });\n this.on('resume', () => {\n response.resume();\n });\n this.on('pause', () => {\n response.pause();\n });\n response.once('end', () => {\n this.push(null);\n });\n this.emit('response', response);\n for (const destination of this[kServerResponsesPiped]) {\n if (destination.headersSent) {\n continue;\n }\n // eslint-disable-next-line guard-for-in\n for (const key in response.headers) {\n const isAllowed = options.decompress ? key !== 'content-encoding' : true;\n const value = response.headers[key];\n if (isAllowed) {\n destination.setHeader(key, value);\n }\n }\n destination.statusCode = statusCode;\n }\n }\n async _onResponse(response) {\n try {\n await this._onResponseBase(response);\n }\n catch (error) {\n /* istanbul ignore next: better safe than sorry */\n this._beforeError(error);\n }\n }\n _onRequest(request) {\n const { options } = this;\n const { timeout, url } = options;\n http_timer_1.default(request);\n this[kCancelTimeouts] = timed_out_1.default(request, timeout, url);\n const responseEventName = options.cache ? 'cacheableResponse' : 'response';\n request.once(responseEventName, (response) => {\n void this._onResponse(response);\n });\n request.once('error', (error) => {\n var _a;\n // Force clean-up, because some packages (e.g. nock) don't do this.\n request.destroy();\n // Node.js <= 12.18.2 mistakenly emits the response `end` first.\n (_a = request.res) === null || _a === void 0 ? void 0 : _a.removeAllListeners('end');\n error = error instanceof timed_out_1.TimeoutError ? new TimeoutError(error, this.timings, this) : new RequestError(error.message, error, this);\n this._beforeError(error);\n });\n this[kUnproxyEvents] = proxy_events_1.default(request, this, proxiedRequestEvents);\n this[kRequest] = request;\n this.emit('uploadProgress', this.uploadProgress);\n // Send body\n const body = this[kBody];\n const currentRequest = this.redirects.length === 0 ? this : request;\n if (is_1.default.nodeStream(body)) {\n body.pipe(currentRequest);\n body.once('error', (error) => {\n this._beforeError(new UploadError(error, this));\n });\n }\n else {\n this._unlockWrite();\n if (!is_1.default.undefined(body)) {\n this._writeRequest(body, undefined, () => { });\n currentRequest.end();\n this._lockWrite();\n }\n else if (this._cannotHaveBody || this._noPipe) {\n currentRequest.end();\n this._lockWrite();\n }\n }\n this.emit('request', request);\n }\n async _createCacheableRequest(url, options) {\n return new Promise((resolve, reject) => {\n // TODO: Remove `utils/url-to-options.ts` when `cacheable-request` is fixed\n Object.assign(options, url_to_options_1.default(url));\n // `http-cache-semantics` checks this\n // TODO: Fix this ignore.\n // @ts-expect-error\n delete options.url;\n let request;\n // This is ugly\n const cacheRequest = cacheableStore.get(options.cache)(options, async (response) => {\n // TODO: Fix `cacheable-response`\n response._readableState.autoDestroy = false;\n if (request) {\n (await request).emit('cacheableResponse', response);\n }\n resolve(response);\n });\n // Restore options\n options.url = url;\n cacheRequest.once('error', reject);\n cacheRequest.once('request', async (requestOrPromise) => {\n request = requestOrPromise;\n resolve(request);\n });\n });\n }\n async _makeRequest() {\n var _a, _b, _c, _d, _e;\n const { options } = this;\n const { headers } = options;\n for (const key in headers) {\n if (is_1.default.undefined(headers[key])) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete headers[key];\n }\n else if (is_1.default.null_(headers[key])) {\n throw new TypeError(`Use \\`undefined\\` instead of \\`null\\` to delete the \\`${key}\\` header`);\n }\n }\n if (options.decompress && is_1.default.undefined(headers['accept-encoding'])) {\n headers['accept-encoding'] = supportsBrotli ? 'gzip, deflate, br' : 'gzip, deflate';\n }\n // Set cookies\n if (options.cookieJar) {\n const cookieString = await options.cookieJar.getCookieString(options.url.toString());\n if (is_1.default.nonEmptyString(cookieString)) {\n options.headers.cookie = cookieString;\n }\n }\n for (const hook of options.hooks.beforeRequest) {\n // eslint-disable-next-line no-await-in-loop\n const result = await hook(options);\n if (!is_1.default.undefined(result)) {\n // @ts-expect-error Skip the type mismatch to support abstract responses\n options.request = () => result;\n break;\n }\n }\n if (options.body && this[kBody] !== options.body) {\n this[kBody] = options.body;\n }\n const { agent, request, timeout, url } = options;\n if (options.dnsCache && !('lookup' in options)) {\n options.lookup = options.dnsCache.lookup;\n }\n // UNIX sockets\n if (url.hostname === 'unix') {\n const matches = /(?.+?):(?.+)/.exec(`${url.pathname}${url.search}`);\n if (matches === null || matches === void 0 ? void 0 : matches.groups) {\n const { socketPath, path } = matches.groups;\n Object.assign(options, {\n socketPath,\n path,\n host: ''\n });\n }\n }\n const isHttps = url.protocol === 'https:';\n // Fallback function\n let fallbackFn;\n if (options.http2) {\n fallbackFn = http2wrapper.auto;\n }\n else {\n fallbackFn = isHttps ? https.request : http.request;\n }\n const realFn = (_a = options.request) !== null && _a !== void 0 ? _a : fallbackFn;\n // Cache support\n const fn = options.cache ? this._createCacheableRequest : realFn;\n // Pass an agent directly when HTTP2 is disabled\n if (agent && !options.http2) {\n options.agent = agent[isHttps ? 'https' : 'http'];\n }\n // Prepare plain HTTP request options\n options[kRequest] = realFn;\n delete options.request;\n // TODO: Fix this ignore.\n // @ts-expect-error\n delete options.timeout;\n const requestOptions = options;\n requestOptions.shared = (_b = options.cacheOptions) === null || _b === void 0 ? void 0 : _b.shared;\n requestOptions.cacheHeuristic = (_c = options.cacheOptions) === null || _c === void 0 ? void 0 : _c.cacheHeuristic;\n requestOptions.immutableMinTimeToLive = (_d = options.cacheOptions) === null || _d === void 0 ? void 0 : _d.immutableMinTimeToLive;\n requestOptions.ignoreCargoCult = (_e = options.cacheOptions) === null || _e === void 0 ? void 0 : _e.ignoreCargoCult;\n // If `dnsLookupIpVersion` is not present do not override `family`\n if (options.dnsLookupIpVersion !== undefined) {\n try {\n requestOptions.family = dns_ip_version_1.dnsLookupIpVersionToFamily(options.dnsLookupIpVersion);\n }\n catch (_f) {\n throw new Error('Invalid `dnsLookupIpVersion` option value');\n }\n }\n // HTTPS options remapping\n if (options.https) {\n if ('rejectUnauthorized' in options.https) {\n requestOptions.rejectUnauthorized = options.https.rejectUnauthorized;\n }\n if (options.https.checkServerIdentity) {\n requestOptions.checkServerIdentity = options.https.checkServerIdentity;\n }\n if (options.https.certificateAuthority) {\n requestOptions.ca = options.https.certificateAuthority;\n }\n if (options.https.certificate) {\n requestOptions.cert = options.https.certificate;\n }\n if (options.https.key) {\n requestOptions.key = options.https.key;\n }\n if (options.https.passphrase) {\n requestOptions.passphrase = options.https.passphrase;\n }\n if (options.https.pfx) {\n requestOptions.pfx = options.https.pfx;\n }\n }\n try {\n let requestOrResponse = await fn(url, requestOptions);\n if (is_1.default.undefined(requestOrResponse)) {\n requestOrResponse = fallbackFn(url, requestOptions);\n }\n // Restore options\n options.request = request;\n options.timeout = timeout;\n options.agent = agent;\n // HTTPS options restore\n if (options.https) {\n if ('rejectUnauthorized' in options.https) {\n delete requestOptions.rejectUnauthorized;\n }\n if (options.https.checkServerIdentity) {\n // @ts-expect-error - This one will be removed when we remove the alias.\n delete requestOptions.checkServerIdentity;\n }\n if (options.https.certificateAuthority) {\n delete requestOptions.ca;\n }\n if (options.https.certificate) {\n delete requestOptions.cert;\n }\n if (options.https.key) {\n delete requestOptions.key;\n }\n if (options.https.passphrase) {\n delete requestOptions.passphrase;\n }\n if (options.https.pfx) {\n delete requestOptions.pfx;\n }\n }\n if (isClientRequest(requestOrResponse)) {\n this._onRequest(requestOrResponse);\n // Emit the response after the stream has been ended\n }\n else if (this.writable) {\n this.once('finish', () => {\n void this._onResponse(requestOrResponse);\n });\n this._unlockWrite();\n this.end();\n this._lockWrite();\n }\n else {\n void this._onResponse(requestOrResponse);\n }\n }\n catch (error) {\n if (error instanceof CacheableRequest.CacheError) {\n throw new CacheError(error, this);\n }\n throw new RequestError(error.message, error, this);\n }\n }\n async _error(error) {\n try {\n for (const hook of this.options.hooks.beforeError) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n }\n catch (error_) {\n error = new RequestError(error_.message, error_, this);\n }\n this.destroy(error);\n }\n _beforeError(error) {\n if (this[kStopReading]) {\n return;\n }\n const { options } = this;\n const retryCount = this.retryCount + 1;\n this[kStopReading] = true;\n if (!(error instanceof RequestError)) {\n error = new RequestError(error.message, error, this);\n }\n const typedError = error;\n const { response } = typedError;\n void (async () => {\n if (response && !response.body) {\n response.setEncoding(this._readableState.encoding);\n try {\n response.rawBody = await get_buffer_1.default(response);\n response.body = response.rawBody.toString();\n }\n catch (_a) { }\n }\n if (this.listenerCount('retry') !== 0) {\n let backoff;\n try {\n let retryAfter;\n if (response && 'retry-after' in response.headers) {\n retryAfter = Number(response.headers['retry-after']);\n if (Number.isNaN(retryAfter)) {\n retryAfter = Date.parse(response.headers['retry-after']) - Date.now();\n if (retryAfter <= 0) {\n retryAfter = 1;\n }\n }\n else {\n retryAfter *= 1000;\n }\n }\n backoff = await options.retry.calculateDelay({\n attemptCount: retryCount,\n retryOptions: options.retry,\n error: typedError,\n retryAfter,\n computedValue: calculate_retry_delay_1.default({\n attemptCount: retryCount,\n retryOptions: options.retry,\n error: typedError,\n retryAfter,\n computedValue: 0\n })\n });\n }\n catch (error_) {\n void this._error(new RequestError(error_.message, error_, this));\n return;\n }\n if (backoff) {\n const retry = async () => {\n try {\n for (const hook of this.options.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n await hook(this.options, typedError, retryCount);\n }\n }\n catch (error_) {\n void this._error(new RequestError(error_.message, error, this));\n return;\n }\n // Something forced us to abort the retry\n if (this.destroyed) {\n return;\n }\n this.destroy();\n this.emit('retry', retryCount, error);\n };\n this[kRetryTimeout] = setTimeout(retry, backoff);\n return;\n }\n }\n void this._error(typedError);\n })();\n }\n _read() {\n this[kTriggerRead] = true;\n const response = this[kResponse];\n if (response && !this[kStopReading]) {\n // We cannot put this in the `if` above\n // because `.read()` also triggers the `end` event\n if (response.readableLength) {\n this[kTriggerRead] = false;\n }\n let data;\n while ((data = response.read()) !== null) {\n this[kDownloadedSize] += data.length;\n this[kStartedReading] = true;\n const progress = this.downloadProgress;\n if (progress.percent < 1) {\n this.emit('downloadProgress', progress);\n }\n this.push(data);\n }\n }\n }\n // Node.js 12 has incorrect types, so the encoding must be a string\n _write(chunk, encoding, callback) {\n const write = () => {\n this._writeRequest(chunk, encoding, callback);\n };\n if (this.requestInitialized) {\n write();\n }\n else {\n this[kJobs].push(write);\n }\n }\n _writeRequest(chunk, encoding, callback) {\n if (this[kRequest].destroyed) {\n // Probably the `ClientRequest` instance will throw\n return;\n }\n this._progressCallbacks.push(() => {\n this[kUploadedSize] += Buffer.byteLength(chunk, encoding);\n const progress = this.uploadProgress;\n if (progress.percent < 1) {\n this.emit('uploadProgress', progress);\n }\n });\n // TODO: What happens if it's from cache? Then this[kRequest] won't be defined.\n this[kRequest].write(chunk, encoding, (error) => {\n if (!error && this._progressCallbacks.length > 0) {\n this._progressCallbacks.shift()();\n }\n callback(error);\n });\n }\n _final(callback) {\n const endRequest = () => {\n // FIX: Node.js 10 calls the write callback AFTER the end callback!\n while (this._progressCallbacks.length !== 0) {\n this._progressCallbacks.shift()();\n }\n // We need to check if `this[kRequest]` is present,\n // because it isn't when we use cache.\n if (!(kRequest in this)) {\n callback();\n return;\n }\n if (this[kRequest].destroyed) {\n callback();\n return;\n }\n this[kRequest].end((error) => {\n if (!error) {\n this[kBodySize] = this[kUploadedSize];\n this.emit('uploadProgress', this.uploadProgress);\n this[kRequest].emit('upload-complete');\n }\n callback(error);\n });\n };\n if (this.requestInitialized) {\n endRequest();\n }\n else {\n this[kJobs].push(endRequest);\n }\n }\n _destroy(error, callback) {\n var _a;\n this[kStopReading] = true;\n // Prevent further retries\n clearTimeout(this[kRetryTimeout]);\n if (kRequest in this) {\n this[kCancelTimeouts]();\n // TODO: Remove the next `if` when these get fixed:\n // - https://github.com/nodejs/node/issues/32851\n if (!((_a = this[kResponse]) === null || _a === void 0 ? void 0 : _a.complete)) {\n this[kRequest].destroy();\n }\n }\n if (error !== null && !is_1.default.undefined(error) && !(error instanceof RequestError)) {\n error = new RequestError(error.message, error, this);\n }\n callback(error);\n }\n get _isAboutToError() {\n return this[kStopReading];\n }\n /**\n The remote IP address.\n */\n get ip() {\n var _a;\n return (_a = this.socket) === null || _a === void 0 ? void 0 : _a.remoteAddress;\n }\n /**\n Indicates whether the request has been aborted or not.\n */\n get aborted() {\n var _a, _b, _c;\n return ((_b = (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.destroyed) !== null && _b !== void 0 ? _b : this.destroyed) && !((_c = this[kOriginalResponse]) === null || _c === void 0 ? void 0 : _c.complete);\n }\n get socket() {\n var _a, _b;\n return (_b = (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.socket) !== null && _b !== void 0 ? _b : undefined;\n }\n /**\n Progress event for downloading (receiving a response).\n */\n get downloadProgress() {\n let percent;\n if (this[kResponseSize]) {\n percent = this[kDownloadedSize] / this[kResponseSize];\n }\n else if (this[kResponseSize] === this[kDownloadedSize]) {\n percent = 1;\n }\n else {\n percent = 0;\n }\n return {\n percent,\n transferred: this[kDownloadedSize],\n total: this[kResponseSize]\n };\n }\n /**\n Progress event for uploading (sending a request).\n */\n get uploadProgress() {\n let percent;\n if (this[kBodySize]) {\n percent = this[kUploadedSize] / this[kBodySize];\n }\n else if (this[kBodySize] === this[kUploadedSize]) {\n percent = 1;\n }\n else {\n percent = 0;\n }\n return {\n percent,\n transferred: this[kUploadedSize],\n total: this[kBodySize]\n };\n }\n /**\n The object contains the following properties:\n\n - `start` - Time when the request started.\n - `socket` - Time when a socket was assigned to the request.\n - `lookup` - Time when the DNS lookup finished.\n - `connect` - Time when the socket successfully connected.\n - `secureConnect` - Time when the socket securely connected.\n - `upload` - Time when the request finished uploading.\n - `response` - Time when the request fired `response` event.\n - `end` - Time when the response fired `end` event.\n - `error` - Time when the request fired `error` event.\n - `abort` - Time when the request fired `abort` event.\n - `phases`\n - `wait` - `timings.socket - timings.start`\n - `dns` - `timings.lookup - timings.socket`\n - `tcp` - `timings.connect - timings.lookup`\n - `tls` - `timings.secureConnect - timings.connect`\n - `request` - `timings.upload - (timings.secureConnect || timings.connect)`\n - `firstByte` - `timings.response - timings.upload`\n - `download` - `timings.end - timings.response`\n - `total` - `(timings.end || timings.error || timings.abort) - timings.start`\n\n If something has not been measured yet, it will be `undefined`.\n\n __Note__: The time is a `number` representing the milliseconds elapsed since the UNIX epoch.\n */\n get timings() {\n var _a;\n return (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.timings;\n }\n /**\n Whether the response was retrieved from the cache.\n */\n get isFromCache() {\n return this[kIsFromCache];\n }\n pipe(destination, options) {\n if (this[kStartedReading]) {\n throw new Error('Failed to pipe. The response has been emitted already.');\n }\n if (destination instanceof http_1.ServerResponse) {\n this[kServerResponsesPiped].add(destination);\n }\n return super.pipe(destination, options);\n }\n unpipe(destination) {\n if (destination instanceof http_1.ServerResponse) {\n this[kServerResponsesPiped].delete(destination);\n }\n super.unpipe(destination);\n return this;\n }\n}\nexports.default = Request;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancelError = exports.ParseError = void 0;\nconst core_1 = require(\"../core\");\n/**\nAn error to be thrown when server response code is 2xx, and parsing body fails.\nIncludes a `response` property.\n*/\nclass ParseError extends core_1.RequestError {\n constructor(error, response) {\n const { options } = response.request;\n super(`${error.message} in \"${options.url.toString()}\"`, error, response.request);\n this.name = 'ParseError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_BODY_PARSE_FAILURE' : this.code;\n }\n}\nexports.ParseError = ParseError;\n/**\nAn error to be thrown when the request is aborted with `.cancel()`.\n*/\nclass CancelError extends core_1.RequestError {\n constructor(request) {\n super('Promise was canceled', {}, request);\n this.name = 'CancelError';\n this.code = 'ERR_CANCELED';\n }\n get isCanceled() {\n return true;\n }\n}\nexports.CancelError = CancelError;\n__exportStar(require(\"../core\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"./types\");\nconst parseBody = (response, responseType, parseJson, encoding) => {\n const { rawBody } = response;\n try {\n if (responseType === 'text') {\n return rawBody.toString(encoding);\n }\n if (responseType === 'json') {\n return rawBody.length === 0 ? '' : parseJson(rawBody.toString());\n }\n if (responseType === 'buffer') {\n return rawBody;\n }\n throw new types_1.ParseError({\n message: `Unknown body type '${responseType}'`,\n name: 'Error'\n }, response);\n }\n catch (error) {\n throw new types_1.ParseError(error, response);\n }\n};\nexports.default = parseBody;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst PCancelable = require(\"p-cancelable\");\nconst types_1 = require(\"./types\");\nconst parse_body_1 = require(\"./parse-body\");\nconst core_1 = require(\"../core\");\nconst proxy_events_1 = require(\"../core/utils/proxy-events\");\nconst get_buffer_1 = require(\"../core/utils/get-buffer\");\nconst is_response_ok_1 = require(\"../core/utils/is-response-ok\");\nconst proxiedRequestEvents = [\n 'request',\n 'response',\n 'redirect',\n 'uploadProgress',\n 'downloadProgress'\n];\nfunction asPromise(normalizedOptions) {\n let globalRequest;\n let globalResponse;\n const emitter = new events_1.EventEmitter();\n const promise = new PCancelable((resolve, reject, onCancel) => {\n const makeRequest = (retryCount) => {\n const request = new core_1.default(undefined, normalizedOptions);\n request.retryCount = retryCount;\n request._noPipe = true;\n onCancel(() => request.destroy());\n onCancel.shouldReject = false;\n onCancel(() => reject(new types_1.CancelError(request)));\n globalRequest = request;\n request.once('response', async (response) => {\n var _a;\n response.retryCount = retryCount;\n if (response.request.aborted) {\n // Canceled while downloading - will throw a `CancelError` or `TimeoutError` error\n return;\n }\n // Download body\n let rawBody;\n try {\n rawBody = await get_buffer_1.default(request);\n response.rawBody = rawBody;\n }\n catch (_b) {\n // The same error is caught below.\n // See request.once('error')\n return;\n }\n if (request._isAboutToError) {\n return;\n }\n // Parse body\n const contentEncoding = ((_a = response.headers['content-encoding']) !== null && _a !== void 0 ? _a : '').toLowerCase();\n const isCompressed = ['gzip', 'deflate', 'br'].includes(contentEncoding);\n const { options } = request;\n if (isCompressed && !options.decompress) {\n response.body = rawBody;\n }\n else {\n try {\n response.body = parse_body_1.default(response, options.responseType, options.parseJson, options.encoding);\n }\n catch (error) {\n // Fallback to `utf8`\n response.body = rawBody.toString();\n if (is_response_ok_1.isResponseOk(response)) {\n request._beforeError(error);\n return;\n }\n }\n }\n try {\n for (const [index, hook] of options.hooks.afterResponse.entries()) {\n // @ts-expect-error TS doesn't notice that CancelableRequest is a Promise\n // eslint-disable-next-line no-await-in-loop\n response = await hook(response, async (updatedOptions) => {\n const typedOptions = core_1.default.normalizeArguments(undefined, {\n ...updatedOptions,\n retry: {\n calculateDelay: () => 0\n },\n throwHttpErrors: false,\n resolveBodyOnly: false\n }, options);\n // Remove any further hooks for that request, because we'll call them anyway.\n // The loop continues. We don't want duplicates (asPromise recursion).\n typedOptions.hooks.afterResponse = typedOptions.hooks.afterResponse.slice(0, index);\n for (const hook of typedOptions.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n await hook(typedOptions);\n }\n const promise = asPromise(typedOptions);\n onCancel(() => {\n promise.catch(() => { });\n promise.cancel();\n });\n return promise;\n });\n }\n }\n catch (error) {\n request._beforeError(new types_1.RequestError(error.message, error, request));\n return;\n }\n globalResponse = response;\n if (!is_response_ok_1.isResponseOk(response)) {\n request._beforeError(new types_1.HTTPError(response));\n return;\n }\n request.destroy();\n resolve(request.options.resolveBodyOnly ? response.body : response);\n });\n const onError = (error) => {\n if (promise.isCanceled) {\n return;\n }\n const { options } = request;\n if (error instanceof types_1.HTTPError && !options.throwHttpErrors) {\n const { response } = error;\n resolve(request.options.resolveBodyOnly ? response.body : response);\n return;\n }\n reject(error);\n };\n request.once('error', onError);\n const previousBody = request.options.body;\n request.once('retry', (newRetryCount, error) => {\n var _a, _b;\n if (previousBody === ((_a = error.request) === null || _a === void 0 ? void 0 : _a.options.body) && is_1.default.nodeStream((_b = error.request) === null || _b === void 0 ? void 0 : _b.options.body)) {\n onError(error);\n return;\n }\n makeRequest(newRetryCount);\n });\n proxy_events_1.default(request, emitter, proxiedRequestEvents);\n };\n makeRequest(0);\n });\n promise.on = (event, fn) => {\n emitter.on(event, fn);\n return promise;\n };\n const shortcut = (responseType) => {\n const newPromise = (async () => {\n // Wait until downloading has ended\n await promise;\n const { options } = globalResponse.request;\n return parse_body_1.default(globalResponse, responseType, options.parseJson, options.encoding);\n })();\n Object.defineProperties(newPromise, Object.getOwnPropertyDescriptors(promise));\n return newPromise;\n };\n promise.json = () => {\n const { headers } = globalRequest.options;\n if (!globalRequest.writableFinished && headers.accept === undefined) {\n headers.accept = 'application/json';\n }\n return shortcut('json');\n };\n promise.buffer = () => shortcut('buffer');\n promise.text = () => shortcut('text');\n return promise;\n}\nexports.default = asPromise;\n__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"./types\");\nfunction createRejection(error, ...beforeErrorGroups) {\n const promise = (async () => {\n if (error instanceof types_1.RequestError) {\n try {\n for (const hooks of beforeErrorGroups) {\n if (hooks) {\n for (const hook of hooks) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n }\n }\n }\n catch (error_) {\n error = error_;\n }\n }\n throw error;\n })();\n const returnPromise = () => promise;\n promise.json = returnPromise;\n promise.text = returnPromise;\n promise.buffer = returnPromise;\n promise.on = returnPromise;\n return promise;\n}\nexports.default = createRejection;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nfunction deepFreeze(object) {\n for (const value of Object.values(object)) {\n if (is_1.default.plainObject(value) || is_1.default.array(value)) {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n}\nexports.default = deepFreeze;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultHandler = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst as_promise_1 = require(\"./as-promise\");\nconst create_rejection_1 = require(\"./as-promise/create-rejection\");\nconst core_1 = require(\"./core\");\nconst deep_freeze_1 = require(\"./utils/deep-freeze\");\nconst errors = {\n RequestError: as_promise_1.RequestError,\n CacheError: as_promise_1.CacheError,\n ReadError: as_promise_1.ReadError,\n HTTPError: as_promise_1.HTTPError,\n MaxRedirectsError: as_promise_1.MaxRedirectsError,\n TimeoutError: as_promise_1.TimeoutError,\n ParseError: as_promise_1.ParseError,\n CancelError: as_promise_1.CancelError,\n UnsupportedProtocolError: as_promise_1.UnsupportedProtocolError,\n UploadError: as_promise_1.UploadError\n};\n// The `delay` package weighs 10KB (!)\nconst delay = async (ms) => new Promise(resolve => {\n setTimeout(resolve, ms);\n});\nconst { normalizeArguments } = core_1.default;\nconst mergeOptions = (...sources) => {\n let mergedOptions;\n for (const source of sources) {\n mergedOptions = normalizeArguments(undefined, source, mergedOptions);\n }\n return mergedOptions;\n};\nconst getPromiseOrStream = (options) => options.isStream ? new core_1.default(undefined, options) : as_promise_1.default(options);\nconst isGotInstance = (value) => ('defaults' in value && 'options' in value.defaults);\nconst aliases = [\n 'get',\n 'post',\n 'put',\n 'patch',\n 'head',\n 'delete'\n];\nexports.defaultHandler = (options, next) => next(options);\nconst callInitHooks = (hooks, options) => {\n if (hooks) {\n for (const hook of hooks) {\n hook(options);\n }\n }\n};\nconst create = (defaults) => {\n // Proxy properties from next handlers\n defaults._rawHandlers = defaults.handlers;\n defaults.handlers = defaults.handlers.map(fn => ((options, next) => {\n // This will be assigned by assigning result\n let root;\n const result = fn(options, newOptions => {\n root = next(newOptions);\n return root;\n });\n if (result !== root && !options.isStream && root) {\n const typedResult = result;\n const { then: promiseThen, catch: promiseCatch, finally: promiseFianlly } = typedResult;\n Object.setPrototypeOf(typedResult, Object.getPrototypeOf(root));\n Object.defineProperties(typedResult, Object.getOwnPropertyDescriptors(root));\n // These should point to the new promise\n // eslint-disable-next-line promise/prefer-await-to-then\n typedResult.then = promiseThen;\n typedResult.catch = promiseCatch;\n typedResult.finally = promiseFianlly;\n }\n return result;\n }));\n // Got interface\n const got = ((url, options = {}, _defaults) => {\n var _a, _b;\n let iteration = 0;\n const iterateHandlers = (newOptions) => {\n return defaults.handlers[iteration++](newOptions, iteration === defaults.handlers.length ? getPromiseOrStream : iterateHandlers);\n };\n // TODO: Remove this in Got 12.\n if (is_1.default.plainObject(url)) {\n const mergedOptions = {\n ...url,\n ...options\n };\n core_1.setNonEnumerableProperties([url, options], mergedOptions);\n options = mergedOptions;\n url = undefined;\n }\n try {\n // Call `init` hooks\n let initHookError;\n try {\n callInitHooks(defaults.options.hooks.init, options);\n callInitHooks((_a = options.hooks) === null || _a === void 0 ? void 0 : _a.init, options);\n }\n catch (error) {\n initHookError = error;\n }\n // Normalize options & call handlers\n const normalizedOptions = normalizeArguments(url, options, _defaults !== null && _defaults !== void 0 ? _defaults : defaults.options);\n normalizedOptions[core_1.kIsNormalizedAlready] = true;\n if (initHookError) {\n throw new as_promise_1.RequestError(initHookError.message, initHookError, normalizedOptions);\n }\n return iterateHandlers(normalizedOptions);\n }\n catch (error) {\n if (options.isStream) {\n throw error;\n }\n else {\n return create_rejection_1.default(error, defaults.options.hooks.beforeError, (_b = options.hooks) === null || _b === void 0 ? void 0 : _b.beforeError);\n }\n }\n });\n got.extend = (...instancesOrOptions) => {\n const optionsArray = [defaults.options];\n let handlers = [...defaults._rawHandlers];\n let isMutableDefaults;\n for (const value of instancesOrOptions) {\n if (isGotInstance(value)) {\n optionsArray.push(value.defaults.options);\n handlers.push(...value.defaults._rawHandlers);\n isMutableDefaults = value.defaults.mutableDefaults;\n }\n else {\n optionsArray.push(value);\n if ('handlers' in value) {\n handlers.push(...value.handlers);\n }\n isMutableDefaults = value.mutableDefaults;\n }\n }\n handlers = handlers.filter(handler => handler !== exports.defaultHandler);\n if (handlers.length === 0) {\n handlers.push(exports.defaultHandler);\n }\n return create({\n options: mergeOptions(...optionsArray),\n handlers,\n mutableDefaults: Boolean(isMutableDefaults)\n });\n };\n // Pagination\n const paginateEach = (async function* (url, options) {\n // TODO: Remove this `@ts-expect-error` when upgrading to TypeScript 4.\n // Error: Argument of type 'Merge> | undefined' is not assignable to parameter of type 'Options | undefined'.\n // @ts-expect-error\n let normalizedOptions = normalizeArguments(url, options, defaults.options);\n normalizedOptions.resolveBodyOnly = false;\n const pagination = normalizedOptions.pagination;\n if (!is_1.default.object(pagination)) {\n throw new TypeError('`options.pagination` must be implemented');\n }\n const all = [];\n let { countLimit } = pagination;\n let numberOfRequests = 0;\n while (numberOfRequests < pagination.requestLimit) {\n if (numberOfRequests !== 0) {\n // eslint-disable-next-line no-await-in-loop\n await delay(pagination.backoff);\n }\n // @ts-expect-error FIXME!\n // TODO: Throw when result is not an instance of Response\n // eslint-disable-next-line no-await-in-loop\n const result = (await got(undefined, undefined, normalizedOptions));\n // eslint-disable-next-line no-await-in-loop\n const parsed = await pagination.transform(result);\n const current = [];\n for (const item of parsed) {\n if (pagination.filter(item, all, current)) {\n if (!pagination.shouldContinue(item, all, current)) {\n return;\n }\n yield item;\n if (pagination.stackAllItems) {\n all.push(item);\n }\n current.push(item);\n if (--countLimit <= 0) {\n return;\n }\n }\n }\n const optionsToMerge = pagination.paginate(result, all, current);\n if (optionsToMerge === false) {\n return;\n }\n if (optionsToMerge === result.request.options) {\n normalizedOptions = result.request.options;\n }\n else if (optionsToMerge !== undefined) {\n normalizedOptions = normalizeArguments(undefined, optionsToMerge, normalizedOptions);\n }\n numberOfRequests++;\n }\n });\n got.paginate = paginateEach;\n got.paginate.all = (async (url, options) => {\n const results = [];\n for await (const item of paginateEach(url, options)) {\n results.push(item);\n }\n return results;\n });\n // For those who like very descriptive names\n got.paginate.each = paginateEach;\n // Stream API\n got.stream = ((url, options) => got(url, { ...options, isStream: true }));\n // Shortcuts\n for (const method of aliases) {\n got[method] = ((url, options) => got(url, { ...options, method }));\n got.stream[method] = ((url, options) => {\n return got(url, { ...options, method, isStream: true });\n });\n }\n Object.assign(got, errors);\n Object.defineProperty(got, 'defaults', {\n value: defaults.mutableDefaults ? defaults : deep_freeze_1.default(defaults),\n writable: defaults.mutableDefaults,\n configurable: defaults.mutableDefaults,\n enumerable: true\n });\n got.mergeOptions = mergeOptions;\n return got;\n};\nexports.default = create;\n__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst url_1 = require(\"url\");\nconst create_1 = require(\"./create\");\nconst defaults = {\n options: {\n method: 'GET',\n retry: {\n limit: 2,\n methods: [\n 'GET',\n 'PUT',\n 'HEAD',\n 'DELETE',\n 'OPTIONS',\n 'TRACE'\n ],\n statusCodes: [\n 408,\n 413,\n 429,\n 500,\n 502,\n 503,\n 504,\n 521,\n 522,\n 524\n ],\n errorCodes: [\n 'ETIMEDOUT',\n 'ECONNRESET',\n 'EADDRINUSE',\n 'ECONNREFUSED',\n 'EPIPE',\n 'ENOTFOUND',\n 'ENETUNREACH',\n 'EAI_AGAIN'\n ],\n maxRetryAfter: undefined,\n calculateDelay: ({ computedValue }) => computedValue\n },\n timeout: {},\n headers: {\n 'user-agent': 'got (https://github.com/sindresorhus/got)'\n },\n hooks: {\n init: [],\n beforeRequest: [],\n beforeRedirect: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n },\n cache: undefined,\n dnsCache: undefined,\n decompress: true,\n throwHttpErrors: true,\n followRedirect: true,\n isStream: false,\n responseType: 'text',\n resolveBodyOnly: false,\n maxRedirects: 10,\n prefixUrl: '',\n methodRewriting: true,\n ignoreInvalidCookies: false,\n context: {},\n // TODO: Set this to `true` when Got 12 gets released\n http2: false,\n allowGetBody: false,\n https: undefined,\n pagination: {\n transform: (response) => {\n if (response.request.options.responseType === 'json') {\n return response.body;\n }\n return JSON.parse(response.body);\n },\n paginate: response => {\n if (!Reflect.has(response.headers, 'link')) {\n return false;\n }\n const items = response.headers.link.split(',');\n let next;\n for (const item of items) {\n const parsed = item.split(';');\n if (parsed[1].includes('next')) {\n next = parsed[0].trimStart().trim();\n next = next.slice(1, -1);\n break;\n }\n }\n if (next) {\n const options = {\n url: new url_1.URL(next)\n };\n return options;\n }\n return false;\n },\n filter: () => true,\n shouldContinue: () => true,\n countLimit: Infinity,\n backoff: 0,\n requestLimit: 10000,\n stackAllItems: true\n },\n parseJson: (text) => JSON.parse(text),\n stringifyJson: (object) => JSON.stringify(object),\n cacheOptions: {}\n },\n handlers: [create_1.defaultHandler],\n mutableDefaults: false\n};\nconst got = create_1.default(defaults);\nexports.default = got;\n// For CommonJS default export support\nmodule.exports = got;\nmodule.exports.default = got;\nmodule.exports.__esModule = true; // Workaround for TS issue: https://github.com/sindresorhus/got/pull/1267\n__exportStar(require(\"./create\"), exports);\n__exportStar(require(\"./as-promise\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getParsedType = exports.ZodParsedType = exports.objectUtil = exports.util = void 0;\nvar util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (exports.util = util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (exports.objectUtil = objectUtil = {}));\nexports.ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return exports.ZodParsedType.undefined;\n case \"string\":\n return exports.ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? exports.ZodParsedType.nan : exports.ZodParsedType.number;\n case \"boolean\":\n return exports.ZodParsedType.boolean;\n case \"function\":\n return exports.ZodParsedType.function;\n case \"bigint\":\n return exports.ZodParsedType.bigint;\n case \"symbol\":\n return exports.ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return exports.ZodParsedType.array;\n }\n if (data === null) {\n return exports.ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return exports.ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return exports.ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return exports.ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return exports.ZodParsedType.date;\n }\n return exports.ZodParsedType.object;\n default:\n return exports.ZodParsedType.unknown;\n }\n};\nexports.getParsedType = getParsedType;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZodError = exports.quotelessJson = exports.ZodIssueCode = void 0;\nconst util_1 = require(\"./helpers/util\");\nexports.ZodIssueCode = util_1.util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexports.quotelessJson = quotelessJson;\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util_1.util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nexports.ZodError = ZodError;\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../helpers/util\");\nconst ZodError_1 = require(\"../ZodError\");\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodError_1.ZodIssueCode.invalid_type:\n if (issue.received === util_1.ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodError_1.ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util_1.util.jsonStringifyReplacer)}`;\n break;\n case ZodError_1.ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util_1.util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodError_1.ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodError_1.ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util_1.util.joinValues(issue.options)}`;\n break;\n case ZodError_1.ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util_1.util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodError_1.ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodError_1.ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodError_1.ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodError_1.ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util_1.util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodError_1.ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodError_1.ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodError_1.ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodError_1.ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodError_1.ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodError_1.ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util_1.util.assertNever(issue);\n }\n return { message };\n};\nexports.default = errorMap;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorMap = exports.setErrorMap = exports.defaultErrorMap = void 0;\nconst en_1 = __importDefault(require(\"./locales/en\"));\nexports.defaultErrorMap = en_1.default;\nlet overrideErrorMap = en_1.default;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nexports.setErrorMap = setErrorMap;\nfunction getErrorMap() {\n return overrideErrorMap;\n}\nexports.getErrorMap = getErrorMap;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAsync = exports.isValid = exports.isDirty = exports.isAborted = exports.OK = exports.DIRTY = exports.INVALID = exports.ParseStatus = exports.addIssueToContext = exports.EMPTY_PATH = exports.makeIssue = void 0;\nconst errors_1 = require(\"../errors\");\nconst en_1 = __importDefault(require(\"../locales/en\"));\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexports.makeIssue = makeIssue;\nexports.EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = (0, errors_1.getErrorMap)();\n const issue = (0, exports.makeIssue)({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === en_1.default ? undefined : en_1.default, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexports.addIssueToContext = addIssueToContext;\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return exports.INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return exports.INVALID;\n if (value.status === \"aborted\")\n return exports.INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexports.ParseStatus = ParseStatus;\nexports.INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nexports.DIRTY = DIRTY;\nconst OK = (value) => ({ status: \"valid\", value });\nexports.OK = OK;\nconst isAborted = (x) => x.status === \"aborted\";\nexports.isAborted = isAborted;\nconst isDirty = (x) => x.status === \"dirty\";\nexports.isDirty = isDirty;\nconst isValid = (x) => x.status === \"valid\";\nexports.isValid = isValid;\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\nexports.isAsync = isAsync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorUtil = void 0;\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (exports.errorUtil = errorUtil = {}));\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolean = exports.bigint = exports.array = exports.any = exports.coerce = exports.ZodFirstPartyTypeKind = exports.late = exports.ZodSchema = exports.Schema = exports.custom = exports.ZodReadonly = exports.ZodPipeline = exports.ZodBranded = exports.BRAND = exports.ZodNaN = exports.ZodCatch = exports.ZodDefault = exports.ZodNullable = exports.ZodOptional = exports.ZodTransformer = exports.ZodEffects = exports.ZodPromise = exports.ZodNativeEnum = exports.ZodEnum = exports.ZodLiteral = exports.ZodLazy = exports.ZodFunction = exports.ZodSet = exports.ZodMap = exports.ZodRecord = exports.ZodTuple = exports.ZodIntersection = exports.ZodDiscriminatedUnion = exports.ZodUnion = exports.ZodObject = exports.ZodArray = exports.ZodVoid = exports.ZodNever = exports.ZodUnknown = exports.ZodAny = exports.ZodNull = exports.ZodUndefined = exports.ZodSymbol = exports.ZodDate = exports.ZodBoolean = exports.ZodBigInt = exports.ZodNumber = exports.ZodString = exports.datetimeRegex = exports.ZodType = void 0;\nexports.NEVER = exports.void = exports.unknown = exports.union = exports.undefined = exports.tuple = exports.transformer = exports.symbol = exports.string = exports.strictObject = exports.set = exports.record = exports.promise = exports.preprocess = exports.pipeline = exports.ostring = exports.optional = exports.onumber = exports.oboolean = exports.object = exports.number = exports.nullable = exports.null = exports.never = exports.nativeEnum = exports.nan = exports.map = exports.literal = exports.lazy = exports.intersection = exports.instanceof = exports.function = exports.enum = exports.effect = exports.discriminatedUnion = exports.date = void 0;\nconst errors_1 = require(\"./errors\");\nconst errorUtil_1 = require(\"./helpers/errorUtil\");\nconst parseUtil_1 = require(\"./helpers/parseUtil\");\nconst util_1 = require(\"./helpers/util\");\nconst ZodError_1 = require(\"./ZodError\");\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if ((0, parseUtil_1.isValid)(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError_1.ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return (0, util_1.getParsedType)(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: (0, util_1.getParsedType)(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new parseUtil_1.ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: (0, util_1.getParsedType)(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if ((0, parseUtil_1.isAsync)(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_1.getParsedType)(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_1.getParsedType)(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return (0, parseUtil_1.isValid)(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => (0, parseUtil_1.isValid)(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_1.getParsedType)(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await ((0, parseUtil_1.isAsync)(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodError_1.ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nexports.ZodType = ZodType;\nexports.Schema = ZodType;\nexports.ZodSchema = ZodType;\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nexports.datetimeRegex = datetimeRegex;\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.string,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const status = new parseUtil_1.ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"email\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"emoji\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"uuid\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"nanoid\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"cuid\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"cuid2\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"ulid\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"url\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"regex\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"duration\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"ip\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"jwt\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"cidr\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"base64\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"base64url\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodError_1.ZodIssueCode.invalid_string,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil_1.errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil_1.errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil_1.errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil_1.errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil_1.errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil_1.errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil_1.errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nexports.ZodString = ZodString;\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.number,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n let ctx = undefined;\n const status = new parseUtil_1.ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util_1.util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil_1.errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil_1.errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil_1.errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil_1.errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util_1.util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nexports.ZodNumber = ZodNumber;\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new parseUtil_1.ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil_1.errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil_1.errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil_1.errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nexports.ZodBigInt = ZodBigInt;\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodBoolean = ZodBoolean;\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.date,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_date,\n });\n return parseUtil_1.INVALID;\n }\n const status = new parseUtil_1.ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util_1.util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nexports.ZodDate = ZodDate;\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodSymbol = ZodSymbol;\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodUndefined = ZodUndefined;\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.null,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodNull = ZodNull;\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodAny = ZodAny;\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodUnknown = ZodUnknown;\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.never,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n}\nexports.ZodNever = ZodNever;\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.void,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodVoid = ZodVoid;\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== util_1.ZodParsedType.array) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.array,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: tooBig ? ZodError_1.ZodIssueCode.too_big : ZodError_1.ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return parseUtil_1.ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return parseUtil_1.ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nexports.ZodArray = ZodArray;\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util_1.util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return parseUtil_1.ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return parseUtil_1.ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil_1.errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil_1.errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util_1.util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util_1.util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util_1.util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util_1.util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util_1.util.objectKeys(this.shape));\n }\n}\nexports.ZodObject = ZodObject;\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError_1.ZodError(result.ctx.common.issues));\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_union,\n unionErrors,\n });\n return parseUtil_1.INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError_1.ZodError(issues));\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_union,\n unionErrors,\n });\n return parseUtil_1.INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nexports.ZodUnion = ZodUnion;\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util_1.util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.object) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return parseUtil_1.INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nexports.ZodDiscriminatedUnion = ZodDiscriminatedUnion;\nfunction mergeValues(a, b) {\n const aType = (0, util_1.getParsedType)(a);\n const bType = (0, util_1.getParsedType)(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === util_1.ZodParsedType.object && bType === util_1.ZodParsedType.object) {\n const bKeys = util_1.util.objectKeys(b);\n const sharedKeys = util_1.util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === util_1.ZodParsedType.array && bType === util_1.ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === util_1.ZodParsedType.date &&\n bType === util_1.ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if ((0, parseUtil_1.isAborted)(parsedLeft) || (0, parseUtil_1.isAborted)(parsedRight)) {\n return parseUtil_1.INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_intersection_types,\n });\n return parseUtil_1.INVALID;\n }\n if ((0, parseUtil_1.isDirty)(parsedLeft) || (0, parseUtil_1.isDirty)(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nexports.ZodIntersection = ZodIntersection;\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.array) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.array,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return parseUtil_1.INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return parseUtil_1.ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return parseUtil_1.ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nexports.ZodTuple = ZodTuple;\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.object) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return parseUtil_1.ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return parseUtil_1.ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexports.ZodRecord = ZodRecord;\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.map) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.map,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return parseUtil_1.INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return parseUtil_1.INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nexports.ZodMap = ZodMap;\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.set) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.set,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nexports.ZodSet = ZodSet;\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.function) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.function,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n function makeArgsIssue(args, error) {\n return (0, parseUtil_1.makeIssue)({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n (0, errors_1.getErrorMap)(),\n errors_1.defaultErrorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodError_1.ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return (0, parseUtil_1.makeIssue)({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n (0, errors_1.getErrorMap)(),\n errors_1.defaultErrorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodError_1.ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return (0, parseUtil_1.OK)(async function (...args) {\n const error = new ZodError_1.ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return (0, parseUtil_1.OK)(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError_1.ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError_1.ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexports.ZodFunction = ZodFunction;\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nexports.ZodLazy = ZodLazy;\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_1.ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return parseUtil_1.INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nexports.ZodLiteral = ZodLiteral;\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n (0, parseUtil_1.addIssueToContext)(ctx, {\n expected: util_1.util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodError_1.ZodIssueCode.invalid_type,\n });\n return parseUtil_1.INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n (0, parseUtil_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_1.ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nexports.ZodEnum = ZodEnum;\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util_1.util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== util_1.ZodParsedType.string &&\n ctx.parsedType !== util_1.ZodParsedType.number) {\n const expectedValues = util_1.util.objectValues(nativeEnumValues);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n expected: util_1.util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodError_1.ZodIssueCode.invalid_type,\n });\n return parseUtil_1.INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util_1.util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util_1.util.objectValues(nativeEnumValues);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_1.ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nexports.ZodNativeEnum = ZodNativeEnum;\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_1.ZodParsedType.promise &&\n ctx.common.async === false) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const promisified = ctx.parsedType === util_1.ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return (0, parseUtil_1.OK)(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nexports.ZodPromise = ZodPromise;\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n (0, parseUtil_1.addIssueToContext)(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return parseUtil_1.INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (result.status === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n if (status.value === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return parseUtil_1.INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (result.status === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n if (status.value === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!(0, parseUtil_1.isValid)(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!(0, parseUtil_1.isValid)(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util_1.util.assertNever(effect);\n }\n}\nexports.ZodEffects = ZodEffects;\nexports.ZodTransformer = ZodEffects;\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === util_1.ZodParsedType.undefined) {\n return (0, parseUtil_1.OK)(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodOptional = ZodOptional;\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === util_1.ZodParsedType.null) {\n return (0, parseUtil_1.OK)(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodNullable = ZodNullable;\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === util_1.ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nexports.ZodDefault = ZodDefault;\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if ((0, parseUtil_1.isAsync)(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError_1.ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError_1.ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nexports.ZodCatch = ZodCatch;\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nexports.ZodNaN = ZodNaN;\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexports.BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexports.ZodBranded = ZodBranded;\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return (0, parseUtil_1.DIRTY)(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return parseUtil_1.INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexports.ZodPipeline = ZodPipeline;\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if ((0, parseUtil_1.isValid)(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return (0, parseUtil_1.isAsync)(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodReadonly = ZodReadonly;\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nfunction custom(check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n}\nexports.custom = custom;\nexports.late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (exports.ZodFirstPartyTypeKind = ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nexports.instanceof = instanceOfType;\nconst stringType = ZodString.create;\nexports.string = stringType;\nconst numberType = ZodNumber.create;\nexports.number = numberType;\nconst nanType = ZodNaN.create;\nexports.nan = nanType;\nconst bigIntType = ZodBigInt.create;\nexports.bigint = bigIntType;\nconst booleanType = ZodBoolean.create;\nexports.boolean = booleanType;\nconst dateType = ZodDate.create;\nexports.date = dateType;\nconst symbolType = ZodSymbol.create;\nexports.symbol = symbolType;\nconst undefinedType = ZodUndefined.create;\nexports.undefined = undefinedType;\nconst nullType = ZodNull.create;\nexports.null = nullType;\nconst anyType = ZodAny.create;\nexports.any = anyType;\nconst unknownType = ZodUnknown.create;\nexports.unknown = unknownType;\nconst neverType = ZodNever.create;\nexports.never = neverType;\nconst voidType = ZodVoid.create;\nexports.void = voidType;\nconst arrayType = ZodArray.create;\nexports.array = arrayType;\nconst objectType = ZodObject.create;\nexports.object = objectType;\nconst strictObjectType = ZodObject.strictCreate;\nexports.strictObject = strictObjectType;\nconst unionType = ZodUnion.create;\nexports.union = unionType;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nexports.discriminatedUnion = discriminatedUnionType;\nconst intersectionType = ZodIntersection.create;\nexports.intersection = intersectionType;\nconst tupleType = ZodTuple.create;\nexports.tuple = tupleType;\nconst recordType = ZodRecord.create;\nexports.record = recordType;\nconst mapType = ZodMap.create;\nexports.map = mapType;\nconst setType = ZodSet.create;\nexports.set = setType;\nconst functionType = ZodFunction.create;\nexports.function = functionType;\nconst lazyType = ZodLazy.create;\nexports.lazy = lazyType;\nconst literalType = ZodLiteral.create;\nexports.literal = literalType;\nconst enumType = ZodEnum.create;\nexports.enum = enumType;\nconst nativeEnumType = ZodNativeEnum.create;\nexports.nativeEnum = nativeEnumType;\nconst promiseType = ZodPromise.create;\nexports.promise = promiseType;\nconst effectsType = ZodEffects.create;\nexports.effect = effectsType;\nexports.transformer = effectsType;\nconst optionalType = ZodOptional.create;\nexports.optional = optionalType;\nconst nullableType = ZodNullable.create;\nexports.nullable = nullableType;\nconst preprocessType = ZodEffects.createWithPreprocess;\nexports.preprocess = preprocessType;\nconst pipelineType = ZodPipeline.create;\nexports.pipeline = pipelineType;\nconst ostring = () => stringType().optional();\nexports.ostring = ostring;\nconst onumber = () => numberType().optional();\nexports.onumber = onumber;\nconst oboolean = () => booleanType().optional();\nexports.oboolean = oboolean;\nexports.coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexports.NEVER = parseUtil_1.INVALID;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./helpers/parseUtil\"), exports);\n__exportStar(require(\"./helpers/typeAliases\"), exports);\n__exportStar(require(\"./helpers/util\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./ZodError\"), exports);\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.z = void 0;\nconst z = __importStar(require(\"./external\"));\nexports.z = z;\n__exportStar(require(\"./external\"), exports);\nexports.default = z;\n", "'use strict';\n\nconst RE2 = require('./build/Release/re2.node');\n// const RE2 = require('./build/Debug/re2.node');\n\nconst setAliases = (object, dict) => {\n for (let [name, alias] of Object.entries(dict)) {\n Object.defineProperty(\n object,\n alias,\n Object.getOwnPropertyDescriptor(object, name)\n );\n }\n};\n\nsetAliases(RE2.prototype, {\n match: Symbol.match,\n search: Symbol.search,\n replace: Symbol.replace,\n split: Symbol.split\n});\n\nRE2.prototype[Symbol.matchAll] = function* (str) {\n if (!this.global)\n throw TypeError(\n 'String.prototype.matchAll() is called with a non-global RE2 argument'\n );\n\n const re = new RE2(this);\n re.lastIndex = this.lastIndex;\n for (;;) {\n const result = re.exec(str);\n if (!result) break;\n if (result[0] === '') ++re.lastIndex;\n yield result;\n }\n};\n\nmodule.exports = RE2;\n", "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/document/public.js\nvar public_exports = {};\n__export(public_exports, {\n builders: () => builders,\n printer: () => printer,\n utils: () => utils\n});\n\n// src/document/constants.js\nvar DOC_TYPE_STRING = \"string\";\nvar DOC_TYPE_ARRAY = \"array\";\nvar DOC_TYPE_CURSOR = \"cursor\";\nvar DOC_TYPE_INDENT = \"indent\";\nvar DOC_TYPE_ALIGN = \"align\";\nvar DOC_TYPE_TRIM = \"trim\";\nvar DOC_TYPE_GROUP = \"group\";\nvar DOC_TYPE_FILL = \"fill\";\nvar DOC_TYPE_IF_BREAK = \"if-break\";\nvar DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\nvar DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\nvar DOC_TYPE_LINE = \"line\";\nvar DOC_TYPE_LABEL = \"label\";\nvar DOC_TYPE_BREAK_PARENT = \"break-parent\";\nvar VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([\n DOC_TYPE_CURSOR,\n DOC_TYPE_INDENT,\n DOC_TYPE_ALIGN,\n DOC_TYPE_TRIM,\n DOC_TYPE_GROUP,\n DOC_TYPE_FILL,\n DOC_TYPE_IF_BREAK,\n DOC_TYPE_INDENT_IF_BREAK,\n DOC_TYPE_LINE_SUFFIX,\n DOC_TYPE_LINE_SUFFIX_BOUNDARY,\n DOC_TYPE_LINE,\n DOC_TYPE_LABEL,\n DOC_TYPE_BREAK_PARENT\n]);\n\n// src/document/utils/get-doc-type.js\nfunction getDocType(doc) {\n if (typeof doc === \"string\") {\n return DOC_TYPE_STRING;\n }\n if (Array.isArray(doc)) {\n return DOC_TYPE_ARRAY;\n }\n if (!doc) {\n return;\n }\n const { type } = doc;\n if (VALID_OBJECT_DOC_TYPES.has(type)) {\n return type;\n }\n}\nvar get_doc_type_default = getDocType;\n\n// src/document/invalid-doc-error.js\nvar disjunctionListFormat = (list) => new Intl.ListFormat(\"en-US\", { type: \"disjunction\" }).format(list);\nfunction getDocErrorMessage(doc) {\n const type = doc === null ? \"null\" : typeof doc;\n if (type !== \"string\" && type !== \"object\") {\n return `Unexpected doc '${type}', \nExpected it to be 'string' or 'object'.`;\n }\n if (get_doc_type_default(doc)) {\n throw new Error(\"doc is valid.\");\n }\n const objectType = Object.prototype.toString.call(doc);\n if (objectType !== \"[object Object]\") {\n return `Unexpected doc '${objectType}'.`;\n }\n const EXPECTED_TYPE_VALUES = disjunctionListFormat(\n [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)\n );\n return `Unexpected doc.type '${doc.type}'.\nExpected it to be ${EXPECTED_TYPE_VALUES}.`;\n}\nvar InvalidDocError = class extends Error {\n name = \"InvalidDocError\";\n constructor(doc) {\n super(getDocErrorMessage(doc));\n this.doc = doc;\n }\n};\nvar invalid_doc_error_default = InvalidDocError;\n\n// src/document/utils/traverse-doc.js\nvar traverseDocOnExitStackMarker = {};\nfunction traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc];\n while (docsStack.length > 0) {\n const doc2 = docsStack.pop();\n if (doc2 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc2, traverseDocOnExitStackMarker);\n }\n const docType = get_doc_type_default(doc2);\n if (!docType) {\n throw new invalid_doc_error_default(doc2);\n }\n if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {\n continue;\n }\n switch (docType) {\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n docsStack.push(doc2.flatContents, doc2.breakContents);\n break;\n case DOC_TYPE_GROUP:\n if (shouldTraverseConditionalGroups && doc2.expandedStates) {\n for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc2.expandedStates[i]);\n }\n } else {\n docsStack.push(doc2.contents);\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n docsStack.push(doc2.contents);\n break;\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n}\nvar traverse_doc_default = traverseDoc;\n\n// src/document/utils/assert-doc.js\nvar noop = () => {\n};\nvar assertDoc = true ? noop : function(doc) {\n traverse_doc_default(doc, (doc2) => {\n if (checked.has(doc2)) {\n return false;\n }\n if (typeof doc2 !== \"string\") {\n checked.add(doc2);\n }\n });\n};\nvar assertDocArray = true ? noop : function(docs, optional = false) {\n if (optional && !docs) {\n return;\n }\n if (!Array.isArray(docs)) {\n throw new TypeError(\"Unexpected doc array.\");\n }\n for (const doc of docs) {\n assertDoc(doc);\n }\n};\n\n// src/document/builders.js\nfunction indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n}\nfunction align(widthOrString, contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n}\nfunction group(contents, opts = {}) {\n assertDoc(contents);\n assertDocArray(\n opts.expandedStates,\n /* optional */\n true\n );\n return {\n type: DOC_TYPE_GROUP,\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\n}\nfunction dedentToRoot(contents) {\n return align(Number.NEGATIVE_INFINITY, contents);\n}\nfunction markAsRoot(contents) {\n return align({ type: \"root\" }, contents);\n}\nfunction dedent(contents) {\n return align(-1, contents);\n}\nfunction conditionalGroup(states, opts) {\n return group(states[0], { ...opts, expandedStates: states });\n}\nfunction fill(parts) {\n assertDocArray(parts);\n return { type: DOC_TYPE_FILL, parts };\n}\nfunction ifBreak(breakContents, flatContents = \"\", opts = {}) {\n assertDoc(breakContents);\n if (flatContents !== \"\") {\n assertDoc(flatContents);\n }\n return {\n type: DOC_TYPE_IF_BREAK,\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n}\nfunction indentIfBreak(contents, opts) {\n assertDoc(contents);\n return {\n type: DOC_TYPE_INDENT_IF_BREAK,\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n}\nfunction lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n}\nvar lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\nvar breakParent = { type: DOC_TYPE_BREAK_PARENT };\nvar trim = { type: DOC_TYPE_TRIM };\nvar hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\nvar literallineWithoutBreakParent = {\n type: DOC_TYPE_LINE,\n hard: true,\n literal: true\n};\nvar line = { type: DOC_TYPE_LINE };\nvar softline = { type: DOC_TYPE_LINE, soft: true };\nvar hardline = [hardlineWithoutBreakParent, breakParent];\nvar literalline = [literallineWithoutBreakParent, breakParent];\nvar cursor = { type: DOC_TYPE_CURSOR };\nfunction join(separator, docs) {\n assertDoc(separator);\n assertDocArray(docs);\n const parts = [];\n for (let i = 0; i < docs.length; i++) {\n if (i !== 0) {\n parts.push(separator);\n }\n parts.push(docs[i]);\n }\n return parts;\n}\nfunction addAlignmentToDoc(doc, size, tabWidth) {\n assertDoc(doc);\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n}\nfunction label(label2, contents) {\n assertDoc(contents);\n return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n}\n\n// scripts/build/shims/at.js\nvar at = (isOptionalObject, object, index) => {\n if (isOptionalObject && (object === void 0 || object === null)) {\n return;\n }\n if (Array.isArray(object) || typeof object === \"string\") {\n return object[index < 0 ? object.length + index : index];\n }\n return object.at(index);\n};\nvar at_default = at;\n\n// scripts/build/shims/string-replace-all.js\nvar stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n};\nvar string_replace_all_default = stringReplaceAll;\n\n// src/common/end-of-line.js\nfunction convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\n\";\n }\n}\n\n// node_modules/emoji-regex/index.mjs\nvar emoji_regex_default = () => {\n return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n\n// node_modules/get-east-asian-width/lookup.js\nfunction isFullWidth(x) {\n return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n}\nfunction isWide(x) {\n return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\n\n// node_modules/get-east-asian-width/index.js\nvar _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n\n// src/utils/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/u;\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n width += _isNarrowWidth(codePoint) ? 1 : 2;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/document/utils.js\nfunction mapDoc(doc, cb) {\n if (typeof doc === \"string\") {\n return cb(doc);\n }\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc);\n function rec(doc2) {\n if (mapped.has(doc2)) {\n return mapped.get(doc2);\n }\n const result = process2(doc2);\n mapped.set(doc2, result);\n return result;\n }\n function process2(doc2) {\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_ARRAY:\n return cb(doc2.map(rec));\n case DOC_TYPE_FILL:\n return cb({ ...doc2, parts: doc2.parts.map(rec) });\n case DOC_TYPE_IF_BREAK:\n return cb({\n ...doc2,\n breakContents: rec(doc2.breakContents),\n flatContents: rec(doc2.flatContents)\n });\n case DOC_TYPE_GROUP: {\n let { expandedStates, contents } = doc2;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({ ...doc2, contents, expandedStates });\n }\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n return cb({ ...doc2, contents: rec(doc2.contents) });\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n return cb(doc2);\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n}\nfunction findInDoc(doc, fn, defaultValue) {\n let result = defaultValue;\n let shouldSkipFurtherProcessing = false;\n function findInDocOnEnterFn(doc2) {\n if (shouldSkipFurtherProcessing) {\n return false;\n }\n const maybeResult = fn(doc2);\n if (maybeResult !== void 0) {\n shouldSkipFurtherProcessing = true;\n result = maybeResult;\n }\n }\n traverse_doc_default(doc, findInDocOnEnterFn);\n return result;\n}\nfunction willBreakFn(doc) {\n if (doc.type === DOC_TYPE_GROUP && doc.break) {\n return true;\n }\n if (doc.type === DOC_TYPE_LINE && doc.hard) {\n return true;\n }\n if (doc.type === DOC_TYPE_BREAK_PARENT) {\n return true;\n }\n}\nfunction willBreak(doc) {\n return findInDoc(doc, willBreakFn, false);\n}\nfunction breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = at_default(\n /* isOptionalObject */\n false,\n groupStack,\n -1\n );\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n}\nfunction propagateBreaks(doc) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc2) {\n if (doc2.type === DOC_TYPE_BREAK_PARENT) {\n breakParentGroup(groupStack);\n }\n if (doc2.type === DOC_TYPE_GROUP) {\n groupStack.push(doc2);\n if (alreadyVisitedSet.has(doc2)) {\n return false;\n }\n alreadyVisitedSet.add(doc2);\n }\n }\n function propagateBreaksOnExitFn(doc2) {\n if (doc2.type === DOC_TYPE_GROUP) {\n const group2 = groupStack.pop();\n if (group2.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverse_doc_default(\n doc,\n propagateBreaksOnEnterFn,\n propagateBreaksOnExitFn,\n /* shouldTraverseConditionalGroups */\n true\n );\n}\nfunction removeLinesFn(doc) {\n if (doc.type === DOC_TYPE_LINE && !doc.hard) {\n return doc.soft ? \"\" : \" \";\n }\n if (doc.type === DOC_TYPE_IF_BREAK) {\n return doc.flatContents;\n }\n return doc;\n}\nfunction removeLines(doc) {\n return mapDoc(doc, removeLinesFn);\n}\nfunction stripTrailingHardlineFromParts(parts) {\n parts = [...parts];\n while (parts.length >= 2 && at_default(\n /* isOptionalObject */\n false,\n parts,\n -2\n ).type === DOC_TYPE_LINE && at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ));\n parts[parts.length - 1] = lastPart;\n }\n return parts;\n}\nfunction stripTrailingHardlineFromDoc(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_GROUP:\n case DOC_TYPE_LINE_SUFFIX:\n case DOC_TYPE_LABEL: {\n const contents = stripTrailingHardlineFromDoc(doc.contents);\n return { ...doc, contents };\n }\n case DOC_TYPE_IF_BREAK:\n return {\n ...doc,\n breakContents: stripTrailingHardlineFromDoc(doc.breakContents),\n flatContents: stripTrailingHardlineFromDoc(doc.flatContents)\n };\n case DOC_TYPE_FILL:\n return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc);\n case DOC_TYPE_STRING:\n return doc.replace(/[\\n\\r]*$/u, \"\");\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n}\nfunction stripTrailingHardline(doc) {\n return stripTrailingHardlineFromDoc(cleanDoc(doc));\n}\nfunction cleanDocFn(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_FILL:\n if (doc.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case DOC_TYPE_GROUP:\n if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n return \"\";\n }\n if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n return doc.contents;\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LINE_SUFFIX:\n if (!doc.contents) {\n return \"\";\n }\n break;\n case DOC_TYPE_IF_BREAK:\n if (!doc.flatContents && !doc.breakContents) {\n return \"\";\n }\n break;\n case DOC_TYPE_ARRAY: {\n const parts = [];\n for (const part of doc) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];\n if (typeof currentPart === \"string\" && typeof at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return parts;\n }\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n}\nfunction cleanDoc(doc) {\n return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n}\nfunction replaceEndOfLine(doc, replacement = literalline) {\n return mapDoc(\n doc,\n (currentDoc) => typeof currentDoc === \"string\" ? join(replacement, currentDoc.split(\"\\n\")) : currentDoc\n );\n}\nfunction canBreakFn(doc) {\n if (doc.type === DOC_TYPE_LINE) {\n return true;\n }\n}\nfunction canBreak(doc) {\n return findInDoc(doc, canBreakFn, false);\n}\n\n// src/document/printer.js\nvar MODE_BREAK = Symbol(\"MODE_BREAK\");\nvar MODE_FLAT = Symbol(\"MODE_FLAT\");\nvar CURSOR_PLACEHOLDER = Symbol(\"cursor\");\nvar DOC_FILL_PRINTED_LENGTH = Symbol(\"DOC_FILL_PRINTED_LENGTH\");\nfunction rootIndent() {\n return { value: \"\", length: 0, queue: [] };\n}\nfunction makeIndent(ind, options) {\n return generateInd(ind, { type: \"indent\" }, options);\n}\nfunction makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, { type: \"dedent\" }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return { ...indent2, root: indent2 };\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);\n}\nfunction generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(`Unexpected type '${part.type}'`);\n }\n }\n flushSpaces();\n return { ...ind, value, length, queue };\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n}\nfunction trim2(out) {\n let trimCount = 0;\n let cursorCount = 0;\n let outIndex = out.length;\n outer: while (outIndex--) {\n const last = out[outIndex];\n if (last === CURSOR_PLACEHOLDER) {\n cursorCount++;\n continue;\n }\n if (false) {\n throw new Error(`Unexpected value in trim: '${typeof last}'`);\n }\n for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n const char = last[charIndex];\n if (char === \" \" || char === \"\t\") {\n trimCount++;\n } else {\n out[outIndex] = last.slice(0, charIndex + 1);\n break outer;\n }\n }\n }\n if (trimCount > 0 || cursorCount > 0) {\n out.length = outIndex + 1;\n while (cursorCount-- > 0) {\n out.push(CURSOR_PLACEHOLDER);\n }\n }\n return trimCount;\n}\nfunction fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (width === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[--restIdx]);\n continue;\n }\n const { mode, doc } = cmds.pop();\n const docType = get_doc_type_default(doc);\n switch (docType) {\n case DOC_TYPE_STRING:\n out.push(doc);\n width -= get_string_width_default(doc);\n break;\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;\n const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0;\n for (let i = parts.length - 1; i >= end; i--) {\n cmds.push({ mode, doc: parts[i] });\n }\n break;\n }\n case DOC_TYPE_INDENT:\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n cmds.push({ mode, doc: doc.contents });\n break;\n case DOC_TYPE_TRIM:\n width += trim2(out);\n break;\n case DOC_TYPE_GROUP: {\n if (mustBeFlat && doc.break) {\n return false;\n }\n const groupMode = doc.break ? MODE_BREAK : mode;\n const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(\n /* isOptionalObject */\n false,\n doc.expandedStates,\n -1\n ) : doc.contents;\n cmds.push({ mode: groupMode, doc: contents });\n break;\n }\n case DOC_TYPE_IF_BREAK: {\n const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;\n const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;\n if (contents) {\n cmds.push({ mode, doc: contents });\n }\n break;\n }\n case DOC_TYPE_LINE:\n if (mode === MODE_BREAK || doc.hard) {\n return true;\n }\n if (!doc.soft) {\n out.push(\" \");\n width--;\n }\n break;\n case DOC_TYPE_LINE_SUFFIX:\n hasLineSuffix = true;\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (hasLineSuffix) {\n return false;\n }\n break;\n }\n }\n return false;\n}\nfunction printDocToString(doc, options) {\n const groupModeMap = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];\n const out = [];\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n let printedCursorCount = 0;\n propagateBreaks(doc);\n while (cmds.length > 0) {\n const { ind, mode, doc: doc2 } = cmds.pop();\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_STRING: {\n const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n /* isOptionalObject */\n false,\n doc2,\n \"\\n\",\n newLine\n ) : doc2;\n out.push(formatted);\n if (cmds.length > 0) {\n pos += get_string_width_default(formatted);\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let i = doc2.length - 1; i >= 0; i--) {\n cmds.push({ ind, mode, doc: doc2[i] });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (printedCursorCount >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n out.push(CURSOR_PLACEHOLDER);\n printedCursorCount++;\n break;\n case DOC_TYPE_INDENT:\n cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });\n break;\n case DOC_TYPE_ALIGN:\n cmds.push({\n ind: makeAlign(ind, doc2.n, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_TRIM:\n pos -= trim2(out);\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push({\n ind,\n mode: doc2.break ? MODE_BREAK : MODE_FLAT,\n doc: doc2.contents\n });\n break;\n }\n // fallthrough\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = { ind, mode: MODE_FLAT, doc: doc2.contents };\n const rem = width - pos;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = at_default(\n /* isOptionalObject */\n false,\n doc2.expandedStates,\n -1\n );\n if (doc2.break) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = { ind, mode: MODE_FLAT, doc: state };\n if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = at_default(\n /* isOptionalObject */\n false,\n cmds,\n -1\n ).mode;\n }\n break;\n // Fills each line with as much code as possible before moving to a new\n // line with the same indentation.\n //\n // Expects doc.parts to be an array of alternating content and\n // whitespace. The whitespace contains the linebreaks.\n //\n // For example:\n // [\"I\", line, \"love\", line, \"monkeys\"]\n // or\n // [{ type: group, ... }, softline, { type: group, ... }]\n //\n // It uses this parts structure to handle three main layout cases:\n // * The first two content items fit on the same line without\n // breaking\n // -> output the first content item and the whitespace \"flat\".\n // * Only the first content item fits on the line without breaking\n // -> output the first content item \"flat\" and the whitespace with\n // \"break\".\n // * Neither content item fits on the line without breaking\n // -> output the first content item and the whitespace with \"break\".\n case DOC_TYPE_FILL: {\n const rem = width - pos;\n const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;\n const { parts } = doc2;\n const length = parts.length - offset;\n if (length === 0) {\n break;\n }\n const content = parts[offset + 0];\n const whitespace = parts[offset + 1];\n const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };\n const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };\n const contentFits = fits(\n contentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };\n const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };\n if (length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n const secondContent = parts[offset + 2];\n const remainingCmd = {\n ind,\n mode,\n doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }\n };\n const firstAndSecondContentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(\n firstAndSecondContentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n case DOC_TYPE_INDENT_IF_BREAK: {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n if (breakContents) {\n cmds.push({ ind, mode, doc: breakContents });\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n if (flatContents) {\n cmds.push({ ind, mode, doc: flatContents });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n // fallthrough\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim2(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n cmds.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n if (cmds.length === 0 && lineSuffix2.length > 0) {\n cmds.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(\n CURSOR_PLACEHOLDER,\n cursorPlaceholderIndex + 1\n );\n if (otherCursorPlaceholderIndex === -1) {\n return {\n formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join(\"\")\n };\n }\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return { formatted: out.join(\"\") };\n}\n\n// src/document/public.js\nvar builders = {\n join,\n line,\n softline,\n hardline,\n literalline,\n group,\n conditionalGroup,\n fill,\n lineSuffix,\n lineSuffixBoundary,\n cursor,\n breakParent,\n ifBreak,\n trim,\n indent,\n indentIfBreak,\n align,\n addAlignmentToDoc,\n markAsRoot,\n dedentToRoot,\n dedent,\n hardlineWithoutBreakParent,\n literallineWithoutBreakParent,\n label,\n // TODO: Remove this in v4\n concat: (parts) => parts\n};\nvar printer = { printDocToString };\nvar utils = {\n willBreak,\n traverseDoc: traverse_doc_default,\n findInDoc,\n mapDoc,\n removeLines,\n stripTrailingHardline,\n replaceEndOfLine,\n canBreak\n};\n\n// with-default-export:src/document/public.js\nvar public_default = public_exports;\nexport {\n builders,\n public_default as default,\n printer,\n utils\n};\n", "var di=Object.create;var we=Object.defineProperty;var mi=Object.getOwnPropertyDescriptor;var xi=Object.getOwnPropertyNames;var yi=Object.getPrototypeOf,gi=Object.prototype.hasOwnProperty;var $e=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vi=(e,t)=>{for(var i in t)we(e,i,{get:t[i],enumerable:!0})},bi=(e,t,i,s)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let r of xi(t))!gi.call(e,r)&&r!==i&&we(e,r,{get:()=>t[r],enumerable:!(s=mi(t,r))||s.enumerable});return e};var et=(e,t,i)=>(i=e!=null?di(yi(e)):{},bi(t||!e||!e.__esModule?we(i,\"default\",{value:e,enumerable:!0}):i,e));var Gt=$e((Qs,qt)=>{qt.exports={}});var Je=$e((Ys,Ge)=>{\"use strict\";var ns=Gt(),os=/^[\\da-fA-F]+$/,us=/^\\d+$/,Jt=new WeakMap;function Kt(e){e=e.Parser.acorn||e;let t=Jt.get(e);if(!t){let i=e.tokTypes,s=e.TokContext,r=e.TokenType,n=new s(\"...\",!0,!0),p={tc_oTag:n,tc_cTag:o,tc_expr:u},d={jsxName:new r(\"jsxName\"),jsxText:new r(\"jsxText\",{beforeExpr:!0}),jsxTagStart:new r(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:new r(\"jsxTagEnd\")};d.jsxTagStart.updateContext=function(){this.context.push(u),this.context.push(n),this.exprAllowed=!1},d.jsxTagEnd.updateContext=function(f){let C=this.context.pop();C===n&&f===i.slash||C===o?(this.context.pop(),this.exprAllowed=this.curContext()===u):this.exprAllowed=!0},t={tokContexts:p,tokTypes:d},Jt.set(e,t)}return t}function ne(e){if(!e)return e;if(e.type===\"JSXIdentifier\")return e.name;if(e.type===\"JSXNamespacedName\")return e.namespace.name+\":\"+e.name.name;if(e.type===\"JSXMemberExpression\")return ne(e.object)+\".\"+ne(e.property)}Ge.exports=function(e){return e=e||{},function(t){return ps({allowNamespaces:e.allowNamespaces!==!1,allowNamespacedObjects:!!e.allowNamespacedObjects},t)}};Object.defineProperty(Ge.exports,\"tokTypes\",{get:function(){return Kt(void 0).tokTypes},configurable:!0,enumerable:!0});function ps(e,t){let i=t.acorn||void 0,s=Kt(i),r=i.tokTypes,n=s.tokTypes,o=i.tokContexts,u=s.tokContexts.tc_oTag,p=s.tokContexts.tc_cTag,d=s.tokContexts.tc_expr,f=i.isNewLine,C=i.isIdentifierStart,B=i.isIdentifierChar;return class extends t{static get acornJsx(){return s}jsx_readToken(){let h=\"\",m=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated JSX contents\");let x=this.input.charCodeAt(this.pos);switch(x){case 60:case 123:return this.pos===this.start?x===60&&this.exprAllowed?(++this.pos,this.finishToken(n.jsxTagStart)):this.getTokenFromCode(x):(h+=this.input.slice(m,this.pos),this.finishToken(n.jsxText,h));case 38:h+=this.input.slice(m,this.pos),h+=this.jsx_readEntity(),m=this.pos;break;case 62:case 125:this.raise(this.pos,\"Unexpected token `\"+this.input[this.pos]+\"`. Did you mean `\"+(x===62?\">\":\"}\")+'` or `{\"'+this.input[this.pos]+'\"}`?');default:f(x)?(h+=this.input.slice(m,this.pos),h+=this.jsx_readNewLine(!0),m=this.pos):++this.pos}}}jsx_readNewLine(h){let m=this.input.charCodeAt(this.pos),x;return++this.pos,m===13&&this.input.charCodeAt(this.pos)===10?(++this.pos,x=h?`\n`:`\\r\n`):x=String.fromCharCode(m),this.options.locations&&(++this.curLine,this.lineStart=this.pos),x}jsx_readString(h){let m=\"\",x=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");let g=this.input.charCodeAt(this.pos);if(g===h)break;g===38?(m+=this.input.slice(x,this.pos),m+=this.jsx_readEntity(),x=this.pos):f(g)?(m+=this.input.slice(x,this.pos),m+=this.jsx_readNewLine(!1),x=this.pos):++this.pos}return m+=this.input.slice(x,this.pos++),this.finishToken(r.string,m)}jsx_readEntity(){let h=\"\",m=0,x,g=this.input[this.pos];g!==\"&\"&&this.raise(this.pos,\"Entity must start with an ampersand\");let w=++this.pos;for(;this.pos\")}let Ee=w.name?\"Element\":\"Fragment\";return x[\"opening\"+Ee]=w,x[\"closing\"+Ee]=he,x.children=g,this.type===r.relational&&this.value===\"<\"&&this.raise(this.start,\"Adjacent JSX elements must be wrapped in an enclosing tag\"),this.finishNode(x,\"JSX\"+Ee)}jsx_parseText(){let h=this.parseLiteral(this.value);return h.type=\"JSXText\",h}jsx_parseElement(){let h=this.start,m=this.startLoc;return this.next(),this.jsx_parseElementAt(h,m)}parseExprAtom(h){return this.type===n.jsxText?this.jsx_parseText():this.type===n.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(h)}readToken(h){let m=this.curContext();if(m===d)return this.jsx_readToken();if(m===u||m===p){if(C(h))return this.jsx_readWord();if(h==62)return++this.pos,this.finishToken(n.jsxTagEnd);if((h===34||h===39)&&m==u)return this.jsx_readString(h)}return h===60&&this.exprAllowed&&this.input.charCodeAt(this.pos+1)!==33?(++this.pos,this.finishToken(n.jsxTagStart)):super.readToken(h)}updateContext(h){if(this.type==r.braceL){var m=this.curContext();m==u?this.context.push(o.b_expr):m==d?this.context.push(o.b_tmpl):super.updateContext(h),this.exprAllowed=!0}else if(this.type===r.slash&&h===n.jsxTagStart)this.context.length-=2,this.context.push(p),this.exprAllowed=!1;else return super.updateContext(h)}}}});var Ze={};vi(Ze,{parsers:()=>zs});var Si=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239],nt=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],Ci=\"\\u200C\\u200D\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0897-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\u30FB\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\\uFF65\",ot=\"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CD\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7DC\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",Ae={3:\"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",5:\"class enum extends super const export import\",6:\"enum\",strict:\"implements interface let package private protected public static yield\",strictBind:\"eval arguments\"},Pe=\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\",_i={5:Pe,\"5module\":Pe+\" export import\",6:Pe+\" const class extends export import super\"},Ti=/^in(stanceof)?$/,ki=new RegExp(\"[\"+ot+\"]\"),Ei=new RegExp(\"[\"+ot+Ci+\"]\");function Ne(e,t){for(var i=65536,s=0;se)return!1;if(i+=t[s+1],i>=e)return!0}return!1}function M(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&ki.test(String.fromCharCode(e)):t===!1?!1:Ne(e,nt)}function H(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&Ei.test(String.fromCharCode(e)):t===!1?!1:Ne(e,nt)||Ne(e,Si)}var S=function(t,i){i===void 0&&(i={}),this.label=t,this.keyword=i.keyword,this.beforeExpr=!!i.beforeExpr,this.startsExpr=!!i.startsExpr,this.isLoop=!!i.isLoop,this.isAssign=!!i.isAssign,this.prefix=!!i.prefix,this.postfix=!!i.postfix,this.binop=i.binop||null,this.updateContext=null};function P(e,t){return new S(e,{beforeExpr:!0,binop:t})}var I={beforeExpr:!0},A={startsExpr:!0},Oe={};function b(e,t){return t===void 0&&(t={}),t.keyword=e,Oe[e]=new S(e,t)}var a={num:new S(\"num\",A),regexp:new S(\"regexp\",A),string:new S(\"string\",A),name:new S(\"name\",A),privateId:new S(\"privateId\",A),eof:new S(\"eof\"),bracketL:new S(\"[\",{beforeExpr:!0,startsExpr:!0}),bracketR:new S(\"]\"),braceL:new S(\"{\",{beforeExpr:!0,startsExpr:!0}),braceR:new S(\"}\"),parenL:new S(\"(\",{beforeExpr:!0,startsExpr:!0}),parenR:new S(\")\"),comma:new S(\",\",I),semi:new S(\";\",I),colon:new S(\":\",I),dot:new S(\".\"),question:new S(\"?\",I),questionDot:new S(\"?.\"),arrow:new S(\"=>\",I),template:new S(\"template\"),invalidTemplate:new S(\"invalidTemplate\"),ellipsis:new S(\"...\",I),backQuote:new S(\"`\",A),dollarBraceL:new S(\"${\",{beforeExpr:!0,startsExpr:!0}),eq:new S(\"=\",{beforeExpr:!0,isAssign:!0}),assign:new S(\"_=\",{beforeExpr:!0,isAssign:!0}),incDec:new S(\"++/--\",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new S(\"!/~\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:P(\"||\",1),logicalAND:P(\"&&\",2),bitwiseOR:P(\"|\",3),bitwiseXOR:P(\"^\",4),bitwiseAND:P(\"&\",5),equality:P(\"==/!=/===/!==\",6),relational:P(\"/<=/>=\",7),bitShift:P(\"<>/>>>\",8),plusMin:new S(\"+/-\",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:P(\"%\",10),star:P(\"*\",10),slash:P(\"/\",10),starstar:new S(\"**\",{beforeExpr:!0}),coalesce:P(\"??\",1),_break:b(\"break\"),_case:b(\"case\",I),_catch:b(\"catch\"),_continue:b(\"continue\"),_debugger:b(\"debugger\"),_default:b(\"default\",I),_do:b(\"do\",{isLoop:!0,beforeExpr:!0}),_else:b(\"else\",I),_finally:b(\"finally\"),_for:b(\"for\",{isLoop:!0}),_function:b(\"function\",A),_if:b(\"if\"),_return:b(\"return\",I),_switch:b(\"switch\"),_throw:b(\"throw\",I),_try:b(\"try\"),_var:b(\"var\"),_const:b(\"const\"),_while:b(\"while\",{isLoop:!0}),_with:b(\"with\"),_new:b(\"new\",{beforeExpr:!0,startsExpr:!0}),_this:b(\"this\",A),_super:b(\"super\",A),_class:b(\"class\",A),_extends:b(\"extends\",I),_export:b(\"export\"),_import:b(\"import\",A),_null:b(\"null\",A),_true:b(\"true\",A),_false:b(\"false\",A),_in:b(\"in\",{beforeExpr:!0,binop:7}),_instanceof:b(\"instanceof\",{beforeExpr:!0,binop:7}),_typeof:b(\"typeof\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:b(\"void\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:b(\"delete\",{beforeExpr:!0,prefix:!0,startsExpr:!0})},L=/\\r\\n?|\\n|\\u2028|\\u2029/,wi=new RegExp(L.source,\"g\");function Q(e){return e===10||e===13||e===8232||e===8233}function ut(e,t,i){i===void 0&&(i=e.length);for(var s=t;s>10)+55296,(e&1023)+56320))}var Ii=/(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/,ie=function(t,i){this.line=t,this.column=i};ie.prototype.offset=function(t){return new ie(this.line,this.column+t)};var xe=function(t,i,s){this.start=i,this.end=s,t.sourceFile!==null&&(this.source=t.sourceFile)};function ct(e,t){for(var i=1,s=0;;){var r=ut(e,s,t);if(r<0)return new ie(i,t-s);++i,s=r}}var Ve={ecmaVersion:null,sourceType:\"script\",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},st=!1;function Ni(e){var t={};for(var i in Ve)t[i]=e&&Y(e,i)?e[i]:Ve[i];if(t.ecmaVersion===\"latest\"?t.ecmaVersion=1e8:t.ecmaVersion==null?(!st&&typeof console==\"object\"&&console.warn&&(st=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),(!e||e.allowHashBang==null)&&(t.allowHashBang=t.ecmaVersion>=14),tt(t.onToken)){var s=t.onToken;t.onToken=function(r){return s.push(r)}}return tt(t.onComment)&&(t.onComment=Vi(t,t.onComment)),t}function Vi(e,t){return function(i,s,r,n,o,u){var p={type:i?\"Block\":\"Line\",value:s,start:r,end:n};e.locations&&(p.loc=new xe(this,o,u)),e.ranges&&(p.range=[r,n]),t.push(p)}}var se=1,Z=2,Be=4,lt=8,ft=16,dt=32,De=64,mt=128,re=256,Fe=se|Z|re;function je(e,t){return Z|(e?Be:0)|(t?lt:0)}var le=0,Me=1,G=2,xt=3,yt=4,gt=5,T=function(t,i,s){this.options=t=Ni(t),this.sourceFile=t.sourceFile,this.keywords=K(_i[t.ecmaVersion>=6?6:t.sourceType===\"module\"?\"5module\":5]);var r=\"\";t.allowReserved!==!0&&(r=Ae[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType===\"module\"&&(r+=\" await\")),this.reservedWords=K(r);var n=(r?r+\" \":\"\")+Ae.strict;this.reservedWordsStrict=K(n),this.reservedWordsStrictBind=K(n+\" \"+Ae.strictBind),this.input=String(i),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf(`\n`,s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(L).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=a.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType===\"module\",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)===\"#!\"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(se),this.regexpState=null,this.privateNameStack=[]},F={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};T.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)};F.inFunction.get=function(){return(this.currentVarScope().flags&Z)>0};F.inGenerator.get=function(){return(this.currentVarScope().flags<)>0&&!this.currentVarScope().inClassFieldInit};F.inAsync.get=function(){return(this.currentVarScope().flags&Be)>0&&!this.currentVarScope().inClassFieldInit};F.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&re)return!1;if(t.flags&Z)return(t.flags&Be)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};F.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,i=e.inClassFieldInit;return(t&De)>0||i||this.options.allowSuperOutsideMethod};F.allowDirectSuper.get=function(){return(this.currentThisScope().flags&mt)>0};F.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};F.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,i=e.inClassFieldInit;return(t&(Z|re))>0||i};F.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&re)>0};T.extend=function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];for(var s=this,r=0;r=,?^&]/.test(r)||r===\"!\"&&this.input.charAt(s+1)===\"=\")}e+=t[0].length,N.lastIndex=e,e+=N.exec(this.input)[0].length,this.input[e]===\";\"&&e++}};k.eat=function(e){return this.type===e?(this.next(),!0):!1};k.isContextual=function(e){return this.type===a.name&&this.value===e&&!this.containsEsc};k.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1};k.expectContextual=function(e){this.eatContextual(e)||this.unexpected()};k.canInsertSemicolon=function(){return this.type===a.eof||this.type===a.braceR||L.test(this.input.slice(this.lastTokEnd,this.start))};k.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};k.semicolon=function(){!this.eat(a.semi)&&!this.insertSemicolon()&&this.unexpected()};k.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0};k.expect=function(e){this.eat(e)||this.unexpected()};k.unexpected=function(e){this.raise(e??this.start,\"Unexpected token\")};var ye=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};k.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,\"Comma is not permitted after the rest element\");var i=t?e.parenthesizedAssign:e.parenthesizedBind;i>-1&&this.raiseRecoverable(i,t?\"Assigning to rvalue\":\"Parenthesized pattern\")}};k.checkExpressionErrors=function(e,t){if(!e)return!1;var i=e.shorthandAssign,s=e.doubleProto;if(!t)return i>=0||s>=0;i>=0&&this.raise(i,\"Shorthand property assignments are valid only in destructuring patterns\"),s>=0&&this.raiseRecoverable(s,\"Redefinition of __proto__ property\")};k.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&s<56320)return!0;if(M(s,!0)){for(var r=i+1;H(s=this.input.charCodeAt(r),!0);)++r;if(s===92||s>55295&&s<56320)return!0;var n=this.input.slice(i,r);if(!Ti.test(n))return!0}return!1};l.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(\"async\"))return!1;N.lastIndex=this.pos;var e=N.exec(this.input),t=this.pos+e[0].length,i;return!L.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)===\"function\"&&(t+8===this.input.length||!(H(i=this.input.charCodeAt(t+8))||i>55295&&i<56320))};l.parseStatement=function(e,t,i){var s=this.type,r=this.startNode(),n;switch(this.isLet(e)&&(s=a._var,n=\"let\"),s){case a._break:case a._continue:return this.parseBreakContinueStatement(r,s.keyword);case a._debugger:return this.parseDebuggerStatement(r);case a._do:return this.parseDoStatement(r);case a._for:return this.parseForStatement(r);case a._function:return e&&(this.strict||e!==\"if\"&&e!==\"label\")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!e);case a._class:return e&&this.unexpected(),this.parseClass(r,!0);case a._if:return this.parseIfStatement(r);case a._return:return this.parseReturnStatement(r);case a._switch:return this.parseSwitchStatement(r);case a._throw:return this.parseThrowStatement(r);case a._try:return this.parseTryStatement(r);case a._const:case a._var:return n=n||this.value,e&&n!==\"var\"&&this.unexpected(),this.parseVarStatement(r,n);case a._while:return this.parseWhileStatement(r);case a._with:return this.parseWithStatement(r);case a.braceL:return this.parseBlock(!0,r);case a.semi:return this.parseEmptyStatement(r);case a._export:case a._import:if(this.options.ecmaVersion>10&&s===a._import){N.lastIndex=this.pos;var o=N.exec(this.input),u=this.pos+o[0].length,p=this.input.charCodeAt(u);if(p===40||p===46)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,\"'import' and 'export' may only appear at the top level\"),this.inModule||this.raise(this.start,\"'import' and 'export' may appear only with 'sourceType: module'\")),s===a._import?this.parseImport(r):this.parseExport(r,i);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!e);var d=this.value,f=this.parseExpression();return s===a.name&&f.type===\"Identifier\"&&this.eat(a.colon)?this.parseLabeledStatement(r,d,f,e):this.parseExpressionStatement(r,f)}};l.parseBreakContinueStatement=function(e,t){var i=t===\"break\";this.next(),this.eat(a.semi)||this.insertSemicolon()?e.label=null:this.type!==a.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(a.semi):this.semicolon(),this.finishNode(e,\"DoWhileStatement\")};l.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual(\"await\")?this.lastTokStart:-1;if(this.labels.push(Ue),this.enterScope(0),this.expect(a.parenL),this.type===a.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var i=this.isLet();if(this.type===a._var||this.type===a._const||i){var s=this.startNode(),r=i?\"let\":this.value;return this.next(),this.parseVar(s,!0,r),this.finishNode(s,\"VariableDeclaration\"),(this.type===a._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))&&s.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===a._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,s)):(t>-1&&this.unexpected(t),this.parseFor(e,s))}var n=this.isContextual(\"let\"),o=!1,u=this.containsEsc,p=new ye,d=this.start,f=t>-1?this.parseExprSubscripts(p,\"await\"):this.parseExpression(!0,p);return this.type===a._in||(o=this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?(t>-1?(this.type===a._in&&this.unexpected(t),e.await=!0):o&&this.options.ecmaVersion>=8&&(f.start===d&&!u&&f.type===\"Identifier\"&&f.name===\"async\"?this.unexpected():this.options.ecmaVersion>=9&&(e.await=!1)),n&&o&&this.raise(f.start,\"The left-hand side of a for-of loop may not start with 'let'.\"),this.toAssignable(f,!1,p),this.checkLValPattern(f),this.parseForIn(e,f)):(this.checkExpressionErrors(p,!0),t>-1&&this.unexpected(t),this.parseFor(e,f))};l.parseFunctionStatement=function(e,t,i){return this.next(),this.parseFunction(e,te|(i?0:Le),!1,t)};l.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(\"if\"),e.alternate=this.eat(a._else)?this.parseStatement(\"if\"):null,this.finishNode(e,\"IfStatement\")};l.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,\"'return' outside of function\"),this.next(),this.eat(a.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,\"ReturnStatement\")};l.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(a.braceL),this.labels.push(Ri),this.enterScope(0);for(var t,i=!1;this.type!==a.braceR;)if(this.type===a._case||this.type===a._default){var s=this.type===a._case;t&&this.finishNode(t,\"SwitchCase\"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),s?t.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,\"Multiple default clauses\"),i=!0,t.test=null),this.expect(a.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,\"SwitchCase\"),this.next(),this.labels.pop(),this.finishNode(e,\"SwitchStatement\")};l.parseThrowStatement=function(e){return this.next(),L.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,\"Illegal newline after throw\"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,\"ThrowStatement\")};var Oi=[];l.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t=e.type===\"Identifier\";return this.enterScope(t?dt:0),this.checkLValPattern(e,t?yt:G),this.expect(a.parenR),e};l.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===a._catch){var t=this.startNode();this.next(),this.eat(a.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,\"CatchClause\")}return e.finalizer=this.eat(a._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,\"Missing catch or finally clause\"),this.finishNode(e,\"TryStatement\")};l.parseVarStatement=function(e,t,i){return this.next(),this.parseVar(e,!1,t,i),this.semicolon(),this.finishNode(e,\"VariableDeclaration\")};l.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Ue),e.body=this.parseStatement(\"while\"),this.labels.pop(),this.finishNode(e,\"WhileStatement\")};l.parseWithStatement=function(e){return this.strict&&this.raise(this.start,\"'with' in strict mode\"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(\"with\"),this.finishNode(e,\"WithStatement\")};l.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,\"EmptyStatement\")};l.parseLabeledStatement=function(e,t,i,s){for(var r=0,n=this.labels;r=0;p--){var d=this.labels[p];if(d.statementStart===e.start)d.statementStart=this.start,d.kind=u;else break}return this.labels.push({name:t,kind:u,statementStart:this.start}),e.body=this.parseStatement(s?s.indexOf(\"label\")===-1?s+\"label\":s:\"label\"),this.labels.pop(),e.label=i,this.finishNode(e,\"LabeledStatement\")};l.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,\"ExpressionStatement\")};l.parseBlock=function(e,t,i){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(a.braceL),e&&this.enterScope(0);this.type!==a.braceR;){var s=this.parseStatement(null);t.body.push(s)}return i&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,\"BlockStatement\")};l.parseFor=function(e,t){return e.init=t,this.expect(a.semi),e.test=this.type===a.semi?null:this.parseExpression(),this.expect(a.semi),e.update=this.type===a.parenR?null:this.parseExpression(),this.expect(a.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,\"ForStatement\")};l.parseForIn=function(e,t){var i=this.type===a._in;return this.next(),t.type===\"VariableDeclaration\"&&t.declarations[0].init!=null&&(!i||this.options.ecmaVersion<8||this.strict||t.kind!==\"var\"||t.declarations[0].id.type!==\"Identifier\")&&this.raise(t.start,(i?\"for-in\":\"for-of\")+\" loop variable declaration may not have an initializer\"),e.left=t,e.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(a.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,i?\"ForInStatement\":\"ForOfStatement\")};l.parseVar=function(e,t,i,s){for(e.declarations=[],e.kind=i;;){var r=this.startNode();if(this.parseVarId(r,i),this.eat(a.eq)?r.init=this.parseMaybeAssign(t):!s&&i===\"const\"&&!(this.type===a._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?this.unexpected():!s&&r.id.type!==\"Identifier\"&&!(t&&(this.type===a._in||this.isContextual(\"of\")))?this.raise(this.lastTokEnd,\"Complex binding patterns require an initialization value\"):r.init=null,e.declarations.push(this.finishNode(r,\"VariableDeclarator\")),!this.eat(a.comma))break}return e};l.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,t===\"var\"?Me:G,!1)};var te=1,Le=2,vt=4;l.parseFunction=function(e,t,i,s,r){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===a.star&&t&Le&&this.unexpected(),e.generator=this.eat(a.star)),this.options.ecmaVersion>=8&&(e.async=!!s),t&te&&(e.id=t&vt&&this.type!==a.name?null:this.parseIdent(),e.id&&!(t&Le)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?Me:G:xt));var n=this.yieldPos,o=this.awaitPos,u=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(je(e.async,e.generator)),t&te||(e.id=this.type===a.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,i,!1,r),this.yieldPos=n,this.awaitPos=o,this.awaitIdentPos=u,this.finishNode(e,t&te?\"FunctionDeclaration\":\"FunctionExpression\")};l.parseFunctionParams=function(e){this.expect(a.parenL),e.params=this.parseBindingList(a.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};l.parseClass=function(e,t){this.next();var i=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var s=this.enterClassBody(),r=this.startNode(),n=!1;for(r.body=[],this.expect(a.braceL);this.type!==a.braceR;){var o=this.parseClassElement(e.superClass!==null);o&&(r.body.push(o),o.type===\"MethodDefinition\"&&o.kind===\"constructor\"?(n&&this.raiseRecoverable(o.start,\"Duplicate constructor in the same class\"),n=!0):o.key&&o.key.type===\"PrivateIdentifier\"&&Bi(s,o)&&this.raiseRecoverable(o.key.start,\"Identifier '#\"+o.key.name+\"' has already been declared\"))}return this.strict=i,this.next(),e.body=this.finishNode(r,\"ClassBody\"),this.exitClassBody(),this.finishNode(e,t?\"ClassDeclaration\":\"ClassExpression\")};l.parseClassElement=function(e){if(this.eat(a.semi))return null;var t=this.options.ecmaVersion,i=this.startNode(),s=\"\",r=!1,n=!1,o=\"method\",u=!1;if(this.eatContextual(\"static\")){if(t>=13&&this.eat(a.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===a.star?u=!0:s=\"static\"}if(i.static=u,!s&&t>=8&&this.eatContextual(\"async\")&&((this.isClassElementNameStart()||this.type===a.star)&&!this.canInsertSemicolon()?n=!0:s=\"async\"),!s&&(t>=9||!n)&&this.eat(a.star)&&(r=!0),!s&&!n&&!r){var p=this.value;(this.eatContextual(\"get\")||this.eatContextual(\"set\"))&&(this.isClassElementNameStart()?o=p:s=p)}if(s?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=s,this.finishNode(i.key,\"Identifier\")):this.parseClassElementName(i),t<13||this.type===a.parenL||o!==\"method\"||r||n){var d=!i.static&&fe(i,\"constructor\"),f=d&&e;d&&o!==\"method\"&&this.raise(i.key.start,\"Constructor can't have get/set modifier\"),i.kind=d?\"constructor\":o,this.parseClassMethod(i,r,n,f)}else this.parseClassField(i);return i};l.isClassElementNameStart=function(){return this.type===a.name||this.type===a.privateId||this.type===a.num||this.type===a.string||this.type===a.bracketL||this.type.keyword};l.parseClassElementName=function(e){this.type===a.privateId?(this.value===\"constructor\"&&this.raise(this.start,\"Classes can't have an element named '#constructor'\"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)};l.parseClassMethod=function(e,t,i,s){var r=e.key;e.kind===\"constructor\"?(t&&this.raise(r.start,\"Constructor can't be a generator\"),i&&this.raise(r.start,\"Constructor can't be an async method\")):e.static&&fe(e,\"prototype\")&&this.raise(r.start,\"Classes may not have a static property named prototype\");var n=e.value=this.parseMethod(t,i,s);return e.kind===\"get\"&&n.params.length!==0&&this.raiseRecoverable(n.start,\"getter should have no params\"),e.kind===\"set\"&&n.params.length!==1&&this.raiseRecoverable(n.start,\"setter should have exactly one param\"),e.kind===\"set\"&&n.params[0].type===\"RestElement\"&&this.raiseRecoverable(n.params[0].start,\"Setter cannot use rest params\"),this.finishNode(e,\"MethodDefinition\")};l.parseClassField=function(e){if(fe(e,\"constructor\")?this.raise(e.key.start,\"Classes can't have a field named 'constructor'\"):e.static&&fe(e,\"prototype\")&&this.raise(e.key.start,\"Classes can't have a static field named 'prototype'\"),this.eat(a.eq)){var t=this.currentThisScope(),i=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=i}else e.value=null;return this.semicolon(),this.finishNode(e,\"PropertyDefinition\")};l.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(re|De);this.type!==a.braceR;){var i=this.parseStatement(null);e.body.push(i)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,\"StaticBlock\")};l.parseClassId=function(e,t){this.type===a.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,G,!1)):(t===!0&&this.unexpected(),e.id=null)};l.parseClassSuper=function(e){e.superClass=this.eat(a._extends)?this.parseExprSubscripts(null,!1):null};l.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared};l.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,i=e.used;if(this.options.checkPrivateFields)for(var s=this.privateNameStack.length,r=s===0?null:this.privateNameStack[s-1],n=0;n=11&&(this.eatContextual(\"as\")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual(\"from\"),this.type!==a.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,\"ExportAllDeclaration\")};l.parseExport=function(e,t){if(this.next(),this.eat(a.star))return this.parseExportAllDeclaration(e,t);if(this.eat(a._default))return this.checkExport(t,\"default\",this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,\"ExportDefaultDeclaration\");if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),e.declaration.type===\"VariableDeclaration\"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(\"from\"))this.type!==a.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var i=0,s=e.specifiers;i=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,\"ImportDeclaration\")};l.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual(\"as\")?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,G),this.finishNode(e,\"ImportSpecifier\")};l.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,G),this.finishNode(e,\"ImportDefaultSpecifier\")};l.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual(\"as\"),e.local=this.parseIdent(),this.checkLValSimple(e.local,G),this.finishNode(e,\"ImportNamespaceSpecifier\")};l.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===a.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(a.comma)))return e;if(this.type===a.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(a.braceL);!this.eat(a.braceR);){if(t)t=!1;else if(this.expect(a.comma),this.afterTrailingComma(a.braceR))break;e.push(this.parseImportSpecifier())}return e};l.parseWithClause=function(){var e=[];if(!this.eat(a._with))return e;this.expect(a.braceL);for(var t={},i=!0;!this.eat(a.braceR);){if(i)i=!1;else if(this.expect(a.comma),this.afterTrailingComma(a.braceR))break;var s=this.parseImportAttribute(),r=s.key.type===\"Identifier\"?s.key.name:s.key.value;Y(t,r)&&this.raiseRecoverable(s.key.start,\"Duplicate attribute key '\"+r+\"'\"),t[r]=!0,e.push(s)}return e};l.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===a.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==\"never\"),this.expect(a.colon),this.type!==a.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,\"ImportAttribute\")};l.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===a.string){var e=this.parseLiteral(this.value);return Ii.test(e.value)&&this.raise(e.start,\"An export name cannot include a lone surrogate.\"),e}return this.parseIdent(!0)};l.adaptDirectivePrologue=function(e){for(var t=0;t=5&&e.type===\"ExpressionStatement\"&&e.expression.type===\"Literal\"&&typeof e.expression.value==\"string\"&&(this.input[e.start]==='\"'||this.input[e.start]===\"'\")};var R=T.prototype;R.toAssignable=function(e,t,i){if(this.options.ecmaVersion>=6&&e)switch(e.type){case\"Identifier\":this.inAsync&&e.name===\"await\"&&this.raise(e.start,\"Cannot use 'await' as identifier inside an async function\");break;case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":e.type=\"ObjectPattern\",i&&this.checkPatternErrors(i,!0);for(var s=0,r=e.properties;s=8&&!u&&p.name===\"async\"&&!this.canInsertSemicolon()&&this.eat(a._function))return this.overrideContext(_.f_expr),this.parseFunction(this.startNodeAt(n,o),0,!1,!0,t);if(r&&!this.canInsertSemicolon()){if(this.eat(a.arrow))return this.parseArrowExpression(this.startNodeAt(n,o),[p],!1,t);if(this.options.ecmaVersion>=8&&p.name===\"async\"&&this.type===a.name&&!u&&(!this.potentialArrowInForAwait||this.value!==\"of\"||this.containsEsc))return p=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(a.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(n,o),[p],!0,t)}return p;case a.regexp:var d=this.value;return s=this.parseLiteral(d.value),s.regex={pattern:d.pattern,flags:d.flags},s;case a.num:case a.string:return this.parseLiteral(this.value);case a._null:case a._true:case a._false:return s=this.startNode(),s.value=this.type===a._null?null:this.type===a._true,s.raw=this.type.keyword,this.next(),this.finishNode(s,\"Literal\");case a.parenL:var f=this.start,C=this.parseParenAndDistinguishExpression(r,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(C)&&(e.parenthesizedAssign=f),e.parenthesizedBind<0&&(e.parenthesizedBind=f)),C;case a.bracketL:return s=this.startNode(),this.next(),s.elements=this.parseExprList(a.bracketR,!0,!0,e),this.finishNode(s,\"ArrayExpression\");case a.braceL:return this.overrideContext(_.b_expr),this.parseObj(!1,e);case a._function:return s=this.startNode(),this.next(),this.parseFunction(s,0);case a._class:return this.parseClass(this.startNode(),!1);case a._new:return this.parseNew();case a.backQuote:return this.parseTemplate();case a._import:return this.options.ecmaVersion>=11?this.parseExprImport(i):this.unexpected();default:return this.parseExprAtomDefault()}};y.parseExprAtomDefault=function(){this.unexpected()};y.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword import\"),this.next(),this.type===a.parenL&&!e)return this.parseDynamicImport(t);if(this.type===a.dot){var i=this.startNodeAt(t.start,t.loc&&t.loc.start);return i.name=\"import\",t.meta=this.finishNode(i,\"Identifier\"),this.parseImportMeta(t)}else this.unexpected()};y.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(a.parenR)?e.options=null:(this.expect(a.comma),this.afterTrailingComma(a.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(a.parenR)||(this.expect(a.comma),this.afterTrailingComma(a.parenR)||this.unexpected())));else if(!this.eat(a.parenR)){var t=this.start;this.eat(a.comma)&&this.eat(a.parenR)?this.raiseRecoverable(t,\"Trailing comma is not allowed in import()\"):this.unexpected(t)}return this.finishNode(e,\"ImportExpression\")};y.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==\"meta\"&&this.raiseRecoverable(e.property.start,\"The only valid meta property for import is 'import.meta'\"),t&&this.raiseRecoverable(e.start,\"'import.meta' must not contain escaped characters\"),this.options.sourceType!==\"module\"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,\"Cannot use 'import.meta' outside a module\"),this.finishNode(e,\"MetaProperty\")};y.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,\"\")),this.next(),this.finishNode(t,\"Literal\")};y.parseParenExpression=function(){this.expect(a.parenL);var e=this.parseExpression();return this.expect(a.parenR),e};y.shouldParseArrow=function(e){return!this.canInsertSemicolon()};y.parseParenAndDistinguishExpression=function(e,t){var i=this.start,s=this.startLoc,r,n=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o=this.start,u=this.startLoc,p=[],d=!0,f=!1,C=new ye,B=this.yieldPos,h=this.awaitPos,m;for(this.yieldPos=0,this.awaitPos=0;this.type!==a.parenR;)if(d?d=!1:this.expect(a.comma),n&&this.afterTrailingComma(a.parenR,!0)){f=!0;break}else if(this.type===a.ellipsis){m=this.start,p.push(this.parseParenItem(this.parseRestBinding())),this.type===a.comma&&this.raiseRecoverable(this.start,\"Comma is not permitted after the rest element\");break}else p.push(this.parseMaybeAssign(!1,C,this.parseParenItem));var x=this.lastTokEnd,g=this.lastTokEndLoc;if(this.expect(a.parenR),e&&this.shouldParseArrow(p)&&this.eat(a.arrow))return this.checkPatternErrors(C,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=B,this.awaitPos=h,this.parseParenArrowList(i,s,p,t);(!p.length||f)&&this.unexpected(this.lastTokStart),m&&this.unexpected(m),this.checkExpressionErrors(C,!0),this.yieldPos=B||this.yieldPos,this.awaitPos=h||this.awaitPos,p.length>1?(r=this.startNodeAt(o,u),r.expressions=p,this.finishNodeAt(r,\"SequenceExpression\",x,g)):r=p[0]}else r=this.parseParenExpression();if(this.options.preserveParens){var w=this.startNodeAt(i,s);return w.expression=r,this.finishNode(w,\"ParenthesizedExpression\")}else return r};y.parseParenItem=function(e){return e};y.parseParenArrowList=function(e,t,i,s){return this.parseArrowExpression(this.startNodeAt(e,t),i,!1,s)};var Di=[];y.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword new\");var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===a.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name=\"new\",e.meta=this.finishNode(t,\"Identifier\"),this.next();var i=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==\"target\"&&this.raiseRecoverable(e.property.start,\"The only valid meta property for new is 'new.target'\"),i&&this.raiseRecoverable(e.start,\"'new.target' must not contain escaped characters\"),this.allowNewDotTarget||this.raiseRecoverable(e.start,\"'new.target' can only be used in functions and class static block\"),this.finishNode(e,\"MetaProperty\")}var s=this.start,r=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),s,r,!0,!1),this.eat(a.parenL)?e.arguments=this.parseExprList(a.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Di,this.finishNode(e,\"NewExpression\")};y.parseTemplateElement=function(e){var t=e.isTagged,i=this.startNode();return this.type===a.invalidTemplate?(t||this.raiseRecoverable(this.start,\"Bad escape sequence in untagged template literal\"),i.value={raw:this.value.replace(/\\r\\n?/g,`\n`),cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\\r\\n?/g,`\n`),cooked:this.value},this.next(),i.tail=this.type===a.backQuote,this.finishNode(i,\"TemplateElement\")};y.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var i=this.startNode();this.next(),i.expressions=[];var s=this.parseTemplateElement({isTagged:t});for(i.quasis=[s];!s.tail;)this.type===a.eof&&this.raise(this.pos,\"Unterminated template literal\"),this.expect(a.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(a.braceR),i.quasis.push(s=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(i,\"TemplateLiteral\")};y.isAsyncProp=function(e){return!e.computed&&e.key.type===\"Identifier\"&&e.key.name===\"async\"&&(this.type===a.name||this.type===a.num||this.type===a.string||this.type===a.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===a.star)&&!L.test(this.input.slice(this.lastTokEnd,this.start))};y.parseObj=function(e,t){var i=this.startNode(),s=!0,r={};for(i.properties=[],this.next();!this.eat(a.braceR);){if(s)s=!1;else if(this.expect(a.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(a.braceR))break;var n=this.parseProperty(e,t);e||this.checkPropClash(n,r,t),i.properties.push(n)}return this.finishNode(i,e?\"ObjectPattern\":\"ObjectExpression\")};y.parseProperty=function(e,t){var i=this.startNode(),s,r,n,o;if(this.options.ecmaVersion>=9&&this.eat(a.ellipsis))return e?(i.argument=this.parseIdent(!1),this.type===a.comma&&this.raiseRecoverable(this.start,\"Comma is not permitted after the rest element\"),this.finishNode(i,\"RestElement\")):(i.argument=this.parseMaybeAssign(!1,t),this.type===a.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(i,\"SpreadElement\"));this.options.ecmaVersion>=6&&(i.method=!1,i.shorthand=!1,(e||t)&&(n=this.start,o=this.startLoc),e||(s=this.eat(a.star)));var u=this.containsEsc;return this.parsePropertyName(i),!e&&!u&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(i)?(r=!0,s=this.options.ecmaVersion>=9&&this.eat(a.star),this.parsePropertyName(i)):r=!1,this.parsePropertyValue(i,e,s,r,n,o,t,u),this.finishNode(i,\"Property\")};y.parseGetterSetter=function(e){e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var t=e.kind===\"get\"?0:1;if(e.value.params.length!==t){var i=e.value.start;e.kind===\"get\"?this.raiseRecoverable(i,\"getter should have no params\"):this.raiseRecoverable(i,\"setter should have exactly one param\")}else e.kind===\"set\"&&e.value.params[0].type===\"RestElement\"&&this.raiseRecoverable(e.value.params[0].start,\"Setter cannot use rest params\")};y.parsePropertyValue=function(e,t,i,s,r,n,o,u){(i||s)&&this.type===a.colon&&this.unexpected(),this.eat(a.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind=\"init\"):this.options.ecmaVersion>=6&&this.type===a.parenL?(t&&this.unexpected(),e.kind=\"init\",e.method=!0,e.value=this.parseMethod(i,s)):!t&&!u&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type===\"Identifier\"&&(e.key.name===\"get\"||e.key.name===\"set\")&&this.type!==a.comma&&this.type!==a.braceR&&this.type!==a.eq?((i||s)&&this.unexpected(),this.parseGetterSetter(e)):this.options.ecmaVersion>=6&&!e.computed&&e.key.type===\"Identifier\"?((i||s)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name===\"await\"&&!this.awaitIdentPos&&(this.awaitIdentPos=r),e.kind=\"init\",t?e.value=this.parseMaybeDefault(r,n,this.copyNode(e.key)):this.type===a.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(r,n,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected()};y.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(a.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(a.bracketR),e.key;e.computed=!1}return e.key=this.type===a.num||this.type===a.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==\"never\")};y.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)};y.parseMethod=function(e,t,i){var s=this.startNode(),r=this.yieldPos,n=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=e),this.options.ecmaVersion>=8&&(s.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(je(t,s.generator)|De|(i?mt:0)),this.expect(a.parenL),s.params=this.parseBindingList(a.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=r,this.awaitPos=n,this.awaitIdentPos=o,this.finishNode(s,\"FunctionExpression\")};y.parseArrowExpression=function(e,t,i,s){var r=this.yieldPos,n=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(je(i,!1)|ft),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,s),this.yieldPos=r,this.awaitPos=n,this.awaitIdentPos=o,this.finishNode(e,\"ArrowFunctionExpression\")};y.parseFunctionBody=function(e,t,i,s){var r=t&&this.type!==a.braceL,n=this.strict,o=!1;if(r)e.body=this.parseMaybeAssign(s),e.expression=!0,this.checkParams(e,!1);else{var u=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!n||u)&&(o=this.strictDirective(this.end),o&&u&&this.raiseRecoverable(e.start,\"Illegal 'use strict' directive in function with non-simple parameter list\"));var p=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(e,!n&&!o&&!t&&!i&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,gt),e.body=this.parseBlock(!1,void 0,o&&!n),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=p}this.exitScope()};y.isSimpleParamList=function(e){for(var t=0,i=e;t-1||r.functions.indexOf(e)>-1||r.var.indexOf(e)>-1,r.lexical.push(e),this.inModule&&r.flags&se&&delete this.undefinedExports[e]}else if(t===yt){var n=this.currentScope();n.lexical.push(e)}else if(t===xt){var o=this.currentScope();this.treatFunctionsAsVar?s=o.lexical.indexOf(e)>-1:s=o.lexical.indexOf(e)>-1||o.var.indexOf(e)>-1,o.functions.push(e)}else for(var u=this.scopeStack.length-1;u>=0;--u){var p=this.scopeStack[u];if(p.lexical.indexOf(e)>-1&&!(p.flags&dt&&p.lexical[0]===e)||!this.treatFunctionsAsVarInScope(p)&&p.functions.indexOf(e)>-1){s=!0;break}if(p.var.push(e),this.inModule&&p.flags&se&&delete this.undefinedExports[e],p.flags&Fe)break}s&&this.raiseRecoverable(i,\"Identifier '\"+e+\"' has already been declared\")};W.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)};W.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};W.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Fe)return t}};W.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Fe&&!(t.flags&ft))return t}};var ge=function(t,i,s){this.type=\"\",this.start=i,this.end=0,t.options.locations&&(this.loc=new xe(t,s)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[i,0])},ae=T.prototype;ae.startNode=function(){return new ge(this,this.start,this.startLoc)};ae.startNodeAt=function(e,t){return new ge(this,e,t)};function St(e,t,i,s){return e.type=t,e.end=i,this.options.locations&&(e.loc.end=s),this.options.ranges&&(e.range[1]=i),e}ae.finishNode=function(e,t){return St.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)};ae.finishNodeAt=function(e,t,i,s){return St.call(this,e,t,i,s)};ae.copyNode=function(e){var t=new ge(this,e.start,this.startLoc);for(var i in e)t[i]=e[i];return t};var ji=\"Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz\",Ct=\"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\",_t=Ct+\" Extended_Pictographic\",Tt=_t,kt=Tt+\" EBase EComp EMod EPres ExtPict\",Et=kt,Mi=Et,Ui={9:Ct,10:_t,11:Tt,12:kt,13:Et,14:Mi},qi=\"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji\",Gi={9:\"\",10:\"\",11:\"\",12:\"\",13:\"\",14:qi},rt=\"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\",wt=\"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\",At=wt+\" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\",Pt=At+\" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\",It=Pt+\" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\",Nt=It+\" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\",Ji=Nt+\" \"+ji,Ki={9:wt,10:At,11:Pt,12:It,13:Nt,14:Ji},Vt={};function Wi(e){var t=Vt[e]={binary:K(Ui[e]+\" \"+rt),binaryOfStrings:K(Gi[e]),nonBinary:{General_Category:K(rt),Script:K(Ki[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(ce=0,Ie=[9,10,11,12,13,14];ce=6?\"uy\":\"\")+(t.options.ecmaVersion>=9?\"s\":\"\")+(t.options.ecmaVersion>=13?\"d\":\"\")+(t.options.ecmaVersion>=15?\"v\":\"\"),this.unicodeProperties=Vt[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source=\"\",this.flags=\"\",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=\"\",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};j.prototype.reset=function(t,i,s){var r=s.indexOf(\"v\")!==-1,n=s.indexOf(\"u\")!==-1;this.start=t|0,this.source=i+\"\",this.flags=s,r&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=n&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=n&&this.parser.options.ecmaVersion>=9)};j.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,\"Invalid regular expression: /\"+this.source+\"/: \"+t)};j.prototype.at=function(t,i){i===void 0&&(i=!1);var s=this.source,r=s.length;if(t>=r)return-1;var n=s.charCodeAt(t);if(!(i||this.switchU)||n<=55295||n>=57344||t+1>=r)return n;var o=s.charCodeAt(t+1);return o>=56320&&o<=57343?(n<<10)+o-56613888:n};j.prototype.nextIndex=function(t,i){i===void 0&&(i=!1);var s=this.source,r=s.length;if(t>=r)return r;var n=s.charCodeAt(t),o;return!(i||this.switchU)||n<=55295||n>=57344||t+1>=r||(o=s.charCodeAt(t+1))<56320||o>57343?t+1:t+2};j.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)};j.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)};j.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)};j.prototype.eat=function(t,i){return i===void 0&&(i=!1),this.current(i)===t?(this.advance(i),!0):!1};j.prototype.eatChars=function(t,i){i===void 0&&(i=!1);for(var s=this.pos,r=0,n=t;r-1&&this.raise(e.start,\"Duplicate regular expression flag\"),o===\"u\"&&(s=!0),o===\"v\"&&(r=!0)}this.options.ecmaVersion>=15&&s&&r&&this.raise(e.start,\"Invalid regular expression flag\")};function Xi(e){for(var t in e)return!0;return!1}c.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&Xi(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))};c.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=\"\",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(\"Unmatched ')'\"),(e.eat(93)||e.eat(125))&&e.raise(\"Lone quantifier brackets\")),e.maxBackReference>e.numCapturingParens&&e.raise(\"Invalid escape\");for(var t=0,i=e.backReferenceNames;t=16;for(t&&(e.branchID=new me(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise(\"Nothing to repeat\"),e.eat(123)&&e.raise(\"Lone quantifier brackets\")};c.regexp_alternative=function(e){for(;e.pos=9&&(i=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(\"Unterminated group\"),e.lastAssertionIsQuantifiable=!i,!0}return e.pos=t,!1};c.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1};c.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)};c.regexp_eatBracedQuantifier=function(e,t){var i=e.pos;if(e.eat(123)){var s=0,r=-1;if(this.regexp_eatDecimalDigits(e)&&(s=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue),e.eat(125)))return r!==-1&&r=16){var i=this.regexp_eatModifiers(e),s=e.eat(45);if(i||s){for(var r=0;r-1&&e.raise(\"Duplicate regular expression modifiers\")}if(s){var o=this.regexp_eatModifiers(e);!i&&!o&&e.current()===58&&e.raise(\"Invalid regular expression modifiers\");for(var u=0;u-1||i.indexOf(p)>-1)&&e.raise(\"Duplicate regular expression modifiers\")}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise(\"Unterminated group\")}}e.pos=t}return!1};c.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise(\"Invalid group\"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(\"Unterminated group\")}return!1};c.regexp_eatModifiers=function(e){for(var t=\"\",i=0;(i=e.current())!==-1&&zi(i);)t+=U(i),e.advance();return t};function zi(e){return e===105||e===109||e===115}c.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)};c.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(\"Nothing to repeat\"),!1};c.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Lt(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Lt(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}c.regexp_eatPatternCharacters=function(e){for(var t=e.pos,i=0;(i=e.current())!==-1&&!Lt(i);)e.advance();return e.pos!==t};c.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1};c.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise(\"Invalid group\");var t=this.options.ecmaVersion>=16,i=e.groupNames[e.lastStringValue];if(i)if(t)for(var s=0,r=i;s=11,s=e.current(i);return e.advance(i),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(s=e.lastIntValue),Hi(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Hi(e){return M(e,!0)||e===36||e===95}c.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,s=e.current(i);return e.advance(i),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(s=e.lastIntValue),Qi(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Qi(e){return H(e,!0)||e===36||e===95||e===8204||e===8205}c.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise(\"Invalid unicode escape\"),e.raise(\"Invalid escape\")),!1)};c.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var i=e.lastIntValue;if(e.switchU)return i>e.maxBackReference&&(e.maxBackReference=i),!0;if(i<=e.numCapturingParens)return!0;e.pos=t}return!1};c.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(\"Invalid named reference\")}return!1};c.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)};c.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1};c.regexp_eatZero=function(e){return e.current()===48&&!ve(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1};c.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1};c.regexp_eatControlLetter=function(e){var t=e.current();return Rt(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Rt(e){return e>=65&&e<=90||e>=97&&e<=122}c.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var i=e.pos,s=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var r=e.lastIntValue;if(s&&r>=55296&&r<=56319){var n=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=(r-55296)*1024+(o-56320)+65536,!0}e.pos=n,e.lastIntValue=r}return!0}if(s&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Yi(e.lastIntValue))return!0;s&&e.raise(\"Invalid unicode escape\"),e.pos=i}return!1};function Yi(e){return e>=0&&e<=1114111}c.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1};c.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1};var Ot=0,q=1,V=2;c.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Zi(t))return e.lastIntValue=-1,e.advance(),q;var i=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((i=t===80)||t===112)){e.lastIntValue=-1,e.advance();var s;if(e.eat(123)&&(s=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return i&&s===V&&e.raise(\"Invalid property name\"),s;e.raise(\"Invalid property name\")}return Ot};function Zi(e){return e===100||e===68||e===115||e===83||e===119||e===87}c.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var i=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var s=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,i,s),q}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,r)}return Ot};c.regexp_validateUnicodePropertyNameAndValue=function(e,t,i){Y(e.unicodeProperties.nonBinary,t)||e.raise(\"Invalid property name\"),e.unicodeProperties.nonBinary[t].test(i)||e.raise(\"Invalid property value\")};c.regexp_validateUnicodePropertyNameOrValue=function(e,t){if(e.unicodeProperties.binary.test(t))return q;if(e.switchV&&e.unicodeProperties.binaryOfStrings.test(t))return V;e.raise(\"Invalid property name\")};c.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=\"\";Bt(t=e.current());)e.lastStringValue+=U(t),e.advance();return e.lastStringValue!==\"\"};function Bt(e){return Rt(e)||e===95}c.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=\"\";$i(t=e.current());)e.lastStringValue+=U(t),e.advance();return e.lastStringValue!==\"\"};function $i(e){return Bt(e)||ve(e)}c.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)};c.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),i=this.regexp_classContents(e);return e.eat(93)||e.raise(\"Unterminated character class\"),t&&i===V&&e.raise(\"Negated character class may contain strings\"),!0}return!1};c.regexp_classContents=function(e){return e.current()===93?q:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),q)};c.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var i=e.lastIntValue;e.switchU&&(t===-1||i===-1)&&e.raise(\"Invalid character class\"),t!==-1&&i!==-1&&t>i&&e.raise(\"Range out of order in character class\")}}};c.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var i=e.current();(i===99||jt(i))&&e.raise(\"Invalid class escape\"),e.raise(\"Invalid escape\")}e.pos=t}var s=e.current();return s!==93?(e.lastIntValue=s,e.advance(),!0):!1};c.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)};c.regexp_classSetExpression=function(e){var t=q,i;if(!this.regexp_eatClassSetRange(e))if(i=this.regexp_eatClassSetOperand(e)){i===V&&(t=V);for(var s=e.pos;e.eatChars([38,38]);){if(e.current()!==38&&(i=this.regexp_eatClassSetOperand(e))){i!==V&&(t=q);continue}e.raise(\"Invalid character in character class\")}if(s!==e.pos)return t;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise(\"Invalid character in character class\");if(s!==e.pos)return t}else e.raise(\"Invalid character in character class\");for(;;)if(!this.regexp_eatClassSetRange(e)){if(i=this.regexp_eatClassSetOperand(e),!i)return t;i===V&&(t=V)}};c.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var i=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var s=e.lastIntValue;return i!==-1&&s!==-1&&i>s&&e.raise(\"Range out of order in character class\"),!0}e.pos=t}return!1};c.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?q:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)};c.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var i=e.eat(94),s=this.regexp_classContents(e);if(e.eat(93))return i&&s===V&&e.raise(\"Negated character class may contain strings\"),s;e.pos=t}if(e.eat(92)){var r=this.regexp_eatCharacterClassEscape(e);if(r)return r;e.pos=t}return null};c.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var i=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return i}else e.raise(\"Invalid escape\");e.pos=t}return null};c.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===V&&(t=V);return t};c.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return t===1?q:V};c.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return this.regexp_eatCharacterEscape(e)||this.regexp_eatClassSetReservedPunctuator(e)?!0:e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1);var i=e.current();return i<0||i===e.lookahead()&&es(i)||ts(i)?!1:(e.advance(),e.lastIntValue=i,!0)};function es(e){return e===33||e>=35&&e<=38||e>=42&&e<=44||e===46||e>=58&&e<=64||e===94||e===96||e===126}function ts(e){return e===40||e===41||e===45||e===47||e>=91&&e<=93||e>=123&&e<=125}c.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return is(t)?(e.lastIntValue=t,e.advance(),!0):!1};function is(e){return e===33||e===35||e===37||e===38||e===44||e===45||e>=58&&e<=62||e===64||e===96||e===126}c.regexp_eatClassControlLetter=function(e){var t=e.current();return ve(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1};c.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(\"Invalid escape\"),e.pos=t}return!1};c.regexp_eatDecimalDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;ve(i=e.current());)e.lastIntValue=10*e.lastIntValue+(i-48),e.advance();return e.pos!==t};function ve(e){return e>=48&&e<=57}c.regexp_eatHexDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;Dt(i=e.current());)e.lastIntValue=16*e.lastIntValue+Ft(i),e.advance();return e.pos!==t};function Dt(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ft(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}c.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var i=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+i*8+e.lastIntValue:e.lastIntValue=t*8+i}else e.lastIntValue=t;return!0}return!1};c.regexp_eatOctalDigit=function(e){var t=e.current();return jt(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function jt(e){return e>=48&&e<=55}c.regexp_eatFixedHexDigits=function(e,t){var i=e.pos;e.lastIntValue=0;for(var s=0;s=this.input.length)return this.finishToken(a.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())};v.readToken=function(e){return M(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)};v.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888};v.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,i=this.input.indexOf(\"*/\",this.pos+=2);if(i===-1&&this.raise(this.pos-2,\"Unterminated comment\"),this.pos=i+2,this.options.locations)for(var s=void 0,r=t;(s=ut(this.input,r,this.pos))>-1;)++this.curLine,r=this.lineStart=s;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,i),t,this.pos,e,this.curPosition())};v.skipLineComment=function(e){for(var t=this.pos,i=this.options.onComment&&this.curPosition(),s=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&pt.test(String.fromCharCode(e)))++this.pos;else break e}}};v.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=e,this.value=t,this.updateContext(i)};v.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(a.ellipsis)):(++this.pos,this.finishToken(a.dot))};v.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(a.assign,2):this.finishOp(a.slash,1)};v.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),i=1,s=e===42?a.star:a.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++i,s=a.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(a.assign,i+1):this.finishOp(s,i)};v.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var i=this.input.charCodeAt(this.pos+2);if(i===61)return this.finishOp(a.assign,3)}return this.finishOp(e===124?a.logicalOR:a.logicalAND,2)}return t===61?this.finishOp(a.assign,2):this.finishOp(e===124?a.bitwiseOR:a.bitwiseAND,1)};v.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(a.assign,2):this.finishOp(a.bitwiseXOR,1)};v.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||L.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(a.incDec,2):t===61?this.finishOp(a.assign,2):this.finishOp(a.plusMin,1)};v.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),i=1;return t===e?(i=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+i)===61?this.finishOp(a.assign,i+1):this.finishOp(a.bitShift,i)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(i=2),this.finishOp(a.relational,i))};v.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(a.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(a.arrow)):this.finishOp(e===61?a.eq:a.prefix,1)};v.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(a.questionDot,2)}if(t===63){if(e>=12){var s=this.input.charCodeAt(this.pos+2);if(s===61)return this.finishOp(a.assign,3)}return this.finishOp(a.coalesce,2)}}return this.finishOp(a.question,1)};v.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),M(t,!0)||t===92))return this.finishToken(a.privateId,this.readWord1());this.raise(this.pos,\"Unexpected character '\"+U(t)+\"'\")};v.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(a.parenL);case 41:return++this.pos,this.finishToken(a.parenR);case 59:return++this.pos,this.finishToken(a.semi);case 44:return++this.pos,this.finishToken(a.comma);case 91:return++this.pos,this.finishToken(a.bracketL);case 93:return++this.pos,this.finishToken(a.bracketR);case 123:return++this.pos,this.finishToken(a.braceL);case 125:return++this.pos,this.finishToken(a.braceR);case 58:return++this.pos,this.finishToken(a.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(a.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(a.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,\"Unexpected character '\"+U(e)+\"'\")};v.finishOp=function(e,t){var i=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,i)};v.readRegexp=function(){for(var e,t,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,\"Unterminated regular expression\");var s=this.input.charAt(this.pos);if(L.test(s)&&this.raise(i,\"Unterminated regular expression\"),e)e=!1;else{if(s===\"[\")t=!0;else if(s===\"]\"&&t)t=!1;else if(s===\"/\"&&!t)break;e=s===\"\\\\\"}++this.pos}var r=this.input.slice(i,this.pos);++this.pos;var n=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(n);var u=this.regexpState||(this.regexpState=new j(this));u.reset(i,r,o),this.validateRegExpFlags(u),this.validateRegExpPattern(u);var p=null;try{p=new RegExp(r,o)}catch{}return this.finishToken(a.regexp,{pattern:r,flags:o,value:p})};v.readInt=function(e,t,i){for(var s=this.options.ecmaVersion>=12&&t===void 0,r=i&&this.input.charCodeAt(this.pos)===48,n=this.pos,o=0,u=0,p=0,d=t??1/0;p=97?C=f-97+10:f>=65?C=f-65+10:f>=48&&f<=57?C=f-48:C=1/0,C>=e)break;u=f,o=o*e+C}return s&&u===95&&this.raiseRecoverable(this.pos-1,\"Numeric separator is not allowed at the last of digits\"),this.pos===n||t!=null&&this.pos-n!==t?null:o};function ss(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,\"\"))}function Mt(e){return typeof BigInt!=\"function\"?null:BigInt(e.replace(/_/g,\"\"))}v.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var i=this.readInt(e);return i==null&&this.raise(this.start+2,\"Expected number in radix \"+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(i=Mt(this.input.slice(t,this.pos)),++this.pos):M(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(a.num,i)};v.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,\"Invalid number\");var i=this.pos-t>=2&&this.input.charCodeAt(t)===48;i&&this.strict&&this.raise(t,\"Invalid number\");var s=this.input.charCodeAt(this.pos);if(!i&&!e&&this.options.ecmaVersion>=11&&s===110){var r=Mt(this.input.slice(t,this.pos));return++this.pos,M(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(a.num,r)}i&&/[89]/.test(this.input.slice(t,this.pos))&&(i=!1),s===46&&!i&&(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),(s===69||s===101)&&!i&&(s=this.input.charCodeAt(++this.pos),(s===43||s===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,\"Invalid number\")),M(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\");var n=ss(this.input.slice(t,this.pos),i);return this.finishToken(a.num,n)};v.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var i=++this.pos;t=this.readHexChar(this.input.indexOf(\"}\",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(i,\"Code point out of bounds\")}else t=this.readHexChar(4);return t};v.readString=function(e){for(var t=\"\",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");var s=this.input.charCodeAt(this.pos);if(s===e)break;s===92?(t+=this.input.slice(i,this.pos),t+=this.readEscapedChar(!1),i=this.pos):s===8232||s===8233?(this.options.ecmaVersion<10&&this.raise(this.start,\"Unterminated string constant\"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Q(s)&&this.raise(this.start,\"Unterminated string constant\"),++this.pos)}return t+=this.input.slice(i,this.pos++),this.finishToken(a.string,t)};var Ut={};v.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Ut)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1};v.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Ut;this.raise(e,t)};v.readTmplToken=function(){for(var e=\"\",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated template\");var i=this.input.charCodeAt(this.pos);if(i===96||i===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===a.template||this.type===a.invalidTemplate)?i===36?(this.pos+=2,this.finishToken(a.dollarBraceL)):(++this.pos,this.finishToken(a.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(a.template,e));if(i===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Q(i)){switch(e+=this.input.slice(t,this.pos),++this.pos,i){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=`\n`;break;default:e+=String.fromCharCode(i);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}};v.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(s,8);return r>255&&(s=s.slice(0,-1),r=parseInt(s,8)),this.pos+=s.length-1,t=this.input.charCodeAt(this.pos),(s!==\"0\"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-s.length,e?\"Octal literal in template string\":\"Octal literal in strict mode\"),String.fromCharCode(r)}return Q(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),\"\"):String.fromCharCode(t)}};v.readHexChar=function(e){var t=this.pos,i=this.readInt(16,e);return i===null&&this.invalidStringToken(t,\"Bad character escape sequence\"),i};v.readWord1=function(){this.containsEsc=!1;for(var e=\"\",t=!0,i=this.pos,s=this.options.ecmaVersion>=6;this.pos{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[i<0?t.length+i:i]:t.at(i)},X=ls;function fs(e){return Array.isArray(e)&&e.length>0}var Wt=fs;function O(e){var s,r,n;let t=((s=e.range)==null?void 0:s[0])??e.start,i=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return i?Math.min(O(i),t):t}function J(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function ds(e){let t=new Set(e);return i=>t.has(i==null?void 0:i.type)}var Xt=ds;var ms=Xt([\"Block\",\"CommentBlock\",\"MultiLine\"]),oe=ms;function xs(e){let t=`*${e.value}*`.split(`\n`);return t.length>1&&t.every(i=>i.trimStart()[0]===\"*\")}var Ke=xs;function ys(e){return oe(e)&&e.value[0]===\"*\"&&/@(?:type|satisfies)\\b/u.test(e.value)}var zt=ys;var ue=null;function pe(e){if(ue!==null&&typeof ue.property){let t=ue;return ue=pe.prototype=null,t}return ue=pe.prototype=e??Object.create(null),new pe}var gs=10;for(let e=0;e<=gs;e++)pe();function We(e){return pe(e)}function vs(e,t=\"type\"){We(e);function i(s){let r=s[t],n=e[r];if(!Array.isArray(n))throw Object.assign(new Error(`Missing visitor keys for '${r}'.`),{node:s});return n}return i}var Ht=vs;var Qt={ArrayExpression:[\"elements\"],AssignmentExpression:[\"left\",\"right\"],BinaryExpression:[\"left\",\"right\"],InterpreterDirective:[],Directive:[\"value\"],DirectiveLiteral:[],BlockStatement:[\"directives\",\"body\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],CatchClause:[\"param\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExpressionStatement:[\"expression\"],File:[\"program\"],ForInStatement:[\"left\",\"right\",\"body\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"typeAnnotation\",\"decorators\"],IfStatement:[\"test\",\"consequent\",\"alternate\"],LabeledStatement:[\"label\",\"body\"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],NewExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],Program:[\"directives\",\"body\"],ObjectExpression:[\"properties\"],ObjectMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectProperty:[\"key\",\"value\",\"decorators\"],RestElement:[\"argument\",\"typeAnnotation\",\"decorators\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],ParenthesizedExpression:[\"expression\"],SwitchCase:[\"test\",\"consequent\"],SwitchStatement:[\"discriminant\",\"cases\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],AssignmentPattern:[\"left\",\"right\",\"decorators\",\"typeAnnotation\"],ArrayPattern:[\"elements\",\"typeAnnotation\",\"decorators\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],ClassBody:[\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ExportAllDeclaration:[\"source\",\"attributes\",\"exported\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],ExportSpecifier:[\"local\",\"exported\"],ForOfStatement:[\"left\",\"right\",\"body\"],ImportDeclaration:[\"specifiers\",\"source\",\"attributes\"],ImportDefaultSpecifier:[\"local\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],ImportExpression:[\"source\",\"options\"],MetaProperty:[\"meta\",\"property\"],ClassMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectPattern:[\"properties\",\"typeAnnotation\",\"decorators\"],SpreadElement:[\"argument\"],Super:[],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\",\"typeArguments\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],YieldExpression:[\"argument\"],AwaitExpression:[\"argument\"],BigIntLiteral:[],ExportNamespaceSpecifier:[\"exported\"],OptionalMemberExpression:[\"object\",\"property\"],OptionalCallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],ClassProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],ClassPrivateProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassPrivateMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],PrivateName:[\"id\"],StaticBlock:[\"body\"],AnyTypeAnnotation:[],ArrayTypeAnnotation:[\"elementType\"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:[\"id\",\"typeParameters\"],DeclareClass:[\"id\",\"typeParameters\",\"extends\",\"mixins\",\"implements\",\"body\"],DeclareFunction:[\"id\",\"predicate\"],DeclareInterface:[\"id\",\"typeParameters\",\"extends\",\"body\"],DeclareModule:[\"id\",\"body\"],DeclareModuleExports:[\"typeAnnotation\"],DeclareTypeAlias:[\"id\",\"typeParameters\",\"right\"],DeclareOpaqueType:[\"id\",\"typeParameters\",\"supertype\"],DeclareVariable:[\"id\"],DeclareExportDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],DeclareExportAllDeclaration:[\"source\",\"attributes\"],DeclaredPredicate:[\"value\"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:[\"typeParameters\",\"params\",\"rest\",\"returnType\",\"this\"],FunctionTypeParam:[\"name\",\"typeAnnotation\"],GenericTypeAnnotation:[\"id\",\"typeParameters\"],InferredPredicate:[],InterfaceExtends:[\"id\",\"typeParameters\"],InterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],InterfaceTypeAnnotation:[\"extends\",\"body\"],IntersectionTypeAnnotation:[\"types\"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:[\"typeAnnotation\"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:[\"properties\",\"indexers\",\"callProperties\",\"internalSlots\"],ObjectTypeInternalSlot:[\"id\",\"value\"],ObjectTypeCallProperty:[\"value\"],ObjectTypeIndexer:[\"variance\",\"id\",\"key\",\"value\"],ObjectTypeProperty:[\"key\",\"value\",\"variance\"],ObjectTypeSpreadProperty:[\"argument\"],OpaqueType:[\"id\",\"typeParameters\",\"supertype\",\"impltype\"],QualifiedTypeIdentifier:[\"qualification\",\"id\"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:[\"types\",\"elementTypes\"],TypeofTypeAnnotation:[\"argument\",\"typeArguments\"],TypeAlias:[\"id\",\"typeParameters\",\"right\"],TypeAnnotation:[\"typeAnnotation\"],TypeCastExpression:[\"expression\",\"typeAnnotation\"],TypeParameter:[\"bound\",\"default\",\"variance\"],TypeParameterDeclaration:[\"params\"],TypeParameterInstantiation:[\"params\"],UnionTypeAnnotation:[\"types\"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:[\"id\",\"body\"],EnumBooleanBody:[\"members\"],EnumNumberBody:[\"members\"],EnumStringBody:[\"members\"],EnumSymbolBody:[\"members\"],EnumBooleanMember:[\"id\",\"init\"],EnumNumberMember:[\"id\",\"init\"],EnumStringMember:[\"id\",\"init\"],EnumDefaultedMember:[\"id\"],IndexedAccessType:[\"objectType\",\"indexType\"],OptionalIndexedAccessType:[\"objectType\",\"indexType\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXSpreadChild:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\",\"typeArguments\",\"typeParameters\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:[\"object\",\"callee\"],ImportAttribute:[\"key\",\"value\"],Decorator:[\"expression\"],DoExpression:[\"body\"],ExportDefaultSpecifier:[\"exported\"],RecordExpression:[\"properties\"],TupleExpression:[\"elements\"],ModuleExpression:[\"body\"],TopicReference:[],PipelineTopicExpression:[\"expression\"],PipelineBareFunction:[\"callee\"],PipelinePrimaryTopicReference:[],TSParameterProperty:[\"parameter\",\"decorators\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\"],TSQualifiedName:[\"left\",\"right\"],TSCallSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSPropertySignature:[\"key\",\"typeAnnotation\"],TSMethodSignature:[\"key\",\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructorType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSTypeReference:[\"typeName\",\"typeParameters\",\"typeArguments\"],TSTypePredicate:[\"parameterName\",\"typeAnnotation\"],TSTypeQuery:[\"exprName\",\"typeParameters\",\"typeArguments\"],TSTypeLiteral:[\"members\"],TSArrayType:[\"elementType\"],TSTupleType:[\"elementTypes\"],TSOptionalType:[\"typeAnnotation\"],TSRestType:[\"typeAnnotation\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSUnionType:[\"types\"],TSIntersectionType:[\"types\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSInferType:[\"typeParameter\"],TSParenthesizedType:[\"typeAnnotation\"],TSTypeOperator:[\"typeAnnotation\"],TSIndexedAccessType:[\"objectType\",\"indexType\"],TSMappedType:[\"typeParameter\",\"nameType\",\"typeAnnotation\"],TSLiteralType:[\"literal\"],TSExpressionWithTypeArguments:[\"expression\",\"typeParameters\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceBody:[\"body\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSInstantiationExpression:[\"expression\",\"typeParameters\",\"typeArguments\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSSatisfiesExpression:[\"expression\",\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSModuleDeclaration:[\"id\",\"body\"],TSModuleBlock:[\"body\"],TSImportType:[\"argument\",\"qualifier\",\"typeParameters\",\"typeArguments\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSExternalModuleReference:[\"expression\"],TSNonNullExpression:[\"expression\"],TSExportAssignment:[\"expression\"],TSNamespaceExportDeclaration:[\"id\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeParameterInstantiation:[\"params\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameter:[\"constraint\",\"default\",\"name\"],ChainExpression:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],Literal:[],MethodDefinition:[\"decorators\",\"key\",\"value\"],PrivateIdentifier:[],Property:[\"key\",\"value\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],AccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],TSAbstractAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAsyncKeyword:[],TSClassImplements:[\"expression\",\"typeArguments\",\"typeParameters\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumBody:[\"members\"],TSExportKeyword:[],TSInterfaceHeritage:[\"expression\",\"typeArguments\",\"typeParameters\"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],AsConstExpression:[\"expression\"],AsExpression:[\"expression\",\"typeAnnotation\"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"rendersType\"],ComponentParameter:[\"name\",\"local\"],ComponentTypeAnnotation:[\"params\",\"rest\",\"typeParameters\",\"rendersType\"],ComponentTypeParameter:[\"name\",\"typeAnnotation\"],ConditionalTypeAnnotation:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],DeclareComponent:[\"id\",\"params\",\"rest\",\"typeParameters\",\"rendersType\"],DeclareEnum:[\"id\",\"body\"],DeclareHook:[\"id\"],DeclareNamespace:[\"id\",\"body\"],EnumBigIntBody:[\"members\"],EnumBigIntMember:[\"id\",\"init\"],HookDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"returnType\"],HookTypeAnnotation:[\"params\",\"returnType\",\"rest\",\"typeParameters\"],InferTypeAnnotation:[\"typeParameter\"],KeyofTypeAnnotation:[\"argument\"],ObjectTypeMappedTypeProperty:[\"keyTparam\",\"propType\",\"sourceType\",\"variance\"],QualifiedTypeofIdentifier:[\"qualification\",\"id\"],TupleTypeLabeledElement:[\"label\",\"elementType\",\"variance\"],TupleTypeSpreadElement:[\"label\",\"typeAnnotation\"],TypeOperator:[\"typeAnnotation\"],TypePredicate:[\"parameterName\",\"typeAnnotation\",\"asserts\"],NGRoot:[\"node\"],NGPipeExpression:[\"left\",\"right\",\"arguments\"],NGChainedExpression:[\"expressions\"],NGEmptyExpression:[],NGMicrosyntax:[\"body\"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:[\"expression\",\"alias\"],NGMicrosyntaxKeyedExpression:[\"key\",\"expression\"],NGMicrosyntaxLet:[\"key\",\"value\"],NGMicrosyntaxAs:[\"key\",\"alias\"],JsExpressionRoot:[\"node\"],JsonRoot:[\"node\"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:[\"typeAnnotation\"],TSJSDocNonNullableType:[\"typeAnnotation\"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:[\"expression\",\"typeAnnotation\"]};var bs=Ht(Qt),Yt=bs;function Xe(e,t){if(!(e!==null&&typeof e==\"object\"))return e;if(Array.isArray(e)){for(let s=0;s{var o;(o=n.leadingComments)!=null&&o.some(zt)&&r.add(O(n))}),e=Ce(e,n=>{if(n.type===\"ParenthesizedExpression\"){let{expression:o}=n;if(o.type===\"TypeCastExpression\")return o.range=[...n.range],o;let u=O(n);if(!r.has(u))return o.extra={...o.extra,parenthesized:!0},o}})}if(e=Ce(e,r=>{switch(r.type){case\"LogicalExpression\":if(Zt(r))return ze(r);break;case\"VariableDeclaration\":{let n=X(!1,r.declarations,-1);n!=null&&n.init&&s[J(n)]!==\";\"&&(r.range=[O(r),J(n)]);break}case\"TSParenthesizedType\":return r.typeAnnotation;case\"TSTypeParameter\":if(typeof r.name==\"string\"){let n=O(r);r.name={type:\"Identifier\",name:r.name,range:[n,n+r.name.length]}}break;case\"TopicReference\":e.extra={...e.extra,__isUsingHackPipeline:!0};break;case\"TSUnionType\":case\"TSIntersectionType\":if(r.types.length===1)return r.types[0];break}}),Wt(e.comments)){let r=X(!1,e.comments,-1);for(let n=e.comments.length-2;n>=0;n--){let o=e.comments[n];J(o)===O(r)&&oe(o)&&oe(r)&&Ke(o)&&Ke(r)&&(e.comments.splice(n+1,1),o.value+=\"*//*\"+r.value,o.range=[O(o),J(r)]),r=o}}return e.type===\"Program\"&&(e.range=[0,s.length]),e}function Zt(e){return e.type===\"LogicalExpression\"&&e.right.type===\"LogicalExpression\"&&e.operator===e.right.operator}function ze(e){return Zt(e)?ze({type:\"LogicalExpression\",operator:e.operator,left:ze({type:\"LogicalExpression\",operator:e.operator,left:e.left,right:e.right.left,range:[O(e.left),J(e.right.left)]}),right:e.right.right,range:[O(e),J(e)]}):e}var _e=Ss;var Cs=(e,t,i,s)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(i,s):i.global?t.replace(i,s):t.split(i).join(s)},ee=Cs;var _s=/\\*\\/$/,Ts=/^\\/\\*\\*?/,ks=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,Es=/(^|\\s+)\\/\\/([^\\n\\r]*)/g,$t=/^(\\r?\\n)+/,ws=/(?:^|\\r?\\n) *(@[^\\n\\r]*?) *\\r?\\n *(?![^\\n\\r@]*\\/\\/[^]*)([^\\s@][^\\n\\r@]+?) *\\r?\\n/g,ei=/(?:^|\\r?\\n) *@(\\S+) *([^\\n\\r]*)/g,As=/(\\r?\\n|^) *\\* ?/g,Ps=[];function ti(e){let t=e.match(ks);return t?t[0].trimStart():\"\"}function ii(e){let t=`\n`;e=ee(!1,e.replace(Ts,\"\").replace(_s,\"\"),As,\"$1\");let i=\"\";for(;i!==e;)i=e,e=ee(!1,e,ws,`${t}$1 $2${t}`);e=e.replace($t,\"\").trimEnd();let s=Object.create(null),r=ee(!1,e,ei,\"\").replace($t,\"\").trimEnd(),n;for(;n=ei.exec(e);){let o=ee(!1,n[2],Es,\"\");if(typeof s[n[1]]==\"string\"||Array.isArray(s[n[1]])){let u=s[n[1]];s[n[1]]=[...Ps,...Array.isArray(u)?u:[u],o]}else s[n[1]]=o}return{comments:r,pragmas:s}}function Is(e){if(!e.startsWith(\"#!\"))return\"\";let t=e.indexOf(`\n`);return t===-1?e:e.slice(0,t)}var si=Is;function Ns(e){let t=si(e);t&&(e=e.slice(t.length+1));let i=ti(e),{pragmas:s,comments:r}=ii(i);return{shebang:t,text:e,pragmas:s,comments:r}}function ri(e){let{pragmas:t}=Ns(e);return Object.prototype.hasOwnProperty.call(t,\"prettier\")||Object.prototype.hasOwnProperty.call(t,\"format\")}function Vs(e){return e=typeof e==\"function\"?{parse:e}:e,{astFormat:\"estree\",hasPragma:ri,locStart:O,locEnd:J,...e}}var Te=Vs;function Ls(e){let{filepath:t}=e;if(t){if(t=t.toLowerCase(),t.endsWith(\".cjs\")||t.endsWith(\".cts\"))return\"script\";if(t.endsWith(\".mjs\")||t.endsWith(\".mts\"))return\"module\"}}var ke=Ls;var Rs={ecmaVersion:\"latest\",allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,locations:!0,ranges:!0};function Os(e){let{message:t,loc:i}=e;if(!i)return e;let{line:s,column:r}=i;return be(t.replace(/ \\(\\d+:\\d+\\)$/u,\"\"),{loc:{start:{line:s,column:r+1}},cause:e})}var ai,Bs=()=>(ai??(ai=T.extend((0,ni.default)())),ai);function Ds(e,t){let i=Bs(),s=[],r=[],n=i.parse(e,{...Rs,sourceType:t,allowImportExportEverywhere:t===\"module\",onComment:s,onToken:r});return n.comments=s,n.tokens=r,n}function Fs(e,t={}){let i=ke(t),s=(i?[i]:[\"module\",\"script\"]).map(n=>()=>Ds(e,n)),r;try{r=Se(s)}catch({errors:[n]}){throw Os(n)}return _e(r,{text:e})}var oi=Te(Fs);var ci=et(Je(),1);var E={Boolean:\"Boolean\",EOF:\"\",Identifier:\"Identifier\",PrivateIdentifier:\"PrivateIdentifier\",Keyword:\"Keyword\",Null:\"Null\",Numeric:\"Numeric\",Punctuator:\"Punctuator\",String:\"String\",RegularExpression:\"RegularExpression\",Template:\"Template\",JSXIdentifier:\"JSXIdentifier\",JSXText:\"JSXText\"};function js(e,t){let i=e[0],s=X(!1,e,-1),r={type:E.Template,value:t.slice(i.start,s.end)};return i.loc&&(r.loc={start:i.loc.start,end:s.loc.end}),i.range&&(r.start=i.range[0],r.end=s.range[1],r.range=[r.start,r.end]),r}function He(e,t){this._acornTokTypes=e,this._tokens=[],this._curlyBrace=null,this._code=t}He.prototype={constructor:He,translate(e,t){let i=e.type,s=this._acornTokTypes;if(i===s.name)e.type=E.Identifier,e.value===\"static\"&&(e.type=E.Keyword),t.ecmaVersion>5&&(e.value===\"yield\"||e.value===\"let\")&&(e.type=E.Keyword);else if(i===s.privateId)e.type=E.PrivateIdentifier;else if(i===s.semi||i===s.comma||i===s.parenL||i===s.parenR||i===s.braceL||i===s.braceR||i===s.dot||i===s.bracketL||i===s.colon||i===s.question||i===s.bracketR||i===s.ellipsis||i===s.arrow||i===s.jsxTagStart||i===s.incDec||i===s.starstar||i===s.jsxTagEnd||i===s.prefix||i===s.questionDot||i.binop&&!i.keyword||i.isAssign)e.type=E.Punctuator,e.value=this._code.slice(e.start,e.end);else if(i===s.jsxName)e.type=E.JSXIdentifier;else if(i.label===\"jsxText\"||i===s.jsxAttrValueToken)e.type=E.JSXText;else if(i.keyword)i.keyword===\"true\"||i.keyword===\"false\"?e.type=E.Boolean:i.keyword===\"null\"?e.type=E.Null:e.type=E.Keyword;else if(i===s.num)e.type=E.Numeric,e.value=this._code.slice(e.start,e.end);else if(i===s.string)t.jsxAttrValueToken?(t.jsxAttrValueToken=!1,e.type=E.JSXText):e.type=E.String,e.value=this._code.slice(e.start,e.end);else if(i===s.regexp){e.type=E.RegularExpression;let r=e.value;e.regex={flags:r.flags,pattern:r.pattern},e.value=`/${r.pattern}/${r.flags}`}return e},onToken(e,t){let i=this._acornTokTypes,s=t.tokens,r=this._tokens,n=()=>{s.push(js(this._tokens,this._code)),this._tokens=[]};if(e.type===i.eof){this._curlyBrace&&s.push(this.translate(this._curlyBrace,t));return}if(e.type===i.backQuote){this._curlyBrace&&(s.push(this.translate(this._curlyBrace,t)),this._curlyBrace=null),r.push(e),r.length>1&&n();return}if(e.type===i.dollarBraceL){r.push(e),n();return}if(e.type===i.braceR){this._curlyBrace&&s.push(this.translate(this._curlyBrace,t)),this._curlyBrace=e;return}if(e.type===i.template||e.type===i.invalidTemplate){this._curlyBrace&&(r.push(this._curlyBrace),this._curlyBrace=null),r.push(e);return}this._curlyBrace&&(s.push(this.translate(this._curlyBrace,t)),this._curlyBrace=null),s.push(this.translate(e,t))}};var ui=He;var pi=[3,5,6,7,8,9,10,11,12,13,14,15,16];function Ms(){return X(!1,pi,-1)}function Us(e=5){let t=e===\"latest\"?Ms():e;if(typeof t!=\"number\")throw new Error(`ecmaVersion must be a number or \"latest\". Received value of type ${typeof e} instead.`);if(t>=2015&&(t-=2009),!pi.includes(t))throw new Error(\"Invalid ecmaVersion.\");return t}function qs(e=\"script\"){if(e===\"script\"||e===\"module\")return e;if(e===\"commonjs\")return\"script\";throw new Error(\"Invalid sourceType.\")}function hi(e){let t=Us(e.ecmaVersion),i=qs(e.sourceType),s=e.range===!0,r=e.loc===!0;if(t!==3&&e.allowReserved)throw new Error(\"`allowReserved` is only supported when ecmaVersion is 3\");if(typeof e.allowReserved<\"u\"&&typeof e.allowReserved!=\"boolean\")throw new Error(\"`allowReserved`, when present, must be `true` or `false`\");let n=t===3?e.allowReserved||\"never\":!1,o=e.ecmaFeatures||{},u=e.sourceType===\"commonjs\"||!!o.globalReturn;if(i===\"module\"&&t<6)throw new Error(\"sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options.\");return Object.assign({},e,{ecmaVersion:t,sourceType:i,ranges:s,locations:r,allowReserved:n,allowReturnOutsideFunction:u})}var z=Symbol(\"espree's internal state\"),Qe=Symbol(\"espree's esprimaFinishNode\");function Gs(e,t,i,s,r,n,o){let u;e?u=\"Block\":o.slice(i,i+2)===\"#!\"?u=\"Hashbang\":u=\"Line\";let p={type:u,value:t};return typeof i==\"number\"&&(p.start=i,p.end=s,p.range=[i,s]),typeof r==\"object\"&&(p.loc={start:r,end:n}),p}var Ye=()=>e=>{let t=Object.assign({},e.acorn.tokTypes);return e.acornJsx&&Object.assign(t,e.acornJsx.tokTypes),class extends e{constructor(s,r){(typeof s!=\"object\"||s===null)&&(s={}),typeof r!=\"string\"&&!(r instanceof String)&&(r=String(r));let n=s.sourceType,o=hi(s),u=o.ecmaFeatures||{},p=o.tokens===!0?new ui(t,r):null,d={originalSourceType:n||o.sourceType,tokens:p?[]:null,comments:o.comment===!0?[]:null,impliedStrict:u.impliedStrict===!0&&o.ecmaVersion>=5,ecmaVersion:o.ecmaVersion,jsxAttrValueToken:!1,lastToken:null,templateElements:[]};super({ecmaVersion:o.ecmaVersion,sourceType:o.sourceType,ranges:o.ranges,locations:o.locations,allowReserved:o.allowReserved,allowReturnOutsideFunction:o.allowReturnOutsideFunction,onToken(f){p&&p.onToken(f,d),f.type!==t.eof&&(d.lastToken=f)},onComment(f,C,B,h,m,x){if(d.comments){let g=Gs(f,C,B,h,m,x,r);d.comments.push(g)}}},r),this[z]=d}tokenize(){do this.next();while(this.type!==t.eof);this.next();let s=this[z],r=s.tokens;return s.comments&&(r.comments=s.comments),r}finishNode(...s){let r=super.finishNode(...s);return this[Qe](r)}finishNodeAt(...s){let r=super.finishNodeAt(...s);return this[Qe](r)}parse(){let s=this[z],r=super.parse();if(r.sourceType=s.originalSourceType,s.comments&&(r.comments=s.comments),s.tokens&&(r.tokens=s.tokens),r.body.length){let[n]=r.body;r.range&&(r.range[0]=n.range[0]),r.loc&&(r.loc.start=n.loc.start),r.start=n.start}return s.lastToken&&(r.range&&(r.range[1]=s.lastToken.range[1]),r.loc&&(r.loc.end=s.lastToken.loc.end),r.end=s.lastToken.end),this[z].templateElements.forEach(n=>{let u=n.tail?1:2;n.start+=-1,n.end+=u,n.range&&(n.range[0]+=-1,n.range[1]+=u),n.loc&&(n.loc.start.column+=-1,n.loc.end.column+=u)}),r}parseTopLevel(s){return this[z].impliedStrict&&(this.strict=!0),super.parseTopLevel(s)}raise(s,r){let n=e.acorn.getLineInfo(this.input,s),o=new SyntaxError(r);throw o.index=s,o.lineNumber=n.line,o.column=n.column+1,o}raiseRecoverable(s,r){this.raise(s,r)}unexpected(s){let r=\"Unexpected token\";if(s!=null){if(this.pos=s,this.options.locations)for(;this.posthis.start&&(r+=` ${this.input.slice(this.start,this.end)}`),this.raise(this.start,r)}jsx_readString(s){let r=super.jsx_readString(s);return this.type===t.string&&(this[z].jsxAttrValueToken=!0),r}[Qe](s){return s.type===\"TemplateElement\"&&this[z].templateElements.push(s),s.type.includes(\"Function\")&&!s.generator&&(s.generator=!1),s}}};var Js={_regular:null,_jsx:null,get regular(){return this._regular===null&&(this._regular=T.extend(Ye())),this._regular},get jsx(){return this._jsx===null&&(this._jsx=T.extend((0,ci.default)(),Ye())),this._jsx},get(e){return!!(e&&e.ecmaFeatures&&e.ecmaFeatures.jsx)?this.jsx:this.regular}};function li(e,t){let i=Js.get(t);return new i(t,e).parse()}var Ks={ecmaVersion:\"latest\",range:!0,loc:!0,comment:!0,tokens:!0,sourceType:\"module\",ecmaFeatures:{jsx:!0,globalReturn:!0,impliedStrict:!1}};function Ws(e){let{message:t,lineNumber:i,column:s}=e;return typeof i!=\"number\"?e:be(t,{loc:{start:{line:i,column:s}},cause:e})}function Xs(e,t={}){let i=ke(t),s=(i?[i]:[\"module\",\"script\"]).map(n=>()=>li(e,{...Ks,sourceType:n})),r;try{r=Se(s)}catch({errors:[n]}){throw Ws(n)}return _e(r,{text:e})}var fi=Te(Xs);var zs={acorn:oi,espree:fi};var Ca=Ze;export{Ca as default,zs as parsers};\n", "var $s=Object.defineProperty;var Xt=t=>{throw TypeError(t)};var Jt=(t,e)=>{for(var n in e)$s(t,n,{get:e[n],enumerable:!0})};var it=(t,e,n)=>e.has(t)||Xt(\"Cannot \"+n);var L=(t,e,n)=>(it(t,e,\"read from private field\"),n?n.call(t):e.get(t)),V=(t,e,n)=>e.has(t)?Xt(\"Cannot add the same private member more than once\"):e instanceof WeakSet?e.add(t):e.set(t,n),Q=(t,e,n,s)=>(it(t,e,\"write to private field\"),s?s.call(t,n):e.set(t,n),n),c=(t,e,n)=>(it(t,e,\"access private method\"),n);var zt={};Jt(zt,{parsers:()=>jt});var jt={};Jt(jt,{__ng_action:()=>Ur,__ng_binding:()=>Wr,__ng_directive:()=>jr,__ng_interpolation:()=>qr});var Gr=new RegExp(`(\\\\:not\\\\()|(([\\\\.\\\\#]?)[-\\\\w]+)|(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\"']?)([^\\\\]\"']*)\\\\5)?\\\\])|(\\\\))|(\\\\s*,\\\\s*)`,\"g\");var Kt;(function(t){t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\"})(Kt||(Kt={}));var Yt;(function(t){t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\"})(Yt||(Yt={}));var Qt;(function(t){t[t.None=0]=\"None\",t[t.SignalBased=1]=\"SignalBased\",t[t.HasDecoratorInputTransform=2]=\"HasDecoratorInputTransform\"})(Qt||(Qt={}));var B;(function(t){t[t.NONE=0]=\"NONE\",t[t.HTML=1]=\"HTML\",t[t.STYLE=2]=\"STYLE\",t[t.SCRIPT=3]=\"SCRIPT\",t[t.URL=4]=\"URL\",t[t.RESOURCE_URL=5]=\"RESOURCE_URL\"})(B||(B={}));var Zt;(function(t){t[t.Error=0]=\"Error\",t[t.Warning=1]=\"Warning\",t[t.Ignore=2]=\"Ignore\"})(Zt||(Zt={}));var en;(function(t){t[t.Little=0]=\"Little\",t[t.Big=1]=\"Big\"})(en||(en={}));var tn;(function(t){t[t.None=0]=\"None\",t[t.Const=1]=\"Const\"})(tn||(tn={}));var nn;(function(t){t[t.Dynamic=0]=\"Dynamic\",t[t.Bool=1]=\"Bool\",t[t.String=2]=\"String\",t[t.Int=3]=\"Int\",t[t.Number=4]=\"Number\",t[t.Function=5]=\"Function\",t[t.Inferred=6]=\"Inferred\",t[t.None=7]=\"None\"})(nn||(nn={}));var Rs=void 0;var sn;(function(t){t[t.Minus=0]=\"Minus\",t[t.Plus=1]=\"Plus\"})(sn||(sn={}));var _;(function(t){t[t.Equals=0]=\"Equals\",t[t.NotEquals=1]=\"NotEquals\",t[t.Identical=2]=\"Identical\",t[t.NotIdentical=3]=\"NotIdentical\",t[t.Minus=4]=\"Minus\",t[t.Plus=5]=\"Plus\",t[t.Divide=6]=\"Divide\",t[t.Multiply=7]=\"Multiply\",t[t.Modulo=8]=\"Modulo\",t[t.And=9]=\"And\",t[t.Or=10]=\"Or\",t[t.BitwiseOr=11]=\"BitwiseOr\",t[t.BitwiseAnd=12]=\"BitwiseAnd\",t[t.Lower=13]=\"Lower\",t[t.LowerEquals=14]=\"LowerEquals\",t[t.Bigger=15]=\"Bigger\",t[t.BiggerEquals=16]=\"BiggerEquals\",t[t.NullishCoalesce=17]=\"NullishCoalesce\"})(_||(_={}));function Bs(t,e){return t==null||e==null?t==e:t.isEquivalent(e)}function Ds(t,e,n){let s=t.length;if(s!==e.length)return!1;for(let r=0;rn.isEquivalent(s))}var k=class{type;sourceSpan;constructor(e,n){this.type=e||null,this.sourceSpan=n||null}prop(e,n){return new gt(this,e,null,n)}key(e,n,s){return new vt(this,e,n,s)}callFn(e,n,s){return new Xe(this,e,null,n,s)}instantiate(e,n,s){return new ft(this,e,n,s)}conditional(e,n=null,s){return new mt(this,e,n,null,s)}equals(e,n){return new C(_.Equals,this,e,null,n)}notEquals(e,n){return new C(_.NotEquals,this,e,null,n)}identical(e,n){return new C(_.Identical,this,e,null,n)}notIdentical(e,n){return new C(_.NotIdentical,this,e,null,n)}minus(e,n){return new C(_.Minus,this,e,null,n)}plus(e,n){return new C(_.Plus,this,e,null,n)}divide(e,n){return new C(_.Divide,this,e,null,n)}multiply(e,n){return new C(_.Multiply,this,e,null,n)}modulo(e,n){return new C(_.Modulo,this,e,null,n)}and(e,n){return new C(_.And,this,e,null,n)}bitwiseOr(e,n,s=!0){return new C(_.BitwiseOr,this,e,null,n,s)}bitwiseAnd(e,n,s=!0){return new C(_.BitwiseAnd,this,e,null,n,s)}or(e,n){return new C(_.Or,this,e,null,n)}lower(e,n){return new C(_.Lower,this,e,null,n)}lowerEquals(e,n){return new C(_.LowerEquals,this,e,null,n)}bigger(e,n){return new C(_.Bigger,this,e,null,n)}biggerEquals(e,n){return new C(_.BiggerEquals,this,e,null,n)}isBlank(e){return this.equals(TYPED_NULL_EXPR,e)}nullishCoalesce(e,n){return new C(_.NullishCoalesce,this,e,null,n)}toStmt(){return new xt(this,null)}},Ge=class t extends k{name;constructor(e,n,s){super(n,s),this.name=e}isEquivalent(e){return e instanceof t&&this.name===e.name}isConstant(){return!1}visitExpression(e,n){return e.visitReadVarExpr(this,n)}clone(){return new t(this.name,this.type,this.sourceSpan)}set(e){return new ut(this.name,e,null,this.sourceSpan)}},ct=class t extends k{expr;constructor(e,n,s){super(n,s),this.expr=e}visitExpression(e,n){return e.visitTypeofExpr(this,n)}isEquivalent(e){return e instanceof t&&e.expr.isEquivalent(this.expr)}isConstant(){return this.expr.isConstant()}clone(){return new t(this.expr.clone())}};var ut=class t extends k{name;value;constructor(e,n,s,r){super(s||n.type,r),this.name=e,this.value=n}isEquivalent(e){return e instanceof t&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWriteVarExpr(this,n)}clone(){return new t(this.name,this.value.clone(),this.type,this.sourceSpan)}toDeclStmt(e,n){return new wt(this.name,this.value,e,n,this.sourceSpan)}toConstDecl(){return this.toDeclStmt(Rs,Ee.Final)}},pt=class t extends k{receiver;index;value;constructor(e,n,s,r,o){super(r||s.type,o),this.receiver=e,this.index=n,this.value=s}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWriteKeyExpr(this,n)}clone(){return new t(this.receiver.clone(),this.index.clone(),this.value.clone(),this.type,this.sourceSpan)}},ht=class t extends k{receiver;name;value;constructor(e,n,s,r,o){super(r||s.type,o),this.receiver=e,this.name=n,this.value=s}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWritePropExpr(this,n)}clone(){return new t(this.receiver.clone(),this.name,this.value.clone(),this.type,this.sourceSpan)}},Xe=class t extends k{fn;args;pure;constructor(e,n,s,r,o=!1){super(s,r),this.fn=e,this.args=n,this.pure=o}get receiver(){return this.fn}isEquivalent(e){return e instanceof t&&this.fn.isEquivalent(e.fn)&&tt(this.args,e.args)&&this.pure===e.pure}isConstant(){return!1}visitExpression(e,n){return e.visitInvokeFunctionExpr(this,n)}clone(){return new t(this.fn.clone(),this.args.map(e=>e.clone()),this.type,this.sourceSpan,this.pure)}};var ft=class t extends k{classExpr;args;constructor(e,n,s,r){super(s,r),this.classExpr=e,this.args=n}isEquivalent(e){return e instanceof t&&this.classExpr.isEquivalent(e.classExpr)&&tt(this.args,e.args)}isConstant(){return!1}visitExpression(e,n){return e.visitInstantiateExpr(this,n)}clone(){return new t(this.classExpr.clone(),this.args.map(e=>e.clone()),this.type,this.sourceSpan)}},Je=class t extends k{value;constructor(e,n,s){super(n,s),this.value=e}isEquivalent(e){return e instanceof t&&this.value===e.value}isConstant(){return!0}visitExpression(e,n){return e.visitLiteralExpr(this,n)}clone(){return new t(this.value,this.type,this.sourceSpan)}};var dt=class t extends k{value;typeParams;constructor(e,n,s=null,r){super(n,r),this.value=e,this.typeParams=s}isEquivalent(e){return e instanceof t&&this.value.name===e.value.name&&this.value.moduleName===e.value.moduleName}isConstant(){return!1}visitExpression(e,n){return e.visitExternalExpr(this,n)}clone(){return new t(this.value,this.type,this.typeParams,this.sourceSpan)}};var mt=class t extends k{condition;falseCase;trueCase;constructor(e,n,s=null,r,o){super(r||n.type,o),this.condition=e,this.falseCase=s,this.trueCase=n}isEquivalent(e){return e instanceof t&&this.condition.isEquivalent(e.condition)&&this.trueCase.isEquivalent(e.trueCase)&&Bs(this.falseCase,e.falseCase)}isConstant(){return!1}visitExpression(e,n){return e.visitConditionalExpr(this,n)}clone(){var e;return new t(this.condition.clone(),this.trueCase.clone(),(e=this.falseCase)==null?void 0:e.clone(),this.type,this.sourceSpan)}};var C=class t extends k{operator;rhs;parens;lhs;constructor(e,n,s,r,o,a=!0){super(r||n.type,o),this.operator=e,this.rhs=s,this.parens=a,this.lhs=n}isEquivalent(e){return e instanceof t&&this.operator===e.operator&&this.lhs.isEquivalent(e.lhs)&&this.rhs.isEquivalent(e.rhs)}isConstant(){return!1}visitExpression(e,n){return e.visitBinaryOperatorExpr(this,n)}clone(){return new t(this.operator,this.lhs.clone(),this.rhs.clone(),this.type,this.sourceSpan,this.parens)}},gt=class t extends k{receiver;name;constructor(e,n,s,r){super(s,r),this.receiver=e,this.name=n}get index(){return this.name}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name}isConstant(){return!1}visitExpression(e,n){return e.visitReadPropExpr(this,n)}set(e){return new ht(this.receiver,this.name,e,null,this.sourceSpan)}clone(){return new t(this.receiver.clone(),this.name,this.type,this.sourceSpan)}},vt=class t extends k{receiver;index;constructor(e,n,s,r){super(s,r),this.receiver=e,this.index=n}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)}isConstant(){return!1}visitExpression(e,n){return e.visitReadKeyExpr(this,n)}set(e){return new pt(this.receiver,this.index,e,null,this.sourceSpan)}clone(){return new t(this.receiver.clone(),this.index.clone(),this.type,this.sourceSpan)}},Ke=class t extends k{entries;constructor(e,n,s){super(n,s),this.entries=e}isConstant(){return this.entries.every(e=>e.isConstant())}isEquivalent(e){return e instanceof t&&tt(this.entries,e.entries)}visitExpression(e,n){return e.visitLiteralArrayExpr(this,n)}clone(){return new t(this.entries.map(e=>e.clone()),this.type,this.sourceSpan)}};var Ye=class t extends k{entries;valueType=null;constructor(e,n,s){super(n,s),this.entries=e,n&&(this.valueType=n.valueType)}isEquivalent(e){return e instanceof t&&tt(this.entries,e.entries)}isConstant(){return this.entries.every(e=>e.value.isConstant())}visitExpression(e,n){return e.visitLiteralMapExpr(this,n)}clone(){let e=this.entries.map(n=>n.clone());return new t(e,this.type,this.sourceSpan)}};var Ee;(function(t){t[t.None=0]=\"None\",t[t.Final=1]=\"Final\",t[t.Private=2]=\"Private\",t[t.Exported=4]=\"Exported\",t[t.Static=8]=\"Static\"})(Ee||(Ee={}));var Qe=class{modifiers;sourceSpan;leadingComments;constructor(e=Ee.None,n=null,s){this.modifiers=e,this.sourceSpan=n,this.leadingComments=s}hasModifier(e){return(this.modifiers&e)!==0}addLeadingComment(e){this.leadingComments=this.leadingComments??[],this.leadingComments.push(e)}},wt=class t extends Qe{name;value;type;constructor(e,n,s,r,o,a){super(r,o,a),this.name=e,this.value=n,this.type=s||n&&n.type||null}isEquivalent(e){return e instanceof t&&this.name===e.name&&(this.value?!!e.value&&this.value.isEquivalent(e.value):!e.value)}visitStatement(e,n){return e.visitDeclareVarStmt(this,n)}};var xt=class t extends Qe{expr;constructor(e,n,s){super(Ee.None,n,s),this.expr=e}isEquivalent(e){return e instanceof t&&this.expr.isEquivalent(e.expr)}visitStatement(e,n){return e.visitExpressionStmt(this,n)}};function Os(t,e,n){return new Ge(t,e,n)}var Xr=Os(\"\");var rn=class t{static INSTANCE=new t;keyOf(e){if(e instanceof Je&&typeof e.value==\"string\")return`\"${e.value}\"`;if(e instanceof Je)return String(e.value);if(e instanceof Ke){let n=[];for(let s of e.entries)n.push(this.keyOf(s));return`[${n.join(\",\")}]`}else if(e instanceof Ye){let n=[];for(let s of e.entries){let r=s.key;s.quoted&&(r=`\"${r}\"`),n.push(r+\":\"+this.keyOf(s.value))}return`{${n.join(\",\")}}`}else{if(e instanceof dt)return`import(\"${e.value.moduleName}\", ${e.value.name})`;if(e instanceof Ge)return`read(${e.name})`;if(e instanceof ct)return`typeof(${this.keyOf(e.expr)})`;throw new Error(`${this.constructor.name} does not handle expressions of type ${e.constructor.name}`)}}};var i=\"@angular/core\",P=class{static NEW_METHOD=\"factory\";static TRANSFORM_METHOD=\"transform\";static PATCH_DEPS=\"patchedDeps\";static core={name:null,moduleName:i};static namespaceHTML={name:\"\\u0275\\u0275namespaceHTML\",moduleName:i};static namespaceMathML={name:\"\\u0275\\u0275namespaceMathML\",moduleName:i};static namespaceSVG={name:\"\\u0275\\u0275namespaceSVG\",moduleName:i};static element={name:\"\\u0275\\u0275element\",moduleName:i};static elementStart={name:\"\\u0275\\u0275elementStart\",moduleName:i};static elementEnd={name:\"\\u0275\\u0275elementEnd\",moduleName:i};static advance={name:\"\\u0275\\u0275advance\",moduleName:i};static syntheticHostProperty={name:\"\\u0275\\u0275syntheticHostProperty\",moduleName:i};static syntheticHostListener={name:\"\\u0275\\u0275syntheticHostListener\",moduleName:i};static attribute={name:\"\\u0275\\u0275attribute\",moduleName:i};static attributeInterpolate1={name:\"\\u0275\\u0275attributeInterpolate1\",moduleName:i};static attributeInterpolate2={name:\"\\u0275\\u0275attributeInterpolate2\",moduleName:i};static attributeInterpolate3={name:\"\\u0275\\u0275attributeInterpolate3\",moduleName:i};static attributeInterpolate4={name:\"\\u0275\\u0275attributeInterpolate4\",moduleName:i};static attributeInterpolate5={name:\"\\u0275\\u0275attributeInterpolate5\",moduleName:i};static attributeInterpolate6={name:\"\\u0275\\u0275attributeInterpolate6\",moduleName:i};static attributeInterpolate7={name:\"\\u0275\\u0275attributeInterpolate7\",moduleName:i};static attributeInterpolate8={name:\"\\u0275\\u0275attributeInterpolate8\",moduleName:i};static attributeInterpolateV={name:\"\\u0275\\u0275attributeInterpolateV\",moduleName:i};static classProp={name:\"\\u0275\\u0275classProp\",moduleName:i};static elementContainerStart={name:\"\\u0275\\u0275elementContainerStart\",moduleName:i};static elementContainerEnd={name:\"\\u0275\\u0275elementContainerEnd\",moduleName:i};static elementContainer={name:\"\\u0275\\u0275elementContainer\",moduleName:i};static styleMap={name:\"\\u0275\\u0275styleMap\",moduleName:i};static styleMapInterpolate1={name:\"\\u0275\\u0275styleMapInterpolate1\",moduleName:i};static styleMapInterpolate2={name:\"\\u0275\\u0275styleMapInterpolate2\",moduleName:i};static styleMapInterpolate3={name:\"\\u0275\\u0275styleMapInterpolate3\",moduleName:i};static styleMapInterpolate4={name:\"\\u0275\\u0275styleMapInterpolate4\",moduleName:i};static styleMapInterpolate5={name:\"\\u0275\\u0275styleMapInterpolate5\",moduleName:i};static styleMapInterpolate6={name:\"\\u0275\\u0275styleMapInterpolate6\",moduleName:i};static styleMapInterpolate7={name:\"\\u0275\\u0275styleMapInterpolate7\",moduleName:i};static styleMapInterpolate8={name:\"\\u0275\\u0275styleMapInterpolate8\",moduleName:i};static styleMapInterpolateV={name:\"\\u0275\\u0275styleMapInterpolateV\",moduleName:i};static classMap={name:\"\\u0275\\u0275classMap\",moduleName:i};static classMapInterpolate1={name:\"\\u0275\\u0275classMapInterpolate1\",moduleName:i};static classMapInterpolate2={name:\"\\u0275\\u0275classMapInterpolate2\",moduleName:i};static classMapInterpolate3={name:\"\\u0275\\u0275classMapInterpolate3\",moduleName:i};static classMapInterpolate4={name:\"\\u0275\\u0275classMapInterpolate4\",moduleName:i};static classMapInterpolate5={name:\"\\u0275\\u0275classMapInterpolate5\",moduleName:i};static classMapInterpolate6={name:\"\\u0275\\u0275classMapInterpolate6\",moduleName:i};static classMapInterpolate7={name:\"\\u0275\\u0275classMapInterpolate7\",moduleName:i};static classMapInterpolate8={name:\"\\u0275\\u0275classMapInterpolate8\",moduleName:i};static classMapInterpolateV={name:\"\\u0275\\u0275classMapInterpolateV\",moduleName:i};static styleProp={name:\"\\u0275\\u0275styleProp\",moduleName:i};static stylePropInterpolate1={name:\"\\u0275\\u0275stylePropInterpolate1\",moduleName:i};static stylePropInterpolate2={name:\"\\u0275\\u0275stylePropInterpolate2\",moduleName:i};static stylePropInterpolate3={name:\"\\u0275\\u0275stylePropInterpolate3\",moduleName:i};static stylePropInterpolate4={name:\"\\u0275\\u0275stylePropInterpolate4\",moduleName:i};static stylePropInterpolate5={name:\"\\u0275\\u0275stylePropInterpolate5\",moduleName:i};static stylePropInterpolate6={name:\"\\u0275\\u0275stylePropInterpolate6\",moduleName:i};static stylePropInterpolate7={name:\"\\u0275\\u0275stylePropInterpolate7\",moduleName:i};static stylePropInterpolate8={name:\"\\u0275\\u0275stylePropInterpolate8\",moduleName:i};static stylePropInterpolateV={name:\"\\u0275\\u0275stylePropInterpolateV\",moduleName:i};static nextContext={name:\"\\u0275\\u0275nextContext\",moduleName:i};static resetView={name:\"\\u0275\\u0275resetView\",moduleName:i};static templateCreate={name:\"\\u0275\\u0275template\",moduleName:i};static defer={name:\"\\u0275\\u0275defer\",moduleName:i};static deferWhen={name:\"\\u0275\\u0275deferWhen\",moduleName:i};static deferOnIdle={name:\"\\u0275\\u0275deferOnIdle\",moduleName:i};static deferOnImmediate={name:\"\\u0275\\u0275deferOnImmediate\",moduleName:i};static deferOnTimer={name:\"\\u0275\\u0275deferOnTimer\",moduleName:i};static deferOnHover={name:\"\\u0275\\u0275deferOnHover\",moduleName:i};static deferOnInteraction={name:\"\\u0275\\u0275deferOnInteraction\",moduleName:i};static deferOnViewport={name:\"\\u0275\\u0275deferOnViewport\",moduleName:i};static deferPrefetchWhen={name:\"\\u0275\\u0275deferPrefetchWhen\",moduleName:i};static deferPrefetchOnIdle={name:\"\\u0275\\u0275deferPrefetchOnIdle\",moduleName:i};static deferPrefetchOnImmediate={name:\"\\u0275\\u0275deferPrefetchOnImmediate\",moduleName:i};static deferPrefetchOnTimer={name:\"\\u0275\\u0275deferPrefetchOnTimer\",moduleName:i};static deferPrefetchOnHover={name:\"\\u0275\\u0275deferPrefetchOnHover\",moduleName:i};static deferPrefetchOnInteraction={name:\"\\u0275\\u0275deferPrefetchOnInteraction\",moduleName:i};static deferPrefetchOnViewport={name:\"\\u0275\\u0275deferPrefetchOnViewport\",moduleName:i};static deferHydrateWhen={name:\"\\u0275\\u0275deferHydrateWhen\",moduleName:i};static deferHydrateNever={name:\"\\u0275\\u0275deferHydrateNever\",moduleName:i};static deferHydrateOnIdle={name:\"\\u0275\\u0275deferHydrateOnIdle\",moduleName:i};static deferHydrateOnImmediate={name:\"\\u0275\\u0275deferHydrateOnImmediate\",moduleName:i};static deferHydrateOnTimer={name:\"\\u0275\\u0275deferHydrateOnTimer\",moduleName:i};static deferHydrateOnHover={name:\"\\u0275\\u0275deferHydrateOnHover\",moduleName:i};static deferHydrateOnInteraction={name:\"\\u0275\\u0275deferHydrateOnInteraction\",moduleName:i};static deferHydrateOnViewport={name:\"\\u0275\\u0275deferHydrateOnViewport\",moduleName:i};static deferEnableTimerScheduling={name:\"\\u0275\\u0275deferEnableTimerScheduling\",moduleName:i};static conditional={name:\"\\u0275\\u0275conditional\",moduleName:i};static repeater={name:\"\\u0275\\u0275repeater\",moduleName:i};static repeaterCreate={name:\"\\u0275\\u0275repeaterCreate\",moduleName:i};static repeaterTrackByIndex={name:\"\\u0275\\u0275repeaterTrackByIndex\",moduleName:i};static repeaterTrackByIdentity={name:\"\\u0275\\u0275repeaterTrackByIdentity\",moduleName:i};static componentInstance={name:\"\\u0275\\u0275componentInstance\",moduleName:i};static text={name:\"\\u0275\\u0275text\",moduleName:i};static enableBindings={name:\"\\u0275\\u0275enableBindings\",moduleName:i};static disableBindings={name:\"\\u0275\\u0275disableBindings\",moduleName:i};static getCurrentView={name:\"\\u0275\\u0275getCurrentView\",moduleName:i};static textInterpolate={name:\"\\u0275\\u0275textInterpolate\",moduleName:i};static textInterpolate1={name:\"\\u0275\\u0275textInterpolate1\",moduleName:i};static textInterpolate2={name:\"\\u0275\\u0275textInterpolate2\",moduleName:i};static textInterpolate3={name:\"\\u0275\\u0275textInterpolate3\",moduleName:i};static textInterpolate4={name:\"\\u0275\\u0275textInterpolate4\",moduleName:i};static textInterpolate5={name:\"\\u0275\\u0275textInterpolate5\",moduleName:i};static textInterpolate6={name:\"\\u0275\\u0275textInterpolate6\",moduleName:i};static textInterpolate7={name:\"\\u0275\\u0275textInterpolate7\",moduleName:i};static textInterpolate8={name:\"\\u0275\\u0275textInterpolate8\",moduleName:i};static textInterpolateV={name:\"\\u0275\\u0275textInterpolateV\",moduleName:i};static restoreView={name:\"\\u0275\\u0275restoreView\",moduleName:i};static pureFunction0={name:\"\\u0275\\u0275pureFunction0\",moduleName:i};static pureFunction1={name:\"\\u0275\\u0275pureFunction1\",moduleName:i};static pureFunction2={name:\"\\u0275\\u0275pureFunction2\",moduleName:i};static pureFunction3={name:\"\\u0275\\u0275pureFunction3\",moduleName:i};static pureFunction4={name:\"\\u0275\\u0275pureFunction4\",moduleName:i};static pureFunction5={name:\"\\u0275\\u0275pureFunction5\",moduleName:i};static pureFunction6={name:\"\\u0275\\u0275pureFunction6\",moduleName:i};static pureFunction7={name:\"\\u0275\\u0275pureFunction7\",moduleName:i};static pureFunction8={name:\"\\u0275\\u0275pureFunction8\",moduleName:i};static pureFunctionV={name:\"\\u0275\\u0275pureFunctionV\",moduleName:i};static pipeBind1={name:\"\\u0275\\u0275pipeBind1\",moduleName:i};static pipeBind2={name:\"\\u0275\\u0275pipeBind2\",moduleName:i};static pipeBind3={name:\"\\u0275\\u0275pipeBind3\",moduleName:i};static pipeBind4={name:\"\\u0275\\u0275pipeBind4\",moduleName:i};static pipeBindV={name:\"\\u0275\\u0275pipeBindV\",moduleName:i};static hostProperty={name:\"\\u0275\\u0275hostProperty\",moduleName:i};static property={name:\"\\u0275\\u0275property\",moduleName:i};static propertyInterpolate={name:\"\\u0275\\u0275propertyInterpolate\",moduleName:i};static propertyInterpolate1={name:\"\\u0275\\u0275propertyInterpolate1\",moduleName:i};static propertyInterpolate2={name:\"\\u0275\\u0275propertyInterpolate2\",moduleName:i};static propertyInterpolate3={name:\"\\u0275\\u0275propertyInterpolate3\",moduleName:i};static propertyInterpolate4={name:\"\\u0275\\u0275propertyInterpolate4\",moduleName:i};static propertyInterpolate5={name:\"\\u0275\\u0275propertyInterpolate5\",moduleName:i};static propertyInterpolate6={name:\"\\u0275\\u0275propertyInterpolate6\",moduleName:i};static propertyInterpolate7={name:\"\\u0275\\u0275propertyInterpolate7\",moduleName:i};static propertyInterpolate8={name:\"\\u0275\\u0275propertyInterpolate8\",moduleName:i};static propertyInterpolateV={name:\"\\u0275\\u0275propertyInterpolateV\",moduleName:i};static i18n={name:\"\\u0275\\u0275i18n\",moduleName:i};static i18nAttributes={name:\"\\u0275\\u0275i18nAttributes\",moduleName:i};static i18nExp={name:\"\\u0275\\u0275i18nExp\",moduleName:i};static i18nStart={name:\"\\u0275\\u0275i18nStart\",moduleName:i};static i18nEnd={name:\"\\u0275\\u0275i18nEnd\",moduleName:i};static i18nApply={name:\"\\u0275\\u0275i18nApply\",moduleName:i};static i18nPostprocess={name:\"\\u0275\\u0275i18nPostprocess\",moduleName:i};static pipe={name:\"\\u0275\\u0275pipe\",moduleName:i};static projection={name:\"\\u0275\\u0275projection\",moduleName:i};static projectionDef={name:\"\\u0275\\u0275projectionDef\",moduleName:i};static reference={name:\"\\u0275\\u0275reference\",moduleName:i};static inject={name:\"\\u0275\\u0275inject\",moduleName:i};static injectAttribute={name:\"\\u0275\\u0275injectAttribute\",moduleName:i};static directiveInject={name:\"\\u0275\\u0275directiveInject\",moduleName:i};static invalidFactory={name:\"\\u0275\\u0275invalidFactory\",moduleName:i};static invalidFactoryDep={name:\"\\u0275\\u0275invalidFactoryDep\",moduleName:i};static templateRefExtractor={name:\"\\u0275\\u0275templateRefExtractor\",moduleName:i};static forwardRef={name:\"forwardRef\",moduleName:i};static resolveForwardRef={name:\"resolveForwardRef\",moduleName:i};static replaceMetadata={name:\"\\u0275\\u0275replaceMetadata\",moduleName:i};static \\u0275\\u0275defineInjectable={name:\"\\u0275\\u0275defineInjectable\",moduleName:i};static declareInjectable={name:\"\\u0275\\u0275ngDeclareInjectable\",moduleName:i};static InjectableDeclaration={name:\"\\u0275\\u0275InjectableDeclaration\",moduleName:i};static resolveWindow={name:\"\\u0275\\u0275resolveWindow\",moduleName:i};static resolveDocument={name:\"\\u0275\\u0275resolveDocument\",moduleName:i};static resolveBody={name:\"\\u0275\\u0275resolveBody\",moduleName:i};static getComponentDepsFactory={name:\"\\u0275\\u0275getComponentDepsFactory\",moduleName:i};static defineComponent={name:\"\\u0275\\u0275defineComponent\",moduleName:i};static declareComponent={name:\"\\u0275\\u0275ngDeclareComponent\",moduleName:i};static setComponentScope={name:\"\\u0275\\u0275setComponentScope\",moduleName:i};static ChangeDetectionStrategy={name:\"ChangeDetectionStrategy\",moduleName:i};static ViewEncapsulation={name:\"ViewEncapsulation\",moduleName:i};static ComponentDeclaration={name:\"\\u0275\\u0275ComponentDeclaration\",moduleName:i};static FactoryDeclaration={name:\"\\u0275\\u0275FactoryDeclaration\",moduleName:i};static declareFactory={name:\"\\u0275\\u0275ngDeclareFactory\",moduleName:i};static FactoryTarget={name:\"\\u0275\\u0275FactoryTarget\",moduleName:i};static defineDirective={name:\"\\u0275\\u0275defineDirective\",moduleName:i};static declareDirective={name:\"\\u0275\\u0275ngDeclareDirective\",moduleName:i};static DirectiveDeclaration={name:\"\\u0275\\u0275DirectiveDeclaration\",moduleName:i};static InjectorDef={name:\"\\u0275\\u0275InjectorDef\",moduleName:i};static InjectorDeclaration={name:\"\\u0275\\u0275InjectorDeclaration\",moduleName:i};static defineInjector={name:\"\\u0275\\u0275defineInjector\",moduleName:i};static declareInjector={name:\"\\u0275\\u0275ngDeclareInjector\",moduleName:i};static NgModuleDeclaration={name:\"\\u0275\\u0275NgModuleDeclaration\",moduleName:i};static ModuleWithProviders={name:\"ModuleWithProviders\",moduleName:i};static defineNgModule={name:\"\\u0275\\u0275defineNgModule\",moduleName:i};static declareNgModule={name:\"\\u0275\\u0275ngDeclareNgModule\",moduleName:i};static setNgModuleScope={name:\"\\u0275\\u0275setNgModuleScope\",moduleName:i};static registerNgModuleType={name:\"\\u0275\\u0275registerNgModuleType\",moduleName:i};static PipeDeclaration={name:\"\\u0275\\u0275PipeDeclaration\",moduleName:i};static definePipe={name:\"\\u0275\\u0275definePipe\",moduleName:i};static declarePipe={name:\"\\u0275\\u0275ngDeclarePipe\",moduleName:i};static declareClassMetadata={name:\"\\u0275\\u0275ngDeclareClassMetadata\",moduleName:i};static declareClassMetadataAsync={name:\"\\u0275\\u0275ngDeclareClassMetadataAsync\",moduleName:i};static setClassMetadata={name:\"\\u0275setClassMetadata\",moduleName:i};static setClassMetadataAsync={name:\"\\u0275setClassMetadataAsync\",moduleName:i};static setClassDebugInfo={name:\"\\u0275setClassDebugInfo\",moduleName:i};static queryRefresh={name:\"\\u0275\\u0275queryRefresh\",moduleName:i};static viewQuery={name:\"\\u0275\\u0275viewQuery\",moduleName:i};static loadQuery={name:\"\\u0275\\u0275loadQuery\",moduleName:i};static contentQuery={name:\"\\u0275\\u0275contentQuery\",moduleName:i};static viewQuerySignal={name:\"\\u0275\\u0275viewQuerySignal\",moduleName:i};static contentQuerySignal={name:\"\\u0275\\u0275contentQuerySignal\",moduleName:i};static queryAdvance={name:\"\\u0275\\u0275queryAdvance\",moduleName:i};static twoWayProperty={name:\"\\u0275\\u0275twoWayProperty\",moduleName:i};static twoWayBindingSet={name:\"\\u0275\\u0275twoWayBindingSet\",moduleName:i};static twoWayListener={name:\"\\u0275\\u0275twoWayListener\",moduleName:i};static declareLet={name:\"\\u0275\\u0275declareLet\",moduleName:i};static storeLet={name:\"\\u0275\\u0275storeLet\",moduleName:i};static readContextLet={name:\"\\u0275\\u0275readContextLet\",moduleName:i};static NgOnChangesFeature={name:\"\\u0275\\u0275NgOnChangesFeature\",moduleName:i};static InheritDefinitionFeature={name:\"\\u0275\\u0275InheritDefinitionFeature\",moduleName:i};static CopyDefinitionFeature={name:\"\\u0275\\u0275CopyDefinitionFeature\",moduleName:i};static ProvidersFeature={name:\"\\u0275\\u0275ProvidersFeature\",moduleName:i};static HostDirectivesFeature={name:\"\\u0275\\u0275HostDirectivesFeature\",moduleName:i};static InputTransformsFeatureFeature={name:\"\\u0275\\u0275InputTransformsFeature\",moduleName:i};static ExternalStylesFeature={name:\"\\u0275\\u0275ExternalStylesFeature\",moduleName:i};static listener={name:\"\\u0275\\u0275listener\",moduleName:i};static getInheritedFactory={name:\"\\u0275\\u0275getInheritedFactory\",moduleName:i};static sanitizeHtml={name:\"\\u0275\\u0275sanitizeHtml\",moduleName:i};static sanitizeStyle={name:\"\\u0275\\u0275sanitizeStyle\",moduleName:i};static sanitizeResourceUrl={name:\"\\u0275\\u0275sanitizeResourceUrl\",moduleName:i};static sanitizeScript={name:\"\\u0275\\u0275sanitizeScript\",moduleName:i};static sanitizeUrl={name:\"\\u0275\\u0275sanitizeUrl\",moduleName:i};static sanitizeUrlOrResourceUrl={name:\"\\u0275\\u0275sanitizeUrlOrResourceUrl\",moduleName:i};static trustConstantHtml={name:\"\\u0275\\u0275trustConstantHtml\",moduleName:i};static trustConstantResourceUrl={name:\"\\u0275\\u0275trustConstantResourceUrl\",moduleName:i};static validateIframeAttribute={name:\"\\u0275\\u0275validateIframeAttribute\",moduleName:i};static InputSignalBrandWriteType={name:\"\\u0275INPUT_SIGNAL_BRAND_WRITE_TYPE\",moduleName:i};static UnwrapDirectiveSignalInputs={name:\"\\u0275UnwrapDirectiveSignalInputs\",moduleName:i};static unwrapWritableSignal={name:\"\\u0275unwrapWritableSignal\",moduleName:i}};var St=class{full;major;minor;patch;constructor(e){this.full=e;let n=e.split(\".\");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(\".\")}};var on;(function(t){t[t.Class=0]=\"Class\",t[t.Function=1]=\"Function\"})(on||(on={}));var an;(function(t){t[t.Directive=0]=\"Directive\",t[t.Component=1]=\"Component\",t[t.Injectable=2]=\"Injectable\",t[t.Pipe=3]=\"Pipe\",t[t.NgModule=4]=\"NgModule\"})(an||(an={}));var ye=class{input;errLocation;ctxLocation;message;constructor(e,n,s,r){this.input=n,this.errLocation=s,this.ctxLocation=r,this.message=`Parser Error: ${e} ${s} [${n}] in ${r}`}},G=class{start;end;constructor(e,n){this.start=e,this.end=n}toAbsolute(e){return new O(e+this.start,e+this.end)}},E=class{span;sourceSpan;constructor(e,n){this.span=e,this.sourceSpan=n}toString(){return\"AST\"}},se=class extends E{nameSpan;constructor(e,n,s){super(e,n),this.nameSpan=s}},b=class extends E{visit(e,n=null){}},X=class extends E{visit(e,n=null){return e.visitImplicitReceiver(this,n)}},Et=class extends X{visit(e,n=null){var s;return(s=e.visitThisReceiver)==null?void 0:s.call(e,this,n)}},_e=class extends E{expressions;constructor(e,n,s){super(e,n),this.expressions=s}visit(e,n=null){return e.visitChain(this,n)}},Ce=class extends E{condition;trueExp;falseExp;constructor(e,n,s,r,o){super(e,n),this.condition=s,this.trueExp=r,this.falseExp=o}visit(e,n=null){return e.visitConditional(this,n)}},re=class extends se{receiver;name;constructor(e,n,s,r,o){super(e,n,s),this.receiver=r,this.name=o}visit(e,n=null){return e.visitPropertyRead(this,n)}},Te=class extends se{receiver;name;value;constructor(e,n,s,r,o,a){super(e,n,s),this.receiver=r,this.name=o,this.value=a}visit(e,n=null){return e.visitPropertyWrite(this,n)}},ie=class extends se{receiver;name;constructor(e,n,s,r,o){super(e,n,s),this.receiver=r,this.name=o}visit(e,n=null){return e.visitSafePropertyRead(this,n)}},ke=class extends E{receiver;key;constructor(e,n,s,r){super(e,n),this.receiver=s,this.key=r}visit(e,n=null){return e.visitKeyedRead(this,n)}},oe=class extends E{receiver;key;constructor(e,n,s,r){super(e,n),this.receiver=s,this.key=r}visit(e,n=null){return e.visitSafeKeyedRead(this,n)}},Ie=class extends E{receiver;key;value;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.key=r,this.value=o}visit(e,n=null){return e.visitKeyedWrite(this,n)}},be=class extends se{exp;name;args;constructor(e,n,s,r,o,a){super(e,n,a),this.exp=s,this.name=r,this.args=o}visit(e,n=null){return e.visitPipe(this,n)}},A=class extends E{value;constructor(e,n,s){super(e,n),this.value=s}visit(e,n=null){return e.visitLiteralPrimitive(this,n)}},Ae=class extends E{expressions;constructor(e,n,s){super(e,n),this.expressions=s}visit(e,n=null){return e.visitLiteralArray(this,n)}},Ne=class extends E{keys;values;constructor(e,n,s,r){super(e,n),this.keys=s,this.values=r}visit(e,n=null){return e.visitLiteralMap(this,n)}},Pe=class extends E{strings;expressions;constructor(e,n,s,r){super(e,n),this.strings=s,this.expressions=r}visit(e,n=null){return e.visitInterpolation(this,n)}},N=class extends E{operation;left;right;constructor(e,n,s,r,o){super(e,n),this.operation=s,this.left=r,this.right=o}visit(e,n=null){return e.visitBinary(this,n)}},ae=class t extends N{operator;expr;left=null;right=null;operation=null;static createMinus(e,n,s){return new t(e,n,\"-\",s,\"-\",new A(e,n,0),s)}static createPlus(e,n,s){return new t(e,n,\"+\",s,\"-\",s,new A(e,n,0))}constructor(e,n,s,r,o,a,l){super(e,n,o,a,l),this.operator=s,this.expr=r}visit(e,n=null){return e.visitUnary!==void 0?e.visitUnary(this,n):e.visitBinary(this,n)}},Le=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitPrefixNot(this,n)}},Me=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitTypeofExpresion(this,n)}},$e=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitNonNullAssert(this,n)}},Re=class extends E{receiver;args;argumentSpan;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.args=r,this.argumentSpan=o}visit(e,n=null){return e.visitCall(this,n)}},le=class extends E{receiver;args;argumentSpan;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.args=r,this.argumentSpan=o}visit(e,n=null){return e.visitSafeCall(this,n)}},O=class{start;end;constructor(e,n){this.start=e,this.end=n}},W=class extends E{ast;source;location;errors;constructor(e,n,s,r,o){super(new G(0,n===null?0:n.length),new O(r,n===null?r:r+n.length)),this.ast=e,this.source=n,this.location=s,this.errors=o}visit(e,n=null){return e.visitASTWithSource?e.visitASTWithSource(this,n):this.ast.visit(e,n)}toString(){return`${this.source} in ${this.location}`}},ce=class{sourceSpan;key;value;constructor(e,n,s){this.sourceSpan=e,this.key=n,this.value=s}},Be=class{sourceSpan;key;value;constructor(e,n,s){this.sourceSpan=e,this.key=n,this.value=s}},yt=class{visit(e,n){e.visit(this,n)}visitUnary(e,n){this.visit(e.expr,n)}visitBinary(e,n){this.visit(e.left,n),this.visit(e.right,n)}visitChain(e,n){this.visitAll(e.expressions,n)}visitConditional(e,n){this.visit(e.condition,n),this.visit(e.trueExp,n),this.visit(e.falseExp,n)}visitPipe(e,n){this.visit(e.exp,n),this.visitAll(e.args,n)}visitImplicitReceiver(e,n){}visitThisReceiver(e,n){}visitInterpolation(e,n){this.visitAll(e.expressions,n)}visitKeyedRead(e,n){this.visit(e.receiver,n),this.visit(e.key,n)}visitKeyedWrite(e,n){this.visit(e.receiver,n),this.visit(e.key,n),this.visit(e.value,n)}visitLiteralArray(e,n){this.visitAll(e.expressions,n)}visitLiteralMap(e,n){this.visitAll(e.values,n)}visitLiteralPrimitive(e,n){}visitPrefixNot(e,n){this.visit(e.expression,n)}visitTypeofExpresion(e,n){this.visit(e.expression,n)}visitNonNullAssert(e,n){this.visit(e.expression,n)}visitPropertyRead(e,n){this.visit(e.receiver,n)}visitPropertyWrite(e,n){this.visit(e.receiver,n),this.visit(e.value,n)}visitSafePropertyRead(e,n){this.visit(e.receiver,n)}visitSafeKeyedRead(e,n){this.visit(e.receiver,n),this.visit(e.key,n)}visitCall(e,n){this.visit(e.receiver,n),this.visitAll(e.args,n)}visitSafeCall(e,n){this.visit(e.receiver,n),this.visitAll(e.args,n)}visitAll(e,n){for(let s of e)this.visit(s,n)}};var ln;(function(t){t[t.DEFAULT=0]=\"DEFAULT\",t[t.LITERAL_ATTR=1]=\"LITERAL_ATTR\",t[t.ANIMATION=2]=\"ANIMATION\",t[t.TWO_WAY=3]=\"TWO_WAY\"})(ln||(ln={}));var cn;(function(t){t[t.Regular=0]=\"Regular\",t[t.Animation=1]=\"Animation\",t[t.TwoWay=2]=\"TwoWay\"})(cn||(cn={}));var H;(function(t){t[t.Property=0]=\"Property\",t[t.Attribute=1]=\"Attribute\",t[t.Class=2]=\"Class\",t[t.Style=3]=\"Style\",t[t.Animation=4]=\"Animation\",t[t.TwoWay=5]=\"TwoWay\"})(H||(H={}));var un;(function(t){t[t.RAW_TEXT=0]=\"RAW_TEXT\",t[t.ESCAPABLE_RAW_TEXT=1]=\"ESCAPABLE_RAW_TEXT\",t[t.PARSABLE_DATA=2]=\"PARSABLE_DATA\"})(un||(un={}));var Fs=[/@/,/^\\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//];function Vs(t,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${t}' to be an array, [start, end].`);if(e!=null){let n=e[0],s=e[1];Fs.forEach(r=>{if(r.test(n)||r.test(s))throw new Error(`['${n}', '${s}'] contains unusable interpolation symbol.`)})}}var _t=class t{start;end;static fromArray(e){return e?(Vs(\"interpolation\",e),new t(e[0],e[1])):Z}constructor(e,n){this.start=e,this.end=n}},Z=new _t(\"{{\",\"}}\");var ot=0;var Un=9,Hs=10,Us=11,Ws=12,qs=13,Wn=32,js=33,qn=34,zs=35,jn=36,Gs=37,pn=38,zn=39,je=40,me=41,Xs=42,Gn=43,ge=44,Xn=45,ee=46,Ct=47,te=58,ve=59,Js=60,qe=61,Ks=62,hn=63,Ys=48;var Qs=57,Jn=65,Zs=69;var Kn=90,ze=91,er=92,we=93,tr=94,Mt=95,Yn=97;var nr=101,sr=102,rr=110,ir=114,or=116,ar=117,lr=118;var Qn=122,Tt=123,fn=124,xe=125,Zn=160;var cr=96;function ur(t){return t>=Un&&t<=Wn||t==Zn}function j(t){return Ys<=t&&t<=Qs}function pr(t){return t>=Yn&&t<=Qn||t>=Jn&&t<=Kn}function dn(t){return t===zn||t===qn||t===cr}var mn;(function(t){t[t.WARNING=0]=\"WARNING\",t[t.ERROR=1]=\"ERROR\"})(mn||(mn={}));var gn;(function(t){t[t.Inline=0]=\"Inline\",t[t.SideEffect=1]=\"SideEffect\",t[t.Omit=2]=\"Omit\"})(gn||(gn={}));var vn;(function(t){t[t.Global=0]=\"Global\",t[t.Local=1]=\"Local\"})(vn||(vn={}));var wn;(function(t){t[t.Directive=0]=\"Directive\",t[t.Pipe=1]=\"Pipe\",t[t.NgModule=2]=\"NgModule\"})(wn||(wn={}));var hr=\"(:(where|is)\\\\()?\";var es=\"-shadowcsshost\",ts=\"-shadowcsscontext\",$t=\"(?:\\\\(((?:\\\\([^)(]*\\\\)|[^)(]*)+?)\\\\))?([^,{]*)\",Jr=new RegExp(es+$t,\"gim\"),Kr=new RegExp(hr+\"(\"+ts+$t+\")\",\"gim\"),Yr=new RegExp(ts+$t,\"im\"),fr=es+\"-no-combinator\",Qr=new RegExp(`${fr}(?![^(]*\\\\))`,\"g\");var ns=\"%COMMENT%\",Zr=new RegExp(ns,\"g\");var ei=new RegExp(`(\\\\s*(?:${ns}\\\\s*)*)([^;\\\\{\\\\}]+?)(\\\\s*)((?:{%BLOCK%}?\\\\s*;?)|(?:\\\\s*;))`,\"g\");var dr=\"%COMMA_IN_PLACEHOLDER%\",mr=\"%SEMI_IN_PLACEHOLDER%\",gr=\"%COLON_IN_PLACEHOLDER%\",ti=new RegExp(dr,\"g\"),ni=new RegExp(mr,\"g\"),si=new RegExp(gr,\"g\");var f;(function(t){t[t.ListEnd=0]=\"ListEnd\",t[t.Statement=1]=\"Statement\",t[t.Variable=2]=\"Variable\",t[t.ElementStart=3]=\"ElementStart\",t[t.Element=4]=\"Element\",t[t.Template=5]=\"Template\",t[t.ElementEnd=6]=\"ElementEnd\",t[t.ContainerStart=7]=\"ContainerStart\",t[t.Container=8]=\"Container\",t[t.ContainerEnd=9]=\"ContainerEnd\",t[t.DisableBindings=10]=\"DisableBindings\",t[t.Conditional=11]=\"Conditional\",t[t.EnableBindings=12]=\"EnableBindings\",t[t.Text=13]=\"Text\",t[t.Listener=14]=\"Listener\",t[t.InterpolateText=15]=\"InterpolateText\",t[t.Binding=16]=\"Binding\",t[t.Property=17]=\"Property\",t[t.StyleProp=18]=\"StyleProp\",t[t.ClassProp=19]=\"ClassProp\",t[t.StyleMap=20]=\"StyleMap\",t[t.ClassMap=21]=\"ClassMap\",t[t.Advance=22]=\"Advance\",t[t.Pipe=23]=\"Pipe\",t[t.Attribute=24]=\"Attribute\",t[t.ExtractedAttribute=25]=\"ExtractedAttribute\",t[t.Defer=26]=\"Defer\",t[t.DeferOn=27]=\"DeferOn\",t[t.DeferWhen=28]=\"DeferWhen\",t[t.I18nMessage=29]=\"I18nMessage\",t[t.HostProperty=30]=\"HostProperty\",t[t.Namespace=31]=\"Namespace\",t[t.ProjectionDef=32]=\"ProjectionDef\",t[t.Projection=33]=\"Projection\",t[t.RepeaterCreate=34]=\"RepeaterCreate\",t[t.Repeater=35]=\"Repeater\",t[t.TwoWayProperty=36]=\"TwoWayProperty\",t[t.TwoWayListener=37]=\"TwoWayListener\",t[t.DeclareLet=38]=\"DeclareLet\",t[t.StoreLet=39]=\"StoreLet\",t[t.I18nStart=40]=\"I18nStart\",t[t.I18n=41]=\"I18n\",t[t.I18nEnd=42]=\"I18nEnd\",t[t.I18nExpression=43]=\"I18nExpression\",t[t.I18nApply=44]=\"I18nApply\",t[t.IcuStart=45]=\"IcuStart\",t[t.IcuEnd=46]=\"IcuEnd\",t[t.IcuPlaceholder=47]=\"IcuPlaceholder\",t[t.I18nContext=48]=\"I18nContext\",t[t.I18nAttributes=49]=\"I18nAttributes\"})(f||(f={}));var J;(function(t){t[t.LexicalRead=0]=\"LexicalRead\",t[t.Context=1]=\"Context\",t[t.TrackContext=2]=\"TrackContext\",t[t.ReadVariable=3]=\"ReadVariable\",t[t.NextContext=4]=\"NextContext\",t[t.Reference=5]=\"Reference\",t[t.StoreLet=6]=\"StoreLet\",t[t.ContextLetReference=7]=\"ContextLetReference\",t[t.GetCurrentView=8]=\"GetCurrentView\",t[t.RestoreView=9]=\"RestoreView\",t[t.ResetView=10]=\"ResetView\",t[t.PureFunctionExpr=11]=\"PureFunctionExpr\",t[t.PureFunctionParameterExpr=12]=\"PureFunctionParameterExpr\",t[t.PipeBinding=13]=\"PipeBinding\",t[t.PipeBindingVariadic=14]=\"PipeBindingVariadic\",t[t.SafePropertyRead=15]=\"SafePropertyRead\",t[t.SafeKeyedRead=16]=\"SafeKeyedRead\",t[t.SafeInvokeFunction=17]=\"SafeInvokeFunction\",t[t.SafeTernaryExpr=18]=\"SafeTernaryExpr\",t[t.EmptyExpr=19]=\"EmptyExpr\",t[t.AssignTemporaryExpr=20]=\"AssignTemporaryExpr\",t[t.ReadTemporaryExpr=21]=\"ReadTemporaryExpr\",t[t.SlotLiteralExpr=22]=\"SlotLiteralExpr\",t[t.ConditionalCase=23]=\"ConditionalCase\",t[t.ConstCollected=24]=\"ConstCollected\",t[t.TwoWayBindingSet=25]=\"TwoWayBindingSet\"})(J||(J={}));var xn;(function(t){t[t.None=0]=\"None\",t[t.AlwaysInline=1]=\"AlwaysInline\"})(xn||(xn={}));var Sn;(function(t){t[t.Context=0]=\"Context\",t[t.Identifier=1]=\"Identifier\",t[t.SavedView=2]=\"SavedView\",t[t.Alias=3]=\"Alias\"})(Sn||(Sn={}));var En;(function(t){t[t.Normal=0]=\"Normal\",t[t.TemplateDefinitionBuilder=1]=\"TemplateDefinitionBuilder\"})(En||(En={}));var U;(function(t){t[t.Attribute=0]=\"Attribute\",t[t.ClassName=1]=\"ClassName\",t[t.StyleProperty=2]=\"StyleProperty\",t[t.Property=3]=\"Property\",t[t.Template=4]=\"Template\",t[t.I18n=5]=\"I18n\",t[t.Animation=6]=\"Animation\",t[t.TwoWayProperty=7]=\"TwoWayProperty\"})(U||(U={}));var yn;(function(t){t[t.Creation=0]=\"Creation\",t[t.Postproccessing=1]=\"Postproccessing\"})(yn||(yn={}));var _n;(function(t){t[t.I18nText=0]=\"I18nText\",t[t.I18nAttribute=1]=\"I18nAttribute\"})(_n||(_n={}));var Cn;(function(t){t[t.None=0]=\"None\",t[t.ElementTag=1]=\"ElementTag\",t[t.TemplateTag=2]=\"TemplateTag\",t[t.OpenTag=4]=\"OpenTag\",t[t.CloseTag=8]=\"CloseTag\",t[t.ExpressionIndex=16]=\"ExpressionIndex\"})(Cn||(Cn={}));var Tn;(function(t){t[t.HTML=0]=\"HTML\",t[t.SVG=1]=\"SVG\",t[t.Math=2]=\"Math\"})(Tn||(Tn={}));var kn;(function(t){t[t.Idle=0]=\"Idle\",t[t.Immediate=1]=\"Immediate\",t[t.Timer=2]=\"Timer\",t[t.Hover=3]=\"Hover\",t[t.Interaction=4]=\"Interaction\",t[t.Viewport=5]=\"Viewport\",t[t.Never=6]=\"Never\"})(kn||(kn={}));var In;(function(t){t[t.RootI18n=0]=\"RootI18n\",t[t.Icu=1]=\"Icu\",t[t.Attr=2]=\"Attr\"})(In||(In={}));var bn;(function(t){t[t.NgTemplate=0]=\"NgTemplate\",t[t.Structural=1]=\"Structural\",t[t.Block=2]=\"Block\"})(bn||(bn={}));var vr=Symbol(\"ConsumesSlot\"),ss=Symbol(\"DependsOnSlotContext\"),Oe=Symbol(\"ConsumesVars\"),Rt=Symbol(\"UsesVarOffset\"),ri={[vr]:!0,numSlotsUsed:1},ii={[ss]:!0},oi={[Oe]:!0};var Ze=class{strings;expressions;i18nPlaceholders;constructor(e,n,s){if(this.strings=e,this.expressions=n,this.i18nPlaceholders=s,s.length!==0&&s.length!==n.length)throw new Error(`Expected ${n.length} placeholders to match interpolation expression count, but got ${s.length}`)}};var K=class extends k{constructor(e=null){super(null,e)}};var An=class t extends K{target;value;sourceSpan;kind=J.StoreLet;[Oe]=!0;[ss]=!0;constructor(e,n,s){super(),this.target=e,this.value=n,this.sourceSpan=s}visitExpression(){}isEquivalent(e){return e instanceof t&&e.target===this.target&&e.value.isEquivalent(this.value)}isConstant(){return!1}transformInternalExpressions(e,n){this.value=(this.value,void 0)}clone(){return new t(this.target,this.value,this.sourceSpan)}};var Nn=class t extends K{kind=J.PureFunctionExpr;[Oe]=!0;[Rt]=!0;varOffset=null;body;args;fn=null;constructor(e,n){super(),this.body=e,this.args=n}visitExpression(e,n){var s;(s=this.body)==null||s.visitExpression(e,n);for(let r of this.args)r.visitExpression(e,n)}isEquivalent(e){return!(e instanceof t)||e.args.length!==this.args.length?!1:e.body!==null&&this.body!==null&&e.body.isEquivalent(this.body)&&e.args.every((n,s)=>n.isEquivalent(this.args[s]))}isConstant(){return!1}transformInternalExpressions(e,n){this.body!==null?this.body=(this.body,n|bt.InChildOperation,void 0):this.fn!==null&&(this.fn=(this.fn,void 0));for(let s=0;sr.clone()));return e.fn=((s=this.fn)==null?void 0:s.clone())??null,e.varOffset=this.varOffset,e}};var kt=class t extends K{target;targetSlot;name;args;kind=J.PipeBinding;[Oe]=!0;[Rt]=!0;varOffset=null;constructor(e,n,s,r){super(),this.target=e,this.targetSlot=n,this.name=s,this.args=r}visitExpression(e,n){for(let s of this.args)s.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){for(let s=0;sn.clone()));return e.varOffset=this.varOffset,e}},Pn=class t extends K{target;targetSlot;name;args;numArgs;kind=J.PipeBindingVariadic;[Oe]=!0;[Rt]=!0;varOffset=null;constructor(e,n,s,r,o){super(),this.target=e,this.targetSlot=n,this.name=s,this.args=r,this.numArgs=o}visitExpression(e,n){this.args.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){this.args=(this.args,void 0)}clone(){let e=new t(this.target,this.targetSlot,this.name,this.args.clone(),this.numArgs);return e.varOffset=this.varOffset,e}};var It=class t extends K{receiver;args;kind=J.SafeInvokeFunction;constructor(e,n){super(),this.receiver=e,this.args=n}visitExpression(e,n){this.receiver.visitExpression(e,n);for(let s of this.args)s.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){this.receiver=(this.receiver,void 0);for(let s=0;se.clone()))}};var bt;(function(t){t[t.None=0]=\"None\",t[t.InChildOperation=1]=\"InChildOperation\"})(bt||(bt={}));var ai=new Set([f.Element,f.ElementStart,f.Container,f.ContainerStart,f.Template,f.RepeaterCreate]);var Ln;(function(t){t[t.Tmpl=0]=\"Tmpl\",t[t.Host=1]=\"Host\",t[t.Both=2]=\"Both\"})(Ln||(Ln={}));var li=Object.freeze([]);var ci=new Map([[f.ElementEnd,[f.ElementStart,f.Element]],[f.ContainerEnd,[f.ContainerStart,f.Container]],[f.I18nEnd,[f.I18nStart,f.I18n]]]),ui=new Set([f.Pipe]);var pi=[Xe,Ke,Ye,It,kt].map(t=>t.constructor.name);var wr={},xr=\"\\uE500\";wr.ngsp=xr;var Mn;(function(t){t.HEX=\"hexadecimal\",t.DEC=\"decimal\"})(Mn||(Mn={}));var rs=` \\f\n\\r\t\\v\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF`,hi=new RegExp(`[^${rs}]`),fi=new RegExp(`[${rs}]{2,}`,\"g\");var d;(function(t){t[t.Character=0]=\"Character\",t[t.Identifier=1]=\"Identifier\",t[t.PrivateIdentifier=2]=\"PrivateIdentifier\",t[t.Keyword=3]=\"Keyword\",t[t.String=4]=\"String\",t[t.Operator=5]=\"Operator\",t[t.Number=6]=\"Number\",t[t.Error=7]=\"Error\"})(d||(d={}));var Sr=[\"var\",\"let\",\"as\",\"null\",\"undefined\",\"true\",\"false\",\"if\",\"else\",\"this\",\"typeof\"],De=class{tokenize(e){let n=new At(e),s=[],r=n.scanToken();for(;r!=null;)s.push(r),r=n.scanToken();return s}},M=class{index;end;type;numValue;strValue;constructor(e,n,s,r,o){this.index=e,this.end=n,this.type=s,this.numValue=r,this.strValue=o}isCharacter(e){return this.type==d.Character&&this.numValue==e}isNumber(){return this.type==d.Number}isString(){return this.type==d.String}isOperator(e){return this.type==d.Operator&&this.strValue==e}isIdentifier(){return this.type==d.Identifier}isPrivateIdentifier(){return this.type==d.PrivateIdentifier}isKeyword(){return this.type==d.Keyword}isKeywordLet(){return this.type==d.Keyword&&this.strValue==\"let\"}isKeywordAs(){return this.type==d.Keyword&&this.strValue==\"as\"}isKeywordNull(){return this.type==d.Keyword&&this.strValue==\"null\"}isKeywordUndefined(){return this.type==d.Keyword&&this.strValue==\"undefined\"}isKeywordTrue(){return this.type==d.Keyword&&this.strValue==\"true\"}isKeywordFalse(){return this.type==d.Keyword&&this.strValue==\"false\"}isKeywordThis(){return this.type==d.Keyword&&this.strValue==\"this\"}isKeywordTypeof(){return this.type===d.Keyword&&this.strValue===\"typeof\"}isError(){return this.type==d.Error}toNumber(){return this.type==d.Number?this.numValue:-1}toString(){switch(this.type){case d.Character:case d.Identifier:case d.Keyword:case d.Operator:case d.PrivateIdentifier:case d.String:case d.Error:return this.strValue;case d.Number:return this.numValue.toString();default:return null}}};function $n(t,e,n){return new M(t,e,d.Character,n,String.fromCharCode(n))}function Er(t,e,n){return new M(t,e,d.Identifier,0,n)}function yr(t,e,n){return new M(t,e,d.PrivateIdentifier,0,n)}function _r(t,e,n){return new M(t,e,d.Keyword,0,n)}function at(t,e,n){return new M(t,e,d.Operator,0,n)}function Cr(t,e,n){return new M(t,e,d.String,0,n)}function Tr(t,e,n){return new M(t,e,d.Number,n,\"\")}function kr(t,e,n){return new M(t,e,d.Error,0,n)}var lt=new M(-1,-1,d.Character,0,\"\"),At=class{input;length;peek=0;index=-1;constructor(e){this.input=e,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?ot:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,n=this.length,s=this.peek,r=this.index;for(;s<=Wn;)if(++r>=n){s=ot;break}else s=e.charCodeAt(r);if(this.peek=s,this.index=r,r>=n)return null;if(Rn(s))return this.scanIdentifier();if(j(s))return this.scanNumber(r);let o=r;switch(s){case ee:return this.advance(),j(this.peek)?this.scanNumber(o):$n(o,this.index,ee);case je:case me:case Tt:case xe:case ze:case we:case ge:case te:case ve:return this.scanCharacter(o,s);case zn:case qn:return this.scanString();case zs:return this.scanPrivateIdentifier();case Gn:case Xn:case Xs:case Ct:case Gs:case tr:return this.scanOperator(o,String.fromCharCode(s));case hn:return this.scanQuestion(o);case Js:case Ks:return this.scanComplexOperator(o,String.fromCharCode(s),qe,\"=\");case js:case qe:return this.scanComplexOperator(o,String.fromCharCode(s),qe,\"=\",qe,\"=\");case pn:return this.scanComplexOperator(o,\"&\",pn,\"&\");case fn:return this.scanComplexOperator(o,\"|\",fn,\"|\");case Zn:for(;ur(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(e,n){return this.advance(),$n(e,this.index,n)}scanOperator(e,n){return this.advance(),at(e,this.index,n)}scanComplexOperator(e,n,s,r,o,a){this.advance();let l=n;return this.peek==s&&(this.advance(),l+=r),o!=null&&this.peek==o&&(this.advance(),l+=a),at(e,this.index,l)}scanIdentifier(){let e=this.index;for(this.advance();Bn(this.peek);)this.advance();let n=this.input.substring(e,this.index);return Sr.indexOf(n)>-1?_r(e,this.index,n):Er(e,this.index,n)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!Rn(this.peek))return this.error(\"Invalid character [#]\",-1);for(;Bn(this.peek);)this.advance();let n=this.input.substring(e,this.index);return yr(e,this.index,n)}scanNumber(e){let n=this.index===e,s=!1;for(this.advance();;){if(!j(this.peek))if(this.peek===Mt){if(!j(this.input.charCodeAt(this.index-1))||!j(this.input.charCodeAt(this.index+1)))return this.error(\"Invalid numeric separator\",0);s=!0}else if(this.peek===ee)n=!1;else if(Ir(this.peek)){if(this.advance(),br(this.peek)&&this.advance(),!j(this.peek))return this.error(\"Invalid exponent\",-1);n=!1}else break;this.advance()}let r=this.input.substring(e,this.index);s&&(r=r.replace(/_/g,\"\"));let o=n?Nr(r):parseFloat(r);return Tr(e,this.index,o)}scanString(){let e=this.index,n=this.peek;this.advance();let s=\"\",r=this.index,o=this.input;for(;this.peek!=n;)if(this.peek==er){s+=o.substring(r,this.index);let l;if(this.advance(),this.peek==ar){let u=o.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(u))l=parseInt(u,16);else return this.error(`Invalid unicode escape [\\\\u${u}]`,0);for(let h=0;h<5;h++)this.advance()}else l=Ar(this.peek),this.advance();s+=String.fromCharCode(l),r=this.index}else{if(this.peek==ot)return this.error(\"Unterminated quote\",0);this.advance()}let a=o.substring(r,this.index);return this.advance(),Cr(e,this.index,s+a)}scanQuestion(e){this.advance();let n=\"?\";return(this.peek===hn||this.peek===ee)&&(n+=this.peek===ee?\".\":\"?\",this.advance()),at(e,this.index,n)}error(e,n){let s=this.index+n;return kr(s,this.index,`Lexer Error: ${e} at column ${s} in expression [${this.input}]`)}};function Rn(t){return Yn<=t&&t<=Qn||Jn<=t&&t<=Kn||t==Mt||t==jn}function Bn(t){return pr(t)||j(t)||t==Mt||t==jn}function Ir(t){return t==nr||t==Zs}function br(t){return t==Xn||t==Gn}function Ar(t){switch(t){case rr:return Hs;case sr:return Ws;case ir:return qs;case or:return Un;case lr:return Us;default:return t}}function Nr(t){let e=parseInt(t);if(isNaN(e))throw new Error(\"Invalid integer literal when parsing \"+t);return e}var Nt=class{strings;expressions;offsets;constructor(e,n,s){this.strings=e,this.expressions=n,this.offsets=s}},Pt=class{templateBindings;warnings;errors;constructor(e,n,s){this.templateBindings=e,this.warnings=n,this.errors=s}},ue=class{_lexer;errors=[];constructor(e){this._lexer=e}parseAction(e,n,s,r=Z){this._checkNoInterpolation(e,n,r);let o=this._stripComments(e),a=this._lexer.tokenize(o),l=new z(e,n,s,a,1,this.errors,0).parseChain();return new W(l,e,n,s,this.errors)}parseBinding(e,n,s,r=Z){let o=this._parseBindingAst(e,n,s,r);return new W(o,e,n,s,this.errors)}checkSimpleExpression(e){let n=new Lt;return e.visit(n),n.errors}parseSimpleBinding(e,n,s,r=Z){let o=this._parseBindingAst(e,n,s,r),a=this.checkSimpleExpression(o);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(\" \")}`,e,n),new W(o,e,n,s,this.errors)}_reportError(e,n,s,r){this.errors.push(new ye(e,n,s,r))}_parseBindingAst(e,n,s,r){this._checkNoInterpolation(e,n,r);let o=this._stripComments(e),a=this._lexer.tokenize(o);return new z(e,n,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(e,n,s,r,o){let a=this._lexer.tokenize(n);return new z(n,s,o,a,0,this.errors,0).parseTemplateBindings({source:e,span:new O(r,r+e.length)})}parseInterpolation(e,n,s,r,o=Z){let{strings:a,expressions:l,offsets:u}=this.splitInterpolation(e,n,r,o);if(l.length===0)return null;let h=[];for(let g=0;gg.text),h,e,n,s)}parseInterpolationExpression(e,n,s){let r=this._stripComments(e),o=this._lexer.tokenize(r),a=new z(e,n,s,o,0,this.errors,0).parseChain(),l=[\"\",\"\"];return this.createInterpolationAst(l,[a],e,n,s)}createInterpolationAst(e,n,s,r,o){let a=new G(0,s.length),l=new Pe(a,a.toAbsolute(o),e,n);return new W(l,s,r,o,this.errors)}splitInterpolation(e,n,s,r=Z){let o=[],a=[],l=[],u=s?Pr(s):null,h=0,g=!1,S=!1,{start:w,end:y}=r;for(;h-1)break;o>-1&&a>-1&&this._reportError(`Got interpolation (${s}${r}) where expression was expected`,e,`at column ${o} in`,n)}_getInterpolationEndIndex(e,n,s){for(let r of this._forEachUnquotedChar(e,s)){if(e.startsWith(n,r))return r;if(e.startsWith(\"//\",r))return e.indexOf(n,r)}return-1}*_forEachUnquotedChar(e,n){let s=null,r=0;for(let o=n;o=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,n){let s=this.currentEndIndex;if(n!==void 0&&n>this.currentEndIndex&&(s=n),e>s){let r=s;s=e,e=r}return new G(e,s)}sourceSpan(e,n){let s=`${e}@${this.inputIndex}:${n}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(e,n).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(e,n){this.context|=e;let s=n();return this.context^=e,s}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(`Missing expected ${String.fromCharCode(e)}`)}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(`Missing expected operator ${e}`)}prettyPrintToken(e){return e===lt?\"end of input\":`token ${e}`}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,\"expected identifier or keyword\"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,\"expected identifier, keyword or string\"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`),\"\"):(this.advance(),e.toString())}parseChain(){let e=[],n=this.inputIndex;for(;this.index\":case\"<=\":case\">=\":this.advance();let r=this.parseAdditive();n=new N(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseAdditive(){let e=this.inputIndex,n=this.parseMultiplicative();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case\"+\":case\"-\":this.advance();let r=this.parseMultiplicative();n=new N(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseMultiplicative(){let e=this.inputIndex,n=this.parsePrefix();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case\"*\":case\"%\":case\"/\":this.advance();let r=this.parsePrefix();n=new N(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parsePrefix(){if(this.next.type==d.Operator){let e=this.inputIndex,n=this.next.strValue,s;switch(n){case\"+\":return this.advance(),s=this.parsePrefix(),ae.createPlus(this.span(e),this.sourceSpan(e),s);case\"-\":return this.advance(),s=this.parsePrefix(),ae.createMinus(this.span(e),this.sourceSpan(e),s);case\"!\":return this.advance(),s=this.parsePrefix(),new Le(this.span(e),this.sourceSpan(e),s)}}else if(this.next.isKeywordTypeof()){this.advance();let e=this.inputIndex,n=this.parsePrefix();return new Me(this.span(e),this.sourceSpan(e),n)}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,n=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(ee))n=this.parseAccessMember(n,e,!1);else if(this.consumeOptionalOperator(\"?.\"))this.consumeOptionalCharacter(je)?n=this.parseCall(n,e,!0):n=this.consumeOptionalCharacter(ze)?this.parseKeyedReadOrWrite(n,e,!0):this.parseAccessMember(n,e,!0);else if(this.consumeOptionalCharacter(ze))n=this.parseKeyedReadOrWrite(n,e,!1);else if(this.consumeOptionalCharacter(je))n=this.parseCall(n,e,!1);else if(this.consumeOptionalOperator(\"!\"))n=new $e(this.span(e),this.sourceSpan(e),n);else return n}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(je)){this.rparensExpected++;let n=this.parsePipe();return this.rparensExpected--,this.expectCharacter(me),n}else{if(this.next.isKeywordNull())return this.advance(),new A(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new A(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new A(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new A(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Et(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(ze)){this.rbracketsExpected++;let n=this.parseExpressionList(we);return this.rbracketsExpected--,this.expectCharacter(we),new Ae(this.span(e),this.sourceSpan(e),n)}else{if(this.next.isCharacter(Tt))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new X(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let n=this.next.toNumber();return this.advance(),new A(this.span(e),this.sourceSpan(e),n)}else if(this.next.isString()){let n=this.next.toString();return this.advance(),new A(this.span(e),this.sourceSpan(e),n)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new b(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new b(this.span(e),this.sourceSpan(e))):(this.error(`Unexpected token ${this.next}`),new b(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let n=[];do if(!this.next.isCharacter(e))n.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ge));return n}parseLiteralMap(){let e=[],n=[],s=this.inputIndex;if(this.expectCharacter(Tt),!this.consumeOptionalCharacter(xe)){this.rbracesExpected++;do{let r=this.inputIndex,o=this.next.isString(),a=this.expectIdentifierOrKeywordOrString(),l={key:a,quoted:o};if(e.push(l),o)this.expectCharacter(te),n.push(this.parsePipe());else if(this.consumeOptionalCharacter(te))n.push(this.parsePipe());else{l.isShorthandInitialized=!0;let u=this.span(r),h=this.sourceSpan(r);n.push(new re(u,h,h,new X(u,h),a))}}while(this.consumeOptionalCharacter(ge)&&!this.next.isCharacter(xe));this.rbracesExpected--,this.expectCharacter(xe)}return new Ne(this.span(s),this.sourceSpan(s),e,n)}parseAccessMember(e,n,s){let r=this.inputIndex,o=this.withContext(ne.Writable,()=>{let u=this.expectIdentifierOrKeyword()??\"\";return u.length===0&&this.error(\"Expected identifier for property access\",e.span.end),u}),a=this.sourceSpan(r),l;if(s)this.consumeOptionalOperator(\"=\")?(this.error(\"The '?.' operator cannot be used in the assignment\"),l=new b(this.span(n),this.sourceSpan(n))):l=new ie(this.span(n),this.sourceSpan(n),a,e,o);else if(this.consumeOptionalOperator(\"=\")){if(!(this.parseFlags&1))return this.error(\"Bindings cannot contain assignments\"),new b(this.span(n),this.sourceSpan(n));let u=this.parseConditional();l=new Te(this.span(n),this.sourceSpan(n),a,e,o,u)}else l=new re(this.span(n),this.sourceSpan(n),a,e,o);return l}parseCall(e,n,s){let r=this.inputIndex;this.rparensExpected++;let o=this.parseCallArguments(),a=this.span(r,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(me),this.rparensExpected--;let l=this.span(n),u=this.sourceSpan(n);return s?new le(l,u,e,o,a):new Re(l,u,e,o,a)}parseCallArguments(){if(this.next.isCharacter(me))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ge));return e}expectTemplateBindingKey(){let e=\"\",n=!1,s=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),n=this.consumeOptionalOperator(\"-\"),n&&(e+=\"-\");while(n);return{source:e,span:new O(s,s+e.length)}}parseTemplateBindings(e){let n=[];for(n.push(...this.parseDirectiveKeywordBindings(e));this.index{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof b&&this.error(\"Key access cannot be empty\"),this.rbracketsExpected--,this.expectCharacter(we),this.consumeOptionalOperator(\"=\"))if(s)this.error(\"The '?.' operator cannot be used in the assignment\");else{let o=this.parseConditional();return new Ie(this.span(n),this.sourceSpan(n),e,r,o)}else return s?new oe(this.span(n),this.sourceSpan(n),e,r):new ke(this.span(n),this.sourceSpan(n),e,r);return new b(this.span(n),this.sourceSpan(n))})}parseDirectiveKeywordBindings(e){let n=[];this.consumeOptionalCharacter(te);let s=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,o=this.parseAsBinding(e);o||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new O(e.span.start,r);return n.push(new Be(a,e,s)),o&&n.push(o),n}getDirectiveBoundTarget(){if(this.next===lt||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:n,end:s}=e.span,r=this.input.substring(n,s);return new W(e,r,this.location,this.absoluteOffset+n,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let n=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new O(e.span.start,this.currentAbsoluteOffset);return new ce(s,n,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let n=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator(\"=\")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new O(e,this.currentAbsoluteOffset);return new ce(r,n,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(ve)||this.consumeOptionalCharacter(ge)}error(e,n=null){this.errors.push(new ye(e,this.input,this.locationText(n),this.location)),this.skip()}locationText(e=null){return e==null&&(e=this.index),el+u.length,0);s+=a,n+=a}e.set(s,n),r++}return e}var Lr=new Map(Object.entries({class:\"className\",for:\"htmlFor\",formaction:\"formAction\",innerHtml:\"innerHTML\",readonly:\"readOnly\",tabindex:\"tabIndex\"})),di=Array.from(Lr).reduce((t,[e,n])=>(t.set(e,n),t),new Map);var mi=new ue(new De);function D(t){return e=>e.kind===t}function Se(t,e){return n=>n.kind===t&&e===n.expression instanceof Ze}function Mr(t){return(t.kind===f.Property||t.kind===f.TwoWayProperty)&&!(t.expression instanceof Ze)}var gi=[{test:D(f.StyleMap),transform:et},{test:D(f.ClassMap),transform:et},{test:D(f.StyleProp)},{test:D(f.ClassProp)},{test:Se(f.Attribute,!0)},{test:Se(f.Property,!0)},{test:Mr},{test:Se(f.Attribute,!1)}],vi=[{test:Se(f.HostProperty,!0)},{test:Se(f.HostProperty,!1)},{test:D(f.Attribute)},{test:D(f.StyleMap),transform:et},{test:D(f.ClassMap),transform:et},{test:D(f.StyleProp)},{test:D(f.ClassProp)}],wi=new Set([f.Listener,f.TwoWayListener,f.StyleMap,f.ClassMap,f.StyleProp,f.ClassProp,f.Property,f.TwoWayProperty,f.HostProperty,f.Attribute]);function et(t){return t.slice(t.length-1)}var xi=new Map([[\"window\",P.resolveWindow],[\"document\",P.resolveDocument],[\"body\",P.resolveBody]]);var Si=new Map([[B.HTML,P.sanitizeHtml],[B.RESOURCE_URL,P.sanitizeResourceUrl],[B.SCRIPT,P.sanitizeScript],[B.STYLE,P.sanitizeStyle],[B.URL,P.sanitizeUrl]]),Ei=new Map([[B.HTML,P.trustConstantHtml],[B.RESOURCE_URL,P.trustConstantResourceUrl]]);var Dn;(function(t){t[t.None=0]=\"None\",t[t.ViewContextRead=1]=\"ViewContextRead\",t[t.ViewContextWrite=2]=\"ViewContextWrite\",t[t.SideEffectful=4]=\"SideEffectful\"})(Dn||(Dn={}));var yi=new Map([[H.Property,U.Property],[H.TwoWay,U.TwoWayProperty],[H.Attribute,U.Attribute],[H.Class,U.ClassName],[H.Style,U.StyleProperty],[H.Animation,U.Animation]]);var _i=Symbol(\"queryAdvancePlaceholder\");var On;(function(t){t[t.NG_CONTENT=0]=\"NG_CONTENT\",t[t.STYLE=1]=\"STYLE\",t[t.STYLESHEET=2]=\"STYLESHEET\",t[t.SCRIPT=3]=\"SCRIPT\",t[t.OTHER=4]=\"OTHER\"})(On||(On={}));var Fn;(function(t){t.IDLE=\"idle\",t.TIMER=\"timer\",t.INTERACTION=\"interaction\",t.IMMEDIATE=\"immediate\",t.HOVER=\"hover\",t.VIEWPORT=\"viewport\",t.NEVER=\"never\"})(Fn||(Fn={}));var is=\"%COMP%\",Ci=`_nghost-${is}`,Ti=`_ngcontent-${is}`;var ki=new St(\"19.0.1\");var Vn;(function(t){t[t.Extract=0]=\"Extract\",t[t.Merge=1]=\"Merge\"})(Vn||(Vn={}));var Hn;(function(t){t[t.Directive=0]=\"Directive\",t[t.Component=1]=\"Component\",t[t.Injectable=2]=\"Injectable\",t[t.Pipe=3]=\"Pipe\",t[t.NgModule=4]=\"NgModule\"})(Hn||(Hn={}));function os({start:t,end:e},n){let s=t,r=e;for(;r!==s&&/\\s/.test(n[r-1]);)r--;for(;s!==r&&/\\s/.test(n[s]);)s++;return{start:s,end:r}}function Rr({start:t,end:e},n){let s=t,r=e;for(;r!==n.length&&/\\s/.test(n[r]);)r++;for(;s!==0&&/\\s/.test(n[s-1]);)s--;return{start:s,end:r}}function Br(t,e){return e[t.start-1]===\"(\"&&e[t.end]===\")\"?{start:t.start-1,end:t.end+1}:t}function as(t,e,n){let s=0,r={start:t.start,end:t.end};for(;;){let o=Rr(r,e),a=Br(o,e);if(o.start===a.start&&o.end===a.end)break;r.start=a.start,r.end=a.end,s++}return{hasParens:(n?s-1:s)!==0,outerSpan:os(n?{start:r.start+1,end:r.end-1}:r,e),innerSpan:os(t,e)}}function ls(t){return typeof t==\"string\"?e=>e===t:e=>t.test(e)}function cs(t,e,n){let s=ls(e);for(let r=n;r>=0;r--){let o=t[r];if(s(o))return r}throw new Error(`Cannot find front char ${e} from index ${n} in ${JSON.stringify(t)}`)}function us(t,e,n){let s=ls(e);for(let r=n;rue.prototype._commentStart(t);function Or(t,e){let n=e?Dr(t):null;if(n===null)return{text:t,comments:[]};let s={type:\"CommentLine\",value:t.slice(n+2),...Fe({start:n,end:t.length})};return{text:t.slice(0,n),comments:[s]}}function Ve(t,e=!0){return n=>{let s=new De,r=new ue(s),{text:o,comments:a}=Or(n,e),l=t(o,r);if(l.errors.length!==0){let[{message:u}]=l.errors;throw new SyntaxError(u.replace(/^Parser Error: | at column \\d+ in [^]*$/g,\"\"))}return{result:l,comments:a,text:o}}}var hs=Ve((t,e)=>e.parseBinding(t,\"\",0)),Fr=Ve((t,e)=>e.parseSimpleBinding(t,\"\",0)),fs=Ve((t,e)=>e.parseAction(t,\"\",0)),ds=Ve((t,e)=>e.parseInterpolationExpression(t,\"\",0)),ms=Ve((t,e)=>e.parseTemplateBindings(\"\",t,\"\",0,0),!1);var Hr=(t,e,n)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[n<0?e.length+n:n]:e.at(n)},nt=Hr;var Bt=class{text;constructor(e){this.text=e}getCharacterIndex(e,n){return us(this.text,e,n)}getCharacterLastIndex(e,n){return cs(this.text,e,n)}transformSpan(e,{stripSpaces:n=!1,hasParentParens:s=!1}={}){if(!n)return Fe(e);let{outerSpan:r,innerSpan:o,hasParens:a}=as(e,this.text,s),l=Fe(o);return a&&(l.extra={parenthesized:!0,parenStart:r.start,parenEnd:r.end}),l}createNode(e,{stripSpaces:n=!0,hasParentParens:s=!1}={}){let{type:r,start:o,end:a}=e,l={...e,...this.transformSpan({start:o,end:a},{stripSpaces:n,hasParentParens:s})};switch(r){case\"NumericLiteral\":case\"StringLiteral\":{let u=this.text.slice(l.start,l.end),{value:h}=l;l.extra={...l.extra,raw:u,rawValue:h};break}case\"ObjectProperty\":{let{shorthand:u}=l;u&&(l.extra={...l.extra,shorthand:u});break}}return l}},gs=Bt;function Ot(t){var e;return!!((e=t.extra)!=null&&e.parenthesized)}function $(t){return Ot(t)?t.extra.parenStart:t.start}function R(t){return Ot(t)?t.extra.parenEnd:t.end}function vs(t){return(t.type===\"OptionalCallExpression\"||t.type===\"OptionalMemberExpression\")&&!Ot(t)}function ws(t,e){let{start:n,end:s}=t.sourceSpan;return n>=s||/^\\s+$/.test(e.slice(n,s))}var We,pe,p,v,He,x,Dt,Ue=class extends gs{constructor(n,s){super(s);V(this,p);V(this,We);V(this,pe);Q(this,We,n),Q(this,pe,s)}get node(){return c(this,p,x).call(this,L(this,We))}transformNode(n){return c(this,p,Dt).call(this,n)}};We=new WeakMap,pe=new WeakMap,p=new WeakSet,v=function(n,{stripSpaces:s=!0,hasParentParens:r=!1}={}){return this.createNode(n,{stripSpaces:s,hasParentParens:r})},He=function(n,s,{computed:r,optional:o,end:a=R(s),hasParentParens:l=!1}){if(ws(n,L(this,pe))||n.sourceSpan.start===s.start)return s;let u=c(this,p,x).call(this,n),h=vs(u);return c(this,p,v).call(this,{type:o||h?\"OptionalMemberExpression\":\"MemberExpression\",object:u,property:s,computed:r,...o?{optional:!0}:h?{optional:!1}:void 0,start:$(u),end:a},{hasParentParens:l})},x=function(n,s=!1){return c(this,p,Dt).call(this,n,s)},Dt=function(n,s=!1){if(n instanceof Pe){let{expressions:o}=n;if(o.length!==1)throw new Error(\"Unexpected 'Interpolation'\");return c(this,p,x).call(this,o[0])}if(n instanceof ae)return c(this,p,v).call(this,{type:\"UnaryExpression\",prefix:!0,argument:c(this,p,x).call(this,n.expr),operator:n.operator,...n.sourceSpan},{hasParentParens:s});if(n instanceof N){let{left:o,operation:a,right:l}=n,u=c(this,p,x).call(this,o),h=c(this,p,x).call(this,l),g=$(u),S=R(h),w={left:u,right:h,start:g,end:S};return a===\"&&\"||a===\"||\"||a===\"??\"?c(this,p,v).call(this,{...w,type:\"LogicalExpression\",operator:a},{hasParentParens:s}):c(this,p,v).call(this,{...w,type:\"BinaryExpression\",operator:a},{hasParentParens:s})}if(n instanceof be){let{exp:o,name:a,args:l}=n,u=c(this,p,x).call(this,o),h=$(u),g=R(u),S=this.getCharacterIndex(/\\S/,this.getCharacterIndex(\"|\",g)+1),w=c(this,p,v).call(this,{type:\"Identifier\",name:a,start:S,end:S+a.length}),y=l.map(T=>c(this,p,x).call(this,T));return c(this,p,v).call(this,{type:\"NGPipeExpression\",left:u,right:w,arguments:y,start:h,end:R(y.length===0?w:nt(!1,y,-1))},{hasParentParens:s})}if(n instanceof _e)return c(this,p,v).call(this,{type:\"NGChainedExpression\",expressions:n.expressions.map(o=>c(this,p,x).call(this,o)),...n.sourceSpan},{hasParentParens:s});if(n instanceof Ce){let{condition:o,trueExp:a,falseExp:l}=n,u=c(this,p,x).call(this,o),h=c(this,p,x).call(this,a),g=c(this,p,x).call(this,l);return c(this,p,v).call(this,{type:\"ConditionalExpression\",test:u,consequent:h,alternate:g,start:$(u),end:R(g)},{hasParentParens:s})}if(n instanceof b)return c(this,p,v).call(this,{type:\"NGEmptyExpression\",...n.sourceSpan},{hasParentParens:s});if(n instanceof X)return c(this,p,v).call(this,{type:\"ThisExpression\",...n.sourceSpan},{hasParentParens:s});if(n instanceof ke||n instanceof oe)return c(this,p,He).call(this,n.receiver,c(this,p,x).call(this,n.key),{computed:!0,optional:n instanceof oe,end:n.sourceSpan.end,hasParentParens:s});if(n instanceof Ae)return c(this,p,v).call(this,{type:\"ArrayExpression\",elements:n.expressions.map(o=>c(this,p,x).call(this,o)),...n.sourceSpan},{hasParentParens:s});if(n instanceof Ne){let{keys:o,values:a}=n,l=a.map(h=>c(this,p,x).call(this,h)),u=o.map(({key:h,quoted:g},S)=>{let w=l[S],y=$(w),T=R(w),F=this.getCharacterIndex(/\\S/,S===0?n.sourceSpan.start+1:this.getCharacterIndex(\",\",R(l[S-1]))+1),fe=y===F?T:this.getCharacterLastIndex(/\\S/,this.getCharacterLastIndex(\":\",y-1)-1)+1,de={start:F,end:fe},q=g?c(this,p,v).call(this,{type:\"StringLiteral\",value:h,...de}):c(this,p,v).call(this,{type:\"Identifier\",name:h,...de}),Gt=q.endc(this,p,x).call(this,w)),h=c(this,p,x).call(this,a),g=vs(h),S=o||g?\"OptionalCallExpression\":\"CallExpression\";return c(this,p,v).call(this,{type:S,callee:h,arguments:u,optional:S===\"OptionalCallExpression\"?o:void 0,start:$(h),end:n.sourceSpan.end},{hasParentParens:s})}if(n instanceof $e){let o=c(this,p,x).call(this,n.expression);return c(this,p,v).call(this,{type:\"TSNonNullExpression\",expression:o,start:$(o),end:n.sourceSpan.end},{hasParentParens:s})}let r=n instanceof Le;if(r||n instanceof Me){let o=c(this,p,x).call(this,n.expression),a=r?\"!\":\"typeof\",{start:l}=n.sourceSpan;if(!r){let u=this.text.lastIndexOf(a,l);if(u===-1)throw new Error(`Cannot find operator ${a} from index ${l} in ${JSON.stringify(this.text)}`);l=u}return c(this,p,v).call(this,{type:\"UnaryExpression\",prefix:!0,operator:a,argument:o,start:l,end:R(o)},{hasParentParens:s})}if(n instanceof re||n instanceof ie){let{receiver:o,name:a}=n,l=this.getCharacterLastIndex(/\\S/,n.sourceSpan.end-1)+1,u=c(this,p,v).call(this,{type:\"Identifier\",name:a,start:l-a.length,end:l},ws(o,L(this,pe))?{hasParentParens:s}:{});return c(this,p,He).call(this,o,u,{computed:!1,optional:n instanceof ie,hasParentParens:s})}if(n instanceof Ie){let o=c(this,p,x).call(this,n.key),a=c(this,p,x).call(this,n.value),l=c(this,p,He).call(this,n.receiver,o,{computed:!0,optional:!1,end:this.getCharacterIndex(\"]\",R(o))+1});return c(this,p,v).call(this,{type:\"AssignmentExpression\",left:l,operator:\"=\",right:a,start:$(l),end:R(a)},{hasParentParens:s})}if(n instanceof Te){let{receiver:o,name:a,value:l}=n,u=c(this,p,x).call(this,l),h=this.getCharacterLastIndex(/\\S/,this.getCharacterLastIndex(\"=\",$(u)-1)-1)+1,g=c(this,p,v).call(this,{type:\"Identifier\",name:a,start:h-a.length,end:h}),S=c(this,p,He).call(this,o,g,{computed:!1,optional:!1});return c(this,p,v).call(this,{type:\"AssignmentExpression\",left:S,operator:\"=\",right:u,start:$(S),end:R(u)},{hasParentParens:s})}throw Object.assign(new Error(\"Unexpected node\"),{node:n})};function xs(t,e){return new Ue(t,e).node}function Ss(t){return t instanceof Be}function Es(t){return t instanceof ce}var he,Y,m,ys,I,Vt,Ht,Ut,_s,Cs,Ts,ks,Ft=class extends Ue{constructor(n,s){super(void 0,s);V(this,m);V(this,he);V(this,Y);Q(this,he,n),Q(this,Y,s);for(let r of n)c(this,m,_s).call(this,r)}get expressions(){return c(this,m,Ts).call(this)}};he=new WeakMap,Y=new WeakMap,m=new WeakSet,ys=function(){return L(this,he)[0].key},I=function(n,{stripSpaces:s=!0}={}){return this.createNode(n,{stripSpaces:s})},Vt=function(n){return this.transformNode(n)},Ht=function(n){return ps(n.slice(L(this,m,ys).source.length))},Ut=function(n){let s=L(this,Y);if(s[n.start]!=='\"'&&s[n.start]!==\"'\")return;let r=s[n.start],o=!1;for(let a=n.start+1;a({...y,...this.transformSpan({start:y.start,end:T})}),S=y=>({...g(y,h.end),alias:h}),w=o.pop();if(w.type===\"NGMicrosyntaxExpression\")o.push(S(w));else if(w.type===\"NGMicrosyntaxKeyedExpression\"){let y=S(w.expression);o.push(g({...w,expression:y},y.end))}else throw new Error(`Unexpected type ${w.type}`)}else o.push(c(this,m,ks).call(this,u,l));a=u}return c(this,m,I).call(this,{type:\"NGMicrosyntax\",body:o,...o.length===0?n[0].sourceSpan:{start:o[0].start,end:nt(!1,o,-1).end}})},ks=function(n,s){if(Ss(n)){let{key:r,value:o}=n;return o?s===0?c(this,m,I).call(this,{type:\"NGMicrosyntaxExpression\",expression:c(this,m,Vt).call(this,o.ast),alias:null,...o.sourceSpan}):c(this,m,I).call(this,{type:\"NGMicrosyntaxKeyedExpression\",key:c(this,m,I).call(this,{type:\"NGMicrosyntaxKey\",name:c(this,m,Ht).call(this,r.source),...r.span}),expression:c(this,m,I).call(this,{type:\"NGMicrosyntaxExpression\",expression:c(this,m,Vt).call(this,o.ast),alias:null,...o.sourceSpan}),start:r.span.start,end:o.sourceSpan.end}):c(this,m,I).call(this,{type:\"NGMicrosyntaxKey\",name:c(this,m,Ht).call(this,r.source),...r.span})}else{let{key:r,sourceSpan:o}=n;if(/^let\\s$/.test(L(this,Y).slice(o.start,o.start+4))){let{value:l}=n;return c(this,m,I).call(this,{type:\"NGMicrosyntaxLet\",key:c(this,m,I).call(this,{type:\"NGMicrosyntaxKey\",name:r.source,...r.span}),value:l?c(this,m,I).call(this,{type:\"NGMicrosyntaxKey\",name:l.source,...l.span}):null,start:o.start,end:l?l.span.end:r.span.end})}else{let l=c(this,m,Cs).call(this,n);return c(this,m,I).call(this,{type:\"NGMicrosyntaxAs\",key:c(this,m,I).call(this,{type:\"NGMicrosyntaxKey\",name:l.source,...l.span}),alias:c(this,m,I).call(this,{type:\"NGMicrosyntaxKey\",name:r.source,...r.span}),start:l.span.start,end:r.span.end})}}};function Is(t,e){return new Ft(t,e).expressions}function st({result:{ast:t},text:e,comments:n}){return Object.assign(xs(t,e),{comments:n})}function bs({result:{templateBindings:t},text:e}){return Is(t,e)}var As=t=>st(hs(t));var Ns=t=>st(ds(t)),Wt=t=>st(fs(t)),Ps=t=>bs(ms(t));function qt(t){var s,r,o;let e=((s=t.range)==null?void 0:s[0])??t.start,n=(o=((r=t.declaration)==null?void 0:r.decorators)??t.decorators)==null?void 0:o[0];return n?Math.min(qt(n),e):e}function Ls(t){var e;return((e=t.range)==null?void 0:e[1])??t.end}function rt(t){return{astFormat:\"estree\",parse(e){let n=t(e);return{type:\"NGRoot\",node:t===Wt&&n.type!==\"NGChainedExpression\"?{...n,type:\"NGChainedExpression\",expressions:[n]}:n}},locStart:qt,locEnd:Ls}}var Ur=rt(Wt),Wr=rt(As),qr=rt(Ns),jr=rt(Ps);var Zi=zt;export{Zi as default,jt as parsers};\n", "var Bs=Object.create;var Re=Object.defineProperty;var Rs=Object.getOwnPropertyDescriptor;var Us=Object.getOwnPropertyNames;var _s=Object.getPrototypeOf,js=Object.prototype.hasOwnProperty;var $s=(a,t)=>()=>(t||a((t={exports:{}}).exports,t),t.exports),zs=(a,t)=>{for(var e in t)Re(a,e,{get:t[e],enumerable:!0})},Vs=(a,t,e,s)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let i of Us(t))!js.call(a,i)&&i!==e&&Re(a,i,{get:()=>t[i],enumerable:!(s=Rs(t,i))||s.enumerable});return a};var It=(a,t,e)=>(e=a!=null?Bs(_s(a)):{},Vs(t||!a||!a.__esModule?Re(e,\"default\",{value:a,enumerable:!0}):e,a));var gt=$s(me=>{\"use strict\";Object.defineProperty(me,\"__esModule\",{value:!0});function qs(a,t){if(a==null)return{};var e={};for(var s in a)if({}.hasOwnProperty.call(a,s)){if(t.includes(s))continue;e[s]=a[s]}return e}var O=class{constructor(t,e,s){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=e,this.index=s}},Z=class{constructor(t,e){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=e}};function v(a,t){let{line:e,column:s,index:i}=a;return new O(e,s+t,i+t)}var Nt=\"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",Ks={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: \"module\"'`,code:Nt},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: \"module\"'`,code:Nt}},kt={ArrayPattern:\"array destructuring pattern\",AssignmentExpression:\"assignment expression\",AssignmentPattern:\"assignment expression\",ArrowFunctionExpression:\"arrow function expression\",ConditionalExpression:\"conditional expression\",CatchClause:\"catch clause\",ForOfStatement:\"for-of statement\",ForInStatement:\"for-in statement\",ForStatement:\"for-loop\",FormalParameters:\"function parameter list\",Identifier:\"identifier\",ImportSpecifier:\"import specifier\",ImportDefaultSpecifier:\"import default specifier\",ImportNamespaceSpecifier:\"import namespace specifier\",ObjectPattern:\"object destructuring pattern\",ParenthesizedExpression:\"parenthesized expression\",RestElement:\"rest element\",UpdateExpression:{true:\"prefix operation\",false:\"postfix operation\"},VariableDeclarator:\"variable declaration\",YieldExpression:\"yield expression\"},Se=a=>a.type===\"UpdateExpression\"?kt.UpdateExpression[`${a.prefix}`]:kt[a.type],Hs={AccessorIsGenerator:({kind:a})=>`A ${a}ter cannot be a generator.`,ArgumentsInClass:\"'arguments' is only allowed in functions and class methods.\",AsyncFunctionInSingleStatementContext:\"Async functions can only be declared at the top level or inside a block.\",AwaitBindingIdentifier:\"Can not use 'await' as identifier inside an async function.\",AwaitBindingIdentifierInStaticBlock:\"Can not use 'await' as identifier inside a static block.\",AwaitExpressionFormalParameter:\"'await' is not allowed in async function parameters.\",AwaitUsingNotInAsyncContext:\"'await using' is only allowed within async functions and at the top levels of modules.\",AwaitNotInAsyncContext:\"'await' is only allowed within async functions and at the top levels of modules.\",AwaitNotInAsyncFunction:\"'await' is only allowed within async functions.\",BadGetterArity:\"A 'get' accessor must not have any formal parameters.\",BadSetterArity:\"A 'set' accessor must have exactly one formal parameter.\",BadSetterRestParameter:\"A 'set' accessor function argument must not be a rest parameter.\",ConstructorClassField:\"Classes may not have a field named 'constructor'.\",ConstructorClassPrivateField:\"Classes may not have a private field named '#constructor'.\",ConstructorIsAccessor:\"Class constructor may not be an accessor.\",ConstructorIsAsync:\"Constructor can't be an async function.\",ConstructorIsGenerator:\"Constructor can't be a generator.\",DeclarationMissingInitializer:({kind:a})=>`Missing initializer in ${a} declaration.`,DecoratorArgumentsOutsideParentheses:\"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",DecoratorBeforeExport:\"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",DecoratorsBeforeAfterExport:\"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",DecoratorConstructor:\"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",DecoratorExportClass:\"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.\",DecoratorSemicolon:\"Decorators must not be followed by a semicolon.\",DecoratorStaticBlock:\"Decorators can't be used with a static block.\",DeferImportRequiresNamespace:'Only `import defer * as x from \"./module\"` is valid.',DeletePrivateField:\"Deleting a private field is not allowed.\",DestructureNamedImport:\"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",DuplicateConstructor:\"Duplicate constructor in the same class.\",DuplicateDefaultExport:\"Only one default export allowed per module.\",DuplicateExport:({exportName:a})=>`\\`${a}\\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:\"Redefinition of __proto__ property.\",DuplicateRegExpFlags:\"Duplicate regular expression flag.\",DynamicImportPhaseRequiresImportExpressions:({phase:a})=>`'import.${a}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:\"Rest element must be last element.\",EscapedCharNotAnIdentifier:\"Invalid Unicode escape.\",ExportBindingIsString:({localName:a,exportName:t})=>`A string literal cannot be used as an exported binding without \\`from\\`.\n- Did you mean \\`export { '${a}' as '${t}' } from 'some-module'\\`?`,ExportDefaultFromAsIdentifier:\"'from' is not allowed as an identifier after 'export default'.\",ForInOfLoopInitializer:({type:a})=>`'${a===\"ForInStatement\"?\"for-in\":\"for-of\"}' loop variable declaration may not have an initializer.`,ForInUsing:\"For-in loop may not start with 'using' declaration.\",ForOfAsync:\"The left-hand side of a for-of loop may not be 'async'.\",ForOfLet:\"The left-hand side of a for-of loop may not start with 'let'.\",GeneratorInSingleStatementContext:\"Generators can only be declared at the top level or inside a block.\",IllegalBreakContinue:({type:a})=>`Unsyntactic ${a===\"BreakStatement\"?\"break\":\"continue\"}.`,IllegalLanguageModeDirective:\"Illegal 'use strict' directive in function with non-simple parameter list.\",IllegalReturn:\"'return' outside of function.\",ImportAttributesUseAssert:\"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.\",ImportBindingIsString:({importName:a})=>`A string literal cannot be used as an imported binding.\n- Did you mean \\`import { \"${a}\" as foo }\\`?`,ImportCallArity:\"`import()` requires exactly one or two arguments.\",ImportCallNotNewExpression:\"Cannot use new with import(...).\",ImportCallSpreadArgument:\"`...` is not allowed in `import()`.\",ImportJSONBindingNotDefault:\"A JSON module can only be imported with `default`.\",ImportReflectionHasAssertion:\"`import module x` cannot have assertions.\",ImportReflectionNotBinding:'Only `import module x from \"./module\"` is valid.',IncompatibleRegExpUVFlags:\"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\",InvalidBigIntLiteral:\"Invalid BigIntLiteral.\",InvalidCodePoint:\"Code point out of bounds.\",InvalidCoverInitializedName:\"Invalid shorthand property initializer.\",InvalidDecimal:\"Invalid decimal.\",InvalidDigit:({radix:a})=>`Expected number in radix ${a}.`,InvalidEscapeSequence:\"Bad character escape sequence.\",InvalidEscapeSequenceTemplate:\"Invalid escape sequence in template.\",InvalidEscapedReservedWord:({reservedWord:a})=>`Escape sequence in keyword ${a}.`,InvalidIdentifier:({identifierName:a})=>`Invalid identifier ${a}.`,InvalidLhs:({ancestor:a})=>`Invalid left-hand side in ${Se(a)}.`,InvalidLhsBinding:({ancestor:a})=>`Binding invalid left-hand side in ${Se(a)}.`,InvalidLhsOptionalChaining:({ancestor:a})=>`Invalid optional chaining in the left-hand side of ${Se(a)}.`,InvalidNumber:\"Invalid number.\",InvalidOrMissingExponent:\"Floating-point numbers require a valid exponent after the 'e'.\",InvalidOrUnexpectedToken:({unexpected:a})=>`Unexpected character '${a}'.`,InvalidParenthesizedAssignment:\"Invalid parenthesized assignment pattern.\",InvalidPrivateFieldResolution:({identifierName:a})=>`Private name #${a} is not defined.`,InvalidPropertyBindingPattern:\"Binding member expression.\",InvalidRecordProperty:\"Only properties and spread elements are allowed in record definitions.\",InvalidRestAssignmentPattern:\"Invalid rest operator's argument.\",LabelRedeclaration:({labelName:a})=>`Label '${a}' is already declared.`,LetInLexicalBinding:\"'let' is disallowed as a lexically bound name.\",LineTerminatorBeforeArrow:\"No line break is allowed before '=>'.\",MalformedRegExpFlags:\"Invalid regular expression flag.\",MissingClassName:\"A class name is required.\",MissingEqInAssignment:\"Only '=' operator can be used for specifying default value.\",MissingSemicolon:\"Missing semicolon.\",MissingPlugin:({missingPlugin:a})=>`This experimental syntax requires enabling the parser plugin: ${a.map(t=>JSON.stringify(t)).join(\", \")}.`,MissingOneOfPlugins:({missingPlugin:a})=>`This experimental syntax requires enabling one of the following parser plugin(s): ${a.map(t=>JSON.stringify(t)).join(\", \")}.`,MissingUnicodeEscape:\"Expecting Unicode escape sequence \\\\uXXXX.\",MixingCoalesceWithLogical:\"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",ModuleAttributeDifferentFromType:\"The only accepted module attribute is `type`.\",ModuleAttributeInvalidValue:\"Only string literals are allowed as module attribute values.\",ModuleAttributesWithDuplicateKeys:({key:a})=>`Duplicate key \"${a}\" is not allowed in module attributes.`,ModuleExportNameHasLoneSurrogate:({surrogateCharCode:a})=>`An export name cannot include a lone surrogate, found '\\\\u${a.toString(16)}'.`,ModuleExportUndefined:({localName:a})=>`Export '${a}' is not defined.`,MultipleDefaultsInSwitch:\"Multiple default clauses.\",NewlineAfterThrow:\"Illegal newline after throw.\",NoCatchOrFinally:\"Missing catch or finally clause.\",NumberIdentifier:\"Identifier directly after number.\",NumericSeparatorInEscapeSequence:\"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",ObsoleteAwaitStar:\"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",OptionalChainingNoNew:\"Constructors in/after an Optional Chain are not allowed.\",OptionalChainingNoTemplate:\"Tagged Template Literals are not allowed in optionalChain.\",OverrideOnConstructor:\"'override' modifier cannot appear on a constructor declaration.\",ParamDupe:\"Argument name clash.\",PatternHasAccessor:\"Object pattern can't contain getter or setter.\",PatternHasMethod:\"Object pattern can't contain methods.\",PrivateInExpectedIn:({identifierName:a})=>`Private names are only allowed in property accesses (\\`obj.#${a}\\`) or in \\`in\\` expressions (\\`#${a} in obj\\`).`,PrivateNameRedeclaration:({identifierName:a})=>`Duplicate private name #${a}.`,RecordExpressionBarIncorrectEndSyntaxType:\"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",RecordExpressionBarIncorrectStartSyntaxType:\"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",RecordExpressionHashIncorrectStartSyntaxType:\"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",RecordNoProto:\"'__proto__' is not allowed in Record expressions.\",RestTrailingComma:\"Unexpected trailing comma after rest element.\",SloppyFunction:\"In non-strict mode code, functions can only be declared at top level or inside a block.\",SloppyFunctionAnnexB:\"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\",SourcePhaseImportRequiresDefault:'Only `import source x from \"./module\"` is valid.',StaticPrototype:\"Classes may not have static property named prototype.\",SuperNotAllowed:\"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",SuperPrivateField:\"Private fields can't be accessed on super.\",TrailingDecorator:\"Decorators must be attached to a class element.\",TupleExpressionBarIncorrectEndSyntaxType:\"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",TupleExpressionBarIncorrectStartSyntaxType:\"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",TupleExpressionHashIncorrectStartSyntaxType:\"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",UnexpectedArgumentPlaceholder:\"Unexpected argument placeholder.\",UnexpectedAwaitAfterPipelineBody:'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:\"Unexpected digit after hash token.\",UnexpectedImportExport:\"'import' and 'export' may only appear at the top level.\",UnexpectedKeyword:({keyword:a})=>`Unexpected keyword '${a}'.`,UnexpectedLeadingDecorator:\"Leading decorators must be attached to a class declaration.\",UnexpectedLexicalDeclaration:\"Lexical declaration cannot appear in a single-statement context.\",UnexpectedNewTarget:\"`new.target` can only be used in functions or class properties.\",UnexpectedNumericSeparator:\"A numeric separator is only allowed between two digits.\",UnexpectedPrivateField:\"Unexpected private name.\",UnexpectedReservedWord:({reservedWord:a})=>`Unexpected reserved word '${a}'.`,UnexpectedSuper:\"'super' is only allowed in object methods and classes.\",UnexpectedToken:({expected:a,unexpected:t})=>`Unexpected token${t?` '${t}'.`:\"\"}${a?`, expected \"${a}\"`:\"\"}`,UnexpectedTokenUnaryExponentiation:\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",UnexpectedUsingDeclaration:\"Using declaration cannot appear in the top level when source type is `script`.\",UnsupportedBind:\"Binding should be performed on object property.\",UnsupportedDecoratorExport:\"A decorated export must export a class declaration.\",UnsupportedDefaultExport:\"Only expressions, functions or classes are allowed as the `default` export.\",UnsupportedImport:\"`import` can only be used in `import()` or `import.meta`.\",UnsupportedMetaProperty:({target:a,onlyValidPropertyName:t})=>`The only valid meta property for ${a} is ${a}.${t}.`,UnsupportedParameterDecorator:\"Decorators cannot be used to decorate parameters.\",UnsupportedPropertyDecorator:\"Decorators cannot be used to decorate object literal properties.\",UnsupportedSuper:\"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\",UnterminatedComment:\"Unterminated comment.\",UnterminatedRegExp:\"Unterminated regular expression.\",UnterminatedString:\"Unterminated string constant.\",UnterminatedTemplate:\"Unterminated template.\",UsingDeclarationExport:\"Using declaration cannot be exported.\",UsingDeclarationHasBindingPattern:\"Using declaration cannot have destructuring patterns.\",VarRedeclaration:({identifierName:a})=>`Identifier '${a}' has already been declared.`,YieldBindingIdentifier:\"Can not use 'yield' as identifier inside a generator.\",YieldInParameter:\"Yield expression is not allowed in formal parameters.\",ZeroDigitNumericSeparator:\"Numeric separator can not be used after leading 0.\"},Js={StrictDelete:\"Deleting local variable in strict mode.\",StrictEvalArguments:({referenceName:a})=>`Assigning to '${a}' in strict mode.`,StrictEvalArgumentsBinding:({bindingName:a})=>`Binding '${a}' in strict mode.`,StrictFunction:\"In strict mode code, functions can only be declared at top level or inside a block.\",StrictNumericEscape:\"The only valid numeric escape in strict mode is '\\\\0'.\",StrictOctalLiteral:\"Legacy octal literals are not allowed in strict mode.\",StrictWith:\"'with' in strict mode.\"},Ws=new Set([\"ArrowFunctionExpression\",\"AssignmentExpression\",\"ConditionalExpression\",\"YieldExpression\"]),Xs={PipeBodyIsTighter:\"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',PipeTopicUnbound:\"Topic reference is unbound; it must be inside a pipe body.\",PipeTopicUnconfiguredToken:({token:a})=>`Invalid topic token ${a}. In order to use ${a} as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"${a}\" }.`,PipeTopicUnused:\"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",PipeUnparenthesizedBody:({type:a})=>`Hack-style pipe body cannot be an unparenthesized ${Se({type:a})}; please wrap it in parentheses.`,PipelineBodyNoArrow:'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:\"Pipeline body may not be a comma-separated sequence expression.\",PipelineHeadSequenceExpression:\"Pipeline head should not be a comma-separated sequence expression.\",PipelineTopicUnused:\"Pipeline is in topic style but does not use topic reference.\",PrimaryTopicNotAllowed:\"Topic reference was used in a lexical context without topic binding.\",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.'},Gs=[\"message\"];function vt(a,t,e){Object.defineProperty(a,t,{enumerable:!1,configurable:!0,value:e})}function Ys({toMessage:a,code:t,reasonCode:e,syntaxPlugin:s}){let i=e===\"MissingPlugin\"||e===\"MissingOneOfPlugins\";{let r={AccessorCannotDeclareThisParameter:\"AccesorCannotDeclareThisParameter\",AccessorCannotHaveTypeParameters:\"AccesorCannotHaveTypeParameters\",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:\"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference\",SetAccessorCannotHaveOptionalParameter:\"SetAccesorCannotHaveOptionalParameter\",SetAccessorCannotHaveRestParameter:\"SetAccesorCannotHaveRestParameter\",SetAccessorCannotHaveReturnType:\"SetAccesorCannotHaveReturnType\"};r[e]&&(e=r[e])}return function r(n,o){let h=new SyntaxError;return h.code=t,h.reasonCode=e,h.loc=n,h.pos=n.index,h.syntaxPlugin=s,i&&(h.missingPlugin=o.missingPlugin),vt(h,\"clone\",function(c={}){var u;let{line:f,column:d,index:x}=(u=c.loc)!=null?u:n;return r(new O(f,d,x),Object.assign({},o,c.details))}),vt(h,\"details\",o),Object.defineProperty(h,\"message\",{configurable:!0,get(){let l=`${a(o)} (${n.line}:${n.column})`;return this.message=l,l},set(l){Object.defineProperty(this,\"message\",{value:l,writable:!0})}}),h}}function U(a,t){if(Array.isArray(a))return s=>U(s,a[0]);let e={};for(let s of Object.keys(a)){let i=a[s],r=typeof i==\"string\"?{message:()=>i}:typeof i==\"function\"?{message:i}:i,{message:n}=r,o=qs(r,Gs),h=typeof n==\"string\"?()=>n:n;e[s]=Ys(Object.assign({code:\"BABEL_PARSER_SYNTAX_ERROR\",reasonCode:s,toMessage:h},t?{syntaxPlugin:t}:{},o))}return e}var p=Object.assign({},U(Ks),U(Hs),U(Js),U`pipelineOperator`(Xs)),{defineProperty:Qs}=Object,Lt=(a,t)=>{a&&Qs(a,t,{enumerable:!1,value:a[t]})};function ne(a){return Lt(a.loc.start,\"index\"),Lt(a.loc.end,\"index\"),a}var Zs=a=>class extends a{parse(){let e=ne(super.parse());return this.options.tokens&&(e.tokens=e.tokens.map(ne)),e}parseRegExpLiteral({pattern:e,flags:s}){let i=null;try{i=new RegExp(e,s)}catch{}let r=this.estreeParseLiteral(i);return r.regex={pattern:e,flags:s},r}parseBigIntLiteral(e){let s;try{s=BigInt(e)}catch{s=null}let i=this.estreeParseLiteral(s);return i.bigint=String(i.value||e),i}parseDecimalLiteral(e){let i=this.estreeParseLiteral(null);return i.decimal=String(i.value||e),i}estreeParseLiteral(e){return this.parseLiteral(e,\"Literal\")}parseStringLiteral(e){return this.estreeParseLiteral(e)}parseNumericLiteral(e){return this.estreeParseLiteral(e)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(e){return this.estreeParseLiteral(e)}directiveToStmt(e){let s=e.value;delete e.value,s.type=\"Literal\",s.raw=s.extra.raw,s.value=s.extra.expressionValue;let i=e;return i.type=\"ExpressionStatement\",i.expression=s,i.directive=s.extra.rawValue,delete s.extra,i}initFunction(e,s){super.initFunction(e,s),e.expression=!1}checkDeclaration(e){e!=null&&this.isObjectProperty(e)?this.checkDeclaration(e.value):super.checkDeclaration(e)}getObjectOrClassMethodParams(e){return e.value.params}isValidDirective(e){var s;return e.type===\"ExpressionStatement\"&&e.expression.type===\"Literal\"&&typeof e.expression.value==\"string\"&&!((s=e.expression.extra)!=null&&s.parenthesized)}parseBlockBody(e,s,i,r,n){super.parseBlockBody(e,s,i,r,n);let o=e.directives.map(h=>this.directiveToStmt(h));e.body=o.concat(e.body),delete e.directives}pushClassMethod(e,s,i,r,n,o){this.parseMethod(s,i,r,n,o,\"ClassMethod\",!0),s.typeParameters&&(s.value.typeParameters=s.typeParameters,delete s.typeParameters),e.body.push(s)}parsePrivateName(){let e=super.parsePrivateName();return this.getPluginOption(\"estree\",\"classFeatures\")?this.convertPrivateNameToPrivateIdentifier(e):e}convertPrivateNameToPrivateIdentifier(e){let s=super.getPrivateNameSV(e);return e=e,delete e.id,e.name=s,e.type=\"PrivateIdentifier\",e}isPrivateName(e){return this.getPluginOption(\"estree\",\"classFeatures\")?e.type===\"PrivateIdentifier\":super.isPrivateName(e)}getPrivateNameSV(e){return this.getPluginOption(\"estree\",\"classFeatures\")?e.name:super.getPrivateNameSV(e)}parseLiteral(e,s){let i=super.parseLiteral(e,s);return i.raw=i.extra.raw,delete i.extra,i}parseFunctionBody(e,s,i=!1){super.parseFunctionBody(e,s,i),e.expression=e.body.type!==\"BlockStatement\"}parseMethod(e,s,i,r,n,o,h=!1){let l=this.startNode();return l.kind=e.kind,l=super.parseMethod(l,s,i,r,n,o,h),l.type=\"FunctionExpression\",delete l.kind,e.value=l,o===\"ClassPrivateMethod\"&&(e.computed=!1),this.finishNode(e,\"MethodDefinition\")}nameIsConstructor(e){return e.type===\"Literal\"?e.value===\"constructor\":super.nameIsConstructor(e)}parseClassProperty(...e){let s=super.parseClassProperty(...e);return this.getPluginOption(\"estree\",\"classFeatures\")&&(s.type=\"PropertyDefinition\"),s}parseClassPrivateProperty(...e){let s=super.parseClassPrivateProperty(...e);return this.getPluginOption(\"estree\",\"classFeatures\")&&(s.type=\"PropertyDefinition\",s.computed=!1),s}parseObjectMethod(e,s,i,r,n){let o=super.parseObjectMethod(e,s,i,r,n);return o&&(o.type=\"Property\",o.kind===\"method\"&&(o.kind=\"init\"),o.shorthand=!1),o}parseObjectProperty(e,s,i,r){let n=super.parseObjectProperty(e,s,i,r);return n&&(n.kind=\"init\",n.type=\"Property\"),n}isValidLVal(e,s,i){return e===\"Property\"?\"value\":super.isValidLVal(e,s,i)}isAssignable(e,s){return e!=null&&this.isObjectProperty(e)?this.isAssignable(e.value,s):super.isAssignable(e,s)}toAssignable(e,s=!1){if(e!=null&&this.isObjectProperty(e)){let{key:i,value:r}=e;this.isPrivateName(i)&&this.classScope.usePrivateName(this.getPrivateNameSV(i),i.loc.start),this.toAssignable(r,s)}else super.toAssignable(e,s)}toAssignableObjectExpressionProp(e,s,i){e.type===\"Property\"&&(e.kind===\"get\"||e.kind===\"set\")?this.raise(p.PatternHasAccessor,e.key):e.type===\"Property\"&&e.method?this.raise(p.PatternHasMethod,e.key):super.toAssignableObjectExpressionProp(e,s,i)}finishCallExpression(e,s){let i=super.finishCallExpression(e,s);if(i.callee.type===\"Import\"){var r,n;i.type=\"ImportExpression\",i.source=i.arguments[0],i.options=(r=i.arguments[1])!=null?r:null,i.attributes=(n=i.arguments[1])!=null?n:null,delete i.arguments,delete i.callee}return i}toReferencedArguments(e){e.type!==\"ImportExpression\"&&super.toReferencedArguments(e)}parseExport(e,s){let i=this.state.lastTokStartLoc,r=super.parseExport(e,s);switch(r.type){case\"ExportAllDeclaration\":r.exported=null;break;case\"ExportNamedDeclaration\":r.specifiers.length===1&&r.specifiers[0].type===\"ExportNamespaceSpecifier\"&&(r.type=\"ExportAllDeclaration\",r.exported=r.specifiers[0].exported,delete r.specifiers);case\"ExportDefaultDeclaration\":{var n;let{declaration:o}=r;(o==null?void 0:o.type)===\"ClassDeclaration\"&&((n=o.decorators)==null?void 0:n.length)>0&&o.start===r.start&&this.resetStartLocation(r,i)}break}return r}parseSubscript(e,s,i,r){let n=super.parseSubscript(e,s,i,r);if(r.optionalChainMember){if((n.type===\"OptionalMemberExpression\"||n.type===\"OptionalCallExpression\")&&(n.type=n.type.substring(8)),r.stop){let o=this.startNodeAtNode(n);return o.expression=n,this.finishNode(o,\"ChainExpression\")}}else(n.type===\"MemberExpression\"||n.type===\"CallExpression\")&&(n.optional=!1);return n}isOptionalMemberExpression(e){return e.type===\"ChainExpression\"?e.expression.type===\"MemberExpression\":super.isOptionalMemberExpression(e)}hasPropertyAsPrivateName(e){return e.type===\"ChainExpression\"&&(e=e.expression),super.hasPropertyAsPrivateName(e)}isObjectProperty(e){return e.type===\"Property\"&&e.kind===\"init\"&&!e.method}isObjectMethod(e){return e.type===\"Property\"&&(e.method||e.kind===\"get\"||e.kind===\"set\")}finishNodeAt(e,s,i){return ne(super.finishNodeAt(e,s,i))}resetStartLocation(e,s){super.resetStartLocation(e,s),ne(e)}resetEndLocation(e,s=this.state.lastTokEndLoc){super.resetEndLocation(e,s),ne(e)}},J=class{constructor(t,e){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!e}},E={brace:new J(\"{\"),j_oTag:new J(\"...\",!0)};E.template=new J(\"`\",!0);var b=!0,m=!0,Ue=!0,oe=!0,z=!0,ei=!0,Ee=class{constructor(t,e={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.rightAssociative=!!e.rightAssociative,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop!=null?e.binop:null,this.updateContext=null}},lt=new Map;function A(a,t={}){t.keyword=a;let e=P(a,t);return lt.set(a,e),e}function k(a,t){return P(a,{beforeExpr:b,binop:t})}var pe=-1,B=[],ct=[],pt=[],ut=[],ft=[],dt=[];function P(a,t={}){var e,s,i,r;return++pe,ct.push(a),pt.push((e=t.binop)!=null?e:-1),ut.push((s=t.beforeExpr)!=null?s:!1),ft.push((i=t.startsExpr)!=null?i:!1),dt.push((r=t.prefix)!=null?r:!1),B.push(new Ee(a,t)),pe}function T(a,t={}){var e,s,i,r;return++pe,lt.set(a,pe),ct.push(a),pt.push((e=t.binop)!=null?e:-1),ut.push((s=t.beforeExpr)!=null?s:!1),ft.push((i=t.startsExpr)!=null?i:!1),dt.push((r=t.prefix)!=null?r:!1),B.push(new Ee(\"name\",t)),pe}var ti={bracketL:P(\"[\",{beforeExpr:b,startsExpr:m}),bracketHashL:P(\"#[\",{beforeExpr:b,startsExpr:m}),bracketBarL:P(\"[|\",{beforeExpr:b,startsExpr:m}),bracketR:P(\"]\"),bracketBarR:P(\"|]\"),braceL:P(\"{\",{beforeExpr:b,startsExpr:m}),braceBarL:P(\"{|\",{beforeExpr:b,startsExpr:m}),braceHashL:P(\"#{\",{beforeExpr:b,startsExpr:m}),braceR:P(\"}\"),braceBarR:P(\"|}\"),parenL:P(\"(\",{beforeExpr:b,startsExpr:m}),parenR:P(\")\"),comma:P(\",\",{beforeExpr:b}),semi:P(\";\",{beforeExpr:b}),colon:P(\":\",{beforeExpr:b}),doubleColon:P(\"::\",{beforeExpr:b}),dot:P(\".\"),question:P(\"?\",{beforeExpr:b}),questionDot:P(\"?.\"),arrow:P(\"=>\",{beforeExpr:b}),template:P(\"template\"),ellipsis:P(\"...\",{beforeExpr:b}),backQuote:P(\"`\",{startsExpr:m}),dollarBraceL:P(\"${\",{beforeExpr:b,startsExpr:m}),templateTail:P(\"...`\",{startsExpr:m}),templateNonTail:P(\"...${\",{beforeExpr:b,startsExpr:m}),at:P(\"@\"),hash:P(\"#\",{startsExpr:m}),interpreterDirective:P(\"#!...\"),eq:P(\"=\",{beforeExpr:b,isAssign:oe}),assign:P(\"_=\",{beforeExpr:b,isAssign:oe}),slashAssign:P(\"_=\",{beforeExpr:b,isAssign:oe}),xorAssign:P(\"_=\",{beforeExpr:b,isAssign:oe}),moduloAssign:P(\"_=\",{beforeExpr:b,isAssign:oe}),incDec:P(\"++/--\",{prefix:z,postfix:ei,startsExpr:m}),bang:P(\"!\",{beforeExpr:b,prefix:z,startsExpr:m}),tilde:P(\"~\",{beforeExpr:b,prefix:z,startsExpr:m}),doubleCaret:P(\"^^\",{startsExpr:m}),doubleAt:P(\"@@\",{startsExpr:m}),pipeline:k(\"|>\",0),nullishCoalescing:k(\"??\",1),logicalOR:k(\"||\",1),logicalAND:k(\"&&\",2),bitwiseOR:k(\"|\",3),bitwiseXOR:k(\"^\",4),bitwiseAND:k(\"&\",5),equality:k(\"==/!=/===/!==\",6),lt:k(\"/<=/>=\",7),gt:k(\"/<=/>=\",7),relational:k(\"/<=/>=\",7),bitShift:k(\"<>/>>>\",8),bitShiftL:k(\"<>/>>>\",8),bitShiftR:k(\"<>/>>>\",8),plusMin:P(\"+/-\",{beforeExpr:b,binop:9,prefix:z,startsExpr:m}),modulo:P(\"%\",{binop:10,startsExpr:m}),star:P(\"*\",{binop:10}),slash:k(\"/\",10),exponent:P(\"**\",{beforeExpr:b,binop:11,rightAssociative:!0}),_in:A(\"in\",{beforeExpr:b,binop:7}),_instanceof:A(\"instanceof\",{beforeExpr:b,binop:7}),_break:A(\"break\"),_case:A(\"case\",{beforeExpr:b}),_catch:A(\"catch\"),_continue:A(\"continue\"),_debugger:A(\"debugger\"),_default:A(\"default\",{beforeExpr:b}),_else:A(\"else\",{beforeExpr:b}),_finally:A(\"finally\"),_function:A(\"function\",{startsExpr:m}),_if:A(\"if\"),_return:A(\"return\",{beforeExpr:b}),_switch:A(\"switch\"),_throw:A(\"throw\",{beforeExpr:b,prefix:z,startsExpr:m}),_try:A(\"try\"),_var:A(\"var\"),_const:A(\"const\"),_with:A(\"with\"),_new:A(\"new\",{beforeExpr:b,startsExpr:m}),_this:A(\"this\",{startsExpr:m}),_super:A(\"super\",{startsExpr:m}),_class:A(\"class\",{startsExpr:m}),_extends:A(\"extends\",{beforeExpr:b}),_export:A(\"export\"),_import:A(\"import\",{startsExpr:m}),_null:A(\"null\",{startsExpr:m}),_true:A(\"true\",{startsExpr:m}),_false:A(\"false\",{startsExpr:m}),_typeof:A(\"typeof\",{beforeExpr:b,prefix:z,startsExpr:m}),_void:A(\"void\",{beforeExpr:b,prefix:z,startsExpr:m}),_delete:A(\"delete\",{beforeExpr:b,prefix:z,startsExpr:m}),_do:A(\"do\",{isLoop:Ue,beforeExpr:b}),_for:A(\"for\",{isLoop:Ue}),_while:A(\"while\",{isLoop:Ue}),_as:T(\"as\",{startsExpr:m}),_assert:T(\"assert\",{startsExpr:m}),_async:T(\"async\",{startsExpr:m}),_await:T(\"await\",{startsExpr:m}),_defer:T(\"defer\",{startsExpr:m}),_from:T(\"from\",{startsExpr:m}),_get:T(\"get\",{startsExpr:m}),_let:T(\"let\",{startsExpr:m}),_meta:T(\"meta\",{startsExpr:m}),_of:T(\"of\",{startsExpr:m}),_sent:T(\"sent\",{startsExpr:m}),_set:T(\"set\",{startsExpr:m}),_source:T(\"source\",{startsExpr:m}),_static:T(\"static\",{startsExpr:m}),_using:T(\"using\",{startsExpr:m}),_yield:T(\"yield\",{startsExpr:m}),_asserts:T(\"asserts\",{startsExpr:m}),_checks:T(\"checks\",{startsExpr:m}),_exports:T(\"exports\",{startsExpr:m}),_global:T(\"global\",{startsExpr:m}),_implements:T(\"implements\",{startsExpr:m}),_intrinsic:T(\"intrinsic\",{startsExpr:m}),_infer:T(\"infer\",{startsExpr:m}),_is:T(\"is\",{startsExpr:m}),_mixins:T(\"mixins\",{startsExpr:m}),_proto:T(\"proto\",{startsExpr:m}),_require:T(\"require\",{startsExpr:m}),_satisfies:T(\"satisfies\",{startsExpr:m}),_keyof:T(\"keyof\",{startsExpr:m}),_readonly:T(\"readonly\",{startsExpr:m}),_unique:T(\"unique\",{startsExpr:m}),_abstract:T(\"abstract\",{startsExpr:m}),_declare:T(\"declare\",{startsExpr:m}),_enum:T(\"enum\",{startsExpr:m}),_module:T(\"module\",{startsExpr:m}),_namespace:T(\"namespace\",{startsExpr:m}),_interface:T(\"interface\",{startsExpr:m}),_type:T(\"type\",{startsExpr:m}),_opaque:T(\"opaque\",{startsExpr:m}),name:P(\"name\",{startsExpr:m}),placeholder:P(\"%%\",{startsExpr:!0}),string:P(\"string\",{startsExpr:m}),num:P(\"num\",{startsExpr:m}),bigint:P(\"bigint\",{startsExpr:m}),decimal:P(\"decimal\",{startsExpr:m}),regexp:P(\"regexp\",{startsExpr:m}),privateName:P(\"#name\",{startsExpr:m}),eof:P(\"eof\"),jsxName:P(\"jsxName\"),jsxText:P(\"jsxText\",{beforeExpr:!0}),jsxTagStart:P(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:P(\"jsxTagEnd\")};function C(a){return a>=93&&a<=133}function si(a){return a<=92}function D(a){return a>=58&&a<=133}function Vt(a){return a>=58&&a<=137}function ii(a){return ut[a]}function Ve(a){return ft[a]}function ri(a){return a>=29&&a<=33}function Dt(a){return a>=129&&a<=131}function ai(a){return a>=90&&a<=92}function mt(a){return a>=58&&a<=92}function ni(a){return a>=39&&a<=59}function oi(a){return a===34}function hi(a){return dt[a]}function li(a){return a>=121&&a<=123}function ci(a){return a>=124&&a<=130}function q(a){return ct[a]}function we(a){return pt[a]}function pi(a){return a===57}function Ie(a){return a>=24&&a<=25}function F(a){return B[a]}B[8].updateContext=a=>{a.pop()},B[5].updateContext=B[7].updateContext=B[23].updateContext=a=>{a.push(E.brace)},B[22].updateContext=a=>{a[a.length-1]===E.template?a.pop():a.push(E.template)},B[143].updateContext=a=>{a.push(E.j_expr,E.j_oTag)};var yt=\"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CD\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7DC\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",qt=\"\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0897-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\u30FB\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\\uFF65\",ui=new RegExp(\"[\"+yt+\"]\"),fi=new RegExp(\"[\"+yt+qt+\"]\");yt=qt=null;var Kt=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],di=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function qe(a,t){let e=65536;for(let s=0,i=t.length;sa)return!1;if(e+=t[s+1],e>=a)return!0}return!1}function R(a){return a<65?a===36:a<=90?!0:a<97?a===95:a<=122?!0:a<=65535?a>=170&&ui.test(String.fromCharCode(a)):qe(a,Kt)}function G(a){return a<48?a===36:a<58?!0:a<65?!1:a<=90?!0:a<97?a===95:a<=122?!0:a<=65535?a>=170&&fi.test(String.fromCharCode(a)):qe(a,Kt)||qe(a,di)}var xt={keyword:[\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"var\",\"const\",\"while\",\"with\",\"new\",\"this\",\"super\",\"class\",\"extends\",\"export\",\"import\",\"null\",\"true\",\"false\",\"in\",\"instanceof\",\"typeof\",\"void\",\"delete\"],strict:[\"implements\",\"interface\",\"let\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\"],strictBind:[\"eval\",\"arguments\"]},mi=new Set(xt.keyword),yi=new Set(xt.strict),xi=new Set(xt.strictBind);function Ht(a,t){return t&&a===\"await\"||a===\"enum\"}function Jt(a,t){return Ht(a,t)||yi.has(a)}function Wt(a){return xi.has(a)}function Xt(a,t){return Jt(a,t)||Wt(a)}function Pi(a){return mi.has(a)}function gi(a,t,e){return a===64&&t===64&&R(e)}var Ti=new Set([\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"var\",\"const\",\"while\",\"with\",\"new\",\"this\",\"super\",\"class\",\"extends\",\"export\",\"import\",\"null\",\"true\",\"false\",\"in\",\"instanceof\",\"typeof\",\"void\",\"delete\",\"implements\",\"interface\",\"let\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\",\"eval\",\"arguments\",\"enum\",\"await\"]);function bi(a){return Ti.has(a)}var ue=class{constructor(t){this.flags=0,this.names=new Map,this.firstLexicalName=\"\",this.flags=t}},fe=class{constructor(t,e){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=e}get inTopLevel(){return(this.currentScope().flags&1)>0}get inFunction(){return(this.currentVarScopeFlags()&2)>0}get allowSuper(){return(this.currentThisScopeFlags()&16)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&32)>0}get inClass(){return(this.currentThisScopeFlags()&64)>0}get inClassAndNotInNonArrowFunction(){let t=this.currentThisScopeFlags();return(t&64)>0&&(t&2)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&128)return!0;if(e&451)return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&2)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new ue(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){return this.scopeStack.pop().flags}treatFunctionsAsVarInScope(t){return!!(t.flags&130||!this.parser.inModule&&t.flags&1)}declareName(t,e,s){let i=this.currentScope();if(e&8||e&16){this.checkRedeclarationInScope(i,t,e,s);let r=i.names.get(t)||0;e&16?r=r|4:(i.firstLexicalName||(i.firstLexicalName=t),r=r|2),i.names.set(t,r),e&8&&this.maybeExportDefined(i,t)}else if(e&4)for(let r=this.scopeStack.length-1;r>=0&&(i=this.scopeStack[r],this.checkRedeclarationInScope(i,t,e,s),i.names.set(t,(i.names.get(t)||0)|1),this.maybeExportDefined(i,t),!(i.flags&387));--r);this.parser.inModule&&i.flags&1&&this.undefinedExports.delete(t)}maybeExportDefined(t,e){this.parser.inModule&&t.flags&1&&this.undefinedExports.delete(e)}checkRedeclarationInScope(t,e,s,i){this.isRedeclaredInScope(t,e,s)&&this.parser.raise(p.VarRedeclaration,i,{identifierName:e})}isRedeclaredInScope(t,e,s){if(!(s&1))return!1;if(s&8)return t.names.has(e);let i=t.names.get(e);return s&16?(i&2)>0||!this.treatFunctionsAsVarInScope(t)&&(i&1)>0:(i&2)>0&&!(t.flags&8&&t.firstLexicalName===e)||!this.treatFunctionsAsVarInScope(t)&&(i&4)>0}checkLocalExport(t){let{name:e}=t;this.scopeStack[0].names.has(e)||this.undefinedExports.set(e,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&387)return e}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&451&&!(e&4))return e}}},Ke=class extends ue{constructor(...t){super(...t),this.declareFunctions=new Set}},He=class extends fe{createScope(t){return new Ke(t)}declareName(t,e,s){let i=this.currentScope();if(e&2048){this.checkRedeclarationInScope(i,t,e,s),this.maybeExportDefined(i,t),i.declareFunctions.add(t);return}super.declareName(t,e,s)}isRedeclaredInScope(t,e,s){if(super.isRedeclaredInScope(t,e,s))return!0;if(s&2048&&!t.declareFunctions.has(e)){let i=t.names.get(e);return(i&4)>0||(i&2)>0}return!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}},Je=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}sourceToOffsetPos(t){return t+this.startIndex}offsetToSourcePos(t){return t-this.startIndex}hasPlugin(t){if(typeof t==\"string\")return this.plugins.has(t);{let[e,s]=t;if(!this.hasPlugin(e))return!1;let i=this.plugins.get(e);for(let r of Object.keys(s))if((i==null?void 0:i[r])!==s[r])return!1;return!0}}getPluginOption(t,e){var s;return(s=this.plugins.get(t))==null?void 0:s[e]}};function Gt(a,t){a.trailingComments===void 0?a.trailingComments=t:a.trailingComments.unshift(...t)}function Ai(a,t){a.leadingComments===void 0?a.leadingComments=t:a.leadingComments.unshift(...t)}function de(a,t){a.innerComments===void 0?a.innerComments=t:a.innerComments.unshift(...t)}function he(a,t,e){let s=null,i=t.length;for(;s===null&&i>0;)s=t[--i];s===null||s.start>e.start?de(a,e.comments):Gt(s,e.comments)}var We=class extends Je{addComment(t){this.filename&&(t.loc.filename=this.filename);let{commentsLen:e}=this.state;this.comments.length!==e&&(this.comments.length=e),this.comments.push(t),this.state.commentsLen++}processComment(t){let{commentStack:e}=this.state,s=e.length;if(s===0)return;let i=s-1,r=e[i];r.start===t.end&&(r.leadingNode=t,i--);let{start:n}=t;for(;i>=0;i--){let o=e[i],h=o.end;if(h>n)o.containingNode=t,this.finalizeComment(o),e.splice(i,1);else{h===n&&(o.trailingNode=t);break}}}finalizeComment(t){let{comments:e}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&Gt(t.leadingNode,e),t.trailingNode!==null&&Ai(t.trailingNode,e);else{let{containingNode:s,start:i}=t;if(this.input.charCodeAt(this.offsetToSourcePos(i)-1)===44)switch(s.type){case\"ObjectExpression\":case\"ObjectPattern\":case\"RecordExpression\":he(s,s.properties,t);break;case\"CallExpression\":case\"OptionalCallExpression\":he(s,s.arguments,t);break;case\"FunctionDeclaration\":case\"FunctionExpression\":case\"ArrowFunctionExpression\":case\"ObjectMethod\":case\"ClassMethod\":case\"ClassPrivateMethod\":he(s,s.params,t);break;case\"ArrayExpression\":case\"ArrayPattern\":case\"TupleExpression\":he(s,s.elements,t);break;case\"ExportNamedDeclaration\":case\"ImportDeclaration\":he(s,s.specifiers,t);break;default:de(s,e)}else de(s,e)}}finalizeRemainingComments(){let{commentStack:t}=this.state;for(let e=t.length-1;e>=0;e--)this.finalizeComment(t[e]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){let{commentStack:e}=this.state,{length:s}=e;if(s===0)return;let i=e[s-1];i.leadingNode===t&&(i.leadingNode=null)}resetPreviousIdentifierLeadingComments(t){let{commentStack:e}=this.state,{length:s}=e;s!==0&&(e[s-1].trailingNode===t?e[s-1].trailingNode=null:s>=2&&e[s-2].trailingNode===t&&(e[s-2].trailingNode=null))}takeSurroundingComments(t,e,s){let{commentStack:i}=this.state,r=i.length;if(r===0)return;let n=r-1;for(;n>=0;n--){let o=i[n],h=o.end;if(o.start===s)o.leadingNode=t;else if(h===e)o.trailingNode=t;else if(h0}set strict(t){t?this.flags|=1:this.flags&=-2}init({strictMode:t,sourceType:e,startIndex:s,startLine:i,startColumn:r}){this.strict=t===!1?!1:t===!0?!0:e===\"module\",this.startIndex=s,this.curLine=i,this.lineStart=-r,this.startLoc=this.endLoc=new O(i,r,s)}get maybeInArrowParameters(){return(this.flags&2)>0}set maybeInArrowParameters(t){t?this.flags|=2:this.flags&=-3}get inType(){return(this.flags&4)>0}set inType(t){t?this.flags|=4:this.flags&=-5}get noAnonFunctionType(){return(this.flags&8)>0}set noAnonFunctionType(t){t?this.flags|=8:this.flags&=-9}get hasFlowComment(){return(this.flags&16)>0}set hasFlowComment(t){t?this.flags|=16:this.flags&=-17}get isAmbientContext(){return(this.flags&32)>0}set isAmbientContext(t){t?this.flags|=32:this.flags&=-33}get inAbstractClass(){return(this.flags&64)>0}set inAbstractClass(t){t?this.flags|=64:this.flags&=-65}get inDisallowConditionalTypesContext(){return(this.flags&128)>0}set inDisallowConditionalTypesContext(t){t?this.flags|=128:this.flags&=-129}get soloAwait(){return(this.flags&256)>0}set soloAwait(t){t?this.flags|=256:this.flags&=-257}get inFSharpPipelineDirectBody(){return(this.flags&512)>0}set inFSharpPipelineDirectBody(t){t?this.flags|=512:this.flags&=-513}get canStartJSXElement(){return(this.flags&1024)>0}set canStartJSXElement(t){t?this.flags|=1024:this.flags&=-1025}get containsEsc(){return(this.flags&2048)>0}set containsEsc(t){t?this.flags|=2048:this.flags&=-2049}get hasTopLevelAwait(){return(this.flags&4096)>0}set hasTopLevelAwait(t){t?this.flags|=4096:this.flags&=-4097}curPosition(){return new O(this.curLine,this.pos-this.lineStart,this.pos+this.startIndex)}clone(){let t=new a;return t.flags=this.flags,t.startIndex=this.startIndex,t.curLine=this.curLine,t.lineStart=this.lineStart,t.startLoc=this.startLoc,t.endLoc=this.endLoc,t.errors=this.errors.slice(),t.potentialArrowAt=this.potentialArrowAt,t.noArrowAt=this.noArrowAt.slice(),t.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),t.topicContext=this.topicContext,t.labels=this.labels.slice(),t.commentsLen=this.commentsLen,t.commentStack=this.commentStack.slice(),t.pos=this.pos,t.type=this.type,t.value=this.value,t.start=this.start,t.end=this.end,t.lastTokEndLoc=this.lastTokEndLoc,t.lastTokStartLoc=this.lastTokStartLoc,t.context=this.context.slice(),t.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,t.strictErrors=this.strictErrors,t.tokensLength=this.tokensLength,t}},Ci=function(t){return t>=48&&t<=57},Ot={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},Ae={bin:a=>a===48||a===49,oct:a=>a>=48&&a<=55,dec:a=>a>=48&&a<=57,hex:a=>a>=48&&a<=57||a>=65&&a<=70||a>=97&&a<=102};function Ft(a,t,e,s,i,r){let n=e,o=s,h=i,l=\"\",c=null,u=e,{length:f}=t;for(;;){if(e>=f){r.unterminated(n,o,h),l+=t.slice(u,e);break}let d=t.charCodeAt(e);if(Ei(a,d,t,e)){l+=t.slice(u,e);break}if(d===92){l+=t.slice(u,e);let x=Ii(t,e,s,i,a===\"template\",r);x.ch===null&&!c?c={pos:e,lineStart:s,curLine:i}:l+=x.ch,{pos:e,lineStart:s,curLine:i}=x,u=e}else d===8232||d===8233?(++e,++i,s=e):d===10||d===13?a===\"template\"?(l+=t.slice(u,e)+`\n`,++e,d===13&&t.charCodeAt(e)===10&&++e,++i,u=s=e):r.unterminated(n,o,h):++e}return{pos:e,str:l,firstInvalidLoc:c,lineStart:s,curLine:i,containsInvalid:!!c}}function Ei(a,t,e,s){return a===\"template\"?t===96||t===36&&e.charCodeAt(s+1)===123:t===(a===\"double\"?34:39)}function Ii(a,t,e,s,i,r){let n=!i;t++;let o=l=>({pos:t,ch:l,lineStart:e,curLine:s}),h=a.charCodeAt(t++);switch(h){case 110:return o(`\n`);case 114:return o(\"\\r\");case 120:{let l;return{code:l,pos:t}=Ge(a,t,e,s,2,!1,n,r),o(l===null?null:String.fromCharCode(l))}case 117:{let l;return{code:l,pos:t}=Qt(a,t,e,s,n,r),o(l===null?null:String.fromCodePoint(l))}case 116:return o(\"\t\");case 98:return o(\"\\b\");case 118:return o(\"\\v\");case 102:return o(\"\\f\");case 13:a.charCodeAt(t)===10&&++t;case 10:e=t,++s;case 8232:case 8233:return o(\"\");case 56:case 57:if(i)return o(null);r.strictNumericEscape(t-1,e,s);default:if(h>=48&&h<=55){let l=t-1,u=/^[0-7]+/.exec(a.slice(l,t+2))[0],f=parseInt(u,8);f>255&&(u=u.slice(0,-1),f=parseInt(u,8)),t+=u.length-1;let d=a.charCodeAt(t);if(u!==\"0\"||d===56||d===57){if(i)return o(null);r.strictNumericEscape(l,e,s)}return o(String.fromCharCode(f))}return o(String.fromCharCode(h))}}function Ge(a,t,e,s,i,r,n,o){let h=t,l;return{n:l,pos:t}=Yt(a,t,e,s,16,i,r,!1,o,!n),l===null&&(n?o.invalidEscapeSequence(h,e,s):t=h-1),{code:l,pos:t}}function Yt(a,t,e,s,i,r,n,o,h,l){let c=t,u=i===16?Ot.hex:Ot.decBinOct,f=i===16?Ae.hex:i===10?Ae.dec:i===8?Ae.oct:Ae.bin,d=!1,x=0;for(let S=0,N=r??1/0;S=97?I=w-97+10:w>=65?I=w-65+10:Ci(w)?I=w-48:I=1/0,I>=i){if(I<=9&&l)return{n:null,pos:t};if(I<=9&&h.invalidDigit(t,e,s,i))I=0;else if(n)I=0,d=!0;else break}++t,x=x*i+I}return t===c||r!=null&&t-c!==r||d?{n:null,pos:t}:{n:x,pos:t}}function Qt(a,t,e,s,i,r){let n=a.charCodeAt(t),o;if(n===123){if(++t,{code:o,pos:t}=Ge(a,t,e,s,a.indexOf(\"}\",t)-t,!0,i,r),++t,o!==null&&o>1114111)if(i)r.invalidCodePoint(t,e,s);else return{code:null,pos:t}}else({code:o,pos:t}=Ge(a,t,e,s,4,!1,i,r));return{code:o,pos:t}}function le(a,t,e){return new O(e,a-t,a)}var Ni=new Set([103,109,115,105,121,117,100,118]),M=class{constructor(t){let e=t.startIndex||0;this.type=t.type,this.value=t.value,this.start=e+t.start,this.end=e+t.end,this.loc=new Z(t.startLoc,t.endLoc)}},Ye=class extends We{constructor(t,e){super(),this.isLookahead=void 0,this.tokens=[],this.errorHandlers_readInt={invalidDigit:(s,i,r,n)=>this.options.errorRecovery?(this.raise(p.InvalidDigit,le(s,i,r),{radix:n}),!0):!1,numericSeparatorInEscapeSequence:this.errorBuilder(p.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:this.errorBuilder(p.UnexpectedNumericSeparator)},this.errorHandlers_readCodePoint=Object.assign({},this.errorHandlers_readInt,{invalidEscapeSequence:this.errorBuilder(p.InvalidEscapeSequence),invalidCodePoint:this.errorBuilder(p.InvalidCodePoint)}),this.errorHandlers_readStringContents_string=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:(s,i,r)=>{this.recordStrictModeErrors(p.StrictNumericEscape,le(s,i,r))},unterminated:(s,i,r)=>{throw this.raise(p.UnterminatedString,le(s-1,i,r))}}),this.errorHandlers_readStringContents_template=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:this.errorBuilder(p.StrictNumericEscape),unterminated:(s,i,r)=>{throw this.raise(p.UnterminatedTemplate,le(s,i,r))}}),this.state=new Xe,this.state.init(t),this.input=e,this.length=e.length,this.comments=[],this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new M(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){let t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let e=this.state;return this.state=t,e}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return _e.lastIndex=t,_e.test(this.input)?_e.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}nextTokenInLineStart(){return this.nextTokenInLineStartSince(this.state.pos)}nextTokenInLineStartSince(t){return je.lastIndex=t,je.test(this.input)?je.lastIndex:t}lookaheadInLineCharCode(){return this.input.charCodeAt(this.nextTokenInLineStart())}codePointAtPos(t){let e=this.input.charCodeAt(t);if((e&64512)===55296&&++tthis.raise(e,s)),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(140);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(t){let e;this.isLookahead||(e=this.state.curPosition());let s=this.state.pos,i=this.input.indexOf(t,s+2);if(i===-1)throw this.raise(p.UnterminatedComment,this.state.curPosition());for(this.state.pos=i+t.length,be.lastIndex=s+2;be.test(this.input)&&be.lastIndex<=i;)++this.state.curLine,this.state.lineStart=be.lastIndex;if(this.isLookahead)return;let r={type:\"CommentBlock\",value:this.input.slice(s+2,i),start:this.sourceToOffsetPos(s),end:this.sourceToOffsetPos(i+t.length),loc:new Z(e,this.state.curPosition())};return this.options.tokens&&this.pushToken(r),r}skipLineComment(t){let e=this.state.pos,s;this.isLookahead||(s=this.state.curPosition());let i=this.input.charCodeAt(this.state.pos+=t);if(this.state.post)){let r=this.skipLineComment(3);r!==void 0&&(this.addComment(r),this.options.attachComment&&e.push(r))}else break e}else if(s===60&&!this.inModule&&this.options.annexB){let i=this.state.pos;if(this.input.charCodeAt(i+1)===33&&this.input.charCodeAt(i+2)===45&&this.input.charCodeAt(i+3)===45){let r=this.skipLineComment(4);r!==void 0&&(this.addComment(r),this.options.attachComment&&e.push(r))}else break e}else break e}}if(e.length>0){let s=this.state.pos,i={start:this.sourceToOffsetPos(t),end:this.sourceToOffsetPos(s),comments:e,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(i)}}finishToken(t,e){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let s=this.state.type;this.state.type=t,this.state.value=e,this.isLookahead||this.updateContext(s)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let t=this.state.pos+1,e=this.codePointAtPos(t);if(e>=48&&e<=57)throw this.raise(p.UnexpectedDigitAfterHash,this.state.curPosition());if(e===123||e===91&&this.hasPlugin(\"recordAndTuple\")){if(this.expectPlugin(\"recordAndTuple\"),this.getPluginOption(\"recordAndTuple\",\"syntaxType\")===\"bar\")throw this.raise(e===123?p.RecordExpressionHashIncorrectStartSyntaxType:p.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,e===123?this.finishToken(7):this.finishToken(1)}else R(e)?(++this.state.pos,this.finishToken(139,this.readWord1(e))):e===92?(++this.state.pos,this.finishToken(139,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;let e=this.state.pos;for(this.state.pos+=1;!Y(t)&&++this.state.pos=48&&e<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin(\"recordAndTuple\")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"bar\")throw this.raise(p.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin(\"recordAndTuple\")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"bar\")throw this.raise(p.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin(\"functionBind\")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let e=this.input.charCodeAt(this.state.pos+1);if(e===120||e===88){this.readRadixNumber(16);return}if(e===111||e===79){this.readRadixNumber(8);return}if(e===98||e===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(R(t)){this.readWord(t);return}}throw this.raise(p.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(t)})}finishOp(t,e){let s=this.input.slice(this.state.pos,this.state.pos+e);this.state.pos+=e,this.finishToken(t,s)}readRegexp(){let t=this.state.startLoc,e=this.state.start+1,s,i,{pos:r}=this.state;for(;;++r){if(r>=this.length)throw this.raise(p.UnterminatedRegExp,v(t,1));let l=this.input.charCodeAt(r);if(Y(l))throw this.raise(p.UnterminatedRegExp,v(t,1));if(s)s=!1;else{if(l===91)i=!0;else if(l===93&&i)i=!1;else if(l===47&&!i)break;s=l===92}}let n=this.input.slice(e,r);++r;let o=\"\",h=()=>v(t,r+2-e);for(;r=2&&this.input.charCodeAt(e)===48;if(h){let d=this.input.slice(e,this.state.pos);if(this.recordStrictModeErrors(p.StrictOctalLiteral,s),!this.state.strict){let x=d.indexOf(\"_\");x>0&&this.raise(p.ZeroDigitNumericSeparator,v(s,x))}o=h&&!/[89]/.test(d)}let l=this.input.charCodeAt(this.state.pos);if(l===46&&!o&&(++this.state.pos,this.readInt(10),i=!0,l=this.input.charCodeAt(this.state.pos)),(l===69||l===101)&&!o&&(l=this.input.charCodeAt(++this.state.pos),(l===43||l===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(p.InvalidOrMissingExponent,s),i=!0,n=!0,l=this.input.charCodeAt(this.state.pos)),l===110&&((i||h)&&this.raise(p.InvalidBigIntLiteral,s),++this.state.pos,r=!0),l===109){this.expectPlugin(\"decimal\",this.state.curPosition()),(n||h)&&this.raise(p.InvalidDecimal,s),++this.state.pos;var c=!0}if(R(this.codePointAtPos(this.state.pos)))throw this.raise(p.NumberIdentifier,this.state.curPosition());let u=this.input.slice(e,this.state.pos).replace(/[_mn]/g,\"\");if(r){this.finishToken(136,u);return}if(c){this.finishToken(137,u);return}let f=o?parseInt(u,8):parseFloat(u);this.finishToken(135,f)}readCodePoint(t){let{code:e,pos:s}=Qt(this.input,this.state.pos,this.state.lineStart,this.state.curLine,t,this.errorHandlers_readCodePoint);return this.state.pos=s,e}readString(t){let{str:e,pos:s,curLine:i,lineStart:r}=Ft(t===34?\"double\":\"single\",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string);this.state.pos=s+1,this.state.lineStart=r,this.state.curLine=i,this.finishToken(134,e)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let t=this.input[this.state.pos],{str:e,firstInvalidLoc:s,pos:i,curLine:r,lineStart:n}=Ft(\"template\",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template);this.state.pos=i+1,this.state.lineStart=n,this.state.curLine=r,s&&(this.state.firstInvalidTemplateEscapePos=new O(s.curLine,s.pos-s.lineStart,this.sourceToOffsetPos(s.pos))),this.input.codePointAt(i)===96?this.finishToken(24,s?null:t+e+\"`\"):(this.state.pos++,this.finishToken(25,s?null:t+e+\"${\"))}recordStrictModeErrors(t,e){let s=e.index;this.state.strict&&!this.state.strictErrors.has(s)?this.raise(t,e):this.state.strictErrors.set(s,[t,e])}readWord1(t){this.state.containsEsc=!1;let e=\"\",s=this.state.pos,i=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos=0;o--){let h=n[o];if(h.loc.index===r)return n[o]=t(i,s);if(h.loc.indexthis.hasPlugin(e)))throw this.raise(p.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:t})}errorBuilder(t){return(e,s,i)=>{this.raise(t,le(e,s,i))}}},Qe=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},Ze=class{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new Qe)}exit(){let t=this.stack.pop(),e=this.current();for(let[s,i]of Array.from(t.undefinedPrivateNames))e?e.undefinedPrivateNames.has(s)||e.undefinedPrivateNames.set(s,i):this.parser.raise(p.InvalidPrivateFieldResolution,i,{identifierName:s})}declarePrivateName(t,e,s){let{privateNames:i,loneAccessors:r,undefinedPrivateNames:n}=this.current(),o=i.has(t);if(e&3){let h=o&&r.get(t);if(h){let l=h&4,c=e&4,u=h&3,f=e&3;o=u===f||l!==c,o||r.delete(t)}else o||r.set(t,e)}o&&this.parser.raise(p.PrivateNameRedeclaration,s,{identifierName:t}),i.add(t),n.delete(t)}usePrivateName(t,e){let s;for(s of this.stack)if(s.privateNames.has(t))return;s?s.undefinedPrivateNames.set(t,e):this.parser.raise(p.InvalidPrivateFieldResolution,e,{identifierName:t})}},ee=class{constructor(t=0){this.type=t}canBeArrowParameterDeclaration(){return this.type===2||this.type===1}isCertainlyParameterDeclaration(){return this.type===3}},Ne=class extends ee{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,e){let s=e.index;this.declarationErrors.set(s,[t,e])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}},et=class{constructor(t){this.parser=void 0,this.stack=[new ee],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,e){let s=e.loc.start,{stack:i}=this,r=i.length-1,n=i[r];for(;!n.isCertainlyParameterDeclaration();){if(n.canBeArrowParameterDeclaration())n.recordDeclarationError(t,s);else return;n=i[--r]}this.parser.raise(t,s)}recordArrowParameterBindingError(t,e){let{stack:s}=this,i=s[s.length-1],r=e.loc.start;if(i.isCertainlyParameterDeclaration())this.parser.raise(t,r);else if(i.canBeArrowParameterDeclaration())i.recordDeclarationError(t,r);else return}recordAsyncArrowParametersError(t){let{stack:e}=this,s=e.length-1,i=e[s];for(;i.canBeArrowParameterDeclaration();)i.type===2&&i.recordDeclarationError(p.AwaitBindingIdentifier,t),i=e[--s]}validateAsPattern(){let{stack:t}=this,e=t[t.length-1];e.canBeArrowParameterDeclaration()&&e.iterateErrors(([s,i])=>{this.parser.raise(s,i);let r=t.length-2,n=t[r];for(;n.canBeArrowParameterDeclaration();)n.clearDeclarationError(i.index),n=t[--r]})}};function ki(){return new ee(3)}function vi(){return new Ne(1)}function Li(){return new Ne(2)}function Zt(){return new ee}var tt=class{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&2)>0}get hasYield(){return(this.currentFlags()&1)>0}get hasReturn(){return(this.currentFlags()&4)>0}get hasIn(){return(this.currentFlags()&8)>0}};function Ce(a,t){return(a?2:0)|(t?1:0)}var st=class extends Ye{addExtra(t,e,s,i=!0){if(!t)return;let{extra:r}=t;r==null&&(r={},t.extra=r),i?r[e]=s:Object.defineProperty(r,e,{enumerable:i,value:s})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,e){let s=t+e.length;if(this.input.slice(t,s)===e){let i=this.input.charCodeAt(s);return!(G(i)||(i&64512)===55296)}return!1}isLookaheadContextual(t){let e=this.nextTokenStart();return this.isUnparsedContextual(e,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,e){if(!this.eatContextual(t)){if(e!=null)throw this.raise(e,this.state.startLoc);this.unexpected(null,t)}}canInsertSemicolon(){return this.match(140)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return Mt(this.input,this.offsetToSourcePos(this.state.lastTokEndLoc.index),this.state.start)}hasFollowingLineBreak(){return Mt(this.input,this.state.end,this.nextTokenStart())}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(t=!0){(t?this.isLineTerminator():this.eat(13))||this.raise(p.MissingSemicolon,this.state.lastTokEndLoc)}expect(t,e){this.eat(t)||this.unexpected(e,t)}tryParse(t,e=this.state.clone()){let s={node:null};try{let i=t((r=null)=>{throw s.node=r,s});if(this.state.errors.length>e.errors.length){let r=this.state;return this.state=e,this.state.tokensLength=r.tokensLength,{node:i,error:r.errors[e.errors.length],thrown:!1,aborted:!1,failState:r}}return{node:i,error:null,thrown:!1,aborted:!1,failState:null}}catch(i){let r=this.state;if(this.state=e,i instanceof SyntaxError)return{node:null,error:i,thrown:!0,aborted:!1,failState:r};if(i===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:r};throw i}}checkExpressionErrors(t,e){if(!t)return!1;let{shorthandAssignLoc:s,doubleProtoLoc:i,privateKeyLoc:r,optionalParametersLoc:n}=t,o=!!s||!!i||!!n||!!r;if(!e)return o;s!=null&&this.raise(p.InvalidCoverInitializedName,s),i!=null&&this.raise(p.DuplicateProto,i),r!=null&&this.raise(p.UnexpectedPrivateField,r),n!=null&&this.unexpected(n)}isLiteralPropertyName(){return Vt(this.state.type)}isPrivateName(t){return t.type===\"PrivateName\"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type===\"MemberExpression\"||t.type===\"OptionalMemberExpression\")&&this.isPrivateName(t.property)}isObjectProperty(t){return t.type===\"ObjectProperty\"}isObjectMethod(t){return t.type===\"ObjectMethod\"}initializeScopes(t=this.options.sourceType===\"module\"){let e=this.state.labels;this.state.labels=[];let s=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let i=this.inModule;this.inModule=t;let r=this.scope,n=this.getScopeHandler();this.scope=new n(this,t);let o=this.prodParam;this.prodParam=new tt;let h=this.classScope;this.classScope=new Ze(this);let l=this.expressionScope;return this.expressionScope=new et(this),()=>{this.state.labels=e,this.exportedIdentifiers=s,this.inModule=i,this.scope=r,this.prodParam=o,this.classScope=h,this.expressionScope=l}}enterInitialScopes(){let t=0;this.inModule&&(t|=2),this.scope.enter(1),this.prodParam.enter(t)}checkDestructuringPrivate(t){let{privateKeyLoc:e}=t;e!==null&&this.expectPlugin(\"destructuringPrivate\",e)}},Q=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},te=class{constructor(t,e,s){this.type=\"\",this.start=e,this.end=0,this.loc=new Z(s),t!=null&&t.options.ranges&&(this.range=[e,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}},Pt=te.prototype;Pt.__clone=function(){let a=new te(void 0,this.start,this.loc.start),t=Object.keys(this);for(let e=0,s=t.length;e`Cannot overwrite reserved type ${a}.`,DeclareClassElement:\"The `declare` modifier can only appear on class fields.\",DeclareClassFieldInitializer:\"Initializers are not allowed in fields with the `declare` modifier.\",DuplicateDeclareModuleExports:\"Duplicate `declare module.exports` statement.\",EnumBooleanMemberNotInitialized:({memberName:a,enumName:t})=>`Boolean enum members need to be initialized. Use either \\`${a} = true,\\` or \\`${a} = false,\\` in enum \\`${t}\\`.`,EnumDuplicateMemberName:({memberName:a,enumName:t})=>`Enum member names need to be unique, but the name \\`${a}\\` has already been used before in enum \\`${t}\\`.`,EnumInconsistentMemberValues:({enumName:a})=>`Enum \\`${a}\\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,EnumInvalidExplicitType:({invalidEnumType:a,enumName:t})=>`Enum type \\`${a}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${t}\\`.`,EnumInvalidExplicitTypeUnknownSupplied:({enumName:a})=>`Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${a}\\`.`,EnumInvalidMemberInitializerPrimaryType:({enumName:a,memberName:t,explicitType:e})=>`Enum \\`${a}\\` has type \\`${e}\\`, so the initializer of \\`${t}\\` needs to be a ${e} literal.`,EnumInvalidMemberInitializerSymbolType:({enumName:a,memberName:t})=>`Symbol enum members cannot be initialized. Use \\`${t},\\` in enum \\`${a}\\`.`,EnumInvalidMemberInitializerUnknownType:({enumName:a,memberName:t})=>`The enum member initializer for \\`${t}\\` needs to be a literal (either a boolean, number, or string) in enum \\`${a}\\`.`,EnumInvalidMemberName:({enumName:a,memberName:t,suggestion:e})=>`Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \\`${t}\\`, consider using \\`${e}\\`, in enum \\`${a}\\`.`,EnumNumberMemberNotInitialized:({enumName:a,memberName:t})=>`Number enum members need to be initialized, e.g. \\`${t} = 1\\` in enum \\`${a}\\`.`,EnumStringMemberInconsistentlyInitialized:({enumName:a})=>`String enum members need to consistently either all use initializers, or use no initializers, in enum \\`${a}\\`.`,GetterMayNotHaveThisParam:\"A getter cannot have a `this` parameter.\",ImportReflectionHasImportType:\"An `import module` declaration can not use `type` or `typeof` keyword.\",ImportTypeShorthandOnlyInPureImport:\"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\",InexactInsideExact:\"Explicit inexact syntax cannot appear inside an explicit exact object type.\",InexactInsideNonObject:\"Explicit inexact syntax cannot appear in class or interface definitions.\",InexactVariance:\"Explicit inexact syntax cannot have variance.\",InvalidNonTypeImportInDeclareModule:\"Imports within a `declare module` body must always be `import type` or `import typeof`.\",MissingTypeParamDefault:\"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",NestedDeclareModule:\"`declare module` cannot be used inside another `declare module`.\",NestedFlowComment:\"Cannot have a flow comment inside another flow comment.\",PatternIsOptional:Object.assign({message:\"A binding pattern parameter cannot be optional in an implementation signature.\"},{reasonCode:\"OptionalBindingPattern\"}),SetterMayNotHaveThisParam:\"A setter cannot have a `this` parameter.\",SpreadVariance:\"Spread properties cannot have variance.\",ThisParamAnnotationRequired:\"A type annotation is required for the `this` parameter.\",ThisParamBannedInConstructor:\"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",ThisParamMayNotBeOptional:\"The `this` parameter cannot be optional.\",ThisParamMustBeFirst:\"The `this` parameter must be the first function parameter.\",ThisParamNoDefault:\"The `this` parameter may not have a default value.\",TypeBeforeInitializer:\"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",TypeCastInPattern:\"The type cast expression is expected to be wrapped with parenthesis.\",UnexpectedExplicitInexactInObject:\"Explicit inexact syntax must appear at the end of an inexact object.\",UnexpectedReservedType:({reservedType:a})=>`Unexpected reserved type ${a}.`,UnexpectedReservedUnderscore:\"`_` is only allowed as a type argument to call or new.\",UnexpectedSpaceBetweenModuloChecks:\"Spaces between `%` and `checks` are not allowed here.\",UnexpectedSpreadType:\"Spread operator cannot appear in class or interface definitions.\",UnexpectedSubtractionOperand:'Unexpected token, expected \"number\" or \"bigint\".',UnexpectedTokenAfterTypeParameter:\"Expected an arrow function after this type parameter declaration.\",UnexpectedTypeParameterBeforeAsyncArrowFunction:\"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.\",UnsupportedDeclareExportKind:({unsupportedExportKind:a,suggestion:t})=>`\\`declare export ${a}\\` is not supported. Use \\`${t}\\` instead.`,UnsupportedStatementInDeclareModule:\"Only declares and type imports are allowed inside declare module.\",UnterminatedFlowComment:\"Unterminated flow-comment.\"});function Fi(a){return a.type===\"DeclareExportAllDeclaration\"||a.type===\"DeclareExportDeclaration\"&&(!a.declaration||a.declaration.type!==\"TypeAlias\"&&a.declaration.type!==\"InterfaceDeclaration\")}function Bt(a){return a.importKind===\"type\"||a.importKind===\"typeof\"}var Bi={const:\"declare export var\",let:\"declare export var\",type:\"export type\",interface:\"export interface\"};function Ri(a,t){let e=[],s=[];for(let i=0;iclass extends a{constructor(...e){super(...e),this.flowPragma=void 0}getScopeHandler(){return He}shouldParseTypes(){return this.getPluginOption(\"flow\",\"all\")||this.flowPragma===\"flow\"}finishToken(e,s){e!==134&&e!==13&&e!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(e,s)}addComment(e){if(this.flowPragma===void 0){let s=Ui.exec(e.value);if(s)if(s[1]===\"flow\")this.flowPragma=\"flow\";else if(s[1]===\"noflow\")this.flowPragma=\"noflow\";else throw new Error(\"Unexpected flow pragma\")}super.addComment(e)}flowParseTypeInitialiser(e){let s=this.state.inType;this.state.inType=!0,this.expect(e||14);let i=this.flowParseType();return this.state.inType=s,i}flowParsePredicate(){let e=this.startNode(),s=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>s.index+1&&this.raise(g.UnexpectedSpaceBetweenModuloChecks,s),this.eat(10)?(e.value=super.parseExpression(),this.expect(11),this.finishNode(e,\"DeclaredPredicate\")):this.finishNode(e,\"InferredPredicate\")}flowParseTypeAndPredicateInitialiser(){let e=this.state.inType;this.state.inType=!0,this.expect(14);let s=null,i=null;return this.match(54)?(this.state.inType=e,i=this.flowParsePredicate()):(s=this.flowParseType(),this.state.inType=e,this.match(54)&&(i=this.flowParsePredicate())),[s,i]}flowParseDeclareClass(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,\"DeclareClass\")}flowParseDeclareFunction(e){this.next();let s=e.id=this.parseIdentifier(),i=this.startNode(),r=this.startNode();this.match(47)?i.typeParameters=this.flowParseTypeParameterDeclaration():i.typeParameters=null,this.expect(10);let n=this.flowParseFunctionTypeParams();return i.params=n.params,i.rest=n.rest,i.this=n._this,this.expect(11),[i.returnType,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),r.typeAnnotation=this.finishNode(i,\"FunctionTypeAnnotation\"),s.typeAnnotation=this.finishNode(r,\"TypeAnnotation\"),this.resetEndLocation(s),this.semicolon(),this.scope.declareName(e.id.name,2048,e.id.loc.start),this.finishNode(e,\"DeclareFunction\")}flowParseDeclare(e,s){if(this.match(80))return this.flowParseDeclareClass(e);if(this.match(68))return this.flowParseDeclareFunction(e);if(this.match(74))return this.flowParseDeclareVariable(e);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(e):(s&&this.raise(g.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(e));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(e);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(e);if(this.isContextual(129))return this.flowParseDeclareInterface(e);if(this.match(82))return this.flowParseDeclareExportDeclaration(e,s);this.unexpected()}flowParseDeclareVariable(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,5,e.id.loc.start),this.semicolon(),this.finishNode(e,\"DeclareVariable\")}flowParseDeclareModule(e){this.scope.enter(0),this.match(134)?e.id=super.parseExprAtom():e.id=this.parseIdentifier();let s=e.body=this.startNode(),i=s.body=[];for(this.expect(5);!this.match(8);){let o=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(g.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),super.parseImport(o)):(this.expectContextual(125,g.UnsupportedStatementInDeclareModule),o=this.flowParseDeclare(o,!0)),i.push(o)}this.scope.exit(),this.expect(8),this.finishNode(s,\"BlockStatement\");let r=null,n=!1;return i.forEach(o=>{Fi(o)?(r===\"CommonJS\"&&this.raise(g.AmbiguousDeclareModuleKind,o),r=\"ES\"):o.type===\"DeclareModuleExports\"&&(n&&this.raise(g.DuplicateDeclareModuleExports,o),r===\"ES\"&&this.raise(g.AmbiguousDeclareModuleKind,o),r=\"CommonJS\",n=!0)}),e.kind=r||\"CommonJS\",this.finishNode(e,\"DeclareModule\")}flowParseDeclareExportDeclaration(e,s){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,\"DeclareExportDeclaration\");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!s){let i=this.state.value;throw this.raise(g.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:i,suggestion:Bi[i]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,\"DeclareExportDeclaration\");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return e=this.parseExport(e,null),e.type===\"ExportNamedDeclaration\"&&(e.type=\"ExportDeclaration\",e.default=!1,delete e.exportKind),e.type=\"Declare\"+e.type,e;this.unexpected()}flowParseDeclareModuleExports(e){return this.next(),this.expectContextual(111),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,\"DeclareModuleExports\")}flowParseDeclareTypeAlias(e){this.next();let s=this.flowParseTypeAlias(e);return s.type=\"DeclareTypeAlias\",s}flowParseDeclareOpaqueType(e){this.next();let s=this.flowParseOpaqueType(e,!0);return s.type=\"DeclareOpaqueType\",s}flowParseDeclareInterface(e){return this.next(),this.flowParseInterfaceish(e,!1),this.finishNode(e,\"DeclareInterface\")}flowParseInterfaceish(e,s){if(e.id=this.flowParseRestrictedIdentifier(!s,!0),this.scope.declareName(e.id.name,s?17:8201,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(!s&&this.eat(12));if(s){if(e.implements=[],e.mixins=[],this.eatContextual(117))do e.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do e.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}e.body=this.flowParseObjectType({allowStatic:s,allowExact:!1,allowSpread:!1,allowProto:s,allowInexact:!1})}flowParseInterfaceExtends(){let e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,\"InterfaceExtends\")}flowParseInterface(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,\"InterfaceDeclaration\")}checkNotUnderscore(e){e===\"_\"&&this.raise(g.UnexpectedReservedUnderscore,this.state.startLoc)}checkReservedType(e,s,i){Oi.has(e)&&this.raise(i?g.AssignReservedType:g.UnexpectedReservedType,s,{reservedType:e})}flowParseRestrictedIdentifier(e,s){return this.checkReservedType(this.state.value,this.state.startLoc,s),this.parseIdentifier(e)}flowParseTypeAlias(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,8201,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(e,\"TypeAlias\")}flowParseOpaqueType(e,s){return this.expectContextual(130),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,8201,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(14)&&(e.supertype=this.flowParseTypeInitialiser(14)),e.impltype=null,s||(e.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(e,\"OpaqueType\")}flowParseTypeParameter(e=!1){let s=this.state.startLoc,i=this.startNode(),r=this.flowParseVariance(),n=this.flowParseTypeAnnotatableIdentifier();return i.name=n.name,i.variance=r,i.bound=n.typeAnnotation,this.match(29)?(this.eat(29),i.default=this.flowParseType()):e&&this.raise(g.MissingTypeParamDefault,s),this.finishNode(i,\"TypeParameter\")}flowParseTypeParameterDeclaration(){let e=this.state.inType,s=this.startNode();s.params=[],this.state.inType=!0,this.match(47)||this.match(143)?this.next():this.unexpected();let i=!1;do{let r=this.flowParseTypeParameter(i);s.params.push(r),r.default&&(i=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=e,this.finishNode(s,\"TypeParameterDeclaration\")}flowParseTypeParameterInstantiation(){let e=this.startNode(),s=this.state.inType;e.params=[],this.state.inType=!0,this.expect(47);let i=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)e.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=i,this.expect(48),this.state.inType=s,this.finishNode(e,\"TypeParameterInstantiation\")}flowParseTypeParameterInstantiationCallOrNew(){let e=this.startNode(),s=this.state.inType;for(e.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=s,this.finishNode(e,\"TypeParameterInstantiation\")}flowParseInterfaceType(){let e=this.startNode();if(this.expectContextual(129),e.extends=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,\"InterfaceTypeAnnotation\")}flowParseObjectPropertyKey(){return this.match(135)||this.match(134)?super.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(e,s,i){return e.static=s,this.lookahead().type===14?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(3),e.value=this.flowParseTypeInitialiser(),e.variance=i,this.finishNode(e,\"ObjectTypeIndexer\")}flowParseObjectTypeInternalSlot(e,s){return e.static=s,e.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.loc.start))):(e.method=!1,this.eat(17)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,\"ObjectTypeInternalSlot\")}flowParseObjectTypeMethodish(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,\"FunctionTypeAnnotation\")}flowParseObjectTypeCallProperty(e,s){let i=this.startNode();return e.static=s,e.value=this.flowParseObjectTypeMethodish(i),this.finishNode(e,\"ObjectTypeCallProperty\")}flowParseObjectType({allowStatic:e,allowExact:s,allowSpread:i,allowProto:r,allowInexact:n}){let o=this.state.inType;this.state.inType=!0;let h=this.startNode();h.callProperties=[],h.properties=[],h.indexers=[],h.internalSlots=[];let l,c,u=!1;for(s&&this.match(6)?(this.expect(6),l=9,c=!0):(this.expect(5),l=8,c=!1),h.exact=c;!this.match(l);){let d=!1,x=null,S=null,N=this.startNode();if(r&&this.isContextual(118)){let I=this.lookahead();I.type!==14&&I.type!==17&&(this.next(),x=this.state.startLoc,e=!1)}if(e&&this.isContextual(106)){let I=this.lookahead();I.type!==14&&I.type!==17&&(this.next(),d=!0)}let w=this.flowParseVariance();if(this.eat(0))x!=null&&this.unexpected(x),this.eat(0)?(w&&this.unexpected(w.loc.start),h.internalSlots.push(this.flowParseObjectTypeInternalSlot(N,d))):h.indexers.push(this.flowParseObjectTypeIndexer(N,d,w));else if(this.match(10)||this.match(47))x!=null&&this.unexpected(x),w&&this.unexpected(w.loc.start),h.callProperties.push(this.flowParseObjectTypeCallProperty(N,d));else{let I=\"init\";if(this.isContextual(99)||this.isContextual(104)){let ae=this.lookahead();Vt(ae.type)&&(I=this.state.value,this.next())}let Te=this.flowParseObjectTypeProperty(N,d,x,w,I,i,n??!c);Te===null?(u=!0,S=this.state.lastTokStartLoc):h.properties.push(Te)}this.flowObjectTypeSemicolon(),S&&!this.match(8)&&!this.match(9)&&this.raise(g.UnexpectedExplicitInexactInObject,S)}this.expect(l),i&&(h.inexact=u);let f=this.finishNode(h,\"ObjectTypeAnnotation\");return this.state.inType=o,f}flowParseObjectTypeProperty(e,s,i,r,n,o,h){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(o?h||this.raise(g.InexactInsideExact,this.state.lastTokStartLoc):this.raise(g.InexactInsideNonObject,this.state.lastTokStartLoc),r&&this.raise(g.InexactVariance,r),null):(o||this.raise(g.UnexpectedSpreadType,this.state.lastTokStartLoc),i!=null&&this.unexpected(i),r&&this.raise(g.SpreadVariance,r),e.argument=this.flowParseType(),this.finishNode(e,\"ObjectTypeSpreadProperty\"));{e.key=this.flowParseObjectPropertyKey(),e.static=s,e.proto=i!=null,e.kind=n;let l=!1;return this.match(47)||this.match(10)?(e.method=!0,i!=null&&this.unexpected(i),r&&this.unexpected(r.loc.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.loc.start)),(n===\"get\"||n===\"set\")&&this.flowCheckGetterSetterParams(e),!o&&e.key.name===\"constructor\"&&e.value.this&&this.raise(g.ThisParamBannedInConstructor,e.value.this)):(n!==\"init\"&&this.unexpected(),e.method=!1,this.eat(17)&&(l=!0),e.value=this.flowParseTypeInitialiser(),e.variance=r),e.optional=l,this.finishNode(e,\"ObjectTypeProperty\")}}flowCheckGetterSetterParams(e){let s=e.kind===\"get\"?0:1,i=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise(e.kind===\"get\"?g.GetterMayNotHaveThisParam:g.SetterMayNotHaveThisParam,e.value.this),i!==s&&this.raise(e.kind===\"get\"?p.BadGetterArity:p.BadSetterArity,e),e.kind===\"set\"&&e.value.rest&&this.raise(p.BadSetterRestParameter,e)}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(e,s){var i;(i=e)!=null||(e=this.state.startLoc);let r=s||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let n=this.startNodeAt(e);n.qualification=r,n.id=this.flowParseRestrictedIdentifier(!0),r=this.finishNode(n,\"QualifiedTypeIdentifier\")}return r}flowParseGenericType(e,s){let i=this.startNodeAt(e);return i.typeParameters=null,i.id=this.flowParseQualifiedTypeIdentifier(e,s),this.match(47)&&(i.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(i,\"GenericTypeAnnotation\")}flowParseTypeofType(){let e=this.startNode();return this.expect(87),e.argument=this.flowParsePrimaryType(),this.finishNode(e,\"TypeofTypeAnnotation\")}flowParseTupleType(){let e=this.startNode();for(e.types=[],this.expect(0);this.state.possuper.parseFunctionBody(e,!0,i));return}super.parseFunctionBody(e,!1,i)}parseFunctionBodyAndFinish(e,s,i=!1){if(this.match(14)){let r=this.startNode();[r.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),e.returnType=r.typeAnnotation?this.finishNode(r,\"TypeAnnotation\"):null}return super.parseFunctionBodyAndFinish(e,s,i)}parseStatementLike(e){if(this.state.strict&&this.isContextual(129)){let i=this.lookahead();if(D(i.type)){let r=this.startNode();return this.next(),this.flowParseInterface(r)}}else if(this.isContextual(126)){let i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}let s=super.parseStatementLike(e);return this.flowPragma===void 0&&!this.isValidDirective(s)&&(this.flowPragma=null),s}parseExpressionStatement(e,s,i){if(s.type===\"Identifier\"){if(s.name===\"declare\"){if(this.match(80)||C(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(e)}else if(C(this.state.type)){if(s.name===\"interface\")return this.flowParseInterface(e);if(s.name===\"type\")return this.flowParseTypeAlias(e);if(s.name===\"opaque\")return this.flowParseOpaqueType(e,!1)}}return super.parseExpressionStatement(e,s,i)}shouldParseExportDeclaration(){let{type:e}=this.state;return e===126||Dt(e)?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:e}=this.state;return e===126||Dt(e)?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.isContextual(126)){let e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}return super.parseExportDefaultExpression()}parseConditional(e,s,i){if(!this.match(17))return e;if(this.state.maybeInArrowParameters){let f=this.lookaheadCharCode();if(f===44||f===61||f===58||f===41)return this.setOptionalParametersError(i),e}this.expect(17);let r=this.state.clone(),n=this.state.noArrowAt,o=this.startNodeAt(s),{consequent:h,failed:l}=this.tryParseConditionalConsequent(),[c,u]=this.getArrowLikeExpressions(h);if(l||u.length>0){let f=[...n];if(u.length>0){this.state=r,this.state.noArrowAt=f;for(let d=0;d1&&this.raise(g.AmbiguousConditionalArrow,r.startLoc),l&&c.length===1&&(this.state=r,f.push(c[0].start),this.state.noArrowAt=f,{consequent:h,failed:l}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(h,!0),this.state.noArrowAt=n,this.expect(14),o.test=e,o.consequent=h,o.alternate=this.forwardNoArrowParamsConversionAt(o,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(o,\"ConditionalExpression\")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let e=this.parseMaybeAssignAllowIn(),s=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:s}}getArrowLikeExpressions(e,s){let i=[e],r=[];for(;i.length!==0;){let n=i.pop();n.type===\"ArrowFunctionExpression\"&&n.body.type!==\"BlockStatement\"?(n.typeParameters||!n.returnType?this.finishArrowValidation(n):r.push(n),i.push(n.body)):n.type===\"ConditionalExpression\"&&(i.push(n.consequent),i.push(n.alternate))}return s?(r.forEach(n=>this.finishArrowValidation(n)),[r,[]]):Ri(r,n=>n.params.every(o=>this.isAssignable(o,!0)))}finishArrowValidation(e){var s;this.toAssignableList(e.params,(s=e.extra)==null?void 0:s.trailingCommaLoc,!1),this.scope.enter(6),super.checkParams(e,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(e,s){let i;return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(e.start))?(this.state.noArrowParamsConversionAt.push(this.state.start),i=s(),this.state.noArrowParamsConversionAt.pop()):i=s(),i}parseParenItem(e,s){let i=super.parseParenItem(e,s);if(this.eat(17)&&(i.optional=!0,this.resetEndLocation(e)),this.match(14)){let r=this.startNodeAt(s);return r.expression=i,r.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(r,\"TypeCastExpression\")}return i}assertModuleNodeAllowed(e){e.type===\"ImportDeclaration\"&&(e.importKind===\"type\"||e.importKind===\"typeof\")||e.type===\"ExportNamedDeclaration\"&&e.exportKind===\"type\"||e.type===\"ExportAllDeclaration\"&&e.exportKind===\"type\"||super.assertModuleNodeAllowed(e)}parseExportDeclaration(e){if(this.isContextual(130)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.match(5)?(e.specifiers=this.parseExportSpecifiers(!0),super.parseExportFrom(e),null):this.flowParseTypeAlias(s)}else if(this.isContextual(131)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.flowParseOpaqueType(s,!1)}else if(this.isContextual(129)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.flowParseInterface(s)}else if(this.isContextual(126)){e.exportKind=\"value\";let s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}else return super.parseExportDeclaration(e)}eatExportStar(e){return super.eatExportStar(e)?!0:this.isContextual(130)&&this.lookahead().type===55?(e.exportKind=\"type\",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(e){let{startLoc:s}=this.state,i=super.maybeParseExportNamespaceSpecifier(e);return i&&e.exportKind===\"type\"&&this.unexpected(s),i}parseClassId(e,s,i){super.parseClassId(e,s,i),this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(e,s,i){let{startLoc:r}=this.state;if(this.isContextual(125)){if(super.parseClassMemberFromModifier(e,s))return;s.declare=!0}super.parseClassMember(e,s,i),s.declare&&(s.type!==\"ClassProperty\"&&s.type!==\"ClassPrivateProperty\"&&s.type!==\"PropertyDefinition\"?this.raise(g.DeclareClassElement,r):s.value&&this.raise(g.DeclareClassFieldInitializer,s.value))}isIterator(e){return e===\"iterator\"||e===\"asyncIterator\"}readIterator(){let e=super.readWord1(),s=\"@@\"+e;(!this.isIterator(e)||!this.state.inType)&&this.raise(p.InvalidIdentifier,this.state.curPosition(),{identifierName:s}),this.finishToken(132,s)}getTokenFromCode(e){let s=this.input.charCodeAt(this.state.pos+1);e===123&&s===124?this.finishOp(6,2):this.state.inType&&(e===62||e===60)?this.finishOp(e===62?48:47,1):this.state.inType&&e===63?s===46?this.finishOp(18,2):this.finishOp(17,1):gi(e,s,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(e)}isAssignable(e,s){return e.type===\"TypeCastExpression\"?this.isAssignable(e.expression,s):super.isAssignable(e,s)}toAssignable(e,s=!1){!s&&e.type===\"AssignmentExpression\"&&e.left.type===\"TypeCastExpression\"&&(e.left=this.typeCastToParameter(e.left)),super.toAssignable(e,s)}toAssignableList(e,s,i){for(let r=0;r1||!s)&&this.raise(g.TypeCastInPattern,n.typeAnnotation)}return e}parseArrayLike(e,s,i,r){let n=super.parseArrayLike(e,s,i,r);return s&&!this.state.maybeInArrowParameters&&this.toReferencedList(n.elements),n}isValidLVal(e,s,i){return e===\"TypeCastExpression\"||super.isValidLVal(e,s,i)}parseClassProperty(e){return this.match(14)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(e)}parseClassPrivateProperty(e){return this.match(14)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(e)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(14)||super.isClassProperty()}isNonstaticConstructor(e){return!this.match(14)&&super.isNonstaticConstructor(e)}pushClassMethod(e,s,i,r,n,o){if(s.variance&&this.unexpected(s.variance.loc.start),delete s.variance,this.match(47)&&(s.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(e,s,i,r,n,o),s.params&&n){let h=s.params;h.length>0&&this.isThisParam(h[0])&&this.raise(g.ThisParamBannedInConstructor,s)}else if(s.type===\"MethodDefinition\"&&n&&s.value.params){let h=s.value.params;h.length>0&&this.isThisParam(h[0])&&this.raise(g.ThisParamBannedInConstructor,s)}}pushClassPrivateMethod(e,s,i,r){s.variance&&this.unexpected(s.variance.loc.start),delete s.variance,this.match(47)&&(s.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(e,s,i,r)}parseClassSuper(e){if(super.parseClassSuper(e),e.superClass&&this.match(47)&&(e.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(113)){this.next();let s=e.implements=[];do{let i=this.startNode();i.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,s.push(this.finishNode(i,\"ClassImplements\"))}while(this.eat(12))}}checkGetterSetterParams(e){super.checkGetterSetterParams(e);let s=this.getObjectOrClassMethodParams(e);if(s.length>0){let i=s[0];this.isThisParam(i)&&e.kind===\"get\"?this.raise(g.GetterMayNotHaveThisParam,i):this.isThisParam(i)&&this.raise(g.SetterMayNotHaveThisParam,i)}}parsePropertyNamePrefixOperator(e){e.variance=this.flowParseVariance()}parseObjPropValue(e,s,i,r,n,o,h){e.variance&&this.unexpected(e.variance.loc.start),delete e.variance;let l;this.match(47)&&!o&&(l=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());let c=super.parseObjPropValue(e,s,i,r,n,o,h);return l&&((c.value||c).typeParameters=l),c}parseFunctionParamType(e){return this.eat(17)&&(e.type!==\"Identifier\"&&this.raise(g.PatternIsOptional,e),this.isThisParam(e)&&this.raise(g.ThisParamMayNotBeOptional,e),e.optional=!0),this.match(14)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(g.ThisParamAnnotationRequired,e),this.match(29)&&this.isThisParam(e)&&this.raise(g.ThisParamNoDefault,e),this.resetEndLocation(e),e}parseMaybeDefault(e,s){let i=super.parseMaybeDefault(e,s);return i.type===\"AssignmentPattern\"&&i.typeAnnotation&&i.right.startsuper.parseMaybeAssign(e,s),r),!n.error)return n.node;let{context:l}=this.state,c=l[l.length-1];(c===E.j_oTag||c===E.j_expr)&&l.pop()}if((i=n)!=null&&i.error||this.match(47)){var o,h;r=r||this.state.clone();let l,c=this.tryParse(f=>{var d;l=this.flowParseTypeParameterDeclaration();let x=this.forwardNoArrowParamsConversionAt(l,()=>{let N=super.parseMaybeAssign(e,s);return this.resetStartLocationFromNode(N,l),N});(d=x.extra)!=null&&d.parenthesized&&f();let S=this.maybeUnwrapTypeCastExpression(x);return S.type!==\"ArrowFunctionExpression\"&&f(),S.typeParameters=l,this.resetStartLocationFromNode(S,l),x},r),u=null;if(c.node&&this.maybeUnwrapTypeCastExpression(c.node).type===\"ArrowFunctionExpression\"){if(!c.error&&!c.aborted)return c.node.async&&this.raise(g.UnexpectedTypeParameterBeforeAsyncArrowFunction,l),c.node;u=c.node}if((o=n)!=null&&o.node)return this.state=n.failState,n.node;if(u)return this.state=c.failState,u;throw(h=n)!=null&&h.thrown?n.error:c.thrown?c.error:this.raise(g.UnexpectedTokenAfterTypeParameter,l)}return super.parseMaybeAssign(e,s)}parseArrow(e){if(this.match(14)){let s=this.tryParse(()=>{let i=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let r=this.startNode();return[r.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=i,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),r});if(s.thrown)return null;s.error&&(this.state=s.failState),e.returnType=s.node.typeAnnotation?this.finishNode(s.node,\"TypeAnnotation\"):null}return super.parseArrow(e)}shouldParseArrow(e){return this.match(14)||super.shouldParseArrow(e)}setArrowFunctionParameters(e,s){this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(e.start))?e.params=s:super.setArrowFunctionParameters(e,s)}checkParams(e,s,i,r=!0){if(!(i&&this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(e.start)))){for(let n=0;n0&&this.raise(g.ThisParamMustBeFirst,e.params[n]);super.checkParams(e,s,i,r)}}parseParenAndDistinguishExpression(e){return super.parseParenAndDistinguishExpression(e&&!this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)))}parseSubscripts(e,s,i){if(e.type===\"Identifier\"&&e.name===\"async\"&&this.state.noArrowAt.includes(s.index)){this.next();let r=this.startNodeAt(s);r.callee=e,r.arguments=super.parseCallExpressionArguments(11),e=this.finishNode(r,\"CallExpression\")}else if(e.type===\"Identifier\"&&e.name===\"async\"&&this.match(47)){let r=this.state.clone(),n=this.tryParse(h=>this.parseAsyncArrowWithTypeParameters(s)||h(),r);if(!n.error&&!n.aborted)return n.node;let o=this.tryParse(()=>super.parseSubscripts(e,s,i),r);if(o.node&&!o.error)return o.node;if(n.node)return this.state=n.failState,n.node;if(o.node)return this.state=o.failState,o.node;throw n.error||o.error}return super.parseSubscripts(e,s,i)}parseSubscript(e,s,i,r){if(this.match(18)&&this.isLookaheadToken_lt()){if(r.optionalChainMember=!0,i)return r.stop=!0,e;this.next();let n=this.startNodeAt(s);return n.callee=e,n.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11),n.optional=!0,this.finishCallExpression(n,!0)}else if(!i&&this.shouldParseTypes()&&this.match(47)){let n=this.startNodeAt(s);n.callee=e;let o=this.tryParse(()=>(n.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),n.arguments=super.parseCallExpressionArguments(11),r.optionalChainMember&&(n.optional=!1),this.finishCallExpression(n,r.optionalChainMember)));if(o.node)return o.error&&(this.state=o.failState),o.node}return super.parseSubscript(e,s,i,r)}parseNewCallee(e){super.parseNewCallee(e);let s=null;this.shouldParseTypes()&&this.match(47)&&(s=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),e.typeArguments=s}parseAsyncArrowWithTypeParameters(e){let s=this.startNodeAt(e);if(this.parseFunctionParams(s,!1),!!this.parseArrow(s))return super.parseArrowExpression(s,void 0,!0)}readToken_mult_modulo(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===42&&s===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(e)}readToken_pipe_amp(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===124&&s===125){this.finishOp(9,2);return}super.readToken_pipe_amp(e)}parseTopLevel(e,s){let i=super.parseTopLevel(e,s);return this.state.hasFlowComment&&this.raise(g.UnterminatedFlowComment,this.state.curPosition()),i}skipBlockComment(){if(this.hasPlugin(\"flowComments\")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(g.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();let e=this.skipFlowComment();e&&(this.state.pos+=e,this.state.hasFlowComment=!0);return}return super.skipBlockComment(this.state.hasFlowComment?\"*-/\":\"*/\")}skipFlowComment(){let{pos:e}=this.state,s=2;for(;[32,9].includes(this.input.charCodeAt(e+s));)s++;let i=this.input.charCodeAt(s+e),r=this.input.charCodeAt(s+e+1);return i===58&&r===58?s+2:this.input.slice(s+e,s+e+12)===\"flow-include\"?s+12:i===58&&r!==58?s:!1}hasFlowCommentCompletion(){if(this.input.indexOf(\"*/\",this.state.pos)===-1)throw this.raise(p.UnterminatedComment,this.state.curPosition())}flowEnumErrorBooleanMemberNotInitialized(e,{enumName:s,memberName:i}){this.raise(g.EnumBooleanMemberNotInitialized,e,{memberName:i,enumName:s})}flowEnumErrorInvalidMemberInitializer(e,s){return this.raise(s.explicitType?s.explicitType===\"symbol\"?g.EnumInvalidMemberInitializerSymbolType:g.EnumInvalidMemberInitializerPrimaryType:g.EnumInvalidMemberInitializerUnknownType,e,s)}flowEnumErrorNumberMemberNotInitialized(e,s){this.raise(g.EnumNumberMemberNotInitialized,e,s)}flowEnumErrorStringMemberInconsistentlyInitialized(e,s){this.raise(g.EnumStringMemberInconsistentlyInitialized,e,s)}flowEnumMemberInit(){let e=this.state.startLoc,s=()=>this.match(12)||this.match(8);switch(this.state.type){case 135:{let i=this.parseNumericLiteral(this.state.value);return s()?{type:\"number\",loc:i.loc.start,value:i}:{type:\"invalid\",loc:e}}case 134:{let i=this.parseStringLiteral(this.state.value);return s()?{type:\"string\",loc:i.loc.start,value:i}:{type:\"invalid\",loc:e}}case 85:case 86:{let i=this.parseBooleanLiteral(this.match(85));return s()?{type:\"boolean\",loc:i.loc.start,value:i}:{type:\"invalid\",loc:e}}default:return{type:\"invalid\",loc:e}}}flowEnumMemberRaw(){let e=this.state.startLoc,s=this.parseIdentifier(!0),i=this.eat(29)?this.flowEnumMemberInit():{type:\"none\",loc:e};return{id:s,init:i}}flowEnumCheckExplicitTypeMismatch(e,s,i){let{explicitType:r}=s;r!==null&&r!==i&&this.flowEnumErrorInvalidMemberInitializer(e,s)}flowEnumMembers({enumName:e,explicitType:s}){let i=new Set,r={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},n=!1;for(;!this.match(8);){if(this.eat(21)){n=!0;break}let o=this.startNode(),{id:h,init:l}=this.flowEnumMemberRaw(),c=h.name;if(c===\"\")continue;/^[a-z]/.test(c)&&this.raise(g.EnumInvalidMemberName,h,{memberName:c,suggestion:c[0].toUpperCase()+c.slice(1),enumName:e}),i.has(c)&&this.raise(g.EnumDuplicateMemberName,h,{memberName:c,enumName:e}),i.add(c);let u={enumName:e,explicitType:s,memberName:c};switch(o.id=h,l.type){case\"boolean\":{this.flowEnumCheckExplicitTypeMismatch(l.loc,u,\"boolean\"),o.init=l.value,r.booleanMembers.push(this.finishNode(o,\"EnumBooleanMember\"));break}case\"number\":{this.flowEnumCheckExplicitTypeMismatch(l.loc,u,\"number\"),o.init=l.value,r.numberMembers.push(this.finishNode(o,\"EnumNumberMember\"));break}case\"string\":{this.flowEnumCheckExplicitTypeMismatch(l.loc,u,\"string\"),o.init=l.value,r.stringMembers.push(this.finishNode(o,\"EnumStringMember\"));break}case\"invalid\":throw this.flowEnumErrorInvalidMemberInitializer(l.loc,u);case\"none\":switch(s){case\"boolean\":this.flowEnumErrorBooleanMemberNotInitialized(l.loc,u);break;case\"number\":this.flowEnumErrorNumberMemberNotInitialized(l.loc,u);break;default:r.defaultedMembers.push(this.finishNode(o,\"EnumDefaultedMember\"))}}this.match(8)||this.expect(12)}return{members:r,hasUnknownMembers:n}}flowEnumStringMembers(e,s,{enumName:i}){if(e.length===0)return s;if(s.length===0)return e;if(s.length>e.length){for(let r of e)this.flowEnumErrorStringMemberInconsistentlyInitialized(r,{enumName:i});return s}else{for(let r of s)this.flowEnumErrorStringMemberInconsistentlyInitialized(r,{enumName:i});return e}}flowEnumParseExplicitType({enumName:e}){if(!this.eatContextual(102))return null;if(!C(this.state.type))throw this.raise(g.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:e});let{value:s}=this.state;return this.next(),s!==\"boolean\"&&s!==\"number\"&&s!==\"string\"&&s!==\"symbol\"&&this.raise(g.EnumInvalidExplicitType,this.state.startLoc,{enumName:e,invalidEnumType:s}),s}flowEnumBody(e,s){let i=s.name,r=s.loc.start,n=this.flowEnumParseExplicitType({enumName:i});this.expect(5);let{members:o,hasUnknownMembers:h}=this.flowEnumMembers({enumName:i,explicitType:n});switch(e.hasUnknownMembers=h,n){case\"boolean\":return e.explicitType=!0,e.members=o.booleanMembers,this.expect(8),this.finishNode(e,\"EnumBooleanBody\");case\"number\":return e.explicitType=!0,e.members=o.numberMembers,this.expect(8),this.finishNode(e,\"EnumNumberBody\");case\"string\":return e.explicitType=!0,e.members=this.flowEnumStringMembers(o.stringMembers,o.defaultedMembers,{enumName:i}),this.expect(8),this.finishNode(e,\"EnumStringBody\");case\"symbol\":return e.members=o.defaultedMembers,this.expect(8),this.finishNode(e,\"EnumSymbolBody\");default:{let l=()=>(e.members=[],this.expect(8),this.finishNode(e,\"EnumStringBody\"));e.explicitType=!1;let c=o.booleanMembers.length,u=o.numberMembers.length,f=o.stringMembers.length,d=o.defaultedMembers.length;if(!c&&!u&&!f&&!d)return l();if(!c&&!u)return e.members=this.flowEnumStringMembers(o.stringMembers,o.defaultedMembers,{enumName:i}),this.expect(8),this.finishNode(e,\"EnumStringBody\");if(!u&&!f&&c>=d){for(let x of o.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(x.loc.start,{enumName:i,memberName:x.id.name});return e.members=o.booleanMembers,this.expect(8),this.finishNode(e,\"EnumBooleanBody\")}else if(!c&&!f&&u>=d){for(let x of o.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(x.loc.start,{enumName:i,memberName:x.id.name});return e.members=o.numberMembers,this.expect(8),this.finishNode(e,\"EnumNumberBody\")}else return this.raise(g.EnumInconsistentMemberValues,r,{enumName:i}),l()}}}flowParseEnumDeclaration(e){let s=this.parseIdentifier();return e.id=s,e.body=this.flowEnumBody(this.startNode(),s),this.finishNode(e,\"EnumDeclaration\")}isLookaheadToken_lt(){let e=this.nextTokenStart();if(this.input.charCodeAt(e)===60){let s=this.input.charCodeAt(e+1);return s!==60&&s!==61}return!1}maybeUnwrapTypeCastExpression(e){return e.type===\"TypeCastExpression\"?e.expression:e}},H=U`jsx`({AttributeIsEmpty:\"JSX attributes must only be assigned a non-empty expression.\",MissingClosingTagElement:({openingTagName:a})=>`Expected corresponding JSX closing tag for <${a}>.`,MissingClosingTagFragment:\"Expected corresponding JSX closing tag for <>.\",UnexpectedSequenceExpression:\"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",UnexpectedToken:({unexpected:a,HTMLEntity:t})=>`Unexpected token \\`${a}\\`. Did you mean \\`${t}\\` or \\`{'${a}'}\\`?`,UnsupportedJsxValue:\"JSX value should be either an expression or a quoted JSX text.\",UnterminatedJsxContent:\"Unterminated JSX contents.\",UnwrappedAdjacentJSXElements:\"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?\"});function V(a){return a?a.type===\"JSXOpeningFragment\"||a.type===\"JSXClosingFragment\":!1}function X(a){if(a.type===\"JSXIdentifier\")return a.name;if(a.type===\"JSXNamespacedName\")return a.namespace.name+\":\"+a.name.name;if(a.type===\"JSXMemberExpression\")return X(a.object)+\".\"+X(a.property);throw new Error(\"Node had unexpected type: \"+a.type)}var ji=a=>class extends a{jsxReadToken(){let e=\"\",s=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(H.UnterminatedJsxContent,this.state.startLoc);let i=this.input.charCodeAt(this.state.pos);switch(i){case 60:case 123:if(this.state.pos===this.state.start){i===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(143)):super.getTokenFromCode(i);return}e+=this.input.slice(s,this.state.pos),this.finishToken(142,e);return;case 38:e+=this.input.slice(s,this.state.pos),e+=this.jsxReadEntity(),s=this.state.pos;break;case 62:case 125:default:Y(i)?(e+=this.input.slice(s,this.state.pos),e+=this.jsxReadNewLine(!0),s=this.state.pos):++this.state.pos}}}jsxReadNewLine(e){let s=this.input.charCodeAt(this.state.pos),i;return++this.state.pos,s===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,i=e?`\n`:`\\r\n`):i=String.fromCharCode(s),++this.state.curLine,this.state.lineStart=this.state.pos,i}jsxReadString(e){let s=\"\",i=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(p.UnterminatedString,this.state.startLoc);let r=this.input.charCodeAt(this.state.pos);if(r===e)break;r===38?(s+=this.input.slice(i,this.state.pos),s+=this.jsxReadEntity(),i=this.state.pos):Y(r)?(s+=this.input.slice(i,this.state.pos),s+=this.jsxReadNewLine(!1),i=this.state.pos):++this.state.pos}s+=this.input.slice(i,this.state.pos++),this.finishToken(134,s)}jsxReadEntity(){let e=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let s=10;this.codePointAtPos(this.state.pos)===120&&(s=16,++this.state.pos);let i=this.readInt(s,void 0,!1,\"bail\");if(i!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(i)}else{let s=0,i=!1;for(;s++<10&&this.state.pos1){for(let i=0;i0){if(s&256){let r=!!(s&512),n=(i&4)>0;return r!==n}return!0}return s&128&&(i&8)>0?t.names.get(e)&2?!!(s&1):!1:s&2&&(i&1)>0?!0:super.isRedeclaredInScope(t,e,s)}checkLocalExport(t){let{name:e}=t;if(this.hasImport(e))return;let s=this.scopeStack.length;for(let i=s-1;i>=0;i--){let n=this.scopeStack[i].tsNames.get(e);if((n&1)>0||(n&16)>0)return}super.checkLocalExport(t)}},es=a=>a.type===\"ParenthesizedExpression\"?es(a.expression):a,nt=class extends it{toAssignable(t,e=!1){var s,i;let r;switch((t.type===\"ParenthesizedExpression\"||(s=t.extra)!=null&&s.parenthesized)&&(r=es(t),e?r.type===\"Identifier\"?this.expressionScope.recordArrowParameterBindingError(p.InvalidParenthesizedAssignment,t):r.type!==\"MemberExpression\"&&!this.isOptionalMemberExpression(r)&&this.raise(p.InvalidParenthesizedAssignment,t):this.raise(p.InvalidParenthesizedAssignment,t)),t.type){case\"Identifier\":case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":t.type=\"ObjectPattern\";for(let o=0,h=t.properties.length,l=h-1;oi.type!==\"ObjectMethod\"&&(r===s||i.type!==\"SpreadElement\")&&this.isAssignable(i))}case\"ObjectProperty\":return this.isAssignable(t.value);case\"SpreadElement\":return this.isAssignable(t.argument);case\"ArrayExpression\":return t.elements.every(s=>s===null||this.isAssignable(s));case\"AssignmentExpression\":return t.operator===\"=\";case\"ParenthesizedExpression\":return this.isAssignable(t.expression);case\"MemberExpression\":case\"OptionalMemberExpression\":return!e;default:return!1}}toReferencedList(t,e){return t}toReferencedListDeep(t,e){this.toReferencedList(t,e);for(let s of t)(s==null?void 0:s.type)===\"ArrayExpression\"&&this.toReferencedListDeep(s.elements)}parseSpread(t){let e=this.startNode();return this.next(),e.argument=this.parseMaybeAssignAllowIn(t,void 0),this.finishNode(e,\"SpreadElement\")}parseRestBinding(){let t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,\"RestElement\")}parseBindingAtom(){switch(this.state.type){case 0:{let t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,1),this.finishNode(t,\"ArrayPattern\")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,e,s){let i=s&1,r=[],n=!0;for(;!this.eat(t);)if(n?n=!1:this.expect(12),i&&this.match(12))r.push(null);else{if(this.eat(t))break;if(this.match(21)){let o=this.parseRestBinding();if((this.hasPlugin(\"flow\")||s&2)&&(o=this.parseFunctionParamType(o)),r.push(o),!this.checkCommaAfterRest(e)){this.expect(t);break}}else{let o=[];for(this.match(26)&&this.hasPlugin(\"decorators\")&&this.raise(p.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)o.push(this.parseDecorator());r.push(this.parseAssignableListItem(s,o))}}return r}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,\"RestElement\")}parseBindingProperty(){let{type:t,startLoc:e}=this.state;if(t===21)return this.parseBindingRestProperty(this.startNode());let s=this.startNode();return t===139?(this.expectPlugin(\"destructuringPrivate\",e),this.classScope.usePrivateName(this.state.value,e),s.key=this.parsePrivateName()):this.parsePropertyName(s),s.method=!1,this.parseObjPropValue(s,e,!1,!1,!0,!1)}parseAssignableListItem(t,e){let s=this.parseMaybeDefault();(this.hasPlugin(\"flow\")||t&2)&&this.parseFunctionParamType(s);let i=this.parseMaybeDefault(s.loc.start,s);return e.length&&(s.decorators=e),i}parseFunctionParamType(t){return t}parseMaybeDefault(t,e){var s,i;if((s=t)!=null||(t=this.state.startLoc),e=(i=e)!=null?i:this.parseBindingAtom(),!this.eat(29))return e;let r=this.startNodeAt(t);return r.left=e,r.right=this.parseMaybeAssignAllowIn(),this.finishNode(r,\"AssignmentPattern\")}isValidLVal(t,e,s){switch(t){case\"AssignmentPattern\":return\"left\";case\"RestElement\":return\"argument\";case\"ObjectProperty\":return\"value\";case\"ParenthesizedExpression\":return\"expression\";case\"ArrayPattern\":return\"elements\";case\"ObjectPattern\":return\"properties\"}return!1}isOptionalMemberExpression(t){return t.type===\"OptionalMemberExpression\"}checkLVal(t,e,s=64,i=!1,r=!1,n=!1){var o;let h=t.type;if(this.isObjectMethod(t))return;let l=this.isOptionalMemberExpression(t);if(l||h===\"MemberExpression\"){l&&(this.expectPlugin(\"optionalChainingAssign\",t.loc.start),e.type!==\"AssignmentExpression\"&&this.raise(p.InvalidLhsOptionalChaining,t,{ancestor:e})),s!==64&&this.raise(p.InvalidPropertyBindingPattern,t);return}if(h===\"Identifier\"){this.checkIdentifier(t,s,r);let{name:S}=t;i&&(i.has(S)?this.raise(p.ParamDupe,t):i.add(S));return}let c=this.isValidLVal(h,!(n||(o=t.extra)!=null&&o.parenthesized)&&e.type===\"AssignmentExpression\",s);if(c===!0)return;if(c===!1){let S=s===64?p.InvalidLhs:p.InvalidLhsBinding;this.raise(S,t,{ancestor:e});return}let u,f;typeof c==\"string\"?(u=c,f=h===\"ParenthesizedExpression\"):[u,f]=c;let d=h===\"ArrayPattern\"||h===\"ObjectPattern\"?{type:h}:e,x=t[u];if(Array.isArray(x))for(let S of x)S&&this.checkLVal(S,d,s,i,r,f);else x&&this.checkLVal(x,d,s,i,r,f)}checkIdentifier(t,e,s=!1){this.state.strict&&(s?Xt(t.name,this.inModule):Wt(t.name))&&(e===64?this.raise(p.StrictEvalArguments,t,{referenceName:t.name}):this.raise(p.StrictEvalArgumentsBinding,t,{bindingName:t.name})),e&8192&&t.name===\"let\"&&this.raise(p.LetInLexicalBinding,t),e&64||this.declareNameFromIdentifier(t,e)}declareNameFromIdentifier(t,e){this.scope.declareName(t.name,e,t.loc.start)}checkToRestConversion(t,e){switch(t.type){case\"ParenthesizedExpression\":this.checkToRestConversion(t.expression,e);break;case\"Identifier\":case\"MemberExpression\":break;case\"ArrayExpression\":case\"ObjectExpression\":if(e)break;default:this.raise(p.InvalidRestAssignmentPattern,t)}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?p.RestTrailingComma:p.ElementAfterRest,this.state.startLoc),!0):!1}};function $i(a){if(a==null)throw new Error(`Unexpected ${a} value.`);return a}function Rt(a){if(!a)throw new Error(\"Assert fail\")}var y=U`typescript`({AbstractMethodHasImplementation:({methodName:a})=>`Method '${a}' cannot have an implementation because it is marked abstract.`,AbstractPropertyHasInitializer:({propertyName:a})=>`Property '${a}' cannot have an initializer because it is marked abstract.`,AccessorCannotBeOptional:\"An 'accessor' property cannot be declared optional.\",AccessorCannotDeclareThisParameter:\"'get' and 'set' accessors cannot declare 'this' parameters.\",AccessorCannotHaveTypeParameters:\"An accessor cannot have type parameters.\",ClassMethodHasDeclare:\"Class methods cannot have the 'declare' modifier.\",ClassMethodHasReadonly:\"Class methods cannot have the 'readonly' modifier.\",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\",ConstructorHasTypeParameters:\"Type parameters cannot appear on a constructor declaration.\",DeclareAccessor:({kind:a})=>`'declare' is not allowed in ${a}ters.`,DeclareClassFieldHasInitializer:\"Initializers are not allowed in ambient contexts.\",DeclareFunctionHasImplementation:\"An implementation cannot be declared in ambient contexts.\",DuplicateAccessibilityModifier:({modifier:a})=>\"Accessibility modifier already seen.\",DuplicateModifier:({modifier:a})=>`Duplicate modifier: '${a}'.`,EmptyHeritageClauseType:({token:a})=>`'${a}' list cannot be empty.`,EmptyTypeArguments:\"Type argument list cannot be empty.\",EmptyTypeParameters:\"Type parameter list cannot be empty.\",ExpectedAmbientAfterExportDeclare:\"'export declare' must be followed by an ambient declaration.\",ImportAliasHasImportType:\"An import alias can not use 'import type'.\",ImportReflectionHasImportType:\"An `import module` declaration can not use `type` modifier\",IncompatibleModifiers:({modifiers:a})=>`'${a[0]}' modifier cannot be used with '${a[1]}' modifier.`,IndexSignatureHasAbstract:\"Index signatures cannot have the 'abstract' modifier.\",IndexSignatureHasAccessibility:({modifier:a})=>`Index signatures cannot have an accessibility modifier ('${a}').`,IndexSignatureHasDeclare:\"Index signatures cannot have the 'declare' modifier.\",IndexSignatureHasOverride:\"'override' modifier cannot appear on an index signature.\",IndexSignatureHasStatic:\"Index signatures cannot have the 'static' modifier.\",InitializerNotAllowedInAmbientContext:\"Initializers are not allowed in ambient contexts.\",InvalidModifierOnTypeMember:({modifier:a})=>`'${a}' modifier cannot appear on a type member.`,InvalidModifierOnTypeParameter:({modifier:a})=>`'${a}' modifier cannot appear on a type parameter.`,InvalidModifierOnTypeParameterPositions:({modifier:a})=>`'${a}' modifier can only appear on a type parameter of a class, interface or type alias.`,InvalidModifiersOrder:({orderedModifiers:a})=>`'${a[0]}' modifier must precede '${a[1]}' modifier.`,InvalidPropertyAccessAfterInstantiationExpression:\"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.\",InvalidTupleMemberLabel:\"Tuple members must be labeled with a simple identifier.\",MissingInterfaceName:\"'interface' declarations must be followed by an identifier.\",NonAbstractClassHasAbstractMethod:\"Abstract methods can only appear within an abstract class.\",NonClassMethodPropertyHasAbstractModifer:\"'abstract' modifier can only appear on a class, method, or property declaration.\",OptionalTypeBeforeRequired:\"A required element cannot follow an optional element.\",OverrideNotInSubClass:\"This member cannot have an 'override' modifier because its containing class does not extend another class.\",PatternIsOptional:\"A binding pattern parameter cannot be optional in an implementation signature.\",PrivateElementHasAbstract:\"Private elements cannot have the 'abstract' modifier.\",PrivateElementHasAccessibility:({modifier:a})=>`Private elements cannot have an accessibility modifier ('${a}').`,ReadonlyForMethodSignature:\"'readonly' modifier can only appear on a property declaration or index signature.\",ReservedArrowTypeParam:\"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.\",ReservedTypeAssertion:\"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\",SetAccessorCannotHaveOptionalParameter:\"A 'set' accessor cannot have an optional parameter.\",SetAccessorCannotHaveRestParameter:\"A 'set' accessor cannot have rest parameter.\",SetAccessorCannotHaveReturnType:\"A 'set' accessor cannot have a return type annotation.\",SingleTypeParameterWithoutTrailingComma:({typeParameterName:a})=>`Single type parameter ${a} should have a trailing comma. Example usage: <${a},>.`,StaticBlockCannotHaveModifier:\"Static class blocks cannot have any modifier.\",TupleOptionalAfterType:\"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).\",TypeAnnotationAfterAssign:\"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",TypeImportCannotSpecifyDefaultAndNamed:\"A type-only import can specify a default import or named bindings, but not both.\",TypeModifierIsUsedInTypeExports:\"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\",TypeModifierIsUsedInTypeImports:\"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\",UnexpectedParameterModifier:\"A parameter property is only allowed in a constructor implementation.\",UnexpectedReadonly:\"'readonly' type modifier is only permitted on array and tuple literal types.\",UnexpectedTypeAnnotation:\"Did not expect a type annotation here.\",UnexpectedTypeCastInParameter:\"Unexpected type cast in parameter position.\",UnsupportedImportTypeArgument:\"Argument in a type import must be a string literal.\",UnsupportedParameterPropertyKind:\"A parameter property may not be declared using a binding pattern.\",UnsupportedSignatureParameterKind:({type:a})=>`Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${a}.`});function zi(a){switch(a){case\"any\":return\"TSAnyKeyword\";case\"boolean\":return\"TSBooleanKeyword\";case\"bigint\":return\"TSBigIntKeyword\";case\"never\":return\"TSNeverKeyword\";case\"number\":return\"TSNumberKeyword\";case\"object\":return\"TSObjectKeyword\";case\"string\":return\"TSStringKeyword\";case\"symbol\":return\"TSSymbolKeyword\";case\"undefined\":return\"TSUndefinedKeyword\";case\"unknown\":return\"TSUnknownKeyword\";default:return}}function Ut(a){return a===\"private\"||a===\"public\"||a===\"protected\"}function Vi(a){return a===\"in\"||a===\"out\"}var qi=a=>class extends a{constructor(...e){super(...e),this.tsParseInOutModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:[\"in\",\"out\"],disallowedModifiers:[\"const\",\"public\",\"private\",\"protected\",\"readonly\",\"declare\",\"abstract\",\"override\"],errorTemplate:y.InvalidModifierOnTypeParameter}),this.tsParseConstModifier=this.tsParseModifiers.bind(this,{allowedModifiers:[\"const\"],disallowedModifiers:[\"in\",\"out\"],errorTemplate:y.InvalidModifierOnTypeParameterPositions}),this.tsParseInOutConstModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:[\"in\",\"out\",\"const\"],disallowedModifiers:[\"public\",\"private\",\"protected\",\"readonly\",\"declare\",\"abstract\",\"override\"],errorTemplate:y.InvalidModifierOnTypeParameter})}getScopeHandler(){return at}tsIsIdentifier(){return C(this.state.type)}tsTokenCanFollowModifier(){return this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(139)||this.isLiteralPropertyName()}tsNextTokenOnSameLineAndCanFollowModifier(){return this.next(),this.hasPrecedingLineBreak()?!1:this.tsTokenCanFollowModifier()}tsNextTokenCanFollowModifier(){return this.match(106)?(this.next(),this.tsTokenCanFollowModifier()):this.tsNextTokenOnSameLineAndCanFollowModifier()}tsParseModifier(e,s){if(!C(this.state.type)&&this.state.type!==58&&this.state.type!==75)return;let i=this.state.value;if(e.includes(i)){if(s&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return i}}tsParseModifiers({allowedModifiers:e,disallowedModifiers:s,stopOnStartOfClassStaticBlock:i,errorTemplate:r=y.InvalidModifierOnTypeMember},n){let o=(l,c,u,f)=>{c===u&&n[f]&&this.raise(y.InvalidModifiersOrder,l,{orderedModifiers:[u,f]})},h=(l,c,u,f)=>{(n[u]&&c===f||n[f]&&c===u)&&this.raise(y.IncompatibleModifiers,l,{modifiers:[u,f]})};for(;;){let{startLoc:l}=this.state,c=this.tsParseModifier(e.concat(s??[]),i);if(!c)break;Ut(c)?n.accessibility?this.raise(y.DuplicateAccessibilityModifier,l,{modifier:c}):(o(l,c,c,\"override\"),o(l,c,c,\"static\"),o(l,c,c,\"readonly\"),n.accessibility=c):Vi(c)?(n[c]&&this.raise(y.DuplicateModifier,l,{modifier:c}),n[c]=!0,o(l,c,\"in\",\"out\")):(hasOwnProperty.call(n,c)?this.raise(y.DuplicateModifier,l,{modifier:c}):(o(l,c,\"static\",\"readonly\"),o(l,c,\"static\",\"override\"),o(l,c,\"override\",\"readonly\"),o(l,c,\"abstract\",\"override\"),h(l,c,\"declare\",\"override\"),h(l,c,\"static\",\"abstract\")),n[c]=!0),s!=null&&s.includes(c)&&this.raise(r,l,{modifier:c})}}tsIsListTerminator(e){switch(e){case\"EnumMembers\":case\"TypeMembers\":return this.match(8);case\"HeritageClauseElement\":return this.match(5);case\"TupleElementTypes\":return this.match(3);case\"TypeParametersOrArguments\":return this.match(48)}}tsParseList(e,s){let i=[];for(;!this.tsIsListTerminator(e);)i.push(s());return i}tsParseDelimitedList(e,s,i){return $i(this.tsParseDelimitedListWorker(e,s,!0,i))}tsParseDelimitedListWorker(e,s,i,r){let n=[],o=-1;for(;!this.tsIsListTerminator(e);){o=-1;let h=s();if(h==null)return;if(n.push(h),this.eat(12)){o=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(e))break;i&&this.expect(12);return}return r&&(r.value=o),n}tsParseBracketedList(e,s,i,r,n){r||(i?this.expect(0):this.expect(47));let o=this.tsParseDelimitedList(e,s,n);return i?this.expect(3):this.expect(48),o}tsParseImportType(){let e=this.startNode();return this.expect(83),this.expect(10),this.match(134)||this.raise(y.UnsupportedImportTypeArgument,this.state.startLoc),e.argument=super.parseExprAtom(),this.eat(12)&&!this.match(11)?(e.options=super.parseMaybeAssignAllowIn(),this.eat(12)):e.options=null,this.expect(11),this.eat(16)&&(e.qualifier=this.tsParseEntityName()),this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSImportType\")}tsParseEntityName(e=!0){let s=this.parseIdentifier(e);for(;this.eat(16);){let i=this.startNodeAtNode(s);i.left=s,i.right=this.parseIdentifier(e),s=this.finishNode(i,\"TSQualifiedName\")}return s}tsParseTypeReference(){let e=this.startNode();return e.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSTypeReference\")}tsParseThisTypePredicate(e){this.next();let s=this.startNodeAtNode(e);return s.parameterName=e,s.typeAnnotation=this.tsParseTypeAnnotation(!1),s.asserts=!1,this.finishNode(s,\"TSTypePredicate\")}tsParseThisTypeNode(){let e=this.startNode();return this.next(),this.finishNode(e,\"TSThisType\")}tsParseTypeQuery(){let e=this.startNode();return this.expect(87),this.match(83)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSTypeQuery\")}tsParseTypeParameter(e){let s=this.startNode();return e(s),s.name=this.tsParseTypeParameterName(),s.constraint=this.tsEatThenParseType(81),s.default=this.tsEatThenParseType(29),this.finishNode(s,\"TSTypeParameter\")}tsTryParseTypeParameters(e){if(this.match(47))return this.tsParseTypeParameters(e)}tsParseTypeParameters(e){let s=this.startNode();this.match(47)||this.match(143)?this.next():this.unexpected();let i={value:-1};return s.params=this.tsParseBracketedList(\"TypeParametersOrArguments\",this.tsParseTypeParameter.bind(this,e),!1,!0,i),s.params.length===0&&this.raise(y.EmptyTypeParameters,s),i.value!==-1&&this.addExtra(s,\"trailingComma\",i.value),this.finishNode(s,\"TSTypeParameterDeclaration\")}tsFillSignature(e,s){let i=e===19,r=\"parameters\",n=\"typeAnnotation\";s.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),s[r]=this.tsParseBindingListForSignature(),i?s[n]=this.tsParseTypeOrTypePredicateAnnotation(e):this.match(e)&&(s[n]=this.tsParseTypeOrTypePredicateAnnotation(e))}tsParseBindingListForSignature(){let e=super.parseBindingList(11,41,2);for(let s of e){let{type:i}=s;(i===\"AssignmentPattern\"||i===\"TSParameterProperty\")&&this.raise(y.UnsupportedSignatureParameterKind,s,{type:i})}return e}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(e,s){return this.tsFillSignature(14,s),this.tsParseTypeMemberSemicolon(),this.finishNode(s,e)}tsIsUnambiguouslyIndexSignature(){return this.next(),C(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(e){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let s=this.parseIdentifier();s.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(s),this.expect(3),e.parameters=[s];let i=this.tsTryParseTypeAnnotation();return i&&(e.typeAnnotation=i),this.tsParseTypeMemberSemicolon(),this.finishNode(e,\"TSIndexSignature\")}tsParsePropertyOrMethodSignature(e,s){this.eat(17)&&(e.optional=!0);let i=e;if(this.match(10)||this.match(47)){s&&this.raise(y.ReadonlyForMethodSignature,e);let r=i;r.kind&&this.match(47)&&this.raise(y.AccessorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,r),this.tsParseTypeMemberSemicolon();let n=\"parameters\",o=\"typeAnnotation\";if(r.kind===\"get\")r[n].length>0&&(this.raise(p.BadGetterArity,this.state.curPosition()),this.isThisParam(r[n][0])&&this.raise(y.AccessorCannotDeclareThisParameter,this.state.curPosition()));else if(r.kind===\"set\"){if(r[n].length!==1)this.raise(p.BadSetterArity,this.state.curPosition());else{let h=r[n][0];this.isThisParam(h)&&this.raise(y.AccessorCannotDeclareThisParameter,this.state.curPosition()),h.type===\"Identifier\"&&h.optional&&this.raise(y.SetAccessorCannotHaveOptionalParameter,this.state.curPosition()),h.type===\"RestElement\"&&this.raise(y.SetAccessorCannotHaveRestParameter,this.state.curPosition())}r[o]&&this.raise(y.SetAccessorCannotHaveReturnType,r[o])}else r.kind=\"method\";return this.finishNode(r,\"TSMethodSignature\")}else{let r=i;s&&(r.readonly=!0);let n=this.tsTryParseTypeAnnotation();return n&&(r.typeAnnotation=n),this.tsParseTypeMemberSemicolon(),this.finishNode(r,\"TSPropertySignature\")}}tsParseTypeMember(){let e=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\",e);if(this.match(77)){let i=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember(\"TSConstructSignatureDeclaration\",e):(e.key=this.createIdentifier(i,\"new\"),this.tsParsePropertyOrMethodSignature(e,!1))}this.tsParseModifiers({allowedModifiers:[\"readonly\"],disallowedModifiers:[\"declare\",\"abstract\",\"private\",\"protected\",\"public\",\"static\",\"override\"]},e);let s=this.tsTryParseIndexSignature(e);return s||(super.parsePropertyName(e),!e.computed&&e.key.type===\"Identifier\"&&(e.key.name===\"get\"||e.key.name===\"set\")&&this.tsTokenCanFollowModifier()&&(e.kind=e.key.name,super.parsePropertyName(e)),this.tsParsePropertyOrMethodSignature(e,!!e.readonly))}tsParseTypeLiteral(){let e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,\"TSTypeLiteral\")}tsParseObjectTypeMembers(){this.expect(5);let e=this.tsParseList(\"TypeMembers\",this.tsParseTypeMember.bind(this));return this.expect(8),e}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedType(){let e=this.startNode();this.expect(5),this.match(53)?(e.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(e.readonly=!0),this.expect(0);{let s=this.startNode();s.name=this.tsParseTypeParameterName(),s.constraint=this.tsExpectThenParseType(58),e.typeParameter=this.finishNode(s,\"TSTypeParameter\")}return e.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(e.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(e,\"TSMappedType\")}tsParseTupleType(){let e=this.startNode();e.elementTypes=this.tsParseBracketedList(\"TupleElementTypes\",this.tsParseTupleElementType.bind(this),!0,!1);let s=!1;return e.elementTypes.forEach(i=>{let{type:r}=i;s&&r!==\"TSRestType\"&&r!==\"TSOptionalType\"&&!(r===\"TSNamedTupleMember\"&&i.optional)&&this.raise(y.OptionalTypeBeforeRequired,i),s||(s=r===\"TSNamedTupleMember\"&&i.optional||r===\"TSOptionalType\")}),this.finishNode(e,\"TSTupleType\")}tsParseTupleElementType(){let{startLoc:e}=this.state,s=this.eat(21),i,r,n,o,l=D(this.state.type)?this.lookaheadCharCode():null;if(l===58)i=!0,n=!1,r=this.parseIdentifier(!0),this.expect(14),o=this.tsParseType();else if(l===63){n=!0;let c=this.state.startLoc,u=this.state.value,f=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(i=!0,r=this.createIdentifier(this.startNodeAt(c),u),this.expect(17),this.expect(14),o=this.tsParseType()):(i=!1,o=f,this.expect(17))}else o=this.tsParseType(),n=this.eat(17),i=this.eat(14);if(i){let c;r?(c=this.startNodeAtNode(r),c.optional=n,c.label=r,c.elementType=o,this.eat(17)&&(c.optional=!0,this.raise(y.TupleOptionalAfterType,this.state.lastTokStartLoc))):(c=this.startNodeAtNode(o),c.optional=n,this.raise(y.InvalidTupleMemberLabel,o),c.label=o,c.elementType=this.tsParseType()),o=this.finishNode(c,\"TSNamedTupleMember\")}else if(n){let c=this.startNodeAtNode(o);c.typeAnnotation=o,o=this.finishNode(c,\"TSOptionalType\")}if(s){let c=this.startNodeAt(e);c.typeAnnotation=o,o=this.finishNode(c,\"TSRestType\")}return o}tsParseParenthesizedType(){let e=this.startNode();return this.expect(10),e.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(e,\"TSParenthesizedType\")}tsParseFunctionOrConstructorType(e,s){let i=this.startNode();return e===\"TSConstructorType\"&&(i.abstract=!!s,s&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(()=>this.tsFillSignature(19,i)),this.finishNode(i,e)}tsParseLiteralTypeNode(){let e=this.startNode();switch(this.state.type){case 135:case 136:case 134:case 85:case 86:e.literal=super.parseExprAtom();break;default:this.unexpected()}return this.finishNode(e,\"TSLiteralType\")}tsParseTemplateLiteralType(){let e=this.startNode();return e.literal=super.parseTemplate(!1),this.finishNode(e,\"TSLiteralType\")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let e=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e}tsParseNonArrayType(){switch(this.state.type){case 134:case 135:case 136:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value===\"-\"){let e=this.startNode(),s=this.lookahead();return s.type!==135&&s.type!==136&&this.unexpected(),e.literal=this.parseMaybeUnary(),this.finishNode(e,\"TSLiteralType\")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:e}=this.state;if(C(e)||e===88||e===84){let s=e===88?\"TSVoidKeyword\":e===84?\"TSNullKeyword\":zi(this.state.value);if(s!==void 0&&this.lookaheadCharCode()!==46){let i=this.startNode();return this.next(),this.finishNode(i,s)}return this.tsParseTypeReference()}}}this.unexpected()}tsParseArrayTypeOrHigher(){let e=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let s=this.startNodeAtNode(e);s.elementType=e,this.expect(3),e=this.finishNode(s,\"TSArrayType\")}else{let s=this.startNodeAtNode(e);s.objectType=e,s.indexType=this.tsParseType(),this.expect(3),e=this.finishNode(s,\"TSIndexedAccessType\")}return e}tsParseTypeOperator(){let e=this.startNode(),s=this.state.value;return this.next(),e.operator=s,e.typeAnnotation=this.tsParseTypeOperatorOrHigher(),s===\"readonly\"&&this.tsCheckTypeAnnotationForReadOnly(e),this.finishNode(e,\"TSTypeOperator\")}tsCheckTypeAnnotationForReadOnly(e){switch(e.typeAnnotation.type){case\"TSTupleType\":case\"TSArrayType\":return;default:this.raise(y.UnexpectedReadonly,e)}}tsParseInferType(){let e=this.startNode();this.expectContextual(115);let s=this.startNode();return s.name=this.tsParseTypeParameterName(),s.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),e.typeParameter=this.finishNode(s,\"TSTypeParameter\"),this.finishNode(e,\"TSInferType\")}tsParseConstraintForInferType(){if(this.eat(81)){let e=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return e}}tsParseTypeOperatorOrHigher(){return li(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(e,s,i){let r=this.startNode(),n=this.eat(i),o=[];do o.push(s());while(this.eat(i));return o.length===1&&!n?o[0]:(r.types=o,this.finishNode(r,e))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType(\"TSIntersectionType\",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType(\"TSUnionType\",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(C(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:e}=this.state,s=e.length;try{return this.parseObjectLike(8,!0),e.length===s}catch{return!1}}if(this.match(0)){this.next();let{errors:e}=this.state,s=e.length;try{return super.parseBindingList(3,93,1),e.length===s}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(e){return this.tsInType(()=>{let s=this.startNode();this.expect(e);let i=this.startNode(),r=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(r&&this.match(78)){let h=this.tsParseThisTypeOrThisTypePredicate();return h.type===\"TSThisType\"?(i.parameterName=h,i.asserts=!0,i.typeAnnotation=null,h=this.finishNode(i,\"TSTypePredicate\")):(this.resetStartLocationFromNode(h,i),h.asserts=!0),s.typeAnnotation=h,this.finishNode(s,\"TSTypeAnnotation\")}let n=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!n)return r?(i.parameterName=this.parseIdentifier(),i.asserts=r,i.typeAnnotation=null,s.typeAnnotation=this.finishNode(i,\"TSTypePredicate\"),this.finishNode(s,\"TSTypeAnnotation\")):this.tsParseTypeAnnotation(!1,s);let o=this.tsParseTypeAnnotation(!1);return i.parameterName=n,i.typeAnnotation=o,i.asserts=r,s.typeAnnotation=this.finishNode(i,\"TSTypePredicate\"),this.finishNode(s,\"TSTypeAnnotation\")})}tsTryParseTypeOrTypePredicateAnnotation(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)}tsTryParseTypeAnnotation(){if(this.match(14))return this.tsParseTypeAnnotation()}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let e=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),e}tsParseTypePredicateAsserts(){if(this.state.type!==109)return!1;let e=this.state.containsEsc;return this.next(),!C(this.state.type)&&!this.match(78)?!1:(e&&this.raise(p.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:\"asserts\"}),!0)}tsParseTypeAnnotation(e=!0,s=this.startNode()){return this.tsInType(()=>{e&&this.expect(14),s.typeAnnotation=this.tsParseType()}),this.finishNode(s,\"TSTypeAnnotation\")}tsParseType(){Rt(this.state.inType);let e=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return e;let s=this.startNodeAtNode(e);return s.checkType=e,s.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),s.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),s.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(s,\"TSConditionalType\")}isAbstractConstructorSignature(){return this.isContextual(124)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType(\"TSFunctionType\"):this.match(77)?this.tsParseFunctionOrConstructorType(\"TSConstructorType\"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType(\"TSConstructorType\",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption(\"typescript\",\"disallowAmbiguousJSXLike\")&&this.raise(y.ReservedTypeAssertion,this.state.startLoc);let e=this.startNode();return e.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?this.tsParseTypeReference():this.tsParseType())),this.expect(48),e.expression=this.parseMaybeUnary(),this.finishNode(e,\"TSTypeAssertion\")}tsParseHeritageClause(e){let s=this.state.startLoc,i=this.tsParseDelimitedList(\"HeritageClauseElement\",()=>{let r=this.startNode();return r.expression=this.tsParseEntityName(),this.match(47)&&(r.typeParameters=this.tsParseTypeArguments()),this.finishNode(r,\"TSExpressionWithTypeArguments\")});return i.length||this.raise(y.EmptyHeritageClauseType,s,{token:e}),i}tsParseInterfaceDeclaration(e,s={}){if(this.hasFollowingLineBreak())return null;this.expectContextual(129),s.declare&&(e.declare=!0),C(this.state.type)?(e.id=this.parseIdentifier(),this.checkIdentifier(e.id,130)):(e.id=null,this.raise(y.MissingInterfaceName,this.state.startLoc)),e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(e.extends=this.tsParseHeritageClause(\"extends\"));let i=this.startNode();return i.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(i,\"TSInterfaceBody\"),this.finishNode(e,\"TSInterfaceDeclaration\")}tsParseTypeAliasDeclaration(e){return e.id=this.parseIdentifier(),this.checkIdentifier(e.id,2),e.typeAnnotation=this.tsInType(()=>{if(e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers),this.expect(29),this.isContextual(114)&&this.lookahead().type!==16){let s=this.startNode();return this.next(),this.finishNode(s,\"TSIntrinsicKeyword\")}return this.tsParseType()}),this.semicolon(),this.finishNode(e,\"TSTypeAliasDeclaration\")}tsInNoContext(e){let s=this.state.context;this.state.context=[s[0]];try{return e()}finally{this.state.context=s}}tsInType(e){let s=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=s}}tsInDisallowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsInAllowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsEatThenParseType(e){if(this.match(e))return this.tsNextThenParseType()}tsExpectThenParseType(e){return this.tsInType(()=>(this.expect(e),this.tsParseType()))}tsNextThenParseType(){return this.tsInType(()=>(this.next(),this.tsParseType()))}tsParseEnumMember(){let e=this.startNode();return e.id=this.match(134)?super.parseStringLiteral(this.state.value):this.parseIdentifier(!0),this.eat(29)&&(e.initializer=super.parseMaybeAssignAllowIn()),this.finishNode(e,\"TSEnumMember\")}tsParseEnumDeclaration(e,s={}){return s.const&&(e.const=!0),s.declare&&(e.declare=!0),this.expectContextual(126),e.id=this.parseIdentifier(),this.checkIdentifier(e.id,e.const?8971:8459),this.expect(5),e.members=this.tsParseDelimitedList(\"EnumMembers\",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,\"TSEnumDeclaration\")}tsParseModuleBlock(){let e=this.startNode();return this.scope.enter(0),this.expect(5),super.parseBlockOrModuleBlockBody(e.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(e,\"TSModuleBlock\")}tsParseModuleOrNamespaceDeclaration(e,s=!1){if(e.id=this.parseIdentifier(),s||this.checkIdentifier(e.id,1024),this.eat(16)){let i=this.startNode();this.tsParseModuleOrNamespaceDeclaration(i,!0),e.body=i}else this.scope.enter(256),this.prodParam.enter(0),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,\"TSModuleDeclaration\")}tsParseAmbientExternalModuleDeclaration(e){return this.isContextual(112)?(e.kind=\"global\",e.global=!0,e.id=this.parseIdentifier()):this.match(134)?(e.kind=\"module\",e.id=super.parseStringLiteral(this.state.value)):this.unexpected(),this.match(5)?(this.scope.enter(256),this.prodParam.enter(0),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(e,\"TSModuleDeclaration\")}tsParseImportEqualsDeclaration(e,s,i){e.isExport=i||!1,e.id=s||this.parseIdentifier(),this.checkIdentifier(e.id,4096),this.expect(29);let r=this.tsParseModuleReference();return e.importKind===\"type\"&&r.type!==\"TSExternalModuleReference\"&&this.raise(y.ImportAliasHasImportType,r),e.moduleReference=r,this.semicolon(),this.finishNode(e,\"TSImportEqualsDeclaration\")}tsIsExternalModuleReference(){return this.isContextual(119)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){let e=this.startNode();return this.expectContextual(119),this.expect(10),this.match(134)||this.unexpected(),e.expression=super.parseExprAtom(),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(e,\"TSExternalModuleReference\")}tsLookAhead(e){let s=this.state.clone(),i=e();return this.state=s,i}tsTryParseAndCatch(e){let s=this.tryParse(i=>e()||i());if(!(s.aborted||!s.node))return s.error&&(this.state=s.failState),s.node}tsTryParse(e){let s=this.state.clone(),i=e();if(i!==void 0&&i!==!1)return i;this.state=s}tsTryParseDeclare(e){if(this.isLineTerminator())return;let s=this.state.type,i;return this.isContextual(100)&&(s=74,i=\"let\"),this.tsInAmbientContext(()=>{switch(s){case 68:return e.declare=!0,super.parseFunctionStatement(e,!1,!1);case 80:return e.declare=!0,this.parseClass(e,!0,!1);case 126:return this.tsParseEnumDeclaration(e,{declare:!0});case 112:return this.tsParseAmbientExternalModuleDeclaration(e);case 75:case 74:return!this.match(75)||!this.isLookaheadContextual(\"enum\")?(e.declare=!0,this.parseVarStatement(e,i||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(e,{const:!0,declare:!0}));case 129:{let r=this.tsParseInterfaceDeclaration(e,{declare:!0});if(r)return r}default:if(C(s))return this.tsParseDeclaration(e,this.state.value,!0,null)}})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)}tsParseExpressionStatement(e,s,i){switch(s.name){case\"declare\":{let r=this.tsTryParseDeclare(e);return r&&(r.declare=!0),r}case\"global\":if(this.match(5)){this.scope.enter(256),this.prodParam.enter(0);let r=e;return r.kind=\"global\",r.global=!0,r.id=s,r.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(r,\"TSModuleDeclaration\")}break;default:return this.tsParseDeclaration(e,s.name,!1,i)}}tsParseDeclaration(e,s,i,r){switch(s){case\"abstract\":if(this.tsCheckLineTerminator(i)&&(this.match(80)||C(this.state.type)))return this.tsParseAbstractDeclaration(e,r);break;case\"module\":if(this.tsCheckLineTerminator(i)){if(this.match(134))return this.tsParseAmbientExternalModuleDeclaration(e);if(C(this.state.type))return e.kind=\"module\",this.tsParseModuleOrNamespaceDeclaration(e)}break;case\"namespace\":if(this.tsCheckLineTerminator(i)&&C(this.state.type))return e.kind=\"namespace\",this.tsParseModuleOrNamespaceDeclaration(e);break;case\"type\":if(this.tsCheckLineTerminator(i)&&C(this.state.type))return this.tsParseTypeAliasDeclaration(e);break}}tsCheckLineTerminator(e){return e?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(e){if(!this.match(47))return;let s=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let i=this.tsTryParseAndCatch(()=>{let r=this.startNodeAt(e);return r.typeParameters=this.tsParseTypeParameters(this.tsParseConstModifier),super.parseFunctionParams(r),r.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),r});if(this.state.maybeInArrowParameters=s,!!i)return super.parseArrowExpression(i,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let e=this.startNode();return e.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList(\"TypeParametersOrArguments\",this.tsParseType.bind(this))))),e.params.length===0?this.raise(y.EmptyTypeArguments,e):!this.state.inType&&this.curContext()===E.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(e,\"TSTypeParameterInstantiation\")}tsIsDeclarationStart(){return ci(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(e,s){let i=this.state.startLoc,r={};this.tsParseModifiers({allowedModifiers:[\"public\",\"private\",\"protected\",\"override\",\"readonly\"]},r);let n=r.accessibility,o=r.override,h=r.readonly;!(e&4)&&(n||h||o)&&this.raise(y.UnexpectedParameterModifier,i);let l=this.parseMaybeDefault();e&2&&this.parseFunctionParamType(l);let c=this.parseMaybeDefault(l.loc.start,l);if(n||h||o){let u=this.startNodeAt(i);return s.length&&(u.decorators=s),n&&(u.accessibility=n),h&&(u.readonly=h),o&&(u.override=o),c.type!==\"Identifier\"&&c.type!==\"AssignmentPattern\"&&this.raise(y.UnsupportedParameterPropertyKind,u),u.parameter=c,this.finishNode(u,\"TSParameterProperty\")}return s.length&&(l.decorators=s),c}isSimpleParameter(e){return e.type===\"TSParameterProperty\"&&super.isSimpleParameter(e.parameter)||super.isSimpleParameter(e)}tsDisallowOptionalPattern(e){for(let s of e.params)s.type!==\"Identifier\"&&s.optional&&!this.state.isAmbientContext&&this.raise(y.PatternIsOptional,s)}setArrowFunctionParameters(e,s,i){super.setArrowFunctionParameters(e,s,i),this.tsDisallowOptionalPattern(e)}parseFunctionBodyAndFinish(e,s,i=!1){this.match(14)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let r=s===\"FunctionDeclaration\"?\"TSDeclareFunction\":s===\"ClassMethod\"||s===\"ClassPrivateMethod\"?\"TSDeclareMethod\":void 0;return r&&!this.match(5)&&this.isLineTerminator()?this.finishNode(e,r):r===\"TSDeclareFunction\"&&this.state.isAmbientContext&&(this.raise(y.DeclareFunctionHasImplementation,e),e.declare)?super.parseFunctionBodyAndFinish(e,r,i):(this.tsDisallowOptionalPattern(e),super.parseFunctionBodyAndFinish(e,s,i))}registerFunctionStatementId(e){!e.body&&e.id?this.checkIdentifier(e.id,1024):super.registerFunctionStatementId(e)}tsCheckForInvalidTypeCasts(e){e.forEach(s=>{(s==null?void 0:s.type)===\"TSTypeCastExpression\"&&this.raise(y.UnexpectedTypeAnnotation,s.typeAnnotation)})}toReferencedList(e,s){return this.tsCheckForInvalidTypeCasts(e),e}parseArrayLike(e,s,i,r){let n=super.parseArrayLike(e,s,i,r);return n.type===\"ArrayExpression\"&&this.tsCheckForInvalidTypeCasts(n.elements),n}parseSubscript(e,s,i,r){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let o=this.startNodeAt(s);return o.expression=e,this.finishNode(o,\"TSNonNullExpression\")}let n=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(i)return r.stop=!0,e;r.optionalChainMember=n=!0,this.next()}if(this.match(47)||this.match(51)){let o,h=this.tsTryParseAndCatch(()=>{if(!i&&this.atPossibleAsyncArrow(e)){let f=this.tsTryParseGenericAsyncArrowFunction(s);if(f)return f}let l=this.tsParseTypeArgumentsInExpression();if(!l)return;if(n&&!this.match(10)){o=this.state.curPosition();return}if(Ie(this.state.type)){let f=super.parseTaggedTemplateExpression(e,s,r);return f.typeParameters=l,f}if(!i&&this.eat(10)){let f=this.startNodeAt(s);return f.callee=e,f.arguments=this.parseCallExpressionArguments(11),this.tsCheckForInvalidTypeCasts(f.arguments),f.typeParameters=l,r.optionalChainMember&&(f.optional=n),this.finishCallExpression(f,r.optionalChainMember)}let c=this.state.type;if(c===48||c===52||c!==10&&Ve(c)&&!this.hasPrecedingLineBreak())return;let u=this.startNodeAt(s);return u.expression=e,u.typeParameters=l,this.finishNode(u,\"TSInstantiationExpression\")});if(o&&this.unexpected(o,10),h)return h.type===\"TSInstantiationExpression\"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(y.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),h}return super.parseSubscript(e,s,i,r)}parseNewCallee(e){var s;super.parseNewCallee(e);let{callee:i}=e;i.type===\"TSInstantiationExpression\"&&!((s=i.extra)!=null&&s.parenthesized)&&(e.typeParameters=i.typeParameters,e.callee=i.expression)}parseExprOp(e,s,i){let r;if(we(58)>i&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(r=this.isContextual(120)))){let n=this.startNodeAt(s);return n.expression=e,n.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?(r&&this.raise(p.UnexpectedKeyword,this.state.startLoc,{keyword:\"const\"}),this.tsParseTypeReference()):this.tsParseType())),this.finishNode(n,r?\"TSSatisfiesExpression\":\"TSAsExpression\"),this.reScan_lt_gt(),this.parseExprOp(n,s,i)}return super.parseExprOp(e,s,i)}checkReservedWord(e,s,i,r){this.state.isAmbientContext||super.checkReservedWord(e,s,i,r)}checkImportReflection(e){super.checkImportReflection(e),e.module&&e.importKind!==\"value\"&&this.raise(y.ImportReflectionHasImportType,e.specifiers[0].loc.start)}checkDuplicateExports(){}isPotentialImportPhase(e){if(super.isPotentialImportPhase(e))return!0;if(this.isContextual(130)){let s=this.lookaheadCharCode();return e?s===123||s===42:s!==61}return!e&&this.isContextual(87)}applyImportPhase(e,s,i,r){super.applyImportPhase(e,s,i,r),s?e.exportKind=i===\"type\"?\"type\":\"value\":e.importKind=i===\"type\"||i===\"typeof\"?i:\"value\"}parseImport(e){if(this.match(134))return e.importKind=\"value\",super.parseImport(e);let s;if(C(this.state.type)&&this.lookaheadCharCode()===61)return e.importKind=\"value\",this.tsParseImportEqualsDeclaration(e);if(this.isContextual(130)){let i=this.parseMaybeImportPhase(e,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(e,i);s=super.parseImportSpecifiersAndAfter(e,i)}else s=super.parseImport(e);return s.importKind===\"type\"&&s.specifiers.length>1&&s.specifiers[0].type===\"ImportDefaultSpecifier\"&&this.raise(y.TypeImportCannotSpecifyDefaultAndNamed,s),s}parseExport(e,s){if(this.match(83)){this.next();let i=e,r=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?r=this.parseMaybeImportPhase(i,!1):i.importKind=\"value\",this.tsParseImportEqualsDeclaration(i,r,!0)}else if(this.eat(29)){let i=e;return i.expression=super.parseExpression(),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(i,\"TSExportAssignment\")}else if(this.eatContextual(93)){let i=e;return this.expectContextual(128),i.id=this.parseIdentifier(),this.semicolon(),this.finishNode(i,\"TSNamespaceExportDeclaration\")}else return super.parseExport(e,s)}isAbstractClass(){return this.isContextual(124)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0,!0)}if(this.match(129)){let e=this.tsParseInterfaceDeclaration(this.startNode());if(e)return e}return super.parseExportDefaultExpression()}parseVarStatement(e,s,i=!1){let{isAmbientContext:r}=this.state,n=super.parseVarStatement(e,s,i||r);if(!r)return n;for(let{id:o,init:h}of n.declarations)h&&(s!==\"const\"||o.typeAnnotation?this.raise(y.InitializerNotAllowedInAmbientContext,h):Hi(h,this.hasPlugin(\"estree\"))||this.raise(y.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference,h));return n}parseStatementContent(e,s){if(this.match(75)&&this.isLookaheadContextual(\"enum\")){let i=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(i,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){let i=this.tsParseInterfaceDeclaration(this.startNode());if(i)return i}return super.parseStatementContent(e,s)}parseAccessModifier(){return this.tsParseModifier([\"public\",\"protected\",\"private\"])}tsHasSomeModifiers(e,s){return s.some(i=>Ut(i)?e.accessibility===i:!!e[i])}tsIsStartOfStaticBlocks(){return this.isContextual(106)&&this.lookaheadCharCode()===123}parseClassMember(e,s,i){let r=[\"declare\",\"private\",\"public\",\"protected\",\"override\",\"abstract\",\"readonly\",\"static\"];this.tsParseModifiers({allowedModifiers:r,disallowedModifiers:[\"in\",\"out\"],stopOnStartOfClassStaticBlock:!0,errorTemplate:y.InvalidModifierOnTypeParameterPositions},s);let n=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(s,r)&&this.raise(y.StaticBlockCannotHaveModifier,this.state.curPosition()),super.parseClassStaticBlock(e,s)):this.parseClassMemberWithIsStatic(e,s,i,!!s.static)};s.declare?this.tsInAmbientContext(n):n()}parseClassMemberWithIsStatic(e,s,i,r){let n=this.tsTryParseIndexSignature(s);if(n){e.body.push(n),s.abstract&&this.raise(y.IndexSignatureHasAbstract,s),s.accessibility&&this.raise(y.IndexSignatureHasAccessibility,s,{modifier:s.accessibility}),s.declare&&this.raise(y.IndexSignatureHasDeclare,s),s.override&&this.raise(y.IndexSignatureHasOverride,s);return}!this.state.inAbstractClass&&s.abstract&&this.raise(y.NonAbstractClassHasAbstractMethod,s),s.override&&(i.hadSuperClass||this.raise(y.OverrideNotInSubClass,s)),super.parseClassMemberWithIsStatic(e,s,i,r)}parsePostMemberNameModifiers(e){this.eat(17)&&(e.optional=!0),e.readonly&&this.match(10)&&this.raise(y.ClassMethodHasReadonly,e),e.declare&&this.match(10)&&this.raise(y.ClassMethodHasDeclare,e)}parseExpressionStatement(e,s,i){return(s.type===\"Identifier\"?this.tsParseExpressionStatement(e,s,i):void 0)||super.parseExpressionStatement(e,s,i)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(e,s,i){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(e,s,i);let r=this.tryParse(()=>super.parseConditional(e,s));return r.node?(r.error&&(this.state=r.failState),r.node):(r.error&&super.setOptionalParametersError(i,r.error),e)}parseParenItem(e,s){let i=super.parseParenItem(e,s);if(this.eat(17)&&(i.optional=!0,this.resetEndLocation(e)),this.match(14)){let r=this.startNodeAt(s);return r.expression=e,r.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(r,\"TSTypeCastExpression\")}return e}parseExportDeclaration(e){if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(()=>this.parseExportDeclaration(e));let s=this.state.startLoc,i=this.eatContextual(125);if(i&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(y.ExpectedAmbientAfterExportDeclare,this.state.startLoc);let n=C(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(e);return n?((n.type===\"TSInterfaceDeclaration\"||n.type===\"TSTypeAliasDeclaration\"||i)&&(e.exportKind=\"type\"),i&&(this.resetStartLocation(n,s),n.declare=!0),n):null}parseClassId(e,s,i,r){if((!s||i)&&this.isContextual(113))return;super.parseClassId(e,s,i,e.declare?1024:8331);let n=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);n&&(e.typeParameters=n)}parseClassPropertyAnnotation(e){e.optional||(this.eat(35)?e.definite=!0:this.eat(17)&&(e.optional=!0));let s=this.tsTryParseTypeAnnotation();s&&(e.typeAnnotation=s)}parseClassProperty(e){if(this.parseClassPropertyAnnotation(e),this.state.isAmbientContext&&!(e.readonly&&!e.typeAnnotation)&&this.match(29)&&this.raise(y.DeclareClassFieldHasInitializer,this.state.startLoc),e.abstract&&this.match(29)){let{key:s}=e;this.raise(y.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:s.type===\"Identifier\"&&!e.computed?s.name:`[${this.input.slice(this.offsetToSourcePos(s.start),this.offsetToSourcePos(s.end))}]`})}return super.parseClassProperty(e)}parseClassPrivateProperty(e){return e.abstract&&this.raise(y.PrivateElementHasAbstract,e),e.accessibility&&this.raise(y.PrivateElementHasAccessibility,e,{modifier:e.accessibility}),this.parseClassPropertyAnnotation(e),super.parseClassPrivateProperty(e)}parseClassAccessorProperty(e){return this.parseClassPropertyAnnotation(e),e.optional&&this.raise(y.AccessorCannotBeOptional,e),super.parseClassAccessorProperty(e)}pushClassMethod(e,s,i,r,n,o){let h=this.tsTryParseTypeParameters(this.tsParseConstModifier);h&&n&&this.raise(y.ConstructorHasTypeParameters,h);let{declare:l=!1,kind:c}=s;l&&(c===\"get\"||c===\"set\")&&this.raise(y.DeclareAccessor,s,{kind:c}),h&&(s.typeParameters=h),super.pushClassMethod(e,s,i,r,n,o)}pushClassPrivateMethod(e,s,i,r){let n=this.tsTryParseTypeParameters(this.tsParseConstModifier);n&&(s.typeParameters=n),super.pushClassPrivateMethod(e,s,i,r)}declareClassPrivateMethodInScope(e,s){e.type!==\"TSDeclareMethod\"&&(e.type===\"MethodDefinition\"&&!hasOwnProperty.call(e.value,\"body\")||super.declareClassPrivateMethodInScope(e,s))}parseClassSuper(e){super.parseClassSuper(e),e.superClass&&(this.match(47)||this.match(51))&&(e.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(e.implements=this.tsParseHeritageClause(\"implements\"))}parseObjPropValue(e,s,i,r,n,o,h){let l=this.tsTryParseTypeParameters(this.tsParseConstModifier);return l&&(e.typeParameters=l),super.parseObjPropValue(e,s,i,r,n,o,h)}parseFunctionParams(e,s){let i=this.tsTryParseTypeParameters(this.tsParseConstModifier);i&&(e.typeParameters=i),super.parseFunctionParams(e,s)}parseVarId(e,s){super.parseVarId(e,s),e.id.type===\"Identifier\"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(e.definite=!0);let i=this.tsTryParseTypeAnnotation();i&&(e.id.typeAnnotation=i,this.resetEndLocation(e.id))}parseAsyncArrowFromCallExpression(e,s){return this.match(14)&&(e.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(e,s)}parseMaybeAssign(e,s){var i,r,n,o,h;let l,c,u;if(this.hasPlugin(\"jsx\")&&(this.match(143)||this.match(47))){if(l=this.state.clone(),c=this.tryParse(()=>super.parseMaybeAssign(e,s),l),!c.error)return c.node;let{context:x}=this.state,S=x[x.length-1];(S===E.j_oTag||S===E.j_expr)&&x.pop()}if(!((i=c)!=null&&i.error)&&!this.match(47))return super.parseMaybeAssign(e,s);(!l||l===this.state)&&(l=this.state.clone());let f,d=this.tryParse(x=>{var S,N;f=this.tsParseTypeParameters(this.tsParseConstModifier);let w=super.parseMaybeAssign(e,s);return(w.type!==\"ArrowFunctionExpression\"||(S=w.extra)!=null&&S.parenthesized)&&x(),((N=f)==null?void 0:N.params.length)!==0&&this.resetStartLocationFromNode(w,f),w.typeParameters=f,w},l);if(!d.error&&!d.aborted)return f&&this.reportReservedArrowTypeParam(f),d.node;if(!c&&(Rt(!this.hasPlugin(\"jsx\")),u=this.tryParse(()=>super.parseMaybeAssign(e,s),l),!u.error))return u.node;if((r=c)!=null&&r.node)return this.state=c.failState,c.node;if(d.node)return this.state=d.failState,f&&this.reportReservedArrowTypeParam(f),d.node;if((n=u)!=null&&n.node)return this.state=u.failState,u.node;throw((o=c)==null?void 0:o.error)||d.error||((h=u)==null?void 0:h.error)}reportReservedArrowTypeParam(e){var s;e.params.length===1&&!e.params[0].constraint&&!((s=e.extra)!=null&&s.trailingComma)&&this.getPluginOption(\"typescript\",\"disallowAmbiguousJSXLike\")&&this.raise(y.ReservedArrowTypeParam,e)}parseMaybeUnary(e,s){return!this.hasPlugin(\"jsx\")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(e,s)}parseArrow(e){if(this.match(14)){let s=this.tryParse(i=>{let r=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&i(),r});if(s.aborted)return;s.thrown||(s.error&&(this.state=s.failState),e.returnType=s.node)}return super.parseArrow(e)}parseFunctionParamType(e){this.eat(17)&&(e.optional=!0);let s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s),this.resetEndLocation(e),e}isAssignable(e,s){switch(e.type){case\"TSTypeCastExpression\":return this.isAssignable(e.expression,s);case\"TSParameterProperty\":return!0;default:return super.isAssignable(e,s)}}toAssignable(e,s=!1){switch(e.type){case\"ParenthesizedExpression\":this.toAssignableParenthesizedExpression(e,s);break;case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":s?this.expressionScope.recordArrowParameterBindingError(y.UnexpectedTypeCastInParameter,e):this.raise(y.UnexpectedTypeCastInParameter,e),this.toAssignable(e.expression,s);break;case\"AssignmentExpression\":!s&&e.left.type===\"TSTypeCastExpression\"&&(e.left=this.typeCastToParameter(e.left));default:super.toAssignable(e,s)}}toAssignableParenthesizedExpression(e,s){switch(e.expression.type){case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":case\"ParenthesizedExpression\":this.toAssignable(e.expression,s);break;default:super.toAssignable(e,s)}}checkToRestConversion(e,s){switch(e.type){case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"TSTypeAssertion\":case\"TSNonNullExpression\":this.checkToRestConversion(e.expression,!1);break;default:super.checkToRestConversion(e,s)}}isValidLVal(e,s,i){switch(e){case\"TSTypeCastExpression\":return!0;case\"TSParameterProperty\":return\"parameter\";case\"TSNonNullExpression\":case\"TSInstantiationExpression\":return\"expression\";case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"TSTypeAssertion\":return(i!==64||!s)&&[\"expression\",!0];default:return super.isValidLVal(e,s,i)}}parseBindingAtom(){return this.state.type===78?this.parseIdentifier(!0):super.parseBindingAtom()}parseMaybeDecoratorArguments(e){if(this.match(47)||this.match(51)){let s=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let i=super.parseMaybeDecoratorArguments(e);return i.typeParameters=s,i}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(e)}checkCommaAfterRest(e){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===e?(this.next(),!1):super.checkCommaAfterRest(e)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(e,s){let i=super.parseMaybeDefault(e,s);return i.type===\"AssignmentPattern\"&&i.typeAnnotation&&i.right.startthis.isAssignable(s,!0)):super.shouldParseArrow(e)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(e){if(this.match(47)||this.match(51)){let s=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());s&&(e.typeParameters=s)}return super.jsxParseOpeningElementAfterName(e)}getGetterSetterExpectedParamCount(e){let s=super.getGetterSetterExpectedParamCount(e),r=this.getObjectOrClassMethodParams(e)[0];return r&&this.isThisParam(r)?s+1:s}parseCatchClauseParam(){let e=super.parseCatchClauseParam(),s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s,this.resetEndLocation(e)),e}tsInAmbientContext(e){let{isAmbientContext:s,strict:i}=this.state;this.state.isAmbientContext=!0,this.state.strict=!1;try{return e()}finally{this.state.isAmbientContext=s,this.state.strict=i}}parseClass(e,s,i){let r=this.state.inAbstractClass;this.state.inAbstractClass=!!e.abstract;try{return super.parseClass(e,s,i)}finally{this.state.inAbstractClass=r}}tsParseAbstractDeclaration(e,s){if(this.match(80))return e.abstract=!0,this.maybeTakeDecorators(s,this.parseClass(e,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return e.abstract=!0,this.raise(y.NonClassMethodPropertyHasAbstractModifer,e),this.tsParseInterfaceDeclaration(e)}else this.unexpected(null,80)}parseMethod(e,s,i,r,n,o,h){let l=super.parseMethod(e,s,i,r,n,o,h);if(l.abstract&&(this.hasPlugin(\"estree\")?!!l.value.body:!!l.body)){let{key:u}=l;this.raise(y.AbstractMethodHasImplementation,l,{methodName:u.type===\"Identifier\"&&!l.computed?u.name:`[${this.input.slice(this.offsetToSourcePos(u.start),this.offsetToSourcePos(u.end))}]`})}return l}tsParseTypeParameterName(){return this.parseIdentifier().name}shouldParseAsAmbientContext(){return!!this.getPluginOption(\"typescript\",\"dts\")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}parseExportSpecifier(e,s,i,r){return!s&&r?(this.parseTypeOnlyImportExportSpecifier(e,!1,i),this.finishNode(e,\"ExportSpecifier\")):(e.exportKind=\"value\",super.parseExportSpecifier(e,s,i,r))}parseImportSpecifier(e,s,i,r,n){return!s&&r?(this.parseTypeOnlyImportExportSpecifier(e,!0,i),this.finishNode(e,\"ImportSpecifier\")):(e.importKind=\"value\",super.parseImportSpecifier(e,s,i,r,i?4098:4096))}parseTypeOnlyImportExportSpecifier(e,s,i){let r=s?\"imported\":\"local\",n=s?\"local\":\"exported\",o=e[r],h,l=!1,c=!0,u=o.loc.start;if(this.isContextual(93)){let d=this.parseIdentifier();if(this.isContextual(93)){let x=this.parseIdentifier();D(this.state.type)?(l=!0,o=d,h=s?this.parseIdentifier():this.parseModuleExportName(),c=!1):(h=x,c=!1)}else D(this.state.type)?(c=!1,h=s?this.parseIdentifier():this.parseModuleExportName()):(l=!0,o=d)}else D(this.state.type)&&(l=!0,s?(o=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(o.name,o.loc.start,!0,!0)):o=this.parseModuleExportName());l&&i&&this.raise(s?y.TypeModifierIsUsedInTypeImports:y.TypeModifierIsUsedInTypeExports,u),e[r]=o,e[n]=h;let f=s?\"importKind\":\"exportKind\";e[f]=l?\"type\":\"value\",c&&this.eatContextual(93)&&(e[n]=s?this.parseIdentifier():this.parseModuleExportName()),e[n]||(e[n]=_(e[r])),s&&this.checkIdentifier(e[n],l?4098:4096)}};function Ki(a){if(a.type!==\"MemberExpression\")return!1;let{computed:t,property:e}=a;return t&&e.type!==\"StringLiteral\"&&(e.type!==\"TemplateLiteral\"||e.expressions.length>0)?!1:ss(a.object)}function Hi(a,t){var e;let{type:s}=a;if((e=a.extra)!=null&&e.parenthesized)return!1;if(t){if(s===\"Literal\"){let{value:i}=a;if(typeof i==\"string\"||typeof i==\"boolean\")return!0}}else if(s===\"StringLiteral\"||s===\"BooleanLiteral\")return!0;return!!(ts(a,t)||Ji(a,t)||s===\"TemplateLiteral\"&&a.expressions.length===0||Ki(a))}function ts(a,t){return t?a.type===\"Literal\"&&(typeof a.value==\"number\"||\"bigint\"in a):a.type===\"NumericLiteral\"||a.type===\"BigIntLiteral\"}function Ji(a,t){if(a.type===\"UnaryExpression\"){let{operator:e,argument:s}=a;if(e===\"-\"&&ts(s,t))return!0}return!1}function ss(a){return a.type===\"Identifier\"?!0:a.type!==\"MemberExpression\"||a.computed?!1:ss(a.object)}var _t=U`placeholders`({ClassNameIsRequired:\"A class name is required.\",UnexpectedSpace:\"Unexpected space in placeholder.\"}),Wi=a=>class extends a{parsePlaceholder(e){if(this.match(133)){let s=this.startNode();return this.next(),this.assertNoSpace(),s.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(133),this.finishPlaceholder(s,e)}}finishPlaceholder(e,s){let i=e;return(!i.expectedNode||!i.type)&&(i=this.finishNode(i,\"Placeholder\")),i.expectedNode=s,i}getTokenFromCode(e){e===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(133,2):super.getTokenFromCode(e)}parseExprAtom(e){return this.parsePlaceholder(\"Expression\")||super.parseExprAtom(e)}parseIdentifier(e){return this.parsePlaceholder(\"Identifier\")||super.parseIdentifier(e)}checkReservedWord(e,s,i,r){e!==void 0&&super.checkReservedWord(e,s,i,r)}parseBindingAtom(){return this.parsePlaceholder(\"Pattern\")||super.parseBindingAtom()}isValidLVal(e,s,i){return e===\"Placeholder\"||super.isValidLVal(e,s,i)}toAssignable(e,s){e&&e.type===\"Placeholder\"&&e.expectedNode===\"Expression\"?e.expectedNode=\"Pattern\":super.toAssignable(e,s)}chStartsBindingIdentifier(e,s){return!!(super.chStartsBindingIdentifier(e,s)||this.lookahead().type===133)}verifyBreakContinue(e,s){e.label&&e.label.type===\"Placeholder\"||super.verifyBreakContinue(e,s)}parseExpressionStatement(e,s){var i;if(s.type!==\"Placeholder\"||(i=s.extra)!=null&&i.parenthesized)return super.parseExpressionStatement(e,s);if(this.match(14)){let n=e;return n.label=this.finishPlaceholder(s,\"Identifier\"),this.next(),n.body=super.parseStatementOrSloppyAnnexBFunctionDeclaration(),this.finishNode(n,\"LabeledStatement\")}this.semicolon();let r=e;return r.name=s.name,this.finishPlaceholder(r,\"Statement\")}parseBlock(e,s,i){return this.parsePlaceholder(\"BlockStatement\")||super.parseBlock(e,s,i)}parseFunctionId(e){return this.parsePlaceholder(\"Identifier\")||super.parseFunctionId(e)}parseClass(e,s,i){let r=s?\"ClassDeclaration\":\"ClassExpression\";this.next();let n=this.state.strict,o=this.parsePlaceholder(\"Identifier\");if(o)if(this.match(81)||this.match(133)||this.match(5))e.id=o;else{if(i||!s)return e.id=null,e.body=this.finishPlaceholder(o,\"ClassBody\"),this.finishNode(e,r);throw this.raise(_t.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(e,s,i);return super.parseClassSuper(e),e.body=this.parsePlaceholder(\"ClassBody\")||super.parseClassBody(!!e.superClass,n),this.finishNode(e,r)}parseExport(e,s){let i=this.parsePlaceholder(\"Identifier\");if(!i)return super.parseExport(e,s);let r=e;if(!this.isContextual(98)&&!this.match(12))return r.specifiers=[],r.source=null,r.declaration=this.finishPlaceholder(i,\"Declaration\"),this.finishNode(r,\"ExportNamedDeclaration\");this.expectPlugin(\"exportDefaultFrom\");let n=this.startNode();return n.exported=i,r.specifiers=[this.finishNode(n,\"ExportDefaultSpecifier\")],super.parseExport(r,s)}isExportDefaultSpecifier(){if(this.match(65)){let e=this.nextTokenStart();if(this.isUnparsedContextual(e,\"from\")&&this.input.startsWith(q(133),this.nextTokenStartSince(e+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(e,s){var i;return(i=e.specifiers)!=null&&i.length?!0:super.maybeParseExportDefaultSpecifier(e,s)}checkExport(e){let{specifiers:s}=e;s!=null&&s.length&&(e.specifiers=s.filter(i=>i.exported.type===\"Placeholder\")),super.checkExport(e),e.specifiers=s}parseImport(e){let s=this.parsePlaceholder(\"Identifier\");if(!s)return super.parseImport(e);if(e.specifiers=[],!this.isContextual(98)&&!this.match(12))return e.source=this.finishPlaceholder(s,\"StringLiteral\"),this.semicolon(),this.finishNode(e,\"ImportDeclaration\");let i=this.startNodeAtNode(s);return i.local=s,e.specifiers.push(this.finishNode(i,\"ImportDefaultSpecifier\")),this.eat(12)&&(this.maybeParseStarImportSpecifier(e)||this.parseNamedImportSpecifiers(e)),this.expectContextual(98),e.source=this.parseImportSource(),this.semicolon(),this.finishNode(e,\"ImportDeclaration\")}parseImportSource(){return this.parsePlaceholder(\"StringLiteral\")||super.parseImportSource()}assertNoSpace(){this.state.start>this.offsetToSourcePos(this.state.lastTokEndLoc.index)&&this.raise(_t.UnexpectedSpace,this.state.lastTokEndLoc)}},Xi=a=>class extends a{parseV8Intrinsic(){if(this.match(54)){let e=this.state.startLoc,s=this.startNode();if(this.next(),C(this.state.type)){let i=this.parseIdentifierName(),r=this.createIdentifier(s,i);if(r.type=\"V8IntrinsicIdentifier\",this.match(10))return r}this.unexpected(e)}}parseExprAtom(e){return this.parseV8Intrinsic()||super.parseExprAtom(e)}},jt=[\"minimal\",\"fsharp\",\"hack\",\"smart\"],$t=[\"^^\",\"@@\",\"^\",\"%\",\"#\"];function Gi(a){if(a.has(\"decorators\")){if(a.has(\"decorators-legacy\"))throw new Error(\"Cannot use the decorators and decorators-legacy plugin together\");let e=a.get(\"decorators\").decoratorsBeforeExport;if(e!=null&&typeof e!=\"boolean\")throw new Error(\"'decoratorsBeforeExport' must be a boolean, if specified.\");let s=a.get(\"decorators\").allowCallParenthesized;if(s!=null&&typeof s!=\"boolean\")throw new Error(\"'allowCallParenthesized' must be a boolean.\")}if(a.has(\"flow\")&&a.has(\"typescript\"))throw new Error(\"Cannot combine flow and typescript plugins.\");if(a.has(\"placeholders\")&&a.has(\"v8intrinsic\"))throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");if(a.has(\"pipelineOperator\")){var t;let e=a.get(\"pipelineOperator\").proposal;if(!jt.includes(e)){let i=jt.map(r=>`\"${r}\"`).join(\", \");throw new Error(`\"pipelineOperator\" requires \"proposal\" option whose value must be one of: ${i}.`)}let s=((t=a.get(\"recordAndTuple\"))==null?void 0:t.syntaxType)===\"hash\";if(e===\"hack\"){if(a.has(\"placeholders\"))throw new Error(\"Cannot combine placeholders plugin and Hack-style pipes.\");if(a.has(\"v8intrinsic\"))throw new Error(\"Cannot combine v8intrinsic plugin and Hack-style pipes.\");let i=a.get(\"pipelineOperator\").topicToken;if(!$t.includes(i)){let r=$t.map(n=>`\"${n}\"`).join(\", \");throw new Error(`\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: ${r}.`)}if(i===\"#\"&&s)throw new Error(`Plugin conflict between \\`[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]\\` and \\`${JSON.stringify([\"recordAndTuple\",a.get(\"recordAndTuple\")])}\\`.`)}else if(e===\"smart\"&&s)throw new Error(`Plugin conflict between \\`[\"pipelineOperator\", { proposal: \"smart\" }]\\` and \\`${JSON.stringify([\"recordAndTuple\",a.get(\"recordAndTuple\")])}\\`.`)}if(a.has(\"moduleAttributes\")){if(a.has(\"deprecatedImportAssert\")||a.has(\"importAssertions\"))throw new Error(\"Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.\");if(a.get(\"moduleAttributes\").version!==\"may-2020\")throw new Error(\"The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.\")}if(a.has(\"importAssertions\")&&a.has(\"deprecatedImportAssert\"))throw new Error(\"Cannot combine importAssertions and deprecatedImportAssert plugins.\");if(!a.has(\"deprecatedImportAssert\")&&a.has(\"importAttributes\")&&a.get(\"importAttributes\").deprecatedAssertSyntax&&a.set(\"deprecatedImportAssert\",{}),a.has(\"recordAndTuple\")){let e=a.get(\"recordAndTuple\").syntaxType;if(e!=null){let s=[\"hash\",\"bar\"];if(!s.includes(e))throw new Error(\"The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: \"+s.map(i=>`'${i}'`).join(\", \"))}}if(a.has(\"asyncDoExpressions\")&&!a.has(\"doExpressions\")){let e=new Error(\"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\");throw e.missingPlugins=\"doExpressions\",e}if(a.has(\"optionalChainingAssign\")&&a.get(\"optionalChainingAssign\").version!==\"2023-07\")throw new Error(\"The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.\")}var is={estree:Zs,jsx:ji,flow:_i,typescript:qi,v8intrinsic:Xi,placeholders:Wi},Yi=Object.keys(is);function Qi(){return{sourceType:\"script\",sourceFilename:void 0,startIndex:0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0}}function Zi(a){let t=Qi();if(a==null)return t;if(a.annexB!=null&&a.annexB!==!1)throw new Error(\"The `annexB` option can only be set to `false`.\");for(let e of Object.keys(t))a[e]!=null&&(t[e]=a[e]);if(t.startLine===1)a.startIndex==null&&t.startColumn>0?t.startIndex=t.startColumn:a.startColumn==null&&t.startIndex>0&&(t.startColumn=t.startIndex);else if((a.startColumn==null||a.startIndex==null)&&a.startIndex!=null)throw new Error(\"With a `startLine > 1` you must also specify `startIndex` and `startColumn`.\");return t}var ot=class extends nt{checkProto(t,e,s,i){if(t.type===\"SpreadElement\"||this.isObjectMethod(t)||t.computed||t.shorthand)return;let r=t.key;if((r.type===\"Identifier\"?r.name:r.value)===\"__proto__\"){if(e){this.raise(p.RecordNoProto,r);return}s.used&&(i?i.doubleProtoLoc===null&&(i.doubleProtoLoc=r.loc.start):this.raise(p.DuplicateProto,r)),s.used=!0}}shouldExitDescending(t,e){return t.type===\"ArrowFunctionExpression\"&&this.offsetToSourcePos(t.start)===e}getExpression(){this.enterInitialScopes(),this.nextToken();let t=this.parseExpression();return this.match(140)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,e){return t?this.disallowInAnd(()=>this.parseExpressionBase(e)):this.allowInAnd(()=>this.parseExpressionBase(e))}parseExpressionBase(t){let e=this.state.startLoc,s=this.parseMaybeAssign(t);if(this.match(12)){let i=this.startNodeAt(e);for(i.expressions=[s];this.eat(12);)i.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(i.expressions),this.finishNode(i,\"SequenceExpression\")}return s}parseMaybeAssignDisallowIn(t,e){return this.disallowInAnd(()=>this.parseMaybeAssign(t,e))}parseMaybeAssignAllowIn(t,e){return this.allowInAnd(()=>this.parseMaybeAssign(t,e))}setOptionalParametersError(t,e){var s;t.optionalParametersLoc=(s=e==null?void 0:e.loc)!=null?s:this.state.startLoc}parseMaybeAssign(t,e){let s=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){let o=this.parseYield();return e&&(o=e.call(this,o,s)),o}let i;t?i=!1:(t=new Q,i=!0);let{type:r}=this.state;(r===10||C(r))&&(this.state.potentialArrowAt=this.state.start);let n=this.parseMaybeConditional(t);if(e&&(n=e.call(this,n,s)),ri(this.state.type)){let o=this.startNodeAt(s),h=this.state.value;if(o.operator=h,this.match(29)){this.toAssignable(n,!0),o.left=n;let l=s.index;t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=l&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=l&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=l&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)}else o.left=n;return this.next(),o.right=this.parseMaybeAssign(),this.checkLVal(n,this.finishNode(o,\"AssignmentExpression\")),o}else i&&this.checkExpressionErrors(t,!0);return n}parseMaybeConditional(t){let e=this.state.startLoc,s=this.state.potentialArrowAt,i=this.parseExprOps(t);return this.shouldExitDescending(i,s)?i:this.parseConditional(i,e,t)}parseConditional(t,e,s){if(this.eat(17)){let i=this.startNodeAt(e);return i.test=t,i.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),i.alternate=this.parseMaybeAssign(),this.finishNode(i,\"ConditionalExpression\")}return t}parseMaybeUnaryOrPrivate(t){return this.match(139)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){let e=this.state.startLoc,s=this.state.potentialArrowAt,i=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(i,s)?i:this.parseExprOp(i,e,-1)}parseExprOp(t,e,s){if(this.isPrivateName(t)){let r=this.getPrivateNameSV(t);(s>=we(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(p.PrivateInExpectedIn,t,{identifierName:r}),this.classScope.usePrivateName(r,t.loc.start)}let i=this.state.type;if(ni(i)&&(this.prodParam.hasIn||!this.match(58))){let r=we(i);if(r>s){if(i===39){if(this.expectPlugin(\"pipelineOperator\"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,e)}let n=this.startNodeAt(e);n.left=t,n.operator=this.state.value;let o=i===41||i===42,h=i===40;if(h&&(r=we(42)),this.next(),i===39&&this.hasPlugin([\"pipelineOperator\",{proposal:\"minimal\"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(p.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);n.right=this.parseExprOpRightExpr(i,r);let l=this.finishNode(n,o||h?\"LogicalExpression\":\"BinaryExpression\"),c=this.state.type;if(h&&(c===41||c===42)||o&&c===40)throw this.raise(p.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(l,e,s)}}return t}parseExprOpRightExpr(t,e){let s=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption(\"pipelineOperator\",\"proposal\")){case\"hack\":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case\"smart\":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(108))throw this.raise(p.PipeBodyIsTighter,this.state.startLoc);return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,e),s)});case\"fsharp\":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(e))}default:return this.parseExprOpBaseRightExpr(t,e)}}parseExprOpBaseRightExpr(t,e){let s=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),s,pi(t)?e-1:e)}parseHackPipeBody(){var t;let{startLoc:e}=this.state,s=this.parseMaybeAssign();return Ws.has(s.type)&&!((t=s.extra)!=null&&t.parenthesized)&&this.raise(p.PipeUnparenthesizedBody,e,{type:s.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(p.PipeTopicUnused,e),s}checkExponentialAfterUnary(t){this.match(57)&&this.raise(p.UnexpectedTokenUnaryExponentiation,t.argument)}parseMaybeUnary(t,e){let s=this.state.startLoc,i=this.isContextual(96);if(i&&this.recordAwaitIfAllowed()){this.next();let h=this.parseAwait(s);return e||this.checkExponentialAfterUnary(h),h}let r=this.match(34),n=this.startNode();if(hi(this.state.type)){n.operator=this.state.value,n.prefix=!0,this.match(72)&&this.expectPlugin(\"throwExpressions\");let h=this.match(89);if(this.next(),n.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&h){let l=n.argument;l.type===\"Identifier\"?this.raise(p.StrictDelete,n):this.hasPropertyAsPrivateName(l)&&this.raise(p.DeletePrivateField,n)}if(!r)return e||this.checkExponentialAfterUnary(n),this.finishNode(n,\"UnaryExpression\")}let o=this.parseUpdate(n,r,t);if(i){let{type:h}=this.state;if((this.hasPlugin(\"v8intrinsic\")?Ve(h):Ve(h)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(p.AwaitNotInAsyncContext,s),this.parseAwait(s)}return o}parseUpdate(t,e,s){if(e){let n=t;return this.checkLVal(n.argument,this.finishNode(n,\"UpdateExpression\")),t}let i=this.state.startLoc,r=this.parseExprSubscripts(s);if(this.checkExpressionErrors(s,!1))return r;for(;oi(this.state.type)&&!this.canInsertSemicolon();){let n=this.startNodeAt(i);n.operator=this.state.value,n.prefix=!1,n.argument=r,this.next(),this.checkLVal(r,r=this.finishNode(n,\"UpdateExpression\"))}return r}parseExprSubscripts(t){let e=this.state.startLoc,s=this.state.potentialArrowAt,i=this.parseExprAtom(t);return this.shouldExitDescending(i,s)?i:this.parseSubscripts(i,e)}parseSubscripts(t,e,s){let i={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,e,s,i),i.maybeAsyncArrow=!1;while(!i.stop);return t}parseSubscript(t,e,s,i){let{type:r}=this.state;if(!s&&r===15)return this.parseBind(t,e,s,i);if(Ie(r))return this.parseTaggedTemplateExpression(t,e,i);let n=!1;if(r===18){if(s&&(this.raise(p.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return i.stop=!0,t;i.optionalChainMember=n=!0,this.next()}if(!s&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,e,i,n);{let o=this.eat(0);return o||n||this.eat(16)?this.parseMember(t,e,i,o,n):(i.stop=!0,t)}}parseMember(t,e,s,i,r){let n=this.startNodeAt(e);return n.object=t,n.computed=i,i?(n.property=this.parseExpression(),this.expect(3)):this.match(139)?(t.type===\"Super\"&&this.raise(p.SuperPrivateField,e),this.classScope.usePrivateName(this.state.value,this.state.startLoc),n.property=this.parsePrivateName()):n.property=this.parseIdentifier(!0),s.optionalChainMember?(n.optional=r,this.finishNode(n,\"OptionalMemberExpression\")):this.finishNode(n,\"MemberExpression\")}parseBind(t,e,s,i){let r=this.startNodeAt(e);return r.object=t,this.next(),r.callee=this.parseNoCallExpr(),i.stop=!0,this.parseSubscripts(this.finishNode(r,\"BindExpression\"),e,s)}parseCoverCallAndAsyncArrowHead(t,e,s,i){let r=this.state.maybeInArrowParameters,n=null;this.state.maybeInArrowParameters=!0,this.next();let o=this.startNodeAt(e);o.callee=t;let{maybeAsyncArrow:h,optionalChainMember:l}=s;h&&(this.expressionScope.enter(Li()),n=new Q),l&&(o.optional=i),i?o.arguments=this.parseCallExpressionArguments(11):o.arguments=this.parseCallExpressionArguments(11,t.type!==\"Super\",o,n);let c=this.finishCallExpression(o,l);return h&&this.shouldParseAsyncArrow()&&!i?(s.stop=!0,this.checkDestructuringPrivate(n),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),c=this.parseAsyncArrowFromCallExpression(this.startNodeAt(e),c)):(h&&(this.checkExpressionErrors(n,!0),this.expressionScope.exit()),this.toReferencedArguments(c)),this.state.maybeInArrowParameters=r,c}toReferencedArguments(t,e){this.toReferencedListDeep(t.arguments,e)}parseTaggedTemplateExpression(t,e,s){let i=this.startNodeAt(e);return i.tag=t,i.quasi=this.parseTemplate(!0),s.optionalChainMember&&this.raise(p.OptionalChainingNoTemplate,e),this.finishNode(i,\"TaggedTemplateExpression\")}atPossibleAsyncArrow(t){return t.type===\"Identifier\"&&t.name===\"async\"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&this.offsetToSourcePos(t.start)===this.state.potentialArrowAt}finishCallExpression(t,e){if(t.callee.type===\"Import\")if(t.arguments.length===0||t.arguments.length>2)this.raise(p.ImportCallArity,t);else for(let s of t.arguments)s.type===\"SpreadElement\"&&this.raise(p.ImportCallSpreadArgument,s);return this.finishNode(t,e?\"OptionalCallExpression\":\"CallExpression\")}parseCallExpressionArguments(t,e,s,i){let r=[],n=!0,o=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){s&&this.addTrailingCommaExtraToNode(s),this.next();break}r.push(this.parseExprListItem(!1,i,e))}return this.state.inFSharpPipelineDirectBody=o,r}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,e){var s;return this.resetPreviousNodeTrailingComments(e),this.expect(19),this.parseArrowExpression(t,e.arguments,!0,(s=e.extra)==null?void 0:s.trailingCommaLoc),e.innerComments&&de(t,e.innerComments),e.callee.trailingComments&&de(t,e.callee.trailingComments),t}parseNoCallExpr(){let t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,!0)}parseExprAtom(t){let e,s=null,{type:i}=this.state;switch(i){case 79:return this.parseSuper();case 83:return e=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(e):this.match(10)?this.options.createImportExpressions?this.parseImportCall(e):this.finishNode(e,\"Import\"):(this.raise(p.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(e,\"Import\"));case 78:return e=this.startNode(),this.next(),this.finishNode(e,\"ThisExpression\");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 135:return this.parseNumericLiteral(this.state.value);case 136:return this.parseBigIntLiteral(this.state.value);case 134:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let r=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(r)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:s=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(s,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{e=this.startNode(),this.next(),e.object=null;let r=e.callee=this.parseNoCallExpr();if(r.type===\"MemberExpression\")return this.finishNode(e,\"BindExpression\");throw this.raise(p.UnsupportedBind,r)}case 139:return this.raise(p.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,\"%\");case 32:return this.parseTopicReferenceThenEqualsSign(44,\"^\");case 37:case 38:return this.parseTopicReference(\"hack\");case 44:case 54:case 27:{let r=this.getPluginOption(\"pipelineOperator\",\"proposal\");if(r)return this.parseTopicReference(r);this.unexpected();break}case 47:{let r=this.input.codePointAt(this.nextTokenStart());R(r)||r===62?this.expectOnePlugin([\"jsx\",\"flow\",\"typescript\"]):this.unexpected();break}default:if(i===137)return this.parseDecimalLiteral(this.state.value);if(C(i)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();let r=this.state.potentialArrowAt===this.state.start,n=this.state.containsEsc,o=this.parseIdentifier();if(!n&&o.name===\"async\"&&!this.canInsertSemicolon()){let{type:h}=this.state;if(h===68)return this.resetPreviousNodeTrailingComments(o),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(o));if(C(h))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(o)):o;if(h===90)return this.resetPreviousNodeTrailingComments(o),this.parseDo(this.startNodeAtNode(o),!0)}return r&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(o),[o],!1)):o}else this.unexpected()}}parseTopicReferenceThenEqualsSign(t,e){let s=this.getPluginOption(\"pipelineOperator\",\"proposal\");if(s)return this.state.type=t,this.state.value=e,this.state.pos--,this.state.end--,this.state.endLoc=v(this.state.endLoc,-1),this.parseTopicReference(s);this.unexpected()}parseTopicReference(t){let e=this.startNode(),s=this.state.startLoc,i=this.state.type;return this.next(),this.finishTopicReference(e,s,t,i)}finishTopicReference(t,e,s,i){if(this.testTopicReferenceConfiguration(s,e,i)){let r=s===\"smart\"?\"PipelinePrimaryTopicReference\":\"TopicReference\";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(s===\"smart\"?p.PrimaryTopicNotAllowed:p.PipeTopicUnbound,e),this.registerTopicReference(),this.finishNode(t,r)}else throw this.raise(p.PipeTopicUnconfiguredToken,e,{token:q(i)})}testTopicReferenceConfiguration(t,e,s){switch(t){case\"hack\":return this.hasPlugin([\"pipelineOperator\",{topicToken:q(s)}]);case\"smart\":return s===27;default:throw this.raise(p.PipeTopicRequiresHackPipes,e)}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(Ce(!0,this.prodParam.hasYield));let e=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(p.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(t,e,!0)}parseDo(t,e){this.expectPlugin(\"doExpressions\"),e&&this.expectPlugin(\"asyncDoExpressions\"),t.async=e,this.next();let s=this.state.labels;return this.state.labels=[],e?(this.prodParam.enter(2),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=s,this.finishNode(t,\"DoExpression\")}parseSuper(){let t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(p.SuperNotAllowed,t):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(p.UnexpectedSuper,t),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(p.UnsupportedSuper,t),this.finishNode(t,\"Super\")}parsePrivateName(){let t=this.startNode(),e=this.startNodeAt(v(this.state.startLoc,1)),s=this.state.value;return this.next(),t.id=this.createIdentifier(e,s),this.finishNode(t,\"PrivateName\")}parseFunctionOrFunctionSent(){let t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),\"function\");return this.next(),this.match(103)?this.expectPlugin(\"functionSent\"):this.hasPlugin(\"functionSent\")||this.unexpected(),this.parseMetaProperty(t,e,\"sent\")}return this.parseFunction(t)}parseMetaProperty(t,e,s){t.meta=e;let i=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==s||i)&&this.raise(p.UnsupportedMetaProperty,t.property,{target:e.name,onlyValidPropertyName:s}),this.finishNode(t,\"MetaProperty\")}parseImportMetaProperty(t){let e=this.createIdentifier(this.startNodeAtNode(t),\"import\");if(this.next(),this.isContextual(101))this.inModule||this.raise(p.ImportMetaOutsideModule,e),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){let s=this.isContextual(105);if(s||this.unexpected(),this.expectPlugin(s?\"sourcePhaseImports\":\"deferredImportEvaluation\"),!this.options.createImportExpressions)throw this.raise(p.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),t.phase=s?\"source\":\"defer\",this.parseImportCall(t)}return this.parseMetaProperty(t,e,\"meta\")}parseLiteralAtNode(t,e,s){return this.addExtra(s,\"rawValue\",t),this.addExtra(s,\"raw\",this.input.slice(this.offsetToSourcePos(s.start),this.state.end)),s.value=t,this.next(),this.finishNode(s,e)}parseLiteral(t,e){let s=this.startNode();return this.parseLiteralAtNode(t,e,s)}parseStringLiteral(t){return this.parseLiteral(t,\"StringLiteral\")}parseNumericLiteral(t){return this.parseLiteral(t,\"NumericLiteral\")}parseBigIntLiteral(t){return this.parseLiteral(t,\"BigIntLiteral\")}parseDecimalLiteral(t){return this.parseLiteral(t,\"DecimalLiteral\")}parseRegExpLiteral(t){let e=this.startNode();return this.addExtra(e,\"raw\",this.input.slice(this.offsetToSourcePos(e.start),this.state.end)),e.pattern=t.pattern,e.flags=t.flags,this.next(),this.finishNode(e,\"RegExpLiteral\")}parseBooleanLiteral(t){let e=this.startNode();return e.value=t,this.next(),this.finishNode(e,\"BooleanLiteral\")}parseNullLiteral(){let t=this.startNode();return this.next(),this.finishNode(t,\"NullLiteral\")}parseParenAndDistinguishExpression(t){let e=this.state.startLoc,s;this.next(),this.expressionScope.enter(vi());let i=this.state.maybeInArrowParameters,r=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let n=this.state.startLoc,o=[],h=new Q,l=!0,c,u;for(;!this.match(11);){if(l)l=!1;else if(this.expect(12,h.optionalParametersLoc===null?null:h.optionalParametersLoc),this.match(11)){u=this.state.startLoc;break}if(this.match(21)){let x=this.state.startLoc;if(c=this.state.startLoc,o.push(this.parseParenItem(this.parseRestBinding(),x)),!this.checkCommaAfterRest(41))break}else o.push(this.parseMaybeAssignAllowIn(h,this.parseParenItem))}let f=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=i,this.state.inFSharpPipelineDirectBody=r;let d=this.startNodeAt(e);return t&&this.shouldParseArrow(o)&&(d=this.parseArrow(d))?(this.checkDestructuringPrivate(h),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(d,o,!1),d):(this.expressionScope.exit(),o.length||this.unexpected(this.state.lastTokStartLoc),u&&this.unexpected(u),c&&this.unexpected(c),this.checkExpressionErrors(h,!0),this.toReferencedListDeep(o,!0),o.length>1?(s=this.startNodeAt(n),s.expressions=o,this.finishNode(s,\"SequenceExpression\"),this.resetEndLocation(s,f)):s=o[0],this.wrapParenthesis(e,s))}wrapParenthesis(t,e){if(!this.options.createParenthesizedExpressions)return this.addExtra(e,\"parenthesized\",!0),this.addExtra(e,\"parenStart\",t.index),this.takeSurroundingComments(e,t.index,this.state.lastTokEndLoc.index),e;let s=this.startNodeAt(t);return s.expression=e,this.finishNode(s,\"ParenthesizedExpression\")}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,e){return t}parseNewOrNewTarget(){let t=this.startNode();if(this.next(),this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),\"new\");this.next();let s=this.parseMetaProperty(t,e,\"target\");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!this.options.allowNewTargetOutsideFunction&&this.raise(p.UnexpectedNewTarget,s),s}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){let e=this.parseExprList(11);this.toReferencedList(e),t.arguments=e}else t.arguments=[];return this.finishNode(t,\"NewExpression\")}parseNewCallee(t){let e=this.match(83),s=this.parseNoCallExpr();t.callee=s,e&&(s.type===\"Import\"||s.type===\"ImportExpression\")&&this.raise(p.ImportCallNotNewExpression,s)}parseTemplateElement(t){let{start:e,startLoc:s,end:i,value:r}=this.state,n=e+1,o=this.startNodeAt(v(s,1));r===null&&(t||this.raise(p.InvalidEscapeSequenceTemplate,v(this.state.firstInvalidTemplateEscapePos,1)));let h=this.match(24),l=h?-1:-2,c=i+l;o.value={raw:this.input.slice(n,c).replace(/\\r\\n?/g,`\n`),cooked:r===null?null:r.slice(1,l)},o.tail=h,this.next();let u=this.finishNode(o,\"TemplateElement\");return this.resetEndLocation(u,v(this.state.lastTokEndLoc,l)),u}parseTemplate(t){let e=this.startNode(),s=this.parseTemplateElement(t),i=[s],r=[];for(;!s.tail;)r.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),i.push(s=this.parseTemplateElement(t));return e.expressions=r,e.quasis=i,this.finishNode(e,\"TemplateLiteral\")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,e,s,i){s&&this.expectPlugin(\"recordAndTuple\");let r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let n=Object.create(null),o=!0,h=this.startNode();for(h.properties=[],this.next();!this.match(t);){if(o)o=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(h);break}let c;e?c=this.parseBindingProperty():(c=this.parsePropertyDefinition(i),this.checkProto(c,s,n,i)),s&&!this.isObjectProperty(c)&&c.type!==\"SpreadElement\"&&this.raise(p.InvalidRecordProperty,c),c.shorthand&&this.addExtra(c,\"shorthand\",!0),h.properties.push(c)}this.next(),this.state.inFSharpPipelineDirectBody=r;let l=\"ObjectExpression\";return e?l=\"ObjectPattern\":s&&(l=\"RecordExpression\"),this.finishNode(h,l)}addTrailingCommaExtraToNode(t){this.addExtra(t,\"trailingComma\",this.state.lastTokStartLoc.index),this.addExtra(t,\"trailingCommaLoc\",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type===\"Identifier\"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let e=[];if(this.match(26))for(this.hasPlugin(\"decorators\")&&this.raise(p.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)e.push(this.parseDecorator());let s=this.startNode(),i=!1,r=!1,n;if(this.match(21))return e.length&&this.unexpected(),this.parseSpread();e.length&&(s.decorators=e,e=[]),s.method=!1,t&&(n=this.state.startLoc);let o=this.eat(55);this.parsePropertyNamePrefixOperator(s);let h=this.state.containsEsc;if(this.parsePropertyName(s,t),!o&&!h&&this.maybeAsyncOrAccessorProp(s)){let{key:l}=s,c=l.name;c===\"async\"&&!this.hasPrecedingLineBreak()&&(i=!0,this.resetPreviousNodeTrailingComments(l),o=this.eat(55),this.parsePropertyName(s)),(c===\"get\"||c===\"set\")&&(r=!0,this.resetPreviousNodeTrailingComments(l),s.kind=c,this.match(55)&&(o=!0,this.raise(p.AccessorIsGenerator,this.state.curPosition(),{kind:c}),this.next()),this.parsePropertyName(s))}return this.parseObjPropValue(s,n,o,i,!1,r,t)}getGetterSetterExpectedParamCount(t){return t.kind===\"get\"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var e;let s=this.getGetterSetterExpectedParamCount(t),i=this.getObjectOrClassMethodParams(t);i.length!==s&&this.raise(t.kind===\"get\"?p.BadGetterArity:p.BadSetterArity,t),t.kind===\"set\"&&((e=i[i.length-1])==null?void 0:e.type)===\"RestElement\"&&this.raise(p.BadSetterRestParameter,t)}parseObjectMethod(t,e,s,i,r){if(r){let n=this.parseMethod(t,e,!1,!1,!1,\"ObjectMethod\");return this.checkGetterSetterParams(n),n}if(s||e||this.match(10))return i&&this.unexpected(),t.kind=\"method\",t.method=!0,this.parseMethod(t,e,s,!1,!1,\"ObjectMethod\")}parseObjectProperty(t,e,s,i){if(t.shorthand=!1,this.eat(14))return t.value=s?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(i),this.finishNode(t,\"ObjectProperty\");if(!t.computed&&t.key.type===\"Identifier\"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),s)t.value=this.parseMaybeDefault(e,_(t.key));else if(this.match(29)){let r=this.state.startLoc;i!=null?i.shorthandAssignLoc===null&&(i.shorthandAssignLoc=r):this.raise(p.InvalidCoverInitializedName,r),t.value=this.parseMaybeDefault(e,_(t.key))}else t.value=_(t.key);return t.shorthand=!0,this.finishNode(t,\"ObjectProperty\")}}parseObjPropValue(t,e,s,i,r,n,o){let h=this.parseObjectMethod(t,s,i,r,n)||this.parseObjectProperty(t,e,r,o);return h||this.unexpected(),h}parsePropertyName(t,e){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:s,value:i}=this.state,r;if(D(s))r=this.parseIdentifier(!0);else switch(s){case 135:r=this.parseNumericLiteral(i);break;case 134:r=this.parseStringLiteral(i);break;case 136:r=this.parseBigIntLiteral(i);break;case 139:{let n=this.state.startLoc;e!=null?e.privateKeyLoc===null&&(e.privateKeyLoc=n):this.raise(p.UnexpectedPrivateField,n),r=this.parsePrivateName();break}default:if(s===137){r=this.parseDecimalLiteral(i);break}this.unexpected()}t.key=r,s!==139&&(t.computed=!1)}}initFunction(t,e){t.id=null,t.generator=!1,t.async=e}parseMethod(t,e,s,i,r,n,o=!1){this.initFunction(t,s),t.generator=e,this.scope.enter(18|(o?64:0)|(r?32:0)),this.prodParam.enter(Ce(s,t.generator)),this.parseFunctionParams(t,i);let h=this.parseFunctionBodyAndFinish(t,n,!0);return this.prodParam.exit(),this.scope.exit(),h}parseArrayLike(t,e,s,i){s&&this.expectPlugin(\"recordAndTuple\");let r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let n=this.startNode();return this.next(),n.elements=this.parseExprList(t,!s,i,n),this.state.inFSharpPipelineDirectBody=r,this.finishNode(n,s?\"TupleExpression\":\"ArrayExpression\")}parseArrowExpression(t,e,s,i){this.scope.enter(6);let r=Ce(s,!1);!this.match(5)&&this.prodParam.hasIn&&(r|=8),this.prodParam.enter(r),this.initFunction(t,s);let n=this.state.maybeInArrowParameters;return e&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,e,i)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=n,this.finishNode(t,\"ArrowFunctionExpression\")}setArrowFunctionParameters(t,e,s){this.toAssignableList(e,s,!1),t.params=e}parseFunctionBodyAndFinish(t,e,s=!1){return this.parseFunctionBody(t,!1,s),this.finishNode(t,e)}parseFunctionBody(t,e,s=!1){let i=e&&!this.match(5);if(this.expressionScope.enter(Zt()),i)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,e,!1);else{let r=this.state.strict,n=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|4),t.body=this.parseBlock(!0,!1,o=>{let h=!this.isSimpleParamList(t.params);o&&h&&this.raise(p.IllegalLanguageModeDirective,(t.kind===\"method\"||t.kind===\"constructor\")&&t.key?t.key.loc.end:t);let l=!r&&this.state.strict;this.checkParams(t,!this.state.strict&&!e&&!s&&!h,e,l),this.state.strict&&t.id&&this.checkIdentifier(t.id,65,l)}),this.prodParam.exit(),this.state.labels=n}this.expressionScope.exit()}isSimpleParameter(t){return t.type===\"Identifier\"}isSimpleParamList(t){for(let e=0,s=t.length;e10||!bi(t))return;if(s&&Pi(t)){this.raise(p.UnexpectedKeyword,e,{keyword:t});return}if((this.state.strict?i?Xt:Jt:Ht)(t,this.inModule)){this.raise(p.UnexpectedReservedWord,e,{reservedWord:t});return}else if(t===\"yield\"){if(this.prodParam.hasYield){this.raise(p.YieldBindingIdentifier,e);return}}else if(t===\"await\"){if(this.prodParam.hasAwait){this.raise(p.AwaitBindingIdentifier,e);return}if(this.scope.inStaticBlock){this.raise(p.AwaitBindingIdentifierInStaticBlock,e);return}this.expressionScope.recordAsyncArrowParametersError(e)}else if(t===\"arguments\"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(p.ArgumentsInClass,e);return}}recordAwaitIfAllowed(){let t=this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction;return t&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),t}parseAwait(t){let e=this.startNodeAt(t);return this.expressionScope.recordParameterInitializerError(p.AwaitExpressionFormalParameter,e),this.eat(55)&&this.raise(p.ObsoleteAwaitStar,e),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(e.argument=this.parseMaybeUnary(null,!0)),this.finishNode(e,\"AwaitExpression\")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:t}=this.state;return t===53||t===10||t===0||Ie(t)||t===102&&!this.state.containsEsc||t===138||t===56||this.hasPlugin(\"v8intrinsic\")&&t===54}parseYield(){let t=this.startNode();this.expressionScope.recordParameterInitializerError(p.YieldInParameter,t),this.next();let e=!1,s=null;if(!this.hasPrecedingLineBreak())switch(e=this.eat(55),this.state.type){case 13:case 140:case 8:case 11:case 3:case 9:case 14:case 12:if(!e)break;default:s=this.parseMaybeAssign()}return t.delegate=e,t.argument=s,this.finishNode(t,\"YieldExpression\")}parseImportCall(t){if(this.next(),t.source=this.parseMaybeAssignAllowIn(),t.options=null,this.eat(12)&&!this.match(11)&&(t.options=this.parseMaybeAssignAllowIn(),this.eat(12)&&!this.match(11))){do this.parseMaybeAssignAllowIn();while(this.eat(12)&&!this.match(11));this.raise(p.ImportCallArity,t)}return this.expect(11),this.finishNode(t,\"ImportExpression\")}checkPipelineAtInfixOperator(t,e){this.hasPlugin([\"pipelineOperator\",{proposal:\"smart\"}])&&t.type===\"SequenceExpression\"&&this.raise(p.PipelineHeadSequenceExpression,e)}parseSmartPipelineBodyInStyle(t,e){if(this.isSimpleReference(t)){let s=this.startNodeAt(e);return s.callee=t,this.finishNode(s,\"PipelineBareFunction\")}else{let s=this.startNodeAt(e);return this.checkSmartPipeTopicBodyEarlyErrors(e),s.expression=t,this.finishNode(s,\"PipelineTopicExpression\")}}isSimpleReference(t){switch(t.type){case\"MemberExpression\":return!t.computed&&this.isSimpleReference(t.object);case\"Identifier\":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(p.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(p.PipelineTopicUnused,t)}withTopicBindingContext(t){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin([\"pipelineOperator\",{proposal:\"smart\"}])){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}else return t()}withSoloAwaitPermittingContext(t){let e=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=e}}allowInAnd(t){let e=this.prodParam.currentFlags();if(8&~e){this.prodParam.enter(e|8);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){let e=this.prodParam.currentFlags();if(8&e){this.prodParam.enter(e&-9);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){let e=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let s=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let i=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),e,t);return this.state.inFSharpPipelineDirectBody=s,i}parseModuleExpression(){this.expectPlugin(\"moduleBlocks\");let t=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);let e=this.startNodeAt(this.state.endLoc);this.next();let s=this.initializeScopes(!0);this.enterInitialScopes();try{t.body=this.parseProgram(e,8,\"module\")}finally{s()}return this.finishNode(t,\"ModuleExpression\")}parsePropertyNamePrefixOperator(t){}},$e={kind:1},er={kind:2},tr=/[\\uD800-\\uDFFF]/u,ze=/in(?:stanceof)?/y;function sr(a,t,e){for(let s=0;s0)for(let[r,n]of Array.from(this.scope.undefinedExports))this.raise(p.ModuleExportUndefined,n,{localName:r});this.addExtra(t,\"topLevelAwait\",this.state.hasTopLevelAwait)}let i;return e===140?i=this.finishNode(t,\"Program\"):i=this.finishNodeAt(t,\"Program\",v(this.state.startLoc,-1)),i}stmtToDirective(t){let e=t;e.type=\"Directive\",e.value=e.expression,delete e.expression;let s=e.value,i=s.value,r=this.input.slice(this.offsetToSourcePos(s.start),this.offsetToSourcePos(s.end)),n=s.value=r.slice(1,-1);return this.addExtra(s,\"raw\",r),this.addExtra(s,\"rawValue\",n),this.addExtra(s,\"expressionValue\",i),s.type=\"DirectiveLiteral\",e}parseInterpreterDirective(){if(!this.match(28))return null;let t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,\"InterpreterDirective\")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(t,e){if(R(t)){if(ze.lastIndex=e,ze.test(this.input)){let s=this.codePointAtPos(ze.lastIndex);if(!G(s)&&s!==92)return!1}return!0}else return t===92}chStartsBindingPattern(t){return t===91||t===123}hasFollowingBindingAtom(){let t=this.nextTokenStart(),e=this.codePointAtPos(t);return this.chStartsBindingPattern(e)||this.chStartsBindingIdentifier(e,t)}hasInLineFollowingBindingIdentifierOrBrace(){let t=this.nextTokenInLineStart(),e=this.codePointAtPos(t);return e===123||this.chStartsBindingIdentifier(e,t)}startsUsingForOf(){let{type:t,containsEsc:e}=this.lookahead();if(t===102&&!e)return!1;if(C(t)&&!this.hasFollowingLineBreak())return this.expectPlugin(\"explicitResourceManagement\"),!0}startsAwaitUsing(){let t=this.nextTokenInLineStart();if(this.isUnparsedContextual(t,\"using\")){t=this.nextTokenInLineStartSince(t+5);let e=this.codePointAtPos(t);if(this.chStartsBindingIdentifier(e,t))return this.expectPlugin(\"explicitResourceManagement\"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(t=!1){let e=0;return this.options.annexB&&!this.state.strict&&(e|=4,t&&(e|=8)),this.parseStatementLike(e)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(t){let e=null;return this.match(26)&&(e=this.parseDecorators(!0)),this.parseStatementContent(t,e)}parseStatementContent(t,e){let s=this.state.type,i=this.startNode(),r=!!(t&2),n=!!(t&4),o=t&1;switch(s){case 60:return this.parseBreakContinueStatement(i,!0);case 63:return this.parseBreakContinueStatement(i,!1);case 64:return this.parseDebuggerStatement(i);case 90:return this.parseDoWhileStatement(i);case 91:return this.parseForStatement(i);case 68:if(this.lookaheadCharCode()===46)break;return n||this.raise(this.state.strict?p.StrictFunction:this.options.annexB?p.SloppyFunctionAnnexB:p.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(i,!1,!r&&n);case 80:return r||this.unexpected(),this.parseClass(this.maybeTakeDecorators(e,i),!0);case 69:return this.parseIfStatement(i);case 70:return this.parseReturnStatement(i);case 71:return this.parseSwitchStatement(i);case 72:return this.parseThrowStatement(i);case 73:return this.parseTryStatement(i);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?r||this.raise(p.UnexpectedLexicalDeclaration,i):this.raise(p.AwaitUsingNotInAsyncContext,i),this.next(),this.parseVarStatement(i,\"await using\");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin(\"explicitResourceManagement\"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(p.UnexpectedUsingDeclaration,this.state.startLoc):r||this.raise(p.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(i,\"using\");case 100:{if(this.state.containsEsc)break;let c=this.nextTokenStart(),u=this.codePointAtPos(c);if(u!==91&&(!r&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(u,c)&&u!==123))break}case 75:r||this.raise(p.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{let c=this.state.value;return this.parseVarStatement(i,c)}case 92:return this.parseWhileStatement(i);case 76:return this.parseWithStatement(i);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(i);case 83:{let c=this.lookaheadCharCode();if(c===40||c===46)break}case 82:{!this.options.allowImportExportEverywhere&&!o&&this.raise(p.UnexpectedImportExport,this.state.startLoc),this.next();let c;return s===83?(c=this.parseImport(i),c.type===\"ImportDeclaration\"&&(!c.importKind||c.importKind===\"value\")&&(this.sawUnambiguousESM=!0)):(c=this.parseExport(i,e),(c.type===\"ExportNamedDeclaration\"&&(!c.exportKind||c.exportKind===\"value\")||c.type===\"ExportAllDeclaration\"&&(!c.exportKind||c.exportKind===\"value\")||c.type===\"ExportDefaultDeclaration\")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(c),c}default:if(this.isAsyncFunction())return r||this.raise(p.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(i,!0,!r&&n)}let h=this.state.value,l=this.parseExpression();return C(s)&&l.type===\"Identifier\"&&this.eat(14)?this.parseLabeledStatement(i,h,l,t):this.parseExpressionStatement(i,l,e)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(p.ImportOutsideModule,t)}decoratorsEnabledBeforeExport(){return this.hasPlugin(\"decorators-legacy\")?!0:this.hasPlugin(\"decorators\")&&this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")!==!1}maybeTakeDecorators(t,e,s){return t&&(e.decorators&&e.decorators.length>0?(typeof this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")!=\"boolean\"&&this.raise(p.DecoratorsBeforeAfterExport,e.decorators[0]),e.decorators.unshift(...t)):e.decorators=t,this.resetStartLocationFromNode(e,t[0]),s&&this.resetStartLocationFromNode(s,e)),e}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){let e=[];do e.push(this.parseDecorator());while(this.match(26));if(this.match(82))t||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(p.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(p.UnexpectedLeadingDecorator,this.state.startLoc);return e}parseDecorator(){this.expectOnePlugin([\"decorators\",\"decorators-legacy\"]);let t=this.startNode();if(this.next(),this.hasPlugin(\"decorators\")){let e=this.state.startLoc,s;if(this.match(10)){let i=this.state.startLoc;this.next(),s=this.parseExpression(),this.expect(11),s=this.wrapParenthesis(i,s);let r=this.state.startLoc;t.expression=this.parseMaybeDecoratorArguments(s),this.getPluginOption(\"decorators\",\"allowCallParenthesized\")===!1&&t.expression!==s&&this.raise(p.DecoratorArgumentsOutsideParentheses,r)}else{for(s=this.parseIdentifier(!1);this.eat(16);){let i=this.startNodeAt(e);i.object=s,this.match(139)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),i.property=this.parsePrivateName()):i.property=this.parseIdentifier(!0),i.computed=!1,s=this.finishNode(i,\"MemberExpression\")}t.expression=this.parseMaybeDecoratorArguments(s)}}else t.expression=this.parseExprSubscripts();return this.finishNode(t,\"Decorator\")}parseMaybeDecoratorArguments(t){if(this.eat(10)){let e=this.startNodeAtNode(t);return e.callee=t,e.arguments=this.parseCallExpressionArguments(11),this.toReferencedList(e.arguments),this.finishNode(e,\"CallExpression\")}return t}parseBreakContinueStatement(t,e){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,e),this.finishNode(t,e?\"BreakStatement\":\"ContinueStatement\")}verifyBreakContinue(t,e){let s;for(s=0;sthis.parseStatement()),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,\"DoWhileStatement\")}parseForStatement(t){this.next(),this.state.labels.push($e);let e=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(e=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return e!==null&&this.unexpected(e),this.parseFor(t,null);let s=this.isContextual(100);{let h=this.isContextual(96)&&this.startsAwaitUsing(),l=h||this.isContextual(107)&&this.startsUsingForOf(),c=s&&this.hasFollowingBindingAtom()||l;if(this.match(74)||this.match(75)||c){let u=this.startNode(),f;h?(f=\"await using\",this.recordAwaitIfAllowed()||this.raise(p.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):f=this.state.value,this.next(),this.parseVar(u,!0,f);let d=this.finishNode(u,\"VariableDeclaration\"),x=this.match(58);return x&&l&&this.raise(p.ForInUsing,d),(x||this.isContextual(102))&&d.declarations.length===1?this.parseForIn(t,d,e):(e!==null&&this.unexpected(e),this.parseFor(t,d))}}let i=this.isContextual(95),r=new Q,n=this.parseExpression(!0,r),o=this.isContextual(102);if(o&&(s&&this.raise(p.ForOfLet,n),e===null&&i&&n.type===\"Identifier\"&&this.raise(p.ForOfAsync,n)),o||this.match(58)){this.checkDestructuringPrivate(r),this.toAssignable(n,!0);let h=o?\"ForOfStatement\":\"ForInStatement\";return this.checkLVal(n,{type:h}),this.parseForIn(t,n,e)}else this.checkExpressionErrors(r,!0);return e!==null&&this.unexpected(e),this.parseFor(t,n)}parseFunctionStatement(t,e,s){return this.next(),this.parseFunction(t,1|(s?2:0)|(e?8:0))}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),t.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(t,\"IfStatement\")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(p.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,\"ReturnStatement\")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();let e=t.cases=[];this.expect(5),this.state.labels.push(er),this.scope.enter(0);let s;for(let i;!this.match(8);)if(this.match(61)||this.match(65)){let r=this.match(61);s&&this.finishNode(s,\"SwitchCase\"),e.push(s=this.startNode()),s.consequent=[],this.next(),r?s.test=this.parseExpression():(i&&this.raise(p.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),i=!0,s.test=null),this.expect(14)}else s?s.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),s&&this.finishNode(s,\"SwitchCase\"),this.next(),this.state.labels.pop(),this.finishNode(t,\"SwitchStatement\")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(p.NewlineAfterThrow,this.state.lastTokEndLoc),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,\"ThrowStatement\")}parseCatchClauseParam(){let t=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&t.type===\"Identifier\"?8:0),this.checkLVal(t,{type:\"CatchClause\"},9),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){let e=this.startNode();this.next(),this.match(10)?(this.expect(10),e.param=this.parseCatchClauseParam(),this.expect(11)):(e.param=null,this.scope.enter(0)),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(e,\"CatchClause\")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(p.NoCatchOrFinally,t),this.finishNode(t,\"TryStatement\")}parseVarStatement(t,e,s=!1){return this.next(),this.parseVar(t,!1,e,s),this.semicolon(),this.finishNode(t,\"VariableDeclaration\")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push($e),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(t,\"WhileStatement\")}parseWithStatement(t){return this.state.strict&&this.raise(p.StrictWith,this.state.startLoc),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(t,\"WithStatement\")}parseEmptyStatement(t){return this.next(),this.finishNode(t,\"EmptyStatement\")}parseLabeledStatement(t,e,s,i){for(let n of this.state.labels)n.name===e&&this.raise(p.LabelRedeclaration,s,{labelName:e});let r=ai(this.state.type)?1:this.match(71)?2:null;for(let n=this.state.labels.length-1;n>=0;n--){let o=this.state.labels[n];if(o.statementStart===t.start)o.statementStart=this.sourceToOffsetPos(this.state.start),o.kind=r;else break}return this.state.labels.push({name:e,kind:r,statementStart:this.sourceToOffsetPos(this.state.start)}),t.body=i&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),t.label=s,this.finishNode(t,\"LabeledStatement\")}parseExpressionStatement(t,e,s){return t.expression=e,this.semicolon(),this.finishNode(t,\"ExpressionStatement\")}parseBlock(t=!1,e=!0,s){let i=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),e&&this.scope.enter(0),this.parseBlockBody(i,t,!1,8,s),e&&this.scope.exit(),this.finishNode(i,\"BlockStatement\")}isValidDirective(t){return t.type===\"ExpressionStatement\"&&t.expression.type===\"StringLiteral\"&&!t.expression.extra.parenthesized}parseBlockBody(t,e,s,i,r){let n=t.body=[],o=t.directives=[];this.parseBlockOrModuleBlockBody(n,e?o:void 0,s,i,r)}parseBlockOrModuleBlockBody(t,e,s,i,r){let n=this.state.strict,o=!1,h=!1;for(;!this.match(i);){let l=s?this.parseModuleItem():this.parseStatementListItem();if(e&&!h){if(this.isValidDirective(l)){let c=this.stmtToDirective(l);e.push(c),!o&&c.value.value===\"use strict\"&&(o=!0,this.setStrict(!0));continue}h=!0,this.state.strictErrors.clear()}t.push(l)}r==null||r.call(this,o),n||this.setStrict(!1),this.next()}parseFor(t,e){return t.init=e,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,\"ForStatement\")}parseForIn(t,e,s){let i=this.match(58);return this.next(),i?s!==null&&this.unexpected(s):t.await=s!==null,e.type===\"VariableDeclaration\"&&e.declarations[0].init!=null&&(!i||!this.options.annexB||this.state.strict||e.kind!==\"var\"||e.declarations[0].id.type!==\"Identifier\")&&this.raise(p.ForInOfLoopInitializer,e,{type:i?\"ForInStatement\":\"ForOfStatement\"}),e.type===\"AssignmentPattern\"&&this.raise(p.InvalidLhs,e,{ancestor:{type:\"ForStatement\"}}),t.left=e,t.right=i?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,i?\"ForInStatement\":\"ForOfStatement\")}parseVar(t,e,s,i=!1){let r=t.declarations=[];for(t.kind=s;;){let n=this.startNode();if(this.parseVarId(n,s),n.init=this.eat(29)?e?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,n.init===null&&!i&&(n.id.type!==\"Identifier\"&&!(e&&(this.match(58)||this.isContextual(102)))?this.raise(p.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:\"destructuring\"}):(s===\"const\"||s===\"using\"||s===\"await using\")&&!(this.match(58)||this.isContextual(102))&&this.raise(p.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:s})),r.push(this.finishNode(n,\"VariableDeclarator\")),!this.eat(12))break}return t}parseVarId(t,e){let s=this.parseBindingAtom();(e===\"using\"||e===\"await using\")&&(s.type===\"ArrayPattern\"||s.type===\"ObjectPattern\")&&this.raise(p.UsingDeclarationHasBindingPattern,s.loc.start),this.checkLVal(s,{type:\"VariableDeclarator\"},e===\"var\"?5:8201),t.id=s}parseAsyncFunctionExpression(t){return this.parseFunction(t,8)}parseFunction(t,e=0){let s=e&2,i=!!(e&1),r=i&&!(e&4),n=!!(e&8);this.initFunction(t,n),this.match(55)&&(s&&this.raise(p.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),t.generator=!0),i&&(t.id=this.parseFunctionId(r));let o=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(Ce(n,t.generator)),i||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,i?\"FunctionDeclaration\":\"FunctionExpression\")}),this.prodParam.exit(),this.scope.exit(),i&&!s&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=o,t}parseFunctionId(t){return t||C(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,e){this.expect(10),this.expressionScope.enter(ki()),t.params=this.parseBindingList(11,41,2|(e?4:0)),this.expressionScope.exit()}registerFunctionStatementId(t){t.id&&this.scope.declareName(t.id.name,!this.options.annexB||this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?5:8201:17,t.id.loc.start)}parseClass(t,e,s){this.next();let i=this.state.strict;return this.state.strict=!0,this.parseClassId(t,e,s),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,i),this.finishNode(t,e?\"ClassDeclaration\":\"ClassExpression\")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(t){return t.type===\"Identifier\"&&t.name===\"constructor\"||t.type===\"StringLiteral\"&&t.value===\"constructor\"}isNonstaticConstructor(t){return!t.computed&&!t.static&&this.nameIsConstructor(t.key)}parseClassBody(t,e){this.classScope.enter();let s={hadConstructor:!1,hadSuperClass:t},i=[],r=this.startNode();if(r.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(i.length>0)throw this.raise(p.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){i.push(this.parseDecorator());continue}let n=this.startNode();i.length&&(n.decorators=i,this.resetStartLocationFromNode(n,i[0]),i=[]),this.parseClassMember(r,n,s),n.kind===\"constructor\"&&n.decorators&&n.decorators.length>0&&this.raise(p.DecoratorConstructor,n)}}),this.state.strict=e,this.next(),i.length)throw this.raise(p.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(r,\"ClassBody\")}parseClassMemberFromModifier(t,e){let s=this.parseIdentifier(!0);if(this.isClassMethod()){let i=e;return i.kind=\"method\",i.computed=!1,i.key=s,i.static=!1,this.pushClassMethod(t,i,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let i=e;return i.computed=!1,i.key=s,i.static=!1,t.body.push(this.parseClassProperty(i)),!0}return this.resetPreviousNodeTrailingComments(s),!1}parseClassMember(t,e,s){let i=this.isContextual(106);if(i){if(this.parseClassMemberFromModifier(t,e))return;if(this.eat(5)){this.parseClassStaticBlock(t,e);return}}this.parseClassMemberWithIsStatic(t,e,s,i)}parseClassMemberWithIsStatic(t,e,s,i){let r=e,n=e,o=e,h=e,l=e,c=r,u=r;if(e.static=i,this.parsePropertyNamePrefixOperator(e),this.eat(55)){c.kind=\"method\";let w=this.match(139);if(this.parseClassElementName(c),w){this.pushClassPrivateMethod(t,n,!0,!1);return}this.isNonstaticConstructor(r)&&this.raise(p.ConstructorIsGenerator,r.key),this.pushClassMethod(t,r,!0,!1,!1,!1);return}let f=!this.state.containsEsc&&C(this.state.type),d=this.parseClassElementName(e),x=f?d.name:null,S=this.isPrivateName(d),N=this.state.startLoc;if(this.parsePostMemberNameModifiers(u),this.isClassMethod()){if(c.kind=\"method\",S){this.pushClassPrivateMethod(t,n,!1,!1);return}let w=this.isNonstaticConstructor(r),I=!1;w&&(r.kind=\"constructor\",s.hadConstructor&&!this.hasPlugin(\"typescript\")&&this.raise(p.DuplicateConstructor,d),w&&this.hasPlugin(\"typescript\")&&e.override&&this.raise(p.OverrideOnConstructor,d),s.hadConstructor=!0,I=s.hadSuperClass),this.pushClassMethod(t,r,!1,!1,w,I)}else if(this.isClassProperty())S?this.pushClassPrivateProperty(t,h):this.pushClassProperty(t,o);else if(x===\"async\"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(d);let w=this.eat(55);u.optional&&this.unexpected(N),c.kind=\"method\";let I=this.match(139);this.parseClassElementName(c),this.parsePostMemberNameModifiers(u),I?this.pushClassPrivateMethod(t,n,w,!0):(this.isNonstaticConstructor(r)&&this.raise(p.ConstructorIsAsync,r.key),this.pushClassMethod(t,r,w,!0,!1,!1))}else if((x===\"get\"||x===\"set\")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(d),c.kind=x;let w=this.match(139);this.parseClassElementName(r),w?this.pushClassPrivateMethod(t,n,!1,!1):(this.isNonstaticConstructor(r)&&this.raise(p.ConstructorIsAccessor,r.key),this.pushClassMethod(t,r,!1,!1,!1,!1)),this.checkGetterSetterParams(r)}else if(x===\"accessor\"&&!this.isLineTerminator()){this.expectPlugin(\"decoratorAutoAccessors\"),this.resetPreviousNodeTrailingComments(d);let w=this.match(139);this.parseClassElementName(o),this.pushClassAccessorProperty(t,l,w)}else this.isLineTerminator()?S?this.pushClassPrivateProperty(t,h):this.pushClassProperty(t,o):this.unexpected()}parseClassElementName(t){let{type:e,value:s}=this.state;if((e===132||e===134)&&t.static&&s===\"prototype\"&&this.raise(p.StaticPrototype,this.state.startLoc),e===139){s===\"constructor\"&&this.raise(p.ConstructorClassPrivateField,this.state.startLoc);let i=this.parsePrivateName();return t.key=i,i}return this.parsePropertyName(t),t.key}parseClassStaticBlock(t,e){var s;this.scope.enter(208);let i=this.state.labels;this.state.labels=[],this.prodParam.enter(0);let r=e.body=[];this.parseBlockOrModuleBlockBody(r,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=i,t.body.push(this.finishNode(e,\"StaticBlock\")),(s=e.decorators)!=null&&s.length&&this.raise(p.DecoratorStaticBlock,e)}pushClassProperty(t,e){!e.computed&&this.nameIsConstructor(e.key)&&this.raise(p.ConstructorClassField,e.key),t.body.push(this.parseClassProperty(e))}pushClassPrivateProperty(t,e){let s=this.parseClassPrivateProperty(e);t.body.push(s),this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),0,s.key.loc.start)}pushClassAccessorProperty(t,e,s){!s&&!e.computed&&this.nameIsConstructor(e.key)&&this.raise(p.ConstructorClassField,e.key);let i=this.parseClassAccessorProperty(e);t.body.push(i),s&&this.classScope.declarePrivateName(this.getPrivateNameSV(i.key),0,i.key.loc.start)}pushClassMethod(t,e,s,i,r,n){t.body.push(this.parseMethod(e,s,i,r,n,\"ClassMethod\",!0))}pushClassPrivateMethod(t,e,s,i){let r=this.parseMethod(e,s,i,!1,!1,\"ClassPrivateMethod\",!0);t.body.push(r);let n=r.kind===\"get\"?r.static?6:2:r.kind===\"set\"?r.static?5:1:0;this.declareClassPrivateMethodInScope(r,n)}declareClassPrivateMethodInScope(t,e){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),e,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassPrivateProperty\")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassProperty\")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassAccessorProperty\")}parseInitializer(t){this.scope.enter(80),this.expressionScope.enter(Zt()),this.prodParam.enter(0),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,e,s,i=8331){if(C(this.state.type))t.id=this.parseIdentifier(),e&&this.declareNameFromIdentifier(t.id,i);else if(s||!e)t.id=null;else throw this.raise(p.MissingClassName,this.state.startLoc)}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t,e){let s=this.parseMaybeImportPhase(t,!0),i=this.maybeParseExportDefaultSpecifier(t,s),r=!i||this.eat(12),n=r&&this.eatExportStar(t),o=n&&this.maybeParseExportNamespaceSpecifier(t),h=r&&(!o||this.eat(12)),l=i||n;if(n&&!o){if(i&&this.unexpected(),e)throw this.raise(p.UnsupportedDecoratorExport,t);return this.parseExportFrom(t,!0),this.finishNode(t,\"ExportAllDeclaration\")}let c=this.maybeParseExportNamedSpecifiers(t);i&&r&&!n&&!c&&this.unexpected(null,5),o&&h&&this.unexpected(null,98);let u;if(l||c){if(u=!1,e)throw this.raise(p.UnsupportedDecoratorExport,t);this.parseExportFrom(t,l)}else u=this.maybeParseExportDeclaration(t);if(l||c||u){var f;let d=t;if(this.checkExport(d,!0,!1,!!d.source),((f=d.declaration)==null?void 0:f.type)===\"ClassDeclaration\")this.maybeTakeDecorators(e,d.declaration,d);else if(e)throw this.raise(p.UnsupportedDecoratorExport,t);return this.finishNode(d,\"ExportNamedDeclaration\")}if(this.eat(65)){let d=t,x=this.parseExportDefaultExpression();if(d.declaration=x,x.type===\"ClassDeclaration\")this.maybeTakeDecorators(e,x,d);else if(e)throw this.raise(p.UnsupportedDecoratorExport,t);return this.checkExport(d,!0,!0),this.finishNode(d,\"ExportDefaultDeclaration\")}this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t,e){if(e||this.isExportDefaultSpecifier()){this.expectPlugin(\"exportDefaultFrom\",e==null?void 0:e.loc.start);let s=e||this.parseIdentifier(!0),i=this.startNodeAtNode(s);return i.exported=s,t.specifiers=[this.finishNode(i,\"ExportDefaultSpecifier\")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){var e,s;(s=(e=t).specifiers)!=null||(e.specifiers=[]);let i=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),i.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(i,\"ExportNamespaceSpecifier\")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){let e=t;e.specifiers||(e.specifiers=[]);let s=e.exportKind===\"type\";return e.specifiers.push(...this.parseExportSpecifiers(s)),e.source=null,e.declaration=null,this.hasPlugin(\"importAssertions\")&&(e.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin(\"importAssertions\")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let t=this.nextTokenInLineStart();return this.isUnparsedContextual(t,\"function\")}parseExportDefaultExpression(){let t=this.startNode();if(this.match(68))return this.next(),this.parseFunction(t,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(t,13);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin(\"decorators\")&&this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")===!0&&this.raise(p.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(p.UnsupportedDefaultExport,this.state.startLoc);let e=this.parseMaybeAssignAllowIn();return this.semicolon(),e}parseExportDeclaration(t){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){let{type:t}=this.state;if(C(t)){if(t===95&&!this.state.containsEsc||t===100)return!1;if((t===130||t===129)&&!this.state.containsEsc){let{type:i}=this.lookahead();if(C(i)&&i!==98||i===5)return this.expectOnePlugin([\"flow\",\"typescript\"]),!1}}else if(!this.match(65))return!1;let e=this.nextTokenStart(),s=this.isUnparsedContextual(e,\"from\");if(this.input.charCodeAt(e)===44||C(this.state.type)&&s)return!0;if(this.match(65)&&s){let i=this.input.charCodeAt(this.nextTokenStartSince(e+4));return i===34||i===39}return!1}parseExportFrom(t,e){this.eatContextual(98)?(t.source=this.parseImportSource(),this.checkExport(t),this.maybeParseImportAttributes(t),this.checkJSONModuleImport(t)):e&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){let{type:t}=this.state;return t===26&&(this.expectOnePlugin([\"decorators\",\"decorators-legacy\"]),this.hasPlugin(\"decorators\"))?(this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")===!0&&this.raise(p.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(p.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(p.UsingDeclarationExport,this.state.startLoc),!0):t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,e,s,i){if(e){var r;if(s){if(this.checkDuplicateExports(t,\"default\"),this.hasPlugin(\"exportDefaultFrom\")){var n;let o=t.declaration;o.type===\"Identifier\"&&o.name===\"from\"&&o.end-o.start===4&&!((n=o.extra)!=null&&n.parenthesized)&&this.raise(p.ExportDefaultFromAsIdentifier,o)}}else if((r=t.specifiers)!=null&&r.length)for(let o of t.specifiers){let{exported:h}=o,l=h.type===\"Identifier\"?h.name:h.value;if(this.checkDuplicateExports(o,l),!i&&o.local){let{local:c}=o;c.type!==\"Identifier\"?this.raise(p.ExportBindingIsString,o,{localName:c.value,exportName:l}):(this.checkReservedWord(c.name,c.loc.start,!0,!1),this.scope.checkLocalExport(c))}}else if(t.declaration){let o=t.declaration;if(o.type===\"FunctionDeclaration\"||o.type===\"ClassDeclaration\"){let{id:h}=o;if(!h)throw new Error(\"Assertion failure\");this.checkDuplicateExports(t,h.name)}else if(o.type===\"VariableDeclaration\")for(let h of o.declarations)this.checkDeclaration(h.id)}}}checkDeclaration(t){if(t.type===\"Identifier\")this.checkDuplicateExports(t,t.name);else if(t.type===\"ObjectPattern\")for(let e of t.properties)this.checkDeclaration(e);else if(t.type===\"ArrayPattern\")for(let e of t.elements)e&&this.checkDeclaration(e);else t.type===\"ObjectProperty\"?this.checkDeclaration(t.value):t.type===\"RestElement\"?this.checkDeclaration(t.argument):t.type===\"AssignmentPattern\"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,e){this.exportedIdentifiers.has(e)&&(e===\"default\"?this.raise(p.DuplicateDefaultExport,t):this.raise(p.DuplicateExport,t,{exportName:e})),this.exportedIdentifiers.add(e)}parseExportSpecifiers(t){let e=[],s=!0;for(this.expect(5);!this.eat(8);){if(s)s=!1;else if(this.expect(12),this.eat(8))break;let i=this.isContextual(130),r=this.match(134),n=this.startNode();n.local=this.parseModuleExportName(),e.push(this.parseExportSpecifier(n,r,t,i))}return e}parseExportSpecifier(t,e,s,i){return this.eatContextual(93)?t.exported=this.parseModuleExportName():e?t.exported=Mi(t.local):t.exported||(t.exported=_(t.local)),this.finishNode(t,\"ExportSpecifier\")}parseModuleExportName(){if(this.match(134)){let t=this.parseStringLiteral(this.state.value),e=tr.exec(t.value);return e&&this.raise(p.ModuleExportNameHasLoneSurrogate,t,{surrogateCharCode:e[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}isJSONModuleImport(t){return t.assertions!=null?t.assertions.some(({key:e,value:s})=>s.value===\"json\"&&(e.type===\"Identifier\"?e.name===\"type\":e.value===\"type\")):!1}checkImportReflection(t){let{specifiers:e}=t,s=e.length===1?e[0].type:null;if(t.phase===\"source\")s!==\"ImportDefaultSpecifier\"&&this.raise(p.SourcePhaseImportRequiresDefault,e[0].loc.start);else if(t.phase===\"defer\")s!==\"ImportNamespaceSpecifier\"&&this.raise(p.DeferImportRequiresNamespace,e[0].loc.start);else if(t.module){var i;s!==\"ImportDefaultSpecifier\"&&this.raise(p.ImportReflectionNotBinding,e[0].loc.start),((i=t.assertions)==null?void 0:i.length)>0&&this.raise(p.ImportReflectionHasAssertion,e[0].loc.start)}}checkJSONModuleImport(t){if(this.isJSONModuleImport(t)&&t.type!==\"ExportAllDeclaration\"){let{specifiers:e}=t;if(e!=null){let s=e.find(i=>{let r;if(i.type===\"ExportSpecifier\"?r=i.local:i.type===\"ImportSpecifier\"&&(r=i.imported),r!==void 0)return r.type===\"Identifier\"?r.name!==\"default\":r.value!==\"default\"});s!==void 0&&this.raise(p.ImportJSONBindingNotDefault,s.loc.start)}}}isPotentialImportPhase(t){return t?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(t,e,s,i){e||(s===\"module\"?(this.expectPlugin(\"importReflection\",i),t.module=!0):this.hasPlugin(\"importReflection\")&&(t.module=!1),s===\"source\"?(this.expectPlugin(\"sourcePhaseImports\",i),t.phase=\"source\"):s===\"defer\"?(this.expectPlugin(\"deferredImportEvaluation\",i),t.phase=\"defer\"):this.hasPlugin(\"sourcePhaseImports\")&&(t.phase=null))}parseMaybeImportPhase(t,e){if(!this.isPotentialImportPhase(e))return this.applyImportPhase(t,e,null),null;let s=this.parseIdentifier(!0),{type:i}=this.state;return(D(i)?i!==98||this.lookaheadCharCode()===102:i!==12)?(this.resetPreviousIdentifierLeadingComments(s),this.applyImportPhase(t,e,s.name,s.loc.start),null):(this.applyImportPhase(t,e,null),s)}isPrecedingIdImportPhase(t){let{type:e}=this.state;return C(e)?e!==98||this.lookaheadCharCode()===102:e!==12}parseImport(t){return this.match(134)?this.parseImportSourceAndAttributes(t):this.parseImportSpecifiersAndAfter(t,this.parseMaybeImportPhase(t,!1))}parseImportSpecifiersAndAfter(t,e){t.specifiers=[];let i=!this.maybeParseDefaultImportSpecifier(t,e)||this.eat(12),r=i&&this.maybeParseStarImportSpecifier(t);return i&&!r&&this.parseNamedImportSpecifiers(t),this.expectContextual(98),this.parseImportSourceAndAttributes(t)}parseImportSourceAndAttributes(t){var e;return(e=t.specifiers)!=null||(t.specifiers=[]),t.source=this.parseImportSource(),this.maybeParseImportAttributes(t),this.checkImportReflection(t),this.checkJSONModuleImport(t),this.semicolon(),this.finishNode(t,\"ImportDeclaration\")}parseImportSource(){return this.match(134)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(t,e,s){e.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(e,s))}finishImportSpecifier(t,e,s=8201){return this.checkLVal(t.local,{type:e},s),this.finishNode(t,e)}parseImportAttributes(){this.expect(5);let t=[],e=new Set;do{if(this.match(8))break;let s=this.startNode(),i=this.state.value;if(e.has(i)&&this.raise(p.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:i}),e.add(i),this.match(134)?s.key=this.parseStringLiteral(i):s.key=this.parseIdentifier(!0),this.expect(14),!this.match(134))throw this.raise(p.ModuleAttributeInvalidValue,this.state.startLoc);s.value=this.parseStringLiteral(this.state.value),t.push(this.finishNode(s,\"ImportAttribute\"))}while(this.eat(12));return this.expect(8),t}parseModuleAttributes(){let t=[],e=new Set;do{let s=this.startNode();if(s.key=this.parseIdentifier(!0),s.key.name!==\"type\"&&this.raise(p.ModuleAttributeDifferentFromType,s.key),e.has(s.key.name)&&this.raise(p.ModuleAttributesWithDuplicateKeys,s.key,{key:s.key.name}),e.add(s.key.name),this.expect(14),!this.match(134))throw this.raise(p.ModuleAttributeInvalidValue,this.state.startLoc);s.value=this.parseStringLiteral(this.state.value),t.push(this.finishNode(s,\"ImportAttribute\"))}while(this.eat(12));return t}maybeParseImportAttributes(t){let e;var s=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin(\"moduleAttributes\")?e=this.parseModuleAttributes():e=this.parseImportAttributes(),s=!0}else this.isContextual(94)&&!this.hasPrecedingLineBreak()?(!this.hasPlugin(\"deprecatedImportAssert\")&&!this.hasPlugin(\"importAssertions\")&&this.raise(p.ImportAttributesUseAssert,this.state.startLoc),this.hasPlugin(\"importAssertions\")||this.addExtra(t,\"deprecatedAssertSyntax\",!0),this.next(),e=this.parseImportAttributes()):e=[];!s&&this.hasPlugin(\"importAssertions\")?t.assertions=e:t.attributes=e}maybeParseDefaultImportSpecifier(t,e){if(e){let s=this.startNodeAtNode(e);return s.local=e,t.specifiers.push(this.finishImportSpecifier(s,\"ImportDefaultSpecifier\")),!0}else if(D(this.state.type))return this.parseImportSpecifierLocal(t,this.startNode(),\"ImportDefaultSpecifier\"),!0;return!1}maybeParseStarImportSpecifier(t){if(this.match(55)){let e=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,e,\"ImportNamespaceSpecifier\"),!0}return!1}parseNamedImportSpecifiers(t){let e=!0;for(this.expect(5);!this.eat(8);){if(e)e=!1;else{if(this.eat(14))throw this.raise(p.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}let s=this.startNode(),i=this.match(134),r=this.isContextual(130);s.imported=this.parseModuleExportName();let n=this.parseImportSpecifier(s,i,t.importKind===\"type\"||t.importKind===\"typeof\",r,void 0);t.specifiers.push(n)}}parseImportSpecifier(t,e,s,i,r){if(this.eatContextual(93))t.local=this.parseIdentifier();else{let{imported:n}=t;if(e)throw this.raise(p.ImportBindingIsString,t,{importName:n.value});this.checkReservedWord(n.name,t.loc.start,!0,!0),t.local||(t.local=_(n))}return this.finishImportSpecifier(t,\"ImportSpecifier\",r)}isThisParam(t){return t.type===\"Identifier\"&&t.name===\"this\"}},ke=class extends ht{constructor(t,e,s){t=Zi(t),super(t,e),this.options=t,this.initializeScopes(),this.plugins=s,this.filename=t.sourceFilename,this.startIndex=t.startIndex}getScopeHandler(){return fe}parse(){this.enterInitialScopes();let t=this.startNode(),e=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,e),t.errors=this.state.errors,t.comments.length=this.state.commentsLen,t}};function ir(a,t){var e;if(((e=t)==null?void 0:e.sourceType)===\"unambiguous\"){t=Object.assign({},t);try{t.sourceType=\"module\";let s=ce(t,a),i=s.parse();if(s.sawUnambiguousESM)return i;if(s.ambiguousScriptDifferentAst)try{return t.sourceType=\"script\",ce(t,a).parse()}catch{}else i.program.sourceType=\"script\";return i}catch(s){try{return t.sourceType=\"script\",ce(t,a).parse()}catch{}throw s}}else return ce(t,a).parse()}function rr(a,t){let e=ce(t,a);return e.options.strictMode&&(e.state.strict=!0),e.getExpression()}function ar(a){let t={};for(let e of Object.keys(a))t[e]=F(a[e]);return t}var nr=ar(ti);function ce(a,t){let e=ke,s=new Map;if(a!=null&&a.plugins){for(let i of a.plugins){let r,n;typeof i==\"string\"?r=i:[r,n]=i,s.has(r)||s.set(r,n||{})}Gi(s),e=or(s)}return new e(a,t,s)}var zt=new Map;function or(a){let t=[];for(let i of Yi)a.has(i)&&t.push(i);let e=t.join(\"|\"),s=zt.get(e);if(!s){s=ke;for(let i of t)s=is[i](s);zt.set(e,s)}return s}me.parse=ir;me.parseExpression=rr;me.tokTypes=nr});var Et={};zs(Et,{parsers:()=>Hr});var Be=It(gt(),1);function ve(a){return(t,e,s)=>{let i=!!(s!=null&&s.backwards);if(e===!1)return!1;let{length:r}=t,n=e;for(;n>=0&&n{if(!(a&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[e<0?t.length+e:e]:t.at(e)},Tt=dr;function mr(a){return Array.isArray(a)&&a.length>0}var ye=mr;function L(a){var s,i,r;let t=((s=a.range)==null?void 0:s[0])??a.start,e=(r=((i=a.declaration)==null?void 0:i.decorators)??a.decorators)==null?void 0:r[0];return e?Math.min(L(e),t):t}function j(a){var t;return((t=a.range)==null?void 0:t[1])??a.end}function yr(a){let t=new Set(a);return e=>t.has(e==null?void 0:e.type)}var ps=yr;var xr=ps([\"Block\",\"CommentBlock\",\"MultiLine\"]),xe=xr;function Pr(a){let t=`*${a.value}*`.split(`\n`);return t.length>1&&t.every(e=>e.trimStart()[0]===\"*\")}var bt=Pr;function gr(a){return xe(a)&&a.value[0]===\"*\"&&/@(?:type|satisfies)\\b/u.test(a.value)}var us=gr;var Pe=null;function ge(a){if(Pe!==null&&typeof Pe.property){let t=Pe;return Pe=ge.prototype=null,t}return Pe=ge.prototype=a??Object.create(null),new ge}var Tr=10;for(let a=0;a<=Tr;a++)ge();function At(a){return ge(a)}function br(a,t=\"type\"){At(a);function e(s){let i=s[t],r=a[i];if(!Array.isArray(r))throw Object.assign(new Error(`Missing visitor keys for '${i}'.`),{node:s});return r}return e}var fs=br;var ds={ArrayExpression:[\"elements\"],AssignmentExpression:[\"left\",\"right\"],BinaryExpression:[\"left\",\"right\"],InterpreterDirective:[],Directive:[\"value\"],DirectiveLiteral:[],BlockStatement:[\"directives\",\"body\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],CatchClause:[\"param\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExpressionStatement:[\"expression\"],File:[\"program\"],ForInStatement:[\"left\",\"right\",\"body\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"typeAnnotation\",\"decorators\"],IfStatement:[\"test\",\"consequent\",\"alternate\"],LabeledStatement:[\"label\",\"body\"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],NewExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],Program:[\"directives\",\"body\"],ObjectExpression:[\"properties\"],ObjectMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectProperty:[\"key\",\"value\",\"decorators\"],RestElement:[\"argument\",\"typeAnnotation\",\"decorators\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],ParenthesizedExpression:[\"expression\"],SwitchCase:[\"test\",\"consequent\"],SwitchStatement:[\"discriminant\",\"cases\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],AssignmentPattern:[\"left\",\"right\",\"decorators\",\"typeAnnotation\"],ArrayPattern:[\"elements\",\"typeAnnotation\",\"decorators\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],ClassBody:[\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ExportAllDeclaration:[\"source\",\"attributes\",\"exported\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],ExportSpecifier:[\"local\",\"exported\"],ForOfStatement:[\"left\",\"right\",\"body\"],ImportDeclaration:[\"specifiers\",\"source\",\"attributes\"],ImportDefaultSpecifier:[\"local\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],ImportExpression:[\"source\",\"options\"],MetaProperty:[\"meta\",\"property\"],ClassMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectPattern:[\"properties\",\"typeAnnotation\",\"decorators\"],SpreadElement:[\"argument\"],Super:[],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\",\"typeArguments\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],YieldExpression:[\"argument\"],AwaitExpression:[\"argument\"],BigIntLiteral:[],ExportNamespaceSpecifier:[\"exported\"],OptionalMemberExpression:[\"object\",\"property\"],OptionalCallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],ClassProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],ClassPrivateProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassPrivateMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],PrivateName:[\"id\"],StaticBlock:[\"body\"],AnyTypeAnnotation:[],ArrayTypeAnnotation:[\"elementType\"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:[\"id\",\"typeParameters\"],DeclareClass:[\"id\",\"typeParameters\",\"extends\",\"mixins\",\"implements\",\"body\"],DeclareFunction:[\"id\",\"predicate\"],DeclareInterface:[\"id\",\"typeParameters\",\"extends\",\"body\"],DeclareModule:[\"id\",\"body\"],DeclareModuleExports:[\"typeAnnotation\"],DeclareTypeAlias:[\"id\",\"typeParameters\",\"right\"],DeclareOpaqueType:[\"id\",\"typeParameters\",\"supertype\"],DeclareVariable:[\"id\"],DeclareExportDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],DeclareExportAllDeclaration:[\"source\",\"attributes\"],DeclaredPredicate:[\"value\"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:[\"typeParameters\",\"params\",\"rest\",\"returnType\",\"this\"],FunctionTypeParam:[\"name\",\"typeAnnotation\"],GenericTypeAnnotation:[\"id\",\"typeParameters\"],InferredPredicate:[],InterfaceExtends:[\"id\",\"typeParameters\"],InterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],InterfaceTypeAnnotation:[\"extends\",\"body\"],IntersectionTypeAnnotation:[\"types\"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:[\"typeAnnotation\"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:[\"properties\",\"indexers\",\"callProperties\",\"internalSlots\"],ObjectTypeInternalSlot:[\"id\",\"value\"],ObjectTypeCallProperty:[\"value\"],ObjectTypeIndexer:[\"variance\",\"id\",\"key\",\"value\"],ObjectTypeProperty:[\"key\",\"value\",\"variance\"],ObjectTypeSpreadProperty:[\"argument\"],OpaqueType:[\"id\",\"typeParameters\",\"supertype\",\"impltype\"],QualifiedTypeIdentifier:[\"qualification\",\"id\"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:[\"types\",\"elementTypes\"],TypeofTypeAnnotation:[\"argument\",\"typeArguments\"],TypeAlias:[\"id\",\"typeParameters\",\"right\"],TypeAnnotation:[\"typeAnnotation\"],TypeCastExpression:[\"expression\",\"typeAnnotation\"],TypeParameter:[\"bound\",\"default\",\"variance\"],TypeParameterDeclaration:[\"params\"],TypeParameterInstantiation:[\"params\"],UnionTypeAnnotation:[\"types\"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:[\"id\",\"body\"],EnumBooleanBody:[\"members\"],EnumNumberBody:[\"members\"],EnumStringBody:[\"members\"],EnumSymbolBody:[\"members\"],EnumBooleanMember:[\"id\",\"init\"],EnumNumberMember:[\"id\",\"init\"],EnumStringMember:[\"id\",\"init\"],EnumDefaultedMember:[\"id\"],IndexedAccessType:[\"objectType\",\"indexType\"],OptionalIndexedAccessType:[\"objectType\",\"indexType\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXSpreadChild:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\",\"typeArguments\",\"typeParameters\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:[\"object\",\"callee\"],ImportAttribute:[\"key\",\"value\"],Decorator:[\"expression\"],DoExpression:[\"body\"],ExportDefaultSpecifier:[\"exported\"],RecordExpression:[\"properties\"],TupleExpression:[\"elements\"],ModuleExpression:[\"body\"],TopicReference:[],PipelineTopicExpression:[\"expression\"],PipelineBareFunction:[\"callee\"],PipelinePrimaryTopicReference:[],TSParameterProperty:[\"parameter\",\"decorators\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\"],TSQualifiedName:[\"left\",\"right\"],TSCallSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSPropertySignature:[\"key\",\"typeAnnotation\"],TSMethodSignature:[\"key\",\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructorType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSTypeReference:[\"typeName\",\"typeParameters\",\"typeArguments\"],TSTypePredicate:[\"parameterName\",\"typeAnnotation\"],TSTypeQuery:[\"exprName\",\"typeParameters\",\"typeArguments\"],TSTypeLiteral:[\"members\"],TSArrayType:[\"elementType\"],TSTupleType:[\"elementTypes\"],TSOptionalType:[\"typeAnnotation\"],TSRestType:[\"typeAnnotation\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSUnionType:[\"types\"],TSIntersectionType:[\"types\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSInferType:[\"typeParameter\"],TSParenthesizedType:[\"typeAnnotation\"],TSTypeOperator:[\"typeAnnotation\"],TSIndexedAccessType:[\"objectType\",\"indexType\"],TSMappedType:[\"typeParameter\",\"nameType\",\"typeAnnotation\"],TSLiteralType:[\"literal\"],TSExpressionWithTypeArguments:[\"expression\",\"typeParameters\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceBody:[\"body\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSInstantiationExpression:[\"expression\",\"typeParameters\",\"typeArguments\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSSatisfiesExpression:[\"expression\",\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSModuleDeclaration:[\"id\",\"body\"],TSModuleBlock:[\"body\"],TSImportType:[\"argument\",\"qualifier\",\"typeParameters\",\"typeArguments\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSExternalModuleReference:[\"expression\"],TSNonNullExpression:[\"expression\"],TSExportAssignment:[\"expression\"],TSNamespaceExportDeclaration:[\"id\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeParameterInstantiation:[\"params\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameter:[\"constraint\",\"default\",\"name\"],ChainExpression:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],Literal:[],MethodDefinition:[\"decorators\",\"key\",\"value\"],PrivateIdentifier:[],Property:[\"key\",\"value\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],AccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],TSAbstractAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAsyncKeyword:[],TSClassImplements:[\"expression\",\"typeArguments\",\"typeParameters\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumBody:[\"members\"],TSExportKeyword:[],TSInterfaceHeritage:[\"expression\",\"typeArguments\",\"typeParameters\"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],AsConstExpression:[\"expression\"],AsExpression:[\"expression\",\"typeAnnotation\"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"rendersType\"],ComponentParameter:[\"name\",\"local\"],ComponentTypeAnnotation:[\"params\",\"rest\",\"typeParameters\",\"rendersType\"],ComponentTypeParameter:[\"name\",\"typeAnnotation\"],ConditionalTypeAnnotation:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],DeclareComponent:[\"id\",\"params\",\"rest\",\"typeParameters\",\"rendersType\"],DeclareEnum:[\"id\",\"body\"],DeclareHook:[\"id\"],DeclareNamespace:[\"id\",\"body\"],EnumBigIntBody:[\"members\"],EnumBigIntMember:[\"id\",\"init\"],HookDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"returnType\"],HookTypeAnnotation:[\"params\",\"returnType\",\"rest\",\"typeParameters\"],InferTypeAnnotation:[\"typeParameter\"],KeyofTypeAnnotation:[\"argument\"],ObjectTypeMappedTypeProperty:[\"keyTparam\",\"propType\",\"sourceType\",\"variance\"],QualifiedTypeofIdentifier:[\"qualification\",\"id\"],TupleTypeLabeledElement:[\"label\",\"elementType\",\"variance\"],TupleTypeSpreadElement:[\"label\",\"typeAnnotation\"],TypeOperator:[\"typeAnnotation\"],TypePredicate:[\"parameterName\",\"typeAnnotation\",\"asserts\"],NGRoot:[\"node\"],NGPipeExpression:[\"left\",\"right\",\"arguments\"],NGChainedExpression:[\"expressions\"],NGEmptyExpression:[],NGMicrosyntax:[\"body\"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:[\"expression\",\"alias\"],NGMicrosyntaxKeyedExpression:[\"key\",\"expression\"],NGMicrosyntaxLet:[\"key\",\"value\"],NGMicrosyntaxAs:[\"key\",\"alias\"],JsExpressionRoot:[\"node\"],JsonRoot:[\"node\"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:[\"typeAnnotation\"],TSJSDocNonNullableType:[\"typeAnnotation\"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:[\"expression\",\"typeAnnotation\"]};var Ar=fs(ds),ms=Ar;function St(a,t){if(!(a!==null&&typeof a==\"object\"))return a;if(Array.isArray(a)){for(let s=0;s{var n;(n=r.leadingComments)!=null&&n.some(us)&&i.add(L(r))}),a=De(a,r=>{if(r.type===\"ParenthesizedExpression\"){let{expression:n}=r;if(n.type===\"TypeCastExpression\")return n.range=[...r.range],n;let o=L(r);if(!i.has(o))return n.extra={...n.extra,parenthesized:!0},n}})}if(a=De(a,i=>{switch(i.type){case\"LogicalExpression\":if(ys(i))return wt(i);break;case\"VariableDeclaration\":{let r=Tt(!1,i.declarations,-1);r!=null&&r.init&&s[j(r)]!==\";\"&&(i.range=[L(i),j(r)]);break}case\"TSParenthesizedType\":return i.typeAnnotation;case\"TSTypeParameter\":if(typeof i.name==\"string\"){let r=L(i);i.name={type:\"Identifier\",name:i.name,range:[r,r+i.name.length]}}break;case\"TopicReference\":a.extra={...a.extra,__isUsingHackPipeline:!0};break;case\"TSUnionType\":case\"TSIntersectionType\":if(i.types.length===1)return i.types[0];break}}),ye(a.comments)){let i=Tt(!1,a.comments,-1);for(let r=a.comments.length-2;r>=0;r--){let n=a.comments[r];j(n)===L(i)&&xe(n)&&xe(i)&&bt(n)&&bt(i)&&(a.comments.splice(r+1,1),n.value+=\"*//*\"+i.value,n.range=[L(n),j(i)]),i=n}}return a.type===\"Program\"&&(a.range=[0,s.length]),a}function ys(a){return a.type===\"LogicalExpression\"&&a.right.type===\"LogicalExpression\"&&a.operator===a.right.operator}function wt(a){return ys(a)?wt({type:\"LogicalExpression\",operator:a.operator,left:wt({type:\"LogicalExpression\",operator:a.operator,left:a.left,right:a.right.left,range:[L(a.left),j(a.right.left)]}),right:a.right.right,range:[L(a),j(a)]}):a}var xs=Sr;function wr(a,t){let e=new SyntaxError(a+\" (\"+t.loc.start.line+\":\"+t.loc.start.column+\")\");return Object.assign(e,t)}var Me=wr;function Cr(a){let{message:t,loc:{line:e,column:s},reasonCode:i}=a,r=a;(i===\"MissingPlugin\"||i===\"MissingOneOfPlugins\")&&(t=\"Unexpected token.\",r=void 0);let n=` (${e}:${s})`;return t.endsWith(n)&&(t=t.slice(0,-n.length)),Me(t,{loc:{start:{line:e,column:s+1}},cause:r})}var Oe=Cr;var Er=(a,t,e,s)=>{if(!(a&&t==null))return t.replaceAll?t.replaceAll(e,s):e.global?t.replace(e,s):t.split(e).join(s)},se=Er;var Ir=/\\*\\/$/,Nr=/^\\/\\*\\*?/,kr=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,vr=/(^|\\s+)\\/\\/([^\\n\\r]*)/g,Ps=/^(\\r?\\n)+/,Lr=/(?:^|\\r?\\n) *(@[^\\n\\r]*?) *\\r?\\n *(?![^\\n\\r@]*\\/\\/[^]*)([^\\s@][^\\n\\r@]+?) *\\r?\\n/g,gs=/(?:^|\\r?\\n) *@(\\S+) *([^\\n\\r]*)/g,Dr=/(\\r?\\n|^) *\\* ?/g,Mr=[];function Ts(a){let t=a.match(kr);return t?t[0].trimStart():\"\"}function bs(a){let t=`\n`;a=se(!1,a.replace(Nr,\"\").replace(Ir,\"\"),Dr,\"$1\");let e=\"\";for(;e!==a;)e=a,a=se(!1,a,Lr,`${t}$1 $2${t}`);a=a.replace(Ps,\"\").trimEnd();let s=Object.create(null),i=se(!1,a,gs,\"\").replace(Ps,\"\").trimEnd(),r;for(;r=gs.exec(a);){let n=se(!1,r[2],vr,\"\");if(typeof s[r[1]]==\"string\"||Array.isArray(s[r[1]])){let o=s[r[1]];s[r[1]]=[...Mr,...Array.isArray(o)?o:[o],n]}else s[r[1]]=n}return{comments:i,pragmas:s}}function Or(a){let t=Le(a);t&&(a=a.slice(t.length+1));let e=Ts(a),{pragmas:s,comments:i}=bs(e);return{shebang:t,text:a,pragmas:s,comments:i}}function As(a){let{pragmas:t}=Or(a);return Object.prototype.hasOwnProperty.call(t,\"prettier\")||Object.prototype.hasOwnProperty.call(t,\"format\")}function Fr(a){return a=typeof a==\"function\"?{parse:a}:a,{astFormat:\"estree\",hasPragma:As,locStart:L,locEnd:j,...a}}var W=Fr;function Br(a){let{filepath:t}=a;if(t){if(t=t.toLowerCase(),t.endsWith(\".cjs\")||t.endsWith(\".cts\"))return\"script\";if(t.endsWith(\".mjs\")||t.endsWith(\".mts\"))return\"module\"}}var Ss=Br;function Rr(a,t){let{type:e=\"JsExpressionRoot\",rootMarker:s,text:i}=t,{tokens:r,comments:n}=a;return delete a.tokens,delete a.comments,{tokens:r,comments:n,type:e,node:a,range:[0,i.length],rootMarker:s}}var Fe=Rr;var ie=a=>W(zr(a)),Ur={sourceType:\"module\",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowNewTargetOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,createImportExpressions:!0,plugins:[\"doExpressions\",\"exportDefaultFrom\",\"functionBind\",\"functionSent\",\"throwExpressions\",\"partialApplication\",\"decorators\",\"moduleBlocks\",\"asyncDoExpressions\",\"destructuringPrivate\",\"decoratorAutoAccessors\",\"explicitResourceManagement\",\"sourcePhaseImports\",\"deferredImportEvaluation\",[\"optionalChainingAssign\",{version:\"2023-07\"}],\"recordAndTuple\"],tokens:!0,ranges:!0},ws=\"v8intrinsic\",Cs=[[\"pipelineOperator\",{proposal:\"hack\",topicToken:\"%\"}],[\"pipelineOperator\",{proposal:\"fsharp\"}]],$=(a,t=Ur)=>({...t,plugins:[...t.plugins,...a]}),_r=/@(?:no)?flow\\b/u;function jr(a,t){var i;if((i=t.filepath)!=null&&i.endsWith(\".js.flow\"))return!0;let e=Le(a);e&&(a=a.slice(e.length));let s=ls(a,0);return s!==!1&&(a=a.slice(0,s)),_r.test(a)}function $r(a,t,e){let s=a(t,e),i=s.errors.find(r=>!Vr.has(r.reasonCode));if(i)throw i;return s}function zr({isExpression:a=!1,optionsCombinations:t}){return(e,s={})=>{if((s.parser===\"babel\"||s.parser===\"__babel_estree\")&&jr(e,s))return s.parser=\"babel-flow\",Ls.parse(e,s);let i=t;(s.__babelSourceType??Ss(s))===\"script\"&&(i=i.map(l=>({...l,sourceType:\"script\"})));let n=/%[A-Z]/u.test(e);e.includes(\"|>\")?i=(n?[...Cs,ws]:Cs).flatMap(c=>i.map(u=>$([c],u))):n&&(i=i.map(l=>$([ws],l)));let o=a?Be.parseExpression:Be.parse,h;try{h=cs(i.map(l=>()=>$r(o,e,l)))}catch({errors:[l]}){throw Oe(l)}return a&&(h=Fe(h,{text:e,rootMarker:s.rootMarker})),xs(h,{parser:\"babel\",text:e})}}var Vr=new Set([\"StrictNumericEscape\",\"StrictWith\",\"StrictOctalLiteral\",\"StrictDelete\",\"StrictEvalArguments\",\"StrictEvalArgumentsBinding\",\"StrictFunction\",\"ForInOfLoopInitializer\",\"EmptyTypeArguments\",\"EmptyTypeParameters\",\"ConstructorHasTypeParameters\",\"UnsupportedParameterPropertyKind\",\"DecoratorExportClass\",\"ParamDupe\",\"InvalidDecimal\",\"RestTrailingComma\",\"UnsupportedParameterDecorator\",\"UnterminatedJsxContent\",\"UnexpectedReservedWord\",\"ModuleAttributesWithDuplicateKeys\",\"LineTerminatorBeforeArrow\",\"InvalidEscapeSequenceTemplate\",\"NonAbstractClassHasAbstractMethod\",\"OptionalTypeBeforeRequired\",\"PatternIsOptional\",\"OptionalBindingPattern\",\"DeclareClassFieldHasInitializer\",\"TypeImportCannotSpecifyDefaultAndNamed\",\"ConstructorClassField\",\"VarRedeclaration\",\"InvalidPrivateFieldResolution\",\"DuplicateExport\",\"ImportAttributesUseAssert\"]),vs=[$([\"jsx\"])],Es=ie({optionsCombinations:vs}),Is=ie({optionsCombinations:[$([\"jsx\",\"typescript\"]),$([\"typescript\"])]}),Ns=ie({isExpression:!0,optionsCombinations:[$([\"jsx\"])]}),ks=ie({isExpression:!0,optionsCombinations:[$([\"typescript\"])]}),Ls=ie({optionsCombinations:[$([\"jsx\",[\"flow\",{all:!0}],\"flowComments\"])]}),qr=ie({optionsCombinations:vs.map(a=>$([\"estree\"],a))}),Ds={babel:Es,\"babel-flow\":Ls,\"babel-ts\":Is,__js_expression:Ns,__ts_expression:ks,__vue_expression:Ns,__vue_ts_expression:ks,__vue_event_binding:Es,__vue_ts_event_binding:Is,__babel_estree:qr};var Ms=It(gt(),1);function Os(a={}){let{allowComments:t=!0}=a;return function(s){let i;try{i=(0,Ms.parseExpression)(s,{tokens:!0,ranges:!0,attachComment:!1})}catch(r){throw Oe(r)}if(!t&&ye(i.comments))throw K(i.comments[0],\"Comment\");return re(i),Fe(i,{type:\"JsonRoot\",text:s})}}function K(a,t){let[e,s]=[a.loc.start,a.loc.end].map(({line:i,column:r})=>({line:i,column:r+1}));return Me(`${t} is not allowed in JSON.`,{loc:{start:e,end:s}})}function re(a){switch(a.type){case\"ArrayExpression\":for(let t of a.elements)t!==null&&re(t);return;case\"ObjectExpression\":for(let t of a.properties)re(t);return;case\"ObjectProperty\":if(a.computed)throw K(a.key,\"Computed key\");if(a.shorthand)throw K(a.key,\"Shorthand property\");a.key.type!==\"Identifier\"&&re(a.key),re(a.value);return;case\"UnaryExpression\":{let{operator:t,argument:e}=a;if(t!==\"+\"&&t!==\"-\")throw K(a,`Operator '${a.operator}'`);if(e.type===\"NumericLiteral\"||e.type===\"Identifier\"&&(e.name===\"Infinity\"||e.name===\"NaN\"))return;throw K(e,`Operator '${t}' before '${e.type}'`)}case\"Identifier\":if(a.name!==\"Infinity\"&&a.name!==\"NaN\"&&a.name!==\"undefined\")throw K(a,`Identifier '${a.name}'`);return;case\"TemplateLiteral\":if(ye(a.expressions))throw K(a.expressions[0],\"'TemplateLiteral' with expression\");for(let t of a.quasis)re(t);return;case\"NullLiteral\":case\"BooleanLiteral\":case\"NumericLiteral\":case\"StringLiteral\":case\"TemplateElement\":return;default:throw K(a,`'${a.type}'`)}}var Ct=Os(),Kr={json:W({parse:Ct,hasPragma(){return!0}}),json5:W(Ct),jsonc:W(Ct),\"json-stringify\":W({parse:Os({allowComments:!1}),astFormat:\"estree-json\"})},Fs=Kr;var Hr={...Ds,...Fs};var Cn=Et;export{Cn as default,Hr as parsers};\n", "var Xa=Object.defineProperty;var Js=e=>{throw TypeError(e)};var Ar=(e,t)=>{for(var r in t)Xa(e,r,{get:t[r],enumerable:!0})};var qs=(e,t,r)=>t.has(e)||Js(\"Cannot \"+r);var pt=(e,t,r)=>(qs(e,t,\"read from private field\"),r?r.call(e):t.get(e)),Ws=(e,t,r)=>t.has(e)?Js(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,r),Gs=(e,t,r,n)=>(qs(e,t,\"write to private field\"),n?n.call(e,r):t.set(e,r),r);var _s={};Ar(_s,{languages:()=>om,options:()=>Ja,printers:()=>am});var Us=[{linguistLanguageId:183,name:\"JavaScript\",type:\"programming\",tmScope:\"source.js\",aceMode:\"javascript\",codemirrorMode:\"javascript\",codemirrorMimeType:\"text/javascript\",color:\"#f1e05a\",aliases:[\"js\",\"node\"],extensions:[\".js\",\"._js\",\".bones\",\".cjs\",\".es\",\".es6\",\".frag\",\".gs\",\".jake\",\".javascript\",\".jsb\",\".jscad\",\".jsfl\",\".jslib\",\".jsm\",\".jspre\",\".jss\",\".mjs\",\".njs\",\".pac\",\".sjs\",\".ssjs\",\".xsjs\",\".xsjslib\",\".wxs\"],filenames:[\"Jakefile\"],interpreters:[\"chakra\",\"d8\",\"gjs\",\"js\",\"node\",\"nodejs\",\"qjs\",\"rhino\",\"v8\",\"v8-shell\",\"zx\"],parsers:[\"babel\",\"acorn\",\"espree\",\"meriyah\",\"babel-flow\",\"babel-ts\",\"flow\",\"typescript\"],vscodeLanguageIds:[\"javascript\",\"mongo\"]},{linguistLanguageId:183,name:\"Flow\",type:\"programming\",tmScope:\"source.js\",aceMode:\"javascript\",codemirrorMode:\"javascript\",codemirrorMimeType:\"text/javascript\",color:\"#f1e05a\",aliases:[],extensions:[\".js.flow\"],filenames:[],interpreters:[\"chakra\",\"d8\",\"gjs\",\"js\",\"node\",\"nodejs\",\"qjs\",\"rhino\",\"v8\",\"v8-shell\"],parsers:[\"flow\",\"babel-flow\"],vscodeLanguageIds:[\"javascript\"]},{linguistLanguageId:183,name:\"JSX\",type:\"programming\",tmScope:\"source.js.jsx\",aceMode:\"javascript\",codemirrorMode:\"jsx\",codemirrorMimeType:\"text/jsx\",color:void 0,aliases:void 0,extensions:[\".jsx\"],filenames:void 0,interpreters:void 0,parsers:[\"babel\",\"babel-flow\",\"babel-ts\",\"flow\",\"typescript\",\"espree\",\"meriyah\"],vscodeLanguageIds:[\"javascriptreact\"],group:\"JavaScript\"},{linguistLanguageId:378,name:\"TypeScript\",type:\"programming\",color:\"#3178c6\",aliases:[\"ts\"],interpreters:[\"deno\",\"ts-node\"],extensions:[\".ts\",\".cts\",\".mts\"],tmScope:\"source.ts\",aceMode:\"typescript\",codemirrorMode:\"javascript\",codemirrorMimeType:\"application/typescript\",parsers:[\"typescript\",\"babel-ts\"],vscodeLanguageIds:[\"typescript\"]},{linguistLanguageId:94901924,name:\"TSX\",type:\"programming\",color:\"#3178c6\",group:\"TypeScript\",extensions:[\".tsx\"],tmScope:\"source.tsx\",aceMode:\"javascript\",codemirrorMode:\"jsx\",codemirrorMimeType:\"text/jsx\",parsers:[\"typescript\",\"babel-ts\"],vscodeLanguageIds:[\"typescriptreact\"]}];var ws={};Ar(ws,{canAttachComment:()=>Ap,embed:()=>Zu,experimentalFeatures:()=>tm,getCommentChildNodes:()=>Tp,getVisitorKeys:()=>gr,handleComments:()=>$n,insertPragma:()=>ci,isBlockComment:()=>ee,isGap:()=>dp,massageAstNode:()=>Au,print:()=>Oa,printComment:()=>ku,willPrintOwnComments:()=>Kn});var Ya=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Y=Ya;var Ha=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[r<0?t.length+r:r]:t.at(r)},_=Ha;function Na(e){return e!==null&&typeof e==\"object\"}var Xs=Na;function*Va(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,s=u=>Xs(u)&&n(u);for(let u of r(e)){let i=e[u];if(Array.isArray(i))for(let a of i)s(a)&&(yield a);else s(i)&&(yield i)}}function*$a(e,t){let r=[e];for(let n=0;n/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Ns(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Vs(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var $s=e=>!(Ns(e)||Vs(e));var Ka=/[^\\x20-\\x7F]/u;function Qa(e){if(!e)return 0;if(!Ka.test(e))return e.length;e=e.replace(Hs(),\" \");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=$s(n)?1:2)}return t}var ze=Qa;function Tr(e){return(t,r,n)=>{let s=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:u}=t,i=r;for(;i>=0&&i0}var O=no;var zs=new Proxy(()=>{},{get:()=>zs}),vt=zs;var dr=\"'\",Zs='\"';function so(e,t){let r=t===!0||t===dr?dr:Zs,n=r===dr?Zs:dr,s=0,u=0;for(let i of e)i===r?s++:i===n&&u++;return s>u?n:r}var xr=so;function uo(e,t,r){let n=t==='\"'?\"'\":'\"',u=Y(!1,e,/\\\\(.)|([\"'])/gsu,(i,a,p)=>a===n?a:p===t?\"\\\\\"+p:p||(r&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(a)?a:\"\\\\\"+a));return t+u+t}var eu=uo;function io(e,t){vt(/^(?[\"']).*\\k$/su.test(e));let r=e.slice(1,-1),n=t.parser===\"json\"||t.parser===\"jsonc\"||t.parser===\"json5\"&&t.quoteProps===\"preserve\"&&!t.singleQuote?'\"':t.__isInHtmlAttribute?\"'\":xr(r,t.singleQuote);return e.charAt(0)===n?e:eu(r,n,!1)}var Ze=io;function q(e){var n,s,u;let t=((n=e.range)==null?void 0:n[0])??e.start,r=(u=((s=e.declaration)==null?void 0:s.decorators)??e.decorators)==null?void 0:u[0];return r?Math.min(q(r),t):t}function k(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function Bt(e,t){let r=q(e);return Number.isInteger(r)&&r===q(t)}function ao(e,t){let r=k(e);return Number.isInteger(r)&&r===k(t)}function tu(e,t){return Bt(e,t)&&ao(e,t)}var Zt=null;function er(e){if(Zt!==null&&typeof Zt.property){let t=Zt;return Zt=er.prototype=null,t}return Zt=er.prototype=e??Object.create(null),new er}var oo=10;for(let e=0;e<=oo;e++)er();function In(e){return er(e)}function po(e,t=\"type\"){In(e);function r(n){let s=n[t],u=e[s];if(!Array.isArray(u))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:n});return u}return r}var hr=po;var ru={ArrayExpression:[\"elements\"],AssignmentExpression:[\"left\",\"right\"],BinaryExpression:[\"left\",\"right\"],InterpreterDirective:[],Directive:[\"value\"],DirectiveLiteral:[],BlockStatement:[\"directives\",\"body\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],CatchClause:[\"param\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExpressionStatement:[\"expression\"],File:[\"program\"],ForInStatement:[\"left\",\"right\",\"body\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"typeAnnotation\",\"decorators\"],IfStatement:[\"test\",\"consequent\",\"alternate\"],LabeledStatement:[\"label\",\"body\"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],NewExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],Program:[\"directives\",\"body\"],ObjectExpression:[\"properties\"],ObjectMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectProperty:[\"key\",\"value\",\"decorators\"],RestElement:[\"argument\",\"typeAnnotation\",\"decorators\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],ParenthesizedExpression:[\"expression\"],SwitchCase:[\"test\",\"consequent\"],SwitchStatement:[\"discriminant\",\"cases\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],AssignmentPattern:[\"left\",\"right\",\"decorators\",\"typeAnnotation\"],ArrayPattern:[\"elements\",\"typeAnnotation\",\"decorators\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],ClassBody:[\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ExportAllDeclaration:[\"source\",\"attributes\",\"exported\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],ExportSpecifier:[\"local\",\"exported\"],ForOfStatement:[\"left\",\"right\",\"body\"],ImportDeclaration:[\"specifiers\",\"source\",\"attributes\"],ImportDefaultSpecifier:[\"local\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],ImportExpression:[\"source\",\"options\"],MetaProperty:[\"meta\",\"property\"],ClassMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectPattern:[\"properties\",\"typeAnnotation\",\"decorators\"],SpreadElement:[\"argument\"],Super:[],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\",\"typeArguments\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],YieldExpression:[\"argument\"],AwaitExpression:[\"argument\"],BigIntLiteral:[],ExportNamespaceSpecifier:[\"exported\"],OptionalMemberExpression:[\"object\",\"property\"],OptionalCallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],ClassProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],ClassPrivateProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassPrivateMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],PrivateName:[\"id\"],StaticBlock:[\"body\"],AnyTypeAnnotation:[],ArrayTypeAnnotation:[\"elementType\"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:[\"id\",\"typeParameters\"],DeclareClass:[\"id\",\"typeParameters\",\"extends\",\"mixins\",\"implements\",\"body\"],DeclareFunction:[\"id\",\"predicate\"],DeclareInterface:[\"id\",\"typeParameters\",\"extends\",\"body\"],DeclareModule:[\"id\",\"body\"],DeclareModuleExports:[\"typeAnnotation\"],DeclareTypeAlias:[\"id\",\"typeParameters\",\"right\"],DeclareOpaqueType:[\"id\",\"typeParameters\",\"supertype\"],DeclareVariable:[\"id\"],DeclareExportDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],DeclareExportAllDeclaration:[\"source\",\"attributes\"],DeclaredPredicate:[\"value\"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:[\"typeParameters\",\"params\",\"rest\",\"returnType\",\"this\"],FunctionTypeParam:[\"name\",\"typeAnnotation\"],GenericTypeAnnotation:[\"id\",\"typeParameters\"],InferredPredicate:[],InterfaceExtends:[\"id\",\"typeParameters\"],InterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],InterfaceTypeAnnotation:[\"extends\",\"body\"],IntersectionTypeAnnotation:[\"types\"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:[\"typeAnnotation\"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:[\"properties\",\"indexers\",\"callProperties\",\"internalSlots\"],ObjectTypeInternalSlot:[\"id\",\"value\"],ObjectTypeCallProperty:[\"value\"],ObjectTypeIndexer:[\"variance\",\"id\",\"key\",\"value\"],ObjectTypeProperty:[\"key\",\"value\",\"variance\"],ObjectTypeSpreadProperty:[\"argument\"],OpaqueType:[\"id\",\"typeParameters\",\"supertype\",\"impltype\"],QualifiedTypeIdentifier:[\"qualification\",\"id\"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:[\"types\",\"elementTypes\"],TypeofTypeAnnotation:[\"argument\",\"typeArguments\"],TypeAlias:[\"id\",\"typeParameters\",\"right\"],TypeAnnotation:[\"typeAnnotation\"],TypeCastExpression:[\"expression\",\"typeAnnotation\"],TypeParameter:[\"bound\",\"default\",\"variance\"],TypeParameterDeclaration:[\"params\"],TypeParameterInstantiation:[\"params\"],UnionTypeAnnotation:[\"types\"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:[\"id\",\"body\"],EnumBooleanBody:[\"members\"],EnumNumberBody:[\"members\"],EnumStringBody:[\"members\"],EnumSymbolBody:[\"members\"],EnumBooleanMember:[\"id\",\"init\"],EnumNumberMember:[\"id\",\"init\"],EnumStringMember:[\"id\",\"init\"],EnumDefaultedMember:[\"id\"],IndexedAccessType:[\"objectType\",\"indexType\"],OptionalIndexedAccessType:[\"objectType\",\"indexType\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXSpreadChild:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\",\"typeArguments\",\"typeParameters\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:[\"object\",\"callee\"],ImportAttribute:[\"key\",\"value\"],Decorator:[\"expression\"],DoExpression:[\"body\"],ExportDefaultSpecifier:[\"exported\"],RecordExpression:[\"properties\"],TupleExpression:[\"elements\"],ModuleExpression:[\"body\"],TopicReference:[],PipelineTopicExpression:[\"expression\"],PipelineBareFunction:[\"callee\"],PipelinePrimaryTopicReference:[],TSParameterProperty:[\"parameter\",\"decorators\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\"],TSQualifiedName:[\"left\",\"right\"],TSCallSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSPropertySignature:[\"key\",\"typeAnnotation\"],TSMethodSignature:[\"key\",\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructorType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSTypeReference:[\"typeName\",\"typeParameters\",\"typeArguments\"],TSTypePredicate:[\"parameterName\",\"typeAnnotation\"],TSTypeQuery:[\"exprName\",\"typeParameters\",\"typeArguments\"],TSTypeLiteral:[\"members\"],TSArrayType:[\"elementType\"],TSTupleType:[\"elementTypes\"],TSOptionalType:[\"typeAnnotation\"],TSRestType:[\"typeAnnotation\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSUnionType:[\"types\"],TSIntersectionType:[\"types\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSInferType:[\"typeParameter\"],TSParenthesizedType:[\"typeAnnotation\"],TSTypeOperator:[\"typeAnnotation\"],TSIndexedAccessType:[\"objectType\",\"indexType\"],TSMappedType:[\"typeParameter\",\"nameType\",\"typeAnnotation\"],TSLiteralType:[\"literal\"],TSExpressionWithTypeArguments:[\"expression\",\"typeParameters\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceBody:[\"body\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSInstantiationExpression:[\"expression\",\"typeParameters\",\"typeArguments\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSSatisfiesExpression:[\"expression\",\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSModuleDeclaration:[\"id\",\"body\"],TSModuleBlock:[\"body\"],TSImportType:[\"argument\",\"qualifier\",\"typeParameters\",\"typeArguments\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSExternalModuleReference:[\"expression\"],TSNonNullExpression:[\"expression\"],TSExportAssignment:[\"expression\"],TSNamespaceExportDeclaration:[\"id\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeParameterInstantiation:[\"params\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameter:[\"constraint\",\"default\",\"name\"],ChainExpression:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],Literal:[],MethodDefinition:[\"decorators\",\"key\",\"value\"],PrivateIdentifier:[],Property:[\"key\",\"value\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],AccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],TSAbstractAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAsyncKeyword:[],TSClassImplements:[\"expression\",\"typeArguments\",\"typeParameters\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumBody:[\"members\"],TSExportKeyword:[],TSInterfaceHeritage:[\"expression\",\"typeArguments\",\"typeParameters\"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],AsConstExpression:[\"expression\"],AsExpression:[\"expression\",\"typeAnnotation\"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"rendersType\"],ComponentParameter:[\"name\",\"local\"],ComponentTypeAnnotation:[\"params\",\"rest\",\"typeParameters\",\"rendersType\"],ComponentTypeParameter:[\"name\",\"typeAnnotation\"],ConditionalTypeAnnotation:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],DeclareComponent:[\"id\",\"params\",\"rest\",\"typeParameters\",\"rendersType\"],DeclareEnum:[\"id\",\"body\"],DeclareHook:[\"id\"],DeclareNamespace:[\"id\",\"body\"],EnumBigIntBody:[\"members\"],EnumBigIntMember:[\"id\",\"init\"],HookDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"returnType\"],HookTypeAnnotation:[\"params\",\"returnType\",\"rest\",\"typeParameters\"],InferTypeAnnotation:[\"typeParameter\"],KeyofTypeAnnotation:[\"argument\"],ObjectTypeMappedTypeProperty:[\"keyTparam\",\"propType\",\"sourceType\",\"variance\"],QualifiedTypeofIdentifier:[\"qualification\",\"id\"],TupleTypeLabeledElement:[\"label\",\"elementType\",\"variance\"],TupleTypeSpreadElement:[\"label\",\"typeAnnotation\"],TypeOperator:[\"typeAnnotation\"],TypePredicate:[\"parameterName\",\"typeAnnotation\",\"asserts\"],NGRoot:[\"node\"],NGPipeExpression:[\"left\",\"right\",\"arguments\"],NGChainedExpression:[\"expressions\"],NGEmptyExpression:[],NGMicrosyntax:[\"body\"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:[\"expression\",\"alias\"],NGMicrosyntaxKeyedExpression:[\"key\",\"expression\"],NGMicrosyntaxLet:[\"key\",\"value\"],NGMicrosyntaxAs:[\"key\",\"alias\"],JsExpressionRoot:[\"node\"],JsonRoot:[\"node\"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:[\"typeAnnotation\"],TSJSDocNonNullableType:[\"typeAnnotation\"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:[\"expression\",\"typeAnnotation\"]};var co=hr(ru),gr=co;function lo(e){let t=new Set(e);return r=>t.has(r==null?void 0:r.type)}var v=lo;var mo=v([\"Block\",\"CommentBlock\",\"MultiLine\"]),ee=mo;var yo=v([\"AnyTypeAnnotation\",\"ThisTypeAnnotation\",\"NumberTypeAnnotation\",\"VoidTypeAnnotation\",\"BooleanTypeAnnotation\",\"BigIntTypeAnnotation\",\"SymbolTypeAnnotation\",\"StringTypeAnnotation\",\"NeverTypeAnnotation\",\"UndefinedTypeAnnotation\",\"UnknownTypeAnnotation\",\"EmptyTypeAnnotation\",\"MixedTypeAnnotation\"]),Sr=yo;function Do(e,t){let r=t.split(\".\");for(let n=r.length-1;n>=0;n--){let s=r[n];if(n===0)return e.type===\"Identifier\"&&e.name===s;if(e.type!==\"MemberExpression\"||e.optional||e.computed||e.property.type!==\"Identifier\"||e.property.name!==s)return!1;e=e.object}}function fo(e,t){return t.some(r=>Do(e,r))}var nu=fo;function Eo({type:e}){return e.startsWith(\"TS\")&&e.endsWith(\"Keyword\")}var Br=Eo;function rr(e,t){return t(e)||Ys(e,{getVisitorKeys:gr,predicate:t})}function Rt(e){return e.type===\"AssignmentExpression\"||e.type===\"BinaryExpression\"||e.type===\"LogicalExpression\"||e.type===\"NGPipeExpression\"||e.type===\"ConditionalExpression\"||L(e)||W(e)||e.type===\"SequenceExpression\"||e.type===\"TaggedTemplateExpression\"||e.type===\"BindExpression\"||e.type===\"UpdateExpression\"&&!e.prefix||Ae(e)||e.type===\"TSNonNullExpression\"||e.type===\"ChainExpression\"}function iu(e){return e.expressions?e.expressions[0]:e.left??e.test??e.callee??e.object??e.tag??e.argument??e.expression}function Pr(e){if(e.expressions)return[\"expressions\",0];if(e.left)return[\"left\"];if(e.test)return[\"test\"];if(e.object)return[\"object\"];if(e.callee)return[\"callee\"];if(e.tag)return[\"tag\"];if(e.argument)return[\"argument\"];if(e.expression)return[\"expression\"];throw new Error(\"Unexpected node has no left side.\")}var Ct=v([\"Line\",\"CommentLine\",\"SingleLine\",\"HashbangComment\",\"HTMLOpen\",\"HTMLClose\",\"Hashbang\",\"InterpreterDirective\"]),au=v([\"ExportDefaultDeclaration\",\"DeclareExportDeclaration\",\"ExportNamedDeclaration\",\"ExportAllDeclaration\",\"DeclareExportAllDeclaration\"]),X=v([\"ArrayExpression\",\"TupleExpression\"]),se=v([\"ObjectExpression\",\"RecordExpression\"]);function ou(e){return e.type===\"LogicalExpression\"&&e.operator===\"??\"}function Fe(e){return e.type===\"NumericLiteral\"||e.type===\"Literal\"&&typeof e.value==\"number\"}function jn(e){return e.type===\"UnaryExpression\"&&(e.operator===\"+\"||e.operator===\"-\")&&Fe(e.argument)}function te(e){return!!(e&&(e.type===\"StringLiteral\"||e.type===\"Literal\"&&typeof e.value==\"string\"))}function vn(e){return e.type===\"RegExpLiteral\"||e.type===\"Literal\"&&!!e.regex}var kr=v([\"Literal\",\"BooleanLiteral\",\"BigIntLiteral\",\"DirectiveLiteral\",\"NullLiteral\",\"NumericLiteral\",\"RegExpLiteral\",\"StringLiteral\"]),Fo=v([\"Identifier\",\"ThisExpression\",\"Super\",\"PrivateName\",\"PrivateIdentifier\"]),we=v([\"ObjectTypeAnnotation\",\"TSTypeLiteral\",\"TSMappedType\"]),Mt=v([\"FunctionExpression\",\"ArrowFunctionExpression\"]);function Co(e){return e.type===\"FunctionExpression\"||e.type===\"ArrowFunctionExpression\"&&e.body.type===\"BlockStatement\"}function Ln(e){return L(e)&&e.callee.type===\"Identifier\"&&[\"async\",\"inject\",\"fakeAsync\",\"waitForAsync\"].includes(e.callee.name)}var H=v([\"JSXElement\",\"JSXFragment\"]);function bt(e){return e.method&&e.kind===\"init\"||e.kind===\"get\"||e.kind===\"set\"}function Ir(e){return(e.type===\"ObjectTypeProperty\"||e.type===\"ObjectTypeInternalSlot\")&&!e.static&&!e.method&&e.kind!==\"get\"&&e.kind!==\"set\"&&e.value.type===\"FunctionTypeAnnotation\"}function pu(e){return(e.type===\"TypeAnnotation\"||e.type===\"TSTypeAnnotation\")&&e.typeAnnotation.type===\"FunctionTypeAnnotation\"&&!e.static&&!Bt(e,e.typeAnnotation)}var De=v([\"BinaryExpression\",\"LogicalExpression\",\"NGPipeExpression\"]);function At(e){return W(e)||e.type===\"BindExpression\"&&!!e.object}var Ao=v([\"TSThisType\",\"NullLiteralTypeAnnotation\",\"BooleanLiteralTypeAnnotation\",\"StringLiteralTypeAnnotation\",\"BigIntLiteralTypeAnnotation\",\"NumberLiteralTypeAnnotation\",\"TSLiteralType\",\"TSTemplateLiteralType\"]);function Jt(e){return Br(e)||Sr(e)||Ao(e)||(e.type===\"GenericTypeAnnotation\"||e.type===\"TSTypeReference\")&&!e.typeParameters&&!e.typeArguments}function To(e){return e.type===\"Identifier\"&&(e.name===\"beforeEach\"||e.name===\"beforeAll\"||e.name===\"afterEach\"||e.name===\"afterAll\")}var xo=[\"it\",\"it.only\",\"it.skip\",\"describe\",\"describe.only\",\"describe.skip\",\"test\",\"test.only\",\"test.skip\",\"test.step\",\"test.describe\",\"test.describe.only\",\"test.describe.parallel\",\"test.describe.parallel.only\",\"test.describe.serial\",\"test.describe.serial.only\",\"skip\",\"xit\",\"xdescribe\",\"xtest\",\"fit\",\"fdescribe\",\"ftest\"];function ho(e){return nu(e,xo)}function Pt(e,t){if((e==null?void 0:e.type)!==\"CallExpression\"||e.optional)return!1;let r=oe(e);if(r.length===1){if(Ln(e)&&Pt(t))return Mt(r[0]);if(To(e.callee))return Ln(r[0])}else if((r.length===2||r.length===3)&&(r[0].type===\"TemplateLiteral\"||te(r[0]))&&ho(e.callee))return r[2]&&!Fe(r[2])?!1:(r.length===2?Mt(r[1]):Co(r[1])&&z(r[1]).length<=1)||Ln(r[1]);return!1}var cu=e=>t=>((t==null?void 0:t.type)===\"ChainExpression\"&&(t=t.expression),e(t)),L=cu(v([\"CallExpression\",\"OptionalCallExpression\"])),W=cu(v([\"MemberExpression\",\"OptionalMemberExpression\"]));function Mn(e,t=5){return lu(e,t)<=t}function lu(e,t){let r=0;for(let n in e){let s=e[n];if(s&&typeof s==\"object\"&&typeof s.type==\"string\"&&(r++,r+=lu(s,t-r)),r>t)return r}return r}var go=.25;function nr(e,t){let{printWidth:r}=t;if(d(e))return!1;let n=r*go;if(e.type===\"ThisExpression\"||e.type===\"Identifier\"&&e.name.length<=n||jn(e)&&!d(e.argument))return!0;let s=e.type===\"Literal\"&&\"regex\"in e&&e.regex.pattern||e.type===\"RegExpLiteral\"&&e.pattern;return s?s.length<=n:te(e)?Ze(fe(e),t).length<=n:e.type===\"TemplateLiteral\"?e.expressions.length===0&&e.quasis[0].value.raw.length<=n&&!e.quasis[0].value.raw.includes(`\n`):e.type===\"UnaryExpression\"?nr(e.argument,{printWidth:r}):e.type===\"CallExpression\"&&e.arguments.length===0&&e.callee.type===\"Identifier\"?e.callee.name.length<=n-2:kr(e)}function Oe(e,t){return H(t)?kt(t):d(t,h.Leading,r=>Z(e,k(r)))}function su(e){return e.quasis.some(t=>t.value.raw.includes(`\n`))}function Lr(e,t){return(e.type===\"TemplateLiteral\"&&su(e)||e.type===\"TaggedTemplateExpression\"&&su(e.quasi))&&!Z(t,q(e),{backwards:!0})}function wr(e){if(!d(e))return!1;let t=_(!1,ct(e,h.Dangling),-1);return t&&!ee(t)}function mu(e){if(e.length<=1)return!1;let t=0;for(let r of e)if(Mt(r)){if(t+=1,t>1)return!0}else if(L(r)){for(let n of oe(r))if(Mt(n))return!0}return!1}function Or(e){let{node:t,parent:r,key:n}=e;return n===\"callee\"&&L(t)&&L(r)&&r.arguments.length>0&&t.arguments.length>r.arguments.length}var So=new Set([\"!\",\"-\",\"+\",\"~\"]);function be(e,t=2){if(t<=0)return!1;if(e.type===\"ChainExpression\"||e.type===\"TSNonNullExpression\")return be(e.expression,t);let r=n=>be(n,t-1);if(vn(e))return ze(e.pattern??e.regex.pattern)<=5;if(kr(e)||Fo(e)||e.type===\"ArgumentPlaceholder\")return!0;if(e.type===\"TemplateLiteral\")return e.quasis.every(n=>!n.value.raw.includes(`\n`))&&e.expressions.every(r);if(se(e))return e.properties.every(n=>!n.computed&&(n.shorthand||n.value&&r(n.value)));if(X(e))return e.elements.every(n=>n===null||r(n));if(lt(e)){if(e.type===\"ImportExpression\"||be(e.callee,t)){let n=oe(e);return n.length<=t&&n.every(r)}return!1}return W(e)?be(e.object,t)&&be(e.property,t):e.type===\"UnaryExpression\"&&So.has(e.operator)||e.type===\"UpdateExpression\"?be(e.argument,t):!1}function fe(e){var t;return((t=e.extra)==null?void 0:t.raw)??e.raw}function yu(e){return e}function ae(e,t=\"es5\"){return e.trailingComma===\"es5\"&&t===\"es5\"||e.trailingComma===\"all\"&&(t===\"all\"||t===\"es5\")}function ie(e,t){switch(e.type){case\"BinaryExpression\":case\"LogicalExpression\":case\"AssignmentExpression\":case\"NGPipeExpression\":return ie(e.left,t);case\"MemberExpression\":case\"OptionalMemberExpression\":return ie(e.object,t);case\"TaggedTemplateExpression\":return e.tag.type===\"FunctionExpression\"?!1:ie(e.tag,t);case\"CallExpression\":case\"OptionalCallExpression\":return e.callee.type===\"FunctionExpression\"?!1:ie(e.callee,t);case\"ConditionalExpression\":return ie(e.test,t);case\"UpdateExpression\":return!e.prefix&&ie(e.argument,t);case\"BindExpression\":return e.object&&ie(e.object,t);case\"SequenceExpression\":return ie(e.expressions[0],t);case\"ChainExpression\":case\"TSSatisfiesExpression\":case\"TSAsExpression\":case\"TSNonNullExpression\":case\"AsExpression\":case\"AsConstExpression\":case\"SatisfiesExpression\":return ie(e.expression,t);default:return t(e)}}var uu={\"==\":!0,\"!=\":!0,\"===\":!0,\"!==\":!0},br={\"*\":!0,\"/\":!0,\"%\":!0},_n={\">>\":!0,\">>>\":!0,\"<<\":!0};function sr(e,t){return!(tr(t)!==tr(e)||e===\"**\"||uu[e]&&uu[t]||t===\"%\"&&br[e]||e===\"%\"&&br[t]||t!==e&&br[t]&&br[e]||_n[e]&&_n[t])}var Bo=new Map([[\"|>\"],[\"??\"],[\"||\"],[\"&&\"],[\"|\"],[\"^\"],[\"&\"],[\"==\",\"===\",\"!=\",\"!==\"],[\"<\",\">\",\"<=\",\">=\",\"in\",\"instanceof\"],[\">>\",\"<<\",\">>>\"],[\"+\",\"-\"],[\"*\",\"/\",\"%\"],[\"**\"]].flatMap((e,t)=>e.map(r=>[r,t])));function tr(e){return Bo.get(e)}function Du(e){return!!_n[e]||e===\"|\"||e===\"^\"||e===\"&\"}function fu(e){var r;if(e.rest)return!0;let t=z(e);return((r=_(!1,t,-1))==null?void 0:r.type)===\"RestElement\"}var wn=new WeakMap;function z(e){if(wn.has(e))return wn.get(e);let t=[];return e.this&&t.push(e.this),Array.isArray(e.parameters)?t.push(...e.parameters):Array.isArray(e.params)&&t.push(...e.params),e.rest&&t.push(e.rest),wn.set(e,t),t}function Eu(e,t){let{node:r}=e,n=0,s=u=>t(u,n++);r.this&&e.call(s,\"this\"),Array.isArray(r.parameters)?e.each(s,\"parameters\"):Array.isArray(r.params)&&e.each(s,\"params\"),r.rest&&e.call(s,\"rest\")}var On=new WeakMap;function oe(e){if(On.has(e))return On.get(e);if(e.type===\"ChainExpression\")return oe(e.expression);let t=e.arguments;return e.type===\"ImportExpression\"&&(t=[e.source],e.options&&t.push(e.options)),On.set(e,t),t}function qt(e,t){let{node:r}=e;if(r.type===\"ChainExpression\")return e.call(()=>qt(e,t),\"expression\");r.type===\"ImportExpression\"?(e.call(n=>t(n,0),\"source\"),r.options&&e.call(n=>t(n,1),\"options\")):e.each(t,\"arguments\")}function Rn(e,t){let r=[];if(e.type===\"ChainExpression\"&&(e=e.expression,r.push(\"expression\")),e.type===\"ImportExpression\"){if(t===0||t===(e.options?-2:-1))return[...r,\"source\"];if(e.options&&(t===1||t===-1))return[...r,\"options\"];throw new RangeError(\"Invalid argument index\")}if(t<0&&(t=e.arguments.length+t),t<0||t>=e.arguments.length)throw new RangeError(\"Invalid argument index\");return[...r,\"arguments\",t]}function ur(e){return e.value.trim()===\"prettier-ignore\"&&!e.unignore}function kt(e){return(e==null?void 0:e.prettierIgnore)||d(e,h.PrettierIgnore)}var h={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},Fu=(e,t)=>{if(typeof e==\"function\"&&(t=e,e=0),e||t)return(r,n,s)=>!(e&h.Leading&&!r.leading||e&h.Trailing&&!r.trailing||e&h.Dangling&&(r.leading||r.trailing)||e&h.Block&&!ee(r)||e&h.Line&&!Ct(r)||e&h.First&&n!==0||e&h.Last&&n!==s.length-1||e&h.PrettierIgnore&&!ur(r)||t&&!t(r))};function d(e,t,r){if(!O(e==null?void 0:e.comments))return!1;let n=Fu(t,r);return n?e.comments.some(n):!0}function ct(e,t,r){if(!Array.isArray(e==null?void 0:e.comments))return[];let n=Fu(t,r);return n?e.comments.filter(n):e.comments}var pe=(e,{originalText:t})=>jt(t,k(e));function lt(e){return L(e)||e.type===\"NewExpression\"||e.type===\"ImportExpression\"}function Ce(e){return e&&(e.type===\"ObjectProperty\"||e.type===\"Property\"&&!bt(e))}var Ae=v([\"TSAsExpression\",\"TSSatisfiesExpression\",\"AsExpression\",\"AsConstExpression\",\"SatisfiesExpression\"]),Ue=v([\"UnionTypeAnnotation\",\"TSUnionType\"]),_r=v([\"IntersectionTypeAnnotation\",\"TSIntersectionType\"]);var bo=new Set([\"range\",\"raw\",\"comments\",\"leadingComments\",\"trailingComments\",\"innerComments\",\"extra\",\"start\",\"end\",\"loc\",\"flags\",\"errors\",\"tokens\"]),Wt=e=>{for(let t of e.quasis)delete t.value};function Cu(e,t,r){var s,u;if(e.type===\"Program\"&&delete t.sourceType,(e.type===\"BigIntLiteral\"||e.type===\"BigIntLiteralTypeAnnotation\")&&e.value&&(t.value=e.value.toLowerCase()),(e.type===\"BigIntLiteral\"||e.type===\"Literal\")&&e.bigint&&(t.bigint=e.bigint.toLowerCase()),e.type===\"EmptyStatement\"||e.type===\"JSXText\"||e.type===\"JSXExpressionContainer\"&&(e.expression.type===\"Literal\"||e.expression.type===\"StringLiteral\")&&e.expression.value===\" \")return null;if((e.type===\"Property\"||e.type===\"ObjectProperty\"||e.type===\"MethodDefinition\"||e.type===\"ClassProperty\"||e.type===\"ClassMethod\"||e.type===\"PropertyDefinition\"||e.type===\"TSDeclareMethod\"||e.type===\"TSPropertySignature\"||e.type===\"ObjectTypeProperty\"||e.type===\"ImportAttribute\")&&e.key&&!e.computed){let{key:i}=e;te(i)||Fe(i)?t.key=String(i.value):i.type===\"Identifier\"&&(t.key=i.name)}if(e.type===\"JSXElement\"&&e.openingElement.name.name===\"style\"&&e.openingElement.attributes.some(i=>i.type===\"JSXAttribute\"&&i.name.name===\"jsx\"))for(let{type:i,expression:a}of t.children)i===\"JSXExpressionContainer\"&&a.type===\"TemplateLiteral\"&&Wt(a);e.type===\"JSXAttribute\"&&e.name.name===\"css\"&&e.value.type===\"JSXExpressionContainer\"&&e.value.expression.type===\"TemplateLiteral\"&&Wt(t.value.expression),e.type===\"JSXAttribute\"&&((s=e.value)==null?void 0:s.type)===\"Literal\"&&/[\"']|"|'/u.test(e.value.value)&&(t.value.value=Y(!1,e.value.value,/[\"']|"|'/gu,'\"'));let n=e.expression||e.callee;if(e.type===\"Decorator\"&&n.type===\"CallExpression\"&&n.callee.name===\"Component\"&&n.arguments.length===1){let i=e.expression.arguments[0].properties;for(let[a,p]of t.expression.arguments[0].properties.entries())switch(i[a].key.name){case\"styles\":X(p.value)&&Wt(p.value.elements[0]);break;case\"template\":p.value.type===\"TemplateLiteral\"&&Wt(p.value);break}}e.type===\"TaggedTemplateExpression\"&&(e.tag.type===\"MemberExpression\"||e.tag.type===\"Identifier\"&&(e.tag.name===\"gql\"||e.tag.name===\"graphql\"||e.tag.name===\"css\"||e.tag.name===\"md\"||e.tag.name===\"markdown\"||e.tag.name===\"html\")||e.tag.type===\"CallExpression\")&&Wt(t.quasi),e.type===\"TemplateLiteral\"&&((u=e.leadingComments)!=null&&u.some(a=>ee(a)&&[\"GraphQL\",\"HTML\"].some(p=>a.value===` ${p} `))||r.type===\"CallExpression\"&&r.callee.name===\"graphql\"||!e.leadingComments)&&Wt(t),e.type===\"ChainExpression\"&&e.expression.type===\"TSNonNullExpression\"&&(t.type=\"TSNonNullExpression\",t.expression.type=\"ChainExpression\"),e.type===\"TSMappedType\"&&(delete t.key,delete t.constraint),e.type===\"TSEnumDeclaration\"&&delete t.body}Cu.ignoredProperties=bo;var Au=Cu;var et=\"string\",_e=\"array\",tt=\"cursor\",Xe=\"indent\",Ye=\"align\",rt=\"trim\",le=\"group\",Pe=\"fill\",xe=\"if-break\",He=\"indent-if-break\",Ne=\"line-suffix\",Ve=\"line-suffix-boundary\",me=\"line\",je=\"label\",ve=\"break-parent\",jr=new Set([tt,Xe,Ye,rt,le,Pe,xe,He,Ne,Ve,me,je,ve]);function Po(e){if(typeof e==\"string\")return et;if(Array.isArray(e))return _e;if(!e)return;let{type:t}=e;if(jr.has(t))return t}var nt=Po;var ko=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function Io(e){let t=e===null?\"null\":typeof e;if(t!==\"string\"&&t!==\"object\")return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(nt(e))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(e);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=ko([...jr].map(s=>`'${s}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var Jn=class extends Error{name=\"InvalidDocError\";constructor(t){super(Io(t)),this.doc=t}},Tt=Jn;var Tu={};function Lo(e,t,r,n){let s=[e];for(;s.length>0;){let u=s.pop();if(u===Tu){r(s.pop());continue}r&&s.push(u,Tu);let i=nt(u);if(!i)throw new Tt(u);if((t==null?void 0:t(u))!==!1)switch(i){case _e:case Pe:{let a=i===_e?u:u.parts;for(let p=a.length,o=p-1;o>=0;--o)s.push(a[o]);break}case xe:s.push(u.flatContents,u.breakContents);break;case le:if(n&&u.expandedStates)for(let a=u.expandedStates.length,p=a-1;p>=0;--p)s.push(u.expandedStates[p]);else s.push(u.contents);break;case Ye:case Xe:case He:case je:case Ne:s.push(u.contents);break;case et:case tt:case rt:case Ve:case me:case ve:break;default:throw new Tt(u)}}}var qn=Lo;var du=()=>{},$e=du,vr=du;function f(e){return $e(e),{type:Xe,contents:e}}function he(e,t){return $e(t),{type:Ye,contents:t,n:e}}function l(e,t={}){return $e(e),vr(t.expandedStates,!0),{type:le,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function xu(e){return he(Number.NEGATIVE_INFINITY,e)}function Mr(e){return he(-1,e)}function Ke(e,t){return l(e[0],{...t,expandedStates:e})}function Rr(e){return vr(e),{type:Pe,parts:e}}function B(e,t=\"\",r={}){return $e(e),t!==\"\"&&$e(t),{type:xe,breakContents:e,flatContents:t,groupId:r.groupId}}function dt(e,t){return $e(e),{type:He,contents:e,groupId:t.groupId,negate:t.negate}}function Wn(e){return $e(e),{type:Ne,contents:e}}var ke={type:Ve},Ee={type:ve};var Gn={type:me,hard:!0},wo={type:me,hard:!0,literal:!0},x={type:me},E={type:me,soft:!0},F=[Gn,Ee],Jr=[wo,Ee],ir={type:tt};function b(e,t){$e(e),vr(t);let r=[];for(let n=0;n0){for(let s=0;s0){let t=_(!1,e,-1);!t.expandedStates&&!t.break&&(t.break=\"propagated\")}return null}function Bu(e){let t=new Set,r=[];function n(u){if(u.type===ve&&gu(r),u.type===le){if(r.push(u),t.has(u))return!1;t.add(u)}}function s(u){u.type===le&&r.pop().break&&gu(r)}qn(e,n,s,!0)}function _o(e){return e.type===me&&!e.hard?e.soft?\"\":\" \":e.type===xe?e.flatContents:e}function ar(e){return mt(e,_o)}function jo(e){switch(nt(e)){case Pe:if(e.parts.every(t=>t===\"\"))return\"\";break;case le:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return\"\";if(e.contents.type===le&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case Ye:case Xe:case He:case Ne:if(!e.contents)return\"\";break;case xe:if(!e.flatContents&&!e.breakContents)return\"\";break;case _e:{let t=[];for(let r of e){if(!r)continue;let[n,...s]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof _(!1,t,-1)==\"string\"?t[t.length-1]+=n:t.push(n),t.push(...s)}return t.length===0?\"\":t.length===1?t[0]:t}case et:case tt:case rt:case Ve:case me:case je:case ve:break;default:throw new Tt(e)}return e}function Gt(e){return mt(e,t=>jo(t))}function Ie(e,t=Jr){return mt(e,r=>typeof r==\"string\"?b(t,r.split(`\n`)):r)}function vo(e){if(e.type===me)return!0}function bu(e){return Su(e,vo,!1)}function or(e,t){return e.type===je?{...e,contents:t(e.contents)}:t(e)}function Mo(e){let t=`*${e.value}*`.split(`\n`);return t.length>1&&t.every(r=>r.trimStart()[0]===\"*\")}var Pu=Mo;function ku(e,t){let r=e.node;if(Ct(r))return t.originalText.slice(q(r),k(r)).trimEnd();if(ee(r))return Pu(r)?Ro(r):[\"/*\",Ie(r.value),\"*/\"];throw new Error(\"Not a comment: \"+JSON.stringify(r))}function Ro(e){let t=e.value.split(`\n`);return[\"/*\",b(F,t.map((r,n)=>n===0?r.trimEnd():\" \"+(nYo,ownLine:()=>Xo,remaining:()=>Ho});function Jo(e){let t=e.type||e.kind||\"(unknown type)\",r=String(e.name||e.id&&(typeof e.id==\"object\"?e.id.name:e.id)||e.key&&(typeof e.key==\"object\"?e.key.name:e.key)||e.value&&(typeof e.value==\"object\"?\"\":String(e.value))||e.operator||\"\");return r.length>20&&(r=r.slice(0,19)+\"\\u2026\"),t+(r?\" \"+r:\"\")}function Un(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=Jo(e)}function ce(e,t){t.leading=!0,t.trailing=!1,Un(e,t)}function Le(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),Un(e,t)}function V(e,t){t.leading=!1,t.trailing=!0,Un(e,t)}function qo(e,t){let r=null,n=t;for(;n!==r;)r=n,n=We(e,n),n=Ot(e,n),n=_t(e,n),n=Ge(e,n);return n}var ut=qo;function Wo(e,t){let r=ut(e,t);return r===!1?\"\":e.charAt(r)}var ge=Wo;function Go(e,t,r){for(let n=t;nt(e))}function Yo(e){return[No,ju,wu,Mu,Yn,Hn,Lu,Ou,vu,sp,ip,Vn,lp,Nn,Dp,fp,Fp].some(t=>t(e))}function Ho(e){return[Ru,Yn,Hn,Ko,rp,_u,Vn,tp,ep,yp,Nn,mp].some(t=>t(e))}function It(e,t){let r=(e.body||e.properties).find(({type:n})=>n!==\"EmptyStatement\");r?ce(r,t):Le(e,t)}function Xn(e,t){e.type===\"BlockStatement\"?It(e,t):ce(e,t)}function No({comment:e,followingNode:t}){return t&&Iu(e)?(ce(t,e),!0):!1}function Yn({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:s}){if((r==null?void 0:r.type)!==\"IfStatement\"||!n)return!1;if(ge(s,k(e))===\")\")return V(t,e),!0;if(t===r.consequent&&n===r.alternate){let i=ut(s,k(r.consequent));if(q(e)\"?(Le(t,e),!0):!1}function rp({comment:e,enclosingNode:t,text:r}){return ge(r,k(e))!==\")\"?!1:t&&(Ju(t)&&z(t).length===0||lt(t)&&oe(t).length===0)?(Le(t,e),!0):((t==null?void 0:t.type)===\"MethodDefinition\"||(t==null?void 0:t.type)===\"TSAbstractMethodDefinition\")&&z(t.value).length===0?(Le(t.value,e),!0):!1}function np({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:s}){return(t==null?void 0:t.type)===\"ComponentTypeParameter\"&&((r==null?void 0:r.type)===\"DeclareComponent\"||(r==null?void 0:r.type)===\"ComponentTypeAnnotation\")&&(n==null?void 0:n.type)!==\"ComponentTypeParameter\"?(V(t,e),!0):((t==null?void 0:t.type)===\"ComponentParameter\"||(t==null?void 0:t.type)===\"RestElement\")&&(r==null?void 0:r.type)===\"ComponentDeclaration\"&&ge(s,k(e))===\")\"?(V(t,e),!0):!1}function ju({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:s}){return(t==null?void 0:t.type)===\"FunctionTypeParam\"&&(r==null?void 0:r.type)===\"FunctionTypeAnnotation\"&&(n==null?void 0:n.type)!==\"FunctionTypeParam\"?(V(t,e),!0):((t==null?void 0:t.type)===\"Identifier\"||(t==null?void 0:t.type)===\"AssignmentPattern\"||(t==null?void 0:t.type)===\"ObjectPattern\"||(t==null?void 0:t.type)===\"ArrayPattern\"||(t==null?void 0:t.type)===\"RestElement\"||(t==null?void 0:t.type)===\"TSParameterProperty\")&&Ju(r)&&ge(s,k(e))===\")\"?(V(t,e),!0):!ee(e)&&((r==null?void 0:r.type)===\"FunctionDeclaration\"||(r==null?void 0:r.type)===\"FunctionExpression\"||(r==null?void 0:r.type)===\"ObjectMethod\")&&(n==null?void 0:n.type)===\"BlockStatement\"&&r.body===n&&ut(s,k(e))===q(n)?(It(n,e),!0):!1}function vu({comment:e,enclosingNode:t}){return(t==null?void 0:t.type)===\"LabeledStatement\"?(ce(t,e),!0):!1}function Nn({comment:e,enclosingNode:t}){return((t==null?void 0:t.type)===\"ContinueStatement\"||(t==null?void 0:t.type)===\"BreakStatement\")&&!t.label?(V(t,e),!0):!1}function sp({comment:e,precedingNode:t,enclosingNode:r}){return L(r)&&t&&r.callee===t&&r.arguments.length>0?(ce(r.arguments[0],e),!0):!1}function up({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){return Ue(r)?(ur(e)&&(n.prettierIgnore=!0,e.unignore=!0),t?(V(t,e),!0):!1):(Ue(n)&&ur(e)&&(n.types[0].prettierIgnore=!0,e.unignore=!0),!1)}function ip({comment:e,enclosingNode:t}){return Ce(t)?(ce(t,e),!0):!1}function Vn({comment:e,enclosingNode:t,ast:r,isLastComment:n}){var s;return((s=r==null?void 0:r.body)==null?void 0:s.length)===0?(n?Le(r,e):ce(r,e),!0):(t==null?void 0:t.type)===\"Program\"&&t.body.length===0&&!O(t.directives)?(n?Le(t,e):ce(t,e),!0):!1}function ap({comment:e,enclosingNode:t}){return(t==null?void 0:t.type)===\"ForInStatement\"||(t==null?void 0:t.type)===\"ForOfStatement\"?(ce(t,e),!0):!1}function Mu({comment:e,precedingNode:t,enclosingNode:r,text:n}){if((r==null?void 0:r.type)===\"ImportSpecifier\"||(r==null?void 0:r.type)===\"ExportSpecifier\")return ce(r,e),!0;let s=(t==null?void 0:t.type)===\"ImportSpecifier\"&&(r==null?void 0:r.type)===\"ImportDeclaration\",u=(t==null?void 0:t.type)===\"ExportSpecifier\"&&(r==null?void 0:r.type)===\"ExportNamedDeclaration\";return(s||u)&&Z(n,k(e))?(V(t,e),!0):!1}function op({comment:e,enclosingNode:t}){return(t==null?void 0:t.type)===\"AssignmentPattern\"?(ce(t,e),!0):!1}var pp=new Set([\"VariableDeclarator\",\"AssignmentExpression\",\"TypeAlias\",\"TSTypeAliasDeclaration\"]),cp=new Set([\"ObjectExpression\",\"RecordExpression\",\"ArrayExpression\",\"TupleExpression\",\"TemplateLiteral\",\"TaggedTemplateExpression\",\"ObjectTypeAnnotation\",\"TSTypeLiteral\"]);function lp({comment:e,enclosingNode:t,followingNode:r}){return pp.has(t==null?void 0:t.type)&&r&&(cp.has(r.type)||ee(e))?(ce(r,e),!0):!1}function mp({comment:e,enclosingNode:t,followingNode:r,text:n}){return!r&&((t==null?void 0:t.type)===\"TSMethodSignature\"||(t==null?void 0:t.type)===\"TSDeclareFunction\"||(t==null?void 0:t.type)===\"TSAbstractMethodDefinition\")&&ge(n,k(e))===\";\"?(V(t,e),!0):!1}function Ru({comment:e,enclosingNode:t,followingNode:r}){if(ur(e)&&(t==null?void 0:t.type)===\"TSMappedType\"&&(r==null?void 0:r.type)===\"TSTypeParameter\"&&r.constraint)return t.prettierIgnore=!0,e.unignore=!0,!0}function yp({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){return(r==null?void 0:r.type)!==\"TSMappedType\"?!1:(n==null?void 0:n.type)===\"TSTypeParameter\"&&n.name?(ce(n.name,e),!0):(t==null?void 0:t.type)===\"TSTypeParameter\"&&t.constraint?(V(t.constraint,e),!0):!1}function Dp({comment:e,enclosingNode:t,followingNode:r}){return!t||t.type!==\"SwitchCase\"||t.test||!r||r!==t.consequent[0]?!1:(r.type===\"BlockStatement\"&&Ct(e)?It(r,e):Le(t,e),!0)}function fp({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){return Ue(t)&&((r.type===\"TSArrayType\"||r.type===\"ArrayTypeAnnotation\")&&!n||_r(r))?(V(_(!1,t.types,-1),e),!0):!1}function Ep({comment:e,enclosingNode:t,precedingNode:r,followingNode:n}){if(((t==null?void 0:t.type)===\"ObjectPattern\"||(t==null?void 0:t.type)===\"ArrayPattern\")&&(n==null?void 0:n.type)===\"TSTypeAnnotation\")return r?V(r,e):Le(t,e),!0}function Fp({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){var s;if(!n&&(r==null?void 0:r.type)===\"UnaryExpression\"&&((t==null?void 0:t.type)===\"LogicalExpression\"||(t==null?void 0:t.type)===\"BinaryExpression\")){let u=((s=r.argument.loc)==null?void 0:s.start.line)!==t.right.loc.start.line,i=Ct(e)||e.loc.start.line===e.loc.end.line,a=e.loc.start.line===t.right.loc.start.line;if(u&&i&&a)return V(t.right,e),!0}return!1}var Ju=v([\"ArrowFunctionExpression\",\"FunctionExpression\",\"FunctionDeclaration\",\"ObjectMethod\",\"ClassMethod\",\"TSDeclareFunction\",\"TSCallSignatureDeclaration\",\"TSConstructSignatureDeclaration\",\"TSMethodSignature\",\"TSConstructorType\",\"TSFunctionType\",\"TSDeclareMethod\"]);var Cp=new Set([\"EmptyStatement\",\"TemplateElement\",\"TSEmptyBodyFunctionExpression\",\"ChainExpression\"]);function Ap(e){return!Cp.has(e.type)}function Tp(e,t){var r;if((t.parser===\"typescript\"||t.parser===\"flow\"||t.parser===\"acorn\"||t.parser===\"espree\"||t.parser===\"meriyah\"||t.parser===\"__babel_estree\")&&e.type===\"MethodDefinition\"&&((r=e.value)==null?void 0:r.type)===\"FunctionExpression\"&&z(e.value).length===0&&!e.value.returnType&&!O(e.value.typeParameters)&&e.value.body)return[...e.decorators||[],e.key,e.value.body]}function Kn(e){let{node:t,parent:r}=e;return(H(t)||r&&(r.type===\"JSXSpreadAttribute\"||r.type===\"JSXSpreadChild\"||Ue(r)||(r.type===\"ClassDeclaration\"||r.type===\"ClassExpression\")&&r.superClass===t))&&(!kt(t)||Ue(r))}function dp(e,{parser:t}){if(t===\"flow\"||t===\"babel-flow\")return e=Y(!1,e,/[\\s(]/gu,\"\"),e===\"\"||e===\"/*\"||e===\"/*::\"}function qu(e){switch(e){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}var Se=Symbol(\"MODE_BREAK\"),it=Symbol(\"MODE_FLAT\"),Ut=Symbol(\"cursor\"),Qn=Symbol(\"DOC_FILL_PRINTED_LENGTH\");function Wu(){return{value:\"\",length:0,queue:[]}}function xp(e,t){return zn(e,{type:\"indent\"},t)}function hp(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||Wu():t<0?zn(e,{type:\"dedent\"},r):t?t.type===\"root\"?{...e,root:e}:zn(e,{type:typeof t==\"string\"?\"stringAlign\":\"numberAlign\",n:t},r):e}function zn(e,t,r){let n=t.type===\"dedent\"?e.queue.slice(0,-1):[...e.queue,t],s=\"\",u=0,i=0,a=0;for(let c of n)switch(c.type){case\"indent\":m(),r.useTabs?p(1):o(r.tabWidth);break;case\"stringAlign\":m(),s+=c.n,u+=c.n.length;break;case\"numberAlign\":i+=1,a+=c.n;break;default:throw new Error(`Unexpected type '${c.type}'`)}return D(),{...e,value:s,length:u,queue:n};function p(c){s+=\"\t\".repeat(c),u+=r.tabWidth*c}function o(c){s+=\" \".repeat(c),u+=c}function m(){r.useTabs?y():D()}function y(){i>0&&p(i),C()}function D(){a>0&&o(a),C()}function C(){i=0,a=0}}function Zn(e){let t=0,r=0,n=e.length;e:for(;n--;){let s=e[n];if(s===Ut){r++;continue}for(let u=s.length-1;u>=0;u--){let i=s[u];if(i===\" \"||i===\"\t\")t++;else{e[n]=s.slice(0,u+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(Ut);return t}function qr(e,t,r,n,s,u){if(r===Number.POSITIVE_INFINITY)return!0;let i=t.length,a=[e],p=[];for(;r>=0;){if(a.length===0){if(i===0)return!0;a.push(t[--i]);continue}let{mode:o,doc:m}=a.pop(),y=nt(m);switch(y){case et:p.push(m),r-=ze(m);break;case _e:case Pe:{let D=y===_e?m:m.parts,C=m[Qn]??0;for(let c=D.length-1;c>=C;c--)a.push({mode:o,doc:D[c]});break}case Xe:case Ye:case He:case je:a.push({mode:o,doc:m.contents});break;case rt:r+=Zn(p);break;case le:{if(u&&m.break)return!1;let D=m.break?Se:o,C=m.expandedStates&&D===Se?_(!1,m.expandedStates,-1):m.contents;a.push({mode:D,doc:C});break}case xe:{let C=(m.groupId?s[m.groupId]||it:o)===Se?m.breakContents:m.flatContents;C&&a.push({mode:o,doc:C});break}case me:if(o===Se||m.hard)return!0;m.soft||(p.push(\" \"),r--);break;case Ne:n=!0;break;case Ve:if(n)return!1;break}}return!1}function es(e,t){let r={},n=t.printWidth,s=qu(t.endOfLine),u=0,i=[{ind:Wu(),mode:Se,doc:e}],a=[],p=!1,o=[],m=0;for(Bu(e);i.length>0;){let{ind:D,mode:C,doc:c}=i.pop();switch(nt(c)){case et:{let A=s!==`\n`?Y(!1,c,`\n`,s):c;a.push(A),i.length>0&&(u+=ze(A));break}case _e:for(let A=c.length-1;A>=0;A--)i.push({ind:D,mode:C,doc:c[A]});break;case tt:if(m>=2)throw new Error(\"There are too many 'cursor' in doc.\");a.push(Ut),m++;break;case Xe:i.push({ind:xp(D,t),mode:C,doc:c.contents});break;case Ye:i.push({ind:hp(D,c.n,t),mode:C,doc:c.contents});break;case rt:u-=Zn(a);break;case le:switch(C){case it:if(!p){i.push({ind:D,mode:c.break?Se:it,doc:c.contents});break}case Se:{p=!1;let A={ind:D,mode:it,doc:c.contents},T=n-u,S=o.length>0;if(!c.break&&qr(A,i,T,S,r))i.push(A);else if(c.expandedStates){let g=_(!1,c.expandedStates,-1);if(c.break){i.push({ind:D,mode:Se,doc:g});break}else for(let M=1;M=c.expandedStates.length){i.push({ind:D,mode:Se,doc:g});break}else{let R=c.expandedStates[M],j={ind:D,mode:it,doc:R};if(qr(j,i,T,S,r)){i.push(j);break}}}else i.push({ind:D,mode:Se,doc:c.contents});break}}c.id&&(r[c.id]=_(!1,i,-1).mode);break;case Pe:{let A=n-u,T=c[Qn]??0,{parts:S}=c,g=S.length-T;if(g===0)break;let M=S[T+0],R=S[T+1],j={ind:D,mode:it,doc:M},I={ind:D,mode:Se,doc:M},U=qr(j,[],A,o.length>0,r,!0);if(g===1){U?i.push(j):i.push(I);break}let P={ind:D,mode:it,doc:R},G={ind:D,mode:Se,doc:R};if(g===2){U?i.push(P,j):i.push(G,I);break}let ue=S[T+2],Q={ind:D,mode:C,doc:{...c,[Qn]:T+2}};qr({ind:D,mode:it,doc:[M,R,ue]},[],A,o.length>0,r,!0)?i.push(Q,P,j):U?i.push(Q,G,j):i.push(Q,G,I);break}case xe:case He:{let A=c.groupId?r[c.groupId]:C;if(A===Se){let T=c.type===xe?c.breakContents:c.negate?c.contents:f(c.contents);T&&i.push({ind:D,mode:C,doc:T})}if(A===it){let T=c.type===xe?c.flatContents:c.negate?f(c.contents):c.contents;T&&i.push({ind:D,mode:C,doc:T})}break}case Ne:o.push({ind:D,mode:C,doc:c.contents});break;case Ve:o.length>0&&i.push({ind:D,mode:C,doc:Gn});break;case me:switch(C){case it:if(c.hard)p=!0;else{c.soft||(a.push(\" \"),u+=1);break}case Se:if(o.length>0){i.push({ind:D,mode:C,doc:c},...o.reverse()),o.length=0;break}c.literal?D.root?(a.push(s,D.root.value),u=D.root.length):(a.push(s),u=0):(u-=Zn(a),a.push(s+D.value),u=D.length);break}break;case je:i.push({ind:D,mode:C,doc:c.contents});break;case ve:break;default:throw new Tt(c)}i.length===0&&o.length>0&&(i.push(...o.reverse()),o.length=0)}let y=a.indexOf(Ut);if(y!==-1){let D=a.indexOf(Ut,y+1);if(D===-1)return{formatted:a.filter(T=>T!==Ut).join(\"\")};let C=a.slice(0,y).join(\"\"),c=a.slice(y+1,D).join(\"\"),A=a.slice(D+1).join(\"\");return{formatted:C+c+A,cursorNodeStart:C.length,cursorNodeText:c}}return{formatted:a.join(\"\")}}function gp(e,t,r=0){let n=0;for(let s=r;s{if(i.push(t()),m.tail)return;let{tabWidth:y}=r,D=m.value.raw,C=D.includes(`\n`)?Uu(D,y):p;p=C;let c=a[o],A=n[u][o],T=Te(r.originalText,k(m),q(n.quasis[o+1]));if(!T){let g=es(c,{...r,printWidth:Number.POSITIVE_INFINITY}).formatted;g.includes(`\n`)?T=!0:c=g}T&&(d(A)||A.type===\"Identifier\"||W(A)||A.type===\"ConditionalExpression\"||A.type===\"SequenceExpression\"||Ae(A)||De(A))&&(c=[f([E,c]),E]);let S=C===0&&D.endsWith(`\n`)?he(Number.NEGATIVE_INFINITY,c):hu(c,C,y);i.push(l([\"${\",S,ke,\"}\"]))},\"quasis\"),i.push(\"`\"),i}function Xu(e,t){let r=t(\"quasi\");return st(r.label&&{tagged:!0,...r.label},[t(\"tag\"),t(e.node.typeArguments?\"typeArguments\":\"typeParameters\"),ke,r])}function Bp(e,t,r){let{node:n}=e,s=n.quasis[0].value.raw.trim().split(/\\s*\\|\\s*/u);if(s.length>1||s.some(u=>u.length>0)){t.__inJestEach=!0;let u=e.map(r,\"expressions\");t.__inJestEach=!1;let i=[],a=u.map(D=>\"${\"+es(D,{...t,printWidth:Number.POSITIVE_INFINITY,endOfLine:\"lf\"}).formatted+\"}\"),p=[{hasLineBreak:!1,cells:[]}];for(let D=1;DD.cells.length)),m=Array.from({length:o}).fill(0),y=[{cells:s},...p.filter(D=>D.cells.length>0)];for(let{cells:D}of y.filter(C=>!C.hasLineBreak))for(let[C,c]of D.entries())m[C]=Math.max(m[C],ze(c));return i.push(ke,\"`\",f([F,b(F,y.map(D=>b(\" | \",D.cells.map((C,c)=>D.hasLineBreak?C:C+\" \".repeat(m[c]-ze(C))))))]),F,\"`\"),i}}function bp(e,t){let{node:r}=e,n=t();return d(r)&&(n=l([f([E,n]),E])),[\"${\",n,ke,\"}\"]}function Xt(e,t){return e.map(r=>bp(r,t),\"expressions\")}function Gr(e,t){return mt(e,r=>typeof r==\"string\"?t?Y(!1,r,/(\\\\*)`/gu,\"$1$1\\\\`\"):ts(r):r)}function ts(e){return Y(!1,e,/([\\\\`]|\\$\\{)/gu,String.raw`\\$1`)}function Pp({node:e,parent:t}){let r=/^[fx]?(?:describe|it|test)$/u;return t.type===\"TaggedTemplateExpression\"&&t.quasi===e&&t.tag.type===\"MemberExpression\"&&t.tag.property.type===\"Identifier\"&&t.tag.property.name===\"each\"&&(t.tag.object.type===\"Identifier\"&&r.test(t.tag.object.name)||t.tag.object.type===\"MemberExpression\"&&t.tag.object.property.type===\"Identifier\"&&(t.tag.object.property.name===\"only\"||t.tag.object.property.name===\"skip\")&&t.tag.object.object.type===\"Identifier\"&&r.test(t.tag.object.object.name))}var ns=[(e,t)=>e.type===\"ObjectExpression\"&&t===\"properties\",(e,t)=>e.type===\"CallExpression\"&&e.callee.type===\"Identifier\"&&e.callee.name===\"Component\"&&t===\"arguments\",(e,t)=>e.type===\"Decorator\"&&t===\"expression\"];function Yu(e){let t=n=>n.type===\"TemplateLiteral\",r=(n,s)=>Ce(n)&&!n.computed&&n.key.type===\"Identifier\"&&n.key.name===\"styles\"&&s===\"value\";return e.match(t,(n,s)=>X(n)&&s===\"elements\",r,...ns)||e.match(t,r,...ns)}function Hu(e){return e.match(t=>t.type===\"TemplateLiteral\",(t,r)=>Ce(t)&&!t.computed&&t.key.type===\"Identifier\"&&t.key.name===\"template\"&&r===\"value\",...ns)}function rs(e,t){return d(e,h.Block|h.Leading,({value:r})=>r===` ${t} `)}function Ur({node:e,parent:t},r){return rs(e,r)||kp(t)&&rs(t,r)||t.type===\"ExpressionStatement\"&&rs(t,r)}function kp(e){return e.type===\"AsConstExpression\"||e.type===\"TSAsExpression\"&&e.typeAnnotation.type===\"TSTypeReference\"&&e.typeAnnotation.typeName.type===\"Identifier\"&&e.typeAnnotation.typeName.name===\"const\"}async function Ip(e,t,r){let{node:n}=r,s=n.quasis.map(m=>m.value.raw),u=0,i=s.reduce((m,y,D)=>D===0?y:m+\"@prettier-placeholder-\"+u+++\"-id\"+y,\"\"),a=await e(i,{parser:\"scss\"}),p=Xt(r,t),o=Lp(a,p);if(!o)throw new Error(\"Couldn't insert all the expressions\");return[\"`\",f([F,o]),E,\"`\"]}function Lp(e,t){if(!O(t))return e;let r=0,n=mt(Gt(e),s=>typeof s!=\"string\"||!s.includes(\"@prettier-placeholder\")?s:s.split(/@prettier-placeholder-(\\d+)-id/u).map((u,i)=>i%2===0?Ie(u):(r++,t[u])));return t.length===r?n:null}function wp({node:e,parent:t,grandparent:r}){return r&&e.quasis&&t.type===\"JSXExpressionContainer\"&&r.type===\"JSXElement\"&&r.openingElement.name.name===\"style\"&&r.openingElement.attributes.some(n=>n.type===\"JSXAttribute\"&&n.name.name===\"jsx\")||(t==null?void 0:t.type)===\"TaggedTemplateExpression\"&&t.tag.type===\"Identifier\"&&t.tag.name===\"css\"||(t==null?void 0:t.type)===\"TaggedTemplateExpression\"&&t.tag.type===\"MemberExpression\"&&t.tag.object.name===\"css\"&&(t.tag.property.name===\"global\"||t.tag.property.name===\"resolve\")}function Xr(e){return e.type===\"Identifier\"&&e.name===\"styled\"}function Nu(e){return/^[A-Z]/u.test(e.object.name)&&e.property.name===\"extend\"}function Op({parent:e}){if(!e||e.type!==\"TaggedTemplateExpression\")return!1;let t=e.tag.type===\"ParenthesizedExpression\"?e.tag.expression:e.tag;switch(t.type){case\"MemberExpression\":return Xr(t.object)||Nu(t);case\"CallExpression\":return Xr(t.callee)||t.callee.type===\"MemberExpression\"&&(t.callee.object.type===\"MemberExpression\"&&(Xr(t.callee.object.object)||Nu(t.callee.object))||t.callee.object.type===\"CallExpression\"&&Xr(t.callee.object.callee));case\"Identifier\":return t.name===\"css\";default:return!1}}function _p({parent:e,grandparent:t}){return(t==null?void 0:t.type)===\"JSXAttribute\"&&e.type===\"JSXExpressionContainer\"&&t.name.type===\"JSXIdentifier\"&&t.name.name===\"css\"}function jp(e){if(wp(e)||Op(e)||_p(e)||Yu(e))return Ip}var Vu=jp;async function vp(e,t,r){let{node:n}=r,s=n.quasis.length,u=Xt(r,t),i=[];for(let a=0;a2&&D[0].trim()===\"\"&&D[1].trim()===\"\",T=C>2&&D[C-1].trim()===\"\"&&D[C-2].trim()===\"\",S=D.every(M=>/^\\s*(?:#[^\\n\\r]*)?$/u.test(M));if(!m&&/#[^\\n\\r]*$/u.test(D[C-1]))return null;let g=null;S?g=Mp(D):g=await e(y,{parser:\"graphql\"}),g?(g=Gr(g,!1),!o&&A&&i.push(\"\"),i.push(g),!m&&T&&i.push(\"\")):!o&&!m&&A&&i.push(\"\"),c&&i.push(c)}return[\"`\",f([F,b(F,i)]),F,\"`\"]}function Mp(e){let t=[],r=!1,n=e.map(s=>s.trim());for(let[s,u]of n.entries())u!==\"\"&&(n[s-1]===\"\"&&r?t.push([F,u]):t.push(u),r=!0);return t.length===0?null:b(F,t)}function Rp({node:e,parent:t}){return Ur({node:e,parent:t},\"GraphQL\")||t&&(t.type===\"TaggedTemplateExpression\"&&(t.tag.type===\"MemberExpression\"&&t.tag.object.name===\"graphql\"&&t.tag.property.name===\"experimental\"||t.tag.type===\"Identifier\"&&(t.tag.name===\"gql\"||t.tag.name===\"graphql\"))||t.type===\"CallExpression\"&&t.callee.type===\"Identifier\"&&t.callee.name===\"graphql\")}function Jp(e){if(Rp(e))return vp}var $u=Jp;var ss=0;async function Ku(e,t,r,n,s){let{node:u}=n,i=ss;ss=ss+1>>>0;let a=S=>`PRETTIER_HTML_PLACEHOLDER_${S}_${i}_IN_JS`,p=u.quasis.map((S,g,M)=>g===M.length-1?S.value.cooked:S.value.cooked+a(g)).join(\"\"),o=Xt(n,r),m=new RegExp(a(String.raw`(\\d+)`),\"gu\"),y=0,D=await t(p,{parser:e,__onHtmlRoot(S){y=S.children.length}}),C=mt(D,S=>{if(typeof S!=\"string\")return S;let g=[],M=S.split(m);for(let R=0;R1?f(l(C)):l(C),A,\"`\"]))}function qp(e){return Ur(e,\"HTML\")||e.match(t=>t.type===\"TemplateLiteral\",(t,r)=>t.type===\"TaggedTemplateExpression\"&&t.tag.type===\"Identifier\"&&t.tag.name===\"html\"&&r===\"quasi\")}var Wp=Ku.bind(void 0,\"html\"),Gp=Ku.bind(void 0,\"angular\");function Up(e){if(qp(e))return Wp;if(Hu(e))return Gp}var Qu=Up;async function Xp(e,t,r){let{node:n}=r,s=Y(!1,n.quasis[0].value.raw,/((?:\\\\\\\\)*)\\\\`/gu,(p,o)=>\"\\\\\".repeat(o.length/2)+\"`\"),u=Yp(s),i=u!==\"\";i&&(s=Y(!1,s,new RegExp(`^${u}`,\"gmu\"),\"\"));let a=Gr(await e(s,{parser:\"markdown\",__inJsTemplate:!0}),!0);return[\"`\",i?f([E,a]):[Jr,xu(a)],E,\"`\"]}function Yp(e){let t=e.match(/^([^\\S\\n]*)\\S/mu);return t===null?\"\":t[1]}function Hp(e){if(Np(e))return Xp}function Np({node:e,parent:t}){return(t==null?void 0:t.type)===\"TaggedTemplateExpression\"&&e.quasis.length===1&&t.tag.type===\"Identifier\"&&(t.tag.name===\"md\"||t.tag.name===\"markdown\")}var zu=Hp;function Vp(e){let{node:t}=e;if(t.type!==\"TemplateLiteral\"||$p(t))return;let r;for(let n of[Vu,$u,Qu,zu])if(r=n(e),!!r)return t.quasis.length===1&&t.quasis[0].value.raw.trim()===\"\"?\"``\":async(...s)=>{let u=await r(...s);return u&&st({embed:!0,...u.label},u)}}function $p({quasis:e}){return e.some(({value:{cooked:t}})=>t===null)}var Zu=Vp;var Kp=/\\*\\/$/,Qp=/^\\/\\*\\*?/,ni=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,zp=/(^|\\s+)\\/\\/([^\\n\\r]*)/g,ei=/^(\\r?\\n)+/,Zp=/(?:^|\\r?\\n) *(@[^\\n\\r]*?) *\\r?\\n *(?![^\\n\\r@]*\\/\\/[^]*)([^\\s@][^\\n\\r@]+?) *\\r?\\n/g,ti=/(?:^|\\r?\\n) *@(\\S+) *([^\\n\\r]*)/g,ec=/(\\r?\\n|^) *\\* ?/g,si=[];function ui(e){let t=e.match(ni);return t?t[0].trimStart():\"\"}function ii(e){let t=e.match(ni),r=t==null?void 0:t[0];return r==null?e:e.slice(r.length)}function ai(e){let t=`\n`;e=Y(!1,e.replace(Qp,\"\").replace(Kp,\"\"),ec,\"$1\");let r=\"\";for(;r!==e;)r=e,e=Y(!1,e,Zp,`${t}$1 $2${t}`);e=e.replace(ei,\"\").trimEnd();let n=Object.create(null),s=Y(!1,e,ti,\"\").replace(ei,\"\").trimEnd(),u;for(;u=ti.exec(e);){let i=Y(!1,u[2],zp,\"\");if(typeof n[u[1]]==\"string\"||Array.isArray(n[u[1]])){let a=n[u[1]];n[u[1]]=[...si,...Array.isArray(a)?a:[a],i]}else n[u[1]]=i}return{comments:s,pragmas:n}}function oi({comments:e=\"\",pragmas:t={}}){let r=`\n`,n=\"/**\",s=\" *\",u=\" */\",i=Object.keys(t),a=i.flatMap(o=>ri(o,t[o])).map(o=>`${s} ${o}${r}`).join(\"\");if(!e){if(i.length===0)return\"\";if(i.length===1&&!Array.isArray(t[i[0]])){let o=t[i[0]];return`${n} ${ri(i[0],o)[0]}${u}`}}let p=e.split(r).map(o=>`${s} ${o}`).join(r)+r;return n+r+(e?p:\"\")+(e&&i.length>0?s+r:\"\")+a+u}function ri(e,t){return[...si,...Array.isArray(t)?t:[t]].map(r=>`@${e} ${r}`.trim())}function tc(e){if(!e.startsWith(\"#!\"))return\"\";let t=e.indexOf(`\n`);return t===-1?e:e.slice(0,t)}var pi=tc;function rc(e){let t=pi(e);t&&(e=e.slice(t.length+1));let r=ui(e),{pragmas:n,comments:s}=ai(r);return{shebang:t,text:e,pragmas:n,comments:s}}function ci(e){let{shebang:t,text:r,pragmas:n,comments:s}=rc(e),u=ii(r),i=oi({pragmas:{format:\"\",...n},comments:s.trimStart()});return(t?`${t}\n`:\"\")+i+(u.startsWith(`\n`)?`\n`:`\n\n`)+u}function nc(e,t){let{originalText:r,[Symbol.for(\"comments\")]:n,locStart:s,locEnd:u,[Symbol.for(\"printedComments\")]:i}=t,{node:a}=e,p=s(a),o=u(a);for(let m of n)s(m)>=p&&u(m)<=o&&i.add(m);return r.slice(p,o)}var li=nc;function us(e,t){var u,i,a,p,o,m,y,D,C;if(e.isRoot)return!1;let{node:r,key:n,parent:s}=e;if(t.__isInHtmlInterpolation&&!t.bracketSpacing&&ac(r)&&pr(e))return!0;if(sc(r))return!1;if(r.type===\"Identifier\"){if((u=r.extra)!=null&&u.parenthesized&&/^PRETTIER_HTML_PLACEHOLDER_\\d+_\\d+_IN_JS$/u.test(r.name)||n===\"left\"&&(r.name===\"async\"&&!s.await||r.name===\"let\")&&s.type===\"ForOfStatement\")return!0;if(r.name===\"let\"){let c=(i=e.findAncestor(A=>A.type===\"ForOfStatement\"))==null?void 0:i.left;if(c&&ie(c,A=>A===r))return!0}if(n===\"object\"&&r.name===\"let\"&&s.type===\"MemberExpression\"&&s.computed&&!s.optional){let c=e.findAncestor(T=>T.type===\"ExpressionStatement\"||T.type===\"ForStatement\"||T.type===\"ForInStatement\"),A=c?c.type===\"ExpressionStatement\"?c.expression:c.type===\"ForStatement\"?c.init:c.left:void 0;if(A&&ie(A,T=>T===r))return!0}if(n===\"expression\")switch(r.name){case\"await\":case\"interface\":case\"module\":case\"using\":case\"yield\":case\"let\":case\"component\":case\"hook\":case\"type\":{let c=e.findAncestor(A=>!Ae(A));if(c!==s&&c.type===\"ExpressionStatement\")return!0}}return!1}if(r.type===\"ObjectExpression\"||r.type===\"FunctionExpression\"||r.type===\"ClassExpression\"||r.type===\"DoExpression\"){let c=(a=e.findAncestor(A=>A.type===\"ExpressionStatement\"))==null?void 0:a.expression;if(c&&ie(c,A=>A===r))return!0}if(r.type===\"ObjectExpression\"){let c=(p=e.findAncestor(A=>A.type===\"ArrowFunctionExpression\"))==null?void 0:p.body;if(c&&c.type!==\"SequenceExpression\"&&c.type!==\"AssignmentExpression\"&&ie(c,A=>A===r))return!0}switch(s.type){case\"ParenthesizedExpression\":return!1;case\"ClassDeclaration\":case\"ClassExpression\":if(n===\"superClass\"&&(r.type===\"ArrowFunctionExpression\"||r.type===\"AssignmentExpression\"||r.type===\"AwaitExpression\"||r.type===\"BinaryExpression\"||r.type===\"ConditionalExpression\"||r.type===\"LogicalExpression\"||r.type===\"NewExpression\"||r.type===\"ObjectExpression\"||r.type===\"SequenceExpression\"||r.type===\"TaggedTemplateExpression\"||r.type===\"UnaryExpression\"||r.type===\"UpdateExpression\"||r.type===\"YieldExpression\"||r.type===\"TSNonNullExpression\"||r.type===\"ClassExpression\"&&O(r.decorators)))return!0;break;case\"ExportDefaultDeclaration\":return mi(e,t)||r.type===\"SequenceExpression\";case\"Decorator\":if(n===\"expression\"&&!pc(r))return!0;break;case\"TypeAnnotation\":if(e.match(void 0,void 0,(c,A)=>A===\"returnType\"&&c.type===\"ArrowFunctionExpression\")&&ic(r))return!0;break;case\"BinaryExpression\":if(n===\"left\"&&(s.operator===\"in\"||s.operator===\"instanceof\")&&r.type===\"UnaryExpression\")return!0;break;case\"VariableDeclarator\":if(n===\"init\"&&e.match(void 0,void 0,(c,A)=>A===\"declarations\"&&c.type===\"VariableDeclaration\",(c,A)=>A===\"left\"&&c.type===\"ForInStatement\"))return!0;break}switch(r.type){case\"UpdateExpression\":if(s.type===\"UnaryExpression\")return r.prefix&&(r.operator===\"++\"&&s.operator===\"+\"||r.operator===\"--\"&&s.operator===\"-\");case\"UnaryExpression\":switch(s.type){case\"UnaryExpression\":return r.operator===s.operator&&(r.operator===\"+\"||r.operator===\"-\");case\"BindExpression\":return!0;case\"MemberExpression\":case\"OptionalMemberExpression\":return n===\"object\";case\"TaggedTemplateExpression\":return!0;case\"NewExpression\":case\"CallExpression\":case\"OptionalCallExpression\":return n===\"callee\";case\"BinaryExpression\":return n===\"left\"&&s.operator===\"**\";case\"TSNonNullExpression\":return!0;default:return!1}case\"BinaryExpression\":if(s.type===\"UpdateExpression\"||r.operator===\"in\"&&uc(e))return!0;if(r.operator===\"|>\"&&((o=r.extra)!=null&&o.parenthesized)){let c=e.grandparent;if(c.type===\"BinaryExpression\"&&c.operator===\"|>\")return!0}case\"TSTypeAssertion\":case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"AsExpression\":case\"AsConstExpression\":case\"SatisfiesExpression\":case\"LogicalExpression\":switch(s.type){case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"AsExpression\":case\"AsConstExpression\":case\"SatisfiesExpression\":return!Ae(r);case\"ConditionalExpression\":return Ae(r)||ou(r);case\"CallExpression\":case\"NewExpression\":case\"OptionalCallExpression\":return n===\"callee\";case\"ClassExpression\":case\"ClassDeclaration\":return n===\"superClass\";case\"TSTypeAssertion\":case\"TaggedTemplateExpression\":case\"UnaryExpression\":case\"JSXSpreadAttribute\":case\"SpreadElement\":case\"BindExpression\":case\"AwaitExpression\":case\"TSNonNullExpression\":case\"UpdateExpression\":return!0;case\"MemberExpression\":case\"OptionalMemberExpression\":return n===\"object\";case\"AssignmentExpression\":case\"AssignmentPattern\":return n===\"left\"&&(r.type===\"TSTypeAssertion\"||Ae(r));case\"LogicalExpression\":if(r.type===\"LogicalExpression\")return s.operator!==r.operator;case\"BinaryExpression\":{let{operator:c,type:A}=r;if(!c&&A!==\"TSTypeAssertion\")return!0;let T=tr(c),S=s.operator,g=tr(S);return g>T||n===\"right\"&&g===T||g===T&&!sr(S,c)?!0:g\");default:return!1}case\"TSFunctionType\":if(e.match(c=>c.type===\"TSFunctionType\",(c,A)=>A===\"typeAnnotation\"&&c.type===\"TSTypeAnnotation\",(c,A)=>A===\"returnType\"&&c.type===\"ArrowFunctionExpression\"))return!0;case\"TSConditionalType\":case\"TSConstructorType\":if(n===\"extendsType\"&&s.type===\"TSConditionalType\"){if(r.type===\"TSConditionalType\")return!0;let{typeAnnotation:c}=r.returnType||r.typeAnnotation;if(c.type===\"TSTypePredicate\"&&c.typeAnnotation&&(c=c.typeAnnotation.typeAnnotation),c.type===\"TSInferType\"&&c.typeParameter.constraint)return!0}if(n===\"checkType\"&&s.type===\"TSConditionalType\")return!0;case\"TSUnionType\":case\"TSIntersectionType\":if((s.type===\"TSUnionType\"||s.type===\"TSIntersectionType\")&&s.types.length>1&&(!r.types||r.types.length>1))return!0;case\"TSInferType\":if(r.type===\"TSInferType\"){if(s.type===\"TSRestType\")return!1;if(n===\"types\"&&(s.type===\"TSUnionType\"||s.type===\"TSIntersectionType\")&&r.typeParameter.type===\"TSTypeParameter\"&&r.typeParameter.constraint)return!0}case\"TSTypeOperator\":return s.type===\"TSArrayType\"||s.type===\"TSOptionalType\"||s.type===\"TSRestType\"||n===\"objectType\"&&s.type===\"TSIndexedAccessType\"||s.type===\"TSTypeOperator\"||s.type===\"TSTypeAnnotation\"&&e.grandparent.type.startsWith(\"TSJSDoc\");case\"TSTypeQuery\":return n===\"objectType\"&&s.type===\"TSIndexedAccessType\"||n===\"elementType\"&&s.type===\"TSArrayType\";case\"TypeOperator\":return s.type===\"ArrayTypeAnnotation\"||s.type===\"NullableTypeAnnotation\"||n===\"objectType\"&&(s.type===\"IndexedAccessType\"||s.type===\"OptionalIndexedAccessType\")||s.type===\"TypeOperator\";case\"TypeofTypeAnnotation\":return n===\"objectType\"&&(s.type===\"IndexedAccessType\"||s.type===\"OptionalIndexedAccessType\")||n===\"elementType\"&&s.type===\"ArrayTypeAnnotation\";case\"ArrayTypeAnnotation\":return s.type===\"NullableTypeAnnotation\";case\"IntersectionTypeAnnotation\":case\"UnionTypeAnnotation\":return s.type===\"TypeOperator\"||s.type===\"ArrayTypeAnnotation\"||s.type===\"NullableTypeAnnotation\"||s.type===\"IntersectionTypeAnnotation\"||s.type===\"UnionTypeAnnotation\"||n===\"objectType\"&&(s.type===\"IndexedAccessType\"||s.type===\"OptionalIndexedAccessType\");case\"InferTypeAnnotation\":case\"NullableTypeAnnotation\":return s.type===\"ArrayTypeAnnotation\"||n===\"objectType\"&&(s.type===\"IndexedAccessType\"||s.type===\"OptionalIndexedAccessType\");case\"ComponentTypeAnnotation\":case\"FunctionTypeAnnotation\":{if(r.type===\"ComponentTypeAnnotation\"&&(r.rendersType===null||r.rendersType===void 0))return!1;if(e.match(void 0,(A,T)=>T===\"typeAnnotation\"&&A.type===\"TypeAnnotation\",(A,T)=>T===\"returnType\"&&A.type===\"ArrowFunctionExpression\")||e.match(void 0,(A,T)=>T===\"typeAnnotation\"&&A.type===\"TypePredicate\",(A,T)=>T===\"typeAnnotation\"&&A.type===\"TypeAnnotation\",(A,T)=>T===\"returnType\"&&A.type===\"ArrowFunctionExpression\"))return!0;let c=s.type===\"NullableTypeAnnotation\"?e.grandparent:s;return c.type===\"UnionTypeAnnotation\"||c.type===\"IntersectionTypeAnnotation\"||c.type===\"ArrayTypeAnnotation\"||n===\"objectType\"&&(c.type===\"IndexedAccessType\"||c.type===\"OptionalIndexedAccessType\")||n===\"checkType\"&&s.type===\"ConditionalTypeAnnotation\"||n===\"extendsType\"&&s.type===\"ConditionalTypeAnnotation\"&&((m=r.returnType)==null?void 0:m.type)===\"InferTypeAnnotation\"&&((y=r.returnType)==null?void 0:y.typeParameter.bound)||c.type===\"NullableTypeAnnotation\"||s.type===\"FunctionTypeParam\"&&s.name===null&&z(r).some(A=>{var T;return((T=A.typeAnnotation)==null?void 0:T.type)===\"NullableTypeAnnotation\"})}case\"ConditionalTypeAnnotation\":if(n===\"extendsType\"&&s.type===\"ConditionalTypeAnnotation\"&&r.type===\"ConditionalTypeAnnotation\"||n===\"checkType\"&&s.type===\"ConditionalTypeAnnotation\")return!0;case\"OptionalIndexedAccessType\":return n===\"objectType\"&&s.type===\"IndexedAccessType\";case\"StringLiteral\":case\"NumericLiteral\":case\"Literal\":if(typeof r.value==\"string\"&&s.type===\"ExpressionStatement\"&&!s.directive){let c=e.grandparent;return c.type===\"Program\"||c.type===\"BlockStatement\"}return n===\"object\"&&s.type===\"MemberExpression\"&&typeof r.value==\"number\";case\"AssignmentExpression\":{let c=e.grandparent;return n===\"body\"&&s.type===\"ArrowFunctionExpression\"?!0:n===\"key\"&&(s.type===\"ClassProperty\"||s.type===\"PropertyDefinition\")&&s.computed||(n===\"init\"||n===\"update\")&&s.type===\"ForStatement\"?!1:s.type===\"ExpressionStatement\"?r.left.type===\"ObjectPattern\":!(n===\"key\"&&s.type===\"TSPropertySignature\"||s.type===\"AssignmentExpression\"||s.type===\"SequenceExpression\"&&c.type===\"ForStatement\"&&(c.init===s||c.update===s)||n===\"value\"&&s.type===\"Property\"&&c.type===\"ObjectPattern\"&&c.properties.includes(s)||s.type===\"NGChainedExpression\"||n===\"node\"&&s.type===\"JsExpressionRoot\")}case\"ConditionalExpression\":switch(s.type){case\"TaggedTemplateExpression\":case\"UnaryExpression\":case\"SpreadElement\":case\"BinaryExpression\":case\"LogicalExpression\":case\"NGPipeExpression\":case\"ExportDefaultDeclaration\":case\"AwaitExpression\":case\"JSXSpreadAttribute\":case\"TSTypeAssertion\":case\"TypeCastExpression\":case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"AsExpression\":case\"AsConstExpression\":case\"SatisfiesExpression\":case\"TSNonNullExpression\":return!0;case\"NewExpression\":case\"CallExpression\":case\"OptionalCallExpression\":return n===\"callee\";case\"ConditionalExpression\":return t.experimentalTernaries?!1:n===\"test\";case\"MemberExpression\":case\"OptionalMemberExpression\":return n===\"object\";default:return!1}case\"FunctionExpression\":switch(s.type){case\"NewExpression\":case\"CallExpression\":case\"OptionalCallExpression\":return n===\"callee\";case\"TaggedTemplateExpression\":return!0;default:return!1}case\"ArrowFunctionExpression\":switch(s.type){case\"BinaryExpression\":return s.operator!==\"|>\"||((D=r.extra)==null?void 0:D.parenthesized);case\"NewExpression\":case\"CallExpression\":case\"OptionalCallExpression\":return n===\"callee\";case\"MemberExpression\":case\"OptionalMemberExpression\":return n===\"object\";case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"AsExpression\":case\"AsConstExpression\":case\"SatisfiesExpression\":case\"TSNonNullExpression\":case\"BindExpression\":case\"TaggedTemplateExpression\":case\"UnaryExpression\":case\"LogicalExpression\":case\"AwaitExpression\":case\"TSTypeAssertion\":return!0;case\"ConditionalExpression\":return n===\"test\";default:return!1}case\"ClassExpression\":switch(s.type){case\"NewExpression\":return n===\"callee\";default:return!1}case\"OptionalMemberExpression\":case\"OptionalCallExpression\":case\"CallExpression\":case\"MemberExpression\":if(oc(e))return!0;case\"TaggedTemplateExpression\":case\"TSNonNullExpression\":if(n===\"callee\"&&(s.type===\"BindExpression\"||s.type===\"NewExpression\")){let c=r;for(;c;)switch(c.type){case\"CallExpression\":case\"OptionalCallExpression\":return!0;case\"MemberExpression\":case\"OptionalMemberExpression\":case\"BindExpression\":c=c.object;break;case\"TaggedTemplateExpression\":c=c.tag;break;case\"TSNonNullExpression\":c=c.expression;break;default:return!1}}return!1;case\"BindExpression\":return n===\"callee\"&&(s.type===\"BindExpression\"||s.type===\"NewExpression\")||n===\"object\"&&W(s);case\"NGPipeExpression\":return!(s.type===\"NGRoot\"||s.type===\"NGMicrosyntaxExpression\"||s.type===\"ObjectProperty\"&&!((C=r.extra)!=null&&C.parenthesized)||X(s)||n===\"arguments\"&&L(s)||n===\"right\"&&s.type===\"NGPipeExpression\"||n===\"property\"&&s.type===\"MemberExpression\"||s.type===\"AssignmentExpression\");case\"JSXFragment\":case\"JSXElement\":return n===\"callee\"||n===\"left\"&&s.type===\"BinaryExpression\"&&s.operator===\"<\"||!X(s)&&s.type!==\"ArrowFunctionExpression\"&&s.type!==\"AssignmentExpression\"&&s.type!==\"AssignmentPattern\"&&s.type!==\"BinaryExpression\"&&s.type!==\"NewExpression\"&&s.type!==\"ConditionalExpression\"&&s.type!==\"ExpressionStatement\"&&s.type!==\"JsExpressionRoot\"&&s.type!==\"JSXAttribute\"&&s.type!==\"JSXElement\"&&s.type!==\"JSXExpressionContainer\"&&s.type!==\"JSXFragment\"&&s.type!==\"LogicalExpression\"&&!L(s)&&!Ce(s)&&s.type!==\"ReturnStatement\"&&s.type!==\"ThrowStatement\"&&s.type!==\"TypeCastExpression\"&&s.type!==\"VariableDeclarator\"&&s.type!==\"YieldExpression\";case\"TSInstantiationExpression\":return n===\"object\"&&W(s)}return!1}var sc=v([\"BlockStatement\",\"BreakStatement\",\"ComponentDeclaration\",\"ClassBody\",\"ClassDeclaration\",\"ClassMethod\",\"ClassProperty\",\"PropertyDefinition\",\"ClassPrivateProperty\",\"ContinueStatement\",\"DebuggerStatement\",\"DeclareComponent\",\"DeclareClass\",\"DeclareExportAllDeclaration\",\"DeclareExportDeclaration\",\"DeclareFunction\",\"DeclareHook\",\"DeclareInterface\",\"DeclareModule\",\"DeclareModuleExports\",\"DeclareNamespace\",\"DeclareVariable\",\"DeclareEnum\",\"DoWhileStatement\",\"EnumDeclaration\",\"ExportAllDeclaration\",\"ExportDefaultDeclaration\",\"ExportNamedDeclaration\",\"ExpressionStatement\",\"ForInStatement\",\"ForOfStatement\",\"ForStatement\",\"FunctionDeclaration\",\"HookDeclaration\",\"IfStatement\",\"ImportDeclaration\",\"InterfaceDeclaration\",\"LabeledStatement\",\"MethodDefinition\",\"ReturnStatement\",\"SwitchStatement\",\"ThrowStatement\",\"TryStatement\",\"TSDeclareFunction\",\"TSEnumDeclaration\",\"TSImportEqualsDeclaration\",\"TSInterfaceDeclaration\",\"TSModuleDeclaration\",\"TSNamespaceExportDeclaration\",\"TypeAlias\",\"VariableDeclaration\",\"WhileStatement\",\"WithStatement\"]);function uc(e){let t=0,{node:r}=e;for(;r;){let n=e.getParentNode(t++);if((n==null?void 0:n.type)===\"ForStatement\"&&n.init===r)return!0;r=n}return!1}function ic(e){return rr(e,t=>t.type===\"ObjectTypeAnnotation\"&&rr(t,r=>r.type===\"FunctionTypeAnnotation\"))}function ac(e){return se(e)}function pr(e){let{parent:t,key:r}=e;switch(t.type){case\"NGPipeExpression\":if(r===\"arguments\"&&e.isLast)return e.callParent(pr);break;case\"ObjectProperty\":if(r===\"value\")return e.callParent(()=>e.key===\"properties\"&&e.isLast);break;case\"BinaryExpression\":case\"LogicalExpression\":if(r===\"right\")return e.callParent(pr);break;case\"ConditionalExpression\":if(r===\"alternate\")return e.callParent(pr);break;case\"UnaryExpression\":if(t.prefix)return e.callParent(pr);break}return!1}function mi(e,t){let{node:r,parent:n}=e;return r.type===\"FunctionExpression\"||r.type===\"ClassExpression\"?n.type===\"ExportDefaultDeclaration\"||!us(e,t):!Rt(r)||n.type!==\"ExportDefaultDeclaration\"&&us(e,t)?!1:e.call(()=>mi(e,t),...Pr(r))}function oc(e){return!!(e.match(void 0,(t,r)=>r===\"expression\"&&t.type===\"ChainExpression\",(t,r)=>r===\"tag\"&&t.type===\"TaggedTemplateExpression\")||e.match(t=>t.type===\"OptionalCallExpression\"||t.type===\"OptionalMemberExpression\",(t,r)=>r===\"tag\"&&t.type===\"TaggedTemplateExpression\")||e.match(t=>t.type===\"OptionalCallExpression\"||t.type===\"OptionalMemberExpression\",(t,r)=>r===\"expression\"&&t.type===\"TSNonNullExpression\",(t,r)=>r===\"tag\"&&t.type===\"TaggedTemplateExpression\")||e.match(void 0,(t,r)=>r===\"expression\"&&t.type===\"ChainExpression\",(t,r)=>r===\"expression\"&&t.type===\"TSNonNullExpression\",(t,r)=>r===\"tag\"&&t.type===\"TaggedTemplateExpression\")||e.match(void 0,(t,r)=>r===\"expression\"&&t.type===\"TSNonNullExpression\",(t,r)=>r===\"expression\"&&t.type===\"ChainExpression\",(t,r)=>r===\"tag\"&&t.type===\"TaggedTemplateExpression\")||e.match(t=>t.type===\"OptionalMemberExpression\"||t.type===\"OptionalCallExpression\",(t,r)=>r===\"object\"&&t.type===\"MemberExpression\"||r===\"callee\"&&(t.type===\"CallExpression\"||t.type===\"NewExpression\"))||e.match(t=>t.type===\"OptionalMemberExpression\"||t.type===\"OptionalCallExpression\",(t,r)=>r===\"expression\"&&t.type===\"TSNonNullExpression\",(t,r)=>r===\"object\"&&t.type===\"MemberExpression\"||r===\"callee\"&&t.type===\"CallExpression\")||e.match(t=>t.type===\"CallExpression\"||t.type===\"MemberExpression\",(t,r)=>r===\"expression\"&&t.type===\"ChainExpression\")&&(e.match(void 0,void 0,(t,r)=>r===\"callee\"&&(t.type===\"CallExpression\"&&!t.optional||t.type===\"NewExpression\")||r===\"object\"&&t.type===\"MemberExpression\"&&!t.optional)||e.match(void 0,void 0,(t,r)=>r===\"expression\"&&t.type===\"TSNonNullExpression\",(t,r)=>r===\"object\"&&t.type===\"MemberExpression\"||r===\"callee\"&&t.type===\"CallExpression\"))||e.match(t=>t.type===\"CallExpression\"||t.type===\"MemberExpression\",(t,r)=>r===\"expression\"&&t.type===\"TSNonNullExpression\",(t,r)=>r===\"expression\"&&t.type===\"ChainExpression\",(t,r)=>r===\"object\"&&t.type===\"MemberExpression\"||r===\"callee\"&&t.type===\"CallExpression\"))}function is(e){return e.type===\"Identifier\"?!0:W(e)?!e.computed&&!e.optional&&e.property.type===\"Identifier\"&&is(e.object):!1}function pc(e){return e.type===\"ChainExpression\"&&(e=e.expression),is(e)||L(e)&&!e.optional&&is(e.callee)}var Be=us;function cc(e,t){let r=t-1;r=We(e,r,{backwards:!0}),r=Ge(e,r,{backwards:!0}),r=We(e,r,{backwards:!0});let n=Ge(e,r,{backwards:!0});return r!==n}var yi=cc;var lc=()=>!0;function as(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function mc(e,t){var m;let r=e.node,n=[as(e,t)],{printer:s,originalText:u,locStart:i,locEnd:a}=t;if((m=s.isBlockComment)==null?void 0:m.call(s,r)){let y=Z(u,a(r))?Z(u,i(r),{backwards:!0})?F:x:\" \";n.push(y)}else n.push(F);let o=Ge(u,We(u,a(r)));return o!==!1&&Z(u,o)&&n.push(F),n}function yc(e,t,r){var o;let n=e.node,s=as(e,t),{printer:u,originalText:i,locStart:a}=t,p=(o=u.isBlockComment)==null?void 0:o.call(u,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||Z(i,a(n),{backwards:!0})){let m=yi(i,a(n));return{doc:Wn([F,m?F:\"\",s]),isBlock:p,hasLineSuffix:!0}}return!p||r!=null&&r.hasLineSuffix?{doc:[Wn([\" \",s]),Ee],isBlock:p,hasLineSuffix:!0}:{doc:[\" \",s],isBlock:p,hasLineSuffix:!1}}function J(e,t,r={}){let{node:n}=e;if(!O(n==null?void 0:n.comments))return\"\";let{indent:s=!1,marker:u,filter:i=lc}=r,a=[];if(e.each(({node:o})=>{o.leading||o.trailing||o.marker!==u||!i(o)||a.push(as(e,t))},\"comments\"),a.length===0)return\"\";let p=b(F,a);return s?f([F,p]):p}function os(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for(\"printedComments\")];if((r.comments||[]).filter(p=>!n.has(p)).length===0)return{leading:\"\",trailing:\"\"};let u=[],i=[],a;return e.each(()=>{let p=e.node;if(n!=null&&n.has(p))return;let{leading:o,trailing:m}=p;o?u.push(mc(e,t)):m&&(a=yc(e,t,a),i.push(a.doc))},\"comments\"),{leading:u,trailing:i}}function ye(e,t,r){let{leading:n,trailing:s}=os(e,r);return!n&&!s?t:or(t,u=>[n,u,s])}var ps=class extends Error{name=\"UnexpectedNodeError\";constructor(t,r,n=\"type\"){super(`Unexpected ${r} node ${n}: ${JSON.stringify(t[n])}.`),this.node=t}},Me=ps;function cs(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var Re,ls=class{constructor(t){Ws(this,Re);Gs(this,Re,new Set(t))}getLeadingWhitespaceCount(t){let r=pt(this,Re),n=0;for(let s=0;s=0&&r.has(t.charAt(s));s--)n++;return n}getLeadingWhitespace(t){let r=this.getLeadingWhitespaceCount(t);return t.slice(0,r)}getTrailingWhitespace(t){let r=this.getTrailingWhitespaceCount(t);return t.slice(t.length-r)}hasLeadingWhitespace(t){return pt(this,Re).has(t.charAt(0))}hasTrailingWhitespace(t){return pt(this,Re).has(_(!1,t,-1))}trimStart(t){let r=this.getLeadingWhitespaceCount(t);return t.slice(r)}trimEnd(t){let r=this.getTrailingWhitespaceCount(t);return t.slice(0,t.length-r)}trim(t){return this.trimEnd(this.trimStart(t))}split(t,r=!1){let n=`[${cs([...pt(this,Re)].join(\"\"))}]+`,s=new RegExp(r?`(${n})`:n,\"u\");return t.split(s)}hasWhitespaceCharacter(t){let r=pt(this,Re);return Array.prototype.some.call(t,n=>r.has(n))}hasNonWhitespaceCharacter(t){let r=pt(this,Re);return Array.prototype.some.call(t,n=>!r.has(n))}isWhitespaceOnly(t){let r=pt(this,Re);return Array.prototype.every.call(t,n=>r.has(n))}};Re=new WeakMap;var Di=ls;var Yr=new Di(` \n\\r\t`),ms=e=>e===\"\"||e===x||e===F||e===E;function Dc(e,t,r){var M,R,j,I,U;let{node:n}=e;if(n.type===\"JSXElement\"&&Pc(n))return[r(\"openingElement\"),r(\"closingElement\")];let s=n.type===\"JSXElement\"?r(\"openingElement\"):r(\"openingFragment\"),u=n.type===\"JSXElement\"?r(\"closingElement\"):r(\"closingFragment\");if(n.children.length===1&&n.children[0].type===\"JSXExpressionContainer\"&&(n.children[0].expression.type===\"TemplateLiteral\"||n.children[0].expression.type===\"TaggedTemplateExpression\"))return[s,...e.map(r,\"children\"),u];n.children=n.children.map(P=>kc(P)?{type:\"JSXText\",value:\" \",raw:\" \"}:P);let i=n.children.some(H),a=n.children.filter(P=>P.type===\"JSXExpressionContainer\").length>1,p=n.type===\"JSXElement\"&&n.openingElement.attributes.length>1,o=re(s)||i||p||a,m=e.parent.rootMarker===\"mdx\",y=t.singleQuote?\"{' '}\":'{\" \"}',D=m?\" \":B([y,E],\" \"),C=((R=(M=n.openingElement)==null?void 0:M.name)==null?void 0:R.name)===\"fbt\",c=fc(e,t,r,D,C),A=n.children.some(P=>cr(P));for(let P=c.length-2;P>=0;P--){let G=c[P]===\"\"&&c[P+1]===\"\",ue=c[P]===F&&c[P+1]===\"\"&&c[P+2]===F,Q=(c[P]===E||c[P]===F)&&c[P+1]===\"\"&&c[P+2]===D,gt=c[P]===D&&c[P+1]===\"\"&&(c[P+2]===E||c[P+2]===F),Ft=c[P]===D&&c[P+1]===\"\"&&c[P+2]===D,w=c[P]===E&&c[P+1]===\"\"&&c[P+2]===F||c[P]===F&&c[P+1]===\"\"&&c[P+2]===E;ue&&A||G||Q||Ft||w?c.splice(P,2):gt&&c.splice(P+1,2)}for(;c.length>0&&ms(_(!1,c,-1));)c.pop();for(;c.length>1&&ms(c[0])&&ms(c[1]);)c.shift(),c.shift();let T=[];for(let[P,G]of c.entries()){if(G===D){if(P===1&&c[P-1]===\"\"){if(c.length===2){T.push(y);continue}T.push([y,F]);continue}else if(P===c.length-1){T.push(y);continue}else if(c[P-1]===\"\"&&c[P-2]===F){T.push(y);continue}}T.push(G),re(G)&&(o=!0)}let S=A?Rr(T):l(T,{shouldBreak:!0});if(((j=t.cursorNode)==null?void 0:j.type)===\"JSXText\"&&n.children.includes(t.cursorNode)?S=[ir,S,ir]:((I=t.nodeBeforeCursor)==null?void 0:I.type)===\"JSXText\"&&n.children.includes(t.nodeBeforeCursor)?S=[ir,S]:((U=t.nodeAfterCursor)==null?void 0:U.type)===\"JSXText\"&&n.children.includes(t.nodeAfterCursor)&&(S=[S,ir]),m)return S;let g=l([s,f([F,S]),F,u]);return o?g:Ke([l([s,...c,u]),g])}function fc(e,t,r,n,s){let u=[];return e.each(({node:i,next:a})=>{if(i.type===\"JSXText\"){let p=fe(i);if(cr(i)){let o=Yr.split(p,!0);o[0]===\"\"&&(u.push(\"\"),o.shift(),/\\n/u.test(o[0])?u.push(Ei(s,o[1],i,a)):u.push(n),o.shift());let m;if(_(!1,o,-1)===\"\"&&(o.pop(),m=o.pop()),o.length===0)return;for(let[y,D]of o.entries())y%2===1?u.push(x):u.push(D);m!==void 0?/\\n/u.test(m)?u.push(Ei(s,_(!1,u,-1),i,a)):u.push(n):u.push(fi(s,_(!1,u,-1),i,a))}else/\\n/u.test(p)?p.match(/\\n/gu).length>1&&u.push(\"\",F):u.push(\"\",n)}else{let p=r();if(u.push(p),a&&cr(a)){let m=Yr.trim(fe(a)),[y]=Yr.split(m);u.push(fi(s,y,i,a))}else u.push(F)}},\"children\"),u}function fi(e,t,r,n){return e?\"\":r.type===\"JSXElement\"&&!r.closingElement||(n==null?void 0:n.type)===\"JSXElement\"&&!n.closingElement?t.length===1?E:F:E}function Ei(e,t,r,n){return e?F:t.length===1?r.type===\"JSXElement\"&&!r.closingElement||(n==null?void 0:n.type)===\"JSXElement\"&&!n.closingElement?F:E:F}var Ec=new Set([\"ArrayExpression\",\"TupleExpression\",\"JSXAttribute\",\"JSXElement\",\"JSXExpressionContainer\",\"JSXFragment\",\"ExpressionStatement\",\"CallExpression\",\"OptionalCallExpression\",\"ConditionalExpression\",\"JsExpressionRoot\"]);function Fc(e,t,r){let{parent:n}=e;if(Ec.has(n.type))return t;let s=e.match(void 0,i=>i.type===\"ArrowFunctionExpression\",L,i=>i.type===\"JSXExpressionContainer\"),u=Be(e,r);return l([u?\"\":B(\"(\"),f([E,t]),E,u?\"\":B(\")\")],{shouldBreak:s})}function Cc(e,t,r){let{node:n}=e,s=[];if(s.push(r(\"name\")),n.value){let u;if(te(n.value)){let i=fe(n.value),a=Y(!1,Y(!1,i.slice(1,-1),\"'\",\"'\"),\""\",'\"'),p=xr(a,t.jsxSingleQuote);a=p==='\"'?Y(!1,a,'\"',\""\"):Y(!1,a,\"'\",\"'\"),u=e.call(()=>ye(e,Ie(p+a+p),t),\"value\")}else u=r(\"value\");s.push(\"=\",u)}return s}function Ac(e,t,r){let{node:n}=e,s=(u,i)=>u.type===\"JSXEmptyExpression\"||!d(u)&&(X(u)||se(u)||u.type===\"ArrowFunctionExpression\"||u.type===\"AwaitExpression\"&&(s(u.argument,u)||u.argument.type===\"JSXElement\")||L(u)||u.type===\"ChainExpression\"&&L(u.expression)||u.type===\"FunctionExpression\"||u.type===\"TemplateLiteral\"||u.type===\"TaggedTemplateExpression\"||u.type===\"DoExpression\"||H(i)&&(u.type===\"ConditionalExpression\"||De(u)));return s(n.expression,e.parent)?l([\"{\",r(\"expression\"),ke,\"}\"]):l([\"{\",f([E,r(\"expression\")]),E,ke,\"}\"])}function Tc(e,t,r){var a,p;let{node:n}=e,s=d(n.name)||d(n.typeParameters)||d(n.typeArguments);if(n.selfClosing&&n.attributes.length===0&&!s)return[\"<\",r(\"name\"),n.typeArguments?r(\"typeArguments\"):r(\"typeParameters\"),\" />\"];if(((a=n.attributes)==null?void 0:a.length)===1&&te(n.attributes[0].value)&&!n.attributes[0].value.value.includes(`\n`)&&!s&&!d(n.attributes[0]))return l([\"<\",r(\"name\"),n.typeArguments?r(\"typeArguments\"):r(\"typeParameters\"),\" \",...e.map(r,\"attributes\"),n.selfClosing?\" />\":\">\"]);let u=(p=n.attributes)==null?void 0:p.some(o=>te(o.value)&&o.value.value.includes(`\n`)),i=t.singleAttributePerLine&&n.attributes.length>1?F:x;return l([\"<\",r(\"name\"),n.typeArguments?r(\"typeArguments\"):r(\"typeParameters\"),f(e.map(()=>[i,r()],\"attributes\")),...dc(n,t,s)],{shouldBreak:u})}function dc(e,t,r){return e.selfClosing?[x,\"/>\"]:xc(e,t,r)?[\">\"]:[E,\">\"]}function xc(e,t,r){let n=e.attributes.length>0&&d(_(!1,e.attributes,-1),h.Trailing);return e.attributes.length===0&&!r||(t.bracketSameLine||t.jsxBracketSameLine)&&(!r||e.attributes.length>0)&&!n}function hc(e,t,r){let{node:n}=e,s=[];s.push(\"\"),s}function gc(e,t){let{node:r}=e,n=d(r),s=d(r,h.Line),u=r.type===\"JSXOpeningFragment\";return[u?\"<\":\"\"]}function Sc(e,t,r){let n=ye(e,Dc(e,t,r),t);return Fc(e,n,t)}function Bc(e,t){let{node:r}=e,n=d(r,h.Line);return[J(e,t,{indent:n}),n?F:\"\"]}function bc(e,t,r){let{node:n}=e;return[\"{\",e.call(({node:s})=>{let u=[\"...\",r()];return!d(s)||!Kn(e)?u:[f([E,ye(e,u,t)]),E]},n.type===\"JSXSpreadAttribute\"?\"argument\":\"expression\"),\"}\"]}function Fi(e,t,r){let{node:n}=e;if(n.type.startsWith(\"JSX\"))switch(n.type){case\"JSXAttribute\":return Cc(e,t,r);case\"JSXIdentifier\":return n.name;case\"JSXNamespacedName\":return b(\":\",[r(\"namespace\"),r(\"name\")]);case\"JSXMemberExpression\":return b(\".\",[r(\"object\"),r(\"property\")]);case\"JSXSpreadAttribute\":case\"JSXSpreadChild\":return bc(e,t,r);case\"JSXExpressionContainer\":return Ac(e,t,r);case\"JSXFragment\":case\"JSXElement\":return Sc(e,t,r);case\"JSXOpeningElement\":return Tc(e,t,r);case\"JSXClosingElement\":return hc(e,t,r);case\"JSXOpeningFragment\":case\"JSXClosingFragment\":return gc(e,t);case\"JSXEmptyExpression\":return Bc(e,t);case\"JSXText\":throw new Error(\"JSXText should be handled by JSXElement\");default:throw new Me(n,\"JSX\")}}function Pc(e){if(e.children.length===0)return!0;if(e.children.length>1)return!1;let t=e.children[0];return t.type===\"JSXText\"&&!cr(t)}function cr(e){return e.type===\"JSXText\"&&(Yr.hasNonWhitespaceCharacter(fe(e))||!/\\n/u.test(fe(e)))}function kc(e){return e.type===\"JSXExpressionContainer\"&&te(e.expression)&&e.expression.value===\" \"&&!d(e.expression)}function Ci(e){let{node:t,parent:r}=e;if(!H(t)||!H(r))return!1;let{index:n,siblings:s}=e,u;for(let i=n;i>0;i--){let a=s[i-1];if(!(a.type===\"JSXText\"&&!cr(a))){u=a;break}}return(u==null?void 0:u.type)===\"JSXExpressionContainer\"&&u.expression.type===\"JSXEmptyExpression\"&&kt(u.expression)}function Ic(e){return kt(e.node)||Ci(e)}var Hr=Ic;var Lc=0;function Nr(e,t,r){var R;let{node:n,parent:s,grandparent:u,key:i}=e,a=i!==\"body\"&&(s.type===\"IfStatement\"||s.type===\"WhileStatement\"||s.type===\"SwitchStatement\"||s.type===\"DoWhileStatement\"),p=n.operator===\"|>\"&&((R=e.root.extra)==null?void 0:R.__isUsingHackPipeline),o=ys(e,r,t,!1,a);if(a)return o;if(p)return l(o);if(L(s)&&s.callee===n||s.type===\"UnaryExpression\"||W(s)&&!s.computed)return l([f([E,...o]),E]);let m=s.type===\"ReturnStatement\"||s.type===\"ThrowStatement\"||s.type===\"JSXExpressionContainer\"&&u.type===\"JSXAttribute\"||n.operator!==\"|\"&&s.type===\"JsExpressionRoot\"||n.type!==\"NGPipeExpression\"&&(s.type===\"NGRoot\"&&t.parser===\"__ng_binding\"||s.type===\"NGMicrosyntaxExpression\"&&u.type===\"NGMicrosyntax\"&&u.body.length===1)||n===s.body&&s.type===\"ArrowFunctionExpression\"||n!==s.body&&s.type===\"ForStatement\"||s.type===\"ConditionalExpression\"&&u.type!==\"ReturnStatement\"&&u.type!==\"ThrowStatement\"&&!L(u)||s.type===\"TemplateLiteral\",y=s.type===\"AssignmentExpression\"||s.type===\"VariableDeclarator\"||s.type===\"ClassProperty\"||s.type===\"PropertyDefinition\"||s.type===\"TSAbstractPropertyDefinition\"||s.type===\"ClassPrivateProperty\"||Ce(s),D=De(n.left)&&sr(n.operator,n.left.operator);if(m||Yt(n)&&!D||!Yt(n)&&y)return l(o);if(o.length===0)return\"\";let C=H(n.right),c=o.findIndex(j=>typeof j!=\"string\"&&!Array.isArray(j)&&j.type===le),A=o.slice(0,c===-1?1:c+1),T=o.slice(A.length,C?-1:void 0),S=Symbol(\"logicalChain-\"+ ++Lc),g=l([...A,f(T)],{id:S});if(!C)return g;let M=_(!1,o,-1);return l([g,dt(M,{groupId:S})])}function ys(e,t,r,n,s){var A;let{node:u}=e;if(!De(u))return[l(t())];let i=[];sr(u.operator,u.left.operator)?i=e.call(T=>ys(T,t,r,!0,s),\"left\"):i.push(l(t(\"left\")));let a=Yt(u),p=(u.operator===\"|>\"||u.type===\"NGPipeExpression\"||wc(e,r))&&!Oe(r.originalText,u.right),o=u.type===\"NGPipeExpression\"?\"|\":u.operator,m=u.type===\"NGPipeExpression\"&&u.arguments.length>0?l(f([E,\": \",b([x,\": \"],e.map(()=>he(2,l(t())),\"arguments\"))])):\"\",y;if(a)y=[o,\" \",t(\"right\"),m];else{let S=o===\"|>\"&&((A=e.root.extra)==null?void 0:A.__isUsingHackPipeline)?e.call(g=>ys(g,t,r,!0,s),\"right\"):t(\"right\");y=[p?x:\"\",o,p?\" \":x,S,m]}let{parent:D}=e,C=d(u.left,h.Trailing|h.Line),c=C||!(s&&u.type===\"LogicalExpression\")&&D.type!==u.type&&u.left.type!==u.type&&u.right.type!==u.type;if(i.push(p?\"\":\" \",c?l(y,{shouldBreak:C}):y),n&&d(u)){let T=Gt(ye(e,i,r));return T.type===Pe?T.parts:Array.isArray(T)?T:[T]}return i}function Yt(e){return e.type!==\"LogicalExpression\"?!1:!!(se(e.right)&&e.right.properties.length>0||X(e.right)&&e.right.elements.length>0||H(e.right))}var Ai=e=>e.type===\"BinaryExpression\"&&e.operator===\"|\";function wc(e,t){return(t.parser===\"__vue_expression\"||t.parser===\"__vue_ts_expression\")&&Ai(e.node)&&!e.hasAncestor(r=>!Ai(r)&&r.type!==\"JsExpressionRoot\")}function di(e,t,r){let{node:n}=e;if(n.type.startsWith(\"NG\"))switch(n.type){case\"NGRoot\":return[r(\"node\"),d(n.node)?\" //\"+ct(n.node)[0].value.trimEnd():\"\"];case\"NGPipeExpression\":return Nr(e,t,r);case\"NGChainedExpression\":return l(b([\";\",x],e.map(()=>_c(e)?r():[\"(\",r(),\")\"],\"expressions\")));case\"NGEmptyExpression\":return\"\";case\"NGMicrosyntax\":return e.map(()=>[e.isFirst?\"\":Ti(e)?\" \":[\";\",x],r()],\"body\");case\"NGMicrosyntaxKey\":return/^[$_a-z][\\w$]*(?:-[$_a-z][\\w$])*$/iu.test(n.name)?n.name:JSON.stringify(n.name);case\"NGMicrosyntaxExpression\":return[r(\"expression\"),n.alias===null?\"\":[\" as \",r(\"alias\")]];case\"NGMicrosyntaxKeyedExpression\":{let{index:s,parent:u}=e,i=Ti(e)||(s===1&&(n.key.name===\"then\"||n.key.name===\"else\"||n.key.name===\"as\")||(s===2||s===3)&&(n.key.name===\"else\"&&u.body[s-1].type===\"NGMicrosyntaxKeyedExpression\"&&u.body[s-1].key.name===\"then\"||n.key.name===\"track\"))&&u.body[0].type===\"NGMicrosyntaxExpression\";return[r(\"key\"),i?\" \":\": \",r(\"expression\")]}case\"NGMicrosyntaxLet\":return[\"let \",r(\"key\"),n.value===null?\"\":[\" = \",r(\"value\")]];case\"NGMicrosyntaxAs\":return[r(\"key\"),\" as \",r(\"alias\")];default:throw new Me(n,\"Angular\")}}function Ti({node:e,index:t}){return e.type===\"NGMicrosyntaxKeyedExpression\"&&e.key.name===\"of\"&&t===1}var Oc=v([\"CallExpression\",\"OptionalCallExpression\",\"AssignmentExpression\"]);function _c({node:e}){return rr(e,Oc)}function Ds(e,t,r){let{node:n}=e;return l([b(x,e.map(r,\"decorators\")),gi(n,t)?F:x])}function xi(e,t,r){return Si(e.node)?[b(F,e.map(r,\"declaration\",\"decorators\")),F]:\"\"}function hi(e,t,r){let{node:n,parent:s}=e,{decorators:u}=n;if(!O(u)||Si(s)||Hr(e))return\"\";let i=n.type===\"ClassExpression\"||n.type===\"ClassDeclaration\"||gi(n,t);return[e.key===\"declaration\"&&au(s)?F:i?Ee:\"\",b(x,e.map(r,\"decorators\")),x]}function gi(e,t){return e.decorators.some(r=>Z(t.originalText,k(r)))}function Si(e){var r;if(e.type!==\"ExportDefaultDeclaration\"&&e.type!==\"ExportNamedDeclaration\"&&e.type!==\"DeclareExportDeclaration\")return!1;let t=(r=e.declaration)==null?void 0:r.decorators;return O(t)&&Bt(e,t[0])}var yt=class extends Error{name=\"ArgExpansionBailout\"};function jc(e,t,r){let{node:n}=e,s=oe(n);if(s.length===0)return[\"(\",J(e,t),\")\"];let u=s.length-1;if(Rc(s)){let y=[\"(\"];return qt(e,(D,C)=>{y.push(r()),C!==u&&y.push(\", \")}),y.push(\")\"),y}let i=!1,a=[];qt(e,({node:y},D)=>{let C=r();D===u||(pe(y,t)?(i=!0,C=[C,\",\",F,F]):C=[C,\",\",x]),a.push(C)});let p=!t.parser.startsWith(\"__ng_\")&&n.type!==\"ImportExpression\"&&ae(t,\"all\")?\",\":\"\";function o(){return l([\"(\",f([x,...a]),p,x,\")\"],{shouldBreak:!0})}if(i||e.parent.type!==\"Decorator\"&&mu(s))return o();if(Mc(s)){let y=a.slice(1);if(y.some(re))return o();let D;try{D=r(Rn(n,0),{expandFirstArg:!0})}catch(C){if(C instanceof yt)return o();throw C}return re(D)?[Ee,Ke([[\"(\",l(D,{shouldBreak:!0}),\", \",...y,\")\"],o()])]:Ke([[\"(\",D,\", \",...y,\")\"],[\"(\",l(D,{shouldBreak:!0}),\", \",...y,\")\"],o()])}if(vc(s,a,t)){let y=a.slice(0,-1);if(y.some(re))return o();let D;try{D=r(Rn(n,-1),{expandLastArg:!0})}catch(C){if(C instanceof yt)return o();throw C}return re(D)?[Ee,Ke([[\"(\",...y,l(D,{shouldBreak:!0}),\")\"],o()])]:Ke([[\"(\",...y,D,\")\"],[\"(\",...y,l(D,{shouldBreak:!0}),\")\"],o()])}let m=[\"(\",f([E,...a]),B(p),E,\")\"];return Or(e)?m:l(m,{shouldBreak:a.some(re)||i})}function lr(e,t=!1){return se(e)&&(e.properties.length>0||d(e))||X(e)&&(e.elements.length>0||d(e))||e.type===\"TSTypeAssertion\"&&lr(e.expression)||Ae(e)&&lr(e.expression)||e.type===\"FunctionExpression\"||e.type===\"ArrowFunctionExpression\"&&(!e.returnType||!e.returnType.typeAnnotation||e.returnType.typeAnnotation.type!==\"TSTypeReference\"||Jc(e.body))&&(e.body.type===\"BlockStatement\"||e.body.type===\"ArrowFunctionExpression\"&&lr(e.body,!0)||se(e.body)||X(e.body)||!t&&(L(e.body)||e.body.type===\"ConditionalExpression\")||H(e.body))||e.type===\"DoExpression\"||e.type===\"ModuleExpression\"}function vc(e,t,r){var u,i;let n=_(!1,e,-1);if(e.length===1){let a=_(!1,t,-1);if((u=a.label)!=null&&u.embed&&((i=a.label)==null?void 0:i.hug)!==!1)return!0}let s=_(!1,e,-2);return!d(n,h.Leading)&&!d(n,h.Trailing)&&lr(n)&&(!s||s.type!==n.type)&&(e.length!==2||s.type!==\"ArrowFunctionExpression\"||!X(n))&&!(e.length>1&&fs(n,r))}function Mc(e){if(e.length!==2)return!1;let[t,r]=e;return t.type===\"ModuleExpression\"&&qc(r)?!0:!d(t)&&(t.type===\"FunctionExpression\"||t.type===\"ArrowFunctionExpression\"&&t.body.type===\"BlockStatement\")&&r.type!==\"FunctionExpression\"&&r.type!==\"ArrowFunctionExpression\"&&r.type!==\"ConditionalExpression\"&&bi(r)&&!lr(r)}function bi(e){if(e.type===\"ParenthesizedExpression\")return bi(e.expression);if(Ae(e)||e.type===\"TypeCastExpression\"){let{typeAnnotation:t}=e;if(t.type===\"TypeAnnotation\"&&(t=t.typeAnnotation),t.type===\"TSArrayType\"&&(t=t.elementType,t.type===\"TSArrayType\"&&(t=t.elementType)),t.type===\"GenericTypeAnnotation\"||t.type===\"TSTypeReference\"){let r=t.typeArguments??t.typeParameters;(r==null?void 0:r.params.length)===1&&(t=r.params[0])}return Jt(t)&&be(e.expression,1)}return lt(e)&&oe(e).length>1?!1:De(e)?be(e.left,1)&&be(e.right,1):vn(e)||be(e)}function Rc(e){return e.length===2?Bi(e,0):e.length===3?e[0].type===\"Identifier\"&&Bi(e,1):!1}function Bi(e,t){let r=e[t],n=e[t+1];return r.type===\"ArrowFunctionExpression\"&&z(r).length===0&&r.body.type===\"BlockStatement\"&&n.type===\"ArrayExpression\"&&!e.some(s=>d(s))}function Jc(e){return e.type===\"BlockStatement\"&&(e.body.some(t=>t.type!==\"EmptyStatement\")||d(e,h.Dangling))}function qc(e){return e.type===\"ObjectExpression\"&&e.properties.length===1&&Ce(e.properties[0])&&e.properties[0].key.type===\"Identifier\"&&e.properties[0].key.name===\"type\"&&te(e.properties[0].value)&&e.properties[0].value.value===\"module\"}var mr=jc;var Wc=e=>((e.type===\"ChainExpression\"||e.type===\"TSNonNullExpression\")&&(e=e.expression),L(e)&&oe(e).length>0);function Pi(e,t,r){var o;let n=r(\"object\"),s=Es(e,t,r),{node:u}=e,i=e.findAncestor(m=>!(W(m)||m.type===\"TSNonNullExpression\")),a=e.findAncestor(m=>!(m.type===\"ChainExpression\"||m.type===\"TSNonNullExpression\")),p=i&&(i.type===\"NewExpression\"||i.type===\"BindExpression\"||i.type===\"AssignmentExpression\"&&i.left.type!==\"Identifier\")||u.computed||u.object.type===\"Identifier\"&&u.property.type===\"Identifier\"&&!W(a)||(a.type===\"AssignmentExpression\"||a.type===\"VariableDeclarator\")&&(Wc(u.object)||((o=n.label)==null?void 0:o.memberChain));return st(n.label,[n,p?s:l(f([E,s]))])}function Es(e,t,r){let n=r(\"property\"),{node:s}=e,u=$(e);return s.computed?!s.property||Fe(s.property)?[u,\"[\",n,\"]\"]:l([u,\"[\",f([E,n]),E,\"]\"]):[u,\".\",n]}function ki(e,t,r){if(e.node.type===\"ChainExpression\")return e.call(()=>ki(e,t,r),\"expression\");let{parent:n}=e,s=!n||n.type===\"ExpressionStatement\",u=[];function i(w){let{originalText:ne}=t,de=ut(ne,k(w));return ne.charAt(de)===\")\"?de!==!1&&jt(ne,de+1):pe(w,t)}function a(){let{node:w}=e;if(w.type===\"ChainExpression\")return e.call(a,\"expression\");if(L(w)&&(At(w.callee)||L(w.callee))){let ne=i(w);u.unshift({node:w,hasTrailingEmptyLine:ne,printed:[ye(e,[$(e),Qe(e,t,r),mr(e,t,r)],t),ne?F:\"\"]}),e.call(a,\"callee\")}else At(w)?(u.unshift({node:w,needsParens:Be(e,t),printed:ye(e,W(w)?Es(e,t,r):Vr(e,t,r),t)}),e.call(a,\"object\")):w.type===\"TSNonNullExpression\"?(u.unshift({node:w,printed:ye(e,\"!\",t)}),e.call(a,\"expression\")):u.unshift({node:w,printed:r()})}let{node:p}=e;u.unshift({node:p,printed:[$(e),Qe(e,t,r),mr(e,t,r)]}),p.callee&&e.call(a,\"callee\");let o=[],m=[u[0]],y=1;for(;y0&&o.push(m);function C(w){return/^[A-Z]|^[$_]+$/u.test(w)}function c(w){return w.length<=t.tabWidth}function A(w){var ot;let ne=(ot=w[1][0])==null?void 0:ot.node.computed;if(w[0].length===1){let St=w[0][0].node;return St.type===\"ThisExpression\"||St.type===\"Identifier\"&&(C(St.name)||s&&c(St.name)||ne)}let de=_(!1,w[0],-1).node;return W(de)&&de.property.type===\"Identifier\"&&(C(de.property.name)||ne)}let T=o.length>=2&&!d(o[1][0].node)&&A(o);function S(w){let ne=w.map(de=>de.printed);return w.length>0&&_(!1,w,-1).needsParens?[\"(\",...ne,\")\"]:ne}function g(w){return w.length===0?\"\":f([F,b(F,w.map(S))])}let M=o.map(S),R=M,j=T?3:2,I=o.flat(),U=I.slice(1,-1).some(w=>d(w.node,h.Leading))||I.slice(0,-1).some(w=>d(w.node,h.Trailing))||o[j]&&d(o[j][0].node,h.Leading);if(o.length<=j&&!U&&!o.some(w=>_(!1,w,-1).hasTrailingEmptyLine))return Or(e)?R:l(R);let P=_(!1,o[T?1:0],-1).node,G=!L(P)&&i(P),ue=[S(o[0]),T?o.slice(1,2).map(S):\"\",G?F:\"\",g(o.slice(T?2:1))],Q=u.map(({node:w})=>w).filter(L);function gt(){let w=_(!1,_(!1,o,-1),-1).node,ne=_(!1,M,-1);return L(w)&&re(ne)&&Q.slice(0,-1).some(de=>de.arguments.some(Mt))}let Ft;return U||Q.length>2&&Q.some(w=>!w.arguments.every(ne=>be(ne)))||M.slice(0,-1).some(re)||gt()?Ft=l(ue):Ft=[re(R)||G?Ee:\"\",Ke([R,ue])],st({memberChain:!0},Ft)}var Ii=ki;function $r(e,t,r){var m;let{node:n}=e,s=n.type===\"NewExpression\",u=n.type===\"ImportExpression\",i=$(e),a=oe(n),p=a.length===1&&Lr(a[0],t.originalText);if(p||Gc(e)||Pt(n,e.parent)){let y=[];if(qt(e,()=>{y.push(r())}),!(p&&((m=y[0].label)!=null&&m.embed)))return[s?\"new \":\"\",Li(e,r),i,Qe(e,t,r),\"(\",b(\", \",y),\")\"]}if(!u&&!s&&At(n.callee)&&!e.call(y=>Be(y,t),\"callee\",...n.callee.type===\"ChainExpression\"?[\"expression\"]:[]))return Ii(e,t,r);let o=[s?\"new \":\"\",Li(e,r),i,Qe(e,t,r),mr(e,t,r)];return u||L(n.callee)?l(o):o}function Li(e,t){let{node:r}=e;return r.type===\"ImportExpression\"?`import${r.phase?`.${r.phase}`:\"\"}`:t(\"callee\")}function Gc(e){let{node:t}=e;if(t.type!==\"CallExpression\"||t.optional||t.callee.type!==\"Identifier\")return!1;let r=oe(t);return t.callee.name===\"require\"?r.length===1&&te(r[0])||r.length>1:t.callee.name===\"define\"&&e.parent.type===\"ExpressionStatement\"?r.length===1||r.length===2&&r[0].type===\"ArrayExpression\"||r.length===3&&te(r[0])&&r[1].type===\"ArrayExpression\":!1}function xt(e,t,r,n,s,u){let i=Uc(e,t,r,n,u),a=u?r(u,{assignmentLayout:i}):\"\";switch(i){case\"break-after-operator\":return l([l(n),s,l(f([x,a]))]);case\"never-break-after-operator\":return l([l(n),s,\" \",a]);case\"fluid\":{let p=Symbol(\"assignment\");return l([l(n),s,l(f(x),{id:p}),ke,dt(a,{groupId:p})])}case\"break-lhs\":return l([n,s,\" \",l(a)]);case\"chain\":return[l(n),s,x,a];case\"chain-tail\":return[l(n),s,f([x,a])];case\"chain-tail-arrow-chain\":return[l(n),s,a];case\"only-left\":return n}}function Oi(e,t,r){let{node:n}=e;return xt(e,t,r,r(\"left\"),[\" \",n.operator],\"right\")}function _i(e,t,r){return xt(e,t,r,r(\"id\"),\" =\",\"init\")}function Uc(e,t,r,n,s){let{node:u}=e,i=u[s];if(!i)return\"only-left\";let a=!Kr(i);if(e.match(Kr,ji,D=>!a||D.type!==\"ExpressionStatement\"&&D.type!==\"VariableDeclaration\"))return a?i.type===\"ArrowFunctionExpression\"&&i.body.type===\"ArrowFunctionExpression\"?\"chain-tail-arrow-chain\":\"chain-tail\":\"chain\";if(!a&&Kr(i.right)||Oe(t.originalText,i))return\"break-after-operator\";if(u.type===\"ImportAttribute\"||i.type===\"CallExpression\"&&i.callee.name===\"require\"||t.parser===\"json5\"||t.parser===\"jsonc\"||t.parser===\"json\")return\"never-break-after-operator\";let m=bu(n);if(Yc(u)||$c(u)||Fs(u)&&m)return\"break-lhs\";let y=Qc(u,n,t);return e.call(()=>Xc(e,t,r,y),s)?\"break-after-operator\":Hc(u)?\"break-lhs\":!m&&(y||i.type===\"TemplateLiteral\"||i.type===\"TaggedTemplateExpression\"||i.type===\"BooleanLiteral\"||Fe(i)||i.type===\"ClassExpression\")?\"never-break-after-operator\":\"fluid\"}function Xc(e,t,r,n){let s=e.node;if(De(s)&&!Yt(s))return!0;switch(s.type){case\"StringLiteralTypeAnnotation\":case\"SequenceExpression\":return!0;case\"TSConditionalType\":case\"ConditionalTypeAnnotation\":if(!t.experimentalTernaries&&!el(s))break;return!0;case\"ConditionalExpression\":{if(!t.experimentalTernaries){let{test:o}=s;return De(o)&&!Yt(o)}let{consequent:a,alternate:p}=s;return a.type===\"ConditionalExpression\"||p.type===\"ConditionalExpression\"}case\"ClassExpression\":return O(s.decorators)}if(n)return!1;let u=s,i=[];for(;;)if(u.type===\"UnaryExpression\"||u.type===\"AwaitExpression\"||u.type===\"YieldExpression\"&&u.argument!==null)u=u.argument,i.push(\"argument\");else if(u.type===\"TSNonNullExpression\")u=u.expression,i.push(\"expression\");else break;return!!(te(u)||e.call(()=>vi(e,t,r),...i))}function Yc(e){if(ji(e)){let t=e.left||e.id;return t.type===\"ObjectPattern\"&&t.properties.length>2&&t.properties.some(r=>{var n;return Ce(r)&&(!r.shorthand||((n=r.value)==null?void 0:n.type)===\"AssignmentPattern\")})}return!1}function Kr(e){return e.type===\"AssignmentExpression\"}function ji(e){return Kr(e)||e.type===\"VariableDeclarator\"}function Hc(e){let t=Vc(e);if(O(t)){let r=e.type===\"TSTypeAliasDeclaration\"?\"constraint\":\"bound\";if(t.length>1&&t.some(n=>n[r]||n.default))return!0}return!1}var Nc=v([\"TSTypeAliasDeclaration\",\"TypeAlias\"]);function Vc(e){var t;if(Nc(e))return(t=e.typeParameters)==null?void 0:t.params}function $c(e){if(e.type!==\"VariableDeclarator\")return!1;let{typeAnnotation:t}=e.id;if(!t||!t.typeAnnotation)return!1;let r=wi(t.typeAnnotation);return O(r)&&r.length>1&&r.some(n=>O(wi(n))||n.type===\"TSConditionalType\")}function Fs(e){var t;return e.type===\"VariableDeclarator\"&&((t=e.init)==null?void 0:t.type)===\"ArrowFunctionExpression\"}var Kc=v([\"TSTypeReference\",\"GenericTypeAnnotation\"]);function wi(e){var t;if(Kc(e))return(t=e.typeArguments??e.typeParameters)==null?void 0:t.params}function vi(e,t,r,n=!1){var i;let{node:s}=e,u=()=>vi(e,t,r,!0);if(s.type===\"ChainExpression\"||s.type===\"TSNonNullExpression\")return e.call(u,\"expression\");if(L(s)){if((i=$r(e,t,r).label)!=null&&i.memberChain)return!1;let p=oe(s);return!(p.length===0||p.length===1&&nr(p[0],t))||zc(s,r)?!1:e.call(u,\"callee\")}return W(s)?e.call(u,\"object\"):n&&(s.type===\"Identifier\"||s.type===\"ThisExpression\")}function Qc(e,t,r){return Ce(e)?(t=Gt(t),typeof t==\"string\"&&ze(t)1)return!0;if(r.length===1){let s=r[0];if(Ue(s)||_r(s)||s.type===\"TSTypeLiteral\"||s.type===\"ObjectTypeAnnotation\")return!0}let n=e.typeParameters?\"typeParameters\":\"typeArguments\";if(re(t(n)))return!0}return!1}function Zc(e){var t;return(t=e.typeParameters??e.typeArguments)==null?void 0:t.params}function el(e){function t(r){switch(r.type){case\"FunctionTypeAnnotation\":case\"GenericTypeAnnotation\":case\"TSFunctionType\":return!!r.typeParameters;case\"TSTypeReference\":return!!(r.typeArguments??r.typeParameters);default:return!1}}return t(e.checkType)||t(e.extendsType)}function Je(e,t,r,n,s){let u=e.node,i=z(u),a=s?Qe(e,r,t):\"\";if(i.length===0)return[a,\"(\",J(e,r,{filter:c=>ge(r.originalText,k(c))===\")\"}),\")\"];let{parent:p}=e,o=Pt(p),m=Cs(u),y=[];if(Eu(e,(c,A)=>{let T=A===i.length-1;T&&u.rest&&y.push(\"...\"),y.push(t()),!T&&(y.push(\",\"),o||m?y.push(\" \"):pe(i[A],r)?y.push(F,F):y.push(x))}),n&&!rl(e)){if(re(a)||re(y))throw new yt;return l([ar(a),\"(\",ar(y),\")\"])}let D=i.every(c=>!O(c.decorators));return m&&D?[a,\"(\",...y,\")\"]:o?[a,\"(\",...y,\")\"]:(Ir(p)||pu(p)||p.type===\"TypeAlias\"||p.type===\"UnionTypeAnnotation\"||p.type===\"IntersectionTypeAnnotation\"||p.type===\"FunctionTypeAnnotation\"&&p.returnType===u)&&i.length===1&&i[0].name===null&&u.this!==i[0]&&i[0].typeAnnotation&&u.typeParameters===null&&Jt(i[0].typeAnnotation)&&!u.rest?r.arrowParens===\"always\"||u.type===\"HookTypeAnnotation\"?[\"(\",...y,\")\"]:y:[a,\"(\",f([E,...y]),B(!fu(u)&&ae(r,\"all\")?\",\":\"\"),E,\")\"]}function Cs(e){if(!e)return!1;let t=z(e);if(t.length!==1)return!1;let[r]=t;return!d(r)&&(r.type===\"ObjectPattern\"||r.type===\"ArrayPattern\"||r.type===\"Identifier\"&&r.typeAnnotation&&(r.typeAnnotation.type===\"TypeAnnotation\"||r.typeAnnotation.type===\"TSTypeAnnotation\")&&we(r.typeAnnotation.typeAnnotation)||r.type===\"FunctionTypeParam\"&&we(r.typeAnnotation)&&r!==e.rest||r.type===\"AssignmentPattern\"&&(r.left.type===\"ObjectPattern\"||r.left.type===\"ArrayPattern\")&&(r.right.type===\"Identifier\"||se(r.right)&&r.right.properties.length===0||X(r.right)&&r.right.elements.length===0))}function tl(e){let t;return e.returnType?(t=e.returnType,t.typeAnnotation&&(t=t.typeAnnotation)):e.typeAnnotation&&(t=e.typeAnnotation),t}function at(e,t){var s;let r=tl(e);if(!r)return!1;let n=(s=e.typeParameters)==null?void 0:s.params;if(n){if(n.length>1)return!1;if(n.length===1){let u=n[0];if(u.constraint||u.default)return!1}}return z(e).length===1&&(we(r)||re(t))}function rl(e){return e.match(t=>t.type===\"ArrowFunctionExpression\"&&t.body.type===\"BlockStatement\",(t,r)=>{if(t.type===\"CallExpression\"&&r===\"arguments\"&&t.arguments.length===1&&t.callee.type===\"CallExpression\"){let n=t.callee.callee;return n.type===\"Identifier\"||n.type===\"MemberExpression\"&&!n.computed&&n.object.type===\"Identifier\"&&n.property.type===\"Identifier\"}return!1},(t,r)=>t.type===\"VariableDeclarator\"&&r===\"init\"||t.type===\"ExportDefaultDeclaration\"&&r===\"declaration\"||t.type===\"TSExportAssignment\"&&r===\"expression\"||t.type===\"AssignmentExpression\"&&r===\"right\"&&t.left.type===\"MemberExpression\"&&t.left.object.type===\"Identifier\"&&t.left.object.name===\"module\"&&t.left.property.type===\"Identifier\"&&t.left.property.name===\"exports\",t=>t.type!==\"VariableDeclaration\"||t.kind===\"const\"&&t.declarations.length===1)}function Mi(e){let t=z(e);return t.length>1&&t.some(r=>r.type===\"TSParameterProperty\")}var nl=v([\"VoidTypeAnnotation\",\"TSVoidKeyword\",\"NullLiteralTypeAnnotation\",\"TSNullKeyword\"]),sl=v([\"ObjectTypeAnnotation\",\"TSTypeLiteral\",\"GenericTypeAnnotation\",\"TSTypeReference\"]);function ul(e){let{types:t}=e;if(t.some(n=>d(n)))return!1;let r=t.find(n=>sl(n));return r?t.every(n=>n===r||nl(n)):!1}function As(e){return Jt(e)||we(e)?!0:Ue(e)?ul(e):!1}function Ri(e,t,r){let n=t.semi?\";\":\"\",{node:s}=e,u=[K(e),\"opaque type \",r(\"id\"),r(\"typeParameters\")];return s.supertype&&u.push(\": \",r(\"supertype\")),s.impltype&&u.push(\" = \",r(\"impltype\")),u.push(n),u}function Qr(e,t,r){let n=t.semi?\";\":\"\",{node:s}=e,u=[K(e)];u.push(\"type \",r(\"id\"),r(\"typeParameters\"));let i=s.type===\"TSTypeAliasDeclaration\"?\"typeAnnotation\":\"right\";return[xt(e,t,r,u,\" =\",i),n]}function zr(e,t,r){let n=!1;return l(e.map(({isFirst:s,previous:u,node:i,index:a})=>{let p=r();if(s)return p;let o=we(i),m=we(u);return m&&o?[\" & \",n?f(p):p]:!m&&!o?f([\" &\",x,p]):(a>1&&(n=!0),[\" & \",a>1?f(p):p])},\"types\"))}function Zr(e,t,r){let{node:n}=e,{parent:s}=e,u=s.type!==\"TypeParameterInstantiation\"&&(s.type!==\"TSConditionalType\"||!t.experimentalTernaries)&&(s.type!==\"ConditionalTypeAnnotation\"||!t.experimentalTernaries)&&s.type!==\"TSTypeParameterInstantiation\"&&s.type!==\"GenericTypeAnnotation\"&&s.type!==\"TSTypeReference\"&&s.type!==\"TSTypeAssertion\"&&s.type!==\"TupleTypeAnnotation\"&&s.type!==\"TSTupleType\"&&!(s.type===\"FunctionTypeParam\"&&!s.name&&e.grandparent.this!==s)&&!((s.type===\"TypeAlias\"||s.type===\"VariableDeclarator\"||s.type===\"TSTypeAliasDeclaration\")&&Oe(t.originalText,n)),i=As(n),a=e.map(m=>{let y=r();return i||(y=he(2,y)),ye(m,y,t)},\"types\");if(i)return b(\" | \",a);let p=u&&!Oe(t.originalText,n),o=[B([p?x:\"\",\"| \"]),b([x,\"| \"],a)];return Be(e,t)?l([f(o),E]):(s.type===\"TupleTypeAnnotation\"||s.type===\"TSTupleType\")&&s[s.type===\"TupleTypeAnnotation\"&&s.types?\"types\":\"elementTypes\"].length>1?l([f([B([\"(\",E]),o]),E,B(\")\")]):l(u?f(o):o)}function il(e){var n;let{node:t,parent:r}=e;return t.type===\"FunctionTypeAnnotation\"&&(Ir(r)||!((r.type===\"ObjectTypeProperty\"||r.type===\"ObjectTypeInternalSlot\")&&!r.variance&&!r.optional&&Bt(r,t)||r.type===\"ObjectTypeCallProperty\"||((n=e.getParentNode(2))==null?void 0:n.type)===\"DeclareFunction\"))}function en(e,t,r){let{node:n}=e,s=[Ht(e)];(n.type===\"TSConstructorType\"||n.type===\"TSConstructSignatureDeclaration\")&&s.push(\"new \");let u=Je(e,r,t,!1,!0),i=[];return n.type===\"FunctionTypeAnnotation\"?i.push(il(e)?\" => \":\": \",r(\"returnType\")):i.push(N(e,r,n.returnType?\"returnType\":\"typeAnnotation\")),at(n,i)&&(u=l(u)),s.push(u,i),l(s)}function tn(e,t,r){return[r(\"objectType\"),$(e),\"[\",r(\"indexType\"),\"]\"]}function rn(e,t,r){return[\"infer \",r(\"typeParameter\")]}function Ts(e,t,r){let{node:n}=e;return[n.postfix?\"\":r,N(e,t),n.postfix?r:\"\"]}function nn(e,t,r){let{node:n}=e;return[\"...\",...n.type===\"TupleTypeSpreadElement\"&&n.label?[r(\"label\"),\": \"]:[],r(\"typeAnnotation\")]}function sn(e,t,r){let{node:n}=e;return[n.variance?r(\"variance\"):\"\",r(\"label\"),n.optional?\"?\":\"\",\": \",r(\"elementType\")]}var al=new WeakSet;function N(e,t,r=\"typeAnnotation\"){let{node:{[r]:n}}=e;if(!n)return\"\";let s=!1;if(n.type===\"TSTypeAnnotation\"||n.type===\"TypeAnnotation\"){let u=e.call(Ji,r);(u===\"=>\"||u===\":\"&&d(n,h.Leading))&&(s=!0),al.add(n)}return s?[\" \",t(r)]:t(r)}var Ji=e=>e.match(t=>t.type===\"TSTypeAnnotation\",(t,r)=>(r===\"returnType\"||r===\"typeAnnotation\")&&(t.type===\"TSFunctionType\"||t.type===\"TSConstructorType\"))?\"=>\":e.match(t=>t.type===\"TSTypeAnnotation\",(t,r)=>r===\"typeAnnotation\"&&(t.type===\"TSJSDocNullableType\"||t.type===\"TSJSDocNonNullableType\"||t.type===\"TSTypePredicate\"))||e.match(t=>t.type===\"TypeAnnotation\",(t,r)=>r===\"typeAnnotation\"&&t.type===\"Identifier\",(t,r)=>r===\"id\"&&t.type===\"DeclareFunction\")||e.match(t=>t.type===\"TypeAnnotation\",(t,r)=>r===\"typeAnnotation\"&&t.type===\"Identifier\",(t,r)=>r===\"id\"&&t.type===\"DeclareHook\")||e.match(t=>t.type===\"TypeAnnotation\",(t,r)=>r===\"bound\"&&t.type===\"TypeParameter\"&&t.usesExtendsBound)?\"\":\":\";function un(e,t,r){let n=Ji(e);return n?[n,\" \",r(\"typeAnnotation\")]:r(\"typeAnnotation\")}function an(e){return[e(\"elementType\"),\"[]\"]}function on({node:e},t){let r=e.type===\"TSTypeQuery\"?\"exprName\":\"argument\",n=e.type===\"TypeofTypeAnnotation\"||e.typeArguments?\"typeArguments\":\"typeParameters\";return[\"typeof \",t(r),t(n)]}function pn(e,t){let{node:r}=e;return[r.type===\"TSTypePredicate\"&&r.asserts?\"asserts \":r.type===\"TypePredicate\"&&r.kind?`${r.kind} `:\"\",t(\"parameterName\"),r.typeAnnotation?[\" is \",N(e,t)]:\"\"]}function $(e){let{node:t}=e;return!t.optional||t.type===\"Identifier\"&&t===e.parent.key?\"\":L(t)||W(t)&&t.computed||t.type===\"OptionalIndexedAccessType\"?\"?.\":\"?\"}function cn(e){return e.node.definite||e.match(void 0,(t,r)=>r===\"id\"&&t.type===\"VariableDeclarator\"&&t.definite)?\"!\":\"\"}var ol=new Set([\"DeclareClass\",\"DeclareComponent\",\"DeclareFunction\",\"DeclareHook\",\"DeclareVariable\",\"DeclareExportDeclaration\",\"DeclareExportAllDeclaration\",\"DeclareOpaqueType\",\"DeclareTypeAlias\",\"DeclareEnum\",\"DeclareInterface\"]);function K(e){let{node:t}=e;return t.declare||ol.has(t.type)&&e.parent.type!==\"DeclareExportDeclaration\"?\"declare \":\"\"}var pl=new Set([\"TSAbstractMethodDefinition\",\"TSAbstractPropertyDefinition\",\"TSAbstractAccessorProperty\"]);function Ht({node:e}){return e.abstract||pl.has(e.type)?\"abstract \":\"\"}function Qe(e,t,r){let n=e.node;return n.typeArguments?r(\"typeArguments\"):n.typeParameters?r(\"typeParameters\"):\"\"}function Vr(e,t,r){return[\"::\",r(\"callee\")]}function Dt(e,t,r){return e.type===\"EmptyStatement\"?\";\":e.type===\"BlockStatement\"||r?[\" \",t]:f([x,t])}function ln(e,t){return[\"...\",t(\"argument\"),N(e,t)]}function Nt(e){return e.accessibility?e.accessibility+\" \":\"\"}function cl(e,t,r,n){let{node:s}=e,u=s.inexact?\"...\":\"\";return d(s,h.Dangling)?l([r,u,J(e,t,{indent:!0}),E,n]):[r,u,n]}function Vt(e,t,r){let{node:n}=e,s=[],u=n.type===\"TupleExpression\"?\"#[\":\"[\",i=\"]\",a=n.type===\"TupleTypeAnnotation\"&&n.types?\"types\":n.type===\"TSTupleType\"||n.type===\"TupleTypeAnnotation\"?\"elementTypes\":\"elements\",p=n[a];if(p.length===0)s.push(cl(e,t,u,i));else{let o=_(!1,p,-1),m=(o==null?void 0:o.type)!==\"RestElement\"&&!n.inexact,y=o===null,D=Symbol(\"array\"),C=!t.__inJestEach&&p.length>1&&p.every((T,S,g)=>{let M=T==null?void 0:T.type;if(!X(T)&&!se(T))return!1;let R=g[S+1];if(R&&M!==R.type)return!1;let j=X(T)?\"elements\":\"properties\";return T[j]&&T[j].length>1}),c=fs(n,t),A=m?y?\",\":ae(t)?c?B(\",\",\"\",{groupId:D}):B(\",\"):\"\":\"\";s.push(l([u,f([E,c?ml(e,t,r,A):[ll(e,t,a,n.inexact,r),A],J(e,t)]),E,i],{shouldBreak:C,id:D}))}return s.push($(e),N(e,r)),s}function fs(e,t){return X(e)&&e.elements.length>1&&e.elements.every(r=>r&&(Fe(r)||jn(r)&&!d(r.argument))&&!d(r,h.Trailing|h.Line,n=>!Z(t.originalText,q(n),{backwards:!0})))}function qi({node:e},{originalText:t}){let r=s=>Ot(t,_t(t,s)),n=s=>t[s]===\",\"?s:n(r(s+1));return jt(t,n(k(e)))}function ll(e,t,r,n,s){let u=[];return e.each(({node:i,isLast:a})=>{u.push(i?l(s()):\"\"),(!a||n)&&u.push([\",\",x,i&&qi(e,t)?E:\"\"])},r),n&&u.push(\"...\"),u}function ml(e,t,r,n){let s=[];return e.each(({isLast:u,next:i})=>{s.push([r(),u?n:\",\"]),u||s.push(qi(e,t)?[F,F]:d(i,h.Leading|h.Line)?F:x)},\"elements\"),Rr(s)}var yl=/^[\\$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC][\\$0-9A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]*$/,Dl=e=>yl.test(e),Wi=Dl;function fl(e){return e.length===1?e:e.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(?=\\d)/u,\"$1$2\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/u,\"$1\").replace(/^([+-])?\\./u,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/u,\"$1\").replace(/\\.(?=e|$)/u,\"\")}var ft=fl;var mn=new WeakMap;function Ui(e){return/^(?:\\d+|\\d+\\.\\d+)$/u.test(e)}function Gi(e,t){return t.parser===\"json\"||t.parser===\"jsonc\"||!te(e.key)||Ze(fe(e.key),t).slice(1,-1)!==e.key.value?!1:!!(Wi(e.key.value)&&!(t.parser===\"babel-ts\"&&e.type===\"ClassProperty\"||t.parser===\"typescript\"&&e.type===\"PropertyDefinition\")||Ui(e.key.value)&&String(Number(e.key.value))===e.key.value&&e.type!==\"ImportAttribute\"&&(t.parser===\"babel\"||t.parser===\"acorn\"||t.parser===\"espree\"||t.parser===\"meriyah\"||t.parser===\"__babel_estree\"))}function El(e,t){let{key:r}=e.node;return(r.type===\"Identifier\"||Fe(r)&&Ui(ft(fe(r)))&&String(r.value)===ft(fe(r))&&!(t.parser===\"typescript\"||t.parser===\"babel-ts\"))&&(t.parser===\"json\"||t.parser===\"jsonc\"||t.quoteProps===\"consistent\"&&mn.get(e.parent))}function Et(e,t,r){let{node:n}=e;if(n.computed)return[\"[\",r(\"key\"),\"]\"];let{parent:s}=e,{key:u}=n;if(t.quoteProps===\"consistent\"&&!mn.has(s)){let i=e.siblings.some(a=>!a.computed&&te(a.key)&&!Gi(a,t));mn.set(s,i)}if(El(e,t)){let i=Ze(JSON.stringify(u.type===\"Identifier\"?u.name:u.value.toString()),t);return e.call(a=>ye(a,i,t),\"key\")}return Gi(n,t)&&(t.quoteProps===\"as-needed\"||t.quoteProps===\"consistent\"&&!mn.get(s))?e.call(i=>ye(i,/^\\d/u.test(u.value)?ft(u.value):u.value,t),\"key\"):r(\"key\")}function yn(e,t,r){let{node:n}=e;return n.shorthand?r(\"value\"):xt(e,t,r,Et(e,t,r),\":\",\"value\")}var Fl=({node:e,key:t,parent:r})=>t===\"value\"&&e.type===\"FunctionExpression\"&&(r.type===\"ObjectMethod\"||r.type===\"ClassMethod\"||r.type===\"ClassPrivateMethod\"||r.type===\"MethodDefinition\"||r.type===\"TSAbstractMethodDefinition\"||r.type===\"TSDeclareMethod\"||r.type===\"Property\"&&bt(r));function Dn(e,t,r,n){if(Fl(e))return fn(e,r,t);let{node:s}=e,u=!1;if((s.type===\"FunctionDeclaration\"||s.type===\"FunctionExpression\")&&(n!=null&&n.expandLastArg)){let{parent:m}=e;L(m)&&(oe(m).length>1||z(s).every(y=>y.type===\"Identifier\"&&!y.typeAnnotation))&&(u=!0)}let i=[K(e),s.async?\"async \":\"\",`function${s.generator?\"*\":\"\"} `,s.id?t(\"id\"):\"\"],a=Je(e,t,r,u),p=$t(e,t),o=at(s,p);return i.push(Qe(e,r,t),l([o?l(a):a,p]),s.body?\" \":\"\",t(\"body\")),r.semi&&(s.declare||!s.body)&&i.push(\";\"),i}function yr(e,t,r){let{node:n}=e,{kind:s}=n,u=n.value||n,i=[];return!s||s===\"init\"||s===\"method\"||s===\"constructor\"?u.async&&i.push(\"async \"):(vt.ok(s===\"get\"||s===\"set\"),i.push(s,\" \")),u.generator&&i.push(\"*\"),i.push(Et(e,t,r),n.optional||n.key.optional?\"?\":\"\",n===u?fn(e,t,r):r(\"value\")),i}function fn(e,t,r){let{node:n}=e,s=Je(e,r,t),u=$t(e,r),i=Mi(n),a=at(n,u),p=[Qe(e,t,r),l([i?l(s,{shouldBreak:!0}):a?l(s):s,u])];return n.body?p.push(\" \",r(\"body\")):p.push(t.semi?\";\":\"\"),p}function Cl(e){let t=z(e);return t.length===1&&!e.typeParameters&&!d(e,h.Dangling)&&t[0].type===\"Identifier\"&&!t[0].typeAnnotation&&!d(t[0])&&!t[0].optional&&!e.predicate&&!e.returnType}function En(e,t){if(t.arrowParens===\"always\")return!1;if(t.arrowParens===\"avoid\"){let{node:r}=e;return Cl(r)}return!1}function $t(e,t){let{node:r}=e,s=[N(e,t,\"returnType\")];return r.predicate&&s.push(t(\"predicate\")),s}function Xi(e,t,r){let{node:n}=e,s=t.semi?\";\":\"\",u=[];if(n.argument){let p=r(\"argument\");Al(t,n.argument)?p=[\"(\",f([F,p]),F,\")\"]:(De(n.argument)||n.argument.type===\"SequenceExpression\"||t.experimentalTernaries&&n.argument.type===\"ConditionalExpression\"&&(n.argument.consequent.type===\"ConditionalExpression\"||n.argument.alternate.type===\"ConditionalExpression\"))&&(p=l([B(\"(\"),f([E,p]),E,B(\")\")])),u.push(\" \",p)}let i=d(n,h.Dangling),a=s&&i&&d(n,h.Last|h.Line);return a&&u.push(s),i&&u.push(\" \",J(e,t)),a||u.push(s),u}function Yi(e,t,r){return[\"return\",Xi(e,t,r)]}function Hi(e,t,r){return[\"throw\",Xi(e,t,r)]}function Al(e,t){if(Oe(e.originalText,t)||d(t,h.Leading,r=>Te(e.originalText,q(r),k(r)))&&!H(t))return!0;if(Rt(t)){let r=t,n;for(;n=iu(r);)if(r=n,Oe(e.originalText,r))return!0}return!1}var ds=new WeakMap;function Ni(e){return ds.has(e)||ds.set(e,e.type===\"ConditionalExpression\"&&!ie(e,t=>t.type===\"ObjectExpression\")),ds.get(e)}var Vi=e=>e.type===\"SequenceExpression\";function $i(e,t,r,n={}){let s=[],u,i=[],a=!1,p=!n.expandLastArg&&e.node.body.type===\"ArrowFunctionExpression\",o;(function S(){let{node:g}=e,M=Tl(e,t,r,n);if(s.length===0)s.push(M);else{let{leading:R,trailing:j}=os(e,t);s.push([R,M]),i.unshift(j)}p&&(a||(a=g.returnType&&z(g).length>0||g.typeParameters||z(g).some(R=>R.type!==\"Identifier\"))),!p||g.body.type!==\"ArrowFunctionExpression\"?(u=r(\"body\",n),o=g.body):e.call(S,\"body\")})();let m=!Oe(t.originalText,o)&&(Vi(o)||dl(o,u,t)||!a&&Ni(o)),y=e.key===\"callee\"&<(e.parent),D=Symbol(\"arrow-chain\"),C=xl(e,n,{signatureDocs:s,shouldBreak:a}),c=!1,A=!1,T=!1;return p&&(y||n.assignmentLayout)&&(A=!0,T=!d(e.node,h.Leading&h.Line),c=n.assignmentLayout===\"chain-tail-arrow-chain\"||y&&!m),u=hl(e,t,n,{bodyDoc:u,bodyComments:i,functionBody:o,shouldPutBodyOnSameLine:m}),l([l(A?f([T?E:\"\",C]):C,{shouldBreak:c,id:D}),\" =>\",p?dt(u,{groupId:D}):l(u),p&&y?B(E,\"\",{groupId:D}):\"\"])}function Tl(e,t,r,n){let{node:s}=e,u=[];if(s.async&&u.push(\"async \"),En(e,t))u.push(r([\"params\",0]));else{let a=n.expandLastArg||n.expandFirstArg,p=$t(e,r);if(a){if(re(p))throw new yt;p=l(ar(p))}u.push(l([Je(e,r,t,a,!0),p]))}let i=J(e,t,{filter(a){let p=ut(t.originalText,k(a));return p!==!1&&t.originalText.slice(p,p+2)===\"=>\"}});return i&&u.push(\" \",i),u}function dl(e,t,r){var n,s;return X(e)||se(e)||e.type===\"ArrowFunctionExpression\"||e.type===\"DoExpression\"||e.type===\"BlockStatement\"||H(e)||((n=t.label)==null?void 0:n.hug)!==!1&&(((s=t.label)==null?void 0:s.embed)||Lr(e,r.originalText))}function xl(e,t,{signatureDocs:r,shouldBreak:n}){if(r.length===1)return r[0];let{parent:s,key:u}=e;return u!==\"callee\"&<(s)||De(s)?l([r[0],\" =>\",f([x,b([\" =>\",x],r.slice(1))])],{shouldBreak:n}):u===\"callee\"&<(s)||t.assignmentLayout?l(b([\" =>\",x],r),{shouldBreak:n}):l(f(b([\" =>\",x],r)),{shouldBreak:n})}function hl(e,t,r,{bodyDoc:n,bodyComments:s,functionBody:u,shouldPutBodyOnSameLine:i}){let{node:a,parent:p}=e,o=r.expandLastArg&&ae(t,\"all\")?B(\",\"):\"\",m=(r.expandLastArg||p.type===\"JSXExpressionContainer\")&&!d(a)?E:\"\";return i&&Ni(u)?[\" \",l([B(\"\",\"(\"),f([E,n]),B(\"\",\")\"),o,m]),s]:(Vi(u)&&(n=l([\"(\",f([E,n]),E,\")\"])),i?[\" \",n,s]:[f([x,n,s]),o,m])}var gl=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let s=t[n];if(r(s,n,t))return s}}},Ki=gl;function Dr(e,t,r,n){let{node:s}=e,u=[],i=Ki(!1,s[n],a=>a.type!==\"EmptyStatement\");return e.each(({node:a})=>{a.type!==\"EmptyStatement\"&&(u.push(r()),a!==i&&(u.push(F),pe(a,t)&&u.push(F)))},n),u}function Fn(e,t,r){let n=Sl(e,t,r),{node:s,parent:u}=e;if(s.type===\"Program\"&&(u==null?void 0:u.type)!==\"ModuleExpression\")return n?[n,F]:\"\";let i=[];if(s.type===\"StaticBlock\"&&i.push(\"static \"),i.push(\"{\"),n)i.push(f([F,n]),F);else{let a=e.grandparent;u.type===\"ArrowFunctionExpression\"||u.type===\"FunctionExpression\"||u.type===\"FunctionDeclaration\"||u.type===\"ComponentDeclaration\"||u.type===\"HookDeclaration\"||u.type===\"ObjectMethod\"||u.type===\"ClassMethod\"||u.type===\"ClassPrivateMethod\"||u.type===\"ForStatement\"||u.type===\"WhileStatement\"||u.type===\"DoWhileStatement\"||u.type===\"DoExpression\"||u.type===\"ModuleExpression\"||u.type===\"CatchClause\"&&!a.finalizer||u.type===\"TSModuleDeclaration\"||s.type===\"StaticBlock\"||i.push(F)}return i.push(\"}\"),i}function Sl(e,t,r){let{node:n}=e,s=O(n.directives),u=n.body.some(p=>p.type!==\"EmptyStatement\"),i=d(n,h.Dangling);if(!s&&!u&&!i)return\"\";let a=[];return s&&(a.push(Dr(e,t,r,\"directives\")),(u||i)&&(a.push(F),pe(_(!1,n.directives,-1),t)&&a.push(F))),u&&a.push(Dr(e,t,r,\"body\")),i&&a.push(J(e,t)),a}function Bl(e){let t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}var Cn=Bl;function bl(e){switch(e){case null:return\"\";case\"PlusOptional\":return\"+?\";case\"MinusOptional\":return\"-?\";case\"Optional\":return\"?\"}}function Qi(e,t,r){let{node:n}=e;return l([n.variance?r(\"variance\"):\"\",\"[\",f([r(\"keyTparam\"),\" in \",r(\"sourceType\")]),\"]\",bl(n.optional),\": \",r(\"propType\")])}function xs(e,t){return e===\"+\"||e===\"-\"?e+t:t}function zi(e,t,r){let{node:n}=e,s=Te(t.originalText,q(n),q(n.typeParameter));return l([\"{\",f([t.bracketSpacing?x:E,l([r(\"typeParameter\"),n.optional?xs(n.optional,\"?\"):\"\",n.typeAnnotation?\": \":\"\",r(\"typeAnnotation\")]),t.semi?B(\";\"):\"\"]),J(e,t),t.bracketSpacing?x:E,\"}\"],{shouldBreak:s})}var fr=Cn(\"typeParameters\");function Pl(e,t,r){let{node:n}=e;return z(n).length===1&&n.type.startsWith(\"TS\")&&!n[r][0].constraint&&e.parent.type===\"ArrowFunctionExpression\"&&!(t.filepath&&/\\.ts$/u.test(t.filepath))}function Lt(e,t,r,n){let{node:s}=e;if(!s[n])return\"\";if(!Array.isArray(s[n]))return r(n);let u=Pt(e.grandparent),i=e.match(o=>!(o[n].length===1&&we(o[n][0])),void 0,(o,m)=>m===\"typeAnnotation\",o=>o.type===\"Identifier\",Fs);if(s[n].length===0||!i&&(u||s[n].length===1&&(s[n][0].type===\"NullableTypeAnnotation\"||As(s[n][0]))))return[\"<\",b(\", \",e.map(r,n)),kl(e,t),\">\"];let p=s.type===\"TSTypeParameterInstantiation\"?\"\":Pl(e,t,n)?\",\":ae(t)?B(\",\"):\"\";return l([\"<\",f([E,b([\",\",x],e.map(r,n))]),p,E,\">\"],{id:fr(s)})}function kl(e,t){let{node:r}=e;if(!d(r,h.Dangling))return\"\";let n=!d(r,h.Line),s=J(e,t,{indent:!n});return n?s:[s,F]}function An(e,t,r){let{node:n,parent:s}=e,u=[n.type===\"TSTypeParameter\"&&n.const?\"const \":\"\"],i=n.type===\"TSTypeParameter\"?r(\"name\"):n.name;if(s.type===\"TSMappedType\")return s.readonly&&u.push(xs(s.readonly,\"readonly\"),\" \"),u.push(\"[\",i),n.constraint&&u.push(\" in \",r(\"constraint\")),s.nameType&&u.push(\" as \",e.callParent(()=>r(\"nameType\"))),u.push(\"]\"),u;if(n.variance&&u.push(r(\"variance\")),n.in&&u.push(\"in \"),n.out&&u.push(\"out \"),u.push(i),n.bound&&(n.usesExtendsBound&&u.push(\" extends \"),u.push(N(e,r,\"bound\"))),n.constraint){let a=Symbol(\"constraint\");u.push(\" extends\",l(f(x),{id:a}),ke,dt(r(\"constraint\"),{groupId:a}))}return n.default&&u.push(\" = \",r(\"default\")),l(u)}var Zi=v([\"ClassProperty\",\"PropertyDefinition\",\"ClassPrivateProperty\",\"ClassAccessorProperty\",\"AccessorProperty\",\"TSAbstractPropertyDefinition\",\"TSAbstractAccessorProperty\"]);function Tn(e,t,r){let{node:n}=e,s=[K(e),Ht(e),\"class\"],u=d(n.id,h.Trailing)||d(n.typeParameters,h.Trailing)||d(n.superClass)||O(n.extends)||O(n.mixins)||O(n.implements),i=[],a=[];if(n.id&&i.push(\" \",r(\"id\")),i.push(r(\"typeParameters\")),n.superClass){let m=[Ll(e,t,r),r(n.superTypeArguments?\"superTypeArguments\":\"superTypeParameters\")],y=e.call(D=>[\"extends \",ye(D,m,t)],\"superClass\");u?a.push(x,l(y)):a.push(\" \",y)}else a.push(hs(e,t,r,\"extends\"));a.push(hs(e,t,r,\"mixins\"),hs(e,t,r,\"implements\"));let p;if(u){let m;ra(n)?m=[...i,f(a)]:m=f([...i,a]),p=ea(n),s.push(l(m,{id:p}))}else s.push(...i,...a);let o=n.body;return u&&O(o.body)?s.push(B(F,\" \",{groupId:p})):s.push(\" \"),s.push(r(\"body\")),s}var ea=Cn(\"heritageGroup\");function ta(e){return B(F,\"\",{groupId:ea(e)})}function Il(e){return[\"extends\",\"mixins\",\"implements\"].reduce((t,r)=>t+(Array.isArray(e[r])?e[r].length:0),e.superClass?1:0)>1}function ra(e){return e.typeParameters&&!d(e.typeParameters,h.Trailing|h.Line)&&!Il(e)}function hs(e,t,r,n){let{node:s}=e;if(!O(s[n]))return\"\";let u=J(e,t,{marker:n});return[ra(s)?B(\" \",x,{groupId:fr(s.typeParameters)}):x,u,u&&F,n,l(f([x,b([\",\",x],e.map(r,n))]))]}function Ll(e,t,r){let n=r(\"superClass\"),{parent:s}=e;return s.type===\"AssignmentExpression\"?l(B([\"(\",f([E,n]),E,\")\"],n)):n}function dn(e,t,r){let{node:n}=e,s=[];return O(n.decorators)&&s.push(Ds(e,t,r)),s.push(Nt(n)),n.static&&s.push(\"static \"),s.push(Ht(e)),n.override&&s.push(\"override \"),s.push(yr(e,t,r)),s}function xn(e,t,r){let{node:n}=e,s=[],u=t.semi?\";\":\"\";O(n.decorators)&&s.push(Ds(e,t,r)),s.push(K(e),Nt(n)),n.static&&s.push(\"static \"),s.push(Ht(e)),n.override&&s.push(\"override \"),n.readonly&&s.push(\"readonly \"),n.variance&&s.push(r(\"variance\")),(n.type===\"ClassAccessorProperty\"||n.type===\"AccessorProperty\"||n.type===\"TSAbstractAccessorProperty\")&&s.push(\"accessor \"),s.push(Et(e,t,r),$(e),cn(e),N(e,r));let i=n.type===\"TSAbstractPropertyDefinition\"||n.type===\"TSAbstractAccessorProperty\";return[xt(e,t,r,s,\" =\",i?void 0:\"value\"),u]}function na(e,t,r){let{node:n}=e,s=[];return e.each(({node:u,next:i,isLast:a})=>{s.push(r()),!t.semi&&Zi(u)&&wl(u,i)&&s.push(\";\"),a||(s.push(F),pe(u,t)&&s.push(F))},\"body\"),d(n,h.Dangling)&&s.push(J(e,t)),[\"{\",s.length>0?[f([F,s]),F]:\"\",\"}\"]}function wl(e,t){var s;let{type:r,name:n}=e.key;if(!e.computed&&r===\"Identifier\"&&(n===\"static\"||n===\"get\"||n===\"set\")&&!e.value&&!e.typeAnnotation)return!0;if(!t||t.static||t.accessibility||t.readonly)return!1;if(!t.computed){let u=(s=t.key)==null?void 0:s.name;if(u===\"in\"||u===\"instanceof\")return!0}if(Zi(t)&&t.variance&&!t.static&&!t.declare)return!0;switch(t.type){case\"ClassProperty\":case\"PropertyDefinition\":case\"TSAbstractPropertyDefinition\":return t.computed;case\"MethodDefinition\":case\"TSAbstractMethodDefinition\":case\"ClassMethod\":case\"ClassPrivateMethod\":{if((t.value?t.value.async:t.async)||t.kind===\"get\"||t.kind===\"set\")return!1;let i=t.value?t.value.generator:t.generator;return!!(t.computed||i)}case\"TSIndexSignature\":return!0}return!1}var Ol=v([\"TSAsExpression\",\"TSTypeAssertion\",\"TSNonNullExpression\",\"TSInstantiationExpression\",\"TSSatisfiesExpression\"]);function gs(e){return Ol(e)?gs(e.expression):e}var sa=v([\"FunctionExpression\",\"ArrowFunctionExpression\"]);function ua(e){return e.type===\"MemberExpression\"||e.type===\"OptionalMemberExpression\"||e.type===\"Identifier\"&&e.name!==\"undefined\"}function ia(e,t){if(t.semi||Ss(e,t)||Bs(e,t))return!1;let{node:r,key:n,parent:s}=e;return!!(r.type===\"ExpressionStatement\"&&(n===\"body\"&&(s.type===\"Program\"||s.type===\"BlockStatement\"||s.type===\"StaticBlock\"||s.type===\"TSModuleBlock\")||n===\"consequent\"&&s.type===\"SwitchCase\")&&e.call(()=>aa(e,t),\"expression\"))}function aa(e,t){let{node:r}=e;switch(r.type){case\"ParenthesizedExpression\":case\"TypeCastExpression\":case\"ArrayExpression\":case\"ArrayPattern\":case\"TemplateLiteral\":case\"TemplateElement\":case\"RegExpLiteral\":return!0;case\"ArrowFunctionExpression\":if(!En(e,t))return!0;break;case\"UnaryExpression\":{let{prefix:n,operator:s}=r;if(n&&(s===\"+\"||s===\"-\"))return!0;break}case\"BindExpression\":if(!r.object)return!0;break;case\"Literal\":if(r.regex)return!0;break;default:if(H(r))return!0}return Be(e,t)?!0:Rt(r)?e.call(()=>aa(e,t),...Pr(r)):!1}function Ss({node:e,parent:t},r){return(r.parentParser===\"markdown\"||r.parentParser===\"mdx\")&&e.type===\"ExpressionStatement\"&&H(e.expression)&&t.type===\"Program\"&&t.body.length===1}function Bs({node:e,parent:t},r){return(r.parser===\"__vue_event_binding\"||r.parser===\"__vue_ts_event_binding\")&&e.type===\"ExpressionStatement\"&&t.type===\"Program\"&&t.body.length===1}function oa(e,t,r){let n=[r(\"expression\")];if(Bs(e,t)){let s=gs(e.node.expression);(sa(s)||ua(s))&&n.push(\";\")}else Ss(e,t)||t.semi&&n.push(\";\");return n}function pa(e,t,r){if(t.__isVueBindings||t.__isVueForBindingLeft){let n=e.map(r,\"program\",\"body\",0,\"params\");if(n.length===1)return n[0];let s=b([\",\",x],n);return t.__isVueForBindingLeft?[\"(\",f([E,l(s)]),E,\")\"]:s}if(t.__isEmbeddedTypescriptGenericParameters){let n=e.map(r,\"program\",\"body\",0,\"typeParameters\",\"params\");return b([\",\",x],n)}}function ma(e,t){let{node:r}=e;switch(r.type){case\"RegExpLiteral\":return ca(r);case\"BigIntLiteral\":return hn(r.extra.raw);case\"NumericLiteral\":return ft(r.extra.raw);case\"StringLiteral\":return Ie(Ze(r.extra.raw,t));case\"NullLiteral\":return\"null\";case\"BooleanLiteral\":return String(r.value);case\"DirectiveLiteral\":return la(r.extra.raw,t);case\"Literal\":{if(r.regex)return ca(r.regex);if(r.bigint)return hn(r.raw);let{value:n}=r;return typeof n==\"number\"?ft(r.raw):typeof n==\"string\"?_l(e)?la(r.raw,t):Ie(Ze(r.raw,t)):String(n)}}}function _l(e){if(e.key!==\"expression\")return;let{parent:t}=e;return t.type===\"ExpressionStatement\"&&t.directive}function hn(e){return e.toLowerCase()}function ca({pattern:e,flags:t}){return t=[...t].sort().join(\"\"),`/${e}/${t}`}function la(e,t){let r=e.slice(1,-1);if(r.includes('\"')||r.includes(\"'\"))return e;let n=t.singleQuote?\"'\":'\"';return n+r+n}function jl(e,t,r){let n=e.originalText.slice(t,r);for(let s of e[Symbol.for(\"comments\")]){let u=q(s);if(u>r)break;let i=k(s);if(ie.type===\"ExportDefaultDeclaration\"||e.type===\"DeclareExportDeclaration\"&&e.default;function gn(e,t,r){let{node:n}=e,s=[xi(e,t,r),K(e),\"export\",Da(n)?\" default\":\"\"],{declaration:u,exported:i}=n;return d(n,h.Dangling)&&(s.push(\" \",J(e,t)),wr(n)&&s.push(F)),u?s.push(\" \",r(\"declaration\")):(s.push(Rl(n)),n.type===\"ExportAllDeclaration\"||n.type===\"DeclareExportAllDeclaration\"?(s.push(\" *\"),i&&s.push(\" as \",r(\"exported\"))):s.push(Ea(e,t,r)),s.push(fa(e,t,r),Ca(e,t,r))),s.push(Ml(n,t)),s}var vl=v([\"ClassDeclaration\",\"ComponentDeclaration\",\"FunctionDeclaration\",\"TSInterfaceDeclaration\",\"DeclareClass\",\"DeclareComponent\",\"DeclareFunction\",\"DeclareHook\",\"HookDeclaration\",\"TSDeclareFunction\",\"EnumDeclaration\"]);function Ml(e,t){return t.semi&&(!e.declaration||Da(e)&&!vl(e.declaration))?\";\":\"\"}function Ps(e,t=!0){return e&&e!==\"value\"?`${t?\" \":\"\"}${e}${t?\"\":\" \"}`:\"\"}function ks(e,t){return Ps(e.importKind,t)}function Rl(e){return Ps(e.exportKind)}function fa(e,t,r){let{node:n}=e;if(!n.source)return\"\";let s=[];return Fa(n,t)&&s.push(\" from\"),s.push(\" \",r(\"source\")),s}function Ea(e,t,r){let{node:n}=e;if(!Fa(n,t))return\"\";let s=[\" \"];if(O(n.specifiers)){let u=[],i=[];e.each(()=>{let a=e.node.type;if(a===\"ExportNamespaceSpecifier\"||a===\"ExportDefaultSpecifier\"||a===\"ImportNamespaceSpecifier\"||a===\"ImportDefaultSpecifier\")u.push(r());else if(a===\"ExportSpecifier\"||a===\"ImportSpecifier\")i.push(r());else throw new Me(n,\"specifier\")},\"specifiers\"),s.push(b(\", \",u)),i.length>0&&(u.length>0&&s.push(\", \"),i.length>1||u.length>0||n.specifiers.some(p=>d(p))?s.push(l([\"{\",f([t.bracketSpacing?x:E,b([\",\",x],i)]),B(ae(t)?\",\":\"\"),t.bracketSpacing?x:E,\"}\"])):s.push([\"{\",t.bracketSpacing?\" \":\"\",...i,t.bracketSpacing?\" \":\"\",\"}\"]))}else s.push(\"{}\");return s}function Fa(e,t){return e.type!==\"ImportDeclaration\"||O(e.specifiers)||e.importKind===\"type\"?!0:bs(t,q(e),q(e.source)).trimEnd().endsWith(\"from\")}function Jl(e,t){var n,s;if((n=e.extra)!=null&&n.deprecatedAssertSyntax)return\"assert\";let r=bs(t,k(e.source),(s=e.attributes)!=null&&s[0]?q(e.attributes[0]):k(e)).trimStart();return r.startsWith(\"assert\")?\"assert\":r.startsWith(\"with\")||O(e.attributes)?\"with\":void 0}function Ca(e,t,r){let{node:n}=e;if(!n.source)return\"\";let s=Jl(n,t);if(!s)return\"\";let u=[` ${s} {`];return O(n.attributes)&&(t.bracketSpacing&&u.push(\" \"),u.push(b(\", \",e.map(r,\"attributes\"))),t.bracketSpacing&&u.push(\" \")),u.push(\"}\"),u}function Aa(e,t,r){let{node:n}=e,{type:s}=n,u=s.startsWith(\"Import\"),i=u?\"imported\":\"local\",a=u?\"local\":\"exported\",p=n[i],o=n[a],m=\"\",y=\"\";return s===\"ExportNamespaceSpecifier\"||s===\"ImportNamespaceSpecifier\"?m=\"*\":p&&(m=r(i)),o&&!ql(n)&&(y=r(a)),[Ps(s===\"ImportSpecifier\"?n.importKind:n.exportKind,!1),m,m&&y?\" as \":\"\",y]}function ql(e){if(e.type!==\"ImportSpecifier\"&&e.type!==\"ExportSpecifier\")return!1;let{local:t,[e.type===\"ImportSpecifier\"?\"imported\":\"exported\"]:r}=e;if(t.type!==r.type||!tu(t,r))return!1;if(te(t))return t.value===r.value&&fe(t)===fe(r);switch(t.type){case\"Identifier\":return t.name===r.name;default:return!1}}function ht(e,t,r){var j;let n=t.semi?\";\":\"\",{node:s}=e,u=s.type===\"ObjectTypeAnnotation\",i=s.type===\"TSEnumDeclaration\"||s.type===\"EnumBooleanBody\"||s.type===\"EnumNumberBody\"||s.type===\"EnumBigIntBody\"||s.type===\"EnumStringBody\"||s.type===\"EnumSymbolBody\",a=[s.type===\"TSTypeLiteral\"||i?\"members\":s.type===\"TSInterfaceBody\"?\"body\":\"properties\"];u&&a.push(\"indexers\",\"callProperties\",\"internalSlots\");let p=a.flatMap(I=>e.map(({node:U})=>({node:U,printed:r(),loc:q(U)}),I));a.length>1&&p.sort((I,U)=>I.loc-U.loc);let{parent:o,key:m}=e,y=u&&m===\"body\"&&(o.type===\"InterfaceDeclaration\"||o.type===\"DeclareInterface\"||o.type===\"DeclareClass\"),D=s.type===\"TSInterfaceBody\"||i||y||s.type===\"ObjectPattern\"&&o.type!==\"FunctionDeclaration\"&&o.type!==\"FunctionExpression\"&&o.type!==\"ArrowFunctionExpression\"&&o.type!==\"ObjectMethod\"&&o.type!==\"ClassMethod\"&&o.type!==\"ClassPrivateMethod\"&&o.type!==\"AssignmentPattern\"&&o.type!==\"CatchClause\"&&s.properties.some(I=>I.value&&(I.value.type===\"ObjectPattern\"||I.value.type===\"ArrayPattern\"))||s.type!==\"ObjectPattern\"&&p.length>0&&Te(t.originalText,q(s),p[0].loc),C=y?\";\":s.type===\"TSInterfaceBody\"||s.type===\"TSTypeLiteral\"?B(n,\";\"):\",\",c=s.type===\"RecordExpression\"?\"#{\":s.exact?\"{|\":\"{\",A=s.exact?\"|}\":\"}\",T=[],S=p.map(I=>{let U=[...T,l(I.printed)];return T=[C,x],(I.node.type===\"TSPropertySignature\"||I.node.type===\"TSMethodSignature\"||I.node.type===\"TSConstructSignatureDeclaration\"||I.node.type===\"TSCallSignatureDeclaration\")&&d(I.node,h.PrettierIgnore)&&T.shift(),pe(I.node,t)&&T.push(F),U});if(s.inexact||s.hasUnknownMembers){let I;if(d(s,h.Dangling)){let U=d(s,h.Line);I=[J(e,t),U||Z(t.originalText,k(_(!1,ct(s),-1)))?F:x,\"...\"]}else I=[\"...\"];S.push([...T,...I])}let g=(j=_(!1,p,-1))==null?void 0:j.node,M=!(s.inexact||s.hasUnknownMembers||g&&(g.type===\"RestElement\"||(g.type===\"TSPropertySignature\"||g.type===\"TSCallSignatureDeclaration\"||g.type===\"TSMethodSignature\"||g.type===\"TSConstructSignatureDeclaration\")&&d(g,h.PrettierIgnore))),R;if(S.length===0){if(!d(s,h.Dangling))return[c,A,N(e,r)];R=l([c,J(e,t,{indent:!0}),E,A,$(e),N(e,r)])}else R=[y&&O(s.properties)?ta(o):\"\",c,f([t.bracketSpacing?x:E,...S]),B(M&&(C!==\",\"||ae(t))?C:\"\"),t.bracketSpacing?x:E,A,$(e),N(e,r)];return e.match(I=>I.type===\"ObjectPattern\"&&!O(I.decorators),Is)||we(s)&&(e.match(void 0,(I,U)=>U===\"typeAnnotation\",(I,U)=>U===\"typeAnnotation\",Is)||e.match(void 0,(I,U)=>I.type===\"FunctionTypeParam\"&&U===\"typeAnnotation\",Is))||!D&&e.match(I=>I.type===\"ObjectPattern\",I=>I.type===\"AssignmentExpression\"||I.type===\"VariableDeclarator\")?R:l(R,{shouldBreak:D})}function Is(e,t){return(t===\"params\"||t===\"parameters\"||t===\"this\"||t===\"rest\")&&Cs(e)}function Wl(e){let t=[e];for(let r=0;rD[G]===n),c=D.type===n.type&&!C,A,T,S=0;do T=A||n,A=e.getParentNode(S),S++;while(A&&A.type===n.type&&a.every(G=>A[G]!==T));let g=A||D,M=T;if(s&&(H(n[a[0]])||H(p)||H(o)||Wl(M))){y=!0,c=!0;let G=Q=>[B(\"(\"),f([E,Q]),E,B(\")\")],ue=Q=>Q.type===\"NullLiteral\"||Q.type===\"Literal\"&&Q.value===null||Q.type===\"Identifier\"&&Q.name===\"undefined\";m.push(\" ? \",ue(p)?r(u):G(r(u)),\" : \",o.type===n.type||ue(o)?r(i):G(r(i)))}else{let G=Q=>t.useTabs?f(r(Q)):he(2,r(Q)),ue=[x,\"? \",p.type===n.type?B(\"\",\"(\"):\"\",G(u),p.type===n.type?B(\"\",\")\"):\"\",x,\": \",G(i)];m.push(D.type!==n.type||D[i]===n||C?ue:t.useTabs?Mr(f(ue)):he(Math.max(0,t.tabWidth-2),ue))}let R=[u,i,...a].some(G=>d(n[G],ue=>ee(ue)&&Te(t.originalText,q(ue),k(ue)))),j=G=>D===g?l(G,{shouldBreak:R}):R?[G,Ee]:G,I=!y&&(W(D)||D.type===\"NGPipeExpression\"&&D.left===n)&&!D.computed,U=Xl(e),P=j([Gl(e,t,r),c?m:f(m),s&&I&&!U?E:\"\"]);return C||U?l([f([E,P]),E]):P}function Yl(e,t){return(W(t)||t.type===\"NGPipeExpression\"&&t.left===e)&&!t.computed}function Hl(e,t,r,n){return[...e.map(u=>ct(u)),ct(t),ct(r)].flat().some(u=>ee(u)&&Te(n.originalText,q(u),k(u)))}var Nl=new Map([[\"AssignmentExpression\",\"right\"],[\"VariableDeclarator\",\"init\"],[\"ReturnStatement\",\"argument\"],[\"ThrowStatement\",\"argument\"],[\"UnaryExpression\",\"argument\"],[\"YieldExpression\",\"argument\"],[\"AwaitExpression\",\"argument\"]]);function Vl(e){let{node:t}=e;if(t.type!==\"ConditionalExpression\")return!1;let r,n=t;for(let s=0;!r;s++){let u=e.getParentNode(s);if(u.type===\"ChainExpression\"&&u.expression===n||L(u)&&u.callee===n||W(u)&&u.object===n||u.type===\"TSNonNullExpression\"&&u.expression===n){n=u;continue}u.type===\"NewExpression\"&&u.callee===n||Ae(u)&&u.expression===n?(r=e.getParentNode(s+1),n=u):r=u}return n===t?!1:r[Nl.get(r.type)]===n}var Ls=e=>[B(\"(\"),f([E,e]),E,B(\")\")];function Kt(e,t,r,n){if(!t.experimentalTernaries)return Ta(e,t,r);let{node:s}=e,u=s.type===\"ConditionalExpression\",i=s.type===\"TSConditionalType\"||s.type===\"ConditionalTypeAnnotation\",a=u?\"consequent\":\"trueType\",p=u?\"alternate\":\"falseType\",o=u?[\"test\"]:[\"checkType\",\"extendsType\"],m=s[a],y=s[p],D=o.map(qe=>s[qe]),{parent:C}=e,c=C.type===s.type,A=c&&o.some(qe=>C[qe]===s),T=c&&C[p]===s,S=m.type===s.type,g=y.type===s.type,M=g||T,R=t.tabWidth>2||t.useTabs,j,I,U=0;do I=j||s,j=e.getParentNode(U),U++;while(j&&j.type===s.type&&o.every(qe=>j[qe]!==I));let P=j||C,G=n&&n.assignmentLayout&&n.assignmentLayout!==\"break-after-operator\"&&(C.type===\"AssignmentExpression\"||C.type===\"VariableDeclarator\"||C.type===\"ClassProperty\"||C.type===\"PropertyDefinition\"||C.type===\"ClassPrivateProperty\"||C.type===\"ObjectProperty\"||C.type===\"Property\"),ue=(C.type===\"ReturnStatement\"||C.type===\"ThrowStatement\")&&!(S||g),Q=u&&P.type===\"JSXExpressionContainer\"&&e.grandparent.type!==\"JSXAttribute\",gt=Vl(e),Ft=Yl(s,C),w=i&&Be(e,t),ne=R?t.useTabs?\"\t\":\" \".repeat(t.tabWidth-1):\"\",de=Hl(D,m,y,t)||S||g,ot=!M&&!c&&!i&&(Q?m.type===\"NullLiteral\"||m.type===\"Literal\"&&m.value===null:nr(m,t)&&Mn(s.test,3)),St=M||T||i&&!c||c&&u&&Mn(s.test,1)||ot,js=[];!S&&d(m,h.Dangling)&&e.call(qe=>{js.push(J(qe,t),F)},\"consequent\");let Qt=[];d(s.test,h.Dangling)&&e.call(qe=>{Qt.push(J(qe,t))},\"test\"),!g&&d(y,h.Dangling)&&e.call(qe=>{Qt.push(J(qe,t))},\"alternate\"),d(s,h.Dangling)&&Qt.push(J(e,t));let vs=Symbol(\"test\"),qa=Symbol(\"consequent\"),Fr=Symbol(\"test-and-consequent\"),Wa=u?[Ls(r(\"test\")),s.test.type===\"ConditionalExpression\"?Ee:\"\"]:[r(\"checkType\"),\" \",\"extends\",\" \",s.extendsType.type===\"TSConditionalType\"||s.extendsType.type===\"ConditionalTypeAnnotation\"||s.extendsType.type===\"TSMappedType\"?r(\"extendsType\"):l(Ls(r(\"extendsType\")))],Ms=l([Wa,\" ?\"],{id:vs}),Ga=r(a),Cr=f([S||Q&&(H(m)||c||M)?F:x,js,Ga]),Ua=St?l([Ms,M?Cr:B(Cr,l(Cr,{id:qa}),{groupId:vs})],{id:Fr}):[Ms,Cr],kn=r(p),Rs=ot?B(kn,Mr(Ls(kn)),{groupId:Fr}):kn,zt=[Ua,Qt.length>0?[f([F,Qt]),F]:g?F:ot?B(x,\" \",{groupId:Fr}):x,\":\",g?\" \":R?St?B(ne,B(M||ot?\" \":ne,\" \"),{groupId:Fr}):B(ne,\" \"):\" \",g?Rs:l([f(Rs),Q&&!ot?E:\"\"]),Ft&&!gt?E:\"\",de?Ee:\"\"];return G&&!de?l(f([E,l(zt)])):G||ue?l(f(zt)):gt||i&&A?l([f([E,zt]),w?E:\"\"]):C===P?l(zt):zt}function da(e,t,r,n){let{node:s}=e;if(kr(s))return ma(e,t);let u=t.semi?\";\":\"\",i=[];switch(s.type){case\"JsExpressionRoot\":return r(\"node\");case\"JsonRoot\":return[r(\"node\"),F];case\"File\":return pa(e,t,r)??r(\"program\");case\"EmptyStatement\":return\"\";case\"ExpressionStatement\":return oa(e,t,r);case\"ChainExpression\":return r(\"expression\");case\"ParenthesizedExpression\":return!d(s.expression)&&(se(s.expression)||X(s.expression))?[\"(\",r(\"expression\"),\")\"]:l([\"(\",f([E,r(\"expression\")]),E,\")\"]);case\"AssignmentExpression\":return Oi(e,t,r);case\"VariableDeclarator\":return _i(e,t,r);case\"BinaryExpression\":case\"LogicalExpression\":return Nr(e,t,r);case\"AssignmentPattern\":return[r(\"left\"),\" = \",r(\"right\")];case\"OptionalMemberExpression\":case\"MemberExpression\":return Pi(e,t,r);case\"MetaProperty\":return[r(\"meta\"),\".\",r(\"property\")];case\"BindExpression\":return s.object&&i.push(r(\"object\")),i.push(l(f([E,Vr(e,t,r)]))),i;case\"Identifier\":return[s.name,$(e),cn(e),N(e,r)];case\"V8IntrinsicIdentifier\":return[\"%\",s.name];case\"SpreadElement\":case\"SpreadElementPattern\":case\"SpreadPropertyPattern\":case\"RestElement\":return ln(e,r);case\"FunctionDeclaration\":case\"FunctionExpression\":return Dn(e,r,t,n);case\"ArrowFunctionExpression\":return $i(e,t,r,n);case\"YieldExpression\":return i.push(\"yield\"),s.delegate&&i.push(\"*\"),s.argument&&i.push(\" \",r(\"argument\")),i;case\"AwaitExpression\":if(i.push(\"await\"),s.argument){i.push(\" \",r(\"argument\"));let{parent:a}=e;if(L(a)&&a.callee===s||W(a)&&a.object===s){i=[f([E,...i]),E];let p=e.findAncestor(o=>o.type===\"AwaitExpression\"||o.type===\"BlockStatement\");if((p==null?void 0:p.type)!==\"AwaitExpression\"||!ie(p.argument,o=>o===s))return l(i)}}return i;case\"ExportDefaultDeclaration\":case\"ExportNamedDeclaration\":case\"ExportAllDeclaration\":return gn(e,t,r);case\"ImportDeclaration\":return ya(e,t,r);case\"ImportSpecifier\":case\"ExportSpecifier\":case\"ImportNamespaceSpecifier\":case\"ExportNamespaceSpecifier\":case\"ImportDefaultSpecifier\":case\"ExportDefaultSpecifier\":return Aa(e,t,r);case\"ImportAttribute\":return yn(e,t,r);case\"Program\":case\"BlockStatement\":case\"StaticBlock\":return Fn(e,t,r);case\"ClassBody\":return na(e,t,r);case\"ThrowStatement\":return Hi(e,t,r);case\"ReturnStatement\":return Yi(e,t,r);case\"NewExpression\":case\"ImportExpression\":case\"OptionalCallExpression\":case\"CallExpression\":return $r(e,t,r);case\"ObjectExpression\":case\"ObjectPattern\":case\"RecordExpression\":return ht(e,t,r);case\"Property\":return bt(s)?yr(e,t,r):yn(e,t,r);case\"ObjectProperty\":return yn(e,t,r);case\"ObjectMethod\":return yr(e,t,r);case\"Decorator\":return[\"@\",r(\"expression\")];case\"ArrayExpression\":case\"ArrayPattern\":case\"TupleExpression\":return Vt(e,t,r);case\"SequenceExpression\":{let{parent:a}=e;if(a.type===\"ExpressionStatement\"||a.type===\"ForStatement\"){let p=[];return e.each(({isFirst:o})=>{o?p.push(r()):p.push(\",\",f([x,r()]))},\"expressions\"),l(p)}return l(b([\",\",x],e.map(r,\"expressions\")))}case\"ThisExpression\":return\"this\";case\"Super\":return\"super\";case\"Directive\":return[r(\"value\"),u];case\"UnaryExpression\":return i.push(s.operator),/[a-z]$/u.test(s.operator)&&i.push(\" \"),d(s.argument)?i.push(l([\"(\",f([E,r(\"argument\")]),E,\")\"])):i.push(r(\"argument\")),i;case\"UpdateExpression\":return[s.prefix?s.operator:\"\",r(\"argument\"),s.prefix?\"\":s.operator];case\"ConditionalExpression\":return Kt(e,t,r,n);case\"VariableDeclaration\":{let a=e.map(r,\"declarations\"),p=e.parent,o=p.type===\"ForStatement\"||p.type===\"ForInStatement\"||p.type===\"ForOfStatement\",m=s.declarations.some(D=>D.init),y;return a.length===1&&!d(s.declarations[0])?y=a[0]:a.length>0&&(y=f(a[0])),i=[K(e),s.kind,y?[\" \",y]:\"\",f(a.slice(1).map(D=>[\",\",m&&!o?F:x,D]))],o&&p.body!==s||i.push(u),l(i)}case\"WithStatement\":return l([\"with (\",r(\"object\"),\")\",Dt(s.body,r(\"body\"))]);case\"IfStatement\":{let a=Dt(s.consequent,r(\"consequent\")),p=l([\"if (\",l([f([E,r(\"test\")]),E]),\")\",a]);if(i.push(p),s.alternate){let o=d(s.consequent,h.Trailing|h.Line)||wr(s),m=s.consequent.type===\"BlockStatement\"&&!o;i.push(m?\" \":F),d(s,h.Dangling)&&i.push(J(e,t),o?F:\" \"),i.push(\"else\",l(Dt(s.alternate,r(\"alternate\"),s.alternate.type===\"IfStatement\")))}return i}case\"ForStatement\":{let a=Dt(s.body,r(\"body\")),p=J(e,t),o=p?[p,E]:\"\";return!s.init&&!s.test&&!s.update?[o,l([\"for (;;)\",a])]:[o,l([\"for (\",l([f([E,r(\"init\"),\";\",x,r(\"test\"),\";\",x,r(\"update\")]),E]),\")\",a])]}case\"WhileStatement\":return l([\"while (\",l([f([E,r(\"test\")]),E]),\")\",Dt(s.body,r(\"body\"))]);case\"ForInStatement\":return l([\"for (\",r(\"left\"),\" in \",r(\"right\"),\")\",Dt(s.body,r(\"body\"))]);case\"ForOfStatement\":return l([\"for\",s.await?\" await\":\"\",\" (\",r(\"left\"),\" of \",r(\"right\"),\")\",Dt(s.body,r(\"body\"))]);case\"DoWhileStatement\":{let a=Dt(s.body,r(\"body\"));return i=[l([\"do\",a])],s.body.type===\"BlockStatement\"?i.push(\" \"):i.push(F),i.push(\"while (\",l([f([E,r(\"test\")]),E]),\")\",u),i}case\"DoExpression\":return[s.async?\"async \":\"\",\"do \",r(\"body\")];case\"BreakStatement\":case\"ContinueStatement\":return i.push(s.type===\"BreakStatement\"?\"break\":\"continue\"),s.label&&i.push(\" \",r(\"label\")),i.push(u),i;case\"LabeledStatement\":return s.body.type===\"EmptyStatement\"?[r(\"label\"),\":;\"]:[r(\"label\"),\": \",r(\"body\")];case\"TryStatement\":return[\"try \",r(\"block\"),s.handler?[\" \",r(\"handler\")]:\"\",s.finalizer?[\" finally \",r(\"finalizer\")]:\"\"];case\"CatchClause\":if(s.param){let a=d(s.param,o=>!ee(o)||o.leading&&Z(t.originalText,k(o))||o.trailing&&Z(t.originalText,q(o),{backwards:!0})),p=r(\"param\");return[\"catch \",a?[\"(\",f([E,p]),E,\") \"]:[\"(\",p,\") \"],r(\"body\")]}return[\"catch \",r(\"body\")];case\"SwitchStatement\":return[l([\"switch (\",f([E,r(\"discriminant\")]),E,\")\"]),\" {\",s.cases.length>0?f([F,b(F,e.map(({node:a,isLast:p})=>[r(),!p&&pe(a,t)?F:\"\"],\"cases\"))]):\"\",F,\"}\"];case\"SwitchCase\":{s.test?i.push(\"case \",r(\"test\"),\":\"):i.push(\"default:\"),d(s,h.Dangling)&&i.push(\" \",J(e,t));let a=s.consequent.filter(p=>p.type!==\"EmptyStatement\");if(a.length>0){let p=Dr(e,t,r,\"consequent\");i.push(a.length===1&&a[0].type===\"BlockStatement\"?[\" \",p]:f([F,p]))}return i}case\"DebuggerStatement\":return[\"debugger\",u];case\"ClassDeclaration\":case\"ClassExpression\":return Tn(e,t,r);case\"ClassMethod\":case\"ClassPrivateMethod\":case\"MethodDefinition\":return dn(e,t,r);case\"ClassProperty\":case\"PropertyDefinition\":case\"ClassPrivateProperty\":case\"ClassAccessorProperty\":case\"AccessorProperty\":return xn(e,t,r);case\"TemplateElement\":return Ie(s.value.raw);case\"TemplateLiteral\":return Wr(e,r,t);case\"TaggedTemplateExpression\":return Xu(e,r);case\"PrivateIdentifier\":return[\"#\",s.name];case\"PrivateName\":return[\"#\",r(\"id\")];case\"TopicReference\":return\"%\";case\"ArgumentPlaceholder\":return\"?\";case\"ModuleExpression\":return[\"module \",r(\"body\")];case\"InterpreterDirective\":default:throw new Me(s,\"ESTree\")}}function Sn(e,t,r){let{parent:n,node:s,key:u}=e,i=[r(\"expression\")];switch(s.type){case\"AsConstExpression\":i.push(\" as const\");break;case\"AsExpression\":case\"TSAsExpression\":i.push(\" as \",r(\"typeAnnotation\"));break;case\"SatisfiesExpression\":case\"TSSatisfiesExpression\":i.push(\" satisfies \",r(\"typeAnnotation\"));break}return u===\"callee\"&&L(n)||u===\"object\"&&W(n)?l([f([E,...i]),E]):i}function xa(e,t,r){let{node:n}=e,s=[K(e),\"component\"];n.id&&s.push(\" \",r(\"id\")),s.push(r(\"typeParameters\"));let u=$l(e,r,t);return n.rendersType?s.push(l([u,\" \",r(\"rendersType\")])):s.push(l([u])),n.body&&s.push(\" \",r(\"body\")),t.semi&&n.type===\"DeclareComponent\"&&s.push(\";\"),s}function $l(e,t,r){let{node:n}=e,s=n.params;if(n.rest&&(s=[...s,n.rest]),s.length===0)return[\"(\",J(e,r,{filter:i=>ge(r.originalText,k(i))===\")\"}),\")\"];let u=[];return Ql(e,(i,a)=>{let p=a===s.length-1;p&&n.rest&&u.push(\"...\"),u.push(t()),!p&&(u.push(\",\"),pe(s[a],r)?u.push(F,F):u.push(x))}),[\"(\",f([E,...u]),B(ae(r,\"all\")&&!Kl(n,s)?\",\":\"\"),E,\")\"]}function Kl(e,t){var r;return e.rest||((r=_(!1,t,-1))==null?void 0:r.type)===\"RestElement\"}function Ql(e,t){let{node:r}=e,n=0,s=u=>t(u,n++);e.each(s,\"params\"),r.rest&&e.call(s,\"rest\")}function ha(e,t,r){let{node:n}=e;return n.shorthand?r(\"local\"):[r(\"name\"),\" as \",r(\"local\")]}function ga(e,t,r){let{node:n}=e,s=[];return n.name&&s.push(r(\"name\"),n.optional?\"?: \":\": \"),s.push(r(\"typeAnnotation\")),s}function Sa(e,t,r){return ht(e,r,t)}function Bn(e,t){let{node:r}=e,n=t(\"id\");r.computed&&(n=[\"[\",n,\"]\"]);let s=\"\";return r.initializer&&(s=t(\"initializer\")),r.init&&(s=t(\"init\")),s?[n,\" = \",s]:n}function Ba(e,t,r){let{node:n}=e,s;if(n.type===\"EnumSymbolBody\"||n.explicitType)switch(n.type){case\"EnumBooleanBody\":s=\"boolean\";break;case\"EnumNumberBody\":s=\"number\";break;case\"EnumBigIntBody\":s=\"bigint\";break;case\"EnumStringBody\":s=\"string\";break;case\"EnumSymbolBody\":s=\"symbol\";break}return[s?`of ${s} `:\"\",Sa(e,t,r)]}function bn(e,t,r){let{node:n}=e;return[K(e),n.const?\"const \":\"\",\"enum \",t(\"id\"),\" \",n.type===\"TSEnumDeclaration\"?Sa(e,t,r):t(\"body\")]}function Pa(e,t,r){let{node:n}=e,s=[\"hook\"];n.id&&s.push(\" \",r(\"id\"));let u=Je(e,r,t,!1,!0),i=$t(e,r),a=at(n,i);return s.push(l([a?l(u):u,i]),n.body?\" \":\"\",r(\"body\")),s}function ka(e,t,r){let{node:n}=e,s=[K(e),\"hook\"];return n.id&&s.push(\" \",r(\"id\")),t.semi&&s.push(\";\"),s}function ba(e){var r;let{node:t}=e;return t.type===\"HookTypeAnnotation\"&&((r=e.getParentNode(2))==null?void 0:r.type)===\"DeclareHook\"}function Ia(e,t,r){let{node:n}=e,s=[];s.push(ba(e)?\"\":\"hook \");let u=Je(e,r,t,!1,!0),i=[];return i.push(ba(e)?\": \":\" => \",r(\"returnType\")),at(n,i)&&(u=l(u)),s.push(u,i),l(s)}function Pn(e,t,r){let{node:n}=e,s=[K(e),\"interface\"],u=[],i=[];n.type!==\"InterfaceTypeAnnotation\"&&u.push(\" \",r(\"id\"),r(\"typeParameters\"));let a=n.typeParameters&&!d(n.typeParameters,h.Trailing|h.Line);return O(n.extends)&&i.push(a?B(\" \",x,{groupId:fr(n.typeParameters)}):x,\"extends \",(n.extends.length===1?yu:f)(b([\",\",x],e.map(r,\"extends\")))),d(n.id,h.Trailing)||O(n.extends)?a?s.push(l([...u,f(i)])):s.push(l(f([...u,...i]))):s.push(...u,...i),s.push(\" \",r(\"body\")),l(s)}function La(e,t,r){let{node:n}=e;if(Sr(n))return n.type.slice(0,-14).toLowerCase();let s=t.semi?\";\":\"\";switch(n.type){case\"ComponentDeclaration\":case\"DeclareComponent\":case\"ComponentTypeAnnotation\":return xa(e,t,r);case\"ComponentParameter\":return ha(e,t,r);case\"ComponentTypeParameter\":return ga(e,t,r);case\"HookDeclaration\":return Pa(e,t,r);case\"DeclareHook\":return ka(e,t,r);case\"HookTypeAnnotation\":return Ia(e,t,r);case\"DeclareClass\":return Tn(e,t,r);case\"DeclareFunction\":return[K(e),\"function \",r(\"id\"),r(\"predicate\"),s];case\"DeclareModule\":return[\"declare module \",r(\"id\"),\" \",r(\"body\")];case\"DeclareModuleExports\":return[\"declare module.exports\",N(e,r),s];case\"DeclareNamespace\":return[\"declare namespace \",r(\"id\"),\" \",r(\"body\")];case\"DeclareVariable\":return[K(e),n.kind??\"var\",\" \",r(\"id\"),s];case\"DeclareExportDeclaration\":case\"DeclareExportAllDeclaration\":return gn(e,t,r);case\"DeclareOpaqueType\":case\"OpaqueType\":return Ri(e,t,r);case\"DeclareTypeAlias\":case\"TypeAlias\":return Qr(e,t,r);case\"IntersectionTypeAnnotation\":return zr(e,t,r);case\"UnionTypeAnnotation\":return Zr(e,t,r);case\"ConditionalTypeAnnotation\":return Kt(e,t,r);case\"InferTypeAnnotation\":return rn(e,t,r);case\"FunctionTypeAnnotation\":return en(e,t,r);case\"TupleTypeAnnotation\":return Vt(e,t,r);case\"TupleTypeLabeledElement\":return sn(e,t,r);case\"TupleTypeSpreadElement\":return nn(e,t,r);case\"GenericTypeAnnotation\":return[r(\"id\"),Lt(e,t,r,\"typeParameters\")];case\"IndexedAccessType\":case\"OptionalIndexedAccessType\":return tn(e,t,r);case\"TypeAnnotation\":return un(e,t,r);case\"TypeParameter\":return An(e,t,r);case\"TypeofTypeAnnotation\":return on(e,r);case\"ExistsTypeAnnotation\":return\"*\";case\"ArrayTypeAnnotation\":return an(r);case\"DeclareEnum\":case\"EnumDeclaration\":return bn(e,r,t);case\"EnumBooleanBody\":case\"EnumNumberBody\":case\"EnumBigIntBody\":case\"EnumStringBody\":case\"EnumSymbolBody\":return Ba(e,r,t);case\"EnumBooleanMember\":case\"EnumNumberMember\":case\"EnumBigIntMember\":case\"EnumStringMember\":case\"EnumDefaultedMember\":return Bn(e,r);case\"FunctionTypeParam\":{let u=n.name?r(\"name\"):e.parent.this===n?\"this\":\"\";return[u,$(e),u?\": \":\"\",r(\"typeAnnotation\")]}case\"DeclareInterface\":case\"InterfaceDeclaration\":case\"InterfaceTypeAnnotation\":return Pn(e,t,r);case\"ClassImplements\":case\"InterfaceExtends\":return[r(\"id\"),r(\"typeParameters\")];case\"NullableTypeAnnotation\":return[\"?\",r(\"typeAnnotation\")];case\"Variance\":{let{kind:u}=n;return vt.ok(u===\"plus\"||u===\"minus\"),u===\"plus\"?\"+\":\"-\"}case\"KeyofTypeAnnotation\":return[\"keyof \",r(\"argument\")];case\"ObjectTypeCallProperty\":return[n.static?\"static \":\"\",r(\"value\")];case\"ObjectTypeMappedTypeProperty\":return Qi(e,t,r);case\"ObjectTypeIndexer\":return[n.static?\"static \":\"\",n.variance?r(\"variance\"):\"\",\"[\",r(\"id\"),n.id?\": \":\"\",r(\"key\"),\"]: \",r(\"value\")];case\"ObjectTypeProperty\":{let u=\"\";return n.proto?u=\"proto \":n.static&&(u=\"static \"),[u,n.kind!==\"init\"?n.kind+\" \":\"\",n.variance?r(\"variance\"):\"\",Et(e,t,r),$(e),bt(n)?\"\":\": \",r(\"value\")]}case\"ObjectTypeAnnotation\":return ht(e,t,r);case\"ObjectTypeInternalSlot\":return[n.static?\"static \":\"\",\"[[\",r(\"id\"),\"]]\",$(e),n.method?\"\":\": \",r(\"value\")];case\"ObjectTypeSpreadProperty\":return ln(e,r);case\"QualifiedTypeofIdentifier\":case\"QualifiedTypeIdentifier\":return[r(\"qualification\"),\".\",r(\"id\")];case\"NullLiteralTypeAnnotation\":return\"null\";case\"BooleanLiteralTypeAnnotation\":return String(n.value);case\"StringLiteralTypeAnnotation\":return Ie(Ze(fe(n),t));case\"NumberLiteralTypeAnnotation\":return ft(n.raw??n.extra.raw);case\"BigIntLiteralTypeAnnotation\":return hn(n.raw??n.extra.raw);case\"TypeCastExpression\":return[\"(\",r(\"expression\"),N(e,r),\")\"];case\"TypePredicate\":return pn(e,r);case\"TypeOperator\":return[n.operator,\" \",r(\"typeAnnotation\")];case\"TypeParameterDeclaration\":case\"TypeParameterInstantiation\":return Lt(e,t,r,\"params\");case\"InferredPredicate\":case\"DeclaredPredicate\":return[e.key===\"predicate\"&&e.parent.type!==\"DeclareFunction\"&&!e.parent.returnType?\": \":\" \",\"%checks\",...n.type===\"DeclaredPredicate\"?[\"(\",r(\"value\"),\")\"]:[]];case\"AsExpression\":case\"AsConstExpression\":case\"SatisfiesExpression\":return Sn(e,t,r)}}function wa(e,t,r){var i;let{node:n}=e;if(!n.type.startsWith(\"TS\"))return;if(Br(n))return n.type.slice(2,-7).toLowerCase();let s=t.semi?\";\":\"\",u=[];switch(n.type){case\"TSThisType\":return\"this\";case\"TSTypeAssertion\":{let a=!(X(n.expression)||se(n.expression)),p=l([\"<\",f([E,r(\"typeAnnotation\")]),E,\">\"]),o=[B(\"(\"),f([E,r(\"expression\")]),E,B(\")\")];return a?Ke([[p,r(\"expression\")],[p,l(o,{shouldBreak:!0})],[p,r(\"expression\")]]):l([p,r(\"expression\")])}case\"TSDeclareFunction\":return Dn(e,r,t);case\"TSExportAssignment\":return[\"export = \",r(\"expression\"),s];case\"TSModuleBlock\":return Fn(e,t,r);case\"TSInterfaceBody\":case\"TSTypeLiteral\":return ht(e,t,r);case\"TSTypeAliasDeclaration\":return Qr(e,t,r);case\"TSQualifiedName\":return[r(\"left\"),\".\",r(\"right\")];case\"TSAbstractMethodDefinition\":case\"TSDeclareMethod\":return dn(e,t,r);case\"TSAbstractAccessorProperty\":case\"TSAbstractPropertyDefinition\":return xn(e,t,r);case\"TSInterfaceHeritage\":case\"TSClassImplements\":case\"TSExpressionWithTypeArguments\":case\"TSInstantiationExpression\":return[r(\"expression\"),r(n.typeArguments?\"typeArguments\":\"typeParameters\")];case\"TSTemplateLiteralType\":return Wr(e,r,t);case\"TSNamedTupleMember\":return sn(e,t,r);case\"TSRestType\":return nn(e,t,r);case\"TSOptionalType\":return[r(\"typeAnnotation\"),\"?\"];case\"TSInterfaceDeclaration\":return Pn(e,t,r);case\"TSTypeParameterDeclaration\":case\"TSTypeParameterInstantiation\":return Lt(e,t,r,\"params\");case\"TSTypeParameter\":return An(e,t,r);case\"TSAsExpression\":case\"TSSatisfiesExpression\":return Sn(e,t,r);case\"TSArrayType\":return an(r);case\"TSPropertySignature\":return[n.readonly?\"readonly \":\"\",Et(e,t,r),$(e),N(e,r)];case\"TSParameterProperty\":return[Nt(n),n.static?\"static \":\"\",n.override?\"override \":\"\",n.readonly?\"readonly \":\"\",r(\"parameter\")];case\"TSTypeQuery\":return on(e,r);case\"TSIndexSignature\":{let a=n.parameters.length>1?B(ae(t)?\",\":\"\"):\"\",p=l([f([E,b([\", \",E],e.map(r,\"parameters\"))]),a,E]),o=e.parent.type===\"ClassBody\"&&e.key===\"body\";return[o&&n.static?\"static \":\"\",n.readonly?\"readonly \":\"\",\"[\",n.parameters?p:\"\",\"]\",N(e,r),o?s:\"\"]}case\"TSTypePredicate\":return pn(e,r);case\"TSNonNullExpression\":return[r(\"expression\"),\"!\"];case\"TSImportType\":return[\"import(\",r(\"argument\"),\")\",n.qualifier?[\".\",r(\"qualifier\")]:\"\",Lt(e,t,r,n.typeArguments?\"typeArguments\":\"typeParameters\")];case\"TSLiteralType\":return r(\"literal\");case\"TSIndexedAccessType\":return tn(e,t,r);case\"TSTypeOperator\":return[n.operator,\" \",r(\"typeAnnotation\")];case\"TSMappedType\":return zi(e,t,r);case\"TSMethodSignature\":{let a=n.kind&&n.kind!==\"method\"?`${n.kind} `:\"\";u.push(Nt(n),a,n.computed?\"[\":\"\",r(\"key\"),n.computed?\"]\":\"\",$(e));let p=Je(e,r,t,!1,!0),o=n.returnType?\"returnType\":\"typeAnnotation\",m=n[o],y=m?N(e,r,o):\"\",D=at(n,y);return u.push(D?l(p):p),m&&u.push(l(y)),l(u)}case\"TSNamespaceExportDeclaration\":return[\"export as namespace \",r(\"id\"),t.semi?\";\":\"\"];case\"TSEnumDeclaration\":return bn(e,r,t);case\"TSEnumMember\":return Bn(e,r);case\"TSImportEqualsDeclaration\":return[n.isExport?\"export \":\"\",\"import \",ks(n,!1),r(\"id\"),\" = \",r(\"moduleReference\"),t.semi?\";\":\"\"];case\"TSExternalModuleReference\":return[\"require(\",r(\"expression\"),\")\"];case\"TSModuleDeclaration\":{let{parent:a}=e,p=a.type===\"TSModuleDeclaration\",o=((i=n.body)==null?void 0:i.type)===\"TSModuleDeclaration\";return p?u.push(\".\"):(u.push(K(e)),n.kind!==\"global\"&&u.push(n.kind,\" \")),u.push(r(\"id\")),o?u.push(r(\"body\")):n.body?u.push(\" \",l(r(\"body\"))):u.push(s),u}case\"TSConditionalType\":return Kt(e,t,r);case\"TSInferType\":return rn(e,t,r);case\"TSIntersectionType\":return zr(e,t,r);case\"TSUnionType\":return Zr(e,t,r);case\"TSFunctionType\":case\"TSCallSignatureDeclaration\":case\"TSConstructorType\":case\"TSConstructSignatureDeclaration\":return en(e,t,r);case\"TSTupleType\":return Vt(e,t,r);case\"TSTypeReference\":return[r(\"typeName\"),Lt(e,t,r,n.typeArguments?\"typeArguments\":\"typeParameters\")];case\"TSTypeAnnotation\":return un(e,t,r);case\"TSEmptyBodyFunctionExpression\":return fn(e,t,r);case\"TSJSDocAllType\":return\"*\";case\"TSJSDocUnknownType\":return\"?\";case\"TSJSDocNullableType\":return Ts(e,r,\"?\");case\"TSJSDocNonNullableType\":return Ts(e,r,\"!\");case\"TSParenthesizedType\":default:throw new Me(n,\"TypeScript\")}}function zl(e,t,r,n){if(Hr(e))return li(e,t);for(let s of[di,Fi,La,wa,da]){let u=s(e,t,r,n);if(u!==void 0)return u}}var Zl=v([\"ClassMethod\",\"ClassPrivateMethod\",\"ClassProperty\",\"ClassAccessorProperty\",\"AccessorProperty\",\"TSAbstractAccessorProperty\",\"PropertyDefinition\",\"TSAbstractPropertyDefinition\",\"ClassPrivateProperty\",\"MethodDefinition\",\"TSAbstractMethodDefinition\",\"TSDeclareMethod\"]);function em(e,t,r,n){var y;e.isRoot&&((y=t.__onHtmlBindingRoot)==null||y.call(t,e.node,t));let s=zl(e,t,r,n);if(!s)return\"\";let{node:u}=e;if(Zl(u))return s;let i=O(u.decorators),a=hi(e,t,r),p=u.type===\"ClassExpression\";if(i&&!p)return or(s,D=>l([a,D]));let o=Be(e,t),m=ia(e,t);return!a&&!o&&!m?s:or(s,D=>[m?\";\":\"\",o?\"(\":\"\",o&&p&&i?[f([x,a,D]),x]:[a,D],o?\")\":\"\"])}var Oa=em;var tm={avoidAstMutation:!0};var _a=[{linguistLanguageId:174,name:\"JSON.stringify\",type:\"data\",color:\"#292929\",tmScope:\"source.json\",aceMode:\"json\",codemirrorMode:\"javascript\",codemirrorMimeType:\"application/json\",aliases:[\"geojson\",\"jsonl\",\"topojson\"],extensions:[\".importmap\"],filenames:[\"package.json\",\"package-lock.json\",\"composer.json\"],parsers:[\"json-stringify\"],vscodeLanguageIds:[\"json\"]},{linguistLanguageId:174,name:\"JSON\",type:\"data\",color:\"#292929\",tmScope:\"source.json\",aceMode:\"json\",codemirrorMode:\"javascript\",codemirrorMimeType:\"application/json\",aliases:[\"geojson\",\"jsonl\",\"topojson\"],extensions:[\".json\",\".4DForm\",\".4DProject\",\".avsc\",\".geojson\",\".gltf\",\".har\",\".ice\",\".JSON-tmLanguage\",\".mcmeta\",\".tfstate\",\".tfstate.backup\",\".topojson\",\".webapp\",\".webmanifest\",\".yy\",\".yyp\"],filenames:[\".all-contributorsrc\",\".arcconfig\",\".auto-changelog\",\".c8rc\",\".htmlhintrc\",\".imgbotconfig\",\".nycrc\",\".tern-config\",\".tern-project\",\".watchmanconfig\",\"Pipfile.lock\",\"composer.lock\",\"flake.lock\",\"mcmod.info\",\".babelrc\",\".jscsrc\",\".jshintrc\",\".jslintrc\",\".swcrc\"],parsers:[\"json\"],vscodeLanguageIds:[\"json\"]},{linguistLanguageId:423,name:\"JSON with Comments\",type:\"data\",color:\"#292929\",group:\"JSON\",tmScope:\"source.js\",aceMode:\"javascript\",codemirrorMode:\"javascript\",codemirrorMimeType:\"text/javascript\",aliases:[\"jsonc\"],extensions:[\".jsonc\",\".code-snippets\",\".code-workspace\",\".sublime-build\",\".sublime-commands\",\".sublime-completions\",\".sublime-keymap\",\".sublime-macro\",\".sublime-menu\",\".sublime-mousemap\",\".sublime-project\",\".sublime-settings\",\".sublime-theme\",\".sublime-workspace\",\".sublime_metrics\",\".sublime_session\"],filenames:[],parsers:[\"jsonc\"],vscodeLanguageIds:[\"jsonc\"]},{linguistLanguageId:175,name:\"JSON5\",type:\"data\",color:\"#267CB9\",extensions:[\".json5\"],tmScope:\"source.js\",aceMode:\"javascript\",codemirrorMode:\"javascript\",codemirrorMimeType:\"application/json\",parsers:[\"json5\"],vscodeLanguageIds:[\"json5\"]}];var Os={};Ar(Os,{getVisitorKeys:()=>va,massageAstNode:()=>Ra,print:()=>sm});var rm={JsonRoot:[\"node\"],ArrayExpression:[\"elements\"],ObjectExpression:[\"properties\"],ObjectProperty:[\"key\",\"value\"],UnaryExpression:[\"argument\"],NullLiteral:[],BooleanLiteral:[],StringLiteral:[],NumericLiteral:[],Identifier:[],TemplateLiteral:[\"quasis\"],TemplateElement:[]},ja=rm;var nm=hr(ja),va=nm;function sm(e,t,r){let{node:n}=e;switch(n.type){case\"JsonRoot\":return[r(\"node\"),F];case\"ArrayExpression\":{if(n.elements.length===0)return\"[]\";let s=e.map(()=>e.node===null?\"null\":r(),\"elements\");return[\"[\",f([F,b([\",\",F],s)]),F,\"]\"]}case\"ObjectExpression\":return n.properties.length===0?\"{}\":[\"{\",f([F,b([\",\",F],e.map(r,\"properties\"))]),F,\"}\"];case\"ObjectProperty\":return[r(\"key\"),\": \",r(\"value\")];case\"UnaryExpression\":return[n.operator===\"+\"?\"\":n.operator,r(\"argument\")];case\"NullLiteral\":return\"null\";case\"BooleanLiteral\":return n.value?\"true\":\"false\";case\"StringLiteral\":return JSON.stringify(n.value);case\"NumericLiteral\":return Ma(e)?JSON.stringify(String(n.value)):JSON.stringify(n.value);case\"Identifier\":return Ma(e)?JSON.stringify(n.name):n.name;case\"TemplateLiteral\":return r([\"quasis\",0]);case\"TemplateElement\":return JSON.stringify(n.value.cooked);default:throw new Me(n,\"JSON\")}}function Ma(e){return e.key===\"key\"&&e.parent.type===\"ObjectProperty\"}var um=new Set([\"start\",\"end\",\"extra\",\"loc\",\"comments\",\"leadingComments\",\"trailingComments\",\"innerComments\",\"errors\",\"range\",\"tokens\"]);function Ra(e,t){let{type:r}=e;if(r===\"ObjectProperty\"){let{key:n}=e;n.type===\"Identifier\"?t.key={type:\"StringLiteral\",value:n.name}:n.type===\"NumericLiteral\"&&(t.key={type:\"StringLiteral\",value:String(n.value)});return}if(r===\"UnaryExpression\"&&e.operator===\"+\")return t.argument;if(r===\"ArrayExpression\"){for(let[n,s]of e.elements.entries())s===null&&t.elements.splice(n,0,{type:\"NullLiteral\"});return}if(r===\"TemplateLiteral\")return{type:\"StringLiteral\",value:e.quasis[0].value.cooked}}Ra.ignoredProperties=um;var Er={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var wt=\"JavaScript\",im={arrowParens:{category:wt,type:\"choice\",default:\"always\",description:\"Include parentheses around a sole arrow function parameter.\",choices:[{value:\"always\",description:\"Always include parens. Example: `(x) => x`\"},{value:\"avoid\",description:\"Omit parens when possible. Example: `x => x`\"}]},bracketSameLine:Er.bracketSameLine,bracketSpacing:Er.bracketSpacing,jsxBracketSameLine:{category:wt,type:\"boolean\",description:\"Put > on the last line instead of at a new line.\",deprecated:\"2.4.0\"},semi:{category:wt,type:\"boolean\",default:!0,description:\"Print semicolons.\",oppositeDescription:\"Do not print semicolons, except at the beginning of lines which may need them.\"},experimentalTernaries:{category:wt,type:\"boolean\",default:!1,description:\"Use curious ternaries, with the question mark after the condition.\",oppositeDescription:\"Default behavior of ternaries; keep question marks on the same line as the consequent.\"},singleQuote:Er.singleQuote,jsxSingleQuote:{category:wt,type:\"boolean\",default:!1,description:\"Use single quotes in JSX.\"},quoteProps:{category:wt,type:\"choice\",default:\"as-needed\",description:\"Change when properties in objects are quoted.\",choices:[{value:\"as-needed\",description:\"Only add quotes around object properties where required.\"},{value:\"consistent\",description:\"If at least one property in an object requires quotes, quote all properties.\"},{value:\"preserve\",description:\"Respect the input use of quotes in object properties.\"}]},trailingComma:{category:wt,type:\"choice\",default:\"all\",description:\"Print trailing commas wherever possible when multi-line.\",choices:[{value:\"all\",description:\"Trailing commas wherever possible (including function arguments).\"},{value:\"es5\",description:\"Trailing commas where valid in ES5 (objects, arrays, etc.)\"},{value:\"none\",description:\"No trailing commas.\"}]},singleAttributePerLine:Er.singleAttributePerLine},Ja=im;var am={estree:ws,\"estree-json\":Os},om=[...Us,..._a];var rx=_s;export{rx as default,om as languages,Ja as options,am as printers};\n", "var jE0=Object.create;var iO=Object.defineProperty;var CE0=Object.getOwnPropertyDescriptor;var OE0=Object.getOwnPropertyNames;var DE0=Object.getPrototypeOf,FE0=Object.prototype.hasOwnProperty;var RE0=(o0,vx)=>()=>(vx||o0((vx={exports:{}}).exports,vx),vx.exports),HY=(o0,vx)=>{for(var $x in vx)iO(o0,$x,{get:vx[$x],enumerable:!0})},LE0=(o0,vx,$x,Pr)=>{if(vx&&typeof vx==\"object\"||typeof vx==\"function\")for(let lr of OE0(vx))!FE0.call(o0,lr)&&lr!==$x&&iO(o0,lr,{get:()=>vx[lr],enumerable:!(Pr=CE0(vx,lr))||Pr.enumerable});return o0};var ME0=(o0,vx,$x)=>($x=o0!=null?jE0(DE0(o0)):{},LE0(vx||!o0||!o0.__esModule?iO($x,\"default\",{value:o0,enumerable:!0}):$x,o0));var ZY=RE0(fO=>{(function(o0){typeof globalThis!=\"object\"&&(this?vx():(o0.defineProperty(o0.prototype,\"_T_\",{configurable:!0,get:vx}),_T_));function vx(){var $x=this||self;$x.globalThis=$x,delete o0.prototype._T_}})(Object);(function(o0){\"use strict\";var vx=\"loc\",$x=70416,Pr=69748,lr=163,Ir=92159,L2=43587,ne=\"labeled_statement\",kO=\"&=\",Ks=\"int_of_string\",nd=110591,ud=92909,F4=11559,mO=\"regexp\",id=43301,R4=11703,fd=122654,Js=255,hO=\"%ni\",cd=68252,dO=232,sd=42785,Nn=\"declare_variable\",L4=\"while\",ad=66938,od=70301,vd=124907,M4=126515,yO=218,jn=\"pattern_identifier\",ld=67643,Cn=\"export_source\",pd=216,kd=64279,gO=\"Out_of_memory\",md=113788,wO=\"comments\",hd=126624,_O=\"win32\",On=\"object_key_bigint_literal\",bO=185,q4=123214,Ro=\"constructor\",dd=69955,Dn=\"import_declaration\",yd=68437,gd=\"Failure\",U4=\"Unix.Unix_error\",wd=64255,_d=42539,bd=110579,Fn=\"export_default_declaration\",Rn=\"jsx_attribute_name\",B4=11727,Td=43002,X4=126500,Ln=\"component_param_pattern\",TO=\"collect_comments_opt\",Mn=\"match_unary_pattern\",qn=\"keyof_type\",EO=\"Invalid binary/octal \",SO=\"range\",Ed=170,Gs=\"false\",Sd=43798,AO=\", characters \",Un=\"object_type_property_getter\",Ad=65547,Pd=126467,Id=65007,PO=\"guard\",Nd=42237,jd=8318,Cd=71215,Bn=\"object_property_type\",Xn=\"type_alias\",Od=67742,Yn=\"function_body\",Dd=68111,Y4=120745,Fd=71959,z4=43880,IO=\"Match_failure\",zn=\"type_cast\",st=109,Ws=\"void\",Rd=\"generator\",Ld=125124,Md=101589,K4=94179,NO=\">>>\",J4=70404,Kn=\"optional_indexed_access_type\",jO=310,y1=\"argument\",Jn=\"object_property\",Gn=\"object_type_property\",qd=67004,Ud=42783,Bd=68850,CO=\"@\",Xd=43741,Yd=43487,G4=\"object\",OO=\"end\",W4=126571,zd=71956,DO=208,Kd=126566,Jd=67702,FO=\"EEXIST\",Wn=\"this_expression\",Gd=203,Wd=11507,Vd=113807,V4=119893,$d=42735,Fl=\"rest\",Vn=\"null_literal\",Rl=\"protected\",Qd=43615,l1=8231,Hd=68149,Zd=73727,xy=72348,ry=92995,s3=224,ey=11686,ty=43013,$n=\"assignment_pattern\",ny=12329,Qn=\"function_type\",a3=192,Hn=\"jsx_element_name\",uy=70018,Zn=\"catch_clause_pattern\",$4=126540,x7=\"template_literal\",iy=120654,fy=68497,cy=67679,r7=\"readonly_type\",sy=68735,ay=\"<\",Q4=\": No such file or directory\",oy=66915,RO=\"!\",e7=\"object_type\",vy=43712,H4=64297,ly=183969,py=43503,ky=67591,Lo=65278,my=67669,t7=\"for_of_assignment_pattern\",Ll=\"`\",hy=11502,n7=\"catch_body\",LO=258,dy=42191,Ma=-744106340,yy=182,Mo=\":\",MO=\"a string\",gy=65663,wy=66978,_y=71947,Z4=43519,by=71086,Ty=125258,Ey=12538,u7=\"expression_or_spread\",qO=\"Printexc.handle_uncaught_exception\",xp=69956,rp=120122,ep=247,UO=231,Sy=\" : flags Open_rdonly and Open_wronly are not compatible\",i7=\"statement_fork_point\",BO=710,XO=-692038429,Re=\"static\",Ay=55203,Py=64324,Iy=64111,YO=\"!==\",Ny=120132,jy=124903,Ml=\"class\",zO=222,f7=\"pattern_number_literal\",Vs=\"kind\",Cy=71903,c7=\"variable_declarator\",s7=\"typeof_expression\",Oy=126627,Dy=70084,KO=228,tp=70480,a7=\"class_private_field\",Fy=239,np=120713,Zt=65535,o7=\"private_name\",Ry=43137,v7=\"remote_identifier\",Ly=70161,l7=\"label_identifier\",My=\"src/parser/statement_parser.ml\",qy=8335,Uy=19903,By=64310,qo=\"_\",p7=\"for_init_declaration\",JO=\"infer\",Xy=64466,Yy=43018,GO=\"tokens\",zy=92735,Ky=66954,Jy=65473,Gy=70285,k7=\"sequence\",Wy=\"compare: functional value\",Vy=69890,ql=1e3,$y=65487,Qy=42653,WO=\"\\\\\\\\\",VO=\"%=\",m7=\"match_member_pattern_base\",Hy=72367,h7=\"function_rest_param\",$O=\"/static/\",Zy=124911,x9=65276,up=126558,r9=11498,QO=137,d7=\"export_default_declaration_decl\",e9=\"cases\",ip=126602,y7=\"jsx_child\",Le=\"continue\",t9=42962,HO=\"importKind\",s2=122,o3=\"Literal\",g7=\"pattern_object_property_identifier_key\",n9=42508,qa=\"in\",u9=55238,i9=67071,f9=70831,c9=72161,s9=67462,ZO=\"<<=\",a9=43009,o9=66383,fp=67827,v9=72202,l9=69839,p9=66775,xD=\"-=\",Uo=8202,k9=70105,m9=120538,w7=\"for_in_left_declaration\",h9=\"rendersType\",cp=126563,d9=70708,sp=126523,rD=166,eD=202,y9=110951,$s=\"component\",ap=126552,g9=66977,tD=213,_7=\"enum_member_identifier\",nD=210,b7=\"enum_bigint_body\",uD=\">=\",w9=126495,_9=\"specifiers\",iD=-88,b9=\"=\",T9=65338,Ul=\"members\",fD=309,E9=123535,S9=43702,A9=72767,Bo=\"get\",P9=126633,op=126536,I9=94098,N9=\"types\",j9=113663,cD=\"Internal Error: Found private field in object props\",T7=\"jsx_element\",C9=70366,O9=110959,vp=120655,sD=\"trailingComments\",v3=24029,D9=-100,B1=\"yield\",E7=\"binding_pattern\",aD=275,S7=\"typeof_identifier\",oD=\"ENOTEMPTY\",F9=-104,lp=126468,R9=1255,L9=120628,A7=\"pattern_object_property_string_literal_key\",M9=8521,vD=\"leadingComments\",lD=8204,Ua=\"@ \",q9=70319,Qs=\"left\",U9=188,pp=\"case\",B9=19967,kp=42622,X9=43492,Y9=113770,z9=42774,K9=183,mp=8468,P7=\"class_implements\",hp=126579,l3=\"string\",J9=211,e1=-48,G9=69926,W9=123213,I7=\"if_consequent_statement\",V9=124927,p3=\"number\",$9=126546,Q9=68119,H9=70726,dp=70750,Z9=65489,pD=\"SpreadElement\",kD=\"callee\",mD=193,xg=70492,rg=71934,hD=164,eg=110580,tg=12320,dD=300,yp=\"any\",ue=\"/\",N7=\"type_guard\",I2=\"body\",yD=272,ng=178,_e=\"pattern\",gD=\"comment_bounds\",wD=297,j7=\"binding_type_identifier\",gp=187,C7=\"pattern_array_rest_element_pattern\",wp=\"@])\",ug=12543,ig=11623,_D=\"start\",fg=67871,ie=\"interface\",cg=8449,sg=67637,ag=42961,_p=120085,og=126463,bD=\"alternate\",TD=-1053382366,vg=70143,ED=\"--\",lg=68031,O7=\"jsx_expression\",D7=\"type_identifier_reference\",bp=11647,pg=\"proto\",Pt=\"identifier\",kg=43696,It=\"raw\",mg=126529,hg=11564,Tp=126557,dg=64911,Ep=67592,yg=43493,gg=215,wg=110588,Bl=461894857,_g=92927,bg=67861,Tg=119980,Eg=43042,Sg=66965,Ag=67391,k3=\"computed\",SD=\"unreachable jsxtext\",Pg=71167,Ig=42559,Ng=72966,AD=303,jg=180,PD=197,Sp=64319,Ap=169,ID=\"*\",Xo=129,Cg=66335,Xl=\"meta\",Og=43388,Pp=94178,at=\"optional\",Ip=\"unknown\",Dg=120121,Fg=123180,Np=8469,Rg=68220,ND=\"|\",Lg=43187,Mg=94207,qg=124895,jp=120513,Ug=42527,Yo=8286,Bg=94177,Yl=\"var\",F7=\"component_type_param\",Xg=66421,Yg=92991,zg=68415,R7=\"comment\",L7=\"match_pattern_array_element\",zo=244,Cp=\"^\",Kg=173791,jD=136,Jg=42890,Gg=\"ENOTDIR\",Wg=\"??\",Vg=43711,$g=66303,Qg=113800,Hg=42239,Zg=12703,M7=\"variance_opt\",q7=\"+\",CD=\">>>=\",Op=\"mixed\",xw=65613,rw=73029,ew=68191,OD=\"*=\",Dp=8487,tw=8477,U7=\"toplevel_statement_list\",Fp=\"never\",Rp=\"do\",Ba=125,nw=72249,DD=\"Pervasives.do_at_exit\",FD=\"visit_trailing_comment\",B7=\"jsx_closing_element\",X7=\"jsx_namespaced_name\",uw=124908,iw=126651,Y7=\"component_declaration\",fw=15,z7=\"interface_type\",K7=\"function_type_return_annotation\",cw=64109,Lp=65595,Mp=126560,sw=110927,qp=65598,Up=8488,Hs=\"`.\",RD=175,Bp=\"package\",Xp=\"else\",Yp=120771,aw=68023,LD=\"fd \",Ko=8238,zp=888960333,Kp=119965,ow=42655,J7=\"match_object_pattern\",vw=11710,lw=119993,G7=\"boolean_literal\",W7=\"statement_list\",V7=\"function_param\",$7=\"match_as_pattern\",Q7=\"pattern_object_property_bigint_literal_key\",Jp=69959,pw=120485,MD=240,kw=191456,H7=\"declare_enum\",Gp=120597,Wp=70281,Z7=\"type_annotation\",xu=\"spread_element\",Vp=126544,mw=120069,Xa=\"key\",hw=43583,dw=\"out\",yw=`\n`,qD=\"**=\",ru=\"pattern_object_property_pattern\",gw=\"e\",ww=72712,UD=\"Internal Error: Found object private prop\",_w=\"ENOENT\",bw=-42,eu=\"jsx_opening_attribute\",Tw=67646,tu=\"component_type\",Ew=64296,Sw=43887,BD=\"Division_by_zero\",XD=\"EnumDefaultedMember\",nu=\"typeof_member_identifier\",Aw=43792,uu=\"match_member_pattern_property\",iu=\"declare_export_declaration_decl\",Pw=93026,fu=\"type_annotation_hint\",Iw=42887,Nw=43881,jw=43761,$p=8526,YD=287,zl=119,Cw=43866,Ow=72847,Dw=8348,fe=101,Fw=94026,Qp=72272,zD=\"src/parser/flow_lexer.ml\",Rw=120744,Jo=8191,m3=\"implies\",Hp=255,Zp=11711,cu=\"match_unary_pattern_argument\",Lw=71235,xk=68116,y2=100,su=\"match_expression\",au=\"enum_body\",rk=1114111,ou=\"assignment\",Mw=71955,ek=43260,vu=\"pattern_array_e\",qw=126583,KD=\"prefix\",lu=\"class_body\",tk=\"shorthand\",Uw=171,Bw=66256,nk=-97,JD=\" =\",Xw=94032,Yw=42606,zw=71839,uk=120134,Kw=55291,Jw=92862,Gw=43019,Ww=126543,h3=\"function\",Vw=111355,$w=11389,Qw=70753,Hw=43249,Zw=64829,ik=\"line\",pu=\"function_declaration\",fk=\"undefined\",GD=\"([^/]+)\",x_=110947,r_=70002,WD=\"Cygwin\",ku=\"as_expression\",e_=12591,ck=64285,t_=2048,n_=73112,sk=126589,VD=225,ak=43259,$D=266,u_=72817,ok=64318,QD=172,HD=209,mu=\"match_binding_pattern\",hu=\" \",du=\"import_source\",Kl=\"delete\",ZD=\"Enum `\",vk=126553,i_=67001,Go=\"default\",f_=11630,c_=206,yu=\"enum_bigint_member\",s_=67504,lk=67593,a_=113791,o_=69572,gu=\"typeof_type\",xF=212,rF=\"%i\",wu=\"function_this_param\",v_=72329,Ya=\"0x\",Wo=8239,l_=75075,eF=277,tF=57343,_u=\"pattern_bigint_literal\",p_=12341,nF=201,Vo=\"hook\",uF=\": closedir failed\",k_=42959,pk=119970,m_=278,h_=43560,iF=\"||=\",bu=\"member_private_name\",d_=120570,Tu=\"object_key_identifier\",kk=223,fF=\"Not_found\",cF=230,Eu=\"jsx_element_name_member_expression\",Su=\"string_literal\",y_=120596,g_=43807,w_=69687,__=63743,mk=72192,Au=\"member_property\",b_=43262,Pu=\"class_declaration\",sF=\"renders*\",aF=\"%Li\",T_=126578,Iu=\"jsx_attribute\",d3=254,be=\"empty\",Jl=\"label\",Nu=\"object_internal_slot_property_type\",hk=120133,E_=43359,Me=\"predicate\",oF=\"??=\",S_=43697,A_=-43,ju=\"default_opt\",vF=\"the start of a statement\",P_=67826,Cu=\"object_\",Ou=\"class_element\",dk=11631,yk=70855,Du=\"opaque_type\",Fu=\"number_literal\",lF=\", \",gk=8319,wk=120004,_k=133,Ru=\"type_params\",Lu=\"pattern_object_rest_property\",X1=\"import\",I_=72e3,N_=67413,j_=12343,C_=70080,Mu=\"intersection_type\",p1=-36,O_=70005,bk=\"properties\",D_=11679,F_=8483,R_=110587,pF=43520,qu=\"computed_key\",kF=207,Uu=\"class_identifier\",L_=\"Invalid number \",Bu=\"function_param_pattern\",$o=12288,M_=113817,q_=70730,U_=178207,Tk=71236,mF=167,Xu=\"object_indexer_property_type\",B_=64286,hF=\"TypeAnnotation\",dF=220,Yu=\"type_identifier\",zu=\"spread_property\",Ku=\"jsx_attribute_value_expression\",X_=126519,Ek=70108,Sk=126,Ak=42999,za=\"prototype\",Y_=\" : flags Open_text and Open_binary are not compatible\",yF=\"**\",Pk=43823,z_=\": Not a directory\",Ju=\"render_type\",Ik=72349,y3=\"test\",K_=43776,J_=92879,G_=11263,gF=241,W_=93052,Gu=\"nullable_type\",V_=43704,$_=64321,wF=\"Property\",Q_=72191,_F=165,Gl=\"instanceof\",H_=69247,bF=302,qe=\"name\",Nk=126634,Z_=8516,jk=\"typeArguments\",xb=71127,Wu=\"jsx_spread_attribute\",rb=66559,eb=44031,tb=43645,t1=8233,nb=71494,ub=\"opaque\",Ck=72967,ib=70106,Vu=\"logical\",TF=\"@[%s =@ \",Wl=\"0o\",Ok=126554,fb=71351,Dk=8484,cb=72242,Fk=120687,g3=252,sb=183983,Vl=\"%S\",$u=\"function_this_param_type\",Rk=\"decorators\",ab=43255,Qu=\"catch_clause\",Ue=\"-\",ob=67711,EF=\": file descriptor already closed\",Lk=64311,Mk=120539,vb=\"arguments\",qk=73062,lb=173823,pb=42124,kb=72095,mb=125259,hb=42969,Uk=70280,SF=12520,db=69749,yb=70066,Hu=\"binary\",Zu=\"for_in_statement\",gb=43010,AF=\"^=\",wb=126570,xi=\"for_statement\",Bk=126584,ri=\"function_return_annotation\",_b=72144,bb=8505,ei=\"class_expression\",Tb=120076,Eb=69807,Sb=40981,Ab=-24976191,Pb=72768,Ib=126550,Xk='\"',ti=\"call_type_arg\",PF=\"f\",Qo=\"this\",Yk=126628,IF=\"===\",NF=56320,ni=\"declare_module_exports\",Nb=120512,ui=105,jb=119974,Cb=71450,Ob=71942,Db=195,zk=120629,jF=\"/=\",CF=\">>\",ii=\"declare_interface\",OF=4096,fi=\"pattern_array_rest_element\",Fb=71338,Kk=126520,ci=\"as_const_expression\",DF=\"Popping lex mode from empty stack\",FF=\"renders?\",Rb=68405,si=\"member\",ai=\"class_extends\",Ho=12287,Jk=126590,Lb=66377,Ka=\"async\",oi=\"pattern_array_element\",w3=240,Mb=69864,Zo=\"readonly\",qb=70460,Ub=120779,Bb=66378,vi=\"new_\",Gk=126551,li=\"pattern_object_rest_property_pattern\",pi=\"for_statement_init\",Xb=43595,RF=293,Wk=68296,Yb=120712,zb=64217,Kb=69295,LF=\"||\",Jb=\";\",Gb=70461,Wb=66939,MF=\"collect_comments\",Vb=279,ki=\"generic_type\",$b=68295,Qb=44002,Vk=72162,mi=\"object_call_property_type\",$k=8305,Qk=119995,Hk=\"with\",hi=\"class_property\",qF=\"qualification\",di=\"jsx_attribute_name_namespaced\",yi=\"if_statement\",gi=\"typeof_qualified_identifier\",UF=238,Hb=65615,BF=176,n1=\"expression\",Zk=126559,wi=\"jsx_attribute_value\",_i=\"<2>\",bi=\"component_param\",x8=\"Map.bal\",r8=132,Zb=70412,xT=70440,XF=\"<<\",e8=\"finally\",YF=\"v\",Ti=\"syntax_opt\",Ei=\"meta_property\",rT=12447,eT=67514,t8=12448,Si=\"object_mapped_type_property\",xv=\"operator\",zF=\"closedir\",Ai=\"unary_expression\",tT=126588,nT=70851,Pi=\"export_batch_specifier\",_3=\"renders\",KF=226,uT=73111,JF=221,Z0=\"\",iT=66927,fT=64967,cT=\"elements\",sT=67640,aT=43754,Ii=\"declare_export_declaration\",oT=-26065557,vT=65855,$l=\"boolean\",Zs=\"typeof\",lT=124902,GF=139,pT=65629,WF=224,kT=43123,n8=70449,mT=12735,K2=107,u8=11719,VF=\"!=\",Ni=\"call_type_args\",b3=\"asserts\",Ja=-46,hT=\"namespace\",ji=\"match_pattern\",Ci=\"for_of_statement_lhs\",i8=126504,dT=69505,f8=\"for\",yT=72703,c8=120127,s8=43471,gT=93047,$F=\"Undefined_recursive_module\",QF=2147483647,Oi=\"template_literal_element\",HF=\"Unexpected \",wT=101631,_T=65497,a8=68120,Di=\"import_default_specifier\",xn=\"array\",ZF=\"expressions\",bT=110930,xR=204,Fi=\"while_\",Ri=\"function_rest_param_type\",Ga=63,TT=77808,rR=\"Unexpected token `\",mr=114,Li=\"pattern_object_p\",ET=65140,ST=123190,Mi=\"pattern_object_property_number_literal_key\",Ql=\"enum\",qi=\"conditional_type\",Te=113,Ui=\"array_type\",eR=\"minus\",AT=43790,Bi=\"do_while\",PT=11567,IT=11694,Hl=256,NT=119976,Xi=\"component_body\",ce=111,jT=177976,tR=-56,o8=67644,CT=73439,Zl=951901561,nR=\"?\",uR=\")\",v8=43867,l8=65575,OT=69445,iR=\"FunctionTypeParam\",p8=119996,DT=65019,Yi=\"conditional\",FT=11505,fR=135,RT=71295,LT=12799,MT=67382,zi=\"type_guard_annotation\",Ki=\"object_key_computed\",rn=123,Ji=\"pattern_object_property_key\",qT=119892,UT=67505,BT=66962,Gi=\"with_\",XT=43273,Wi=\"interface_declaration\",k8=\"bool\",YT=71945,zT=\"declaration\",KT=11519,x6=\">\",JT=66771,m8=\"}\",cR=8472,GT=43014,Vi=\"declare_function\",Br=127,WT=\"RestElement\",sR=190,VT=8467,aR=\"module\",h8=126522,oR=\"Sys_blocked_io\",$i=\"jsx_opening_element\",Qi=\"object_key_number_literal\",vR=\"|=\",lR=\"mixins\",$T=205,pR=217,d8=\"if\",kR=\"+=\",Hi=\"match_object_pattern_property_key\",Zi=\"match_rest_pattern\",xf=\"export_named_declaration_specifier\",y8=\"try\",g8=\"_bigarr02\",QT=70479,en=\"right\",HT=245,ZT=11718,rf=\"tuple_labeled_element\",mR=\"TypeParameterInstantiation\",xE=\"mkdir\",rE=71999,eE=870530776,hR=\"@[\",dR=-908856609,yR=331416730,tE=11670,nE=66735,uE=43709,w8=43642,iE=67002,fE=69375,ef=\"function_body_any\",cE=119807,gR=\"Assert_failure\",tf=\"function_identifier\",sE=65479,r6=131,rv=\"new\",nf=\"for_of_left_declaration\",aE=120084,oE=100343,vE=73030,_8=70452,wR=134,lE=253,pE=42954,_R=227,uf=\"jsx_member_expression_object\",ff=\"class_property_value\",kE=120144,mE=66994,T3=\"set\",hE=126498,cf=\"tuple_element\",sf=\"arg_list\",dE=65481,yE=8511,gE=42964,wE=11492,E3=-25,b8=126555,_E=71039,bE=\"exportKind\",af=\"program\",TE=70187,bR=173,Nt=\"as\",S3=124,TR=\"visit_leading_comment\",EE=110575,of=\"class_\",SE=72440,AE=67897,ER=235,PE=8543,SR=141,vf=120,lf=\"match_object_pattern_property\",e6=1024,IE=101640,AR=1027,PR=236,A3=246,IR=\"(\",NE=66511,pf=\"regexp_literal\",jE=65574,CE=43513,OE=43695,NR=\"&&\",T8=11558,DE=66503,FE=93071,kf=\"pattern_expression\",RE=65381,E8=126538,LE=12292,mf=\"import_namespace_specifier\",hf=\"match_statement_case\",ME=67583,qE=120137,UE=69622,BE=120770,XE=71131,ev=8287,YE=110590,zE=65135,KE=\"Fatal error: exception \",P3=118,JE=181,S8=11687,k1=\"camlinternalFormat.ml\",GE=72959,WE=249,df=\"union_type\",jR=8206,VE=73064,$E=70271,QE=92728,A8=65344,P8=11695,yf=\"class_decorator\",HE=\"the end of an expression statement (`;`)\",ZE=177983,xS=8457,CR=931,rS=66499,eS=94175,OR=\"#\",DR=151,tS=\"Identifier\",gf=\"for_in_statement_lhs\",wf=\"pattern_string_literal\",I8=70302,N8=126496,nS=66461,uS=82943,j8=8450,iS=72271,fS=70853,cS=\"of\",FR=\"Stack_overflow\",t6=\"hasUnknownMembers\",n6=\"a\",_f=\"variable_declarator_pattern\",sS=73061,aS=77711,C8=64317,oS=73097,bf=\"enum_declaration\",vS=66966,O8=189,lS=119964,Tf=\"type_param\",jt=782176664,D8=65535,RR=-10,pS=64433,F8=43815,R8=94031,L8=73065,kS=69958,M8=\"property\",Ef=\"jsx_children\",Sf=\"member_property_identifier\",mS=42537,u6=\"const\",hS=70278,Af=\"enum_string_member\",i6=\"local\",Pf=\"jsx_element_name_identifier\",dS=68223,q8=\"\u0001\u0002\",yS=119967,U8=119994,gS=66993,If=\"jsx_member_expression_identifier\",B8=\"explicitType\",wS=67589,_S=65597,bS=\"exported\",TS=94111,ES=113775,Nf=\"object_spread_property_type\",SS=64847,jf=\"component_identifier\",Cf=\"class_implements_interface\",LR=162,MR=243,AS=12783,qR=`Fatal error: exception %s\n`,X8=120093,f6=\"column\",Of=\"component_rest_param\",PS=70451,IS=70312,NS=69967,Y8=70279,jS=66463,CS=92975,z8=70286,Df=\"pattern_object_property_computed_key\",Ff=\"object_key_string_literal\",OS=\"jsError\",Rf=\"type_args\",DS=8304,UR=\"==\",tv=115,Lf=\"declare_component\",FS=120092,RS=43638,LS=66811,MS=43334,qS=66863,US=77823,Mf=\"optional_call\",BS=126562,K8=70162,Be=104,XS=66963,nv=\"await\",J8=70107,Y1=\"0\",YS=72250,zS=8507,BR=291,KS=100351,G8=\"AssignmentPattern\",qf=\"type\",XR=\"%u\",Uf=\"function_expression_or_method\",JS=43470,YR=242,zR=\"camlinternalMod.ml\",Bf=\"match_or_pattern\",GS=72750,WS=69414,VS=65370,Xf=\"syntax\",KR=32752,$S=42963,JR=\"End_of_file\",QS=12294,HS=8471,GR=\"elementType\",ZS=43782,WR=\"++\",xA=43641,rA=71944,eA=126601,tA=78894,nA=-45,uv=\"null\",VR=177,$R=\"satisfies\",uA=131071,Yf=\"import_specifier\",zf=\"class_method\",Kf=\"type_\",iA=126514,fA=8454,QR=\"inexact\",cA=67807,sA=8525,aA=65470,oA=71352,Jf=\"tuple_spread_element\",vA=219,lA=\"abstract\",pA=73458,Xe=\"return\",c6=65536,W8=126548,Gf=\"array_element\",kA=-253313196,mA=186,V8=\"catch\",Wf=\"infer_type\",hA=12295,HR=\"Invalid legacy octal \",dA=69762,yA=43311,gA=65437,Vf=\"variable_declaration\",ZR=-696510241,$f=\"function_params\",xL=307,wA=64316,$8=11565,rL=\"infinity\",_A=\"@]\",bA=65908,Qf=\"extends\",TA=66204,EA=43784,SA=11742,Q8=126503,Ye=\"debugger\",AA=70457,xa=-86,s6=912068366,PA=68786,H8=\"keyof\",Z8=69415,IA=12686,tn=127343600,Hf=\"declare_type_alias\",eL=\"the\",tL=233,Zf=\"jsx_element_name_namespaced\",NA=72283,nL=161,xc=\"function_param_type\",Ct=128,jA=-673950933,xm=126591,uL=\"Sys_error\",CA=74649,OA=74862,a6=\"is\",DA=43738,FA=68479,iL=196,rm=70854,rc=\"enum_boolean_member\",ec=\"match_expression_case\",em=72163,RA=92783,fL=281,tc=\"component_param_name\",LA=68863,nn=32768,cL=2048,MA=64284,sL=\"@{\",qA=\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\",tm=8455,nc=\"update_expression\",UA=65500,o6=\"from\",BA=68447,nm=12592,XA=92766,aL=\">>=\",z1=110,YA=66431,zA=43586,uc=\"jsx_identifier\",KA=\" : file already exists\",M2=128,JA=71958,GA=66717,ic=\"enum_boolean_body\",WA=64262,Vr=\"id\",fc=\"component_renders_annotation\",VA=42888,$A=8584,QA=73008,cc=\"enum_symbol_body\",sc=\"declare_namespace\",um=72713,HA=55215,ac=\"object_property_value_type\",oc=\"for_in_assignment_pattern\",im=8485,ZA=43395,oL=229,ra=\"true\",xP=43743,vc=\"enum_number_member\",vL=234,rP=72969,lL=\"expected *\",g1=102,pL=200,v6=\"symbol\",iv=\"source\",eP=43714,lc=\"jsx_fragment\",pc=\"jsx_attribute_name_identifier\",l6=\"public\",tP=43442,kc=\"pattern_object_property\",nP=65786,uP=70783,iP=43713,fP=72160,kL=\"*-/\",mc=\"export_named_specifier\",hc=\"arrow_function\",cP=122623,fm=70006,mL=\"${\",sP=43814,dc=\"generic_qualified_identifier_type\",hL=199,yc=\"jsx_spread_child\",cm=8489,p6=184,dL=2047,aP=66955,gc=\"try_catch\",oP=70497,yL=237,vP=67431,lP=125183,gL=-602162310,un=\"params\",pP=\"consequent\",kP=68029,mP=67829,hP=68095,wc=\"enum_string_body\",dP=93823,yP=68351,gP=65495,_c=\"declare_module\",bc=\"body_expression\",wP=66175,wL=191,sm=70441,am=65141,om=\"&\",Tc=\"super_expression\",vm=126564,_P=72105,vS0=\"fs\",ze=\"throw\",bP=68287,TP=67839,Wa=116,EP=110882,SP=69404,AP=123197,fv=65279,I3=\"src/parser/type_parser.ml\",PP=68115,_L=259,lm=126547,pm=126556,IP=73055,Ec=\"member_property_expression\",Sc=\"enum_defaulted_member\",NP=43071,jP=11726,Ac=\"component_type_rest_param\",CP=68607,Pc=\"object_key\",bL=160,K1=\"variance\",OP=70655,DP=70414,N3=\"super\",FP=123583,RP=65594,k6=\"method\",LP=73648,m6=121,MP=93951,Ic=\"pattern_array_element_pattern\",qP=43764,UP=42993,km=120145,BP=74879,XP=168,mm=8486,YP=72001,Nc=\"tagged_template\",jc=\"module_ref_literal\",zP=65312,cv=\"implements\",KP=43700,JP=120003,TL=\"Invalid_argument\",Cc=16777215,GP=83526,hm=69744,dm=12336,Oc=\"switch_case\",EL=-61,Dc=\"optional_member\",WP=64274,ym=64322,gm=126530,VP=71998,wm=72970,$P=13311,QP=73647,HP=120074,j3=\"let\",Fc=\"expression_statement\",Rc=\"component_type_params\",ZP=512,xI=69634,rI=67461,eI=123627,tI=64913,SL=\"children\",AL=\"PropertyDefinition\",PL=1026,IL=\"%li\",Lc=\"declare_class\",nI=43258,Mc=\"indexed_access_type\",NL=157,uI=124926,ea=112,iI=\"b\",qc=\"predicate_expression\",Uc=\"if_alternate_statement\",h6=\"private\",jL=-594953737,CL=140,fI=\"nan\",cI=72103,_m=11735,Bc=\"statement\",sI=\"rmdir\",bm=66512,aI=\"match\",OL=198,oI=11734,Xc=\"import_named_specifier\",vI=69599,lI=68799,pI=194559,Yc=\"match_array_pattern\",DL=174,zc=\"function_\",Kc=\"bigint_literal\",n2=248,Tm=67638,Em=126539,kI=11557,FL=214,mI=5760,Ke=\"break\",fn=\"block\",Jc=\"match_member_pattern\",hI=123565,dI=66815,g2=\"value\",RL=1039100673,yI=69746,gI=70448,wI=74751,Gc=\"init\",_I=69551,Sm=65548,Wc=\"jsx_member_expression\",Am=68096,sv=108,Pm=126521,bI=71487,Vc=\"match_statement\",TI=178205,EI=12548,LL=\" : is a directory\",cn=\".\",SI=12348,C3=-835925911,J1=\"typeParameters\",AI=66855,u1=\"typeAnnotation\",av=\"bigint\",$c=\"jsx_attribute_value_literal\",PI=194,ML=\"T_JSX_TEXT\",II=68466,Im=126537,qL=67714067,NI=69487,UL=271,Nm=\"export\",jI=43822,jm=126499,CI=55242,Qc=\"member_type_identifier\",OI=138,DI=71679,d6=130,FI=12438,RI=119969,Cm=12539,LI=119972,BL=\",\",MI=71423,qI=\"index out of bounds\",Je=106,O3=\"%d\",XL=\"T_RENDERS_QUESTION\",Om=120571,Dm=\"returnType\",UI=69423,Fm=120070,YL=\"%\",y6=117,zL=179,BI=\"EBADF\",XI=93759,Rm=64325,Hc=\"component_params\",YI=66517,zI=67423,KI=605857695,JI=43518,KL=251,Zc=\"for_of_statement\",GI=71983,JL=\"~\",WI=12442,Ge=\"switch\",VI=66207,Lm=126535,GL=\"&&=\",$I=69289,QI=71723,xs=\"generic_identifier_type\",HI=126619,rs=\"object_type_property_setter\",ZI=70418,WL=\"<=\",xN=125251,rN=11702,es=\"enum_number_body\",D3=250,eN=124910,tN=69297,nN=67455,uN=42511,ts=\"ts_satisfies\",VL=286,iN=68324,Mm=\"an identifier\",fN=126534,sn=103,cN=120126,F3=449540197,g6=\"declare\",sN=68899,aN=126502,ns=\"function_expression\",$L=142,oN=123135,vN=67967,lN=120487,pN=120686,us=\"export_named_declaration\",kN=66348,qm=119981,mN=12352,is=\"tuple_type\",hN=68680,Um=\"target\",fs=\"call\";function dz(x,r,e,t,u){if(t<=r)for(var i=1;i<=u;i++)e[t+i]=x[r+i];else for(var i=u;i>=1;i--)e[t+i]=x[r+i];return 0}function yz(x){for(var r=[0];x!==0;){for(var e=x[1],t=1;tx.hi?1:this.hix.mi?1:this.mix.lo?1:this.loe?1:rx.mi?1:this.mix.lo?1:this.lo>24),e=-this.hi+(r>>24);return new er(x,r,e)},er.prototype.add=function(x){var r=this.lo+x.lo,e=this.mi+x.mi+(r>>24),t=this.hi+x.hi+(e>>24);return new er(r,e,t)},er.prototype.sub=function(x){var r=this.lo-x.lo,e=this.mi-x.mi+(r>>24),t=this.hi-x.hi+(e>>24);return new er(r,e,t)},er.prototype.mul=function(x){var r=this.lo*x.lo,e=(r*xM|0)+this.mi*x.lo+this.lo*x.mi,t=(e*xM|0)+this.hi*x.lo+this.mi*x.mi+this.lo*x.hi;return new er(r,e,t)},er.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0},er.prototype.isNeg=function(){return this.hi<<16<0},er.prototype.and=function(x){return new er(this.lo&x.lo,this.mi&x.mi,this.hi&x.hi)},er.prototype.or=function(x){return new er(this.lo|x.lo,this.mi|x.mi,this.hi|x.hi)},er.prototype.xor=function(x){return new er(this.lo^x.lo,this.mi^x.mi,this.hi^x.hi)},er.prototype.shift_left=function(x){return x=x&63,x==0?this:x<24?new er(this.lo<>24-x,this.hi<>24-x):x<48?new er(0,this.lo<>48-x):new er(0,0,this.lo<>x|this.mi<<24-x,this.mi>>x|this.hi<<24-x,this.hi>>x):x<48?new er(this.mi>>x-24|this.hi<<48-x,this.hi>>x-24,0):new er(this.hi>>x-48,0,0)},er.prototype.shift_right=function(x){if(x=x&63,x==0)return this;var r=this.hi<<16>>16;if(x<24)return new er(this.lo>>x|this.mi<<24-x,this.mi>>x|r<<24-x,this.hi<<16>>x>>>16);var e=this.hi<<16>>31;return x<48?new er(this.mi>>x-24|this.hi<<48-x,this.hi<<16>>x-24>>16,e&Zt):new er(this.hi<<16>>x-32,e,e)},er.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&Cc,this.lo=this.lo<<1&Cc},er.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&Cc,this.mi=(this.mi>>>1|this.hi<<23)&Cc,this.hi=this.hi>>>1},er.prototype.udivmod=function(x){for(var r=0,e=this.copy(),t=x.copy(),u=new er(0,0,0);e.ucompare(t)>0;)r++,t.lsl1();for(;r>=0;)r--,u.lsl1(),e.ucompare(t)>=0&&(u.lo++,e=e.sub(t)),t.lsr1();return{quotient:u,modulus:e}},er.prototype.div=function(x){var r=this;x.isZero()&&eM();var e=r.hi^x.hi;r.hi&nn&&(r=r.neg()),x.hi&nn&&(x=x.neg());var t=r.udivmod(x).quotient;return e&nn&&(t=t.neg()),t},er.prototype.mod=function(x){var r=this;x.isZero()&&eM();var e=r.hi;r.hi&nn&&(r=r.neg()),x.hi&nn&&(x=x.neg());var t=r.udivmod(x).modulus;return e&nn&&(t=t.neg()),t},er.prototype.toInt=function(){return this.lo|this.mi<<24},er.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo},er.prototype.toArray=function(){return[this.hi>>8,this.hi&Js,this.mi>>16,this.mi>>8&Js,this.mi&Js,this.lo>>16,this.lo>>8&Js,this.lo&Js]},er.prototype.lo32=function(){return this.lo|(this.mi&Js)<<24},er.prototype.hi32=function(){return this.mi>>>8&Zt|this.hi<<16};function Tz(x,r){return new er(x&Cc,x>>>24&Js|(r&Zt)<<8,r>>>16&Zt)}function gN(x){return x.hi32()}function wN(x){return x.lo32()}function w6(){i1(qI)}var Ez=g8;function Va(x,r,e,t){this.kind=x,this.layout=r,this.dims=e,this.data=t}Va.prototype.caml_custom=Ez,Va.prototype.offset=function(x){var r=0;if(typeof x==\"number\"&&(x=[x]),x instanceof Array||i1(\"bigarray.js: invalid offset\"),this.dims.length!=x.length&&i1(\"Bigarray.get/set: bad number of dimensions\"),this.layout==0)for(var e=0;e=this.dims[e])&&w6(),r=r*this.dims[e]+x[e];else for(var e=this.dims.length-1;e>=0;e--)(x[e]<1||x[e]>this.dims[e])&&w6(),r=r*this.dims[e]+(x[e]-1);return r},Va.prototype.get=function(x){switch(this.kind){case 7:var r=this.data[x*2+0],e=this.data[x*2+1];return Tz(r,e);case 10:case 11:var t=this.data[x*2+0],u=this.data[x*2+1];return[d3,t,u];default:return this.data[x]}},Va.prototype.set=function(x,r){switch(this.kind){case 7:this.data[x*2+0]=wN(r),this.data[x*2+1]=gN(r);break;case 10:case 11:this.data[x*2+0]=r[1],this.data[x*2+1]=r[2];break;default:this.data[x]=r;break}return 0},Va.prototype.fill=function(x){switch(this.kind){case 7:var r=wN(x),e=gN(x);if(r==e)this.data.fill(r);else for(var t=0;tc)return 1;if(i!=c){if(!r)return NaN;if(i==i)return 1;if(c==c)return-1}}break;case 7:for(var u=0;ux.data[u+1])return 1;if(this.data[u]>>>0>>0)return-1;if(this.data[u]>>>0>x.data[u]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(var u=0;ux.data[u])return 1}break}return 0};function L3(x,r,e,t){this.kind=x,this.layout=r,this.dims=e,this.data=t}L3.prototype=new Va,L3.prototype.offset=function(x){return typeof x!=\"number\"&&(x instanceof Array&&x.length==1?x=x[0]:i1(\"Ml_Bigarray_c_1_1.offset\")),(x<0||x>=this.dims[0])&&w6(),x},L3.prototype.get=function(x){return this.data[x]},L3.prototype.set=function(x,r){return this.data[x]=r,0},L3.prototype.fill=function(x){return this.data.fill(x),0};function _N(x,r,e,t){var u=HL(x);return Xm(e)*u!=t.length&&i1(\"length doesn't match dims\"),r==0&&e.length==1&&u==1?new L3(x,r,e,t):new Va(x,r,e,t)}function tM(x){return x.slice(1)}function Sz(x,r,e){var t=tM(e),u=ZL(x,Xm(t));return _N(x,r,t,u)}function _6(x,r,e){return x.set(x.offset(r),e),0}function b6(x,r,e){var t=String.fromCharCode;if(r==0&&e<=OF&&e==x.length)return t.apply(null,x);for(var u=Z0;0=e.l||e.t==2&&u>=e.c.length))e.c=x.t==4?b6(x.c,r,u):r==0&&x.c.length==u?x.c:x.c.substr(r,u),e.t=e.c.length==e.l?0:2;else if(e.t==2&&t==e.c.length)e.c+=x.t==4?b6(x.c,r,u):r==0&&x.c.length==u?x.c:x.c.substr(r,u),e.t=e.c.length==e.l?0:2;else{e.t!=4&&Ym(e);var i=x.c,c=e.c;if(x.t==4)if(t<=r)for(var v=0;v=0;v--)c[t+v]=i[r+v];else{for(var a=Math.min(u,i.length-r),v=0;v>=1,x==0)return e;r+=r,t++,t==9&&r.slice(0,1)}}function zm(x){x.t==2?x.c+=M3(x.l-x.c.length,\"\\0\"):x.c=b6(x.c,0,x.c.length),x.t=0}function bN(x){if(x.length<24){for(var r=0;rBr)return!1;return!0}else return!/[^\\x00-\\x7f]/.test(x)}function nM(x){for(var r=Z0,e=Z0,t,u,i,c,v=0,a=x.length;vZP?(e.substr(0,1),r+=e,e=Z0,r+=x.slice(v,l)):e+=x.slice(v,l),l==a)break;v=l}c=1,++v=55295&&c<57344)&&(c=2)):(c=3,++v1114111)&&(c=3)))))),c<4?(v-=c,e+=\"\\uFFFD\"):c>Zt?e+=String.fromCharCode(55232+(c>>10),NF+(c&1023)):e+=String.fromCharCode(c),e.length>e6&&(e.substr(0,1),r+=e,e=Z0)}return r+e}function na(x,r,e){this.t=x,this.c=r,this.l=e}na.prototype.toString=function(){switch(this.t){case 9:return this.c;default:zm(this);case 0:if(bN(this.c))return this.t=9,this.c;this.t=8;case 8:return this.c}},na.prototype.toUtf16=function(){var x=this.toString();return this.t==9?x:nM(x)},na.prototype.slice=function(){var x=this.t==4?this.c.slice():this.c;return new na(this.t,x,this.l)};function uM(x){return new na(0,x,x.length)}function pS0(x){return x}function Ot(x){return uM(x)}function cs(x,r,e,t,u){return ta(Ot(x),r,e,t,u),0}function q3(x){return new er(x[7]<<0|x[6]<<8|x[5]<<16,x[4]<<0|x[3]<<8|x[2]<<16,x[1]<<0|x[0]<<8)}function se(x,r){switch(x.t&6){default:if(r>=x.c.length)return 0;case 0:return x.c.charCodeAt(r);case 4:return x.c[r]}}function TN(){i1(qI)}function Az(x,r){r>>>0>=x.l-7&&TN();for(var e=new Array(8),t=0;t<8;t++)e[7-t]=se(x,r+t);return q3(e)}function Xr(x,r,e){if(e&=Js,x.t!=4){if(r==x.c.length)return x.c+=String.fromCharCode(e),r+1==x.l&&(x.t=0),0;Ym(x)}return x.c[r]=e,0}function ua(x,r,e){return r>>>0>=x.l&&TN(),Xr(x,r,e)}function U3(x){return x.toArray()}function Pz(x,r,e){r>>>0>=x.l-7&&TN();for(var t=U3(e),u=0;u<8;u++)Xr(x,r+7-u,t[u]);return 0}function ss(x,r){var e=x.l>=0?x.l:x.l=x.length,t=r.length,u=e-t;if(u==0)return x.apply(null,r);if(u<0){var i=x.apply(null,r.slice(0,e));return typeof i!=\"function\"?i:ss(i,r.slice(e))}else{switch(u){case 1:{var i=function(a){for(var l=new Array(t+1),m=0;m>>0>=x.length-1&&w6(),x}function Iz(x){return isFinite(x)?Math.abs(x)>=22250738585072014e-324?0:x!=0?1:2:isNaN(x)?4:3}function Nz(x){return x==HT?1:0}var jz=Math.log2&&Math.log2(11235582092889474e291)==1020;function Cz(x){if(jz)return Math.floor(Math.log2(x));var r=0;if(x==0)return-1/0;if(x>=1)for(;x>=2;)x/=2,r++;else for(;x<1;)x*=2,r--;return r}function EN(x){var r=new Float32Array(1);r[0]=x;var e=new Int32Array(r.buffer);return e[0]|0}function ot(x,r,e){return new er(x,r,e)}function Km(x){if(!isFinite(x))return isNaN(x)?ot(1,0,KR):x>0?ot(0,0,KR):ot(0,0,65520);var r=x==0&&1/x==-1/0?nn:x>=0?0:nn;r&&(x=-x);var e=Cz(x)+1023;e<=0?(e=0,x/=Math.pow(2,-PL)):(x/=Math.pow(2,e-AR),x<16&&(x*=2,e-=1),e==0&&(x/=2));var t=Math.pow(2,24),u=x|0;x=(x-u)*t;var i=x|0;x=(x-i)*t;var c=x|0;return u=u&fw|r|e<<4,ot(c,i,u)}function iM(x,r,e){if(x.write(32,r.dims.length),x.write(32,r.kind|r.layout<<8),r.caml_custom==g8)for(var t=0;t>4;if(u==dL)return r|e|t&fw?NaN:t&nn?-1/0:1/0;var i=Math.pow(2,-24),c=(r*i+e)*i+(t&fw);return u>0?(c+=16,c*=Math.pow(2,u-AR)):c*=Math.pow(2,-PL),t&nn&&(c=-c),c}function W1(x){G1.Failure||(G1.Failure=[n2,gd,-3]),yN(G1.Failure,x)}function fM(x,r,e){var t=x.read32s();(t<0||t>16)&&W1(\"input_value: wrong number of bigarray dimensions\");var u=x.read32s(),i=u&Js,c=u>>8&1,v=[];if(e==g8)for(var a=0;a>>17,r=sM(r,461845907),x^=r,x=x<<13|x>>>19,(x+(x<<2)|0)+-430675100|0}function Oz(x,r){return x=ia(x,wN(r)),x=ia(x,gN(r)),x}function aM(x,r){return Oz(x,Km(r))}function oM(x){var r=Xm(x.dims),e=0;switch(x.kind){case 2:case 3:case 12:r>Hl&&(r=Hl);var t=0,u=0;for(u=0;u+4<=x.data.length;u+=4)t=x.data[u+0]|x.data[u+1]<<8|x.data[u+2]<<16|x.data[u+3]<<24,e=ia(e,t);switch(t=0,r&3){case 3:t=x.data[u+2]<<16;case 2:t|=x.data[u+1]<<8;case 1:t|=x.data[u+0],e=ia(e,t)}break;case 4:case 5:r>M2&&(r=M2);var t=0,u=0;for(u=0;u+2<=x.data.length;u+=2)t=x.data[u+0]|x.data[u+1]<<16,e=ia(e,t);r&1&&(e=ia(e,x.data[u]));break;case 6:r>64&&(r=64);for(var u=0;u64&&(r=64);for(var u=0;u32&&(r=32),r*=2;for(var u=0;u64&&(r=64);for(var u=0;u32&&(r=32);for(var u=0;u0?u(r,x,t):u(x,r,t);if(t&&i!=i)return e;if(+i!=+i)return+i;if(i|0)return i|0}return e}function IN(x){return typeof x==\"string\"&&!/[^\\x00-\\xff]/.test(x)}function NN(x){return x instanceof na}function pM(x){if(typeof x==\"number\")return ql;if(NN(x))return g3;if(IN(x))return 1252;if(x instanceof Array&&x[0]===x[0]>>>0&&x[0]<=Hp){var r=x[0]|0;return r==d3?0:r}else{if(x instanceof String)return SF;if(typeof x==\"string\")return SF;if(x instanceof Number)return ql;if(x&&x.caml_custom)return R9;if(x&&x.compare)return 1256;if(typeof x==\"function\")return 1247;if(typeof x==\"symbol\")return 1251}return 1001}function We(x,r){return xr?1:0}function Uz(x,r){return x.t&6&&zm(x),r.t&6&&zm(r),x.cr.c?1:0}function Jm(x,r,e){for(var t=[];;){if(!(e&&x===r)){var u=pM(x);if(u==D3){x=x[1];continue}var i=pM(r);if(i==D3){r=r[1];continue}if(u!==i)return u==ql?i==R9?lM(x,r,-1,e):-1:i==ql?u==R9?lM(r,x,1,e):1:ur)return 1;if(x!=r){if(!e)return NaN;if(x==x)return 1;if(r==r)return-1}break;case 1001:if(xr)return 1;if(x!=r){if(!e)return NaN;if(x==x)return 1;if(r==r)return-1}break;case 1251:if(x!==r)return e?1:NaN;break;case 1252:var x=x,r=r;if(x!==r){if(xr)return 1}break;case 12520:var x=x.toString(),r=r.toString();if(x!==r){if(xr)return 1}break;case 246:case 254:default:if(Nz(u)){i1(\"compare: continuation value\");break}if(x.length!=r.length)return x.length1&&t.push(x,r,1);break}}if(t.length==0)return 0;var a=t.pop();r=t.pop(),x=t.pop(),a+10)if(r==0&&(e>=x.l||x.t==2&&e>=x.c.length))t==0?(x.c=Z0,x.t=2):(x.c=M3(e,String.fromCharCode(t)),x.t=e==x.l?0:2);else for(x.t!=4&&Ym(x),e+=r;r0&&r===r||(x=x.replace(/_/g,Z0),r=+x,x.length>0&&r===r||/^[+-]?nan$/i.test(x)))return r;var e=/^ *([+-]?)0x([0-9a-f]+)\\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(x);if(e){var t=e[3].replace(/0+$/,Z0),u=parseInt(e[1]+e[2]+t,16),i=(e[5]|0)-4*t.length;return r=u*Math.pow(2,i),r}if(/^\\+?inf(inity)?$/i.test(x))return 1/0;if(/^-inf(inity)?$/i.test(x))return-1/0;W1(\"float_of_string\")}function CN(x){x=x;var r=x.length;r>31&&i1(\"format_int: format too long\");for(var e={justify:q7,signstyle:Ue,filler:hu,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:PF},t=0;t=0&&u<=9;)e.width=e.width*10+u,t++;t--;break;case\".\":for(e.prec=0,t++;u=x.charCodeAt(t)-48,u>=0&&u<=9;)e.prec=e.prec*10+u,t++;t--;case\"d\":case\"i\":e.signedconv=!0;case\"u\":e.base=10;break;case\"x\":e.base=16;break;case\"X\":e.base=16,e.uppercase=!0;break;case\"o\":e.base=8;break;case\"e\":case\"f\":case\"g\":e.signedconv=!0,e.conv=u;break;case\"E\":case\"F\":case\"G\":e.signedconv=!0,e.uppercase=!0,e.conv=u.toLowerCase();break}}return e}function ON(x,r){x.uppercase&&(r=r.toUpperCase());var e=r.length;x.signedconv&&(x.sign<0||x.signstyle!=Ue)&&e++,x.alternate&&(x.base==8&&(e+=1),x.base==16&&(e+=2));var t=Z0;if(x.justify==q7&&x.filler==hu)for(var u=e;u20?(T-=20,m/=Math.pow(10,T),m+=new Array(T+1).join(Y1),h>0&&(m=m+cn+new Array(h+1).join(Y1)),m):m.toFixed(h)}var t,u=CN(x),i=u.prec<0?6:u.prec;if((r<0||r==0&&1/r==-1/0)&&(u.sign=-1,r=-r),isNaN(r))t=fI,u.filler=hu;else if(!isFinite(r))t=\"inf\",u.filler=hu;else switch(u.conv){case\"e\":var t=r.toExponential(i),c=t.length;t.charAt(c-3)==gw&&(t=t.slice(0,c-1)+Y1+t.slice(c-1));break;case\"f\":t=e(r,i);break;case\"g\":i=i||1,t=r.toExponential(i-1);var v=t.indexOf(gw),a=+t.slice(v+1);if(a<-4||r>=1e21||r.toFixed(0).length>i){for(var c=v-1;t.charAt(c)==Y1;)c--;t.charAt(c)==cn&&c--,t=t.slice(0,c+1)+t.slice(v),c=t.length,t.charAt(c-3)==gw&&(t=t.slice(0,c-1)+Y1+t.slice(c-1));break}else{var l=i;if(a<0)l-=a+1,t=r.toFixed(l);else for(;t=r.toFixed(l),t.length>i+1;)l--;if(l){for(var c=t.length-1;t.charAt(c)==Y1;)c--;t.charAt(c)==cn&&c--,t=t.slice(0,c+1)}}break}return ON(u,t)}function Wm(x,r){if(x==O3)return Z0+r;var e=CN(x);r<0&&(e.signedconv?(e.sign=-1,r=-r):r>>>=0);var t=r.toString(e.base);if(e.prec>=0){e.filler=hu;var u=e.prec-t.length;u>0&&(t=M3(u,Y1)+t)}return ON(e,t)}var hM=0;function as(){return hM++}function dM(){return[0]}var Vm=[];function Bx(x,r,e){var t=x[1],u=Vm[e];if(u===void 0)for(var i=Vm.length;i>1|1,rZP?(e.substr(0,1),r+=e,e=Z0,r+=x.slice(i,v)):e+=x.slice(i,v),v==c)break;i=v}t>6),e+=String.fromCharCode(Ct|t&Ga)):t<55296||t>=tF?e+=String.fromCharCode(WF|t>>12,Ct|t>>6&Ga,Ct|t&Ga):t>=56319||i+1==c||(u=x.charCodeAt(i+1))tF?e+=\"\\xEF\\xBF\\xBD\":(i++,t=(t<<10)+u-56613888,e+=String.fromCharCode(MD|t>>18,Ct|t>>12&Ga,Ct|t>>6&Ga,Ct|t&Ga)),e.length>e6&&(e.substr(0,1),r+=e,e=Z0)}return r+e}function Dt(x){return bN(x)?x:Kz(x)}function Jz(x,r,e){if(!isFinite(x))return isNaN(x)?Dt(fI):Dt(x>0?rL:\"-infinity\");var t=x==0&&1/x==-1/0?1:x>=0?0:1;t&&(x=-x);var u=0;if(x!=0)if(x<1)for(;x<1&&u>-1022;)x*=2,u--;else for(;x>=2;)x/=2,u++;var i=u<0?Z0:q7,c=Z0;if(t)c=Ue;else switch(e){case 43:c=q7;break;case 32:c=hu;break;default:break}if(r>=0&&r<13){var v=Math.pow(2,r*4);x=Math.round(x*v)/v}var a=x.toString(16);if(r>=0){var l=a.indexOf(cn);if(l<0)a+=cn+M3(r,Y1);else{var m=l+1+r;a.length>24&Cc,x>>31&Zt)}function Wz(x){return x.toInt()}function Vz(x){return+x.isNeg()}function FN(x){return x.neg()}function yM(x,r){var e=CN(x);e.signedconv&&Vz(r)&&(e.sign=-1,r=FN(r));var t=Z0,u=T6(e.base),i=\"0123456789abcdef\";do{var c=r.udivmod(u);r=c.quotient,t=i.charAt(Wz(c.modulus))+t}while(!Gz(r));if(e.prec>=0){e.filler=hu;var v=e.prec-t.length;v>0&&(t=M3(v,Y1)+t)}return ON(e,t)}function Nx(x){return x.length}function J0(x,r){return x.charCodeAt(r)}function gM(x,r){return x.add(r)}function wM(x,r){return x.mul(r)}function RN(x,r){return x.ucompare(r)<0}function _M(x){var r=0,e=Nx(x),t=10,u=1;if(e>0)switch(J0(x,r)){case 45:r++,u=-1;break;case 43:r++,u=1;break}if(r+1=48&&x<=57?x-48:x>=65&&x<=90?x-55:x>=97&&x<=s2?x-87:-1}function ov(x){var r=_M(x),e=r[0],t=r[1],u=r[2],i=T6(u),c=new er(Cc,268435455,Zt).udivmod(i).quotient,v=J0(x,e),a=$m(v);(a<0||a>=u)&&W1(Ks);for(var l=T6(a);;)if(e++,v=J0(x,e),v!=95){if(a=$m(v),a<0||a>=u)break;RN(c,l)&&W1(Ks),a=T6(a),l=gM(wM(i,l),a),RN(l,a)&&W1(Ks)}return e!=Nx(x)&&W1(Ks),u==10&&RN(new er(0,0,nn),l)&&W1(Ks),t<0&&(l=FN(l)),l}function bM(x,r){return x.or(r)}function Qm(x){return x.toFloat()}function vt(x){var r=_M(x),e=r[0],t=r[1],u=r[2],i=Nx(x),c=-1>>>0,v=e=u)&&W1(Ks);var l=a;for(e++;e=u)break;l=u*l+a,l>c&&W1(Ks)}return e!=i&&W1(Ks),l=t*l,u==10&&(l|0)!=l&&W1(Ks),l|0}function Jx(x){return bN(x)?x:nM(x)}function $z(x){for(var r={},e=1;e=0?x.l:x.l=x.length}function Hz(x){return function(){for(var r=Qz(x),e=new Array(r),t=0;t>>0&&LN(x,A3,zo)?0:1}function rK(x){return LN(x,zo,D3),0}function eK(x,r){return+(Jm(x,r,!1)<0)}function TM(x){return x}function tK(x,r){return x.get(x.offset(r))}function nK(x,r){return x.xor(r)}function uK(x,r){return x.shift_right_unsigned(r)}function iK(x,r){return x.shift_left(r)}function Zm(x){function r(B,K){return iK(B,K)}function e(B,K){return uK(B,K)}function t(B,K){return bM(B,K)}function u(B,K){return nK(B,K)}function i(B,K){return gM(B,K)}function c(B,K){return wM(B,K)}function v(B,K){return t(r(B,K),e(B,64-K))}function a(B,K){return tK(B,K)}function l(B,K,n0){return _6(B,K,n0)}var m=ov(TM(\"0xd1342543de82ef95\")),h=ov(TM(\"0xdaba0b6eb09322e3\")),T,M,z,b=x,N=a(b,0),j=a(b,1),I=a(b,2),F=a(b,3);T=i(j,I),T=c(u(T,e(T,32)),h),T=c(u(T,e(T,32)),h),T=u(T,e(T,32)),l(b,1,i(c(j,m),N));var M=I,z=F;return z=u(z,M),M=v(M,24),M=u(u(M,z),r(z,16)),z=v(z,37),l(b,2,M),l(b,3,z),T}function $a(e,r){e<0&&w6();var e=e+1|0,t=new Array(e);t[0]=0;for(var u=1;u>>32-m,a)}function e(c,v,a,l,m,h,T){return r(v&a|~v&l,c,v,m,h,T)}function t(c,v,a,l,m,h,T){return r(v&l|a&~l,c,v,m,h,T)}function u(c,v,a,l,m,h,T){return r(v^a^l,c,v,m,h,T)}function i(c,v,a,l,m,h,T){return r(a^(v|~l),c,v,m,h,T)}return function(c,v){var a=c[0],l=c[1],m=c[2],h=c[3];a=e(a,l,m,h,v[0],7,3614090360),h=e(h,a,l,m,v[1],12,3905402710),m=e(m,h,a,l,v[2],17,606105819),l=e(l,m,h,a,v[3],22,3250441966),a=e(a,l,m,h,v[4],7,4118548399),h=e(h,a,l,m,v[5],12,1200080426),m=e(m,h,a,l,v[6],17,2821735955),l=e(l,m,h,a,v[7],22,4249261313),a=e(a,l,m,h,v[8],7,1770035416),h=e(h,a,l,m,v[9],12,2336552879),m=e(m,h,a,l,v[10],17,4294925233),l=e(l,m,h,a,v[11],22,2304563134),a=e(a,l,m,h,v[12],7,1804603682),h=e(h,a,l,m,v[13],12,4254626195),m=e(m,h,a,l,v[14],17,2792965006),l=e(l,m,h,a,v[15],22,1236535329),a=t(a,l,m,h,v[1],5,4129170786),h=t(h,a,l,m,v[6],9,3225465664),m=t(m,h,a,l,v[11],14,643717713),l=t(l,m,h,a,v[0],20,3921069994),a=t(a,l,m,h,v[5],5,3593408605),h=t(h,a,l,m,v[10],9,38016083),m=t(m,h,a,l,v[15],14,3634488961),l=t(l,m,h,a,v[4],20,3889429448),a=t(a,l,m,h,v[9],5,568446438),h=t(h,a,l,m,v[14],9,3275163606),m=t(m,h,a,l,v[3],14,4107603335),l=t(l,m,h,a,v[8],20,1163531501),a=t(a,l,m,h,v[13],5,2850285829),h=t(h,a,l,m,v[2],9,4243563512),m=t(m,h,a,l,v[7],14,1735328473),l=t(l,m,h,a,v[12],20,2368359562),a=u(a,l,m,h,v[5],4,4294588738),h=u(h,a,l,m,v[8],11,2272392833),m=u(m,h,a,l,v[11],16,1839030562),l=u(l,m,h,a,v[14],23,4259657740),a=u(a,l,m,h,v[1],4,2763975236),h=u(h,a,l,m,v[4],11,1272893353),m=u(m,h,a,l,v[7],16,4139469664),l=u(l,m,h,a,v[10],23,3200236656),a=u(a,l,m,h,v[13],4,681279174),h=u(h,a,l,m,v[0],11,3936430074),m=u(m,h,a,l,v[3],16,3572445317),l=u(l,m,h,a,v[6],23,76029189),a=u(a,l,m,h,v[9],4,3654602809),h=u(h,a,l,m,v[12],11,3873151461),m=u(m,h,a,l,v[15],16,530742520),l=u(l,m,h,a,v[2],23,3299628645),a=i(a,l,m,h,v[0],6,4096336452),h=i(h,a,l,m,v[7],10,1126891415),m=i(m,h,a,l,v[14],15,2878612391),l=i(l,m,h,a,v[5],21,4237533241),a=i(a,l,m,h,v[12],6,1700485571),h=i(h,a,l,m,v[3],10,2399980690),m=i(m,h,a,l,v[10],15,4293915773),l=i(l,m,h,a,v[1],21,2240044497),a=i(a,l,m,h,v[8],6,1873313359),h=i(h,a,l,m,v[15],10,4264355552),m=i(m,h,a,l,v[6],15,2734768916),l=i(l,m,h,a,v[13],21,1309151649),a=i(a,l,m,h,v[4],6,4149444226),h=i(h,a,l,m,v[11],10,3174756917),m=i(m,h,a,l,v[2],15,718787259),l=i(l,m,h,a,v[9],21,3951481745),c[0]=x(a,c[0]),c[1]=x(l,c[1]),c[2]=x(m,c[2]),c[3]=x(h,c[3])}}();function cK(x,r,e){var t=x.len&Ga,u=0;if(x.len+=e,t){var i=64-t;if(e=64;)x.b8.set(r.subarray(u,u+64),0),x5(x.w,x.b32),e-=64,u+=64;e&&x.b8.set(r.subarray(u,u+e),0)}function sK(x){var r=x.len&Ga;if(x.b8[r]=Ct,r++,r>56){for(var e=r;e<64;e++)x.b8[e]=0;x5(x.w,x.b32);for(var e=0;e<56;e++)x.b8[e]=0}else for(var e=r;e<56;e++)x.b8[e]=0;x.b32[14]=x.len<<3,x.b32[15]=x.len>>29&536870911,x5(x.w,x.b32);for(var t=new Uint8Array(16),u=0;u<4;u++)for(var e=0;e<4;e++)t[u*4+e]=x.w[u]>>8*e&255;return t}function MN(x){return x.t!=4&&Ym(x),x.c}function aK(x){return b6(x,0,x.length)}function oK(x,r,e){var t=fK(),u=MN(x);return cK(t,u.subarray(r,r+e),e),aK(sK(t))}function vK(x,r,e){return oK(Ot(x),r,e)}function Ft(x){return x.l}function lK(){return 0}function jr(x){yN(G1.Sys_error,x)}var fa=new Array;function an(x){var r=fa[x];return r.opened||jr(\"Cannot flush a closed channel\"),!r.buffer||r.buffer_curr==0||(r.output?r.output(b6(r.buffer,0,r.buffer_curr)):r.file.write(r.offset,r.buffer,0,r.buffer_curr),r.offset+=r.buffer_curr,r.buffer_curr=0),0}function EM(){}function kS0(x){for(var r=Nx(x),e=new Uint8Array(r),t=0;t1&&t.pop();break;case\".\":break;case\"\":break;default:t.push(e[u]);break}return t.unshift(r[0]),t.orig=x,t}var hK=[\"E2BIG\",\"EACCES\",\"EAGAIN\",BI,\"EBUSY\",\"ECHILD\",\"EDEADLK\",\"EDOM\",FO,\"EFAULT\",\"EFBIG\",\"EINTR\",\"EINVAL\",\"EIO\",\"EISDIR\",\"EMFILE\",\"EMLINK\",\"ENAMETOOLONG\",\"ENFILE\",\"ENODEV\",_w,\"ENOEXEC\",\"ENOLCK\",\"ENOMEM\",\"ENOSPC\",\"ENOSYS\",Gg,oD,\"ENOTTY\",\"ENXIO\",\"EPERM\",\"EPIPE\",\"ERANGE\",\"EROFS\",\"ESPIPE\",\"ESRCH\",\"EXDEV\",\"EWOULDBLOCK\",\"EINPROGRESS\",\"EALREADY\",\"ENOTSOCK\",\"EDESTADDRREQ\",\"EMSGSIZE\",\"EPROTOTYPE\",\"ENOPROTOOPT\",\"EPROTONOSUPPORT\",\"ESOCKTNOSUPPORT\",\"EOPNOTSUPP\",\"EPFNOSUPPORT\",\"EAFNOSUPPORT\",\"EADDRINUSE\",\"EADDRNOTAVAIL\",\"ENETDOWN\",\"ENETUNREACH\",\"ENETRESET\",\"ECONNABORTED\",\"ECONNRESET\",\"ENOBUFS\",\"EISCONN\",\"ENOTCONN\",\"ESHUTDOWN\",\"ETOOMANYREFS\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTDOWN\",\"EHOSTUNREACH\",\"ELOOP\",\"EOVERFLOW\"];function ca(x,r,e,t){var u=hK.indexOf(x);u<0&&(t==null&&(t=-9999),u=[0,t]);var i=[u,Dt(r||Z0),Dt(e||Z0)];return i}var AM={};function Qa(x){return AM[x]}function sa(x,r){throw W0([0,x].concat(r))}function UN(x){return x instanceof Uint8Array||(x=new Uint8Array(x)),new na(4,x,x.length)}function PM(x){jr(x+Q4)}function ae(x){this.data=x}ae.prototype=new EM,ae.prototype.constructor=ae,ae.prototype.truncate=function(x){var r=this.data;this.data=S2(x|0),ta(r,0,this.data,0,x)},ae.prototype.length=function(){return Ft(this.data)},ae.prototype.write=function(x,r,e,t){var u=this.length();if(x+t>=u){var i=S2(x+t),c=this.data;this.data=i,ta(c,0,this.data,0,u)}return ta(UN(r),e,this.data,x,t),0},ae.prototype.read=function(x,r,e,t){var u=this.length();if(x+t>=u&&(t=u-x),t){var i=S2(t|0);ta(this.data,x,i,0,t),r.set(MN(i),e)}return t};function vv(x,r,e){this.file=r,this.name=x,this.flags=e}vv.prototype.err_closed=function(){jr(this.name+EF)},vv.prototype.length=function(){if(this.file)return this.file.length();this.err_closed()},vv.prototype.write=function(x,r,e,t){if(this.file)return this.file.write(x,r,e,t);this.err_closed()},vv.prototype.read=function(x,r,e,t){if(this.file)return this.file.read(x,r,e,t);this.err_closed()},vv.prototype.close=function(){this.file=void 0};function w1(x,r){this.content={},this.root=x,this.lookupFun=r}w1.prototype.nm=function(x){return this.root+x},w1.prototype.create_dir_if_needed=function(x){for(var r=x.split(ue),e=Z0,t=0;t0&&e>=0&&e+t<=r.length&&r[e+t-1]==10&&t--;var u=S2(t);return ta(UN(r),e,u,0,t),this.log(u.toUtf16()),0}jr(this.fd+EF)},A6.prototype.read=function(x,r,e,t){jr(this.fd+\": file descriptor is write only\")},A6.prototype.close=function(){this.log=void 0};function t5(x,r){return r==null&&(r=r5.length),r5[r]=x,r|0}function mS0(x,r,e){for(var t={};r;){switch(r[1]){case 0:t.rdonly=1;break;case 1:t.wronly=1;break;case 2:t.append=1;break;case 3:t.create=1;break;case 4:t.truncate=1;break;case 5:t.excl=1;break;case 6:t.binary=1;break;case 7:t.text=1;break;case 8:t.nonblock=1;break}r=r[2]}t.rdonly&&t.wronly&&jr(x+Sy),t.text&&t.binary&&jr(x+Y_);var u=dK(x),i=u.device.open(u.rest,t);return t5(i,void 0)}(function(){function x(r,e){return E6()?pK(r,e):new A6(r,e)}t5(x(0,{rdonly:1,altname:\"/dev/stdin\",isCharacterDevice:!0}),0),t5(x(1,{buffered:2,wronly:1,isCharacterDevice:!0}),1),t5(x(2,{buffered:2,wronly:1,isCharacterDevice:!0}),2)})();function yK(x){var r=r5[x];r.flags.wronly&&jr(LD+x+\" is writeonly\");var e=null,t={file:r,offset:r.flags.append?r.length():0,fd:x,opened:!0,out:!1,buffer_curr:0,buffer_max:0,buffer:new Uint8Array(c6),refill:e};return fa[t.fd]=t,t.fd}function NM(x){var r=r5[x];r.flags.rdonly&&jr(LD+x+\" is readonly\");var e=r.flags.buffered!==void 0?r.flags.buffered:1,t={file:r,offset:r.flags.append?r.length():0,fd:x,opened:!0,out:!0,buffer_curr:0,buffer:new Uint8Array(c6),buffered:e};return fa[t.fd]=t,t.fd}function gK(){for(var x=0,r=0;ru.buffer.length){var i=new Uint8Array(u.buffer_curr+r.length);i.set(u.buffer),u.buffer=i}switch(u.buffered){case 0:u.buffer.set(r,u.buffer_curr),u.buffer_curr+=r.length,an(x);break;case 1:u.buffer.set(r,u.buffer_curr),u.buffer_curr+=r.length,u.buffer_curr>=u.buffer.length&&an(x);break;case 2:var c=r.lastIndexOf(10);c<0?(u.buffer.set(r,u.buffer_curr),u.buffer_curr+=r.length,u.buffer_curr>=u.buffer.length&&an(x)):(u.buffer.set(r.subarray(0,c+1),u.buffer_curr),u.buffer_curr+=c+1,an(x),u.buffer.set(r.subarray(c+1),u.buffer_curr),u.buffer_curr+=r.length-c-1);break}return 0}function _K(x,u,e,t){var u=MN(u);return wK(x,u,e,t)}function BN(x,r,e,t){return _K(x,Ot(r),e,t)}function jM(x,r){var e=String.fromCharCode(r);return BN(x,e,0,1),0}function lv(x,r){return+(Jm(x,r,!1)!=0)}function XN(x,r){var e=new Array(r+1);e[0]=x;for(var t=1;t<=r;t++)e[t]=0;return e}function pv(x){return x instanceof Array&&x[0]==x[0]>>>0?x[0]:NN(x)||IN(x)?g3:x instanceof Function||typeof x==\"function\"?ep:x&&x.caml_custom?Hp:ql}function bK(x){var r={};if(x)for(var e=1;e=0?x=u:W1(\"caml_register_global: cannot locate \"+t)}}G1[x+1]=r,e&&(G1[e]=r)}function YN(x,r){return AM[x]=r,0}function TK(x){return x[2]=hM++,x}function br(x,r){return x===r?1:0}function EK(){i1(qI)}function q2(x,r){return r>>>0>=Nx(x)&&EK(),J0(x,r)}function P(x,r){return 1-br(x,r)}function _1(x){return x.t&6&&zm(x),x.c}function SK(){return 2147483647/4|0}var AK=o0.process&&o0.process.platform&&o0.process.platform==_O?WD:\"Unix\";function PK(){return[0,AK,32,0]}function IK(){rM(G1.Not_found)}function CM(x){var r=QL(Jx(x));return r===void 0&&IK(),Dt(r)}function NK(){if(o0.crypto){if(o0.crypto.getRandomValues){var x=o0.crypto.getRandomValues(new Int32Array(4));return[0,x[0],x[1],x[2],x[3]]}else if(o0.crypto.randomBytes){var x=new Int32Array(o0.crypto.randomBytes(16).buffer);return[0,x[0],x[1],x[2],x[3]]}}var r=new Date().getTime(),e=r^4294967295*Math.random();return[0,e]}function n5(x){for(var r=1;x&&x.joo_tramp;)x=x.joo_tramp.apply(null,x.joo_args),r++;return x}function J2(x,r){return{joo_tramp:x,joo_args:r}}function Fr(x,r){if(r.fun)return x.fun=r.fun,0;if(typeof r==\"function\")return x.fun=r,0;for(var e=r.length;e--;)x[e]=r[e];return 0}function U2(x){{if(x instanceof Array)return x;var r;return o0.RangeError&&x instanceof o0.RangeError&&x.message&&x.message.match(/maximum call stack/i)||o0.InternalError&&x instanceof o0.InternalError&&x.message&&x.message.match(/too much recursion/i)?r=G1.Stack_overflow:x instanceof o0.Error&&Qa(OS)?r=[0,Qa(OS),x]:r=[0,G1.Failure,Dt(String(x))],x instanceof o0.Error&&(r.js_error=x),r}}function jK(x){switch(x[2]){case-8:case-11:case-12:return 1;default:return 0}}function CK(x){var r=Z0;if(x[0]==0){if(r+=x[1][1],x.length==3&&x[2][0]==0&&jK(x[1]))var t=x[2],e=1;else var e=2,t=x;r+=IR;for(var u=e;ue&&(r+=lF);var i=t[u];typeof i==\"number\"?r+=i.toString():i instanceof na||typeof i==\"string\"?r+=Xk+i.toString()+Xk:r+=qo}r+=uR}else x[0]==n2&&(r+=x[1]);return r}function OM(x){if(x instanceof Array&&(x[0]==0||x[0]==n2)){var r=Qa(qO);if(r)Hm(r,[x,!1]);else{var e=CK(x),t=Qa(DD);if(t&&Hm(t,[0]),console.error(KE+e),x.js_error)throw x.js_error}}else throw x}function OK(){var x=o0.process;x&&x.on?x.on(\"uncaughtException\",function(r,e){OM(r),x.exit(2)}):o0.addEventListener&&o0.addEventListener(\"error\",function(r){r.error&&OM(r.error)})}OK();function d(x,r){return(x.l>=0?x.l:x.l=x.length)==1?x(r):ss(x,[r])}function p(x,r,e){return(x.l>=0?x.l:x.l=x.length)==2?x(r,e):ss(x,[r,e])}function H0(x,r,e,t){return(x.l>=0?x.l:x.l=x.length)==3?x(r,e,t):ss(x,[r,e,t])}function zN(x,r,e,t,u){return(x.l>=0?x.l:x.l=x.length)==4?x(r,e,t,u):ss(x,[r,e,t,u])}function KN(x,r,e,t,u,i){return(x.l>=0?x.l:x.l=x.length)==5?x(r,e,t,u,i):ss(x,[r,e,t,u,i])}function P6(x,r,e,t,u,i,c){return(x.l>=0?x.l:x.l=x.length)==6?x(r,e,t,u,i,c):ss(x,[r,e,t,u,i,c])}function DK(x,r,e,t,u,i,c,v){return(x.l>=0?x.l:x.l=x.length)==7?x(r,e,t,u,i,c,v):ss(x,[r,e,t,u,i,c,v])}var O=void 0,JN=[n2,gO,-1],DM=[n2,uL,-2],vn=[n2,gd,-3],u5=[n2,TL,-4],os=[n2,fF,-7],FM=[n2,IO,-8],RM=[n2,FR,-9],Nr=[n2,gR,-11],I6=[n2,$F,-12],FK=[4,0,0,0,[12,45,[4,0,0,0,0]]],GN=[0,[11,'File \"',[2,0,[11,'\", line ',[4,0,0,0,[11,AO,[4,0,0,0,[12,45,[4,0,0,0,[11,\": \",[2,0,0]]]]]]]]]],'File \"%s\", line %d, characters %d-%d: %s'],Y3=[0,0,[0,0,0],[0,0,0]],z3=[0,0,0,0,0,1,0,0,0],LM=[0,\"first_leading\",\"last_trailing\"],MM=[0,sf,xn,Gf,Ui,hc,ci,ku,ou,$n,Kc,Hu,E7,j7,fn,bc,G7,Ke,fs,ti,Ni,n7,Qu,Zn,of,lu,Pu,yf,Ou,ei,ai,Uu,P7,Cf,zf,a7,hi,ff,R7,Xi,Y7,jf,bi,tc,Ln,Hc,fc,Of,tu,F7,Rc,Ac,qu,Yi,qi,Le,Ye,Lc,Lf,H7,Ii,iu,Vi,ii,_c,ni,sc,Hf,Nn,ju,Bi,be,b7,yu,au,ic,rc,bf,Sc,_7,es,vc,wc,Af,cc,Pi,Fn,d7,us,xf,mc,Cn,n1,u7,Fc,oc,w7,Zu,gf,p7,t7,nf,Zc,Ci,xi,pi,zc,Yn,ef,pu,ns,Uf,tf,V7,Bu,xc,$f,h7,Ri,ri,wu,$u,Qn,K7,xs,dc,ki,Pt,Uc,I7,yi,X1,Dn,Di,Xc,mf,du,Yf,Mc,Wf,ie,Wi,z7,Mu,Iu,Rn,pc,di,wi,Ku,$c,y7,Ef,B7,T7,Hn,Pf,Eu,Zf,O7,lc,uc,Wc,If,uf,X7,eu,$i,Wu,yc,qn,l7,ne,Vu,Yc,$7,mu,su,ec,Jc,m7,uu,J7,lf,Hi,Bf,ji,L7,Zi,Vc,hf,Mn,cu,si,bu,Au,Ec,Sf,Qc,Ei,jc,vi,Vn,Gu,Fu,Cu,mi,Xu,Nu,Pc,On,Ki,Tu,Qi,Ff,Si,Jn,Bn,ac,Nf,e7,Gn,Un,rs,Du,Mf,Kn,Dc,_e,vu,oi,Ic,fi,C7,_u,kf,jn,f7,Li,kc,Q7,Df,g7,Ji,Mi,ru,A7,Lu,li,wf,Me,qc,o7,af,r7,pf,v7,Ju,Xe,k7,xu,zu,Bc,i7,W7,Su,Tc,Ge,Oc,Xf,Ti,Nc,x7,Oi,Wn,ze,U7,gc,ts,cf,rf,Jf,is,Kf,Xn,Z7,fu,Rf,zn,N7,zi,Yu,D7,Tf,Ru,s7,S7,nu,gi,gu,Ai,df,nc,Vf,c7,_f,K1,M7,Fi,Gi,B1],ln=[0,0,0];Rt(11,I6,$F),Rt(10,Nr,gR),Rt(9,[n2,oR,RR],oR),Rt(8,RM,FR),Rt(7,FM,IO),Rt(6,os,fF),Rt(5,[n2,BD,-6],BD),Rt(4,[n2,JR,-5],JR),Rt(3,u5,TL),Rt(2,vn,gd),Rt(1,DM,uL),Rt(0,JN,gO);function B2(x){if(typeof x==\"number\")return 0;switch(x[0]){case 0:return[0,B2(x[1])];case 1:return[1,B2(x[1])];case 2:return[2,B2(x[1])];case 3:return[3,B2(x[1])];case 4:return[4,B2(x[1])];case 5:return[5,B2(x[1])];case 6:return[6,B2(x[1])];case 7:return[7,B2(x[1])];case 8:var r=x[1];return[8,r,B2(x[2])];case 9:var e=x[1];return[9,e,e,B2(x[3])];case 10:return[10,B2(x[1])];case 11:return[11,B2(x[1])];case 12:return[12,B2(x[1])];case 13:return[13,B2(x[1])];default:return[14,B2(x[1])]}}function oe(x,r){if(typeof x==\"number\")return r;switch(x[0]){case 0:return[0,oe(x[1],r)];case 1:return[1,oe(x[1],r)];case 2:return[2,oe(x[1],r)];case 3:return[3,oe(x[1],r)];case 4:return[4,oe(x[1],r)];case 5:return[5,oe(x[1],r)];case 6:return[6,oe(x[1],r)];case 7:return[7,oe(x[1],r)];case 8:var e=x[1];return[8,e,oe(x[2],r)];case 9:var t=x[2],u=x[1];return[9,u,t,oe(x[3],r)];case 10:return[10,oe(x[1],r)];case 11:return[11,oe(x[1],r)];case 12:return[12,oe(x[1],r)];case 13:return[13,oe(x[1],r)];default:return[14,oe(x[1],r)]}}function j2(x,r){if(typeof x==\"number\")return r;switch(x[0]){case 0:return[0,j2(x[1],r)];case 1:return[1,j2(x[1],r)];case 2:var e=x[1];return[2,e,j2(x[2],r)];case 3:var t=x[1];return[3,t,j2(x[2],r)];case 4:var u=x[3],i=x[2],c=x[1];return[4,c,i,u,j2(x[4],r)];case 5:var v=x[3],a=x[2],l=x[1];return[5,l,a,v,j2(x[4],r)];case 6:var m=x[3],h=x[2],T=x[1];return[6,T,h,m,j2(x[4],r)];case 7:var b=x[3],N=x[2],j=x[1];return[7,j,N,b,j2(x[4],r)];case 8:var I=x[3],F=x[2],M=x[1];return[8,M,F,I,j2(x[4],r)];case 9:var z=x[1];return[9,z,j2(x[2],r)];case 10:return[10,j2(x[1],r)];case 11:var B=x[1];return[11,B,j2(x[2],r)];case 12:var K=x[1];return[12,K,j2(x[2],r)];case 13:var n0=x[2],$=x[1];return[13,$,n0,j2(x[3],r)];case 14:var H=x[2],t0=x[1];return[14,t0,H,j2(x[3],r)];case 15:return[15,j2(x[1],r)];case 16:return[16,j2(x[1],r)];case 17:var c0=x[1];return[17,c0,j2(x[2],r)];case 18:var r0=x[1];return[18,r0,j2(x[2],r)];case 19:return[19,j2(x[1],r)];case 20:var v0=x[2],a0=x[1];return[20,a0,v0,j2(x[3],r)];case 21:var g0=x[1];return[21,g0,j2(x[2],r)];case 22:return[22,j2(x[1],r)];case 23:var i0=x[1];return[23,i0,j2(x[2],r)];default:var s0=x[2],d0=x[1];return[24,d0,s0,j2(x[3],r)]}}function Tx(x){throw W0([0,vn,x],1)}function R1(x){throw W0([0,u5,x],1)}function i5(x){return 0<=x?x:-x|0}var RK=ra,LK=Gs;function qx(x,r){var e=Nx(x),t=Nx(r),u=S2(e+t|0);return cs(x,0,u,0,e),cs(r,0,u,e,t),_1(u)}function Mx(x,r){if(!x)return r;var e=x[2],t=x[1];if(!e)return[0,t,r];var u=e[2],i=e[1];if(!u)return[0,t,[0,i,r]];for(var c=[0,u[1],v3],v=c,a=1,l=u[2];;){if(l){var m=l[2],h=l[1];if(m){var T=m[2],b=m[1];if(T){var N=[0,T[1],v3],j=T[2];v[1+a]=[0,h,[0,b,N]];var v=N,a=1,l=j;continue}v[1+a]=[0,h,[0,b,r]]}else v[1+a]=[0,h,r]}else v[1+a]=r;return[0,t,[0,i,c]]}}yK(0);var qM=NM(1),pn=NM(2),MK=\"output_substring\";function N6(x,r){BN(x,r,0,Nx(r))}function UM(x,r,e,t){return 0<=e&&0<=t&&(Nx(r)-t|0)>=e?BN(x,r,e,t):R1(MK)}function BM(x){return N6(pn,x),jM(pn,10),an(pn)}var WN=[0,function(x){for(var r=gK(0);;){if(!r)return 0;var e=r[2],t=r[1];try{an(t)}catch(c){var u=U2(c);if(u[1]!==DM)throw W0(u,0)}var r=e}}],XM=[0,function(x){}];function VN(x){return d(XM[1],0),d(R3(WN),0)}YN(DD,VN);var YM=PK(0)[1],j6=(4*SK(0)|0)-1|0;function f5(x,r){return r?[0,d(x,r[1])]:0}function zM(x){return 25>>0?x:x-32|0}var qK=\"hd\",UK=\"tl\",BK=\"List.iter2\";function aa(x){for(var r=0,e=x;;){if(!e)return r;var r=r+1|0,e=e[2]}}function C6(x){return x?x[1]:Tx(qK)}function KM(x){return x?x[2]:Tx(UK)}function K3(x,r){for(var e=x,t=r;;){if(!e)return t;var u=[0,e[1],t],e=e[2],t=u}}function ix(x){return K3(x,0)}function O6(x){if(!x)return 0;var r=x[1];return Mx(r,O6(x[2]))}function vs(x,r){if(!r)return 0;var e=r[2],t=r[1];if(!e)return[0,x(t),0];for(var u=e[2],i=e[1],c=x(t),v=[0,x(i),v3],a=v,l=1,m=u;;){if(m){var h=m[2],T=m[1];if(h){var b=h[2],N=h[1],j=x(T),I=[0,x(N),v3];a[1+l]=[0,j,I];var a=I,l=1,m=b;continue}a[1+l]=[0,x(T),0]}else a[1+l]=0;return[0,c,v]}}function c5(x,r){for(var e=0,t=r;;){if(!t)return e;var u=t[2],e=[0,x(t[1]),e],t=u}}function b1(x,r){for(var e=r;;){if(!e)return 0;var t=e[2];d(x,e[1]);var e=t}}function m1(x,r,e){for(var t=r,u=e;;){if(!u)return t;var i=u[2],t=p(x,t,u[1]),u=i}}function $N(x,r,e){if(!r)return e;var t=r[1];return x(t,$N(x,r[2],e))}function JM(x,r,e){for(var t=r,u=e;;){if(t){if(u){var i=u[2],c=t[2];x(t[1],u[1]);var t=c,u=i;continue}}else if(!u)return;return R1(BK)}}function J3(x,r){for(var e=r;;){if(!e)return 0;var t=e[2],u=d(x,e[1]);if(u)return u;var e=t}}function QN(x,r){for(var e=r;;){if(!e)return 0;var t=e[2],u=kM(e[1],x)===0?1:0;if(u)return u;var e=t}}function D6(x,r){for(var e=r;;){if(!e)return 0;var t=e[2],u=e[1];if(x(u))for(var i=[0,u,v3],c=i,v=1,a=t;;){if(!a)return c[1+v]=0,i;var l=a[2],m=a[1];if(x(m)){var h=[0,m,v3];c[1+v]=h;var c=h,v=1,a=l}else var a=l}else var e=t}}var XK=\"String.sub / Bytes.sub\",YK=\"Bytes.blit\",zK=\"String.blit / Bytes.blit_string\";function kv(x,r){var e=S2(x);return zz(e,0,x,r),e}function GM(x,r,e){if(0<=r&&0<=e&&(Ft(x)-e|0)>=r){var t=S2(e);return ta(x,r,t,0,e),t}return R1(XK)}function G3(x,r,e){return _1(GM(x,r,e))}function WM(x,r,e,t,u){if(0<=u&&0<=r&&(Ft(x)-u|0)>=r&&0<=t&&(Ft(e)-u|0)>=t){ta(x,r,e,t,u);return}return R1(YK)}function kn(x,r,e,t,u){if(0<=u&&0<=r&&(Nx(x)-u|0)>=r&&0<=t&&(Ft(e)-u|0)>=t){cs(x,r,e,t,u);return}return R1(zK)}var KK=\"String.concat\",JK=Z0;function s5(x,r){return _1(kv(x,r))}function T1(x,r,e){return _1(GM(Ot(x),r,e))}function VM(x,r){if(!r)return JK;var e=Nx(x);x:{r:{for(var t=0,u=r,i=0;u;){var c=u[1];if(!u[2])break r;var v=(Nx(c)+e|0)+t|0,a=u[2],l=t<=v?v:R1(KK),t=l,u=a}var m=t;break x}var m=Nx(c)+t|0}for(var h=S2(m),T=i,b=r;;){if(b){var N=b[1];if(b[2]){var j=b[2];cs(N,0,h,T,Nx(N)),cs(x,0,h,T+Nx(N)|0,e);var T=(T+Nx(N)|0)+e|0,b=j;continue}cs(N,0,h,T,Nx(N))}return _1(h)}}function $M(x){var r=Ot(x);if(Ft(r)===0)var e=r;else{var t=Ft(r),u=S2(t);ta(r,0,u,0,t),Xr(u,0,zM(se(r,0)));var e=u}return _1(e)}function QM(x,r){var e=Nx(x),t=e<=Nx(r)?1:0;if(!t)return t;for(var u=0;;){if(u===e)return 1;if(J0(r,u)!==J0(x,u))return 0;var u=u+1|0}}function HM(x,r){var e=[0,0],t=[0,Nx(r)],u=Nx(r)-1|0;if(u>=0)for(var i=u;;){if(J0(r,i)===x){var c=e[1];e[1]=[0,T1(r,i+1|0,(t[1]-i|0)-1|0),c],t[1]=i}var v=i-1|0;if(i===0)break;var i=v}var a=e[1];return[0,T1(r,0,t[1]),a]}function a5(x,r){return Az(Ot(x),r)}var GK=\"Array.blit\";function ZM(x,r,e,t,u){if(0<=u&&0<=r&&(x.length-1-u|0)>=r&&0<=t&&(e.length-1-u|0)>=t){dz(x,r,e,t,u);return}return R1(GK)}function xq(x,r){var e=r.length-1-1|0,t=0;if(e>=0)for(var u=t;;){x(r[1+u]);var i=u+1|0;if(e===u)break;var u=i}}function o5(x,r){var e=r.length-1;if(e===0)return[0];var t=$a(e,x(r[1])),u=e-1|0,i=1;if(u>=1)for(var c=i;;){t[1+c]=x(r[1+c]);var v=c+1|0;if(u===c)break;var c=v}return t}function F6(x){if(!x)return[0];for(var r=0,e=x,t=x[2],u=x[1];e;)var r=r+1|0,e=e[2];for(var i=$a(r,u),c=1,v=t;;){if(!v)return i;var a=v[2];i[1+c]=v[1];var c=c+1|0,v=a}}function rq(x){try{var r=[0,ov(x)];return r}catch(t){var e=U2(t);if(e[1]===vn)return 0;throw W0(e,0)}}var WK=x8,VK=x8,$K=x8,QK=x8;function HN(x){function r(c){return c?c[5]:0}function e(c,v,a,l){var m=r(c),h=r(l),T=h<=m?m+1|0:h+1|0;return[0,c,v,a,l,T]}function t(c,v,a,l){var m=c?c[5]:0,h=l?l[5]:0;if((h+2|0)=h){var K=h<=m?m+1|0:h+1|0;return[0,c,v,a,l,K]}if(!l)return R1(QK);var n0=l[4],$=l[3],H=l[2],t0=l[1],c0=r(t0);if(c0<=r(n0))return e(e(c,v,a,t0),H,$,n0);if(!t0)return R1($K);var r0=t0[3],v0=t0[2],a0=t0[1],g0=e(t0[4],H,$,n0);return e(e(c,v,a,a0),v0,r0,g0)}function u(c,v,a){if(!a)return[0,0,c,v,0,1];var l=a[4],m=a[3],h=a[2],T=a[1],b=a[5],N=p(x[1],c,h);if(N===0)return m===v?a:[0,T,c,v,l,b];if(0<=N){var j=u(c,v,l);return l===j?a:t(T,h,m,j)}var I=u(c,v,T);return T===I?a:t(I,h,m,l)}function i(c,v,a){for(var l=v,m=a;;){if(!l)return m;var h=l[4],T=l[3],b=l[2],N=c(b,T,i(c,l[1],m)),l=h,m=N}}return[0,0,u,,,,,,,,,,,,,,,function(c,v){for(var a=v;;){if(!a)throw W0(os,1);var l=a[4],m=a[3],h=a[1],T=p(x[1],c,a[2]);if(T===0)return m;var b=0<=T?l:h,a=b}},,,,,,,i]}function R6(x){return[0,0,0]}function L6(x){x[1]=0,x[2]=0}function mv(x,r){r[1]=[0,x,r[1]],r[2]=r[2]+1|0}function W3(x){var r=x[1];if(!r)return 0;var e=r[1];return x[1]=r[2],x[2]=x[2]-1|0,[0,e]}function V3(x){var r=x[1];return r?[0,r[1]]:0}function eq(x){return[0,0,0,0]}function ZN(x){x[1]=0,x[2]=0,x[3]=0}function xj(x,r){var e=[0,x,0],t=r[3];return t?(r[1]=r[1]+1|0,t[2]=e,r[3]=e,0):(r[1]=1,r[2]=e,r[3]=e,0)}var HK=\"Buffer.add: cannot grow buffer\",ZK=\"Buffer.add_substring/add_subbytes\";function $r(x){var r=1<=x?x:1,e=j6=(e+r|0));)t[1]=2*t[1]|0;j6=0)for(var c=i;;){Xr(t,c,x(se(r,c)));var v=c+1|0;if(u===c)break;var c=v}return t}var QJ=O3,HJ=\"%+d\",ZJ=\"% d\",xG=rF,rG=\"%+i\",eG=\"% i\",tG=\"%x\",nG=\"%#x\",uG=\"%X\",iG=\"%#X\",fG=\"%o\",cG=\"%#o\",sG=XR,aG=\"%Ld\",oG=\"%+Ld\",vG=\"% Ld\",lG=aF,pG=\"%+Li\",kG=\"% Li\",mG=\"%Lx\",hG=\"%#Lx\",dG=\"%LX\",yG=\"%#LX\",gG=\"%Lo\",wG=\"%#Lo\",_G=\"%Lu\",bG=\"%ld\",TG=\"%+ld\",EG=\"% ld\",SG=IL,AG=\"%+li\",PG=\"% li\",IG=\"%lx\",NG=\"%#lx\",jG=\"%lX\",CG=\"%#lX\",OG=\"%lo\",DG=\"%#lo\",FG=\"%lu\",RG=\"%nd\",LG=\"%+nd\",MG=\"% nd\",qG=hO,UG=\"%+ni\",BG=\"% ni\",XG=\"%nx\",YG=\"%#nx\",zG=\"%nX\",KG=\"%#nX\",JG=\"%no\",GG=\"%#no\",WG=\"%nu\",VG=[0,sn],$G=cn,QG=\"neg_infinity\",HG=rL,ZG=fI,xW=[0,k1,1558,4],rW=\"Printf: bad conversion %[\",eW=[0,k1,1626,39],tW=[0,k1,1649,31],nW=[0,k1,1650,31],uW=\"Printf: bad conversion %_\",iW=sL,fW=hR,cW=sL,sW=hR;function v5(x,r){if(typeof x==\"number\")return[0,0,r];if(x[0]===0)return[0,[0,x[1],x[2]],r];if(typeof r!=\"number\"&&r[0]===2)return[0,[1,x[1]],r[1]];throw W0(E1,1)}function q6(x,r,e){var t=v5(x,e);if(typeof r!=\"number\")return[0,t[1],[0,r[1]],t[2]];if(!r)return[0,t[1],0,t[2]];var u=t[2];if(typeof u!=\"number\"&&u[0]===2)return[0,t[1],1,u[1]];throw W0(E1,1)}function h2(x,r){if(typeof x==\"number\")return[0,0,r];switch(x[0]){case 0:if(typeof r!=\"number\"&&r[0]===0){var e=h2(x[1],r[1]);return[0,[0,e[1]],e[2]]}break;case 1:if(typeof r!=\"number\"&&r[0]===0){var t=h2(x[1],r[1]);return[0,[1,t[1]],t[2]]}break;case 2:var u=x[2],i=v5(x[1],r),c=i[2],v=i[1];if(typeof c!=\"number\"&&c[0]===1){var a=h2(u,c[1]);return[0,[2,v,a[1]],a[2]]}throw W0(E1,1);case 3:var l=x[2],m=v5(x[1],r),h=m[2],T=m[1];if(typeof h!=\"number\"&&h[0]===1){var b=h2(l,h[1]);return[0,[3,T,b[1]],b[2]]}throw W0(E1,1);case 4:var N=x[4],j=x[1],I=q6(x[2],x[3],r),F=I[3],M=I[1];if(typeof F!=\"number\"&&F[0]===2){var z=I[2],B=h2(N,F[1]);return[0,[4,j,M,z,B[1]],B[2]]}throw W0(E1,1);case 5:var K=x[4],n0=x[1],$=q6(x[2],x[3],r),H=$[3],t0=$[1];if(typeof H!=\"number\"&&H[0]===3){var c0=$[2],r0=h2(K,H[1]);return[0,[5,n0,t0,c0,r0[1]],r0[2]]}throw W0(E1,1);case 6:var v0=x[4],a0=x[1],g0=q6(x[2],x[3],r),i0=g0[3],s0=g0[1];if(typeof i0!=\"number\"&&i0[0]===4){var d0=g0[2],w0=h2(v0,i0[1]);return[0,[6,a0,s0,d0,w0[1]],w0[2]]}throw W0(E1,1);case 7:var M0=x[4],C0=x[1],D0=q6(x[2],x[3],r),I0=D0[3],j0=D0[1];if(typeof I0!=\"number\"&&I0[0]===5){var y0=D0[2],Y0=h2(M0,I0[1]);return[0,[7,C0,j0,y0,Y0[1]],Y0[2]]}throw W0(E1,1);case 8:var L=x[4],N0=x[1],S0=q6(x[2],x[3],r),K0=S0[3],A0=S0[1];if(typeof K0!=\"number\"&&K0[0]===6){var $0=S0[2],ex=h2(L,K0[1]);return[0,[8,N0,A0,$0,ex[1]],ex[2]]}throw W0(E1,1);case 9:var xx=x[2],tx=v5(x[1],r),z0=tx[2],px=tx[1];if(typeof z0!=\"number\"&&z0[0]===7){var sx=h2(xx,z0[1]);return[0,[9,px,sx[1]],sx[2]]}throw W0(E1,1);case 10:var Q=h2(x[1],r);return[0,[10,Q[1]],Q[2]];case 11:var b0=x[1],U=h2(x[2],r);return[0,[11,b0,U[1]],U[2]];case 12:var h0=x[1],_0=h2(x[2],r);return[0,[12,h0,_0[1]],_0[2]];case 13:if(typeof r!=\"number\"&&r[0]===8){var m0=r[1],T0=r[2],X=x[3],Gx=x[1];if(lv([0,x[2]],[0,m0]))throw W0(E1,1);var Px=h2(X,T0);return[0,[13,Gx,m0,Px[1]],Px[2]]}break;case 14:if(typeof r!=\"number\"&&r[0]===9){var G0=r[1],Kr=r[3],S=x[3],G=x[2],rx=x[1],yx=[0,B2(G0)];if(lv([0,B2(G)],yx))throw W0(E1,1);var Ex=h2(S,B2(Kr));return[0,[14,rx,G0,Ex[1]],Ex[2]]}break;case 15:if(typeof r!=\"number\"&&r[0]===10){var nx=h2(x[1],r[1]);return[0,[15,nx[1]],nx[2]]}break;case 16:if(typeof r!=\"number\"&&r[0]===11){var p0=h2(x[1],r[1]);return[0,[16,p0[1]],p0[2]]}break;case 17:var Fx=x[1],Sx=h2(x[2],r);return[0,[17,Fx,Sx[1]],Sx[2]];case 18:var bx=x[2],B0=x[1];if(B0[0]===0){var Wx=B0[1],Yx=Wx[2],ax=h2(Wx[1],r),Qx=ax[1],kx=h2(bx,ax[2]);return[0,[18,[0,[0,Qx,Yx]],kx[1]],kx[2]]}var tr=B0[1],sr=tr[2],Mr=h2(tr[1],r),a2=Mr[1],_2=h2(bx,Mr[2]);return[0,[18,[1,[0,a2,sr]],_2[1]],_2[2]];case 19:if(typeof r!=\"number\"&&r[0]===13){var i2=h2(x[1],r[1]);return[0,[19,i2[1]],i2[2]]}break;case 20:if(typeof r!=\"number\"&&r[0]===1){var Q2=x[2],jx=x[1],_=h2(x[3],r[1]);return[0,[20,jx,Q2,_[1]],_[2]]}break;case 21:if(typeof r!=\"number\"&&r[0]===2){var V=x[1],lx=h2(x[2],r[1]);return[0,[21,V,lx[1]],lx[2]]}break;case 23:var U0=x[2],ox=x[1];if(typeof ox!=\"number\")switch(ox[0]){case 0:return Ve(ox,U0,r);case 1:return Ve(ox,U0,r);case 2:return Ve(ox,U0,r);case 3:return Ve(ox,U0,r);case 4:return Ve(ox,U0,r);case 5:return Ve(ox,U0,r);case 6:return Ve(ox,U0,r);case 7:return Ve(ox,U0,r);case 8:return Ve([8,ox[1],ox[2]],U0,r);case 9:var wx=ox[1],Cr=Ee(ox[2],U0,r),Hx=Cr[2];return[0,[23,[9,wx,Cr[1]],Hx[1]],Hx[2]];case 10:return Ve(ox,U0,r);default:return Ve(ox,U0,r)}switch(ox){case 0:return Ve(ox,U0,r);case 1:return Ve(ox,U0,r);case 2:if(typeof r!=\"number\"&&r[0]===14){var Zr=h2(U0,r[1]);return[0,[23,2,Zr[1]],Zr[2]]}throw W0(E1,1);default:return Ve(ox,U0,r)}}throw W0(E1,1)}function Ve(x,r,e){var t=h2(r,e);return[0,[23,x,t[1]],t[2]]}function Ee(x,r,e){if(typeof x==\"number\")return[0,0,h2(r,e)];switch(x[0]){case 0:if(typeof e!=\"number\"&&e[0]===0){var t=Ee(x[1],r,e[1]);return[0,[0,t[1]],t[2]]}break;case 1:if(typeof e!=\"number\"&&e[0]===1){var u=Ee(x[1],r,e[1]);return[0,[1,u[1]],u[2]]}break;case 2:if(typeof e!=\"number\"&&e[0]===2){var i=Ee(x[1],r,e[1]);return[0,[2,i[1]],i[2]]}break;case 3:if(typeof e!=\"number\"&&e[0]===3){var c=Ee(x[1],r,e[1]);return[0,[3,c[1]],c[2]]}break;case 4:if(typeof e!=\"number\"&&e[0]===4){var v=Ee(x[1],r,e[1]);return[0,[4,v[1]],v[2]]}break;case 5:if(typeof e!=\"number\"&&e[0]===5){var a=Ee(x[1],r,e[1]);return[0,[5,a[1]],a[2]]}break;case 6:if(typeof e!=\"number\"&&e[0]===6){var l=Ee(x[1],r,e[1]);return[0,[6,l[1]],l[2]]}break;case 7:if(typeof e!=\"number\"&&e[0]===7){var m=Ee(x[1],r,e[1]);return[0,[7,m[1]],m[2]]}break;case 8:if(typeof e!=\"number\"&&e[0]===8){var h=e[1],T=e[2],b=x[2];if(lv([0,x[1]],[0,h]))throw W0(E1,1);var N=Ee(b,r,T);return[0,[8,h,N[1]],N[2]]}break;case 9:if(typeof e!=\"number\"&&e[0]===9){var j=e[2],I=e[1],F=e[3],M=x[3],z=x[2],B=x[1],K=[0,B2(I)];if(lv([0,B2(B)],K))throw W0(E1,1);var n0=[0,B2(j)];if(lv([0,B2(z)],n0))throw W0(E1,1);var $=M1(h1(c1(I),j)),H=$[4];$[2].call(null,O),H(O);var t0=Ee(B2(M),r,F),c0=t0[2];return[0,[9,I,j,c1(t0[1])],c0]}break;case 10:if(typeof e!=\"number\"&&e[0]===10){var r0=Ee(x[1],r,e[1]);return[0,[10,r0[1]],r0[2]]}break;case 11:if(typeof e!=\"number\"&&e[0]===11){var v0=Ee(x[1],r,e[1]);return[0,[11,v0[1]],v0[2]]}break;case 13:if(typeof e!=\"number\"&&e[0]===13){var a0=Ee(x[1],r,e[1]);return[0,[13,a0[1]],a0[2]]}break;case 14:if(typeof e!=\"number\"&&e[0]===14){var g0=Ee(x[1],r,e[1]);return[0,[14,g0[1]],g0[2]]}break}throw W0(E1,1)}function $e(x,r,e){var t=Nx(e),u=0<=r?x:0,i=i5(r);if(i<=t)return e;var c=u===2?48:32,v=kv(i,c);switch(u){case 0:kn(e,0,v,0,t);break;case 1:kn(e,0,v,i-t|0,t);break;default:x:if(0u){if(u!==32){if(43>u)break x;switch(u+A_|0){case 5:e:if(t<(e+2|0)&&1=(e+1|0))break x;var c=kv(e+1|0,48);return ua(c,0,u),kn(r,1,c,(e-t|0)+2|0,t-1|0),_1(c)}if(71<=u){if(5>>0)break x}else if(65>u)break x}if(t=0)for(var i=u;;){var c=se(r,i);x:{r:{e:{if(32<=c){var v=c-34|0;if(58>>0){if(93<=v)break e}else if(56>>0)break r;var a=1;break x}if(11<=c){if(c===13)break r}else if(8<=c)break r}var a=4;break x}var a=2}e[1]=e[1]+a|0;var l=i+1|0;if(t===i)break;var i=l}if(e[1]===Ft(r))var m=r;else{var h=S2(e[1]);e[1]=0;var T=Ft(r)-1|0,b=0;if(T>=0)for(var N=b;;){var j=se(r,N);x:{r:{e:{if(35<=j){if(j!==92){if(Br<=j)break e;break r}}else{if(32>j){if(14<=j)break e;switch(j){case 8:Xr(h,e[1],92),e[1]++,Xr(h,e[1],98);break x;case 9:Xr(h,e[1],92),e[1]++,Xr(h,e[1],Wa);break x;case 10:Xr(h,e[1],92),e[1]++,Xr(h,e[1],z1);break x;case 13:Xr(h,e[1],92),e[1]++,Xr(h,e[1],mr);break x;default:break e}}if(34>j)break r}Xr(h,e[1],92),e[1]++,Xr(h,e[1],j);break x}Xr(h,e[1],92),e[1]++,Xr(h,e[1],48+(j/y2|0)|0),e[1]++,Xr(h,e[1],48+((j/10|0)%10|0)|0),e[1]++,Xr(h,e[1],48+(j%10|0)|0);break x}Xr(h,e[1],j)}e[1]++;var I=N+1|0;if(T===N)break;var N=I}var m=h}var F=_1(m),M=Nx(F),z=kv(M+2|0,34);return cs(F,0,z,1,M),_1(z)}function oq(x,r){var e=i5(r),t=VG[1];switch(x[2]){case 0:var u=g1;break;case 1:var u=fe;break;case 2:var u=69;break;case 3:var u=sn;break;case 4:var u=71;break;case 5:var u=t;break;case 6:var u=Be;break;case 7:var u=72;break;default:var u=70}var i=fq(16);switch($3(i,37),x[1]){case 0:break;case 1:$3(i,43);break;default:$3(i,32)}return 8<=x[2]&&$3(i,35),$3(i,46),L1(i,Z0+e),$3(i,u),sq(i)}function l5(x,r){if(13>x)return r;var e=[0,0],t=Nx(r)-1|0,u=0;if(t>=0)for(var i=u;;){9>=J0(r,i)+e1>>>0&&e[1]++;var c=i+1|0;if(t===i)break;var i=c}var v=e[1],a=S2(Nx(r)+((v-1|0)/3|0)|0),l=[0,0];function m(F){ua(a,l[1],F),l[1]++}var h=[0,((v-1|0)%3|0)+1|0],T=Nx(r)-1|0,b=0;if(T>=0)for(var N=b;;){var j=J0(r,N);9>>0||(h[1]===0&&(m(95),h[1]=3),h[1]+=-1),m(j);var I=N+1|0;if(T===N)break;var N=I}return _1(a)}function oW(x,r){switch(x){case 1:var e=HJ;break;case 2:var e=ZJ;break;case 4:var e=rG;break;case 5:var e=eG;break;case 6:var e=tG;break;case 7:var e=nG;break;case 8:var e=uG;break;case 9:var e=iG;break;case 10:var e=fG;break;case 11:var e=cG;break;case 0:case 13:var e=QJ;break;case 3:case 14:var e=xG;break;default:var e=sG}return l5(x,Wm(e,r))}function vW(x,r){switch(x){case 1:var e=TG;break;case 2:var e=EG;break;case 4:var e=AG;break;case 5:var e=PG;break;case 6:var e=IG;break;case 7:var e=NG;break;case 8:var e=jG;break;case 9:var e=CG;break;case 10:var e=OG;break;case 11:var e=DG;break;case 0:case 13:var e=bG;break;case 3:case 14:var e=SG;break;default:var e=FG}return l5(x,Wm(e,r))}function lW(x,r){switch(x){case 1:var e=LG;break;case 2:var e=MG;break;case 4:var e=UG;break;case 5:var e=BG;break;case 6:var e=XG;break;case 7:var e=YG;break;case 8:var e=zG;break;case 9:var e=KG;break;case 10:var e=JG;break;case 11:var e=GG;break;case 0:case 13:var e=RG;break;case 3:case 14:var e=qG;break;default:var e=WG}return l5(x,Wm(e,r))}function pW(x,r){switch(x){case 1:var e=oG;break;case 2:var e=vG;break;case 4:var e=pG;break;case 5:var e=kG;break;case 6:var e=mG;break;case 7:var e=hG;break;case 8:var e=dG;break;case 9:var e=yG;break;case 10:var e=gG;break;case 11:var e=wG;break;case 0:case 13:var e=aG;break;case 3:case 14:var e=lG;break;default:var e=_G}return l5(x,yM(e,r))}function oa(x,r,e){function t(h){switch(x[1]){case 0:var T=45;break;case 1:var T=43;break;default:var T=32}return Jz(e,r,T)}function u(h){var T=Iz(e);return T===3?e<0?QG:HG:4<=T?ZG:h}switch(x[2]){case 5:for(var i=DN(oq(x,r),e),c=0,v=Nx(i);;){if(c===v)var a=0;else{var l=q2(i,c)+Ja|0;x:{if(23>>0){if(l===55)break x}else if(21>>0)break x;var c=c+1|0;continue}var a=1}var m=a?i:qx(i,$G);return u(m)}case 6:return t(O);case 7:return _1($J(zM,Ot(t(O))));case 8:return u(t(O));default:return DN(oq(x,r),e)}}function U6(x,r,e,t){for(var u=r,i=e,c=t;;){if(typeof c==\"number\")return u(i);switch(c[0]){case 0:var v=c[1];return function(y0){return Lr(u,[5,i,y0],v)};case 1:var a=c[1];return function(y0){x:{r:{if(40<=y0){if(y0===92){var N0=zJ;break x}if(Br>y0)break r}else{if(32<=y0){if(39>y0)break r;var N0=KJ;break x}if(14>y0)switch(y0){case 8:var N0=JJ;break x;case 9:var N0=GJ;break x;case 10:var N0=WJ;break x;case 13:var N0=VJ;break x}}var Y0=S2(4);Xr(Y0,0,92),Xr(Y0,1,48+(y0/y2|0)|0),Xr(Y0,2,48+((y0/10|0)%10|0)|0),Xr(Y0,3,48+(y0%10|0)|0);var N0=_1(Y0);break x}var L=S2(1);Xr(L,0,y0);var N0=_1(L)}var S0=Nx(N0),K0=kv(S0+2|0,39);return cs(N0,0,K0,1,S0),Lr(u,[4,i,_1(K0)],a)};case 2:return sj(u,i,c[2],c[1],function(y0){return y0});case 3:return sj(u,i,c[2],c[1],aW);case 4:return p5(u,i,c[4],c[2],c[3],oW,c[1]);case 5:return p5(u,i,c[4],c[2],c[3],vW,c[1]);case 6:return p5(u,i,c[4],c[2],c[3],lW,c[1]);case 7:return p5(u,i,c[4],c[2],c[3],pW,c[1]);case 8:var l=c[4],m=c[3],h=c[2],T=c[1];if(typeof h==\"number\"){if(typeof m==\"number\")return m?function(y0,Y0){return Lr(u,[4,i,oa(T,y0,Y0)],l)}:function(y0){return Lr(u,[4,i,oa(T,ij(T),y0)],l)};var b=m[1];return function(y0){return Lr(u,[4,i,oa(T,b,y0)],l)}}if(h[0]===0){var N=h[2],j=h[1];if(typeof m==\"number\")return m?function(y0,Y0){return Lr(u,[4,i,$e(j,N,oa(T,y0,Y0))],l)}:function(y0){return Lr(u,[4,i,$e(j,N,oa(T,ij(T),y0))],l)};var I=m[1];return function(y0){return Lr(u,[4,i,$e(j,N,oa(T,I,y0))],l)}}var F=h[1];if(typeof m==\"number\")return m?function(y0,Y0,L){return Lr(u,[4,i,$e(F,y0,oa(T,Y0,L))],l)}:function(y0,Y0){return Lr(u,[4,i,$e(F,y0,oa(T,ij(T),Y0))],l)};var M=m[1];return function(y0,Y0){return Lr(u,[4,i,$e(F,y0,oa(T,M,Y0))],l)};case 9:return sj(u,i,c[2],c[1],YJ);case 10:var i=[7,i],c=c[1];break;case 11:var i=[2,i,c[1]],c=c[2];break;case 12:var i=[3,i,c[1]],c=c[2];break;case 13:var z=c[3],B=c[2],K=fq(16);fj(K,B);var n0=sq(K);return function(y0){return Lr(u,[4,i,n0],z)};case 14:var $=c[3],H=c[2];return function(y0){var Y0=y0[1],L=h2(Y0,B2(c1(H)));if(typeof L[2]==\"number\")return Lr(u,i,j2(L[1],$));throw W0(E1,1)};case 15:var t0=c[1];return function(y0,Y0){return Lr(u,[6,i,function(L){return p(y0,L,Y0)}],t0)};case 16:var c0=c[1];return function(y0){return Lr(u,[6,i,y0],c0)};case 17:var i=[0,i,c[1]],c=c[2];break;case 18:var r0=c[1];if(r0[0]===0){let y0=i,Y0=u,L=c[2];var u=function(A0){return Lr(Y0,[1,y0,[0,A0]],L)},i=0,c=r0[1][1]}else{let y0=i,Y0=u,L=c[2];var u=function(A0){return Lr(Y0,[1,y0,[1,A0]],L)},i=0,c=r0[1][1]}break;case 19:throw W0([0,Nr,xW],1);case 20:var v0=c[3],a0=[8,i,rW];return function(y0){return Lr(u,a0,v0)};case 21:var g0=c[2];return function(y0){return Lr(u,[4,i,Wm(XR,y0)],g0)};case 22:var i0=c[1];return function(y0){return Lr(u,[5,i,y0],i0)};case 23:var s0=c[2],d0=c[1];if(typeof d0==\"number\")switch(d0){case 0:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 1:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 2:throw W0([0,Nr,eW],1);default:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0])}switch(d0[0]){case 0:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 1:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 2:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 3:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 4:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 5:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 6:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 7:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 8:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);case 9:var w0=d0[2];return x<50?cj(x+1|0,u,i,w0,s0):J2(cj,[0,u,i,w0,s0]);case 10:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0]);default:return x<50?v2(x+1|0,u,i,s0):J2(v2,[0,u,i,s0])}default:var M0=c[3],C0=c[1],D0=d(c[2],0);return x<50?aj(x+1|0,u,i,M0,C0,D0):J2(aj,[0,u,i,M0,C0,D0])}}}function Lr(x,r,e){return n5(U6(0,x,r,e))}function cj(x,r,e,t,u){if(typeof t==\"number\")return x<50?v2(x+1|0,r,e,u):J2(v2,[0,r,e,u]);switch(t[0]){case 0:var i=t[1];return function(B){return pt(r,e,i,u)};case 1:var c=t[1];return function(B){return pt(r,e,c,u)};case 2:var v=t[1];return function(B){return pt(r,e,v,u)};case 3:var a=t[1];return function(B){return pt(r,e,a,u)};case 4:var l=t[1];return function(B){return pt(r,e,l,u)};case 5:var m=t[1];return function(B){return pt(r,e,m,u)};case 6:var h=t[1];return function(B){return pt(r,e,h,u)};case 7:var T=t[1];return function(B){return pt(r,e,T,u)};case 8:var b=t[2];return function(B){return pt(r,e,b,u)};case 9:var N=t[3],j=t[2],I=h1(c1(t[1]),j);return function(B){return pt(r,e,oe(I,N),u)};case 10:var F=t[1];return function(B,K){return pt(r,e,F,u)};case 11:var M=t[1];return function(B){return pt(r,e,M,u)};case 12:var z=t[1];return function(B){return pt(r,e,z,u)};case 13:throw W0([0,Nr,tW],1);default:throw W0([0,Nr,nW],1)}}function pt(x,r,e,t){return n5(cj(0,x,r,e,t))}function v2(x,r,e,t){var u=[8,e,uW];return x<50?U6(x+1|0,r,u,t):J2(U6,[0,r,u,t])}function sj(x,r,e,t,u){if(typeof t==\"number\")return function(a){return Lr(x,[4,r,u(a)],e)};if(t[0]===0){var i=t[2],c=t[1];return function(a){return Lr(x,[4,r,$e(c,i,u(a))],e)}}var v=t[1];return function(a,l){return Lr(x,[4,r,$e(v,a,u(l))],e)}}function p5(x,r,e,t,u,i,c){if(typeof t==\"number\"){if(typeof u==\"number\")return u?function(b,N){return Lr(x,[4,r,Q3(b,i(c,N))],e)}:function(b){return Lr(x,[4,r,i(c,b)],e)};var v=u[1];return function(b){return Lr(x,[4,r,Q3(v,i(c,b))],e)}}if(t[0]===0){var a=t[2],l=t[1];if(typeof u==\"number\")return u?function(b,N){return Lr(x,[4,r,$e(l,a,Q3(b,i(c,N)))],e)}:function(b){return Lr(x,[4,r,$e(l,a,i(c,b))],e)};var m=u[1];return function(b){return Lr(x,[4,r,$e(l,a,Q3(m,i(c,b)))],e)}}var h=t[1];if(typeof u==\"number\")return u?function(b,N,j){return Lr(x,[4,r,$e(h,b,Q3(N,i(c,j)))],e)}:function(b,N){return Lr(x,[4,r,$e(h,b,i(c,N))],e)};var T=u[1];return function(b,N){return Lr(x,[4,r,$e(h,b,Q3(T,i(c,N)))],e)}}function aj(x,r,e,t,u,i){if(u){var c=u[1];return function(a){return kW(r,e,t,c,d(i,a))}}var v=[4,e,i];return x<50?U6(x+1|0,r,v,t):J2(U6,[0,r,v,t])}function kW(x,r,e,t,u){return n5(aj(0,x,r,e,t,u))}function va(x,r){for(var e=r;;){if(typeof e==\"number\")return;switch(e[0]){case 0:var t=e[1],u=aq(e[2]);return va(x,t),N6(x,u);case 1:var i=e[2],c=e[1];if(i[0]===0){var v=i[1];va(x,c),N6(x,iW);var e=v}else{var a=i[1];va(x,c),N6(x,fW);var e=a}break;case 6:var l=e[2];return va(x,e[1]),d(l,x);case 7:va(x,e[1]),an(x);return;case 8:var m=e[2];return va(x,e[1]),R1(m);case 2:case 4:var h=e[2];return va(x,e[1]),N6(x,h);default:var T=e[2];va(x,e[1]),jM(x,T);return}}}function la(x,r){for(var e=r;;){if(typeof e==\"number\")return;switch(e[0]){case 0:var t=e[1],u=aq(e[2]);return la(x,t),ir(x,u);case 1:var i=e[2],c=e[1];if(i[0]===0){var v=i[1];la(x,c),ir(x,cW);var e=v}else{var a=i[1];la(x,c),ir(x,sW);var e=a}break;case 6:var l=e[2];return la(x,e[1]),ir(x,d(l,0));case 7:var e=e[1];break;case 8:var m=e[2];return la(x,e[1]),R1(m);case 2:case 4:var h=e[2];return la(x,e[1]),ir(x,h);default:var T=e[2];return la(x,e[1]),lt(x,T)}}}function vq(x,r){return Lr(function(e){return va(x,e),0},0,r[1])}function oj(x){return vq(pn,x)}function ar(x){return Lr(function(r){var e=$r(64);return la(e,r),G2(e)},0,x[1])}var vj=[0,0],mW=cn,hW=[0,[3,0,0],Vl],dW=qo,yW=[0,[4,0,0,0,0],O3],gW=Z0,wW=[0,[11,lF,[2,0,[2,0,0]]],\", %s%s\"],_W=[0,[12,40,[2,0,[2,0,[12,41,0]]]],\"(%s%s)\"],bW=Z0,TW=Z0,EW=[0,[12,40,[2,0,[12,41,0]]],\"(%s)\"],SW=\"Out of memory\",AW=\"Stack overflow\",PW=\"Pattern matching failed\",IW=\"Assertion failed\",NW=\"Undefined recursive module\",jW=\"Raised at\",CW=\"Re-raised at\",OW=\"Raised by primitive operation at\",DW=\"Called from\",FW=[0,[12,32,[4,0,0,0,0]],\" %d\"],RW=\" (inlined)\",LW=[0,[2,0,[12,32,[2,0,[11,' in file \"',[2,0,[12,34,[2,0,[11,\", line\",[2,0,[11,AO,FK]]]]]]]]]],'%s %s in file \"%s\"%s, line%s, characters %d-%d'],MW=Z0,qW=[0,[11,\"s \",[4,0,0,0,[12,45,[4,0,0,0,0]]]],\"s %d-%d\"],UW=[0,[2,0,[11,\" unknown location\",0]],\"%s unknown location\"],BW=[0,[2,0,[12,10,0]],`%s\n`];function lj(x,r){var e=x[1+r];if(!(1-(typeof e==\"number\"?1:0)))return d(ar(yW),e);if(pv(e)===g3)return d(ar(hW),e);if(pv(e)!==lE)return dW;for(var t=DN(\"%.12g\",e),u=0,i=Nx(t);;){if(i<=u)return qx(t,mW);var c=q2(t,u);x:{if(48<=c){if(58>c)break x}else if(c===45)break x;return t}var u=u+1|0}}function lq(x,r){if(x.length-1<=r)return gW;var e=lq(x,r+1|0),t=lj(x,r);return p(ar(wW),t,e)}function B6(x){x:{r:{for(var r=R3(vj);r;){e:{var e=r[2],t=r[1];try{var u=d(t,x)}catch{break e}if(u)break r}var r=e}var i=0;break x}var i=[0,u[1]]}if(i)return i[1];if(x===JN)return SW;if(x===RM)return AW;if(x[1]===FM){var c=x[2],v=c[3],a=c[2],l=c[1];return KN(ar(GN),l,a,v,v+5|0,PW)}if(x[1]===Nr){var m=x[2],h=m[3],T=m[2],b=m[1];return KN(ar(GN),b,T,h,h+6|0,IW)}if(x[1]===I6){var N=x[2],j=N[3],I=N[2],F=N[1];return KN(ar(GN),F,I,j,j+6|0,NW)}if(pv(x)===0){var M=x.length-1,z=x[1][1];if(2>>0)var B=lq(x,2),K=lj(x,1),n0=p(ar(_W),K,B);else switch(M){case 0:var n0=bW;break;case 1:var n0=TW;break;default:var $=lj(x,1),n0=d(ar(EW),$)}var H=[0,z,[0,n0]]}else var H=[0,x[1],0];var t0=H[2],c0=H[1];return t0?qx(c0,t0[1]):c0}function pj(x,r){var e=Bz(r),t=e.length-1-1|0,u=0;if(t>=0)for(var i=u;;){var c=N2(e,i)[1+i];let n0=i;var v=function(H){return H?n0===0?jW:CW:n0===0?OW:DW};if(c[0]===0){if(c[3]===c[6])var a=c[3],h=d(ar(FW),a);else var l=c[6],m=c[3],h=p(ar(qW),m,l);var T=c[7],b=c[4],N=c[8]?RW:MW,j=c[2],I=c[9],F=v(c[1]),z=[0,DK(ar(LW),F,I,j,N,h,b,T)]}else if(c[1])var z=0;else var M=v(0),z=[0,d(ar(UW),M)];if(z){var B=z[1];d(vq(x,BW),B)}var K=i+1|0;if(t===i)break;var i=K}}function kj(x){for(;;){var r=R3(vj),e=1-Bm(vj,r,[0,x,r]);if(!e)return e}}var XW=[0,Z0,`(Cannot print locations:\n bytecode executable program file not found)`,`(Cannot print locations:\n bytecode executable program file appears to be corrupt)`,`(Cannot print locations:\n bytecode executable program file has wrong magic number)`,`(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)`].slice(),YW=[0,[11,KE,[2,0,[12,10,0]]],qR],zW=[0],KW=\"Fatal error: out of memory in uncaught exception handler\",JW=[0,[11,KE,[2,0,[12,10,0]]],qR],GW=[0,[11,\"Fatal error in uncaught exception handler: exception \",[2,0,[12,10,0]]],`Fatal error in uncaught exception handler: exception %s\n`];YN(qO,function(x,r){try{try{var e=r?zW:dM(0);try{VN(O)}catch{}try{var t=B6(x);d(oj(YW),t),pj(pn,e);var u=lK(0);if(u<0){var i=i5(u);BM(N2(XW,i)[1+i])}var c=an(pn),v=c}catch(b){var a=U2(b),l=B6(x);d(oj(JW),l),pj(pn,e);var m=B6(a);d(oj(GW),m),pj(pn,dM(0));var v=an(pn)}var h=v}catch(b){var T=U2(b);if(T!==JN)throw W0(T,0);var h=BM(KW)}return h}catch{return 0}});var WW=[n2,\"Stdlib.Fun.Finally_raised\",as(0)],VW=\"Fun.Finally_raised: \";kj(function(x){return x[1]===WW?[0,qx(VW,B6(x[2]))]:0});var $W=\"Digest.BLAKE2: wrong hash size\";function mj(x){var r=x[1]<1?1:0,e=r||(64i0){var a0=s0;continue}var d0=i0}else var d0=g0;var w0=d0;break}else var w0=$;var M0=w0-$|0;return 0<=M0?H3(x,[0,aV,M0+t0|0,sV]):dv(x,[0,vV,w0+H|0,oV],x[6]);case 3:var C0=e[2],D0=e[1];if(x[8]<(x[6]-x[9]|0)){var I0=V3(x[2]);if(I0){var j0=I0[1],y0=j0[2],Y0=j0[1];x[9]=Y0-1>>>0&&wq(x,y0)}else m5(x)}var L=x[9]-D0|0,N0=C0===1?1:x[9]=x[14]);)Aq(x,O);return x[13]=yq,_q(x),r&&m5(x),x[12]=1,x[13]=1,ZN(x[28]),yj(x[1]),L6(x[2]),L6(x[3]),L6(x[4]),L6(x[5]),x[10]=0,x[14]=0,x[9]=x[6],Sq(x,0,3)}function wj(x,r,e){var t=x[14]=e)return H0(x[17],jq,0,e);H0(x[17],jq,0,80);var e=e-80|0}}function EV(x){return x[1]===hj?qx(dV,qx(x[2],hV)):yV}function SV(x){return x[1]===hj?qx(wV,qx(x[2],gV)):_V}function AV(x){return 0}function PV(x){return 0}function bj(x,r,e,t,u){var i=eq(O),c=[0,dq,bV,0];xj(c,i);var v=R6(O);yj(v),mv([0,1,c],v);var a=78,l=R6(O),m=R6(O),h=R6(O);return[0,v,R6(O),h,m,l,a,10,68,a,0,1,1,1,1,mV,TV,x,r,e,t,u,0,0,EV,SV,AV,PV,i]}function Cq(x,r){var e=bj(x,r,function(t){return 0},function(t){return 0},function(t){return 0});return e[19]=function(t){return _j(e,O)},e[20]=function(t){return Z3(e,t)},e[21]=function(t){return Z3(e,t)},e}function Oq(x){return Cq(function(r,e,t){return UM(x,r,e,t)},function(r){return an(x)})}function Tj(x){return Cq(function(r,e,t){return ej(x,r,e,t)},function(r){return 0})}var Ej=ZP;function Dq(x){return $r(Ej)}var Fq=Dq(O),IV=Oq(qM),NV=Oq(pn),jV=Tj(Fq),Rq=ls(0,Dq);M6(Rq,Fq),M6(ls(0,function(x){return Tj(hv(Rq))}),jV);function Lq(x,r,e,t){return ej(hv(x),r,e,t)}function Mq(x,r,e){var t=hv(r),u=t[2];return UM(x,G2(t),0,u),an(x),t[2]=0,0}var qq=ls(0,function(x){return $r(Ej)}),Uq=ls(0,function(x){return $r(Ej)}),Bq=ls(0,function(x){var r=bj(function(e,t,u){return Lq(qq,e,t,u)},function(e){return Mq(qM,qq,O)},function(e){return 0},function(e){return 0},function(e){return 0});return r[19]=function(e){return _j(r,O)},r[20]=function(e){return Z3(r,e)},r[21]=function(e){return Z3(r,e)},iq(function(e){return yv(r,O)}),r});M6(Bq,IV);var Xq=ls(0,function(x){var r=bj(function(e,t,u){return Lq(Uq,e,t,u)},function(e){return Mq(pn,Uq,O)},function(e){return 0},function(e){return 0},function(e){return 0});return r[19]=function(e){return _j(r,O)},r[20]=function(e){return Z3(r,e)},r[21]=function(e){return Z3(r,e)},iq(function(e){return yv(r,O)}),r});M6(Xq,NV);var CV=\"Buffer.sub\",OV=[0,0,4],DV=[0,[11,\"invalid box description \",[3,0,0]],\"invalid box description %S\"],FV=Z0,RV=Z0,LV=Z0,MV=Z0;function Yq(x,r){var e=$r(16),t=Tj(e);x(t,r),yv(t,O);var u=e[2];if(2>u)return G2(e);var i=u-2|0,c=1;return 0<=i&&(e[2]-i|0)>=1?G3(e[1][1],c,i):R1(CV)}function kt(x,r){if(typeof r!=\"number\"){x:{r:{e:{switch(r[0]){case 0:var e=r[2];if(kt(x,r[1]),typeof e==\"number\")switch(e){case 0:return Aq(x,O);case 1:return Pq(x,O);case 2:return yv(x,O);case 3:var t=x[14]>>0)break;var $=$+1|0}break t}var H=T1(F,n0,$-n0|0),t0=K($);t:n:{for(var c0=t0;;){if(c0===z)break n;var r0=q2(F,c0);if(48<=r0){if(58<=r0)break}else if(r0!==45)break;var c0=c0+1|0}break t}if(t0===c0)var v0=0;else try{var a0=vt(T1(F,t0,c0-t0|0)),v0=a0}catch(sx){var g0=U2(sx);if(g0[1]!==vn)throw W0(g0,0);var v0=B(O)}K(c0)!==z&&B(O);t:{if(P(H,Z0)&&P(H,iI)){if(!P(H,\"h\")){var i0=0;break t}if(!P(H,\"hov\")){var i0=3;break t}if(!P(H,\"hv\")){var i0=2;break t}if(P(H,YF)){var i0=B(O);break t}var i0=1;break t}var i0=4}var M=[0,v0,i0]}return Sq(x,M[1],M[2]);case 2:var s0=r[1];if(typeof s0!=\"number\"&&s0[0]===0){var d0=s0[2];if(typeof d0!=\"number\"&&d0[0]===1){var w0=r[2],M0=d0[2],C0=s0[1];break r}}var S0=r[2],K0=s0;break x;case 3:var D0=r[1];if(typeof D0!=\"number\"&&D0[0]===0){var I0=D0[2];if(typeof I0!=\"number\"&&I0[0]===1){var j0=r[2],y0=I0[2],Y0=D0[1];break}}var ex=r[2],xx=D0;break e;case 4:var L=r[1];if(typeof L!=\"number\"&&L[0]===0){var N0=L[2];if(typeof N0!=\"number\"&&N0[0]===1){var w0=r[2],M0=N0[2],C0=L[1];break r}}var S0=r[2],K0=L;break x;case 5:var A0=r[1];if(typeof A0!=\"number\"&&A0[0]===0){var $0=A0[2];if(typeof $0!=\"number\"&&$0[0]===1){var j0=r[2],y0=$0[2],Y0=A0[1];break}}var ex=r[2],xx=A0;break e;case 6:var tx=r[2];return kt(x,r[1]),d(tx,x);case 7:return kt(x,r[1]),yv(x,O);default:var z0=r[2];return kt(x,r[1]),R1(z0)}return kt(x,Y0),wj(x,y0,s5(1,j0))}return kt(x,xx),Y6(x,ex)}return kt(x,C0),wj(x,M0,w0)}return kt(x,K0),Nq(x,Nx(S0),S0)}}function s1(x){return function(r){return Lr(function(e){return kt(x,e),0},0,r[1])}}var qV=\"Array.sub\",UV=\"first domain already spawned\",BV=[0,\"camlinternalOO.ml\",Vb,50],XV=[0,zR,72,5],YV=[0,zR,81,2],zV=\"/tmp\",KV=cn,JV=[0,\"src/wtf8.ml\",65,9],GV=[0,\"src/third-party/sedlex/flow_sedlexing.ml\",WE,4],WV=\"Flow_sedlexing.MalFormed\",VV=$l,$V=p3,QV=l3,HV=v6,ZV=av,x$=[0,[12,40,[18,[1,[0,[11,_i,0],_i]],[11,\"File_key.LibFile\",[17,[0,Ua,1,0],0]]]],\"(@[<2>File_key.LibFile@ \"],r$=[0,[3,0,0],Vl],e$=[0,[17,0,[12,41,0]],wp],t$=[0,[12,40,[18,[1,[0,[11,_i,0],_i]],[11,\"File_key.SourceFile\",[17,[0,Ua,1,0],0]]]],\"(@[<2>File_key.SourceFile@ \"],n$=[0,[3,0,0],Vl],u$=[0,[17,0,[12,41,0]],wp],i$=[0,[12,40,[18,[1,[0,[11,_i,0],_i]],[11,\"File_key.JsonFile\",[17,[0,Ua,1,0],0]]]],\"(@[<2>File_key.JsonFile@ \"],f$=[0,[3,0,0],Vl],c$=[0,[17,0,[12,41,0]],wp],s$=[0,[12,40,[18,[1,[0,[11,_i,0],_i]],[11,\"File_key.ResourceFile\",[17,[0,Ua,1,0],0]]]],\"(@[<2>File_key.ResourceFile@ \"],a$=[0,[3,0,0],Vl],o$=[0,[17,0,[12,41,0]],wp],v$=[0,1],l$=[0,0],p$=[0,1],k$=[0,2],m$=[0,2],h$=[0,0],d$=[0,1],y$=[0,1],g$=[0,1],w$=[0,1],_$=[0,2],b$=[0,1],T$=[0,1],E$=[0,0,0],S$=[0,0,0],A$=[0,B1,Gi,Fi,M7,K1,_f,c7,Vf,nc,df,Ai,gu,gi,nu,S7,s7,Ru,Tf,D7,Yu,zi,N7,zn,Rf,fu,Z7,Xn,Kf,is,Jf,rf,cf,ts,gc,U7,ze,Wn,Oi,x7,Nc,Ti,Xf,Oc,Ge,Tc,Su,W7,i7,Bc,zu,xu,k7,Xe,Ju,v7,pf,r7,af,o7,qc,Me,wf,li,Lu,A7,ru,Mi,Ji,g7,Df,Q7,kc,Li,f7,jn,kf,_u,C7,fi,Ic,oi,vu,_e,Dc,Kn,Mf,Du,rs,Un,Gn,e7,Nf,ac,Bn,Jn,Si,Ff,Qi,Tu,Ki,On,Pc,Nu,Xu,mi,Cu,Fu,Gu,Vn,vi,jc,Ei,Qc,Sf,Ec,Au,bu,si,cu,Mn,hf,Vc,Zi,L7,ji,Bf,Hi,lf,J7,uu,m7,Jc,ec,su,mu,$7,Yc,Vu,ne,l7,qn,yc,Wu,$i,eu,X7,uf,If,Wc,uc,lc,O7,Zf,Eu,Pf,Hn,T7,B7,Ef,y7,$c,Ku,wi,di,pc,Rn,Iu,Mu,z7,Wi,ie,Wf,Mc,Yf,du,mf,Xc,Di,Dn,X1,yi,I7,Uc,Pt,ki,dc,xs,K7,Qn,$u,wu,ri,Ri,h7,$f,xc,Bu,V7,tf,Uf,ns,pu,ef,Yn,zc,pi,xi,Ci,Zc,nf,t7,p7,gf,Zu,w7,oc,Fc,u7,n1,Cn,mc,xf,us,d7,Fn,Pi,cc,Af,wc,vc,es,_7,Sc,bf,rc,ic,au,yu,b7,be,Bi,ju,Nn,Hf,sc,ni,_c,ii,Vi,iu,Ii,H7,Lf,Lc,Ye,Le,qi,Yi,qu,Ac,Rc,F7,tu,Of,fc,Hc,Ln,tc,bi,jf,Y7,Xi,R7,ff,hi,a7,zf,Cf,P7,Uu,ai,ei,Ou,yf,Pu,lu,of,Zn,Qu,n7,Ni,ti,fs,Ke,G7,bc,fn,j7,E7,Hu,Kc,$n,ou,ku,ci,hc,Ui,Gf,xn,sf],P$=[0,Bc,Ku,xc,ki,ri,fs,Gu,Ki,O7,z7,bc,fu,Gn,Ge,rs,mc,L7,Hi,yf,ts,Si,B7,vi,Wf,y7,ic,_7,Gi,_u,K7,xi,f7,$i,sc,Of,xs,rc,Qc,Pt,M7,gf,Df,Vi,Ni,Bu,n7,Hn,cc,wf,$u,Ci,Oc,Pc,I7,W7,Mn,du,au,Wu,Ei,ai,hi,Dc,sf,ru,ji,bi,N7,Tu,Lu,Wc,Cf,e7,Me,Jn,Ri,Kn,Sf,Zf,T7,dc,ne,Yi,Xn,vc,m7,lf,uc,l7,$f,$7,g7,Ui,_c,Fn,bu,r7,vu,Gf,b7,ti,k7,K1,li,H7,s7,v7,yi,cu,Hu,pi,U7,pc,Ou,mi,Xf,be,t7,Z7,B1,qn,gc,Ii,Mi,gu,Ic,Lf,af,Kc,Ai,ff,iu,Fu,Vf,uu,Ef,ku,Jf,Mu,Sc,oc,Un,xf,yc,fi,Zu,Tf,is,jf,_f,rf,zu,Ru,Su,df,P7,Mc,Zc,a7,Vu,h7,Y7,nc,R7,hf,Cu,X7,fc,$n,si,of,ei,Ln,Jc,C7,uf,tc,Au,X1,Xe,S7,D7,Tc,kf,ze,Ye,Vn,Uc,Du,u7,$c,_e,G7,ns,bf,Yf,zf,Cn,V7,wi,wu,nu,es,qc,Yn,Di,Bf,wc,d7,Rc,Xu,xu,On,mf,ac,kc,Kf,Qi,A7,Bn,Yu,ni,J7,Zn,ii,j7,Rn,Ti,yu,cf,Qn,o7,Dn,Ff,lu,Nu,Pf,Uu,mu,Wi,Bi,Rf,xn,c7,ju,Qu,zn,Nn,Eu,di,qu,eu,Li,jc,Iu,w7,su,If,zi,x7,ou,Zi,F7,jn,ci,E7,n1,oi,Xi,Fc,Vc,pu,ef,i7,Le,tf,Hc,Ji,Pi,Hf,Oi,Nc,ec,zc,us,gi,nf,Yc,Mf,fn,Xc,Pu,lc,Nf,Uf,Lc,Ju,Af,Ke,hc,ie,qi,Fi,tu,pf,p7,Ac,Q7,Wn,Ec],I$=UR,N$=VF,j$=IF,C$=YO,O$=ay,D$=WL,F$=x6,R$=uD,L$=XF,M$=CF,q$=NO,U$=q7,B$=Ue,X$=ID,Y$=yF,z$=ue,K$=YL,J$=ND,G$=Cp,W$=om,V$=qa,$$=Gl,Q$=kR,H$=xD,Z$=OD,xQ=qD,rQ=jF,eQ=VO,tQ=ZO,nQ=aL,uQ=CD,iQ=vR,fQ=AF,cQ=kO,sQ=oF,aQ=GL,oQ=iF,vQ=[0,[18,[1,[0,[11,_i,0],_i]],[11,\"{ \",0]],\"@[<2>{ \"],lQ=\"Loc.line\",pQ=[0,[18,[1,[0,0,Z0]],[2,0,[11,JD,[17,[0,Ua,1,0],0]]]],TF],kQ=[0,[4,0,0,0,0],O3],mQ=[0,[17,0,0],_A],hQ=[0,[12,59,[17,[0,Ua,1,0],0]],\";@ \"],dQ=f6,yQ=[0,[18,[1,[0,0,Z0]],[2,0,[11,JD,[17,[0,Ua,1,0],0]]]],TF],gQ=[0,[4,0,0,0,0],O3],wQ=[0,[17,0,0],_A],_Q=[0,[17,[0,Ua,1,0],[12,Ba,[17,0,0]]],\"@ }@]\"],bQ=Z0,TQ=\"Object literal may not have data and accessor property with the same name\",EQ=\"Object literal may not have multiple get/set accessors with the same name\",SQ=\"Unexpected token <. Remember, adjacent JSX elements must be wrapped in an enclosing parent tag\",AQ=\"`let [` is ambiguous in this position because it is either a `let` binding pattern, or a member expression.\",PQ=\"Async functions can only be declared at top level or immediately within another function.\",IQ=\"`await` is an invalid identifier in async functions\",NQ=\"`await` is not allowed in async function parameters.\",jQ=\"Computed properties must have a value.\",CQ=\"Constructor can't be an accessor.\",OQ=\"Constructor can't be an async function.\",DQ=\"Constructor can't be a generator.\",FQ=\"It is sufficient for your declare function to just have a Promise return type.\",RQ=\"async is an implementation detail and isn't necessary for your declare function statement. \",LQ=\"`declare` modifier can only appear on class fields.\",MQ=\"Unexpected token `=`. Initializers are not allowed in a `declare`.\",qQ=\"Unexpected token `=`. Initializers are not allowed in a `declare opaque type`.\",UQ=\"Classes may only have one constructor\",BQ=\"Rest element must be final element of an array pattern\",XQ=\"Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead.\",YQ=\"Enum members are separated with `,`. Replace `;` with `,`.\",zQ=\"`const` enums are not supported. Flow Enums are designed to allow for inlining, however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself.\",KQ=\"Expected an object pattern, array pattern, or an identifier but found an expression instead\",JQ=\"Missing comma between export specifiers\",GQ=\"Generators can only be declared at top level or immediately within another function.\",WQ=\"Getter should have zero parameters\",VQ=\"A getter cannot have a `this` parameter.\",$Q=\"Illegal break statement\",QQ=\"Illegal continue statement\",HQ=\"Illegal return statement\",ZQ=\"Illegal Unicode escape\",xH=\"Missing comma between import specifiers\",rH=\"It cannot be used with `import type` or `import typeof` statements\",eH=\"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. \",tH=\"Explicit inexact syntax cannot appear inside an explicit exact object type\",nH=\"Explicit inexact syntax can only appear inside an object type\",uH=\"Component params must be an identifier. If you'd like to destructure, you should use `name as {destructure}`\",iH=\"A bigint literal must be an integer\",fH=\"JSX value should be either an expression or a quoted JSX text\",cH=\"Invalid left-hand side in assignment\",sH=\"Invalid left-hand side in exponentiation expression\",aH=\"Invalid left-hand side in for-in\",oH=\"Invalid left-hand side in for-of\",vH=\"Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`.\",lH=\"Invalid regular expression\",pH=\"A bigint literal cannot use exponential notation\",kH=\"Tuple spread elements cannot be optional.\",mH=\"Tuple variance annotations can only be used with labeled tuple elements, e.g. `[+foo: number]`\",hH=\"`typeof` can only be used to get the type of variables.\",dH=\"JSX attributes must only be assigned a non-empty expression\",yH=\"Literals cannot be used as shorthand properties.\",gH=\"Malformed unicode\",wH=\"`match` only supports one argument\",_H=\"Object pattern can't contain methods\",bH=\"Expected at least one type parameter.\",TH=\"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",EH=\"More than one default clause in switch statement\",SH=\"Illegal newline after throw\",AH=\"Illegal newline before arrow\",PH=\"Missing catch or finally after try\",IH=\"Const must be initialized\",NH=\"Destructuring assignment must be initialized\",jH=\"An optional chain may not be used in a `new` expression.\",CH=\"Template literals may not be used in an optional chain.\",OH=\"Rest parameter must be final parameter of an argument list\",DH=\"Private fields may not be deleted.\",FH=\"Private fields can only be referenced from within a class.\",RH=\"Rest property must be final property of an object pattern\",LH=\"Setter should have exactly one parameter\",MH=\"A setter cannot have a `this` parameter.\",qH=\"Catch variable may not be eval or arguments in strict mode\",UH=\"Delete of an unqualified identifier in strict mode.\",BH=\"Duplicate data property in object literal not allowed in strict mode\",XH=\"Function name may not be eval or arguments in strict mode\",YH=\"Assignment to eval or arguments is not allowed in strict mode\",zH=\"Postfix increment/decrement may not have eval or arguments operand in strict mode\",KH=\"Prefix increment/decrement may not have eval or arguments operand in strict mode\",JH=\"Strict mode code may not include a with statement\",GH=\"Number literals with leading zeros are not allowed in strict mode.\",WH=\"Octal literals are not allowed in strict mode.\",VH=\"Strict mode function may not have duplicate parameter names\",$H=\"Parameter name eval or arguments is not allowed in strict mode\",QH='Illegal \"use strict\" directive in function with non-simple parameter list',HH=\"Use of reserved word in strict mode\",ZH=\"Variable name may not be eval or arguments in strict mode\",xZ=\"You may not access a private field through the `super` keyword.\",rZ=\"Flow does not support abstract classes.\",eZ=\"Flow does not support template literal types.\",tZ=\"A type annotation is required for the `this` parameter.\",nZ=\"Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared.\",uZ=\"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",iZ=\"The `this` parameter cannot be optional.\",fZ=\"The `this` parameter must be the first function parameter.\",cZ=\"A trailing comma is not permitted after the rest element\",sZ=\"Unexpected end of input\",aZ=\"Explicit inexact syntax must come at the end of an object type\",oZ=\"Opaque type aliases are not allowed in untyped mode\",vZ=\"Unexpected proto modifier\",lZ=\"Unexpected reserved word\",pZ=\"Unexpected reserved type\",kZ=\"Spreading a type is only allowed inside an object type\",mZ=\"Unexpected static modifier\",hZ=\"Unexpected `super` outside of a class method\",dZ=\"`super()` is only valid in a class constructor\",yZ=\"Type aliases are not allowed in untyped mode\",gZ=\"Type annotations are not allowed in untyped mode\",wZ=\"Type declarations are not allowed in untyped mode\",_Z=\"Type exports are not allowed in untyped mode\",bZ=\"Type imports are not allowed in untyped mode\",TZ=\"Interfaces are not allowed in untyped mode\",EZ=\"Unexpected variance sigil\",SZ=\"Found a decorator in an unsupported position.\",AZ=\"Invalid regular expression: missing /\",PZ=\"Unexpected whitespace between `#` and identifier\",IZ=\"`yield` is an invalid identifier in generators\",NZ=\"Yield expression not allowed in formal parameter\",jZ=[0,[11,\"Duplicate export for `\",[2,0,[12,96,0]]],\"Duplicate export for `%s`\"],CZ=[0,[11,\"Private fields may only be declared once. `#\",[2,0,[11,\"` is declared more than once.\",0]]],\"Private fields may only be declared once. `#%s` is declared more than once.\"],OZ=[0,[11,\"bigint enum members need to be initialized, e.g. `\",[2,0,[11,\" = 1n,` in enum `\",[2,0,[11,Hs,0]]]]],\"bigint enum members need to be initialized, e.g. `%s = 1n,` in enum `%s`.\"],DZ=[0,[11,\"Boolean enum members need to be initialized. Use either `\",[2,0,[11,\" = true,` or `\",[2,0,[11,\" = false,` in enum `\",[2,0,[11,Hs,0]]]]]]],\"Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`.\"],FZ=[0,[11,\"Enum member names need to be unique, but the name `\",[2,0,[11,\"` has already been used before in enum `\",[2,0,[11,Hs,0]]]]],\"Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`.\"],RZ=[0,[11,ZD,[2,0,[11,\"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",0]]],\"Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\"],LZ=\"The `...` must come at the end of the enum body. Remove the trailing comma.\",MZ=\"The `...` must come after all enum members. Move it to the end of the enum body.\",qZ=[0,[11,\"Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `\",[2,0,[11,Hs,0]]],\"Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `%s`.\"],UZ=[0,[11,\"Enum type `\",[2,0,[11,\"` is not valid. \",[2,0,0]]]],\"Enum type `%s` is not valid. %s\"],BZ=[0,[11,\"Supplied enum type is not valid. \",[2,0,0]],\"Supplied enum type is not valid. %s\"],XZ=[0,[11,\"Enum member names and initializers are separated with `=`. Replace `\",[2,0,[11,\":` with `\",[2,0,[11,\" =`.\",0]]]]],\"Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`.\"],YZ=[0,[11,ZD,[2,0,[11,\"` has type `\",[2,0,[11,\"`, so the initializer of `\",[2,0,[11,\"` needs to be a \",[2,0,[11,\" literal.\",0]]]]]]]]],\"Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal.\"],zZ=[0,[11,\"Symbol enum members cannot be initialized. Use `\",[2,0,[11,\",` in enum `\",[2,0,[11,Hs,0]]]]],\"Symbol enum members cannot be initialized. Use `%s,` in enum `%s`.\"],KZ=[0,[11,\"The enum member initializer for `\",[2,0,[11,\"` needs to be a literal (either a boolean, number, or string) in enum `\",[2,0,[11,Hs,0]]]]],\"The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`.\"],JZ=[0,[11,\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `\",[2,0,[11,\"`, consider using `\",[2,0,[11,\"`, in enum `\",[2,0,[11,Hs,0]]]]]]],\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`.\"],GZ=[0,[11,\"Number enum members need to be initialized, e.g. `\",[2,0,[11,\" = 1,` in enum `\",[2,0,[11,Hs,0]]]]],\"Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`.\"],WZ=[0,[11,\"String enum members need to consistently either all use initializers, or use no initializers, in enum \",[2,0,[12,46,0]]],\"String enum members need to consistently either all use initializers, or use no initializers, in enum %s.\"],VZ=[0,[11,\"Expected corresponding JSX closing tag for \",[2,0,0]],\"Expected corresponding JSX closing tag for %s\"],$Z=\"immediately within another function.\",QZ=\"In strict mode code, functions can only be declared at top level or \",HZ=\"inside a block, or as the body of an if statement.\",ZZ=\"In non-strict mode code, functions can only be declared at top level, \",x00=\"static \",r00=Z0,e00=\"methods\",t00=\"fields\",n00=OR,u00=[0,[11,\"Classes may not have \",[2,0,[2,0,[11,\" named `\",[2,0,[11,Hs,0]]]]]],\"Classes may not have %s%s named `%s`.\"],i00=\"Components use `renders` instead of `:` to annotate the render type of a component.\",f00=nR,c00=Z0,s00=[0,[11,\"String params require local bindings using `as` renaming. You can use `'\",[2,0,[11,\"' as \",[2,0,[2,0,[11,\": ` \",0]]]]]],\"String params require local bindings using `as` renaming. You can use `'%s' as %s%s: ` \"],a00=\"Remove the period.\",o00=\"Indexed access uses bracket notation.\",v00=[0,[11,\"Invalid indexed access. \",[2,0,[11,\" Use the format `T[K]`.\",0]]],\"Invalid indexed access. %s Use the format `T[K]`.\"],l00=[0,[11,\"Invalid flags supplied to RegExp constructor '\",[2,0,[12,39,0]]],\"Invalid flags supplied to RegExp constructor '%s'\"],p00=xn,k00=G4,m00=[0,[11,\"In match \",[2,0,[11,\" pattern, the rest must be the last element in the pattern\",0]]],\"In match %s pattern, the rest must be the last element in the pattern\"],h00=[0,[11,\"JSX element \",[2,0,[11,\" has no corresponding closing tag.\",0]]],\"JSX element %s has no corresponding closing tag.\"],d00=[0,[11,rR,[2,0,[11,\"`. Parentheses are required to combine `??` with `&&` or `||` expressions.\",0]]],\"Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions.\"],y00=[0,[2,0,[11,\" '\",[2,0,[11,\"' has already been declared\",0]]]],\"%s '%s' has already been declared\"],g00=Z0,w00=Rl,_00=\" You can try using JavaScript private fields by prepending `#` to the field name.\",b00=h6,T00=\" Fields and methods are public by default. You can simply omit the `public` keyword.\",E00=l6,S00=[0,[11,\"Flow does not support using `\",[2,0,[11,\"` in classes.\",[2,0,0]]]],\"Flow does not support using `%s` in classes.%s\"],A00=[0,[11,\"Private fields must be declared before they can be referenced. `#\",[2,0,[11,\"` has not been declared.\",0]]],\"Private fields must be declared before they can be referenced. `#%s` has not been declared.\"],P00=[0,[11,HF,[2,0,0]],\"Unexpected %s\"],I00=[0,[11,rR,[2,0,[11,\"`. Did you mean `\",[2,0,[11,\"`?\",0]]]]],\"Unexpected token `%s`. Did you mean `%s`?\"],N00=[0,[11,HF,[2,0,[11,\", expected \",[2,0,0]]]],\"Unexpected %s, expected %s\"],j00=[0,[11,\"Undefined label '\",[2,0,[12,39,0]]],\"Undefined label '%s'\"],C00=\"Parse_error.Error\",O00=[0,[0,36,37],[0,48,58],[0,65,91],[0,95,96],[0,97,rn],[0,Ed,Uw],[0,JE,yy],[0,K9,p6],[0,mA,gp],[0,a3,gg],[0,pd,ep],[0,n2,706],[0,BO,722],[0,736,741],[0,748,749],[0,750,751],[0,768,885],[0,886,888],[0,890,894],[0,895,896],[0,902,907],[0,908,909],[0,910,930],[0,CR,1014],[0,1015,1154],[0,1155,1160],[0,1162,1328],[0,1329,1367],[0,1369,1370],[0,1376,1417],[0,1425,1470],[0,1471,1472],[0,1473,1475],[0,1476,1478],[0,1479,1480],[0,1488,1515],[0,1519,1523],[0,1552,1563],[0,1568,1642],[0,1646,1748],[0,1749,1757],[0,1759,1769],[0,1770,1789],[0,1791,1792],[0,1808,1867],[0,1869,1970],[0,1984,2038],[0,2042,2043],[0,2045,2046],[0,t_,2094],[0,2112,2140],[0,2144,2155],[0,2208,2229],[0,2230,2238],[0,2259,2274],[0,2275,2404],[0,2406,2416],[0,2417,2436],[0,2437,2445],[0,2447,2449],[0,2451,2473],[0,2474,2481],[0,2482,2483],[0,2486,2490],[0,2492,2501],[0,2503,2505],[0,2507,2511],[0,2519,2520],[0,2524,2526],[0,2527,2532],[0,2534,2546],[0,2556,2557],[0,2558,2559],[0,2561,2564],[0,2565,2571],[0,2575,2577],[0,2579,2601],[0,2602,2609],[0,2610,2612],[0,2613,2615],[0,2616,2618],[0,2620,2621],[0,2622,2627],[0,2631,2633],[0,2635,2638],[0,2641,2642],[0,2649,2653],[0,2654,2655],[0,2662,2678],[0,2689,2692],[0,2693,2702],[0,2703,2706],[0,2707,2729],[0,2730,2737],[0,2738,2740],[0,2741,2746],[0,2748,2758],[0,2759,2762],[0,2763,2766],[0,2768,2769],[0,2784,2788],[0,2790,2800],[0,2809,2816],[0,2817,2820],[0,2821,2829],[0,2831,2833],[0,2835,2857],[0,2858,2865],[0,2866,2868],[0,2869,2874],[0,2876,2885],[0,2887,2889],[0,2891,2894],[0,2902,2904],[0,2908,2910],[0,2911,2916],[0,2918,2928],[0,2929,2930],[0,2946,2948],[0,2949,2955],[0,2958,2961],[0,2962,2966],[0,2969,2971],[0,2972,2973],[0,2974,2976],[0,2979,2981],[0,2984,2987],[0,2990,3002],[0,3006,3011],[0,3014,3017],[0,3018,3022],[0,3024,3025],[0,3031,3032],[0,3046,3056],[0,3072,3085],[0,3086,3089],[0,3090,3113],[0,3114,3130],[0,3133,3141],[0,3142,3145],[0,3146,3150],[0,3157,3159],[0,3160,3163],[0,3168,3172],[0,3174,3184],[0,3200,3204],[0,3205,3213],[0,3214,3217],[0,3218,3241],[0,3242,3252],[0,3253,3258],[0,3260,3269],[0,3270,3273],[0,3274,3278],[0,3285,3287],[0,3294,3295],[0,3296,3300],[0,3302,3312],[0,3313,3315],[0,3328,3332],[0,3333,3341],[0,3342,3345],[0,3346,3397],[0,3398,3401],[0,3402,3407],[0,3412,3416],[0,3423,3428],[0,3430,3440],[0,3450,3456],[0,3458,3460],[0,3461,3479],[0,3482,3506],[0,3507,3516],[0,3517,3518],[0,3520,3527],[0,3530,3531],[0,3535,3541],[0,3542,3543],[0,3544,3552],[0,3558,3568],[0,3570,3572],[0,3585,3643],[0,3648,3663],[0,3664,3674],[0,3713,3715],[0,3716,3717],[0,3718,3723],[0,3724,3748],[0,3749,3750],[0,3751,3774],[0,3776,3781],[0,3782,3783],[0,3784,3790],[0,3792,3802],[0,3804,3808],[0,3840,3841],[0,3864,3866],[0,3872,3882],[0,3893,3894],[0,3895,3896],[0,3897,3898],[0,3902,3912],[0,3913,3949],[0,3953,3973],[0,3974,3992],[0,3993,4029],[0,4038,4039],[0,OF,4170],[0,4176,4254],[0,4256,4294],[0,4295,4296],[0,4301,4302],[0,4304,4347],[0,4348,4681],[0,4682,4686],[0,4688,4695],[0,4696,4697],[0,4698,4702],[0,4704,4745],[0,4746,4750],[0,4752,4785],[0,4786,4790],[0,4792,4799],[0,4800,4801],[0,4802,4806],[0,4808,4823],[0,4824,4881],[0,4882,4886],[0,4888,4955],[0,4957,4960],[0,4969,4978],[0,4992,5008],[0,5024,5110],[0,5112,5118],[0,5121,5741],[0,5743,mI],[0,5761,5787],[0,5792,5867],[0,5870,5881],[0,5888,5901],[0,5902,5909],[0,5920,5941],[0,5952,5972],[0,5984,5997],[0,5998,6001],[0,6002,6004],[0,6016,6100],[0,6103,6104],[0,6108,6110],[0,6112,6122],[0,6155,6158],[0,6160,6170],[0,6176,6265],[0,6272,6315],[0,6320,6390],[0,6400,6431],[0,6432,6444],[0,6448,6460],[0,6470,6510],[0,6512,6517],[0,6528,6572],[0,6576,6602],[0,6608,6619],[0,6656,6684],[0,6688,6751],[0,6752,6781],[0,6783,6794],[0,6800,6810],[0,6823,6824],[0,6832,6846],[0,6912,6988],[0,6992,7002],[0,7019,7028],[0,7040,7156],[0,7168,7224],[0,7232,7242],[0,7245,7294],[0,7296,7305],[0,7312,7355],[0,7357,7360],[0,7376,7379],[0,7380,7419],[0,7424,7674],[0,7675,7958],[0,7960,7966],[0,7968,8006],[0,8008,8014],[0,8016,8024],[0,8025,8026],[0,8027,8028],[0,8029,8030],[0,8031,8062],[0,8064,8117],[0,8118,8125],[0,8126,8127],[0,8130,8133],[0,8134,8141],[0,8144,8148],[0,8150,8156],[0,8160,8173],[0,8178,8181],[0,8182,8189],[0,lD,jR],[0,8255,8257],[0,8276,8277],[0,$k,8306],[0,gk,8320],[0,8336,8349],[0,8400,8413],[0,8417,8418],[0,8421,8433],[0,j8,8451],[0,tm,8456],[0,8458,mp],[0,Np,8470],[0,cR,8478],[0,Dk,im],[0,mm,Dp],[0,Up,cm],[0,8490,8506],[0,8508,8512],[0,8517,8522],[0,$p,8527],[0,8544,8585],[0,11264,11311],[0,11312,11359],[0,11360,11493],[0,11499,11508],[0,11520,T8],[0,F4,11560],[0,$8,11566],[0,11568,11624],[0,dk,11632],[0,bp,11671],[0,11680,S8],[0,11688,P8],[0,11696,R4],[0,11704,Zp],[0,11712,u8],[0,11720,B4],[0,11728,_m],[0,11736,11743],[0,11744,11776],[0,12293,12296],[0,12321,dm],[0,12337,12342],[0,12344,12349],[0,12353,12439],[0,12441,t8],[0,12449,Cm],[0,12540,12544],[0,12549,nm],[0,12593,12687],[0,12704,12731],[0,12784,12800],[0,13312,19894],[0,19968,40944],[0,40960,42125],[0,42192,42238],[0,42240,42509],[0,42512,42540],[0,42560,42608],[0,42612,kp],[0,42623,42738],[0,42775,42784],[0,42786,42889],[0,42891,42944],[0,42946,42951],[0,Ak,43048],[0,43072,43124],[0,43136,43206],[0,43216,43226],[0,43232,43256],[0,ak,ek],[0,43261,43310],[0,43312,43348],[0,43360,43389],[0,43392,43457],[0,s8,43482],[0,43488,Z4],[0,pF,43575],[0,43584,43598],[0,43600,43610],[0,43616,43639],[0,w8,43715],[0,43739,43742],[0,43744,43760],[0,43762,43767],[0,43777,43783],[0,43785,43791],[0,43793,43799],[0,43808,F8],[0,43816,Pk],[0,43824,v8],[0,43868,z4],[0,43888,44011],[0,44012,44014],[0,44016,44026],[0,44032,55204],[0,55216,55239],[0,55243,55292],[0,63744,64110],[0,64112,64218],[0,64256,64263],[0,64275,64280],[0,ck,H4],[0,64298,Lk],[0,64312,C8],[0,ok,Sp],[0,64320,ym],[0,64323,Rm],[0,64326,64434],[0,64467,64830],[0,64848,64912],[0,64914,64968],[0,65008,65020],[0,65024,65040],[0,65056,65072],[0,65075,65077],[0,65101,65104],[0,65136,am],[0,65142,65277],[0,65296,65306],[0,65313,65339],[0,65343,A8],[0,65345,65371],[0,65382,65471],[0,65474,65480],[0,65482,65488],[0,65490,65496],[0,65498,65501],[0,c6,Sm],[0,65549,l8],[0,65576,Lp],[0,65596,qp],[0,65599,65614],[0,65616,65630],[0,65664,65787],[0,65856,65909],[0,66045,66046],[0,66176,66205],[0,66208,66257],[0,66272,66273],[0,66304,66336],[0,66349,66379],[0,66384,66427],[0,66432,66462],[0,66464,66500],[0,66504,bm],[0,66513,66518],[0,66560,66718],[0,66720,66730],[0,66736,66772],[0,66776,66812],[0,66816,66856],[0,66864,66916],[0,67072,67383],[0,67392,67414],[0,67424,67432],[0,67584,67590],[0,Ep,lk],[0,67594,Tm],[0,67639,67641],[0,o8,67645],[0,67647,67670],[0,67680,67703],[0,67712,67743],[0,67808,fp],[0,67828,67830],[0,67840,67862],[0,67872,67898],[0,67968,68024],[0,68030,68032],[0,Am,68100],[0,68101,68103],[0,68108,xk],[0,68117,a8],[0,68121,68150],[0,68152,68155],[0,68159,68160],[0,68192,68221],[0,68224,68253],[0,68288,Wk],[0,68297,68327],[0,68352,68406],[0,68416,68438],[0,68448,68467],[0,68480,68498],[0,68608,68681],[0,68736,68787],[0,68800,68851],[0,68864,68904],[0,68912,68922],[0,69376,69405],[0,Z8,69416],[0,69424,69457],[0,69600,69623],[0,69632,69703],[0,69734,hm],[0,69759,69819],[0,69840,69865],[0,69872,69882],[0,69888,69941],[0,69942,69952],[0,xp,Jp],[0,69968,70004],[0,fm,70007],[0,70016,70085],[0,70089,70093],[0,70096,J8],[0,Ek,70109],[0,70144,K8],[0,70163,70200],[0,70206,70207],[0,70272,Y8],[0,Uk,Wp],[0,70282,z8],[0,70287,I8],[0,70303,70313],[0,70320,70379],[0,70384,70394],[0,70400,J4],[0,70405,70413],[0,70415,70417],[0,70419,sm],[0,70442,n8],[0,70450,_8],[0,70453,70458],[0,70459,70469],[0,70471,70473],[0,70475,70478],[0,tp,70481],[0,70487,70488],[0,70493,70500],[0,70502,70509],[0,70512,70517],[0,70656,70731],[0,70736,70746],[0,dp,70752],[0,70784,rm],[0,yk,70856],[0,70864,70874],[0,71040,71094],[0,71096,71105],[0,71128,71134],[0,71168,71233],[0,Tk,71237],[0,71248,71258],[0,71296,71353],[0,71360,71370],[0,71424,71451],[0,71453,71468],[0,71472,71482],[0,71680,71739],[0,71840,71914],[0,71935,71936],[0,72096,72104],[0,72106,72152],[0,72154,Vk],[0,em,72165],[0,mk,72255],[0,72263,72264],[0,Qp,72346],[0,Ik,72350],[0,72384,72441],[0,72704,um],[0,72714,72759],[0,72760,72769],[0,72784,72794],[0,72818,72848],[0,72850,72872],[0,72873,72887],[0,72960,Ck],[0,72968,wm],[0,72971,73015],[0,73018,73019],[0,73020,73022],[0,73023,73032],[0,73040,73050],[0,73056,qk],[0,73063,L8],[0,73066,73103],[0,73104,73106],[0,73107,73113],[0,73120,73130],[0,73440,73463],[0,73728,74650],[0,74752,74863],[0,74880,75076],[0,77824,78895],[0,82944,83527],[0,92160,92729],[0,92736,92767],[0,92768,92778],[0,92880,92910],[0,92912,92917],[0,92928,92983],[0,92992,92996],[0,93008,93018],[0,93027,93048],[0,93053,93072],[0,93760,93824],[0,93952,94027],[0,R8,94088],[0,94095,94112],[0,94176,Pp],[0,K4,94180],[0,94208,100344],[0,100352,101107],[0,110592,110879],[0,110928,110931],[0,110948,110952],[0,110960,111356],[0,113664,113771],[0,113776,113789],[0,113792,113801],[0,113808,113818],[0,113821,113823],[0,119141,119146],[0,119149,119155],[0,119163,119171],[0,119173,119180],[0,119210,119214],[0,119362,119365],[0,119808,V4],[0,119894,Kp],[0,119966,119968],[0,pk,119971],[0,119973,119975],[0,119977,qm],[0,119982,U8],[0,Qk,p8],[0,119997,wk],[0,120005,Fm],[0,120071,120075],[0,120077,_p],[0,120086,X8],[0,120094,rp],[0,120123,c8],[0,120128,hk],[0,uk,120135],[0,120138,km],[0,120146,120486],[0,120488,jp],[0,120514,Mk],[0,120540,Om],[0,120572,Gp],[0,120598,zk],[0,120630,vp],[0,120656,Fk],[0,120688,np],[0,120714,Y4],[0,120746,Yp],[0,120772,120780],[0,120782,120832],[0,121344,121399],[0,121403,121453],[0,121461,121462],[0,121476,121477],[0,121499,121504],[0,121505,121520],[0,122880,122887],[0,122888,122905],[0,122907,122914],[0,122915,122917],[0,122918,122923],[0,123136,123181],[0,123184,123198],[0,123200,123210],[0,q4,123215],[0,123584,123642],[0,124928,125125],[0,125136,125143],[0,125184,125260],[0,125264,125274],[0,126464,lp],[0,126469,N8],[0,126497,jm],[0,X4,126501],[0,Q8,i8],[0,126505,M4],[0,126516,Kk],[0,Pm,h8],[0,sp,126524],[0,gm,126531],[0,Lm,op],[0,Im,E8],[0,Em,$4],[0,126541,Vp],[0,126545,lm],[0,W8,126549],[0,Gk,ap],[0,vk,Ok],[0,b8,pm],[0,Tp,up],[0,Zk,Mp],[0,126561,cp],[0,vm,126565],[0,126567,W4],[0,126572,hp],[0,126580,Bk],[0,126585,sk],[0,Jk,xm],[0,126592,ip],[0,126603,126620],[0,126625,Yk],[0,126629,Nk],[0,126635,126652],[0,131072,173783],[0,173824,177973],[0,177984,178206],[0,178208,183970],[0,183984,191457],[0,194560,195102],[0,917760,918e3]],D00=[0,1,0],F00=[0,0,[0,1,0],[0,1,0]],R00=eL,L00=\"end of input\",M00=n6,q00=\"template literal part\",U00=n6,B00=mO,X00=eL,Y00=n6,z00=p3,K00=n6,J00=av,G00=n6,W00=l3,V00=\"an\",$00=Pt,Q00=hu,H00=[0,[11,\"token `\",[2,0,[12,96,0]]],\"token `%s`\"],Z00=\"{\",xx0=m8,rx0=\"{|\",ex0=\"|}\",tx0=IR,nx0=uR,ux0=\"[\",ix0=\"]\",fx0=Jb,cx0=BL,sx0=cn,ax0=\"=>\",ox0=\"...\",vx0=CO,lx0=OR,px0=h3,kx0=d8,mx0=qa,hx0=Gl,dx0=Xe,yx0=Ge,gx0=aI,wx0=Qo,_x0=ze,bx0=y8,Tx0=Yl,Ex0=L4,Sx0=Hk,Ax0=u6,Px0=j3,Ix0=uv,Nx0=Gs,jx0=ra,Cx0=Ke,Ox0=pp,Dx0=V8,Fx0=Le,Rx0=Go,Lx0=Rp,Mx0=e8,qx0=f8,Ux0=Ml,Bx0=Qf,Xx0=Re,Yx0=Xp,zx0=rv,Kx0=Kl,Jx0=Zs,Gx0=Ws,Wx0=Ql,Vx0=Nm,$x0=X1,Qx0=N3,Hx0=cv,Zx0=ie,xr0=Bp,rr0=h6,er0=Rl,tr0=l6,nr0=B1,ur0=Ye,ir0=g6,fr0=qf,cr0=ub,sr0=cS,ar0=Ka,or0=nv,vr0=\"%checks\",lr0=CD,pr0=aL,kr0=ZO,mr0=AF,hr0=vR,dr0=kO,yr0=VO,gr0=jF,wr0=OD,_r0=qD,br0=xD,Tr0=kR,Er0=oF,Sr0=GL,Ar0=iF,Pr0=b9,Ir0=\"?.\",Nr0=Wg,jr0=nR,Cr0=Mo,Or0=LF,Dr0=NR,Fr0=ND,Rr0=Cp,Lr0=om,Mr0=UR,qr0=VF,Ur0=IF,Br0=YO,Xr0=WL,Yr0=uD,zr0=ay,Kr0=x6,Jr0=XF,Gr0=CF,Wr0=NO,Vr0=q7,$r0=Ue,Qr0=ue,Hr0=ID,Zr0=yF,x20=YL,r20=RO,e20=JL,t20=WR,n20=ED,u20=Z0,i20=yp,f20=Op,c20=be,s20=p3,a20=av,o20=l3,v20=Ws,l20=v6,p20=Ip,k20=Fp,m20=fk,h20=H8,d20=Zo,y20=JO,g20=a6,w20=b3,_20=m3,b20=FF,T20=sF,E20=Ll,S20=Ll,A20=mL,P20=Ll,I20=Ll,N20=m8,j20=m8,C20=mL,O20=ue,D20=ue,F20=$l,R20=k8,L20=\"T_LCURLY\",M20=\"T_RCURLY\",q20=\"T_LCURLYBAR\",U20=\"T_RCURLYBAR\",B20=\"T_LPAREN\",X20=\"T_RPAREN\",Y20=\"T_LBRACKET\",z20=\"T_RBRACKET\",K20=\"T_SEMICOLON\",J20=\"T_COMMA\",G20=\"T_PERIOD\",W20=\"T_ARROW\",V20=\"T_ELLIPSIS\",$20=\"T_AT\",Q20=\"T_POUND\",H20=\"T_FUNCTION\",Z20=\"T_IF\",x10=\"T_IN\",r10=\"T_INSTANCEOF\",e10=\"T_RETURN\",t10=\"T_SWITCH\",n10=\"T_MATCH\",u10=\"T_THIS\",i10=\"T_THROW\",f10=\"T_TRY\",c10=\"T_VAR\",s10=\"T_WHILE\",a10=\"T_WITH\",o10=\"T_CONST\",v10=\"T_LET\",l10=\"T_NULL\",p10=\"T_FALSE\",k10=\"T_TRUE\",m10=\"T_BREAK\",h10=\"T_CASE\",d10=\"T_CATCH\",y10=\"T_CONTINUE\",g10=\"T_DEFAULT\",w10=\"T_DO\",_10=\"T_FINALLY\",b10=\"T_FOR\",T10=\"T_CLASS\",E10=\"T_EXTENDS\",S10=\"T_STATIC\",A10=\"T_ELSE\",P10=\"T_NEW\",I10=\"T_DELETE\",N10=\"T_TYPEOF\",j10=\"T_VOID\",C10=\"T_ENUM\",O10=\"T_EXPORT\",D10=\"T_IMPORT\",F10=\"T_SUPER\",R10=\"T_IMPLEMENTS\",L10=\"T_INTERFACE\",M10=\"T_PACKAGE\",q10=\"T_PRIVATE\",U10=\"T_PROTECTED\",B10=\"T_PUBLIC\",X10=\"T_YIELD\",Y10=\"T_DEBUGGER\",z10=\"T_DECLARE\",K10=\"T_TYPE\",J10=\"T_OPAQUE\",G10=\"T_OF\",W10=\"T_ASYNC\",V10=\"T_AWAIT\",$10=\"T_CHECKS\",Q10=\"T_RSHIFT3_ASSIGN\",H10=\"T_RSHIFT_ASSIGN\",Z10=\"T_LSHIFT_ASSIGN\",xe0=\"T_BIT_XOR_ASSIGN\",re0=\"T_BIT_OR_ASSIGN\",ee0=\"T_BIT_AND_ASSIGN\",te0=\"T_MOD_ASSIGN\",ne0=\"T_DIV_ASSIGN\",ue0=\"T_MULT_ASSIGN\",ie0=\"T_EXP_ASSIGN\",fe0=\"T_MINUS_ASSIGN\",ce0=\"T_PLUS_ASSIGN\",se0=\"T_NULLISH_ASSIGN\",ae0=\"T_AND_ASSIGN\",oe0=\"T_OR_ASSIGN\",ve0=\"T_ASSIGN\",le0=\"T_PLING_PERIOD\",pe0=\"T_PLING_PLING\",ke0=\"T_PLING\",me0=\"T_COLON\",he0=\"T_OR\",de0=\"T_AND\",ye0=\"T_BIT_OR\",ge0=\"T_BIT_XOR\",we0=\"T_BIT_AND\",_e0=\"T_EQUAL\",be0=\"T_NOT_EQUAL\",Te0=\"T_STRICT_EQUAL\",Ee0=\"T_STRICT_NOT_EQUAL\",Se0=\"T_LESS_THAN_EQUAL\",Ae0=\"T_GREATER_THAN_EQUAL\",Pe0=\"T_LESS_THAN\",Ie0=\"T_GREATER_THAN\",Ne0=\"T_LSHIFT\",je0=\"T_RSHIFT\",Ce0=\"T_RSHIFT3\",Oe0=\"T_PLUS\",De0=\"T_MINUS\",Fe0=\"T_DIV\",Re0=\"T_MULT\",Le0=\"T_EXP\",Me0=\"T_MOD\",qe0=\"T_NOT\",Ue0=\"T_BIT_NOT\",Be0=\"T_INCR\",Xe0=\"T_DECR\",Ye0=\"T_EOF\",ze0=\"T_ANY_TYPE\",Ke0=\"T_MIXED_TYPE\",Je0=\"T_EMPTY_TYPE\",Ge0=\"T_NUMBER_TYPE\",We0=\"T_BIGINT_TYPE\",Ve0=\"T_STRING_TYPE\",$e0=\"T_VOID_TYPE\",Qe0=\"T_SYMBOL_TYPE\",He0=\"T_UNKNOWN_TYPE\",Ze0=\"T_NEVER_TYPE\",xt0=\"T_UNDEFINED_TYPE\",rt0=\"T_KEYOF\",et0=\"T_READONLY\",tt0=\"T_INFER\",nt0=\"T_IS\",ut0=\"T_ASSERTS\",it0=\"T_IMPLIES\",ft0=XL,ct0=XL,st0=\"T_NUMBER\",at0=\"T_BIGINT\",ot0=\"T_STRING\",vt0=\"T_TEMPLATE_PART\",lt0=\"T_IDENTIFIER\",pt0=\"T_REGEXP\",kt0=\"T_INTERPRETER\",mt0=\"T_ERROR\",ht0=\"T_JSX_IDENTIFIER\",dt0=ML,yt0=ML,gt0=\"T_BOOLEAN_TYPE\",wt0=\"T_NUMBER_SINGLETON_TYPE\",_t0=\"T_BIGINT_SINGLETON_TYPE\",bt0=[0,zD,O8,9],Tt0=[0,zD,c_,9],Et0=kL,St0=\"*/\",At0=kL,Pt0=\"unreachable line_comment\",It0=\"unreachable string_quote\",Nt0=\"\\\\\",jt0=\"unreachable template_part\",Ct0=`\\r\n`,Ot0=yw,Dt0=\"unreachable regexp_class\",Ft0=WO,Rt0=\"unreachable regexp_body\",Lt0=Z0,Mt0=Z0,qt0=Z0,Ut0=Z0,Bt0=SD,Xt0=\"{'>'}\",Yt0=x6,zt0=\"{'}'}\",Kt0=m8,Jt0=Ya,Gt0=Jb,Wt0=om,Vt0=SD,$t0=Ya,Qt0=Jb,Ht0=om,Zt0=\"unreachable type_token wholenumber\",xn0=\"unreachable type_token wholebigint\",rn0=\"unreachable type_token floatbigint\",en0=\"unreachable type_token scinumber\",tn0=\"unreachable type_token scibigint\",nn0=\"unreachable type_token hexnumber\",un0=\"unreachable type_token hexbigint\",in0=\"unreachable type_token legacyoctnumber\",fn0=\"unreachable type_token octnumber\",cn0=\"unreachable type_token octbigint\",sn0=\"unreachable type_token binnumber\",an0=\"unreachable type_token bigbigint\",on0=\"unreachable type_token\",vn0=lL,ln0=[11,1],pn0=[11,0],kn0=\"unreachable template_tail\",mn0=Z0,hn0=Z0,dn0=\"unreachable jsx_child\",yn0=\"unreachable jsx_tag\",gn0=[0,PD],wn0=[0,913],_n0=[0,a3],bn0=[0,PI],Tn0=[0,mD],En0=[0,OL],Sn0=[0,8747],An0=[0,DO],Pn0=[0,916],In0=[0,8225],Nn0=[0,935],jn0=[0,hL],Cn0=[0,914],On0=[0,iL],Dn0=[0,Db],Fn0=[0,$T],Rn0=[0,915],Ln0=[0,Gd],Mn0=[0,919],qn0=[0,917],Un0=[0,pL],Bn0=[0,eD],Xn0=[0,HD],Yn0=[0,924],zn0=[0,923],Kn0=[0,922],Jn0=[0,kF],Gn0=[0,921],Wn0=[0,xR],Vn0=[0,c_],$n0=[0,nF],Qn0=[0,pd],Hn0=[0,927],Zn0=[0,937],x70=[0,nD],r70=[0,xF],e70=[0,J9],t70=[0,338],n70=[0,352],u70=[0,929],i70=[0,936],f70=[0,8243],c70=[0,928],s70=[0,934],a70=[0,FL],o70=[0,tD],v70=[0,933],l70=[0,pR],p70=[0,vA],k70=[0,yO],m70=[0,920],h70=[0,932],d70=[0,zO],y70=[0,jg],g70=[0,KF],w70=[0,VD],_70=[0,918],b70=[0,376],T70=[0,JF],E70=[0,926],S70=[0,dF],A70=[0,CR],P70=[0,925],I70=[0,39],N70=[0,8736],j70=[0,8743],C70=[0,38],O70=[0,945],D70=[0,8501],F70=[0,s3],R70=[0,8226],L70=[0,rD],M70=[0,946],q70=[0,8222],U70=[0,KO],B70=[0,_R],X70=[0,8776],Y70=[0,oL],z70=[0,8773],K70=[0,9827],J70=[0,BO],G70=[0,967],W70=[0,LR],V70=[0,p6],$70=[0,UO],Q70=[0,BF],H70=[0,8595],Z70=[0,8224],xu0=[0,8659],ru0=[0,hD],eu0=[0,8746],tu0=[0,8629],nu0=[0,Ap],uu0=[0,8745],iu0=[0,8195],fu0=[0,8709],cu0=[0,dO],su0=[0,vL],au0=[0,tL],ou0=[0,ep],vu0=[0,9830],lu0=[0,8707],pu0=[0,8364],ku0=[0,ER],mu0=[0,w3],hu0=[0,951],du0=[0,8801],yu0=[0,949],gu0=[0,8194],wu0=[0,8805],_u0=[0,947],bu0=[0,8260],Tu0=[0,sR],Eu0=[0,U9],Su0=[0,O8],Au0=[0,8704],Pu0=[0,UF],Iu0=[0,yL],Nu0=[0,8230],ju0=[0,9829],Cu0=[0,8596],Ou0=[0,8660],Du0=[0,62],Fu0=[0,402],Ru0=[0,948],Lu0=[0,cF],Mu0=[0,Fy],qu0=[0,8712],Uu0=[0,wL],Bu0=[0,953],Xu0=[0,8734],Yu0=[0,8465],zu0=[0,PR],Ku0=[0,8220],Ju0=[0,8968],Gu0=[0,8592],Wu0=[0,Uw],Vu0=[0,10216],$u0=[0,955],Qu0=[0,8656],Hu0=[0,954],Zu0=[0,60],xi0=[0,8216],ri0=[0,8249],ei0=[0,jR],ti0=[0,9674],ni0=[0,8727],ui0=[0,8970],ii0=[0,bL],fi0=[0,8711],ci0=[0,956],si0=[0,8722],ai0=[0,K9],oi0=[0,JE],vi0=[0,8212],li0=[0,RD],pi0=[0,8804],ki0=[0,957],mi0=[0,gF],hi0=[0,8836],di0=[0,8713],yi0=[0,QD],gi0=[0,8715],wi0=[0,8800],_i0=[0,8853],bi0=[0,959],Ti0=[0,969],Ei0=[0,8254],Si0=[0,YR],Ai0=[0,339],Pi0=[0,zo],Ii0=[0,MR],Ni0=[0,yy],ji0=[0,A3],Ci0=[0,8855],Oi0=[0,HT],Di0=[0,n2],Fi0=[0,mA],Ri0=[0,Ed],Li0=[0,lr],Mi0=[0,VR],qi0=[0,982],Ui0=[0,960],Bi0=[0,966],Xi0=[0,8869],Yi0=[0,8240],zi0=[0,8706],Ki0=[0,8744],Ji0=[0,8211],Gi0=[0,10217],Wi0=[0,8730],Vi0=[0,8658],$i0=[0,34],Qi0=[0,968],Hi0=[0,8733],Zi0=[0,8719],xf0=[0,961],rf0=[0,8971],ef0=[0,DL],tf0=[0,8476],nf0=[0,8221],uf0=[0,8969],if0=[0,8594],ff0=[0,gp],cf0=[0,bR],sf0=[0,mF],af0=[0,8901],of0=[0,353],vf0=[0,8218],lf0=[0,8217],pf0=[0,8250],kf0=[0,8835],mf0=[0,8721],hf0=[0,8838],df0=[0,8834],yf0=[0,9824],gf0=[0,8764],wf0=[0,962],_f0=[0,963],bf0=[0,8207],Tf0=[0,952],Ef0=[0,8756],Sf0=[0,964],Af0=[0,kk],Pf0=[0,8839],If0=[0,zL],Nf0=[0,ng],jf0=[0,D3],Cf0=[0,8657],Of0=[0,8482],Df0=[0,gg],Ff0=[0,732],Rf0=[0,d3],Lf0=[0,8201],Mf0=[0,977],qf0=[0,cR],Uf0=[0,g3],Bf0=[0,965],Xf0=[0,978],Yf0=[0,XP],zf0=[0,WE],Kf0=[0,KL],Jf0=[0,lD],Gf0=[0,8205],Wf0=[0,950],Vf0=[0,Hp],$f0=[0,_F],Qf0=[0,lE],Hf0=[0,958],Zf0=[0,8593],xc0=[0,bO],rc0=[0,8242],ec0=[0,nL],tc0=\"unreachable regexp\",nc0=\"unreachable token wholenumber\",uc0=\"unreachable token wholebigint\",ic0=\"unreachable token floatbigint\",fc0=\"unreachable token scinumber\",cc0=\"unreachable token scibigint\",sc0=\"unreachable token hexnumber\",ac0=\"unreachable token hexbigint\",oc0=\"unreachable token legacyoctnumber\",vc0=\"unreachable token legacynonoctnumber\",lc0=\"unreachable token octnumber\",pc0=\"unreachable token octbigint\",kc0=\"unreachable token bignumber\",mc0=\"unreachable token bigint\",hc0=\"unreachable token\",dc0=lL,yc0=[7,\"#!\"],gc0=\"expected ?\",wc0=\"unreachable string_escape\",_c0=Y1,bc0=Wl,Tc0=Wl,Ec0=Y1,Sc0=iI,Ac0=PF,Pc0=\"n\",Ic0=\"r\",Nc0=\"t\",jc0=YF,Cc0=Wl,Oc0=Ya,Dc0=Ya,Fc0=\"unreachable id_char\",Rc0=Ya,Lc0=Ya,Mc0=Wl,qc0=HR,Uc0=EO,Bc0=L_,Xc0=[26,\"token ILLEGAL\"],Yc0=[0,[11,\"the identifier `\",[2,0,[12,96,0]]],\"the identifier `%s`\"],zc0=[0,1],Kc0=[0,1],Jc0=DF,Gc0=DF,Wc0=[0,[11,\"an identifier. When exporting a \",[2,0,[11,\" as a named export, you must specify a \",[2,0,[11,\" name. Did you mean `export default \",[2,0,[11,\" ...`?\",0]]]]]]],\"an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?\"],Vc0=Mm,$c0=\"Peeking current location when not available\",Qc0=[0,\"src/parser/parser_env.ml\",365,9],Hc0=\"Internal Error: Tried to add_declared_private with outside of class scope.\",Zc0=\"Internal Error: `exit_class` called before a matching `enter_class`\",xs0=Z0,rs0=[0,0,0],es0=[0,0,0],ts0=\"Parser_env.Try.Rollback\",ns0=Z0,us0=Z0,is0=[0,B1,Gi,Fi,FD,TR,M7,K1,_f,c7,Vf,nc,df,Ai,gu,gi,nu,S7,s7,Ru,Tf,D7,Yu,zi,N7,zn,Rf,fu,Z7,Xn,Kf,is,Jf,rf,cf,ts,gc,U7,ze,Wn,Oi,x7,Nc,Ti,Xf,Oc,Ge,Tc,Su,W7,i7,Bc,zu,xu,k7,Xe,Ju,v7,pf,r7,af,o7,qc,Me,wf,li,Lu,A7,ru,Mi,Ji,g7,Df,Q7,kc,Li,f7,jn,kf,_u,C7,fi,Ic,oi,vu,_e,Dc,Kn,Mf,Du,rs,Un,Gn,e7,Nf,ac,Bn,Jn,Si,Ff,Qi,Tu,Ki,On,Pc,Nu,Xu,mi,Cu,Fu,Gu,Vn,vi,jc,Ei,Qc,Sf,Ec,Au,bu,si,cu,Mn,hf,Vc,Zi,L7,ji,Bf,Hi,lf,J7,uu,m7,Jc,ec,su,mu,$7,Yc,Vu,ne,l7,qn,yc,Wu,$i,eu,X7,uf,If,Wc,uc,lc,O7,Zf,Eu,Pf,Hn,T7,B7,Ef,y7,$c,Ku,wi,di,pc,Rn,Iu,Mu,z7,Wi,ie,Wf,Mc,Yf,du,mf,Xc,Di,Dn,X1,yi,I7,Uc,Pt,ki,dc,xs,K7,Qn,$u,wu,ri,Ri,h7,$f,xc,Bu,V7,tf,Uf,ns,pu,ef,Yn,zc,pi,xi,Ci,Zc,nf,t7,p7,gf,Zu,w7,oc,Fc,u7,n1,Cn,mc,xf,us,d7,Fn,Pi,cc,Af,wc,vc,es,_7,Sc,bf,rc,ic,au,yu,b7,be,Bi,ju,Nn,Hf,sc,ni,_c,ii,Vi,iu,Ii,H7,Lf,Lc,Ye,Le,qi,Yi,qu,Ac,Rc,F7,tu,Of,fc,Hc,Ln,tc,bi,jf,Y7,Xi,gD,R7,TO,MF,ff,hi,a7,zf,Cf,P7,Uu,ai,ei,Ou,yf,Pu,lu,of,Zn,Qu,n7,Ni,ti,fs,Ke,G7,bc,fn,j7,E7,Hu,Kc,$n,ou,ku,ci,hc,Ui,Gf,xn,sf],fs0=[0,B1,Gi,Fi,M7,K1,_f,c7,Vf,nc,df,Ai,gu,gi,nu,S7,s7,Ru,Tf,D7,Yu,zi,N7,zn,Rf,fu,Z7,Xn,Kf,is,Jf,rf,cf,ts,gc,U7,ze,Wn,Oi,x7,Nc,Ti,Xf,Oc,Ge,Tc,Su,W7,i7,Bc,zu,xu,k7,Xe,Ju,v7,pf,r7,af,o7,qc,Me,wf,li,Lu,A7,ru,Mi,Ji,g7,Df,Q7,kc,Li,f7,jn,kf,_u,C7,fi,Ic,oi,vu,_e,Dc,Kn,Mf,Du,rs,Un,Gn,e7,Nf,ac,Bn,Jn,Si,Ff,Qi,Tu,Ki,On,Pc,Nu,Xu,mi,Cu,Fu,Gu,Vn,vi,jc,Ei,Qc,Sf,Ec,Au,bu,si,cu,Mn,hf,Vc,Zi,L7,ji,Bf,Hi,lf,J7,uu,m7,Jc,ec,su,mu,$7,Yc,Vu,ne,l7,qn,yc,Wu,$i,eu,X7,uf,If,Wc,uc,lc,O7,Zf,Eu,Pf,Hn,T7,B7,Ef,y7,$c,Ku,wi,di,pc,Rn,Iu,Mu,z7,Wi,ie,Wf,Mc,Yf,du,mf,Xc,Di,Dn,X1,yi,I7,Uc,Pt,ki,dc,xs,K7,Qn,$u,wu,ri,Ri,h7,$f,xc,Bu,V7,tf,Uf,ns,pu,ef,Yn,zc,pi,xi,Ci,Zc,nf,t7,p7,gf,Zu,w7,oc,Fc,u7,n1,Cn,mc,xf,us,d7,Fn,Pi,cc,Af,wc,vc,es,_7,Sc,bf,rc,ic,au,yu,b7,be,Bi,ju,Nn,Hf,sc,ni,_c,ii,Vi,iu,Ii,H7,Lf,Lc,Ye,Le,qi,Yi,qu,Ac,Rc,F7,tu,Of,fc,Hc,Ln,tc,bi,jf,Y7,Xi,R7,ff,hi,a7,zf,Cf,P7,Uu,ai,ei,Ou,yf,Pu,lu,of,Zn,Qu,n7,Ni,ti,fs,Ke,G7,bc,fn,j7,E7,Hu,Kc,$n,ou,ku,ci,hc,Ui,Gf,xn,sf],cs0=[0,Bc,Ku,xc,ki,ri,fs,Gu,Ki,O7,z7,bc,fu,Gn,Ge,rs,mc,L7,Hi,yf,ts,Si,B7,vi,Wf,y7,ic,_7,Gi,_u,K7,xi,f7,$i,sc,Of,xs,rc,Qc,Pt,M7,gf,Df,Vi,Ni,Bu,n7,Hn,cc,wf,$u,Ci,Oc,Pc,I7,W7,Mn,du,au,Wu,Ei,ai,hi,Dc,sf,ru,ji,bi,N7,Tu,Lu,Wc,Cf,e7,Me,Jn,Ri,Kn,Sf,Zf,T7,dc,ne,Yi,Xn,vc,m7,lf,uc,l7,$f,$7,g7,Ui,_c,Fn,bu,r7,vu,Gf,b7,ti,k7,K1,li,H7,s7,v7,yi,cu,Hu,pi,U7,pc,Ou,mi,Xf,be,t7,Z7,B1,qn,gc,Ii,Mi,gu,Ic,Lf,af,Kc,Ai,ff,iu,Fu,Vf,uu,Ef,ku,Jf,Mu,Sc,oc,Un,xf,yc,fi,Zu,Tf,is,jf,_f,rf,zu,Ru,Su,df,P7,Mc,Zc,a7,Vu,h7,Y7,nc,R7,hf,Cu,X7,fc,$n,si,of,ei,Ln,Jc,C7,uf,tc,Au,X1,Xe,S7,D7,Tc,kf,ze,Ye,Vn,Uc,Du,u7,$c,_e,G7,ns,bf,Yf,zf,Cn,V7,wi,wu,nu,es,qc,Yn,Di,Bf,wc,d7,Rc,Xu,xu,On,mf,ac,kc,Kf,Qi,A7,Bn,Yu,ni,J7,Zn,ii,j7,Rn,Ti,yu,cf,Qn,o7,Dn,Ff,lu,Nu,Pf,Uu,mu,Wi,Bi,Rf,xn,c7,ju,Qu,zn,Nn,Eu,di,qu,eu,Li,jc,Iu,w7,su,If,zi,x7,ou,Zi,F7,jn,ci,E7,n1,oi,Xi,Fc,Vc,pu,ef,i7,Le,tf,Hc,Ji,Pi,Hf,Oi,Nc,ec,zc,us,gi,nf,Yc,Mf,fn,Xc,Pu,lc,Nf,Uf,Lc,Ju,Af,Ke,hc,ie,qi,Fi,tu,pf,p7,Ac,Q7,Wn,Ec],ss0=[0,Bc,Ku,xc,ki,ri,fs,Gu,Ki,O7,z7,bc,fu,Gn,Ge,rs,mc,L7,Hi,yf,ts,Si,B7,vi,Wf,y7,ic,_7,Gi,_u,K7,xi,f7,$i,sc,Of,xs,rc,Qc,Pt,M7,TR,gf,Df,Vi,Ni,Bu,n7,Hn,cc,wf,$u,Ci,Oc,Pc,I7,W7,Mn,du,au,Wu,Ei,ai,hi,Dc,sf,ru,ji,bi,TO,N7,Tu,Lu,Wc,Cf,e7,Me,Jn,Ri,Kn,Sf,Zf,T7,dc,ne,Yi,Xn,vc,m7,lf,uc,l7,$f,$7,g7,Ui,_c,Fn,bu,r7,vu,Gf,b7,ti,k7,K1,li,H7,s7,v7,yi,cu,Hu,pi,U7,pc,Ou,mi,Xf,be,t7,Z7,B1,qn,gc,Ii,Mi,gu,Ic,Lf,af,Kc,Ai,ff,iu,Fu,Vf,uu,Ef,ku,Jf,Mu,Sc,oc,Un,xf,yc,fi,Zu,Tf,is,jf,_f,rf,zu,Ru,Su,df,P7,Mc,Zc,a7,Vu,h7,Y7,nc,R7,hf,Cu,X7,fc,$n,si,of,ei,Ln,Jc,C7,uf,tc,Au,X1,Xe,S7,D7,Tc,kf,ze,Ye,Vn,Uc,Du,u7,$c,_e,G7,ns,bf,Yf,zf,Cn,V7,wi,wu,nu,es,qc,Yn,Di,Bf,wc,d7,Rc,Xu,xu,On,mf,ac,kc,Kf,Qi,A7,Bn,Yu,ni,J7,Zn,ii,j7,Rn,MF,Ti,yu,cf,Qn,o7,Dn,Ff,lu,Nu,Pf,Uu,mu,Wi,Bi,Rf,gD,xn,c7,ju,Qu,zn,FD,Nn,Eu,di,qu,eu,Li,jc,Iu,w7,su,If,zi,x7,ou,Zi,F7,jn,ci,E7,n1,oi,Xi,Fc,Vc,pu,ef,i7,Le,tf,Hc,Ji,Pi,Hf,Oi,Nc,ec,zc,us,gi,nf,Yc,Mf,fn,Xc,Pu,lc,Nf,Uf,Lc,Ju,Af,Ke,hc,ie,qi,Fi,tu,pf,p7,Ac,Q7,Wn,Ec],as0=h3,os0=d8,vs0=qa,ls0=Gl,ps0=Xe,ks0=Ge,ms0=aI,hs0=Qo,ds0=ze,ys0=y8,gs0=Yl,ws0=L4,_s0=Hk,bs0=u6,Ts0=j3,Es0=uv,Ss0=Gs,As0=ra,Ps0=Ke,Is0=pp,Ns0=V8,js0=Le,Cs0=Go,Os0=Rp,Ds0=e8,Fs0=f8,Rs0=Ml,Ls0=Qf,Ms0=Re,qs0=Xp,Us0=rv,Bs0=Kl,Xs0=Zs,Ys0=Ws,zs0=Ql,Ks0=Nm,Js0=X1,Gs0=N3,Ws0=cv,Vs0=ie,$s0=Bp,Qs0=h6,Hs0=Rl,Zs0=l6,xa0=B1,ra0=Ye,ea0=g6,ta0=qf,na0=ub,ua0=cS,ia0=Ka,fa0=nv,ca0=yp,sa0=Op,aa0=be,oa0=p3,va0=av,la0=l3,pa0=Ws,ka0=v6,ma0=Ip,ha0=Fp,da0=fk,ya0=H8,ga0=Zo,wa0=a6,_a0=b3,ba0=m3,Ta0=$l,Ea0=k8,Sa0=[0,Mm],Aa0=Z0,Pa0=[18,1],Ia0=[18,0],Na0=[0,0],ja0=$s,Ca0=[0,0],Oa0=[0,\"a type\"],Da0=[0,0],Fa0=[0,\"a number literal type\"],Ra0=[0,0],La0=a6,Ma0=b3,qa0=m3,Ua0=\"You should only call render_type after making sure the next token is a renders variant\",Ba0=[0,[0,0,0,0,0]],Xa0=[0,0,0,0],Ya0=[0,1],za0=[0,I3,1436,6],Ka0=[0,I3,1439,6],Ja0=[0,I3,1542,8],Ga0=[0,1],Wa0=[0,I3,1559,8],Va0=\"Can not have both `static` and `proto`\",$a0=Re,Qa0=pg,Ha0=[0,0],Za0=[0,\"the end of a tuple type (no trailing comma is allowed in inexact tuple type).\"],xo0=[0,I3,J9,15],ro0=[0,I3,ng,15],eo0=Ue,to0=Ue,no0=ik,uo0=f6,io0=[0,[11,\"Failure while looking up \",[2,0,[11,\". Index: \",[4,0,0,0,[11,\". Length: \",[4,0,0,0,[12,46,0]]]]]]],\"Failure while looking up %s. Index: %d. Length: %d.\"],fo0=[0,0,0,0],co0=\"Offset_utils.Offset_lookup_failed\",so0=g2,ao0=SO,oo0=f6,vo0=ik,lo0=OO,po0=f6,ko0=ik,mo0=_D,ho0=vx,do0=\"normal\",yo0=qf,go0=\"jsxTag\",wo0=\"jsxChild\",_o0=\"template\",bo0=mO,To0=\"context\",Eo0=qf,So0=[6,0],Ao0=[0,0],Po0=[0,1],Io0=[0,4],No0=[0,2],jo0=[0,3],Co0=[0,0],Oo0=Ue,Do0=[0,0,0,0,0,0],Fo0=[0,HE],Ro0=[29,[0,0,0]],Lo0=[0,0],Mo0=[0,1],qo0=[0,1],Uo0=[0,0],Bo0=$s,Xo0=[0,70],Yo0=[0,81],zo0=aR,Ko0=hT,Jo0=\"exports\",Go0=o6,Wo0=[0,Z0,Z0,0],Vo0=[0,MO],$o0=[0,81],Qo0=[0,\"a declaration, statement or export specifiers\"],Ho0=[0,1],Zo0=[0,My,1872,21],xv0=[0,\"the keyword `as`\"],rv0=[0,30],ev0=[0,30],tv0=[0,0],nv0=[0,1],uv0=[0,MO],iv0=[0,\"the keyword `from`\"],fv0=[0,Z0,Z0,0],cv0=[0,HE],sv0=\"Label\",av0=[0,HE],ov0=[0,0,0],vv0=[0,39],lv0=[0,My,372,22],pv0=[0,38],kv0=[0,My,391,22],mv0=[0,0],hv0=\"the token `;`\",dv0=[0,0],yv0=[0,0],gv0=UD,wv0=[0,Mm],_v0=UD,bv0=[26,Pt],Tv0=$s,Ev0=[0,70],Sv0=[0,Z0,0],Av0=Nt,Pv0=[0,Z0,0],Iv0=[0,70],Nv0=[0,70],jv0=h3,Cv0=[0,Z0,0],Ov0=[0,0,0],Dv0=[0,0,0],Fv0=[0,[0,8]],Rv0=[0,[0,7]],Lv0=[0,[0,6]],Mv0=[0,[0,10]],qv0=[0,[0,9]],Uv0=[0,[0,11]],Bv0=[0,[0,5]],Xv0=[0,[0,4]],Yv0=[0,[0,2]],zv0=[0,[0,3]],Kv0=[0,[0,1]],Jv0=[0,[0,0]],Gv0=[0,[0,12]],Wv0=[0,[0,13]],Vv0=[0,[0,14]],$v0=[0,0],Qv0=[0,1],Hv0=[0,0],Zv0=[0,2],x30=[0,3],r30=[0,7],e30=[0,6],t30=[0,4],n30=[0,5],u30=[0,1],i30=[0,0],f30=[0,1],c30=[0,0],s30=N3,a30=[0,\"either a call or access of `super`\"],o30=N3,v30=X1,l30=Xl,p30=Xl,k30=rv,m30=[0,\"the identifier `target`\"],h30=[0,0],d30=[0,1],y30=[0,1],g30=[0,1],w30=[0,1],_30=[0,1],b30=[0,70],T30=Wl,E30=HR,S30=L_,A30=L_,P30=EO,I30=[29,[0,0,0]],N30=[0,0],j30=[0,1],C30=[0,0],O30=ue,D30=ue,F30=[0,\"a regular expression\"],R30=Z0,L30=Z0,M30=Z0,q30=[0,78],U30=[0,\"src/parser/expression_parser.ml\",1450,17],B30=[0,\"a template literal part\"],X30=[0,[0,Z0,Z0],1],Y30=qo,z30=[0,6],K30=[0,[0,17,[0,2]]],J30=[0,[0,18,[0,3]]],G30=[0,[0,19,[0,4]]],W30=[0,[0,0,[0,5]]],V30=[0,[0,1,[0,5]]],$30=[0,[0,2,[0,5]]],Q30=[0,[0,3,[0,5]]],H30=[0,[0,5,[0,6]]],Z30=[0,[0,7,[0,6]]],xl0=[0,[0,4,[0,6]]],rl0=[0,[0,6,[0,6]]],el0=[0,[0,8,[0,7]]],tl0=[0,[0,9,[0,7]]],nl0=[0,[0,10,[0,7]]],ul0=[0,[0,11,[0,8]]],il0=[0,[0,12,[0,8]]],fl0=[0,[0,15,[0,9]]],cl0=[0,[0,13,[0,9]]],sl0=[0,[0,14,[1,10]]],al0=[0,[0,16,[0,9]]],ol0=[0,[0,21,[0,6]]],vl0=[0,[0,20,[0,6]]],ll0=[22,Wg],pl0=[13,\"JSX fragment\"],kl0=Mo,ml0=cn,hl0=[0,tn],dl0=[1,tn],yl0=[0,Z0,Z0,0],gl0=[0,Mm],wl0=Z0,_l0=[0,\"a number or string literal\"],bl0=[0,Z0,'\"\"',0],Tl0=[0,0],El0=[0,\"a number literal\"],Sl0=[0,[0,0,Y1,0]],Al0=[0,81],Pl0=[20,dR],Il0=[20,Zl],Nl0=Ml,jl0=[0,Z0,0],Cl0=\"unexpected PrivateName in Property, expected a PrivateField\",Ol0=[0,0,0],Dl0=za,Fl0=\"Must be one of the above\",Rl0=[0,1],Ll0=[0,1],Ml0=[0,1],ql0=za,Ul0=za,Bl0=b9,Xl0=\"Internal Error: private name found in object props\",Yl0=[0,0,0,0],zl0=[0,vF],Kl0=[19,[0,0]],Jl0=[0,vF],Gl0=yw,Wl0=\"Nooo: \",Vl0=Go,$l0=\"Parser error: No such thing as an expression pattern!\",Ql0=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],Hl0=[0,\"src/parser/parser_flow.ml\",Ap,28],Zl0=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],x60=SO,r60=vx,e60=sD,t60=vD,n60=vD,u60=sD,i60=qf,f60=wO,c60=I2,s60=g2,a60=\"InterpreterDirective\",o60=\"interpreter\",v60=\"Program\",l60=Jl,p60=\"BreakStatement\",k60=Jl,m60=\"ContinueStatement\",h60=\"DebuggerStatement\",d60=iv,y60=\"DeclareExportAllDeclaration\",g60=iv,w60=_9,_60=zT,b60=Go,T60=\"DeclareExportDeclaration\",E60=I2,S60=Vr,A60=\"DeclareModule\",P60=u1,I60=\"DeclareModuleExports\",N60=I2,j60=Vr,C60=\"DeclareNamespace\",O60=y3,D60=I2,F60=\"DoWhileStatement\",R60=\"EmptyStatement\",L60=bE,M60=zT,q60=\"ExportDefaultDeclaration\",U60=bE,B60=bS,X60=iv,Y60=\"ExportAllDeclaration\",z60=bE,K60=iv,J60=_9,G60=zT,W60=\"ExportNamedDeclaration\",V60=\"directive\",$60=n1,Q60=\"ExpressionStatement\",H60=I2,Z60=\"update\",x40=y3,r40=Gc,e40=\"ForStatement\",t40=\"each\",n40=I2,u40=en,i40=Qs,f40=\"ForInStatement\",c40=nv,s40=I2,a40=en,o40=Qs,v40=\"ForOfStatement\",l40=bD,p40=pP,k40=y3,m40=\"IfStatement\",h40=qf,d40=Zs,y40=g2,g40=HO,w40=iv,_40=_9,b40=\"ImportDeclaration\",T40=I2,E40=Jl,S40=\"LabeledStatement\",A40=e9,P40=y1,I40=\"MatchStatement\",N40=y1,j40=\"ReturnStatement\",C40=e9,O40=\"discriminant\",D40=\"SwitchStatement\",F40=y1,R40=\"ThrowStatement\",L40=\"finalizer\",M40=\"handler\",q40=fn,U40=\"TryStatement\",B40=I2,X40=y3,Y40=\"WhileStatement\",z40=I2,K40=G4,J40=\"WithStatement\",G40=cT,W40=\"ArrayExpression\",V40=J1,$40=Dm,Q40=n1,H40=Me,Z40=Rd,xp0=Ka,rp0=I2,ep0=un,tp0=Vr,np0=\"ArrowFunctionExpression\",up0=n1,ip0=\"AsConstExpression\",fp0=u1,cp0=n1,sp0=\"AsExpression\",ap0=b9,op0=en,vp0=Qs,lp0=xv,pp0=\"AssignmentExpression\",kp0=en,mp0=Qs,hp0=xv,dp0=\"BinaryExpression\",yp0=\"CallExpression\",gp0=bD,wp0=pP,_p0=y3,bp0=\"ConditionalExpression\",Tp0=iv,Ep0=\"ImportExpression\",Sp0=LF,Ap0=NR,Pp0=Wg,Ip0=en,Np0=Qs,jp0=xv,Cp0=\"LogicalExpression\",Op0=e9,Dp0=y1,Fp0=\"MatchExpression\",Rp0=\"MemberExpression\",Lp0=M8,Mp0=Xl,qp0=\"MetaProperty\",Up0=vb,Bp0=jk,Xp0=kD,Yp0=\"NewExpression\",zp0=bk,Kp0=\"ObjectExpression\",Jp0=at,Gp0=\"OptionalCallExpression\",Wp0=at,Vp0=\"OptionalMemberExpression\",$p0=ZF,Qp0=\"SequenceExpression\",Hp0=\"Super\",Zp0=\"ThisExpression\",xk0=u1,rk0=n1,ek0=\"TypeCastExpression\",tk0=u1,nk0=n1,uk0=\"SatisfiesExpression\",ik0=y1,fk0=\"AwaitExpression\",ck0=Ue,sk0=q7,ak0=RO,ok0=JL,vk0=Zs,lk0=Ws,pk0=Kl,kk0=\"matched above\",mk0=y1,hk0=KD,dk0=xv,yk0=\"UnaryExpression\",gk0=ED,wk0=WR,_k0=KD,bk0=y1,Tk0=xv,Ek0=\"UpdateExpression\",Sk0=\"delegate\",Ak0=y1,Pk0=\"YieldExpression\",Ik0=PO,Nk0=I2,jk0=_e,Ck0=\"MatchExpressionCase\",Ok0=PO,Dk0=I2,Fk0=_e,Rk0=\"MatchStatementCase\",Lk0=tk,Mk0=_e,qk0=Xa,Uk0=\"MatchObjectPatternProperty\",Bk0=M8,Xk0=\"base\",Yk0=\"MatchMemberPattern\",zk0=\"literal\",Kk0=\"MatchLiteralPattern\",Jk0=\"MatchWildcardPattern\",Gk0=Ue,Wk0=q7,Vk0=y1,$k0=xv,Qk0=\"MatchUnaryPattern\",Hk0=Fl,Zk0=bk,x80=\"MatchObjectPattern\",r80=Fl,e80=cT,t80=\"MatchArrayPattern\",n80=\"patterns\",u80=\"MatchOrPattern\",i80=Um,f80=_e,c80=\"MatchAsPattern\",s80=Vr,a80=\"MatchIdentifierPattern\",o80=Vs,v80=Vr,l80=\"MatchBindingPattern\",p80=y1,k80=\"MatchRestPattern\",m80=\"Unexpected FunctionDeclaration with BodyExpression\",h80=\"HookDeclaration\",d80=n1,y80=Me,g80=Rd,w80=Ka,_80=\"FunctionDeclaration\",b80=J1,T80=Dm,E80=I2,S80=un,A80=Vr,P80=\"Unexpected FunctionExpression with BodyExpression\",I80=J1,N80=Dm,j80=n1,C80=Me,O80=Rd,D80=Ka,F80=I2,R80=un,L80=Vr,M80=\"FunctionExpression\",q80=at,U80=u1,B80=qe,X80=tS,Y80=at,z80=u1,K80=qe,J80=\"PrivateIdentifier\",G80=at,W80=u1,V80=qe,$80=tS,Q80=pP,H80=y3,Z80=\"SwitchCase\",xm0=I2,rm0=\"param\",em0=\"CatchClause\",tm0=I2,nm0=\"BlockStatement\",um0=Vs,im0=Vr,fm0=\"DeclareVariable\",cm0=\"DeclareHook\",sm0=Me,am0=\"DeclareFunction\",om0=Vr,vm0=lR,lm0=cv,pm0=Qf,km0=I2,mm0=J1,hm0=Vr,dm0=\"DeclareClass\",ym0=J1,gm0=h9,wm0=un,_m0=Fl,bm0=un,Tm0=Vr,Em0=\"DeclareComponent\",Sm0=J1,Am0=h9,Pm0=Fl,Im0=un,Nm0=\"ComponentTypeAnnotation\",jm0=at,Cm0=u1,Om0=qe,Dm0=\"ComponentTypeParameter\",Fm0=I2,Rm0=Vr,Lm0=\"DeclareEnum\",Mm0=Qf,qm0=I2,Um0=J1,Bm0=Vr,Xm0=\"DeclareInterface\",Ym0=g2,zm0=qf,Km0=bS,Jm0=\"ExportNamespaceSpecifier\",Gm0=en,Wm0=J1,Vm0=Vr,$m0=\"DeclareTypeAlias\",Qm0=en,Hm0=J1,Zm0=Vr,x50=\"TypeAlias\",r50=\"DeclareOpaqueType\",e50=\"OpaqueType\",t50=\"supertype\",n50=\"impltype\",u50=J1,i50=Vr,f50=\"ClassDeclaration\",c50=\"ClassExpression\",s50=Rk,a50=cv,o50=\"superTypeParameters\",v50=\"superClass\",l50=J1,p50=I2,k50=Vr,m50=n1,h50=\"Decorator\",d50=J1,y50=Vr,g50=\"ClassImplements\",w50=I2,_50=\"ClassBody\",b50=Ro,T50=k6,E50=Bo,S50=T3,A50=Rk,P50=k3,I50=Re,N50=Vs,j50=g2,C50=Xa,O50=\"MethodDefinition\",D50=g6,F50=Rk,R50=K1,L50=Re,M50=k3,q50=u1,U50=g2,B50=Xa,X50=AL,Y50=\"Internal Error: Private name found in class prop\",z50=g6,K50=Rk,J50=K1,G50=Re,W50=k3,V50=u1,$50=g2,Q50=Xa,H50=AL,Z50=J1,xh0=h9,rh0=un,eh0=Vr,th0=I2,nh0=\"ComponentDeclaration\",uh0=y1,ih0=WT,fh0=en,ch0=Qs,sh0=G8,ah0=tk,oh0=i6,vh0=qe,lh0=\"ComponentParameter\",ph0=Gc,kh0=Vr,mh0=\"EnumBigIntMember\",hh0=Vr,dh0=XD,yh0=Gc,gh0=Vr,wh0=\"EnumStringMember\",_h0=Vr,bh0=XD,Th0=Gc,Eh0=Vr,Sh0=\"EnumNumberMember\",Ah0=Gc,Ph0=Vr,Ih0=\"EnumBooleanMember\",Nh0=t6,jh0=B8,Ch0=Ul,Oh0=\"EnumBooleanBody\",Dh0=t6,Fh0=B8,Rh0=Ul,Lh0=\"EnumNumberBody\",Mh0=t6,qh0=B8,Uh0=Ul,Bh0=\"EnumStringBody\",Xh0=t6,Yh0=Ul,zh0=\"EnumSymbolBody\",Kh0=t6,Jh0=B8,Gh0=Ul,Wh0=\"EnumBigIntBody\",Vh0=I2,$h0=Vr,Qh0=\"EnumDeclaration\",Hh0=Qf,Zh0=I2,xd0=J1,rd0=Vr,ed0=\"InterfaceDeclaration\",td0=J1,nd0=Vr,ud0=\"InterfaceExtends\",id0=u1,fd0=bk,cd0=\"ObjectPattern\",sd0=u1,ad0=cT,od0=\"ArrayPattern\",vd0=en,ld0=Qs,pd0=G8,kd0=u1,md0=qe,hd0=tS,dd0=y1,yd0=WT,gd0=y1,wd0=WT,_d0=en,bd0=Qs,Td0=G8,Ed0=Gc,Sd0=Gc,Ad0=Bo,Pd0=T3,Id0=cD,Nd0=k3,jd0=tk,Cd0=k6,Od0=Vs,Dd0=g2,Fd0=Xa,Rd0=wF,Ld0=y1,Md0=pD,qd0=en,Ud0=Qs,Bd0=G8,Xd0=k3,Yd0=tk,zd0=k6,Kd0=Vs,Jd0=g2,Gd0=Xa,Wd0=wF,Vd0=y1,$d0=pD,Qd0=It,Hd0=g2,Zd0=o3,xy0=Z0,ry0=It,ey0=av,ty0=g2,ny0=o3,uy0=It,iy0=g2,fy0=o3,cy0=ra,sy0=Gs,ay0=It,oy0=g2,vy0=o3,ly0=\"flags\",py0=_e,ky0=\"regex\",my0=It,hy0=g2,dy0=o3,yy0=It,gy0=g2,wy0=o3,_y0=ZF,by0=\"quasis\",Ty0=\"TemplateLiteral\",Ey0=\"cooked\",Sy0=It,Ay0=\"tail\",Py0=g2,Iy0=\"TemplateElement\",Ny0=\"quasi\",jy0=\"tag\",Cy0=\"TaggedTemplateExpression\",Oy0=Yl,Dy0=j3,Fy0=u6,Ry0=Vs,Ly0=\"declarations\",My0=\"VariableDeclaration\",qy0=Gc,Uy0=Vr,By0=\"VariableDeclarator\",Xy0=\"plus\",Yy0=eR,zy0=Zo,Ky0=qa,Jy0=dw,Gy0=\"in-out\",Wy0=Vs,Vy0=\"Variance\",$y0=\"AnyTypeAnnotation\",Qy0=\"MixedTypeAnnotation\",Hy0=\"EmptyTypeAnnotation\",Zy0=\"VoidTypeAnnotation\",x90=\"NullLiteralTypeAnnotation\",r90=\"SymbolTypeAnnotation\",e90=\"NumberTypeAnnotation\",t90=\"BigIntTypeAnnotation\",n90=\"StringTypeAnnotation\",u90=\"BooleanTypeAnnotation\",i90=u1,f90=\"NullableTypeAnnotation\",c90=\"UnknownTypeAnnotation\",s90=\"NeverTypeAnnotation\",a90=\"UndefinedTypeAnnotation\",o90=Vs,v90=u1,l90=\"parameterName\",p90=\"TypePredicate\",k90=\"HookTypeAnnotation\",m90=\"FunctionTypeAnnotation\",h90=Qo,d90=J1,y90=Fl,g90=Dm,w90=un,_90=at,b90=u1,T90=qe,E90=iR,S90=at,A90=u1,P90=qe,I90=iR,N90=[0,0,0,0,0],j90=\"internalSlots\",C90=\"callProperties\",O90=\"indexers\",D90=bk,F90=\"exact\",R90=QR,L90=\"ObjectTypeAnnotation\",M90=cD,q90=\"There should not be computed object type property keys\",U90=Gc,B90=Bo,X90=T3,Y90=Vs,z90=K1,K90=pg,J90=Re,G90=at,W90=k6,V90=g2,$90=Xa,Q90=\"ObjectTypeProperty\",H90=y1,Z90=\"ObjectTypeSpreadProperty\",xg0=K1,rg0=Re,eg0=g2,tg0=Xa,ng0=Vr,ug0=\"ObjectTypeIndexer\",ig0=Re,fg0=g2,cg0=\"ObjectTypeCallProperty\",sg0=at,ag0=K1,og0=\"sourceType\",vg0=\"propType\",lg0=\"keyTparam\",pg0=\"ObjectTypeMappedTypeProperty\",kg0=g2,mg0=k6,hg0=Re,dg0=at,yg0=Vr,gg0=\"ObjectTypeInternalSlot\",wg0=I2,_g0=Qf,bg0=\"InterfaceTypeAnnotation\",Tg0=GR,Eg0=\"ArrayTypeAnnotation\",Sg0=\"falseType\",Ag0=\"trueType\",Pg0=\"extendsType\",Ig0=\"checkType\",Ng0=\"ConditionalTypeAnnotation\",jg0=\"typeParameter\",Cg0=\"InferTypeAnnotation\",Og0=Vr,Dg0=qF,Fg0=\"QualifiedTypeIdentifier\",Rg0=J1,Lg0=Vr,Mg0=\"GenericTypeAnnotation\",qg0=\"indexType\",Ug0=\"objectType\",Bg0=\"IndexedAccessType\",Xg0=at,Yg0=\"OptionalIndexedAccessType\",zg0=N9,Kg0=\"UnionTypeAnnotation\",Jg0=N9,Gg0=\"IntersectionTypeAnnotation\",Wg0=jk,Vg0=y1,$g0=\"TypeofTypeAnnotation\",Qg0=Vr,Hg0=qF,Zg0=\"QualifiedTypeofIdentifier\",xw0=y1,rw0=\"KeyofTypeAnnotation\",ew0=_3,tw0=FF,nw0=sF,uw0=u1,iw0=xv,fw0=\"TypeOperator\",cw0=Zo,sw0=QR,aw0=\"elementTypes\",ow0=\"TupleTypeAnnotation\",vw0=at,lw0=K1,pw0=GR,kw0=Jl,mw0=\"TupleTypeLabeledElement\",hw0=u1,dw0=Jl,yw0=\"TupleTypeSpreadElement\",gw0=It,ww0=g2,_w0=\"StringLiteralTypeAnnotation\",bw0=It,Tw0=g2,Ew0=\"NumberLiteralTypeAnnotation\",Sw0=It,Aw0=g2,Pw0=\"BigIntLiteralTypeAnnotation\",Iw0=ra,Nw0=Gs,jw0=It,Cw0=g2,Ow0=\"BooleanLiteralTypeAnnotation\",Dw0=\"ExistsTypeAnnotation\",Fw0=u1,Rw0=hF,Lw0=u1,Mw0=hF,qw0=un,Uw0=\"TypeParameterDeclaration\",Bw0=\"usesExtendsBound\",Xw0=Go,Yw0=K1,zw0=\"bound\",Kw0=qe,Jw0=\"TypeParameter\",Gw0=un,Ww0=mR,Vw0=un,$w0=mR,Qw0=qo,Hw0=SL,Zw0=\"closingElement\",x_0=\"openingElement\",r_0=\"JSXElement\",e_0=\"closingFragment\",t_0=SL,n_0=\"openingFragment\",u_0=\"JSXFragment\",i_0=jk,f_0=\"selfClosing\",c_0=\"attributes\",s_0=qe,a_0=\"JSXOpeningElement\",o_0=\"JSXOpeningFragment\",v_0=qe,l_0=\"JSXClosingElement\",p_0=\"JSXClosingFragment\",k_0=g2,m_0=qe,h_0=\"JSXAttribute\",d_0=y1,y_0=\"JSXSpreadAttribute\",g_0=\"JSXEmptyExpression\",w_0=n1,__0=\"JSXExpressionContainer\",b_0=n1,T_0=\"JSXSpreadChild\",E_0=It,S_0=g2,A_0=\"JSXText\",P_0=M8,I_0=G4,N_0=\"JSXMemberExpression\",j_0=qe,C_0=hT,O_0=\"JSXNamespacedName\",D_0=qe,F_0=\"JSXIdentifier\",R_0=bS,L_0=i6,M_0=\"ExportSpecifier\",q_0=i6,U_0=\"ImportDefaultSpecifier\",B_0=i6,X_0=\"ImportNamespaceSpecifier\",Y_0=HO,z_0=i6,K_0=\"imported\",J_0=\"ImportSpecifier\",G_0=\"Line\",W_0=\"Block\",V_0=g2,$_0=g2,Q_0=\"DeclaredPredicate\",H_0=\"InferredPredicate\",Z_0=vb,xb0=jk,rb0=kD,eb0=k3,tb0=M8,nb0=G4,ub0=\"message\",ib0=vx,fb0=OO,cb0=_D,sb0=iv,ab0=f6,ob0=ik,vb0=[0,B1,Gi,Fi,M7,K1,_f,c7,Vf,nc,df,Ai,gu,gi,nu,S7,s7,Ru,Tf,D7,Yu,zi,N7,zn,Rf,fu,Z7,Xn,Kf,is,Jf,rf,cf,ts,gc,U7,ze,Wn,Oi,x7,Nc,Ti,Xf,Oc,Ge,Tc,Su,W7,i7,Bc,zu,xu,k7,Xe,Ju,v7,pf,r7,af,o7,qc,Me,wf,li,Lu,A7,ru,Mi,Ji,g7,Df,Q7,kc,Li,f7,jn,kf,_u,C7,fi,Ic,oi,vu,_e,Dc,Kn,Mf,Du,rs,Un,Gn,e7,Nf,ac,Bn,Jn,Si,Ff,Qi,Tu,Ki,On,Pc,Nu,Xu,mi,Cu,Fu,Gu,Vn,vi,jc,Ei,Qc,Sf,Ec,Au,bu,si,cu,Mn,hf,Vc,Zi,L7,ji,Bf,Hi,lf,J7,uu,m7,Jc,ec,su,mu,$7,Yc,Vu,ne,l7,qn,yc,Wu,$i,eu,X7,uf,If,Wc,uc,lc,O7,Zf,Eu,Pf,Hn,T7,B7,Ef,y7,$c,Ku,wi,di,pc,Rn,Iu,Mu,z7,Wi,ie,Wf,Mc,Yf,du,mf,Xc,Di,Dn,X1,yi,I7,Uc,Pt,ki,dc,xs,K7,Qn,$u,wu,ri,Ri,h7,$f,xc,Bu,V7,tf,Uf,ns,pu,ef,Yn,zc,pi,xi,Ci,Zc,nf,t7,p7,gf,Zu,w7,oc,Fc,u7,n1,Cn,mc,xf,us,d7,Fn,Pi,cc,Af,wc,vc,es,_7,Sc,bf,rc,ic,au,yu,b7,be,Bi,ju,Nn,Hf,sc,ni,_c,ii,Vi,iu,Ii,H7,Lf,Lc,Ye,Le,qi,Yi,qu,Ac,Rc,F7,tu,Of,fc,Hc,Ln,tc,bi,jf,Y7,Xi,R7,ff,hi,a7,zf,Cf,P7,Uu,ai,ei,Ou,yf,Pu,lu,of,Zn,Qu,n7,Ni,ti,fs,Ke,G7,bc,fn,j7,E7,Hu,Kc,$n,ou,ku,ci,hc,Ui,Gf,xn,sf],lb0=[0,Bc,Ku,xc,ki,ri,fs,Gu,Ki,O7,z7,bc,fu,Gn,Ge,rs,mc,L7,Hi,yf,ts,Si,B7,vi,Wf,y7,ic,_7,Gi,_u,K7,xi,f7,$i,sc,Of,xs,rc,Qc,Pt,M7,gf,Df,Vi,Ni,Bu,n7,Hn,cc,wf,$u,Ci,Oc,Pc,I7,W7,Mn,du,au,Wu,Ei,ai,hi,Dc,sf,ru,ji,bi,N7,Tu,Lu,Wc,Cf,e7,Me,Jn,Ri,Kn,Sf,Zf,T7,dc,ne,Yi,Xn,vc,m7,lf,uc,l7,$f,$7,g7,Ui,_c,Fn,bu,r7,vu,Gf,b7,ti,k7,K1,li,H7,s7,v7,yi,cu,Hu,pi,U7,pc,Ou,mi,Xf,be,t7,Z7,B1,qn,gc,Ii,Mi,gu,Ic,Lf,af,Kc,Ai,ff,iu,Fu,Vf,uu,Ef,ku,Jf,Mu,Sc,oc,Un,xf,yc,fi,Zu,Tf,is,jf,_f,rf,zu,Ru,Su,df,P7,Mc,Zc,a7,Vu,h7,Y7,nc,R7,hf,Cu,X7,fc,$n,si,of,ei,Ln,Jc,C7,uf,tc,Au,X1,Xe,S7,D7,Tc,kf,ze,Ye,Vn,Uc,Du,u7,$c,_e,G7,ns,bf,Yf,zf,Cn,V7,wi,wu,nu,es,qc,Yn,Di,Bf,wc,d7,Rc,Xu,xu,On,mf,ac,kc,Kf,Qi,A7,Bn,Yu,ni,J7,Zn,ii,j7,Rn,Ti,yu,cf,Qn,o7,Dn,Ff,lu,Nu,Pf,Uu,mu,Wi,Bi,Rf,xn,c7,ju,Qu,zn,Nn,Eu,di,qu,eu,Li,jc,Iu,w7,su,If,zi,x7,ou,Zi,F7,jn,ci,E7,n1,oi,Xi,Fc,Vc,pu,ef,i7,Le,tf,Hc,Ji,Pi,Hf,Oi,Nc,ec,zc,us,gi,nf,Yc,Mf,fn,Xc,Pu,lc,Nf,Uf,Lc,Ju,Af,Ke,hc,ie,qi,Fi,tu,pf,p7,Ac,Q7,Wn,Ec],pb0=[0,sf,xn,Gf,Ui,hc,ci,ku,ou,$n,Kc,Hu,E7,j7,fn,bc,G7,Ke,fs,ti,Ni,n7,Qu,Zn,of,lu,Pu,yf,Ou,ei,ai,Uu,P7,Cf,zf,a7,hi,ff,R7,Xi,Y7,jf,bi,tc,Ln,Hc,fc,Of,tu,F7,Rc,Ac,qu,Yi,qi,Le,Ye,Lc,Lf,H7,Ii,iu,Vi,ii,_c,ni,sc,Hf,Nn,ju,Bi,be,b7,yu,au,ic,rc,bf,Sc,_7,es,vc,wc,Af,cc,Pi,Fn,d7,us,xf,mc,Cn,n1,u7,Fc,oc,w7,Zu,gf,p7,t7,nf,Zc,Ci,xi,pi,zc,Yn,ef,pu,ns,Uf,tf,V7,Bu,xc,$f,h7,Ri,ri,wu,$u,Qn,K7,xs,dc,ki,Pt,Uc,I7,yi,X1,Dn,Di,Xc,mf,du,Yf,Mc,Wf,ie,Wi,z7,Mu,Iu,Rn,pc,di,wi,Ku,$c,y7,Ef,B7,T7,Hn,Pf,Eu,Zf,O7,lc,uc,Wc,If,uf,X7,eu,$i,Wu,yc,qn,l7,ne,Vu,Yc,$7,mu,su,ec,Jc,m7,uu,J7,lf,Hi,Bf,ji,L7,Zi,Vc,hf,Mn,cu,si,bu,Au,Ec,Sf,Qc,Ei,jc,vi,Vn,Gu,Fu,Cu,mi,Xu,Nu,Pc,On,Ki,Tu,Qi,Ff,Si,Jn,Bn,ac,Nf,e7,Gn,Un,rs,Du,Mf,Kn,Dc,_e,vu,oi,Ic,fi,C7,_u,kf,jn,f7,Li,kc,Q7,Df,g7,Ji,Mi,ru,A7,Lu,li,wf,Me,qc,o7,af,r7,pf,v7,Ju,Xe,k7,xu,zu,Bc,i7,W7,Su,Tc,Ge,Oc,Xf,Ti,Nc,x7,Oi,Wn,ze,U7,gc,ts,cf,rf,Jf,is,Kf,Xn,Z7,fu,Rf,zn,N7,zi,Yu,D7,Tf,Ru,s7,S7,nu,gi,gu,Ai,df,nc,Vf,c7,_f,K1,M7,Fi,Gi,B1],kb0=\"Jsoo_runtime.Error.Exn\",mb0=[0,0],hb0=\"use_strict\",db0=N9,yb0=\"esproposal_decorators\",gb0=\"pattern_matching\",wb0=\"enums\",_b0=\"components\",bb0=\"Internal error: \",Tb0=[n2,\"CamlinternalLazy.Undefined\",as(0)];function Eb0(x,r){var e=Nx(r)-1|0,t=0;if(e>=0)for(var u=t;;){x(J0(r,u));var i=u+1|0;if(e===u)break;var u=i}}var Sb0=fx,Ab0=[0,0];function Pb0(x){var r=NK(0),e=kq(O),t=r.length-1,u=S2((t*8|0)+1|0),i=t-1|0,c=0;if(i>=0)for(var v=c;;){Pz(u,v*8|0,T6(N2(r,v)[1+v]));var a=v+1|0;if(i===v)break;var v=a}ua(u,t*8|0,1);var l=pq(u);ua(u,t*8|0,2);var m=pq(u),h=a5(m,8),T=a5(m,0),b=a5(l,8);return mq(e,a5(l,0),b,T,h),e}for(;;){var zq=R3(WN);let x=[0,1],r=zq;if(!(1-Bm(WN,zq,function(e){return Bm(x,1,0)&&(yv(hv(Bq),O),yv(hv(Xq),O)),d(r,0)})))break}if(R3(Ab0))throw W0([0,u5,UV],1);var pa=HN([0,fx]),gv=HN([0,fx]),Ha=HN([0,We]),Kq=XN(0,0),Ib0=2,Nb0=[0,0];function Jq(x){return 2=0)for(var c=i;;){var v=(c*2|0)+3|0,a=N2(x,c)[1+c];N2(e,v)[1+v]=a;var l=c+1|0;if(u===c)break;var c=l}return[0,Ib0,e,gv[1],Ha[1],0,0,pa[1],0]}function Sj(x,r){var e=x[2].length-1;if(e=0)for(var u=t;;){var i=q2(x,u);r[1]=(kk*r[1]|0)+i|0;var c=u+1|0;if(e===u)break;var u=c}r[1]=r[1]&QF;var v=1073741823r)return e;var t=[0,x[1+r],e],r=r-1|0,e=t}}function Nj(x,r){try{var e=pa[17].call(null,r,x[7]);return e}catch(i){var t=U2(i);if(t!==os)throw W0(t,0);var u=x[1];return x[1]=u+1|0,P(r,Z0)&&(x[7]=pa[2].call(null,r,u,x[7])),u}}function jj(x){return B3(x,0)?[0]:x}function Cj(x,r,e,t,u,i){var c=u[2],v=u[4],a=Ij(r),l=Ij(e),m=Ij(t),h=vs(function(H){return z6(x,H)},l),T=vs(function(H){return z6(x,H)},m);x[5]=[0,[0,x[3],x[4],x[6],x[7],h,a],x[5]],x[7]=pa[24].call(null,function(H,t0,c0){return QN(H,a)?pa[2].call(null,H,t0,c0):c0},x[7],pa[1]);var b=[0,gv[1]],N=[0,Ha[1]];JM(function(H,t0){b[1]=gv[2].call(null,H,t0,b[1]);var c0=N[1];try{var r0=Ha[17].call(null,t0,x[4]),v0=r0}catch(g0){var a0=U2(g0);if(a0!==os)throw W0(a0,0);var v0=1}N[1]=Ha[2].call(null,t0,v0,c0)},m,T),JM(function(H,t0){b[1]=gv[2].call(null,H,t0,b[1]),N[1]=Ha[2].call(null,t0,0,N[1])},l,h),x[3]=b[1],x[4]=N[1],x[6]=$N(function(H,t0){return QN(H[1],h)?t0:[0,H,t0]},x[6],0);var j=i?d(c(x),v):c(x),I=C6(x[5]),F=I[6],M=I[5],z=I[4],B=I[3],K=I[2],n0=I[1];x[5]=KM(x[5]),x[7]=m1(function(H,t0){var c0=pa[17].call(null,t0,x[7]);return pa[2].call(null,t0,c0,H)},z,F),x[3]=n0,x[4]=K,x[6]=$N(function(H,t0){return QN(H[1],M)?t0:[0,H,t0]},x[6],B);var $=[0,o5(function(H){var t0=z6(x,H);try{for(var c0=x[6];;){if(!c0)throw W0(os,1);var r0=c0[1],v0=c0[2],a0=r0[2];if(kM(r0[1],t0)===0)return a0;var c0=v0}}catch(i0){var g0=U2(i0);if(g0===os)return N2(x[2],t0)[1+t0];throw W0(g0,0)}},jj(t)),0];return yz([0,[0,j],[0,o5(function(H){try{var t0=pa[17].call(null,H,x[7]);return t0}catch(r0){var c0=U2(r0);throw c0===os?W0([0,Nr,BV],1):W0(c0,0)}},jj(r)),$]])}function d5(x,r){if(x===0)var e=Gq([0]);else{var t=Gq(o5(jb0,x)),u=x.length-1-1|0,i=0;if(u>=0)for(var c=i;;){var v=(c*2|0)+2|0;t[3]=gv[2].call(null,x[1+c],v,t[3]),t[4]=Ha[2].call(null,v,1,t[4]);var a=c+1|0;if(u===c)break;var c=a}var e=t}var l=r(e);return e[8]=ix(e[8]),Sj(e,3+((N2(e[2],1)[2]*16|0)/32|0)|0),[0,d(l,0),r,,0]}function y5(x,r){if(x)return x;var e=XN(n2,r[1]);return e[1]=r[2],TK(e)}function Oj(x,r,e){if(x)return r;var t=e[8];if(t!==0)for(var u=t;u;){var i=u[2];d(u[1],r);var u=i}return r}function g5(x){var r=Aj(x);x:{if(r%2|0&&(2+((N2(x[2],1)[2]*16|0)/32|0)|0)>=r){var e=Aj(x);break x}var e=r}return N2(x[2],e)[1+e]=0,e}function Dj(x,r){for(var e=[0,0],t=r.length-1;;){if(e[1]>=t)return;var u=e[1],i=function(K0){e[1]++;var A0=e[1];return N2(r,A0)[1+A0]},c=N2(r,u)[1+u],v=i(O);if(typeof v==\"number\")switch(v){case 0:let K0=i(O);var S0=function(ux){return K0};break;case 1:let A0=i(O);var S0=function(ux){return ux[1+A0]};break;case 2:var a=i(O);let $0=a,ex=i(O);var S0=function(ux){return ux[1+$0][1+ex]};break;case 3:let xx=i(O);var S0=function(ux){return d(ux[1][1+xx],ux)};break;case 4:let tx=i(O);var S0=function(ux,Lx){return ux[1+tx]=Lx,0};break;case 5:var l=i(O);let z0=l,px=i(O);var S0=function(ux){return d(z0,px)};break;case 6:var m=i(O);let sx=m,Q=i(O);var S0=function(ux){return d(sx,ux[1+Q])};break;case 7:var h=i(O),T=i(O);let b0=h,U=T,h0=i(O);var S0=function(ux){return d(b0,ux[1+U][1+h0])};break;case 8:var b=i(O);let _0=b,m0=i(O);var S0=function(ux){return d(_0,d(ux[1][1+m0],ux))};break;case 9:var N=i(O),j=i(O);let T0=N,X=j,Gx=i(O);var S0=function(ux){return p(T0,X,Gx)};break;case 10:var I=i(O),F=i(O);let Px=I,G0=F,Kr=i(O);var S0=function(ux){return p(Px,G0,ux[1+Kr])};break;case 11:var M=i(O),z=i(O),B=i(O);let S=M,G=z,rx=B,yx=i(O);var S0=function(ux){return p(S,G,ux[1+rx][1+yx])};break;case 12:var K=i(O),n0=i(O);let Ex=K,nx=n0,p0=i(O);var S0=function(ux){return p(Ex,nx,d(ux[1][1+p0],ux))};break;case 13:var $=i(O),H=i(O);let Fx=$,Sx=H,bx=i(O);var S0=function(ux){return p(Fx,ux[1+Sx],bx)};break;case 14:var t0=i(O),c0=i(O),r0=i(O);let B0=t0,Wx=c0,Yx=r0,ax=i(O);var S0=function(ux){return p(B0,ux[1+Wx][1+Yx],ax)};break;case 15:var v0=i(O),a0=i(O);let Qx=v0,kx=a0,tr=i(O);var S0=function(ux){return p(Qx,d(ux[1][1+kx],ux),tr)};break;case 16:var g0=i(O);let sr=g0,Mr=i(O);var S0=function(ux){return p(ux[1][1+sr],ux,Mr)};break;case 17:var i0=i(O);let a2=i0,_2=i(O);var S0=function(ux){return p(ux[1][1+a2],ux,ux[1+_2])};break;case 18:var s0=i(O),d0=i(O);let i2=s0,Q2=d0,jx=i(O);var S0=function(ux){return p(ux[1][1+i2],ux,ux[1+Q2][1+jx])};break;case 19:var w0=i(O);let _=w0,V=i(O);var S0=function(ux){var Lx=d(ux[1][1+V],ux);return p(ux[1][1+_],ux,Lx)};break;case 20:var M0=i(O),C0=i(O);g5(x);let lx=M0,U0=C0;var S0=function(ux){return d(Bx(U0,lx,0),U0)};break;case 21:var D0=i(O),I0=i(O);g5(x);let ox=D0,wx=I0;var S0=function(ux){var Lx=ux[1+wx];return d(Bx(Lx,ox,0),Lx)};break;case 22:var j0=i(O),y0=i(O),Y0=i(O);g5(x);let Cr=j0,Hx=y0,Zr=Y0;var S0=function(ux){var Lx=ux[1+Hx][1+Zr];return d(Bx(Lx,Cr,0),Lx)};break;default:var L=i(O),N0=i(O);g5(x);let dr=L,Or=N0;var S0=function(ux){var Lx=d(ux[1][1+Or],ux);return d(Bx(Lx,dr,0),Lx)}}else var S0=v;Wq(x,c,S0),e[1]++}}function Vq(x,r){var e=r.length-1,t=XN(0,e),u=e-1|0,i=0;if(u>=0)for(var c=i;;){var v=N2(r,c)[1+c];if(typeof v==\"number\")switch(v){case 0:let N=c;var a=function(z){var B=t[1+N];if(j===B)throw W0([0,I6,x],1);return d(B,z)};let j=a;var h=a;break;case 1:var l=[];let I=l,F=c;Fr(l,[A3,function(z){var B=t[1+F];if(I===B)throw W0([0,I6,x],1);var K=pv(B);if(D3===K)return B[1];if(A3!==K&&zo!==K)return B;if(xK(B)!==0)throw W0(Tb0,1);var n0=B[1];B[1]=0;try{var $=d(n0,0);return B[1]=$,rK(B),$}catch(t0){var H=U2(t0);throw B[1]=function(c0){throw W0(H,0)},Zz(B),W0(H,0)}}]);var h=l;break;default:var m=function(z){throw W0([0,I6,x],1)},h=[0,m,m,m,0]}else var h=v[0]===0?Vq(x,v[1]):v[1];t[1+c]=h;var T=c+1|0;if(u===c)break;var c=T}return t}function $q(x,r,e){if(pv(e)===0&&x.length-1<=e.length-1){var t=x.length-1-1|0,u=0;if(t>=0)for(var i=u;;){var c=e[1+i],v=N2(x,i)[1+i];x:if(typeof v==\"number\"){if(v===2){if(pv(c)===0&&c.length-1===4){for(var a=0,l=r[1+i];;){l[1+a]=c[1+a];var m=a+1|0;if(a===3)break;var a=m}break x}throw W0([0,Nr,XV],1)}r[1+i]=c}else v[0]===0&&$q(v[1],r[1+i],c);var h=i+1|0;if(t===i)break;var i=h}return}throw W0([0,Nr,YV],1)}try{var Ob0=CM(\"TMPDIR\"),Fj=Ob0}catch(x){var Qq=U2(x);if(Qq!==os)throw W0(Qq,0);var Fj=zV}var Db0=[0,,,,,,,,,,Fj];try{var Fb0=CM(\"TEMP\"),Hq=Fb0}catch(x){var Zq=U2(x);if(Zq!==os)throw W0(Zq,0);var Hq=KV}var Rb0=[0,,,,,,,,,,Hq],Lb0=[0,,,,,,,,,,Fj],Mb0=P(YM,WD)?P(YM,\"Win32\")?Db0:Rb0:Lb0,qb0=Mb0[10];ls(0,Pb0),ls([0,function(x){return x}],function(x){return qb0});function ps(x,r){function e(t){return lt(x,t)}return c6<=r?(e(w3|r>>>18|0),e(M2|(r>>>12|0)&63),e(M2|(r>>>6|0)&63),e(M2|r&63)):t_<=r?(e(s3|r>>>12|0),e(M2|(r>>>6|0)&63),e(M2|r&63)):M2<=r?(e(a3|r>>>6|0),e(M2|r&63)):e(r)}var Za=[n2,WV,as(0)],xU=0,rU=0,eU=0,tU=0,nU=0,uU=0,iU=0,fU=0,cU=0,sU=0;function y(x){if(x[3]===x[2])return-1;var r=x[1][1+x[3]];return x[3]=x[3]+1|0,r===10&&(x[5]!==0&&(x[5]=x[5]+1|0),x[4]=x[3]),r}function W(x,r){x[9]=x[3],x[10]=x[4],x[11]=x[5],x[12]=r}function or(x){return x[6]=x[3],x[7]=x[4],x[8]=x[5],W(x,-1)}function w(x){return x[3]=x[9],x[4]=x[10],x[5]=x[11],x[12]}function xl(x){x[3]=x[6],x[4]=x[7],x[5]=x[8]}function Rj(x,r){x[6]=r}function w5(x){return x[3]-x[6]|0}function l2(x){var r=x[3]-x[6]|0,e=x[6],t=x[1];return 0<=e&&0<=r&&(t.length-1-r|0)>=e?gz(t,e,r):R1(qV)}function aU(x){var r=x[6];return N2(x[1],r)[1+r]}function K6(x,r,e,t){for(var u=[0,r],i=[0,e],c=[0,0];;){if(0>=i[1])return c[1];var v=x[1+u[1]];if(0>v)throw W0(Za,1);if(Br>>18|0),Xr(t,c[1]+1|0,M2|(v>>>12|0)&63),Xr(t,c[1]+2|0,M2|(v>>>6|0)&63),Xr(t,c[1]+3|0,M2|v&63),c[1]=c[1]+4|0}else Xr(t,c[1],s3|v>>>12|0),Xr(t,c[1]+1|0,M2|(v>>>6|0)&63),Xr(t,c[1]+2|0,M2|v&63),c[1]=c[1]+3|0;else Xr(t,c[1],a3|v>>>6|0),Xr(t,c[1]+1|0,M2|v&63),c[1]=c[1]+2|0;else Xr(t,c[1],v),c[1]++;u[1]++,i[1]+=-1}}function oU(x){for(var r=Nx(x),e=$a(r,0),t=[0,0],u=[0,0];;){if(t[1]>=r)return[0,e,u[1],sU,cU,fU,iU,uU,nU,tU,eU,rU,xU];var i=J0(x,t[1]);x:{if(a3<=i){if(w3>i){if(s3>i){var c=J0(x,t[1]+1|0);if((c>>>6|0)!==2)throw W0(Za,1);e[1+u[1]]=(i&31)<<6|c&63,t[1]=t[1]+2|0;break x}var v=J0(x,t[1]+1|0),a=J0(x,t[1]+2|0),l=(i&15)<<12|(v&63)<<6|a&63,m=(v>>>6|0)!==2?1:0,h=m||((a>>>6|0)!==2?1:0);if(h)var b=h;else var T=55296<=l?1:0,b=T&&(l<=57343?1:0);if(b)throw W0(Za,1);e[1+u[1]]=l,t[1]=t[1]+3|0;break x}if(n2>i){var N=J0(x,t[1]+1|0),j=J0(x,t[1]+2|0),I=J0(x,t[1]+3|0),F=(N>>>6|0)!==2?1:0;if(F)var z=F;else var M=(j>>>6|0)!==2?1:0,z=M||((I>>>6|0)!==2?1:0);if(z)throw W0(Za,1);var B=(i&7)<<18|(N&63)<<12|(j&63)<<6|I&63;if(rki){e[1+u[1]]=i,t[1]++;break x}throw W0(Za,1)}u[1]++}}function J6(x,r,e){var t=x[6]+r|0,u=S2(e*4|0),i=x[1];if((t+e|0)<=i.length-1)return G3(u,0,K6(i,t,e,u));throw W0([0,Nr,GV],1)}function Dx(x){var r=x[6],e=x[3]-r|0,t=S2(e*4|0);return G3(t,0,K6(x[1],r,e,t))}function _5(x,r){var e=x[6],t=x[3]-e|0,u=S2(t*4|0);return tj(r,u,0,K6(x[1],e,t,u))}function G6(x){var r=x.length-1,e=S2(r*4|0);return G3(e,0,K6(x,0,r,e))}function vU(x,r){x[3]=x[3]-r|0}function ks(x){return typeof x==\"number\"?0:x[0]===0?1:x[1]}function wv(x,r,e,t){var u=ks(x),i=ks(t),c=i<=u?u+1|0:i+1|0;return c===1?[0,r,e]:[1,c,r,e,x,t]}function b5(x,r,e,t){var u=ks(x),i=ks(t),c=i<=u?u+1|0:i+1|0;return[1,c,r,e,x,t]}function lU(x,r,e,t){var u=ks(x),i=ks(t);if((i+2|0)=i)return wv(x,r,e,t);var j=t[5],I=t[4],F=t[3],M=t[2],z=ks(I);if(z<=ks(j))return b5(wv(x,r,e,I),M,F,j);var B=I[4],K=I[3],n0=I[2],$=wv(I[5],M,F,j);return b5(wv(x,r,e,B),n0,K,$)}function xo(x){return typeof x==\"number\"?0:x[0]===0?1:x[1]}function ka(x,r,e){x:{r:{if(typeof x==\"number\"){if(typeof e==\"number\")return[0,r];if(e[0]===1)break r}else{if(x[0]!==0){var t=x[1];if(typeof e!=\"number\"&&e[0]===1){var u=e[1],i=u<=t?t+1|0:u+1|0;return[1,i,r,x,e]}var c=t;break x}if(typeof e!=\"number\"&&e[0]===1)break r}return[1,2,r,x,e]}var c=e[1]}return[1,c+1|0,r,x,e]}function T5(x,r,e){var t=xo(x),u=xo(e),i=u<=t?t+1|0:u+1|0;return[1,i,r,x,e]}function pU(x,r,e){var t=xo(x),u=xo(e);if((u+2|0)=u)return ka(x,r,e);var T=e[4],b=e[3],N=e[2],j=xo(b);if(j<=xo(T))return T5(ka(x,r,b),N,T);var I=b[3],F=b[2],M=ka(b[4],N,T);return T5(ka(x,r,I),F,M)}var Lj=0;function kU(x){function r(e,t){if(typeof t==\"number\")return[0,e];if(t[0]===0){var u=t[1],i=p(x[1],e,u);return i===0?t:0<=i?ka(t,e,Lj):ka([0,e],u,Lj)}var c=t[4],v=t[3],a=t[2],l=p(x[1],e,a);if(l===0)return t;if(0<=l){var m=r(e,c);return c===m?t:pU(v,a,m)}var h=r(e,v);return v===h?t:pU(h,a,c)}return[0,Lj,,function(e,t){for(var u=t;;){if(typeof u==\"number\")return 0;if(u[0]===0)return p(x[1],e,u[1])===0?1:0;var i=u[4],c=u[3],v=p(x[1],e,u[2]),a=v===0?1:0;if(a)return a;var l=0<=v?i:c,u=l}},r]}function mU(x){switch(x[0]){case 0:return 1;case 1:return 2;case 2:return 2;default:return 3}}function Ax(x,r){if(!r)return r;var e=r[1],t=d(x,e);return e===t?r:[0,t]}function O0(x,r,e,t,u){var i=p(x,r,e);return e===i?t:u(i)}function P0(x,r,e,t){var u=d(x,r);return r===u?e:t(u)}function W2(x,r){var e=r[1];return O0(x,e,r[2],r,function(t){return[0,e,t]})}function W6(x,r){return Ax(function(e){var t=e[1];return O0(x,t,e[2],e,function(u){return[0,t,u]})},r)}function fr(x,r){var e=m1(function(u,i){var c=u[2],v=u[1],a=d(x,i),l=c||(a!==i?1:0);return[0,[0,a,v],l]},S$,r),t=e[1];return e[2]?ix(t):r}var Mj=d5(P$,function(x){var r=Pj(x,A$),e=r[1],t=r[2],u=r[3],i=r[4],c=r[5],v=r[6],a=r[7],l=r[8],m=r[9],h=r[10],T=r[11],b=r[12],N=r[13],j=r[14],I=r[15],F=r[16],M=r[17],z=r[18],B=r[19],K=r[20],n0=r[21],$=r[22],H=r[23],t0=r[24],c0=r[25],r0=r[26],v0=r[27],a0=r[28],g0=r[29],i0=r[30],s0=r[31],d0=r[32],w0=r[33],M0=r[34],C0=r[35],D0=r[36],I0=r[37],j0=r[38],y0=r[39],Y0=r[40],L=r[41],N0=r[42],S0=r[43],K0=r[44],A0=r[45],$0=r[46],ex=r[47],xx=r[48],tx=r[49],z0=r[50],px=r[51],sx=r[52],Q=r[53],b0=r[54],U=r[55],h0=r[56],_0=r[57],m0=r[59],T0=r[60],X=r[61],Gx=r[62],Px=r[63],G0=r[64],Kr=r[65],S=r[66],G=r[67],rx=r[68],yx=r[69],Ex=r[70],nx=r[71],p0=r[72],Fx=r[73],Sx=r[74],bx=r[75],B0=r[76],Wx=r[77],Yx=r[78],ax=r[79],Qx=r[80],kx=r[81],tr=r[82],sr=r[83],Mr=r[84],a2=r[85],_2=r[86],i2=r[87],Q2=r[88],jx=r[89],_=r[90],V=r[91],lx=r[92],U0=r[93],ox=r[94],wx=r[95],Cr=r[96],Hx=r[97],Zr=r[98],dr=r[99],Or=r[y2],x2=r[fe],ux=r[g1],Lx=r[sn],Zx=r[Be],qr=r[ui],Y2=r[Je],H2=r[K2],Kt=r[sv],dt=r[st],Jt=r[z1],C1=r[ce],q1=r[ea],b2=r[Te],wn=r[mr],_n=r[tv],bs=r[Wa],le=r[y6],Ze=r[P3],Ts=r[zl],Lv=r[vf],yt=r[m6],yr=r[s2],Ta=r[rn],Es=r[S3],gt=r[Ba],Mv=r[Sk],qv=r[Br],bn=r[M2],Ea=r[Xo],ko=r[d6],Sa=r[r6],Aa=r[r8],Pa=r[_k],mo=r[wR],Ss=r[fR],H1=r[jD],d1=r[QO],Ia=r[OI],As=r[GF],Gt=r[CL],Uv=r[SR],ho=r[$L],Bv=r[143],Xv=r[144],dl=r[145],Na=r[146],yo=r[147],go=r[148],ja=r[149],Ca=r[150],yl=r[DR],Ps=r[152],Yh=r[153],wo=r[154],T4=r[155],_o=r[156],gl=r[NL],E4=r[158],bo=r[159],S4=r[bL],zh=r[nL],Kh=r[LR],Jh=r[lr],Gh=r[hD],A4=r[_F],P4=r[rD],I4=r[mF],wl=r[XP],Y=r[Ap],A=r[Ed],D=r[Uw],f0=r[QD],k0=r[bR],R0=r[DL],Q0=r[RD],mx=r[BF],Ix=r[VR],Rx=r[ng],nr=r[zL],zx=r[jg],ur=r[JE],kr=r[yy],rr=r[K9],Cx=r[p6],gr=r[bO],Er=r[mA],Jr=r[gp],Sr=r[U9],Gr=r[O8],k2=r[sR],P2=r[wL],Dr=r[a3],m2=r[mD],r2=r[PI],Ar=r[Db],wr=r[iL],f2=r[PD],Ur=r[OL],Qr=r[hL],T2=r[pL],Rr=r[nF],d2=r[eD],o2=r[Gd],c2=r[xR],E2=r[$T],pe=r[c_],je=r[kF],xt=r[DO],U1=r[HD],e2=r[nD],Z1=r[J9],R2=r[xF],wt=r[tD],O1=r[FL],_t=r[gg],Wt=r[pd],rt=r[pR],et=r[yO],Ox=r[vA],tt=r[dF],xe=r[JF],v1=r[zO],Ce=r[kk],Oe=r[s3],nt=r[VD],ut=r[KF],it=r[_R],r1=r[KO],bt=r[oL],Tt=r[cF],Is=r[UO],ft=r[dO],Vt=r[tL],D1=r[vL],Tn=r[ER],ke=r[PR],De=r[yL],$t=r[UF],Ns=r[Fy],En=r[w3],js=r[gF],re=r[YR],Et=r[MR],Cs=r[zo],Sn=r[HT],Fe=r[A3],Os=r[ep],Ds=r[n2],To=r[WE],Eo=r[D3],Yv=r[KL],zv=r[g3],So=r[lE],Ao=r[d3],_l=r[Hp],Kv=r[Hl],bl=r[257],Tl=r[LO],Fs=r[_L],Po=r[260],Jv=r[261],El=r[262],Rs=r[263],Gv=r[264],Oa=r[265],Sl=r[$D],Wv=r[267],Io=r[268],Al=r[269],Da=r[270],Ls=r[UL],No=r[yD],jo=r[273],Fa=r[274],Pl=r[aD],Il=r[276],Nl=r[eF],Co=r[m_],An=r[Vb],Ra=r[280],jl=r[fL],Oo=r[282],Vv=r[283],Ms=r[284],$v=r[285],St=r[VL],F1=r[YD],Qv=r[288],Hv=r[289],Cl=r[290],Do=r[BR],Fo=r[292],Zv=r[RF],Ol=r[294],x3=r[295],Wh=r[296],Qt=r[wD],Pn=r[298],r3=r[299],Vh=r[dD],qs=r[301],e3=r[bF],$h=r[AD],Qh=r[304],Hh=r[305],Zh=r[306],t3=r[xL],N4=r[308],xd=r[fD],j4=r[jO];return Dj(x,[0,r[58],function(n,s){var f=s[2],o=f[4],k=f[3],g=f[1],E=f[2],C=s[1],R=p(n[1][1+C0],n,g),e0=p(n[1][1+L],n,k),l0=fr(d(n[1][1+jo],n),o);return g===R&&k===e0&&o===l0?s:[0,C,[0,R,E,e0,l0]]},tx,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return O0(d(n[1][1+Qt],n),o,k,s,function(cx){return[0,o,[0,cx]]});case 1:var g=f[1];return O0(d(n[1][1+Ol],n),o,g,s,function(cx){return[0,o,[1,cx]]});case 2:var E=f[1];return O0(d(n[1][1+$v],n),o,E,s,function(cx){return[0,o,[2,cx]]});case 3:var C=f[1];return O0(d(n[1][1+Ls],n),o,C,s,function(cx){return[0,o,[3,cx]]});case 4:var R=f[1];return O0(d(n[1][1+Kv],n),o,R,s,function(cx){return[0,o,[4,cx]]});case 5:var e0=f[1];return O0(d(n[1][1+_l],n),o,e0,s,function(cx){return[0,o,[5,cx]]});case 6:var l0=f[1];return O0(d(n[1][1+Ao],n),o,l0,s,function(cx){return[0,o,[6,cx]]});case 7:var F0=f[1];return O0(d(n[1][1+So],n),o,F0,s,function(cx){return[0,o,[7,cx]]});case 8:var dx=f[1];return O0(d(n[1][1+zv],n),o,dx,s,function(cx){return[0,o,[8,cx]]});case 9:var Xx=f[1];return O0(d(n[1][1+Yv],n),o,Xx,s,function(cx){return[0,o,[9,cx]]});case 10:var Kx=f[1];return O0(d(n[1][1+To],n),o,Kx,s,function(cx){return[0,o,[10,cx]]});case 11:var _r=f[1];return O0(d(n[1][1+Ds],n),o,_r,s,function(cx){return[0,o,[11,cx]]});case 12:var t2=f[1];return O0(d(n[1][1+Os],n),o,t2,s,function(cx){return[0,o,[12,cx]]});case 13:var Wr=f[1];return O0(d(n[1][1+Fe],n),o,Wr,s,function(cx){return[0,o,[13,cx]]});case 14:var Vx=f[1];return O0(d(n[1][1+Sn],n),o,Vx,s,function(cx){return[0,o,[14,cx]]});case 15:var C2=f[1];return O0(d(n[1][1+Cs],n),o,C2,s,function(cx){return[0,o,[15,cx]]});case 16:var z2=f[1];return O0(d(n[1][1+i2],n),o,z2,s,function(cx){return[0,o,[16,cx]]});case 17:var ee=f[1];return O0(d(n[1][1+Et],n),o,ee,s,function(cx){return[0,o,[17,cx]]});case 18:var me=f[1];return O0(d(n[1][1+js],n),o,me,s,function(cx){return[0,o,[18,cx]]});case 19:var he=f[1];return O0(d(n[1][1+En],n),o,he,s,function(cx){return[0,o,[19,cx]]});case 20:var te=f[1];return O0(d(n[1][1+D1],n),o,te,s,function(cx){return[0,o,[20,cx]]});case 21:var de=f[1];return O0(d(n[1][1+nt],n),o,de,s,function(cx){return[0,o,[21,cx]]});case 22:var ye=f[1];return O0(d(n[1][1+Ce],n),o,ye,s,function(cx){return[0,o,[22,cx]]});case 23:var ge=f[1];return O0(d(n[1][1+rt],n),o,ge,s,function(cx){return[0,o,[23,cx]]});case 24:var At=f[1];return O0(d(n[1][1+je],n),o,At,s,function(cx){return[0,o,[24,cx]]});case 25:var we=f[1];return O0(d(n[1][1+O1],n),o,we,s,function(cx){return[0,o,[25,cx]]});case 26:var ct=f[1];return O0(d(n[1][1+U1],n),o,ct,s,function(cx){return[0,o,[26,cx]]});case 27:var Us=f[1];return O0(d(n[1][1+d2],n),o,Us,s,function(cx){return[0,o,[27,cx]]});case 28:var Bs=f[1];return O0(d(n[1][1+ur],n),o,Bs,s,function(cx){return[0,o,[28,cx]]});case 29:var Xs=f[1];return O0(d(n[1][1+nr],n),o,Xs,s,function(cx){return[0,o,[29,cx]]});case 30:var In=f[1];return O0(d(n[1][1+A],n),o,In,s,function(cx){return[0,o,[30,cx]]});case 31:var Ys=f[1];return O0(d(n[1][1+As],n),o,Ys,s,function(cx){return[0,o,[31,cx]]});case 32:var zs=f[1];return O0(d(n[1][1+yr],n),o,zs,s,function(cx){return[0,o,[32,cx]]});case 33:var n3=f[1];return O0(d(n[1][1+Q],n),o,n3,s,function(cx){return[0,o,[33,cx]]});case 34:var u3=f[1];return O0(d(n[1][1+K0],n),o,u3,s,function(cx){return[0,o,[34,cx]]});case 35:var i3=f[1];return O0(d(n[1][1+D0],n),o,i3,s,function(cx){return[0,o,[35,cx]]});case 36:var f3=f[1];return O0(d(n[1][1+M0],n),o,f3,s,function(cx){return[0,o,[36,cx]]});case 37:var _x=f[1];return O0(d(n[1][1+v0],n),o,_x,s,function(cx){return[0,o,[37,cx]]});case 38:var c3=f[1];return O0(d(n[1][1+i2],n),o,c3,s,function(cx){return[0,o,[38,cx]]});case 39:var hx=f[1];return O0(d(n[1][1+l],n),o,hx,s,function(cx){return[0,o,[39,cx]]});case 40:var eO=f[1];return O0(d(n[1][1+u],n),o,eO,s,function(cx){return[0,o,[40,cx]]});default:var tO=f[1];return O0(d(n[1][1+t],n),o,tO,s,function(cx){return[0,o,[41,cx]]})}},jo,function(n,s){return s},L,function(n){var s=d(n[1][1+N0],n);return function(f){return Ax(s,f)}},N0,function(n,s){var f=s[2],o=s[1],k=s[3],g=fr(d(n[1][1+jo],n),o),E=fr(d(n[1][1+jo],n),f);return o===g&&f===E?s:[0,g,E,k]},Ox,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return O0(d(n[1][1+xd],n),o,k,s,function(hx){return[0,o,[0,hx]]});case 1:var g=f[1];return O0(d(n[1][1+Zh],n),o,g,s,function(hx){return[0,o,[1,hx]]});case 2:var E=f[1];return O0(d(n[1][1+Hh],n),o,E,s,function(hx){return[0,o,[2,hx]]});case 3:var C=f[1];return O0(d(n[1][1+Qh],n),o,C,s,function(hx){return[0,o,[3,hx]]});case 4:var R=f[1];return O0(d(n[1][1+$h],n),o,R,s,function(hx){return[0,o,[4,hx]]});case 5:var e0=f[1];return O0(d(n[1][1+Vh],n),o,e0,s,function(hx){return[0,o,[5,hx]]});case 6:var l0=f[1];return O0(d(n[1][1+Zv],n),o,l0,s,function(hx){return[0,o,[6,hx]]});case 7:var F0=f[1];return O0(d(n[1][1+Oo],n),o,F0,s,function(hx){return[0,o,[7,hx]]});case 8:var dx=f[1];return O0(d(n[1][1+Tl],n),o,dx,s,function(hx){return[0,o,[8,hx]]});case 9:var Xx=f[1];return O0(d(n[1][1+Rr],n),o,Xx,s,function(hx){return[0,o,[9,hx]]});case 10:var Kx=f[1];return P0(d(n[1][1+Cx],n),Kx,s,function(hx){return[0,o,[10,hx]]});case 11:var _r=f[1];return P0(p(n[1][1+zx],n,o),_r,s,function(hx){return[0,o,[11,hx]]});case 12:var t2=f[1];return O0(d(n[1][1+gl],n),o,t2,s,function(hx){return[0,o,[12,hx]]});case 13:var Wr=f[1];return O0(d(n[1][1+yl],n),o,Wr,s,function(hx){return[0,o,[13,hx]]});case 14:var Vx=f[1];return O0(d(n[1][1+$0],n),o,Vx,s,function(hx){return[0,o,[14,hx]]});case 15:var C2=f[1];return O0(d(n[1][1+x3],n),o,C2,s,function(hx){return[0,o,[15,hx]]});case 16:var z2=f[1];return O0(d(n[1][1+dt],n),o,z2,s,function(hx){return[0,o,[16,hx]]});case 17:var ee=f[1];return O0(d(n[1][1+H2],n),o,ee,s,function(hx){return[0,o,[17,hx]]});case 18:var me=f[1];return O0(d(n[1][1+qs],n),o,me,s,function(hx){return[0,o,[18,hx]]});case 19:var he=f[1];return O0(d(n[1][1+h0],n),o,he,s,function(hx){return[0,o,[19,hx]]});case 20:var te=f[1];return O0(d(n[1][1+C1],n),o,te,s,function(hx){return[0,o,[20,hx]]});case 21:var de=f[1];return O0(d(n[1][1+Ia],n),o,de,s,function(hx){return[0,o,[21,hx]]});case 22:var ye=f[1];return O0(d(n[1][1+mo],n),o,ye,s,function(hx){return[0,o,[22,hx]]});case 23:var ge=f[1];return O0(d(n[1][1+Ze],n),o,ge,s,function(hx){return[0,o,[23,hx]]});case 24:var At=f[1];return O0(d(n[1][1+q1],n),o,At,s,function(hx){return[0,o,[24,hx]]});case 25:var we=f[1];return O0(d(n[1][1+Jt],n),o,we,s,function(hx){return[0,o,[25,hx]]});case 26:var ct=f[1];return O0(d(n[1][1+Y2],n),o,ct,s,function(hx){return[0,o,[26,hx]]});case 27:var Us=f[1];return P0(p(n[1][1+_2],n,o),Us,s,function(hx){return[0,o,[27,hx]]});case 28:var Bs=f[1];return O0(d(n[1][1+Mr],n),o,Bs,s,function(hx){return[0,o,[28,hx]]});case 29:var Xs=f[1];return O0(d(n[1][1+sx],n),o,Xs,s,function(hx){return[0,o,[29,hx]]});case 30:var In=f[1];return O0(d(n[1][1+A0],n),o,In,s,function(hx){return[0,o,[30,hx]]});case 31:var Ys=f[1];return O0(d(n[1][1+Y0],n),o,Ys,s,function(hx){return[0,o,[31,hx]]});case 32:var zs=f[1];return O0(d(n[1][1+y0],n),o,zs,s,function(hx){return[0,o,[32,hx]]});case 33:var n3=f[1];return O0(d(n[1][1+I0],n),o,n3,s,function(hx){return[0,o,[33,hx]]});case 34:var u3=f[1];return O0(d(n[1][1+H],n),o,u3,s,function(hx){return[0,o,[34,hx]]});case 35:var i3=f[1];return O0(d(n[1][1+w0],n),o,i3,s,function(hx){return[0,o,[35,hx]]});case 36:var f3=f[1];return O0(d(n[1][1+T],n),o,f3,s,function(hx){return[0,o,[36,hx]]});case 37:var _x=f[1];return O0(d(n[1][1+m],n),o,_x,s,function(hx){return[0,o,[37,hx]]});default:var c3=f[1];return O0(d(n[1][1+e],n),o,c3,s,function(hx){return[0,o,[38,hx]]})}},xd,function(n,s,f){var o=f[2],k=f[1],g=fr(d(n[1][1+N4],n),k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},N4,function(n,s){switch(s[0]){case 0:var f=s[1];return P0(d(n[1][1+Ox],n),f,s,function(k){return[0,k]});case 1:var o=s[1];return P0(d(n[1][1+px],n),o,s,function(k){return[1,k]});default:return s}},Zh,function(n,s,f){return H0(n[1][1+E2],n,s,f)},Hh,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+Ox],n,k),E=p(n[1][1+L],n,o);return g===k&&E===o?f:[0,g,E]},Qh,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=p(n[1][1+r0],n,k),R=p(n[1][1+L],n,o);return E===g&&C===k&&R===o?f:[0,E,C,R]},$h,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=p(n[1][1+e3],n,g),C=p(n[1][1+Ox],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,f[1],E,C,R]},Vh,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=p(n[1][1+Ox],n,g),C=p(n[1][1+Ox],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,f[1],E,C,R]},Qt,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+ex],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},Ol,function(n,s,f){var o=f[2],k=f[1],g=Ax(d(n[1][1+Gt],n),k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},Zv,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+Ox],n,E),R=Ax(d(n[1][1+Do],n),g),e0=p(n[1][1+j4],n,k),l0=p(n[1][1+L],n,o);return E===C&&g===R&&k===e0&&o===l0?f:[0,C,R,e0,l0]},j4,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=fr(d(n[1][1+et],n),k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},_2,function(n,s,f){var o=f[1],k=H0(n[1][1+Zv],n,s,o);return o===k?f:[0,k,f[2],f[3]]},Do,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=fr(d(n[1][1+Fo],n),k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},Fo,function(n,s){if(s[0]===0){var f=s[1],o=p(n[1][1+a0],n,f);return o===f?s:[0,o]}var k=s[1],g=k[2][1],E=k[1],C=p(n[1][1+L],n,g);return g===C?s:[1,[0,E,[0,C]]]},Cl,function(n,s){return W2(d(n[1][1+Qt],n),s)},Hv,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=Ax(d(n[1][1+Qv],n),g),C=p(n[1][1+Cl],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},$v,function(n,s,f){return H0(n[1][1+F1],n,s,f)},Oo,function(n,s,f){return H0(n[1][1+F1],n,s,f)},F1,function(n,s,f){var o=f[7],k=f[6],g=f[5],E=f[4],C=f[3],R=f[2],e0=f[1],l0=Ax(d(n[1][1+Ra],n),e0),F0=Ax(d(n[1][1+M],n),C),dx=p(n[1][1+St],n,R),Xx=d(n[1][1+jl],n),Kx=Ax(function(Vx){return W2(Xx,Vx)},E),_r=Ax(d(n[1][1+An],n),g),t2=fr(d(n[1][1+Ms],n),k),Wr=p(n[1][1+L],n,o);return e0===l0&&R===dx&&E===Kx&&g===_r&&k===t2&&o===Wr&&C===F0?f:[0,l0,dx,F0,Kx,_r,t2,Wr]},jl,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=Ax(d(n[1][1+t0],n),k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},Ra,function(n,s){return H0(n[1][1+bx],n,v$,s)},St,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=fr(d(n[1][1+Vv],n),k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},Ms,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Ox],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},Vv,function(n,s){switch(s[0]){case 0:var f=s[1],o=f[1],k=f[2];return O0(d(n[1][1+Nl],n),o,k,s,function(F0){return[0,[0,o,F0]]});case 1:var g=s[1],E=g[1],C=g[2];return O0(d(n[1][1+Pl],n),E,C,s,function(F0){return[1,[0,E,F0]]});default:var R=s[1],e0=R[1],l0=R[2];return O0(d(n[1][1+Il],n),e0,l0,s,function(F0){return[2,[0,e0,F0]]})}},An,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=fr(d(n[1][1+Co],n),k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},Co,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+B],n,k),C=Ax(d(n[1][1+t0],n),o);return k===E&&o===C?s:[0,g,[0,E,C]]},Nl,function(n,s,f){var o=f[6],k=f[5],g=f[3],E=f[2],C=p(n[1][1+ux],n,E),R=W2(d(n[1][1+T2],n),g),e0=fr(d(n[1][1+Ms],n),k),l0=p(n[1][1+L],n,o);return E===C&&g===R&&k===e0&&o===l0?f:[0,f[1],C,R,f[4],e0,l0]},Pl,function(n,s,f){var o=f[7],k=f[6],g=f[5],E=f[3],C=f[2],R=f[1],e0=p(n[1][1+ux],n,R),l0=p(n[1][1+Fa],n,C),F0=p(n[1][1+c0],n,E),dx=p(n[1][1+i],n,g),Xx=fr(d(n[1][1+Ms],n),k),Kx=p(n[1][1+L],n,o);return R===e0&&C===l0&&F0===E&&dx===g&&Xx===k&&Kx===o?f:[0,e0,l0,F0,f[4],dx,Xx,Kx]},Fa,function(n,s){if(typeof s==\"number\")return s;var f=s[1],o=p(n[1][1+Ox],n,f);return f===o?s:[0,o]},Il,function(n,s,f){var o=f[7],k=f[6],g=f[5],E=f[3],C=f[2],R=f[1],e0=p(n[1][1+m0],n,R),l0=p(n[1][1+Fa],n,C),F0=p(n[1][1+c0],n,E),dx=p(n[1][1+i],n,g),Xx=fr(d(n[1][1+Ms],n),k),Kx=p(n[1][1+L],n,o);return R===e0&&C===l0&&F0===E&&dx===g&&Xx===k&&Kx===o?f:[0,e0,l0,F0,f[4],dx,Xx,Kx]},re,function(n,s){return Ax(d(n[1][1+Ox],n),s)},Ls,function(n,s,f){var o=f[6],k=f[5],g=f[4],E=f[3],C=f[2],R=f[1],e0=f[7],l0=p(n[1][1+Da],n,R),F0=Ax(d(n[1][1+M],n),C),dx=p(n[1][1+Sl],n,E),Xx=p(n[1][1+No],n,k),Kx=p(n[1][1+Oa],n,g),_r=p(n[1][1+L],n,o);return R===l0&&C===F0&&E===dx&&k===Xx&&g===Kx&&o===_r?f:[0,l0,F0,dx,Kx,Xx,_r,e0]},Da,function(n,s){return H0(n[1][1+bx],n,l$,s)},Sl,function(n,s){var f=s[2],o=f[3],k=f[2],g=f[1],E=s[1],C=fr(d(n[1][1+Al],n),g),R=Ax(d(n[1][1+Gv],n),k),e0=p(n[1][1+L],n,o);return g===C&&k===R&&o===e0?s:[0,E,[0,C,R,e0]]},Al,function(n,s){var f=s[2],o=f[3],k=f[2],g=f[1],E=f[4],C=s[1],R=p(n[1][1+Io],n,g),e0=p(n[1][1+Wv],n,k),l0=p(n[1][1+re],n,o);return g===R&&k===e0&&o===l0?s:[0,C,[0,R,e0,l0,E]]},Io,function(n,s){if(s[0]===0)return[0,p(n[1][1+Cx],n,s[1])];var f=s[1],o=f[1];return[1,[0,o,H0(n[1][1+$0],n,o,f[2])]]},Wv,function(n,s){return H0(n[1][1+r3],n,p$,s)},Gv,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Wv],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},No,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+Qt],n),f,o,s,function(k){return[0,f,k]})},Tl,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+T0],n,E),R=p(n[1][1+Ox],n,g),e0=p(n[1][1+Ox],n,k),l0=p(n[1][1+L],n,o);return E===C&&g===R&&k===e0&&o===l0?f:[0,C,R,e0,l0]},Kv,function(n,s,f){var o=f[2],k=f[1],g=Ax(d(n[1][1+Gt],n),k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},_l,function(n,s,f){var o=f[1],k=p(n[1][1+L],n,o);return o===k?f:[0,k]},Ao,function(n,s,f){var o=f[7],k=f[6],g=f[5],E=f[4],C=f[3],R=f[2],e0=f[1],l0=p(n[1][1+Ra],n,e0),F0=Ax(d(n[1][1+M],n),R),dx=W2(d(n[1][1+V],n),C),Xx=d(n[1][1+gr],n),Kx=Ax(function(C2){return W2(Xx,C2)},E),_r=d(n[1][1+gr],n),t2=fr(function(C2){return W2(_r,C2)},g),Wr=Ax(d(n[1][1+An],n),k),Vx=p(n[1][1+L],n,o);return l0===e0&&F0===R&&dx===C&&Kx===E&&t2===g&&Wr===k&&Vx===o?f:[0,l0,F0,dx,Kx,t2,Wr,Vx]},So,function(n,s,f){var o=f[5],k=f[4],g=f[3],E=f[2],C=f[1],R=p(n[1][1+Da],n,C),e0=Ax(d(n[1][1+M],n),E),l0=p(n[1][1+Jv],n,g),F0=p(n[1][1+Oa],n,k),dx=p(n[1][1+L],n,o);return C===R&&E===e0&&g===l0&&k===F0&&o===dx?f:[0,R,e0,l0,F0,dx]},Rs,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=Ax(d(n[1][1+M],n),E),R=p(n[1][1+Jv],n,g),e0=p(n[1][1+Oa],n,k),l0=p(n[1][1+L],n,o);return E===C&&g===R&&k===e0&&o===l0?f:[0,C,R,e0,l0]},Jv,function(n,s){var f=s[2],o=f[3],k=f[2],g=f[1],E=s[1],C=fr(d(n[1][1+El],n),g),R=Ax(d(n[1][1+Po],n),k),e0=p(n[1][1+L],n,o);return g===C&&k===R&&o===e0?s:[0,E,[0,C,R,e0]]},El,function(n,s){var f=s[2],o=f[2],k=f[1],g=f[3],E=s[1],C=p(n[1][1+Io],n,k),R=p(n[1][1+r0],n,o);return k===C&&o===R?s:[0,E,[0,C,R,g]]},Po,function(n,s){var f=s[2],o=f[4],k=f[2],g=f[1],E=f[3],C=s[1],R=Ax(d(n[1][1+Cx],n),g),e0=p(n[1][1+a0],n,k),l0=p(n[1][1+L],n,o);return g===R&&k===e0&&o===l0?s:[0,C,[0,R,e0,E,l0]]},zv,function(n,s,f){return H0(n[1][1+D1],n,s,f)},Yv,function(n,s,f){var o=f[5],k=f[4],g=f[3],E=f[2],C=f[1],R=W6(d(n[1][1+tt],n),k),e0=Ax(d(n[1][1+xe],n),g),l0=Ax(d(n[1][1+Eo],n),E),F0=p(n[1][1+L],n,o);return k===R&&g===e0&&E===l0&&o===F0?f:[0,C,l0,e0,R,F0]},Eo,function(n,s){switch(s[0]){case 0:var f=s[1],o=f[2],k=f[1],g=H0(n[1][1+Et],n,k,o);return g===o?s:[0,[0,k,g]];case 1:var E=s[1],C=E[2],R=E[1],e0=H0(n[1][1+To],n,R,C);return e0===C?s:[1,[0,R,e0]];case 2:var l0=s[1],F0=l0[2],dx=l0[1],Xx=H0(n[1][1+Ao],n,dx,F0);return Xx===F0?s:[2,[0,dx,Xx]];case 3:var Kx=s[1],_r=Kx[2],t2=Kx[1],Wr=H0(n[1][1+So],n,t2,_r);return Wr===_r?s:[3,[0,t2,Wr]];case 4:var Vx=s[1],C2=p(n[1][1+a0],n,Vx);return C2===Vx?s:[4,C2];case 5:var z2=s[1],ee=z2[2],me=z2[1],he=H0(n[1][1+v0],n,me,ee);return he===ee?s:[5,[0,me,he]];case 6:var te=s[1],de=te[2],ye=te[1],ge=H0(n[1][1+i2],n,ye,de);return ge===de?s:[6,[0,ye,ge]];case 7:var At=s[1],we=At[2],ct=At[1],Us=H0(n[1][1+D],n,ct,we);return Us===we?s:[7,[0,ct,Us]];default:var Bs=s[1],Xs=Bs[2],In=Bs[1],Ys=H0(n[1][1+D1],n,In,Xs);return Ys===Xs?s:[8,[0,In,Ys]]}},To,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+Qr],n,E),R=p(n[1][1+r0],n,g),e0=Ax(d(n[1][1+X],n),k),l0=p(n[1][1+L],n,o);return C===E&&R===g&&e0===k&&l0===o?f:[0,C,R,e0,l0]},Ds,function(n,s,f){return H0(n[1][1+D],n,s,f)},Os,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=W2(d(n[1][1+Qt],n),k),C=p(n[1][1+L],n,o);return E===k&&o===C?f:[0,g,E,C]},Fe,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+r0],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},Sn,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=H0(n[1][1+bx],n,k$,g),C=W2(d(n[1][1+Qt],n),k),R=p(n[1][1+L],n,o);return E===g&&C===k&&o===R?f:[0,E,C,R]},Cs,function(n,s,f){return H0(n[1][1+v0],n,s,f)},Et,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=H0(n[1][1+bx],n,[0,k],E),R=p(n[1][1+r0],n,g),e0=p(n[1][1+L],n,o);return C===E&&R===g&&e0===o?f:[0,C,R,k,e0]},js,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+tx],n,g),C=p(n[1][1+T0],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},En,function(n,s,f){var o=f[1],k=p(n[1][1+L],n,o);return o===k?f:[0,k]},D1,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=H0(n[1][1+bx],n,m$,g),C=p(n[1][1+De],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},De,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return P0(d(n[1][1+ke],n),k,s,function(e0){return[0,o,[0,e0]]});case 1:var g=f[1];return P0(d(n[1][1+Is],n),g,s,function(e0){return[0,o,[1,e0]]});case 2:var E=f[1];return P0(d(n[1][1+bt],n),E,s,function(e0){return[0,o,[2,e0]]});case 3:var C=f[1];return P0(d(n[1][1+it],n),C,s,function(e0){return[0,o,[3,e0]]});default:var R=f[1];return P0(d(n[1][1+Ns],n),R,s,function(e0){return[0,o,[4,e0]]})}},ke,function(n,s){var f=s[4],o=s[1],k=fr(d(n[1][1+Tn],n),o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,s[2],s[3],g]},Is,function(n,s){var f=s[4],o=s[1],k=fr(d(n[1][1+Tt],n),o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,s[2],s[3],g]},bt,function(n,s){var f=s[4],o=s[1];if(o[0]===0)var k=o[1],g=d(n[1][1+Vt],n),R=P0(function(l0){return fr(g,l0)},k,o,function(l0){return[0,l0]});else var E=o[1],C=d(n[1][1+r1],n),R=P0(function(l0){return fr(C,l0)},E,o,function(l0){return[1,l0]});var e0=p(n[1][1+L],n,f);return o===R&&f===e0?s:[0,R,s[2],s[3],e0]},it,function(n,s){var f=s[3],o=s[1],k=fr(d(n[1][1+Vt],n),o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,s[2],g]},Ns,function(n,s){var f=s[4],o=s[1],k=fr(d(n[1][1+$t],n),o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,s[2],s[3],g]},Vt,function(n,s){var f=s[2][1],o=s[1],k=p(n[1][1+ft],n,f);return f===k?s:[0,o,[0,k]]},Tn,function(n,s){var f=s[2],o=f[1],k=f[2],g=s[1],E=p(n[1][1+ft],n,o);return o===E?s:[0,g,[0,E,k]]},Tt,function(n,s){var f=s[2],o=f[1],k=f[2],g=s[1],E=p(n[1][1+ft],n,o);return o===E?s:[0,g,[0,E,k]]},r1,function(n,s){var f=s[2],o=f[1],k=f[2],g=s[1],E=p(n[1][1+ft],n,o);return o===E?s:[0,g,[0,E,k]]},$t,function(n,s){var f=s[2],o=f[1],k=f[2],g=s[1],E=p(n[1][1+ft],n,o);return o===E?s:[0,g,[0,E,k]]},ft,function(n,s){return p(n[1][1+Cx],n,s)},nt,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Oe],n,k),C=p(n[1][1+L],n,o);return E===k&&C===o?f:[0,g,E,C]},Oe,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+tx],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Ox],n),o,s,function(k){return[1,k]})},Ce,function(n,s,f){var o=f[5],k=f[3],g=f[2],E=f[1],C=f[4],R=W6(d(n[1][1+tt],n),k),e0=Ax(d(n[1][1+xe],n),g),l0=Ax(d(n[1][1+tx],n),E),F0=p(n[1][1+L],n,o);return k===R&&g===e0&&E===l0&&o===F0?f:[0,l0,e0,R,C,F0]},v1,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Cx],n,k),C=Ax(d(n[1][1+Cx],n),o);return k===E&&o===C?s:[0,g,[0,E,C]]},ut,function(n,s){var f=s[2],o=s[1],k=Ax(d(n[1][1+Cx],n),f);return f===k?s:[0,o,k]},xe,function(n,s){if(s[0]===0){var f=s[1],o=fr(d(n[1][1+v1],n),f);return f===o?s:[0,o]}var k=s[1],g=p(n[1][1+ut],n,k);return k===g?s:[1,g]},tt,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+L],n,o);return o===E?f:[0,g,k,E]},rt,function(n,s,f){var o=f[3],k=f[1],g=f[2],E=p(n[1][1+Ox],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?f:[0,E,g,C]},et,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+Ox],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+px],n),o,s,function(k){return[1,k]})},O1,function(n,s,f){var o=f[5],k=f[3],g=f[2],E=f[1],C=f[4],R=p(n[1][1+wt],n,E),e0=p(n[1][1+Ox],n,g),l0=p(n[1][1+tx],n,k),F0=p(n[1][1+L],n,o);return E===R&&g===e0&&k===l0&&o===F0?f:[0,R,e0,l0,C,F0]},wt,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+_t],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Wt],n),o,s,function(k){return[1,k]})},_t,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+l],n),f,o,s,function(k){return[0,f,k]})},U1,function(n,s,f){var o=f[5],k=f[3],g=f[2],E=f[1],C=f[4],R=p(n[1][1+xt],n,E),e0=p(n[1][1+Ox],n,g),l0=p(n[1][1+tx],n,k),F0=p(n[1][1+L],n,o);return E===R&&g===e0&&k===l0&&o===F0?f:[0,R,e0,l0,C,F0]},xt,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+e2],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Z1],n),o,s,function(k){return[1,k]})},e2,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+l],n),f,o,s,function(k){return[0,f,k]})},je,function(n,s,f){var o=f[5],k=f[4],g=f[3],E=f[2],C=f[1],R=Ax(d(n[1][1+pe],n),C),e0=Ax(d(n[1][1+T0],n),E),l0=Ax(d(n[1][1+Ox],n),g),F0=p(n[1][1+tx],n,k),dx=p(n[1][1+L],n,o);return C===R&&E===e0&&g===l0&&k===F0&&o===dx?f:[0,R,e0,l0,F0,dx]},pe,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+R2],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Ox],n),o,s,function(k){return[1,k]})},R2,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+l],n),f,o,s,function(k){return[0,f,k]})},wr,function(n,s){var f=s[2],o=f[2],k=f[1],g=f[3],E=s[1],C=p(n[1][1+a0],n,o),R=Ax(d(n[1][1+Cx],n),k);return C===o&&R===k?s:[0,E,[0,R,C,g]]},m2,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+wr],n,k),C=p(n[1][1+L],n,o);return E===k&&C===o?s:[0,g,[0,E,C]]},k2,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+r0],n,k),C=p(n[1][1+L],n,o);return E===k&&C===o?s:[0,g,[0,E,C]]},Sr,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+a0],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+$],n),o,s,function(k){return[1,k]})},Gr,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=g[2],C=E[4],R=E[3],e0=E[2],l0=E[1],F0=f[1],dx=f[5],Xx=g[1],Kx=Ax(d(n[1][1+M],n),F0),_r=Ax(d(n[1][1+k2],n),l0),t2=fr(d(n[1][1+wr],n),e0),Wr=Ax(d(n[1][1+m2],n),R),Vx=p(n[1][1+Sr],n,k),C2=p(n[1][1+L],n,o),z2=p(n[1][1+L],n,C);return t2===e0&&Wr===R&&Vx===k&&Kx===F0&&C2===o&&z2===C&&_r===l0?f:[0,Kx,[0,Xx,[0,_r,t2,Wr,z2]],Vx,C2,dx]},Gt,function(n,s){return p(n[1][1+Cx],n,s)},U0,function(n,s){switch(s[0]){case 0:var f=s[1];return P0(d(n[1][1+a0],n),f,s,function(g){return[0,g]});case 1:var o=s[1];return P0(d(n[1][1+jx],n),o,s,function(g){return[1,g]});default:var k=s[1];return P0(d(n[1][1+Q2],n),k,s,function(g){return[2,g]})}},jx,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+Gr],n),f,o,s,function(k){return[0,f,k]})},Q2,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+Gr],n),f,o,s,function(k){return[0,f,k]})},ox,function(n,s){var f=s[2],o=f[8],k=f[7],g=f[2],E=f[1],C=f[6],R=f[5],e0=f[4],l0=f[3],F0=s[1],dx=p(n[1][1+ux],n,E),Xx=p(n[1][1+U0],n,g),Kx=p(n[1][1+i],n,k),_r=p(n[1][1+L],n,o);return dx===E&&Xx===g&&Kx===k&&_r===o?s:[0,F0,[0,dx,Xx,l0,e0,R,C,Kx,_r]]},lx,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+a0],n,k),C=p(n[1][1+L],n,o);return E===k&&o===C?s:[0,g,[0,E,C]]},Zx,function(n,s){var f=s[2],o=f[6],k=f[5],g=f[3],E=f[2],C=f[4],R=f[1],e0=s[1],l0=p(n[1][1+a0],n,E),F0=p(n[1][1+a0],n,g),dx=p(n[1][1+i],n,k),Xx=p(n[1][1+L],n,o);return l0===E&&F0===g&&dx===k&&Xx===o?s:[0,e0,[0,R,l0,F0,C,dx,Xx]]},Lx,function(n,s){var f=s[2],o=f[6],k=f[2],g=f[1],E=f[5],C=f[4],R=f[3],e0=s[1],l0=p(n[1][1+Cx],n,g),F0=p(n[1][1+a0],n,k),dx=p(n[1][1+L],n,o);return g===l0&&k===F0&&o===dx?s:[0,e0,[0,l0,F0,R,C,E,dx]]},qr,function(n,s){var f=s[2],o=f[3],k=f[1],g=k[2],E=k[1],C=f[2],R=s[1],e0=H0(n[1][1+Gr],n,E,g),l0=p(n[1][1+L],n,o);return g===e0&&o===l0?s:[0,R,[0,[0,E,e0],C,l0]]},Cr,function(n,s){var f=s[2],o=f[6],k=f[4],g=f[3],E=f[2],C=f[1],R=f[5],e0=s[1],l0=p(n[1][1+z],n,C),F0=p(n[1][1+a0],n,E),dx=p(n[1][1+a0],n,g),Xx=p(n[1][1+i],n,k),Kx=p(n[1][1+L],n,o);return l0===C&&F0===E&&dx===g&&Xx===k&&Kx===o?s:[0,e0,[0,l0,F0,dx,Xx,R,Kx]]},V,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=fr(d(n[1][1+_],n),k),R=p(n[1][1+L],n,o);return C===k&&o===R?f:[0,E,g,C,R]},_,function(n,s){switch(s[0]){case 0:var f=s[1];return P0(d(n[1][1+ox],n),f,s,function(R){return[0,R]});case 1:var o=s[1];return P0(d(n[1][1+lx],n),o,s,function(R){return[1,R]});case 2:var k=s[1];return P0(d(n[1][1+Zx],n),k,s,function(R){return[2,R]});case 3:var g=s[1];return P0(d(n[1][1+qr],n),g,s,function(R){return[3,R]});case 4:var E=s[1];return P0(d(n[1][1+Lx],n),E,s,function(R){return[4,R]});default:var C=s[1];return P0(d(n[1][1+Cr],n),C,s,function(R){return[5,R]})}},Y,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=d(n[1][1+gr],n),C=fr(function(l0){return W2(E,l0)},k),R=W2(d(n[1][1+V],n),g),e0=p(n[1][1+L],n,o);return C===k&&R===g&&o===e0?f:[0,R,C,e0]},Jr,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+B],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Er],n),o,s,function(k){return[1,k]})},Er,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Jr],n,k),C=p(n[1][1+b2],n,o);return E===k&&C===o?s:[0,g,[0,E,C]]},b2,function(n,s){return p(n[1][1+Cx],n,s)},c,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+L],n,o);return o===E?s:[0,g,[0,k,E]]},i,function(n,s){return Ax(d(n[1][1+c],n),s)},t0,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=fr(d(n[1][1+a0],n),k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},M,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=fr(d(n[1][1+z],n),k),C=p(n[1][1+L],n,o);return E===k&&C===o?s:[0,g,[0,E,C]]},z,function(n,s){var f=s[2],o=f[5],k=f[4],g=f[2],E=f[1],C=f[3],R=s[1],e0=p(n[1][1+c0],n,g),l0=p(n[1][1+i],n,k),F0=Ax(d(n[1][1+a0],n),o),dx=p(n[1][1+Pn],n,E);return dx===E&&e0===g&&l0===k&&F0===o?s:[0,R,[0,dx,e0,C,l0,F0]]},gr,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Jr],n,g),C=Ax(d(n[1][1+t0],n),k),R=p(n[1][1+L],n,o);return E===g&&C===k&&R===o?f:[0,E,C,R]},k0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+a0],n,g),C=p(n[1][1+a0],n,k),R=p(n[1][1+L],n,o);return E===g&&C===k&&R===o?f:[0,E,C,R]},a2,function(n,s,f){var o=f[1],k=f[2],g=H0(n[1][1+k0],n,s,o);return g===o?f:[0,g,k]},$0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+L],n,o);return o===E?f:[0,g,k,E]},H2,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+L],n,o);return o===E?f:[0,g,k,E]},qs,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+L],n,o);return o===E?f:[0,g,k,E]},x3,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+L],n,o);return o===g?f:[0,k,g]},dt,function(n,s,f){return p(n[1][1+L],n,f)},h0,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+L],n,o);return o===C?f:[0,E,g,k,C]},C1,function(n,s,f){var o=f[6],k=f[5],g=f[4],E=f[3],C=f[2],R=f[1];return o===p(n[1][1+L],n,o)?f:[0,R,C,E,g,k,o]},Kt,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+a0],n,o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},bl,function(n,s){var f=s[5],o=s[4],k=s[3],g=s[2],E=s[1],C=p(n[1][1+a0],n,E),R=p(n[1][1+a0],n,g),e0=p(n[1][1+a0],n,k),l0=p(n[1][1+a0],n,o),F0=p(n[1][1+L],n,f);return E===C&&g===R&&k===e0&&o===l0&&f===F0?s:[0,C,R,e0,l0,F0]},f0,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+z],n,o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},b,function(n,s){var f=s[3],o=s[2],k=s[1],g=p(n[1][1+F],n,k),E=Ax(d(n[1][1+t0],n),o),C=p(n[1][1+L],n,f);return k===g&&B3(o,E)&&f===C?s:[0,g,E,C]},F,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+I],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+N],n),o,s,function(k){return[1,k]})},I,function(n,s){return p(n[1][1+Cx],n,s)},j,function(n,s){return p(n[1][1+Cx],n,s)},N,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+F],n,k),C=p(n[1][1+j],n,o);return E===k&&C===o?s:[0,g,[0,E,C]]},Uv,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+a0],n,o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},b0,function(n,s){var f=s[3],o=s[2],k=s[4],g=s[1],E=p(n[1][1+a0],n,o),C=p(n[1][1+L],n,f);return o===E&&f===C?s:[0,g,E,C,k]},_0,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+a0],n,o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},g0,function(n,s){var f=s[3],o=s[1],k=s[2],g=fr(d(n[1][1+d0],n),o),E=p(n[1][1+L],n,f);return o===g&&f===E?s:[0,g,k,E]},d0,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return P0(d(n[1][1+a0],n),k,s,function(C){return[0,o,[0,C]]});case 1:var g=f[1];return P0(d(n[1][1+s0],n),g,s,function(C){return[0,o,[1,C]]});default:var E=f[1];return P0(d(n[1][1+i0],n),E,s,function(C){return[0,o,[2,C]]})}},s0,function(n,s){var f=s[3],o=s[2],k=s[4],g=s[1],E=p(n[1][1+a0],n,o),C=p(n[1][1+i],n,f);return E===o&&C===f?s:[0,g,E,C,k]},i0,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+a0],n,f);return k===f?s:[0,o,k]},t3,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+a0],n,o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},h,function(n,s,f){var o=f[2],k=f[1],g=k[3],E=k[2],C=k[1],R=p(n[1][1+a0],n,C),e0=p(n[1][1+a0],n,E),l0=fr(d(n[1][1+a0],n),g),F0=p(n[1][1+L],n,o);return R===C&&e0===E&&l0===g&&F0===o?f:[0,[0,R,e0,l0],F0]},wl,function(n,s,f){var o=f[2],k=f[1],g=k[3],E=k[2],C=k[1],R=p(n[1][1+a0],n,C),e0=p(n[1][1+a0],n,E),l0=fr(d(n[1][1+a0],n),g),F0=p(n[1][1+L],n,o);return R===C&&e0===E&&l0===g&&F0===o?f:[0,[0,R,e0,l0],F0]},a0,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return P0(d(n[1][1+L],n),k,s,function(_x){return[0,o,[0,_x]]});case 1:var g=f[1];return P0(d(n[1][1+L],n),g,s,function(_x){return[0,o,[1,_x]]});case 2:var E=f[1];return P0(d(n[1][1+L],n),E,s,function(_x){return[0,o,[2,_x]]});case 3:var C=f[1];return P0(d(n[1][1+L],n),C,s,function(_x){return[0,o,[3,_x]]});case 4:var R=f[1];return P0(d(n[1][1+L],n),R,s,function(_x){return[0,o,[4,_x]]});case 5:var e0=f[1];return P0(d(n[1][1+L],n),e0,s,function(_x){return[0,o,[5,_x]]});case 6:var l0=f[1];return P0(d(n[1][1+L],n),l0,s,function(_x){return[0,o,[6,_x]]});case 7:var F0=f[1];return P0(d(n[1][1+L],n),F0,s,function(_x){return[0,o,[7,_x]]});case 8:var dx=f[1],Xx=f[2];return P0(d(n[1][1+L],n),Xx,s,function(_x){return[0,o,[8,dx,_x]]});case 9:var Kx=f[1];return P0(d(n[1][1+L],n),Kx,s,function(_x){return[0,o,[9,_x]]});case 10:var _r=f[1];return P0(d(n[1][1+L],n),_r,s,function(_x){return[0,o,[10,_x]]});case 11:var t2=f[1];return P0(d(n[1][1+Kt],n),t2,s,function(_x){return[0,o,[11,_x]]});case 12:var Wr=f[1];return O0(d(n[1][1+Gr],n),o,Wr,s,function(_x){return[0,o,[12,_x]]});case 13:var Vx=f[1];return O0(d(n[1][1+Rs],n),o,Vx,s,function(_x){return[0,o,[13,_x]]});case 14:var C2=f[1];return O0(d(n[1][1+V],n),o,C2,s,function(_x){return[0,o,[14,_x]]});case 15:var z2=f[1];return O0(d(n[1][1+Y],n),o,z2,s,function(_x){return[0,o,[15,_x]]});case 16:var ee=f[1];return P0(d(n[1][1+t3],n),ee,s,function(_x){return[0,o,[16,_x]]});case 17:var me=f[1];return P0(d(n[1][1+bl],n),me,s,function(_x){return[0,o,[17,_x]]});case 18:var he=f[1];return P0(d(n[1][1+f0],n),he,s,function(_x){return[0,o,[18,_x]]});case 19:var te=f[1];return O0(d(n[1][1+gr],n),o,te,s,function(_x){return[0,o,[19,_x]]});case 20:var de=f[1];return O0(d(n[1][1+k0],n),o,de,s,function(_x){return[0,o,[20,_x]]});case 21:var ye=f[1];return O0(d(n[1][1+a2],n),o,ye,s,function(_x){return[0,o,[21,_x]]});case 22:var ge=f[1];return O0(d(n[1][1+h],n),o,ge,s,function(_x){return[0,o,[22,_x]]});case 23:var At=f[1];return O0(d(n[1][1+wl],n),o,At,s,function(_x){return[0,o,[23,_x]]});case 24:var we=f[1];return P0(d(n[1][1+b],n),we,s,function(_x){return[0,o,[24,_x]]});case 25:var ct=f[1];return P0(d(n[1][1+Uv],n),ct,s,function(_x){return[0,o,[25,_x]]});case 26:var Us=f[1];return P0(d(n[1][1+b0],n),Us,s,function(_x){return[0,o,[26,_x]]});case 27:var Bs=f[1];return P0(d(n[1][1+_0],n),Bs,s,function(_x){return[0,o,[27,_x]]});case 28:var Xs=f[1];return P0(d(n[1][1+g0],n),Xs,s,function(_x){return[0,o,[28,_x]]});case 29:var In=f[1];return O0(d(n[1][1+$0],n),o,In,s,function(_x){return[0,o,[29,_x]]});case 30:var Ys=f[1];return O0(d(n[1][1+H2],n),o,Ys,s,function(_x){return[0,o,[30,_x]]});case 31:var zs=f[1];return O0(d(n[1][1+qs],n),o,zs,s,function(_x){return[0,o,[31,_x]]});case 32:var n3=f[1];return O0(d(n[1][1+x3],n),o,n3,s,function(_x){return[0,o,[32,_x]]});case 33:var u3=f[1];return P0(d(n[1][1+L],n),u3,s,function(_x){return[0,o,[33,_x]]});case 34:var i3=f[1];return P0(d(n[1][1+L],n),i3,s,function(_x){return[0,o,[34,_x]]});default:var f3=f[1];return P0(d(n[1][1+L],n),f3,s,function(_x){return[0,o,[35,_x]]})}},r0,function(n,s){var f=s[1],o=s[2];return P0(d(n[1][1+a0],n),o,s,function(k){return[0,f,k]})},c0,function(n,s){if(s[0]===0)return s;var f=s[1];return P0(d(n[1][1+r0],n),f,s,function(o){return[1,o]})},Oa,function(n,s){if(s[0]===0)return s;var f=s[2],o=s[1],k=p(n[1][1+b0],n,f);return k===f?s:[1,o,k]},d2,function(n,s,f){return H0(n[1][1+E2],n,s,f)},Rr,function(n,s,f){return H0(n[1][1+T2],n,s,f)},T2,function(n,s,f){return H0(n[1][1+E2],n,s,f)},E2,function(n,s,f){var o=f[10],k=f[9],g=f[8],E=f[7],C=f[3],R=f[2],e0=f[1],l0=f[11],F0=f[6],dx=f[5],Xx=f[4],Kx=Ax(d(n[1][1+Qr],n),e0),_r=Ax(d(n[1][1+M],n),k),t2=p(n[1][1+Ar],n,R),Wr=p(n[1][1+Dr],n,g),Vx=p(n[1][1+o2],n,C),C2=Ax(d(n[1][1+X],n),E),z2=p(n[1][1+L],n,o);return e0===Kx&&R===t2&&C===Vx&&E===C2&&g===Wr&&k===_r&&o===z2?f:[0,Kx,t2,Vx,Xx,dx,F0,C2,Wr,_r,z2,l0]},Ar,function(n,s){var f=s[2],o=f[4],k=f[3],g=f[2],E=f[1],C=s[1],R=fr(d(n[1][1+Ur],n),g),e0=Ax(d(n[1][1+r2],n),k),l0=Ax(d(n[1][1+P2],n),E),F0=p(n[1][1+L],n,o);return g===R&&k===e0&&o===F0&&E===l0?s:[0,C,[0,l0,R,e0,F0]]},P2,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+r0],n,k),C=p(n[1][1+L],n,o);return E===k&&C===o?s:[0,g,[0,E,C]]},Ur,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+f2],n,k),C=p(n[1][1+re],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},Dr,function(n,s){switch(s[0]){case 0:return s;case 1:var f=s[1];return P0(d(n[1][1+r0],n),f,s,function(k){return[1,k]});default:var o=s[1];return P0(d(n[1][1+n0],n),o,s,function(k){return[2,k]})}},o2,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+c2],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Wh],n),o,s,function(k){return[1,k]})},c2,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+Qt],n),f,o,s,function(k){return[0,f,k]})},Wh,function(n,s){return p(n[1][1+Ox],n,s)},Qr,function(n,s){return H0(n[1][1+bx],n,h$,s)},Cx,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+L],n,o);return o===E?s:[0,g,[0,k,E]]},K,function(n,s){return p(n[1][1+Cx],n,s)},B,function(n,s){return p(n[1][1+K],n,s)},Pn,function(n,s){return p(n[1][1+K],n,s)},D,function(n,s,f){var o=f[5],k=f[4],g=f[3],E=f[2],C=f[1],R=p(n[1][1+Pn],n,C),e0=Ax(d(n[1][1+M],n),E),l0=d(n[1][1+gr],n),F0=fr(function(Kx){return W2(l0,Kx)},g),dx=W2(d(n[1][1+V],n),k),Xx=p(n[1][1+L],n,o);return R===C&&e0===E&&F0===g&&dx===k&&Xx===o?f:[0,R,e0,F0,dx,Xx]},A,function(n,s,f){return H0(n[1][1+D],n,s,f)},m0,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+L],n,o);return o===E?s:[0,g,[0,k,E]]},Fs,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Ox],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},zx,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+Ox],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},kr,function(n,s,f){return p(n[1][1+tx],n,f)},rr,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+tx],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},ur,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+T0],n,E),R=H0(n[1][1+kr],n,k!==0?1:0,g),e0=d(n[1][1+rr],n),l0=Ax(function(dx){return W2(e0,dx)},k),F0=p(n[1][1+L],n,o);return E===C&&g===R&&k===l0&&o===F0?f:[0,C,R,l0,F0]},nr,function(n,s,f){var o=f[5],k=f[4],g=f[3],E=f[2],C=f[1],R=W2(d(n[1][1+Q0],n),E),e0=Ax(p(n[1][1+R0],n,C),k),l0=Ax(function(dx){var Xx=dx[1],Kx=dx[2],_r=H0(n[1][1+Rx],n,C,Xx);return _r===Xx?dx:[0,_r,Kx]},g),F0=p(n[1][1+L],n,o);return E===R&&k===e0&&g===l0&&o===F0?f:[0,C,R,l0,e0,F0]},Q0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+L],n,o);return o===E?f:[0,g,k,E]},R0,function(n,s,f){if(f[0]===0){var o=f[1],k=fr(p(n[1][1+Ix],n,s),o);return o===k?f:[0,k]}var g=f[1],E=g[1],C=g[2];return O0(p(n[1][1+mx],n,s),E,C,f,function(R){return[1,[0,E,R]]})},U,function(n,s){return p(n[1][1+Cx],n,s)},Ix,function(n,s,f){var o=f[3],k=f[2],g=f[1];x:{r:{var E=f[4];if(s){e:{if(g)switch(g[1]){case 0:break r;case 1:break e}if(2<=s){var C=0,R=0;break x}}var C=1,R=0;break x}}var C=1,R=1}var e0=k?p(n[1][1+U],n,o):R?p(n[1][1+Pn],n,o):H0(n[1][1+bx],n,d$,o);if(k)var l0=k[1],F0=C?d(n[1][1+Pn],n):p(n[1][1+bx],n,y$),dx=P0(F0,l0,k,function(Xx){return[0,Xx]});else var dx=0;return k===dx&&o===e0?f:[0,g,dx,e0,E]},Rx,function(n,s,f){var o=2<=s?p(n[1][1+bx],n,g$):d(n[1][1+Pn],n);return d(o,f)},mx,function(n,s,f,o){var k=2<=s?p(n[1][1+bx],n,w$):d(n[1][1+Pn],n);return d(k,o)},gl,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+Xv],n,E),R=Ax(d(n[1][1+E4],n),g),e0=p(n[1][1+bo],n,k),l0=p(n[1][1+L],n,o);return E===C&&g===R&&k===e0&&o===l0?f:[0,C,R,e0,l0]},yl,function(n,s,f){var o=f[4],k=f[3],g=p(n[1][1+bo],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,f[1],f[2],g,E]},Xv,function(n,s){var f=s[2],o=f[4],k=f[2],g=f[1],E=f[3],C=s[1],R=p(n[1][1+_o],n,g),e0=Ax(d(n[1][1+Do],n),k),l0=fr(d(n[1][1+dl],n),o);return g===R&&k===e0&&o===l0?s:[0,C,[0,R,e0,E,l0]]},E4,function(n,s){var f=s[2][1],o=s[1],k=p(n[1][1+_o],n,f);return f===k?s:[0,o,[0,k]]},dl,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+I4],n),f,s,function(E){return[0,E]})}var o=s[1],k=o[1],g=o[2];return O0(d(n[1][1+Bv],n),k,g,s,function(E){return[1,[0,k,E]]})},Bv,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+Ox],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},I4,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+P4],n,k),C=Ax(d(n[1][1+Jh],n),o);return k===E&&o===C?s:[0,g,[0,E,C]]},P4,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+A4],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Gh],n),o,s,function(k){return[1,k]})},A4,function(n,s){return p(n[1][1+Ca],n,s)},Gh,function(n,s){return p(n[1][1+Na],n,s)},Jh,function(n,s){if(s[0]===0){var f=s[1],o=f[1],k=f[2];return O0(d(n[1][1+zh],n),o,k,s,function(R){return[0,[0,o,R]]})}var g=s[1],E=g[1],C=g[2];return O0(d(n[1][1+Kh],n),E,C,s,function(R){return[1,[0,E,R]]})},Kh,function(n,s,f){return H0(n[1][1+Ps],n,s,f)},zh,function(n,s,f){return H0(n[1][1+$0],n,s,f)},bo,function(n,s){var f=s[2],o=s[1],k=fr(d(n[1][1+S4],n),f);return f===k?s:[0,o,k]},S4,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return O0(d(n[1][1+gl],n),o,k,s,function(R){return[0,o,[0,R]]});case 1:var g=f[1];return O0(d(n[1][1+yl],n),o,g,s,function(R){return[0,o,[1,R]]});case 2:var E=f[1];return O0(d(n[1][1+Ps],n),o,E,s,function(R){return[0,o,[2,R]]});case 3:var C=f[1];return P0(d(n[1][1+ho],n),C,s,function(R){return[0,o,[3,R]]});default:return s}},Ps,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+L],n,o);if(!k)return o===g?f:[0,0,g];var E=k[1],C=p(n[1][1+Ox],n,E);return E===C&&o===g?f:[0,[0,C],g]},ho,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+Ox],n,o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},_o,function(n,s){switch(s[0]){case 0:var f=s[1];return P0(d(n[1][1+T4],n),f,s,function(g){return[0,g]});case 1:var o=s[1];return P0(d(n[1][1+Yh],n),o,s,function(g){return[1,g]});default:var k=s[1];return P0(d(n[1][1+wo],n),k,s,function(g){return[2,g]})}},T4,function(n,s){return p(n[1][1+Ca],n,s)},Yh,function(n,s){return p(n[1][1+Na],n,s)},wo,function(n,s){return p(n[1][1+ja],n,s)},Na,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Ca],n,k),C=p(n[1][1+Ca],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},ja,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+yo],n,k),C=p(n[1][1+Ca],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},yo,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+go],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+ja],n),o,s,function(k){return[1,k]})},go,function(n,s){return p(n[1][1+T4],n,s)},Ca,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+L],n,o);return o===E?s:[0,g,[0,k,E]]},As,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Gt],n,g),C=p(n[1][1+tx],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},Ia,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=p(n[1][1+Ox],n,g),C=p(n[1][1+Ox],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,f[1],E,C,R]},mo,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=fr(d(n[1][1+Pa],n),k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},Pa,function(n,s){var f=s[2],o=f[4],k=f[3],g=f[2],E=f[1],C=s[1],R=p(n[1][1+gt],n,E),e0=p(n[1][1+Ox],n,g),l0=Ax(d(n[1][1+Ox],n),k),F0=p(n[1][1+L],n,o);return E===R&&g===e0&&k===l0&&o===F0?s:[0,C,[0,E,g,l0,F0]]},yr,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=fr(d(n[1][1+yt],n),k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},yt,function(n,s){var f=s[2],o=f[4],k=f[3],g=f[2],E=f[1],C=s[1],R=p(n[1][1+gt],n,E),e0=W2(d(n[1][1+Qt],n),g),l0=Ax(d(n[1][1+Ox],n),k),F0=p(n[1][1+L],n,o);return E===R&&g===e0&&k===l0&&o===F0?s:[0,C,[0,E,g,l0,F0]]},gt,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[1];return P0(d(n[1][1+L],n),k,s,function(Vx){return[0,o,[0,Vx]]});case 1:var g=f[1];return O0(d(n[1][1+H2],n),o,g,s,function(Vx){return[0,o,[1,Vx]]});case 2:var E=f[1];return O0(d(n[1][1+qs],n),o,E,s,function(Vx){return[0,o,[2,Vx]]});case 3:var C=f[1];return O0(d(n[1][1+$0],n),o,C,s,function(Vx){return[0,o,[3,Vx]]});case 4:var R=f[1];return O0(d(n[1][1+x3],n),o,R,s,function(Vx){return[0,o,[4,Vx]]});case 5:var e0=f[1];return P0(d(n[1][1+L],n),e0,s,function(Vx){return[0,o,[5,Vx]]});case 6:var l0=f[1];return P0(d(n[1][1+Lv],n),l0,s,function(Vx){return[0,o,[6,Vx]]});case 7:var F0=f[1];return O0(d(n[1][1+Ss],n),o,F0,s,function(Vx){return[0,o,[7,Vx]]});case 8:var dx=f[1];return P0(d(n[1][1+Cx],n),dx,s,function(Vx){return[0,o,[8,Vx]]});case 9:var Xx=f[1];return P0(d(n[1][1+Aa],n),Xx,s,function(Vx){return[0,o,[9,Vx]]});case 10:var Kx=f[1];return P0(d(n[1][1+Ea],n),Kx,s,function(Vx){return[0,o,[10,Vx]]});case 11:var _r=f[1];return P0(d(n[1][1+d1],n),_r,s,function(Vx){return[0,o,[11,Vx]]});case 12:var t2=f[1];return P0(d(n[1][1+Mv],n),t2,s,function(Vx){return[0,o,[12,Vx]]});default:var Wr=f[1];return P0(d(n[1][1+H1],n),Wr,s,function(Vx){return[0,o,[13,Vx]]})}},Lv,function(n,s){var f=s[3],o=s[2],k=o[1],g=s[1],E=o[2],C=O0(d(n[1][1+Ts],n),k,E,o,function(e0){return[0,k,e0]}),R=p(n[1][1+L],n,f);return o===C&&f===R?s:[0,g,C,R]},Ts,function(n,s,f){if(f[0]===0){var o=f[1];return O0(d(n[1][1+H2],n),s,o,f,function(g){return[0,g]})}var k=f[1];return O0(d(n[1][1+qs],n),s,k,f,function(g){return[1,g]})},Aa,function(n,s){var f=s[2],o=f[3],k=f[2],g=f[1],E=s[1],C=p(n[1][1+Sa],n,g),R=p(n[1][1+ko],n,k),e0=p(n[1][1+L],n,o);return g===C&&k===R&&o===e0?s:[0,E,[0,C,R,e0]]},Sa,function(n,s){if(s[0]===0){var f=s[1];return P0(d(n[1][1+Cx],n),f,s,function(k){return[0,k]})}var o=s[1];return P0(d(n[1][1+Aa],n),o,s,function(k){return[1,k]})},ko,function(n,s){switch(s[0]){case 0:var f=s[1],o=f[1],k=f[2];return O0(d(n[1][1+$0],n),o,k,s,function(e0){return[0,[0,o,e0]]});case 1:var g=s[1],E=g[1],C=g[2];return O0(d(n[1][1+H2],n),E,C,s,function(e0){return[1,[0,E,e0]]});default:var R=s[1];return P0(d(n[1][1+Cx],n),R,s,function(e0){return[2,e0]})}},Ss,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=H0(n[1][1+bx],n,[0,g],k),C=p(n[1][1+L],n,o);return k===E&&o===C?f:[0,g,E,C]},Ea,function(n,s){var f=s[3],o=s[2],k=s[1],g=fr(d(n[1][1+bn],n),k),E=W6(d(n[1][1+Ta],n),o),C=p(n[1][1+L],n,f);return k===g&&o===E&&f===C?s:[0,g,E,C]},bn,function(n,s){var f=s[2],o=f[4],k=f[2],g=f[1],E=f[3],C=s[1],R=p(n[1][1+qv],n,g),e0=p(n[1][1+gt],n,k),l0=p(n[1][1+L],n,o);return g===R&&k===e0&&o===l0?s:[0,C,[0,R,e0,E,l0]]},qv,function(n,s){switch(s[0]){case 0:var f=s[1],o=f[1],k=f[2];return O0(d(n[1][1+$0],n),o,k,s,function(e0){return[0,[0,o,e0]]});case 1:var g=s[1],E=g[1],C=g[2];return O0(d(n[1][1+H2],n),E,C,s,function(e0){return[1,[0,E,e0]]});default:var R=s[1];return P0(d(n[1][1+Cx],n),R,s,function(e0){return[2,e0]})}},d1,function(n,s){var f=s[3],o=s[2],k=s[1],g=fr(d(n[1][1+Es],n),k),E=W6(d(n[1][1+Ta],n),o),C=p(n[1][1+L],n,f);return k===g&&o===E&&f===C?s:[0,g,E,C]},Es,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+gt],n,f);return f===k?s:[0,o,k]},Ta,function(n,s,f){var o=f[2],k=f[1],g=W6(d(n[1][1+Ss],n),k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},Mv,function(n,s){var f=s[2],o=s[1],k=fr(d(n[1][1+gt],n),o),g=p(n[1][1+L],n,f);return o===k&&f===g?s:[0,k,g]},H1,function(n,s){var f=s[3],o=s[2],k=s[1],g=p(n[1][1+gt],n,k);if(o[0]===0)var E=o[1],e0=P0(p(n[1][1+bx],n,_$),E,o,function(F0){return[0,F0]});else var C=o[1],R=o[2],e0=O0(d(n[1][1+Ss],n),C,R,o,function(F0){return[1,C,F0]});var l0=p(n[1][1+L],n,f);return k===g&&o===e0&&f===l0?s:[0,g,e0,l0]},Ze,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=p(n[1][1+bs],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},Mr,function(n,s,f){var o=f[1],k=H0(n[1][1+Ze],n,s,o);return o===k?f:[0,k,f[2],f[3]]},bs,function(n,s){switch(s[0]){case 0:var f=s[1];return P0(d(n[1][1+wn],n),f,s,function(g){return[0,g]});case 1:var o=s[1];return P0(d(n[1][1+le],n),o,s,function(g){return[1,g]});default:var k=s[1];return P0(d(n[1][1+_n],n),k,s,function(g){return[2,g]})}},wn,function(n,s){return p(n[1][1+Cx],n,s)},le,function(n,s){return p(n[1][1+m0],n,s)},_n,function(n,s){return p(n[1][1+Ox],n,s)},q1,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Cx],n,g),C=p(n[1][1+Cx],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},Jt,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+Ox],n,E),R=Ax(d(n[1][1+Do],n),g),e0=Ax(d(n[1][1+j4],n),k),l0=p(n[1][1+L],n,o);return E===C&&g===R&&k===e0&&o===l0?f:[0,C,R,e0,l0]},Y2,function(n,s,f){var o=f[2],k=f[1],g=fr(function(C){if(C[0]===0){var R=C[1],e0=p(n[1][1+wx],n,R);return R===e0?C:[0,e0]}var l0=C[1],F0=p(n[1][1+z0],n,l0);return l0===F0?C:[1,F0]},k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},wx,function(n,s){var f=s[2],o=s[1];switch(f[0]){case 0:var k=f[3],g=f[2],E=f[1],C=p(n[1][1+ux],n,E),R=p(n[1][1+Ox],n,g);x:if(k){if(C[0]===3){var e0=R[2];if(e0[0]===10){var F0=br(C[1][2][1],e0[1][2][1]);break x}}var l0=E===C?1:0,F0=l0&&(g===R?1:0)}else var F0=k;return E===C&&g===R&&k===F0?s:[0,o,[0,C,R,F0]];case 1:var dx=f[2],Xx=f[1],Kx=p(n[1][1+ux],n,Xx),_r=W2(d(n[1][1+T2],n),dx);return Xx===Kx&&dx===_r?s:[0,o,[1,Kx,_r]];case 2:var t2=f[3],Wr=f[2],Vx=f[1],C2=p(n[1][1+ux],n,Vx),z2=W2(d(n[1][1+T2],n),Wr),ee=p(n[1][1+L],n,t2);return Vx===C2&&Wr===z2&&t2===ee?s:[0,o,[2,C2,z2,ee]];default:var me=f[3],he=f[2],te=f[1],de=p(n[1][1+ux],n,te),ye=W2(d(n[1][1+T2],n),he),ge=p(n[1][1+L],n,me);return te===de&&he===ye&&me===ge?s:[0,o,[3,de,ye,ge]]}},ux,function(n,s){switch(s[0]){case 0:var f=s[1];return P0(d(n[1][1+Hx],n),f,s,function(R){return[0,R]});case 1:var o=s[1];return P0(d(n[1][1+Zr],n),o,s,function(R){return[1,R]});case 2:var k=s[1];return P0(d(n[1][1+x2],n),k,s,function(R){return[2,R]});case 3:var g=s[1];return P0(d(n[1][1+dr],n),g,s,function(R){return[3,R]});case 4:var E=s[1];return P0(d(n[1][1+m0],n),E,s,function(R){return[4,R]});default:var C=s[1];return P0(d(n[1][1+Or],n),C,s,function(R){return[5,R]})}},Hx,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+$0],n),f,o,s,function(k){return[0,f,k]})},Zr,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+H2],n),f,o,s,function(k){return[0,f,k]})},x2,function(n,s){var f=s[1],o=s[2];return O0(d(n[1][1+qs],n),f,o,s,function(k){return[0,f,k]})},dr,function(n,s){return p(n[1][1+Cx],n,s)},Or,function(n,s){return p(n[1][1+Fs],n,s)},i2,function(n,s,f){var o=f[5],k=f[4],g=f[3],E=f[2],C=f[1],R=p(n[1][1+Pn],n,C),e0=Ax(d(n[1][1+M],n),E),l0=Ax(d(n[1][1+a0],n),g),F0=Ax(d(n[1][1+a0],n),k),dx=p(n[1][1+L],n,o);return C===R&&g===l0&&E===e0&&g===l0&&k===F0&&o===dx?f:[0,R,e0,l0,F0,dx]},f2,function(n,s){return H0(n[1][1+r3],n,b$,s)},v,function(n,s,f){return H0(n[1][1+r3],n,[0,s],f)},Qv,function(n,s){return H0(n[1][1+r3],n,T$,s)},Wt,function(n,s){return p(n[1][1+e3],n,s)},Z1,function(n,s){return p(n[1][1+e3],n,s)},r3,function(n,s,f){var o=s?s[1]:0;return H0(n[1][1+sr],n,[0,o],f)},e3,function(n,s){return H0(n[1][1+sr],n,0,s)},sr,function(n,s,f){var o=f[2],k=f[1];switch(o[0]){case 0:var g=o[1],E=g[3],C=g[2],R=g[1],e0=fr(p(n[1][1+Fx],n,s),R),l0=p(n[1][1+c0],n,C),F0=p(n[1][1+L],n,E);x:{if(e0===R&&l0===C&&F0===E){var dx=o;break x}var dx=[0,[0,e0,l0,F0]]}var we=dx;break;case 1:var Xx=o[1],Kx=Xx[3],_r=Xx[2],t2=Xx[1],Wr=fr(p(n[1][1+tr],n,s),t2),Vx=p(n[1][1+c0],n,_r),C2=p(n[1][1+L],n,Kx);x:{if(Kx===C2&&Wr===t2&&Vx===_r){var z2=o;break x}var z2=[1,[0,Wr,Vx,C2]]}var we=z2;break;case 2:var ee=o[1],me=ee[2],he=ee[1],te=ee[3],de=H0(n[1][1+bx],n,s,he),ye=p(n[1][1+c0],n,me);x:{if(he===de&&me===ye){var ge=o;break x}var ge=[2,[0,de,ye,te]]}var we=ge;break;default:var At=o[1],we=P0(d(n[1][1+B0],n),At,o,function(ct){return[3,ct]})}return o===we?f:[0,k,we]},bx,function(n,s,f){return p(n[1][1+Cx],n,f)},Gx,function(n,s,f,o){return H0(n[1][1+$0],n,f,o)},Sx,function(n,s,f,o){return H0(n[1][1+H2],n,f,o)},Wx,function(n,s,f,o){return H0(n[1][1+qs],n,f,o)},Fx,function(n,s,f){if(f[0]===0){var o=f[1];return P0(p(n[1][1+p0],n,s),o,f,function(g){return[0,g]})}var k=f[1];return P0(p(n[1][1+G0],n,s),k,f,function(g){return[1,g]})},p0,function(n,s,f){var o=f[2],k=o[4],g=o[3],E=o[2],C=o[1],R=f[1],e0=H0(n[1][1+rx],n,s,C),l0=H0(n[1][1+S],n,s,E),F0=p(n[1][1+re],n,g);x:if(k){if(e0[0]===3){var dx=l0[2];if(dx[0]===2){var Kx=br(e0[1][2][1],dx[1][1][2][1]);break x}}var Xx=C===e0?1:0,Kx=Xx&&(E===l0?1:0)}else var Kx=k;return e0===C&&l0===E&&F0===g&&k===Kx?f:[0,R,[0,e0,l0,F0,Kx]]},rx,function(n,s,f){switch(f[0]){case 0:var o=f[1];return P0(p(n[1][1+Kr],n,s),o,f,function(R){return[0,R]});case 1:var k=f[1];return P0(p(n[1][1+G],n,s),k,f,function(R){return[1,R]});case 2:var g=f[1];return P0(p(n[1][1+nx],n,s),g,f,function(R){return[2,R]});case 3:var E=f[1];return P0(p(n[1][1+yx],n,s),E,f,function(R){return[3,R]});default:var C=f[1];return P0(p(n[1][1+Ex],n,s),C,f,function(R){return[4,R]})}},Kr,function(n,s,f){var o=f[1],k=f[2];return O0(p(n[1][1+Gx],n,s),o,k,f,function(g){return[0,o,g]})},G,function(n,s,f){var o=f[1],k=f[2];return O0(p(n[1][1+Sx],n,s),o,k,f,function(g){return[0,o,g]})},nx,function(n,s,f){var o=f[1],k=f[2];return O0(p(n[1][1+Wx],n,s),o,k,f,function(g){return[0,o,g]})},yx,function(n,s,f){return H0(n[1][1+bx],n,s,f)},Ex,function(n,s,f){return p(n[1][1+Fs],n,f)},G0,function(n,s,f){var o=f[2],k=o[2],g=o[1],E=f[1],C=H0(n[1][1+Px],n,s,g),R=p(n[1][1+L],n,k);return C===g&&k===R?f:[0,E,[0,C,R]]},S,function(n,s,f){return H0(n[1][1+sr],n,s,f)},Px,function(n,s,f){return H0(n[1][1+sr],n,s,f)},tr,function(n,s,f){switch(f[0]){case 0:var o=f[1];return P0(p(n[1][1+kx],n,s),o,f,function(g){return[0,g]});case 1:var k=f[1];return P0(p(n[1][1+ax],n,s),k,f,function(g){return[1,g]});default:return f}},kx,function(n,s,f){var o=f[2],k=o[2],g=o[1],E=f[1],C=H0(n[1][1+Qx],n,s,g),R=p(n[1][1+re],n,k);return g===C&&k===R?f:[0,E,[0,C,R]]},Qx,function(n,s,f){return H0(n[1][1+sr],n,s,f)},ax,function(n,s,f){var o=f[2],k=o[2],g=o[1],E=f[1],C=H0(n[1][1+Yx],n,s,g),R=p(n[1][1+L],n,k);return C===g&&k===R?f:[0,E,[0,C,R]]},Yx,function(n,s,f){return H0(n[1][1+sr],n,s,f)},B0,function(n,s){return p(n[1][1+Ox],n,s)},X,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1];if(k)var E=k[1],C=P0(d(n[1][1+Ox],n),E,k,function(e0){return[0,e0]});else var C=k;var R=p(n[1][1+L],n,o);return k===C&&o===R?s:[0,g,[0,C,R]]},T0,function(n,s){return p(n[1][1+Ox],n,s)},n0,function(n,s){var f=s[2],o=s[1],k=p(n[1][1+$],n,f);return B3(k,f)?s:[0,o,k]},$,function(n,s){var f=s[2],o=f[3],k=f[2],g=k[2],E=k[1],C=f[1],R=s[1],e0=p(n[1][1+Cx],n,E),l0=Ax(d(n[1][1+a0],n),g),F0=p(n[1][1+L],n,o);return e0===E&&l0===g&&F0===o?s:[0,R,[0,C,[0,e0,l0],F0]]},r2,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+f2],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},Q,function(n,s,f){var o=f[2],k=f[1],g=f[3],E=Ax(d(n[1][1+Ox],n),k),C=p(n[1][1+L],n,o);return k===E&&o===C?f:[0,E,C,g]},sx,function(n,s,f){var o=f[2],k=f[1],g=fr(d(n[1][1+Ox],n),k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},C0,function(n,s){return p(n[1][1+ex],n,s)},ex,function(n,s){var f=d(n[1][1+xx],n),o=m1(function(g,E){var C=g[2],R=g[1],e0=d(f,E);if(!e0)return[0,R,1];if(e0[2])return[0,K3(e0,R),1];var l0=e0[1],F0=C||(E!==l0?1:0);return[0,[0,l0,R],F0]},E$,s),k=o[1];return o[2]?ix(k):s},xx,function(n,s){return[0,p(n[1][1+tx],n,s),0]},px,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Ox],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},z0,function(n,s){var f=s[2],o=f[2],k=f[1],g=s[1],E=p(n[1][1+Ox],n,k),C=p(n[1][1+L],n,o);return k===E&&o===C?s:[0,g,[0,E,C]]},A0,function(n,s,f){var o=f[1],k=p(n[1][1+L],n,o);return o===k?f:[0,k]},K0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=f[4],C=p(n[1][1+Ox],n,g),R=fr(d(n[1][1+S0],n),k),e0=p(n[1][1+L],n,o);return g===C&&k===R&&o===e0?f:[0,C,R,e0,E]},S0,function(n,s){var f=s[2],o=f[3],k=f[2],g=f[1],E=s[1],C=Ax(d(n[1][1+Ox],n),g),R=p(n[1][1+ex],n,k),e0=p(n[1][1+L],n,o);return g===C&&k===R&&o===e0?s:[0,E,[0,C,R,e0]]},Y0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=W2(d(n[1][1+y0],n),k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},y0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=fr(d(n[1][1+j0],n),g),C=fr(d(n[1][1+Ox],n),k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},j0,function(n,s){return s},I0,function(n,s,f){var o=f[1],k=p(n[1][1+L],n,o);return o===k?f:[0,k]},D0,function(n,s,f){var o=f[2],k=f[1],g=p(n[1][1+Ox],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,g,E]},M0,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=W2(d(n[1][1+Qt],n),E);if(g)var R=g[1],e0=R[1],l0=R[2],F0=O0(d(n[1][1+Hv],n),e0,l0,g,function(Wr){return[0,[0,e0,Wr]]});else var F0=g;if(k)var dx=k[1],Xx=dx[1],Kx=dx[2],_r=O0(d(n[1][1+Qt],n),Xx,Kx,k,function(Wr){return[0,[0,Xx,Wr]]});else var _r=k;var t2=p(n[1][1+L],n,o);return E===C&&g===F0&&k===_r&&o===t2?f:[0,C,F0,_r,t2]},H,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=p(n[1][1+r0],n,k),R=p(n[1][1+L],n,o);return E===g&&C===k&&R===o?f:[0,E,C,R]},w0,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=p(n[1][1+r0],n,k),R=p(n[1][1+L],n,o);return E===g&&B3(C,k)&&R===o?f:[0,E,C,R]},T,function(n,s,f){var o=f[3],k=f[2],g=p(n[1][1+Ox],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,f[1],g,E]},m,function(n,s,f){var o=f[4],k=f[2],g=p(n[1][1+Ox],n,k),E=p(n[1][1+L],n,o);return k===g&&o===E?f:[0,f[1],g,f[3],E]},l,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=fr(p(n[1][1+a],n,k),g),C=p(n[1][1+L],n,o);return g===E&&o===C?f:[0,E,k,C]},a,function(n,s,f){var o=f[2],k=o[2],g=o[1],E=f[1],C=H0(n[1][1+v],n,s,g),R=Ax(d(n[1][1+Ox],n),k);return g===C&&k===R?f:[0,E,[0,C,R]]},u,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+T0],n,g),C=p(n[1][1+tx],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},t,function(n,s,f){var o=f[3],k=f[2],g=f[1],E=p(n[1][1+Ox],n,g),C=p(n[1][1+tx],n,k),R=p(n[1][1+L],n,o);return g===E&&k===C&&o===R?f:[0,E,C,R]},v0,function(n,s,f){var o=f[4],k=f[3],g=f[2],E=f[1],C=p(n[1][1+Pn],n,E),R=Ax(d(n[1][1+M],n),g),e0=p(n[1][1+a0],n,k),l0=p(n[1][1+L],n,o);return E===C&&k===e0&&g===R&&o===l0?f:[0,C,R,e0,l0]},e,function(n,s,f){var o=f[2],k=f[1],g=f[4],E=f[3],C=Ax(d(n[1][1+Ox],n),k),R=p(n[1][1+L],n,o);return o===R&&k===C?f:[0,C,R,E,g]}]),function(n,s){return y5(s,x)}}),qj=[];function hU(x,r,e){var t=e[2];switch(t[0]){case 0:var u=t[1][1];return m1(d(qj[1],x),r,u);case 1:var i=t[1][1];return m1(d(qj[2],x),r,i);case 2:return p(x,r,t[1][1]);default:return r}}Fr(qj,[0,function(x,r){return function(e){var t=e[0]===0?e[1][2][2]:e[1][2][1];return hU(x,r,t)}},function(x,r){return function(e){return e[0]===2?r:hU(x,r,e[1][2][1])}}]);var Uj=[];function dU(x){var r=x[2];switch(r[0]){case 0:return J3(Uj[1],r[1][1]);case 1:return J3(Uj[2],r[1][1]);case 2:return 1;default:return 0}}Fr(Uj,[0,function(x){var r=x[0]===0?x[1][2][2]:x[1][2][1];return dU(r)},function(x){return x[0]===2?0:dU(x[1][2][1])}]);var E5=[];function Bj(x){var r=x[2];switch(r[0]){case 7:return 1;case 10:var e=r[1],t=e[1],u=d(E5[2],e[2]);return u||J3(E5[1],t);case 11:var i=r[1],c=i[1],v=d(E5[2],i[2]);return v||J3(function(a){return Bj(a[2])},c);case 12:return J3(Bj,r[1][1]);case 13:return 1;default:return 0}}Fr(E5,[0,function(x){return Bj(x[2][2])},function(x){return x&&x[1][2][1]?1:0}]);function mn(x,r){return[0,r[1],[0,r[2],x]]}function yU(x,r,e){var t=x?x[1]:0,u=r?r[1]:0;return[0,t,u,e]}function Z(x,r,e){var t=x?x[1]:0,u=r?r[1]:0;return!t&&!u?0:[0,yU([0,t],[0,u],0)]}function O2(x,r,e,t){var u=x?x[1]:0,i=r?r[1]:0;return!u&&!i&&!e?0:[0,yU([0,u],[0,i],e)]}function S1(x,r){if(x){if(r){var e=r[1],t=x[1],u=[0,Mx(t[2],e[2])];return Z([0,Mx(e[1],t[1])],u,O)}var i=x}else var i=r;return i}function S5(x,r){if(!r)return x;if(x){var e=r[1],t=x[1],u=e[1],i=t[3],c=t[1],v=[0,Mx(t[2],e[2])];return O2([0,Mx(u,c)],v,i,O)}var a=r[1];return O2([0,a[1]],[0,a[2]],0,O)}function gU(x,r){s1(x)(vQ),d(s1(x)(pQ),lQ);var e=r[1];d(s1(x)(kQ),e),s1(x)(mQ),s1(x)(hQ),d(s1(x)(yQ),dQ);var t=r[2];return d(s1(x)(gQ),t),s1(x)(wQ),s1(x)(_Q)}Fr([],[0,gU,gU,function(x,r){switch(r[0]){case 0:var e=r[1];return s1(x)(x$),d(s1(x)(r$),e),s1(x)(e$);case 1:var t=r[1];return s1(x)(t$),d(s1(x)(n$),t),s1(x)(u$);case 2:var u=r[1];return s1(x)(i$),d(s1(x)(f$),u),s1(x)(c$);default:var i=r[1];return s1(x)(s$),d(s1(x)(a$),i),s1(x)(o$)}}]);function Yr(x,r){return[0,x[1],x[2],r[3]]}function ma(x,r){var e=x[1]-r[1]|0;return e===0?x[2]-r[2]|0:e}function wU(x,r){var e=r[1],t=x[1];if(t){var u=t[1];if(e)var i=e[1],c=mU(i),v=mU(u)-c|0,a=v===0?fx(u[1],i[1]):v;else var a=-1}else var a=e?1:0;if(a!==0)return a;var l=ma(x[2],r[2]);return l===0?ma(x[3],r[3]):l}function ro(x,r){return wU(x,r)===0?1:0}var hr=[];Fr(hr,[0,function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r){switch(x){case 0:if(!r)return 0;break;case 1:if(r===1)return 0;break;case 2:if(r===2)return 0;break;case 3:if(r===3)return 0;break;default:if(4<=r)return 0}function e(u){switch(u){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;default:return 4}}var t=e(r);return We(e(x),t)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return We(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)},function(x,r,e){return fx(r,e)}]);var _U=O00.slice();function Xj(x){for(var r=0,e=_U.length-1-1|0;;){if(ex)return 1;var r=t+1|0}}}var bU=0;function TU(x){var r=x[2];return[0,x[1],[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12]],x[3],x[4],x[5],x[6],x[7]]}function EU(x){return x[3][1]}function A5(x,r){return x!==r[4]?[0,r[1],r[2],r[3],x,r[5],r[6],r[7]]:r}var Qe=[];function SU(x,r){if(typeof x==\"number\"){var e=x;if(67<=e)if(fe<=e)switch(e){case 101:if(typeof r==\"number\"&&fe===r)return 1;break;case 102:if(typeof r==\"number\"&&g1===r)return 1;break;case 103:if(typeof r==\"number\"&&sn===r)return 1;break;case 104:if(typeof r==\"number\"&&Be===r)return 1;break;case 105:if(typeof r==\"number\"&&ui===r)return 1;break;case 106:if(typeof r==\"number\"&&Je===r)return 1;break;case 107:if(typeof r==\"number\"&&K2===r)return 1;break;case 108:if(typeof r==\"number\"&&sv===r)return 1;break;case 109:if(typeof r==\"number\"&&st===r)return 1;break;case 110:if(typeof r==\"number\"&&z1===r)return 1;break;case 111:if(typeof r==\"number\"&&ce===r)return 1;break;case 112:if(typeof r==\"number\"&&ea===r)return 1;break;case 113:if(typeof r==\"number\"&&Te===r)return 1;break;case 114:if(typeof r==\"number\"&&mr===r)return 1;break;case 115:if(typeof r==\"number\"&&tv===r)return 1;break;case 116:if(typeof r==\"number\"&&Wa===r)return 1;break;case 117:if(typeof r==\"number\"&&y6===r)return 1;break;case 118:if(typeof r==\"number\"&&P3===r)return 1;break;case 119:if(typeof r==\"number\"&&zl===r)return 1;break;case 120:if(typeof r==\"number\"&&vf===r)return 1;break;case 121:if(typeof r==\"number\"&&m6===r)return 1;break;case 122:if(typeof r==\"number\"&&s2===r)return 1;break;case 123:if(typeof r==\"number\"&&rn===r)return 1;break;case 124:if(typeof r==\"number\"&&S3===r)return 1;break;case 125:if(typeof r==\"number\"&&Ba===r)return 1;break;case 126:if(typeof r==\"number\"&&Sk===r)return 1;break;case 127:if(typeof r==\"number\"&&Br===r)return 1;break;case 128:if(typeof r==\"number\"&&M2===r)return 1;break;case 129:if(typeof r==\"number\"&&Xo===r)return 1;break;case 130:if(typeof r==\"number\"&&d6===r)return 1;break;case 131:if(typeof r==\"number\"&&r6===r)return 1;break;case 132:if(typeof r==\"number\"&&r8===r)return 1;break;default:if(typeof r==\"number\"&&_k<=r)return 1}else switch(e){case 67:if(typeof r==\"number\"&&r===67)return 1;break;case 68:if(typeof r==\"number\"&&r===68)return 1;break;case 69:if(typeof r==\"number\"&&r===69)return 1;break;case 70:if(typeof r==\"number\"&&r===70)return 1;break;case 71:if(typeof r==\"number\"&&r===71)return 1;break;case 72:if(typeof r==\"number\"&&r===72)return 1;break;case 73:if(typeof r==\"number\"&&r===73)return 1;break;case 74:if(typeof r==\"number\"&&r===74)return 1;break;case 75:if(typeof r==\"number\"&&r===75)return 1;break;case 76:if(typeof r==\"number\"&&r===76)return 1;break;case 77:if(typeof r==\"number\"&&r===77)return 1;break;case 78:if(typeof r==\"number\"&&r===78)return 1;break;case 79:if(typeof r==\"number\"&&r===79)return 1;break;case 80:if(typeof r==\"number\"&&r===80)return 1;break;case 81:if(typeof r==\"number\"&&r===81)return 1;break;case 82:if(typeof r==\"number\"&&r===82)return 1;break;case 83:if(typeof r==\"number\"&&r===83)return 1;break;case 84:if(typeof r==\"number\"&&r===84)return 1;break;case 85:if(typeof r==\"number\"&&r===85)return 1;break;case 86:if(typeof r==\"number\"&&r===86)return 1;break;case 87:if(typeof r==\"number\"&&r===87)return 1;break;case 88:if(typeof r==\"number\"&&r===88)return 1;break;case 89:if(typeof r==\"number\"&&r===89)return 1;break;case 90:if(typeof r==\"number\"&&r===90)return 1;break;case 91:if(typeof r==\"number\"&&r===91)return 1;break;case 92:if(typeof r==\"number\"&&r===92)return 1;break;case 93:if(typeof r==\"number\"&&r===93)return 1;break;case 94:if(typeof r==\"number\"&&r===94)return 1;break;case 95:if(typeof r==\"number\"&&r===95)return 1;break;case 96:if(typeof r==\"number\"&&r===96)return 1;break;case 97:if(typeof r==\"number\"&&r===97)return 1;break;case 98:if(typeof r==\"number\"&&r===98)return 1;break;case 99:if(typeof r==\"number\"&&r===99)return 1;break;default:if(typeof r==\"number\"&&y2===r)return 1}else if(34<=e)switch(e){case 34:if(typeof r==\"number\"&&r===34)return 1;break;case 35:if(typeof r==\"number\"&&r===35)return 1;break;case 36:if(typeof r==\"number\"&&r===36)return 1;break;case 37:if(typeof r==\"number\"&&r===37)return 1;break;case 38:if(typeof r==\"number\"&&r===38)return 1;break;case 39:if(typeof r==\"number\"&&r===39)return 1;break;case 40:if(typeof r==\"number\"&&r===40)return 1;break;case 41:if(typeof r==\"number\"&&r===41)return 1;break;case 42:if(typeof r==\"number\"&&r===42)return 1;break;case 43:if(typeof r==\"number\"&&r===43)return 1;break;case 44:if(typeof r==\"number\"&&r===44)return 1;break;case 45:if(typeof r==\"number\"&&r===45)return 1;break;case 46:if(typeof r==\"number\"&&r===46)return 1;break;case 47:if(typeof r==\"number\"&&r===47)return 1;break;case 48:if(typeof r==\"number\"&&r===48)return 1;break;case 49:if(typeof r==\"number\"&&r===49)return 1;break;case 50:if(typeof r==\"number\"&&r===50)return 1;break;case 51:if(typeof r==\"number\"&&r===51)return 1;break;case 52:if(typeof r==\"number\"&&r===52)return 1;break;case 53:if(typeof r==\"number\"&&r===53)return 1;break;case 54:if(typeof r==\"number\"&&r===54)return 1;break;case 55:if(typeof r==\"number\"&&r===55)return 1;break;case 56:if(typeof r==\"number\"&&r===56)return 1;break;case 57:if(typeof r==\"number\"&&r===57)return 1;break;case 58:if(typeof r==\"number\"&&r===58)return 1;break;case 59:if(typeof r==\"number\"&&r===59)return 1;break;case 60:if(typeof r==\"number\"&&r===60)return 1;break;case 61:if(typeof r==\"number\"&&r===61)return 1;break;case 62:if(typeof r==\"number\"&&r===62)return 1;break;case 63:if(typeof r==\"number\"&&r===63)return 1;break;case 64:if(typeof r==\"number\"&&r===64)return 1;break;case 65:if(typeof r==\"number\"&&r===65)return 1;break;default:if(typeof r==\"number\"&&r===66)return 1}else switch(e){case 0:if(typeof r==\"number\"&&!r)return 1;break;case 1:if(typeof r==\"number\"&&r===1)return 1;break;case 2:if(typeof r==\"number\"&&r===2)return 1;break;case 3:if(typeof r==\"number\"&&r===3)return 1;break;case 4:if(typeof r==\"number\"&&r===4)return 1;break;case 5:if(typeof r==\"number\"&&r===5)return 1;break;case 6:if(typeof r==\"number\"&&r===6)return 1;break;case 7:if(typeof r==\"number\"&&r===7)return 1;break;case 8:if(typeof r==\"number\"&&r===8)return 1;break;case 9:if(typeof r==\"number\"&&r===9)return 1;break;case 10:if(typeof r==\"number\"&&r===10)return 1;break;case 11:if(typeof r==\"number\"&&r===11)return 1;break;case 12:if(typeof r==\"number\"&&r===12)return 1;break;case 13:if(typeof r==\"number\"&&r===13)return 1;break;case 14:if(typeof r==\"number\"&&r===14)return 1;break;case 15:if(typeof r==\"number\"&&r===15)return 1;break;case 16:if(typeof r==\"number\"&&r===16)return 1;break;case 17:if(typeof r==\"number\"&&r===17)return 1;break;case 18:if(typeof r==\"number\"&&r===18)return 1;break;case 19:if(typeof r==\"number\"&&r===19)return 1;break;case 20:if(typeof r==\"number\"&&r===20)return 1;break;case 21:if(typeof r==\"number\"&&r===21)return 1;break;case 22:if(typeof r==\"number\"&&r===22)return 1;break;case 23:if(typeof r==\"number\"&&r===23)return 1;break;case 24:if(typeof r==\"number\"&&r===24)return 1;break;case 25:if(typeof r==\"number\"&&r===25)return 1;break;case 26:if(typeof r==\"number\"&&r===26)return 1;break;case 27:if(typeof r==\"number\"&&r===27)return 1;break;case 28:if(typeof r==\"number\"&&r===28)return 1;break;case 29:if(typeof r==\"number\"&&r===29)return 1;break;case 30:if(typeof r==\"number\"&&r===30)return 1;break;case 31:if(typeof r==\"number\"&&r===31)return 1;break;case 32:if(typeof r==\"number\"&&r===32)return 1;break;default:if(typeof r==\"number\"&&r===33)return 1}}else switch(x[0]){case 0:if(typeof r!=\"number\"&&r[0]===0){var t=r[2],u=x[2],i=p(Qe[13],x[1],r[1]);return i&&br(u,t)}break;case 1:if(typeof r!=\"number\"&&r[0]===1){var c=r[2],v=x[2],a=p(Qe[12],x[1],r[1]);return a&&br(v,c)}break;case 2:if(typeof r!=\"number\"&&r[0]===2){var l=r[1],m=x[1],h=l[4],T=l[3],b=l[2],N=m[4],j=m[3],I=m[2],F=p(Qe[11],m[1],l[1]),M=F&&br(I,b),z=M&&br(j,T);return z&&(N===h?1:0)}break;case 3:if(typeof r!=\"number\"&&r[0]===3){var B=r[1],K=x[1],n0=B[5],$=B[4],H=B[3],t0=B[2],c0=K[5],r0=K[4],v0=K[3],a0=K[2],g0=p(Qe[10],K[1],B[1]),i0=g0&&br(a0,t0),s0=i0&&br(v0,H),d0=s0&&(r0===$?1:0);return d0&&(c0===n0?1:0)}break;case 4:if(typeof r!=\"number\"&&r[0]===4){var w0=r[3],M0=r[2],C0=x[3],D0=x[2],I0=p(Qe[9],x[1],r[1]),j0=I0&&br(D0,M0);return j0&&br(C0,w0)}break;case 5:if(typeof r!=\"number\"&&r[0]===5){var y0=r[3],Y0=r[2],L=x[3],N0=x[2],S0=p(Qe[8],x[1],r[1]),K0=S0&&br(N0,Y0);return K0&&br(L,y0)}break;case 6:if(typeof r!=\"number\"&&r[0]===6){var A0=r[2],$0=x[2],ex=p(Qe[7],x[1],r[1]);return ex&&br($0,A0)}break;case 7:if(typeof r!=\"number\"&&r[0]===7)return br(x[1],r[1]);break;case 8:if(typeof r!=\"number\"&&r[0]===8){var xx=br(x[1],r[1]),tx=r[2],z0=x[2];return xx&&p(Qe[6],z0,tx)}break;case 9:if(typeof r!=\"number\"&&r[0]===9){var px=r[3],sx=r[2],Q=x[3],b0=x[2],U=p(Qe[5],x[1],r[1]),h0=U&&br(b0,sx);return h0&&br(Q,px)}break;case 10:if(typeof r!=\"number\"&&r[0]===10){var _0=r[3],m0=r[2],T0=x[3],X=x[2],Gx=p(Qe[4],x[1],r[1]),Px=Gx&&br(X,m0);return Px&&br(T0,_0)}break;case 11:if(typeof r!=\"number\"&&r[0]===11)return p(Qe[3],x[1],r[1]);break;case 12:if(typeof r!=\"number\"&&r[0]===12){var G0=r[3],Kr=r[2],S=x[3],G=x[2],rx=p(Qe[2],x[1],r[1]),yx=rx&&(G==Kr?1:0);return yx&&br(S,G0)}break;default:if(typeof r!=\"number\"&&r[0]===13){var Ex=r[2],nx=x[2],p0=r[3],Fx=x[3],Sx=p(Qe[1],x[1],r[1]);if(Sx){x:{if(nx){if(Ex){var bx=B3(nx[1],Ex[1]);break x}}else if(!Ex){var bx=1;break x}var bx=0}var B0=bx}else var B0=Sx;return B0&&br(Fx,p0)}}return 0}function AU(x,r){switch(x){case 0:if(!r)return 1;break;case 1:if(r===1)return 1;break;case 2:if(r===2)return 1;break;case 3:if(r===3)return 1;break;default:if(4<=r)return 1}return 0}function PU(x,r){switch(x){case 0:if(!r)return 1;break;case 1:if(r===1)return 1;break;default:if(2<=r)return 1}return 0}Fr(Qe,[0,PU,AU,function(x,r){if(x){if(r)return 1}else if(!r)return 1;return 0},ro,ro,ro,ro,ro,ro,ro,ro,PU,AU]);function IU(x){if(typeof x!=\"number\")switch(x[0]){case 0:return st0;case 1:return at0;case 2:return ot0;case 3:return vt0;case 4:return lt0;case 5:return pt0;case 6:return kt0;case 7:return mt0;case 8:return ht0;case 9:return dt0;case 10:return yt0;case 11:return gt0;case 12:return wt0;default:return _t0}var r=x;if(67<=r){if(fe<=r)switch(r){case 101:return Ne0;case 102:return je0;case 103:return Ce0;case 104:return Oe0;case 105:return De0;case 106:return Fe0;case 107:return Re0;case 108:return Le0;case 109:return Me0;case 110:return qe0;case 111:return Ue0;case 112:return Be0;case 113:return Xe0;case 114:return Ye0;case 115:return ze0;case 116:return Ke0;case 117:return Je0;case 118:return Ge0;case 119:return We0;case 120:return Ve0;case 121:return $e0;case 122:return Qe0;case 123:return He0;case 124:return Ze0;case 125:return xt0;case 126:return rt0;case 127:return et0;case 128:return tt0;case 129:return nt0;case 130:return ut0;case 131:return it0;case 132:return ft0;default:return ct0}switch(r){case 67:return $10;case 68:return Q10;case 69:return H10;case 70:return Z10;case 71:return xe0;case 72:return re0;case 73:return ee0;case 74:return te0;case 75:return ne0;case 76:return ue0;case 77:return ie0;case 78:return fe0;case 79:return ce0;case 80:return se0;case 81:return ae0;case 82:return oe0;case 83:return ve0;case 84:return le0;case 85:return pe0;case 86:return ke0;case 87:return me0;case 88:return he0;case 89:return de0;case 90:return ye0;case 91:return ge0;case 92:return we0;case 93:return _e0;case 94:return be0;case 95:return Te0;case 96:return Ee0;case 97:return Se0;case 98:return Ae0;case 99:return Pe0;default:return Ie0}}if(34<=r)switch(r){case 34:return h10;case 35:return d10;case 36:return y10;case 37:return g10;case 38:return w10;case 39:return _10;case 40:return b10;case 41:return T10;case 42:return E10;case 43:return S10;case 44:return A10;case 45:return P10;case 46:return I10;case 47:return N10;case 48:return j10;case 49:return C10;case 50:return O10;case 51:return D10;case 52:return F10;case 53:return R10;case 54:return L10;case 55:return M10;case 56:return q10;case 57:return U10;case 58:return B10;case 59:return X10;case 60:return Y10;case 61:return z10;case 62:return K10;case 63:return J10;case 64:return G10;case 65:return W10;default:return V10}switch(r){case 0:return L20;case 1:return M20;case 2:return q20;case 3:return U20;case 4:return B20;case 5:return X20;case 6:return Y20;case 7:return z20;case 8:return K20;case 9:return J20;case 10:return G20;case 11:return W20;case 12:return V20;case 13:return $20;case 14:return Q20;case 15:return H20;case 16:return Z20;case 17:return x10;case 18:return r10;case 19:return e10;case 20:return t10;case 21:return n10;case 22:return u10;case 23:return i10;case 24:return f10;case 25:return c10;case 26:return s10;case 27:return a10;case 28:return o10;case 29:return v10;case 30:return l10;case 31:return p10;case 32:return k10;default:return m10}}function Yj(x){if(typeof x!=\"number\")switch(x[0]){case 0:return x[2];case 1:return x[2];case 2:return x[1][3];case 3:var r=x[1],e=r[5],t=r[4],u=r[3];return t&&e?qx(S20,qx(u,E20)):t?qx(P20,qx(u,A20)):e?qx(N20,qx(u,I20)):qx(C20,qx(u,j20));case 4:return x[3];case 5:var i=x[2];return qx(D20,qx(i,qx(O20,x[3])));case 6:return x[2];case 7:return x[1];case 8:return x[1];case 9:return x[3];case 10:return x[3];case 11:return x[1]?F20:R20;case 12:return x[3];default:return x[3]}var c=x;if(67<=c){if(fe<=c)switch(c){case 101:return Jr0;case 102:return Gr0;case 103:return Wr0;case 104:return Vr0;case 105:return $r0;case 106:return Qr0;case 107:return Hr0;case 108:return Zr0;case 109:return x20;case 110:return r20;case 111:return e20;case 112:return t20;case 113:return n20;case 114:return u20;case 115:return i20;case 116:return f20;case 117:return c20;case 118:return s20;case 119:return a20;case 120:return o20;case 121:return v20;case 122:return l20;case 123:return p20;case 124:return k20;case 125:return m20;case 126:return h20;case 127:return d20;case 128:return y20;case 129:return g20;case 130:return w20;case 131:return _20;case 132:return b20;default:return T20}switch(c){case 67:return vr0;case 68:return lr0;case 69:return pr0;case 70:return kr0;case 71:return mr0;case 72:return hr0;case 73:return dr0;case 74:return yr0;case 75:return gr0;case 76:return wr0;case 77:return _r0;case 78:return br0;case 79:return Tr0;case 80:return Er0;case 81:return Sr0;case 82:return Ar0;case 83:return Pr0;case 84:return Ir0;case 85:return Nr0;case 86:return jr0;case 87:return Cr0;case 88:return Or0;case 89:return Dr0;case 90:return Fr0;case 91:return Rr0;case 92:return Lr0;case 93:return Mr0;case 94:return qr0;case 95:return Ur0;case 96:return Br0;case 97:return Xr0;case 98:return Yr0;case 99:return zr0;default:return Kr0}}if(34<=c)switch(c){case 34:return Ox0;case 35:return Dx0;case 36:return Fx0;case 37:return Rx0;case 38:return Lx0;case 39:return Mx0;case 40:return qx0;case 41:return Ux0;case 42:return Bx0;case 43:return Xx0;case 44:return Yx0;case 45:return zx0;case 46:return Kx0;case 47:return Jx0;case 48:return Gx0;case 49:return Wx0;case 50:return Vx0;case 51:return $x0;case 52:return Qx0;case 53:return Hx0;case 54:return Zx0;case 55:return xr0;case 56:return rr0;case 57:return er0;case 58:return tr0;case 59:return nr0;case 60:return ur0;case 61:return ir0;case 62:return fr0;case 63:return cr0;case 64:return sr0;case 65:return ar0;default:return or0}switch(c){case 0:return Z00;case 1:return xx0;case 2:return rx0;case 3:return ex0;case 4:return tx0;case 5:return nx0;case 6:return ux0;case 7:return ix0;case 8:return fx0;case 9:return cx0;case 10:return sx0;case 11:return ax0;case 12:return ox0;case 13:return vx0;case 14:return lx0;case 15:return px0;case 16:return kx0;case 17:return mx0;case 18:return hx0;case 19:return dx0;case 20:return yx0;case 21:return gx0;case 22:return wx0;case 23:return _x0;case 24:return bx0;case 25:return Tx0;case 26:return Ex0;case 27:return Sx0;case 28:return Ax0;case 29:return Px0;case 30:return Ix0;case 31:return Nx0;case 32:return jx0;default:return Cx0}}function P5(x){return d(ar(H00),x)}function zj(x,r){var e=x?x[1]:0;x:{if(typeof r==\"number\"){if(mr===r){var t=R00,u=L00;break x}}else switch(r[0]){case 3:var t=M00,u=q00;break x;case 5:var t=U00,u=B00;break x;case 0:case 12:var t=Y00,u=z00;break x;case 1:case 13:var t=K00,u=J00;break x;case 4:case 8:var t=V00,u=$00;break x;case 6:case 7:case 11:break;default:var t=G00,u=W00;break x}var t=X00,u=P5(Yj(r))}return e?qx(t,qx(Q00,u)):u}function Ub0(x){return Jo>>0)var t=w(x);else switch(e){case 0:var t=1;break;case 1:var t=2;break;case 2:var t=0;break;default:if(W(x,2),fo(y(x))===0){var u=bv(y(x));if(u===0)var t=Tr(y(x))===0&&Tr(y(x))===0&&Tr(y(x))===0?0:w(x);else if(u===1&&Tr(y(x))===0){for(;;){var i=_v(y(x));if(i!==0)break}var t=i===1?0:w(x)}else var t=w(x)}else var t=w(x)}if(2>>0)throw W0([0,Nr,bt0],1);switch(t){case 0:break;case 1:return;default:if(!Xj(aU(x))){vU(x,1);return}}}}function Z5(x,r){var e=r-x[3][2]|0;return[0,EU(x),e]}function Q6(x,r,e){var t=Z5(x,e),u=Z5(x,r);return[0,x[1],u,t]}function A1(x,r){return Z5(x,r[6])}function Pe(x,r){return Z5(x,r[3])}function zr(x,r){return Q6(x,r[6],r[3])}function ZU(x,r){x:if(typeof r!=\"number\"){switch(r[0]){case 2:var e=r[1][1];break;case 3:return r[1][1];case 4:var e=r[1];break;case 5:return r[1];case 8:var e=r[2];break;case 9:return r[1];case 10:return r[1];default:break x}return e}return zr(x,x[2])}function P1(x,r,e){return[0,x[1],x[2],x[3],x[4],x[5],[0,[0,r,e],x[6]],x[7]]}function xB(x,r,e){return P1(x,r,[26,P5(e)])}function $j(x,r,e,t){return P1(x,r,[27,e,t])}function mt(x,r){return P1(x,r,Xc0)}function $1(x,r){var e=r[3],t=[0,EU(x)+1|0,e];return[0,x[1],x[2],t,x[4],x[5],x[6],x[7]]}function qt(x,r,e,t,u){var i=[0,x[1],r,e],c=G2(t),v=u?0:1;return[0,i,[0,v,c,x[7][3][1]>>0)var a=w(t);else switch(v){case 0:var a=2;break;case 1:for(;;){W(t,3);var l=y(t),m=-1>>0)return Tx(Fc0);switch(a){case 0:var b=eB(i,e,t,2,0),N=b[1],j=vt(qx(Rc0,b[2])),I=0<=j?1:0,F=I&&(j<=55295?1:0);if(F)var z=F;else var M=57344<=j?1:0,z=M&&(j<=rk?1:0);var B=z?rB(i,N,j):P1(i,N,28);ps(u,j);var i=B;break;case 1:var K=eB(i,e,t,3,1),n0=K[1],$=vt(qx(Lc0,K[2])),H=rB(i,n0,$);ps(u,$);var i=H;break;case 2:return[0,i,G2(u)];default:_5(t,u)}}}function D2(x,r,e){var t=mt(x,zr(x,r));return xl(r),e(t,r)}function Ev(x,r,e){for(var t=x;;){or(e);var u=y(e),i=-1>>0)var c=w(e);else switch(i){case 0:for(;;){W(e,3);var v=y(e),a=-1>>0){var h=mt(t,zr(t,e));return[0,h,Pe(h,e)]}switch(c){case 0:var T=$1(t,e);_5(e,r);var t=T;break;case 1:var b=t[4]?$j(t,zr(t,e),St0,Et0):t;return[0,b,Pe(b,e)];case 2:if(t[4])return[0,t,Pe(t,e)];ir(r,At0);break;default:_5(e,r)}}}function nl(x,r,e){for(;;){or(e);var t=y(e),u=13>>0)var i=w(e);else switch(u){case 0:var i=0;break;case 1:for(;;){W(e,2);var c=y(e),v=-1>>0)return Tx(Pt0);switch(i){case 0:return[0,x,Pe(x,e)];case 1:var a=Pe(x,e),l=a[2],m=a[1],h=$1(x,e);return[0,h,[0,m,l-w5(e)|0]];default:_5(e,r)}}}function nB(x,r){function e(n0){return W(n0,3),V1(y(n0))===0?2:w(n0)}or(r);var t=y(r),u=vf>>0)var i=w(r);else switch(u){case 0:var i=0;break;case 1:var i=16;break;case 2:var i=15;break;case 3:W(r,15);var i=Ae(y(r))===0?15:w(r);break;case 4:W(r,4);var i=V1(y(r))===0?e(r):w(r);break;case 5:W(r,11);var i=V1(y(r))===0?e(r):w(r);break;case 6:var i=0;break;case 7:var i=5;break;case 8:var i=6;break;case 9:var i=7;break;case 10:var i=8;break;case 11:var i=9;break;case 12:W(r,14);var c=bv(y(r));if(c===0)var i=Tr(y(r))===0&&Tr(y(r))===0&&Tr(y(r))===0?12:w(r);else if(c===1&&Tr(y(r))===0){for(;;){var v=_v(y(r));if(v!==0)break}var i=v===1?13:w(r)}else var i=w(r);break;case 13:var i=10;break;default:W(r,14);var i=Tr(y(r))===0&&Tr(y(r))===0?1:w(r)}if(16>>0)return Tx(wc0);switch(i){case 0:var a=Dx(r);return[0,x,a,l2(r),0];case 1:var l=Dx(r);return[0,x,l,[0,vt(qx(_c0,l))],0];case 2:var m=Dx(r),h=vt(qx(bc0,m));return Hl<=h?[0,x,m,[0,h>>>3|0,48+(h&7)|0],1]:[0,x,m,[0,h],1];case 3:var T=Dx(r);return[0,x,T,[0,vt(qx(Tc0,T))],1];case 4:return[0,x,Ec0,[0,0],0];case 5:return[0,x,Sc0,[0,8],0];case 6:return[0,x,Ac0,[0,12],0];case 7:return[0,x,Pc0,[0,10],0];case 8:return[0,x,Ic0,[0,13],0];case 9:return[0,x,Nc0,[0,9],0];case 10:return[0,x,jc0,[0,11],0];case 11:var b=Dx(r);return[0,x,b,[0,vt(qx(Cc0,b))],1];case 12:var N=Dx(r);return[0,x,N,[0,vt(qx(Oc0,T1(N,1,Nx(N)-1|0)))],0];case 13:var j=Dx(r),I=vt(qx(Dc0,T1(j,2,Nx(j)-3|0))),F=rk>>0)var m=w(i);else switch(l){case 0:var m=3;break;case 1:for(;;){W(i,4);var h=y(i),T=-1>>0)return Tx(It0);switch(m){case 0:var b=Dx(i);if(ir(t,b),br(r,b))return[0,c,Pe(c,i),v];ir(e,b);break;case 1:ir(t,Nt0);var N=nB(c,i),j=N[4],I=N[3],F=N[2],M=N[1],z=j||v;ir(t,F),xq(function(g0){return ps(e,g0)},I);var c=M,v=z;break;case 2:var B=Dx(i);ir(t,B);var K=$1(mt(c,zr(c,i)),i);return ir(e,B),[0,K,Pe(K,i),v];case 3:var n0=Dx(i);ir(t,n0);var $=mt(c,zr(c,i));return ir(e,n0),[0,$,Pe($,i),v];default:var H=i[6],t0=i[3]-H|0,c0=S2(t0*4|0),r0=K6(i[1],H,t0,c0);tj(t,c0,0,r0),tj(e,c0,0,r0)}}}function iB(x,r,e,t){for(var u=x;;){or(t);var i=y(t),c=96>>0)var v=w(t);else switch(c){case 0:var v=0;break;case 1:for(;;){W(t,6);var a=y(t),l=-1>>0)return Tx(jt0);switch(v){case 0:return[0,mt(u,zr(u,t)),1];case 1:return[0,u,1];case 2:return[0,u,0];case 3:lt(e,92);var T=nB(u,t),b=T[3],N=T[1];ir(e,T[2]),xq(function(F){return ps(r,F)},b);var u=N;break;case 4:ir(e,Ct0),ir(r,Ot0);var u=$1(u,t);break;case 5:ir(e,Dx(t)),lt(r,10);var u=$1(u,t);break;default:var j=Dx(t);ir(e,j),ir(r,j)}}}function Yb0(x,r,e){for(var t=x;;){or(e);var u=y(e),i=92>>0)var c=w(e);else switch(i){case 0:var c=0;break;case 1:for(;;){W(e,7);var v=y(e),a=-1>>0)var c=w(e);else switch(m){case 0:var c=2;break;case 1:var c=1;break;default:W(e,1);var c=Ae(y(e))===0?1:w(e)}}if(7>>0)return Tx(Rt0);switch(c){case 0:return[0,P1(t,zr(t,e),st),Lt0];case 1:return[0,$1(P1(t,zr(t,e),st),e),Mt0];case 2:ir(r,Dx(e));break;case 3:var h=Dx(e);return[0,t,T1(h,1,Nx(h)-1|0)];case 4:return[0,t,qt0];case 5:lt(r,91);x:{r:{e:{t:{n:for(;;){or(e);var T=y(e),b=93>>0)var N=w(e);else switch(b){case 0:var N=0;break;case 1:for(;;){W(e,5);var j=y(e),I=-1>>0)break r;switch(N){case 0:break e;case 1:ir(r,Ft0);break;case 2:lt(r,92),lt(r,93);break;case 3:break t;case 4:break n;default:ir(r,Dx(e))}}var z=$1(P1(t,zr(t,e),st),e);break x}lt(r,93);var z=t;break x}var z=t;break x}var z=Tx(Dt0)}var t=z;break;case 6:return[0,$1(P1(t,zr(t,e),st),e),Ut0];default:ir(r,Dx(e))}}}function fB(x){var r=fx(x,\"iexcl\");if(0<=r){if(0>=r)return ec0;var e=fx(x,\"prime\");if(0<=e){if(0>=e)return rc0;var t=fx(x,\"sup1\");if(0<=t){if(0>=t)return xc0;var u=fx(x,\"uarr\");if(0<=u){if(0>=u)return Zf0;var i=fx(x,\"xi\");if(0<=i){if(0>=i)return Hf0;if(!P(x,\"yacute\"))return Qf0;if(!P(x,\"yen\"))return $f0;if(!P(x,\"yuml\"))return Vf0;if(!P(x,\"zeta\"))return Wf0;if(!P(x,\"zwj\"))return Gf0;if(!P(x,\"zwnj\"))return Jf0}else{if(!P(x,\"ucirc\"))return Kf0;if(!P(x,\"ugrave\"))return zf0;if(!P(x,\"uml\"))return Yf0;if(!P(x,\"upsih\"))return Xf0;if(!P(x,\"upsilon\"))return Bf0;if(!P(x,\"uuml\"))return Uf0;if(!P(x,\"weierp\"))return qf0}}else{var c=fx(x,\"thetasym\");if(0<=c){if(0>=c)return Mf0;if(!P(x,\"thinsp\"))return Lf0;if(!P(x,\"thorn\"))return Rf0;if(!P(x,\"tilde\"))return Ff0;if(!P(x,\"times\"))return Df0;if(!P(x,\"trade\"))return Of0;if(!P(x,\"uArr\"))return Cf0;if(!P(x,\"uacute\"))return jf0}else{if(!P(x,\"sup2\"))return Nf0;if(!P(x,\"sup3\"))return If0;if(!P(x,\"supe\"))return Pf0;if(!P(x,\"szlig\"))return Af0;if(!P(x,\"tau\"))return Sf0;if(!P(x,\"there4\"))return Ef0;if(!P(x,\"theta\"))return Tf0}}}else{var v=fx(x,\"rlm\");if(0<=v){if(0>=v)return bf0;var a=fx(x,\"sigma\");if(0<=a){if(0>=a)return _f0;if(!P(x,\"sigmaf\"))return wf0;if(!P(x,\"sim\"))return gf0;if(!P(x,\"spades\"))return yf0;if(!P(x,\"sub\"))return df0;if(!P(x,\"sube\"))return hf0;if(!P(x,\"sum\"))return mf0;if(!P(x,\"sup\"))return kf0}else{if(!P(x,\"rsaquo\"))return pf0;if(!P(x,\"rsquo\"))return lf0;if(!P(x,\"sbquo\"))return vf0;if(!P(x,\"scaron\"))return of0;if(!P(x,\"sdot\"))return af0;if(!P(x,\"sect\"))return sf0;if(!P(x,\"shy\"))return cf0}}else{var l=fx(x,\"raquo\");if(0<=l){if(0>=l)return ff0;if(!P(x,\"rarr\"))return if0;if(!P(x,\"rceil\"))return uf0;if(!P(x,\"rdquo\"))return nf0;if(!P(x,\"real\"))return tf0;if(!P(x,\"reg\"))return ef0;if(!P(x,\"rfloor\"))return rf0;if(!P(x,\"rho\"))return xf0}else{if(!P(x,\"prod\"))return Zi0;if(!P(x,\"prop\"))return Hi0;if(!P(x,\"psi\"))return Qi0;if(!P(x,\"quot\"))return $i0;if(!P(x,\"rArr\"))return Vi0;if(!P(x,\"radic\"))return Wi0;if(!P(x,\"rang\"))return Gi0}}}}else{var m=fx(x,\"ndash\");if(0<=m){if(0>=m)return Ji0;var h=fx(x,\"or\");if(0<=h){if(0>=h)return Ki0;var T=fx(x,\"part\");if(0<=T){if(0>=T)return zi0;if(!P(x,\"permil\"))return Yi0;if(!P(x,\"perp\"))return Xi0;if(!P(x,\"phi\"))return Bi0;if(!P(x,\"pi\"))return Ui0;if(!P(x,\"piv\"))return qi0;if(!P(x,\"plusmn\"))return Mi0;if(!P(x,\"pound\"))return Li0}else{if(!P(x,\"ordf\"))return Ri0;if(!P(x,\"ordm\"))return Fi0;if(!P(x,\"oslash\"))return Di0;if(!P(x,\"otilde\"))return Oi0;if(!P(x,\"otimes\"))return Ci0;if(!P(x,\"ouml\"))return ji0;if(!P(x,\"para\"))return Ni0}}else{var b=fx(x,\"oacute\");if(0<=b){if(0>=b)return Ii0;if(!P(x,\"ocirc\"))return Pi0;if(!P(x,\"oelig\"))return Ai0;if(!P(x,\"ograve\"))return Si0;if(!P(x,\"oline\"))return Ei0;if(!P(x,\"omega\"))return Ti0;if(!P(x,\"omicron\"))return bi0;if(!P(x,\"oplus\"))return _i0}else{if(!P(x,\"ne\"))return wi0;if(!P(x,\"ni\"))return gi0;if(!P(x,\"not\"))return yi0;if(!P(x,\"notin\"))return di0;if(!P(x,\"nsub\"))return hi0;if(!P(x,\"ntilde\"))return mi0;if(!P(x,\"nu\"))return ki0}}}else{var N=fx(x,\"le\");if(0<=N){if(0>=N)return pi0;var j=fx(x,\"macr\");if(0<=j){if(0>=j)return li0;if(!P(x,\"mdash\"))return vi0;if(!P(x,\"micro\"))return oi0;if(!P(x,\"middot\"))return ai0;if(!P(x,eR))return si0;if(!P(x,\"mu\"))return ci0;if(!P(x,\"nabla\"))return fi0;if(!P(x,\"nbsp\"))return ii0}else{if(!P(x,\"lfloor\"))return ui0;if(!P(x,\"lowast\"))return ni0;if(!P(x,\"loz\"))return ti0;if(!P(x,\"lrm\"))return ei0;if(!P(x,\"lsaquo\"))return ri0;if(!P(x,\"lsquo\"))return xi0;if(!P(x,\"lt\"))return Zu0}}else{var I=fx(x,\"kappa\");if(0<=I){if(0>=I)return Hu0;if(!P(x,\"lArr\"))return Qu0;if(!P(x,\"lambda\"))return $u0;if(!P(x,\"lang\"))return Vu0;if(!P(x,\"laquo\"))return Wu0;if(!P(x,\"larr\"))return Gu0;if(!P(x,\"lceil\"))return Ju0;if(!P(x,\"ldquo\"))return Ku0}else{if(!P(x,\"igrave\"))return zu0;if(!P(x,\"image\"))return Yu0;if(!P(x,\"infin\"))return Xu0;if(!P(x,\"iota\"))return Bu0;if(!P(x,\"iquest\"))return Uu0;if(!P(x,\"isin\"))return qu0;if(!P(x,\"iuml\"))return Mu0}}}}}else{var F=fx(x,\"aelig\");if(0<=F){if(0>=F)return Lu0;var M=fx(x,\"delta\");if(0<=M){if(0>=M)return Ru0;var z=fx(x,\"fnof\");if(0<=z){if(0>=z)return Fu0;var B=fx(x,\"gt\");if(0<=B){if(0>=B)return Du0;if(!P(x,\"hArr\"))return Ou0;if(!P(x,\"harr\"))return Cu0;if(!P(x,\"hearts\"))return ju0;if(!P(x,\"hellip\"))return Nu0;if(!P(x,\"iacute\"))return Iu0;if(!P(x,\"icirc\"))return Pu0}else{if(!P(x,\"forall\"))return Au0;if(!P(x,\"frac12\"))return Su0;if(!P(x,\"frac14\"))return Eu0;if(!P(x,\"frac34\"))return Tu0;if(!P(x,\"frasl\"))return bu0;if(!P(x,\"gamma\"))return _u0;if(!P(x,\"ge\"))return wu0}}else{var K=fx(x,\"ensp\");if(0<=K){if(0>=K)return gu0;if(!P(x,\"epsilon\"))return yu0;if(!P(x,\"equiv\"))return du0;if(!P(x,\"eta\"))return hu0;if(!P(x,\"eth\"))return mu0;if(!P(x,\"euml\"))return ku0;if(!P(x,\"euro\"))return pu0;if(!P(x,\"exist\"))return lu0}else{if(!P(x,\"diams\"))return vu0;if(!P(x,\"divide\"))return ou0;if(!P(x,\"eacute\"))return au0;if(!P(x,\"ecirc\"))return su0;if(!P(x,\"egrave\"))return cu0;if(!P(x,be))return fu0;if(!P(x,\"emsp\"))return iu0}}}else{var n0=fx(x,\"cap\");if(0<=n0){if(0>=n0)return uu0;var $=fx(x,\"copy\");if(0<=$){if(0>=$)return nu0;if(!P(x,\"crarr\"))return tu0;if(!P(x,\"cup\"))return eu0;if(!P(x,\"curren\"))return ru0;if(!P(x,\"dArr\"))return xu0;if(!P(x,\"dagger\"))return Z70;if(!P(x,\"darr\"))return H70;if(!P(x,\"deg\"))return Q70}else{if(!P(x,\"ccedil\"))return $70;if(!P(x,\"cedil\"))return V70;if(!P(x,\"cent\"))return W70;if(!P(x,\"chi\"))return G70;if(!P(x,\"circ\"))return J70;if(!P(x,\"clubs\"))return K70;if(!P(x,\"cong\"))return z70}}else{var H=fx(x,\"aring\");if(0<=H){if(0>=H)return Y70;if(!P(x,\"asymp\"))return X70;if(!P(x,\"atilde\"))return B70;if(!P(x,\"auml\"))return U70;if(!P(x,\"bdquo\"))return q70;if(!P(x,\"beta\"))return M70;if(!P(x,\"brvbar\"))return L70;if(!P(x,\"bull\"))return R70}else{if(!P(x,\"agrave\"))return F70;if(!P(x,\"alefsym\"))return D70;if(!P(x,\"alpha\"))return O70;if(!P(x,\"amp\"))return C70;if(!P(x,\"and\"))return j70;if(!P(x,\"ang\"))return N70;if(!P(x,\"apos\"))return I70}}}}else{var t0=fx(x,\"Nu\");if(0<=t0){if(0>=t0)return P70;var c0=fx(x,\"Sigma\");if(0<=c0){if(0>=c0)return A70;var r0=fx(x,\"Uuml\");if(0<=r0){if(0>=r0)return S70;if(!P(x,\"Xi\"))return E70;if(!P(x,\"Yacute\"))return T70;if(!P(x,\"Yuml\"))return b70;if(!P(x,\"Zeta\"))return _70;if(!P(x,\"aacute\"))return w70;if(!P(x,\"acirc\"))return g70;if(!P(x,\"acute\"))return y70}else{if(!P(x,\"THORN\"))return d70;if(!P(x,\"Tau\"))return h70;if(!P(x,\"Theta\"))return m70;if(!P(x,\"Uacute\"))return k70;if(!P(x,\"Ucirc\"))return p70;if(!P(x,\"Ugrave\"))return l70;if(!P(x,\"Upsilon\"))return v70}}else{var v0=fx(x,\"Otilde\");if(0<=v0){if(0>=v0)return o70;if(!P(x,\"Ouml\"))return a70;if(!P(x,\"Phi\"))return s70;if(!P(x,\"Pi\"))return c70;if(!P(x,\"Prime\"))return f70;if(!P(x,\"Psi\"))return i70;if(!P(x,\"Rho\"))return u70;if(!P(x,\"Scaron\"))return n70}else{if(!P(x,\"OElig\"))return t70;if(!P(x,\"Oacute\"))return e70;if(!P(x,\"Ocirc\"))return r70;if(!P(x,\"Ograve\"))return x70;if(!P(x,\"Omega\"))return Zn0;if(!P(x,\"Omicron\"))return Hn0;if(!P(x,\"Oslash\"))return Qn0}}}else{var a0=fx(x,\"Eacute\");if(0<=a0){if(0>=a0)return $n0;var g0=fx(x,\"Icirc\");if(0<=g0){if(0>=g0)return Vn0;if(!P(x,\"Igrave\"))return Wn0;if(!P(x,\"Iota\"))return Gn0;if(!P(x,\"Iuml\"))return Jn0;if(!P(x,\"Kappa\"))return Kn0;if(!P(x,\"Lambda\"))return zn0;if(!P(x,\"Mu\"))return Yn0;if(!P(x,\"Ntilde\"))return Xn0}else{if(!P(x,\"Ecirc\"))return Bn0;if(!P(x,\"Egrave\"))return Un0;if(!P(x,\"Epsilon\"))return qn0;if(!P(x,\"Eta\"))return Mn0;if(!P(x,\"Euml\"))return Ln0;if(!P(x,\"Gamma\"))return Rn0;if(!P(x,\"Iacute\"))return Fn0}}else{var i0=fx(x,\"Atilde\");if(0<=i0){if(0>=i0)return Dn0;if(!P(x,\"Auml\"))return On0;if(!P(x,\"Beta\"))return Cn0;if(!P(x,\"Ccedil\"))return jn0;if(!P(x,\"Chi\"))return Nn0;if(!P(x,\"Dagger\"))return In0;if(!P(x,\"Delta\"))return Pn0;if(!P(x,\"ETH\"))return An0}else{if(!P(x,\"'int'\"))return Sn0;if(!P(x,\"AElig\"))return En0;if(!P(x,\"Aacute\"))return Tn0;if(!P(x,\"Acirc\"))return bn0;if(!P(x,\"Agrave\"))return _n0;if(!P(x,\"Alpha\"))return wn0;if(!P(x,\"Aring\"))return gn0}}}}}return 0}function cB(x,r,e,t){for(var u=x;;){var i=function(v0){for(;;)if(W(v0,8),Jj(y(v0))!==0)return w(v0)};or(t);var c=y(t),v=Ba>>0)var a=w(t);else switch(v){case 0:var a=3;break;case 1:var a=i(t);break;case 2:var a=4;break;case 3:W(t,4);var a=Ae(y(t))===0?4:w(t);break;case 4:W(t,8);var l=QU(y(t));if(l===0){var m=NU(y(t));if(m===0){for(;;){var h=jU(y(t));if(h!==0)break}var a=h===1?6:w(t)}else if(m===1&&Tr(y(t))===0){for(;;){var T=WU(y(t));if(T!==0)break}var a=T===1?5:w(t)}else var a=w(t)}else if(l===1&&cr(y(t))===0){var b=Mt(y(t));if(b===0){var N=Mt(y(t));if(N===0){var j=Mt(y(t));if(j===0){var I=Mt(y(t));if(I===0){var F=Mt(y(t));if(F===0)var M=Mt(y(t)),a=M===0?zU(y(t))===0?7:w(t):M===1?7:w(t);else var a=F===1?7:w(t)}else var a=I===1?7:w(t)}else var a=j===1?7:w(t)}else var a=N===1?7:w(t)}else var a=b===1?7:w(t)}else var a=w(t);break;case 5:var a=0;break;case 6:W(t,1);var a=Jj(y(t))===0?i(t):w(t);break;default:W(t,2);var a=Jj(y(t))===0?i(t):w(t)}if(8>>0)return Tx(Bt0);switch(a){case 0:return xl(t),u;case 1:return $j(u,zr(u,t),Yt0,Xt0);case 2:return $j(u,zr(u,t),Kt0,zt0);case 3:return mt(u,zr(u,t));case 4:var z=Dx(t);ir(e,z),ir(r,z);var u=$1(u,t);break;case 5:var B=Dx(t),K=T1(B,3,Nx(B)-4|0);ir(e,B),ps(r,vt(qx(Jt0,K)));break;case 6:var n0=Dx(t),$=T1(n0,2,Nx(n0)-3|0);ir(e,n0),ps(r,vt($));break;case 7:var H=Dx(t),t0=T1(H,1,Nx(H)-2|0);ir(e,H);var c0=fB(t0);c0?ps(r,c0[1]):ir(r,qx(Wt0,qx(t0,Gt0)));break;default:var r0=Dx(t);ir(e,r0),ir(r,r0)}}}function H6(x){return function(r){var e=0,t=r;x:for(;;){var u=x(t,t[2]);switch(u[0]){case 0:break x;case 1:var i=u[2],c=u[1],e=[0,i,e],t=[0,c[1],c[2],c[3],c[4],c[5],c[6],i[1]];break;default:var t=u[1]}}var v=u[2],a=u[1],l=ZU(a,v),m=e===0?0:ix(e),h=a[6];if(h===0)return[0,[0,a[1],a[2],a[3],a[4],a[5],a[6],l],[0,v,l,0,m]];var T=[0,v,l,ix(h),m];return[0,[0,a[1],a[2],a[3],a[4],a[5],bU,l],T]}}var zb0=H6(function(x,r){or(r);var e=y(r),t=Jo>>0)var u=w(r);else switch(t){case 0:var u=0;break;case 1:var u=6;break;case 2:if(W(r,2),ms(y(r))===0){for(;W(r,2),ms(y(r))===0;);var u=w(r)}else var u=w(r);break;case 3:var u=1;break;case 4:W(r,1);var u=Ae(y(r))===0?1:w(r);break;default:W(r,5);var i=V5(y(r)),u=i===0?4:i===1?3:w(r)}if(6>>0)return Tx(tc0);switch(u){case 0:return[0,x,mr];case 1:return[2,$1(x,r)];case 2:return[2,x];case 3:var c=A1(x,r),v=$r(Br),a=nl(x,v,r),l=a[1];return[1,l,qt(l,c,a[2],v,0)];case 4:var m=A1(x,r),h=$r(Br),T=Ev(x,h,r),b=T[1];return[1,b,qt(b,m,T[2],h,1)];case 5:var N=A1(x,r),j=$r(Br),I=Yb0(x,j,r),F=I[1],M=I[2],z=Pe(F,r),B=[0,F[1],N,z];return[0,F,[5,B,G2(j),M]];default:var K=mt(x,zr(x,r));return[0,K,[7,Dx(r)]]}}),Kb0=H6(function(x,r){or(r);var e=Xb0(y(r));if(14>>0)var t=w(r);else switch(e){case 0:var t=0;break;case 1:var t=14;break;case 2:if(W(r,2),ms(y(r))===0){for(;W(r,2),ms(y(r))===0;);var t=w(r)}else var t=w(r);break;case 3:var t=1;break;case 4:W(r,1);var t=Ae(y(r))===0?1:w(r);break;case 5:var t=12;break;case 6:var t=13;break;case 7:var t=10;break;case 8:W(r,6);var u=V5(y(r)),t=u===0?4:u===1?3:w(r);break;case 9:var t=9;break;case 10:var t=5;break;case 11:var t=11;break;case 12:var t=7;break;case 13:if(W(r,14),fo(y(r))===0){var i=bv(y(r));if(i===0)var t=Tr(y(r))===0&&Tr(y(r))===0&&Tr(y(r))===0?13:w(r);else if(i===1&&Tr(y(r))===0){for(;;){var c=_v(y(r));if(c!==0)break}var t=c===1?13:w(r)}else var t=w(r)}else var t=w(r);break;default:var t=8}if(14>>0)return Tx(yn0);switch(t){case 0:return[0,x,mr];case 1:return[2,$1(x,r)];case 2:return[2,x];case 3:var v=A1(x,r),a=$r(Br),l=nl(x,a,r),m=l[1];return[1,m,qt(m,v,l[2],a,0)];case 4:var h=A1(x,r),T=$r(Br),b=Ev(x,T,r),N=b[1];return[1,N,qt(N,h,b[2],T,1)];case 5:return[0,x,99];case 6:return[0,x,Je];case 7:return[0,x,y2];case 8:return[0,x,0];case 9:return[0,x,87];case 10:return[0,x,10];case 11:return[0,x,83];case 12:var j=Dx(r),I=A1(x,r),F=$r(Br),M=$r(Br);ir(M,j);for(var z=br(j,\"'\"),B=x;;){or(r);var K=y(r),n0=39>>0)var $=w(r);else switch(n0){case 0:var $=2;break;case 1:for(;;){W(r,7);var H=y(r),t0=-1>>0)var C0=Tx(Vt0);else switch($){case 0:if(!z){lt(M,39),lt(F,39);continue}var C0=B;break;case 1:if(z){lt(M,34),lt(F,34);continue}var C0=B;break;case 2:var C0=mt(B,zr(B,r));break;case 3:var D0=Dx(r);ir(M,D0),ir(F,D0);var B=$1(B,r);continue;case 4:var I0=Dx(r),j0=T1(I0,3,Nx(I0)-4|0);ir(M,I0),ps(F,vt(qx($t0,j0)));continue;case 5:var y0=Dx(r),Y0=T1(y0,2,Nx(y0)-3|0);ir(M,y0),ps(F,vt(Y0));continue;case 6:var L=Dx(r),N0=T1(L,1,Nx(L)-2|0);ir(M,L);var S0=fB(N0);S0?ps(F,S0[1]):ir(F,qx(Ht0,qx(N0,Qt0)));continue;default:var K0=Dx(r);ir(M,K0),ir(F,K0);continue}var A0=Pe(C0,r);ir(M,j);var $0=G2(F),ex=G2(M);return[0,C0,[10,[0,C0[1],I,A0],$0,ex]]}case 13:for(var xx=r[6];;){or(r);var tx=y(r),z0=s2>>0)var px=w(r);else switch(z0){case 0:var px=1;break;case 1:var px=2;break;case 2:var px=0;break;default:if(W(r,2),fo(y(r))===0){var sx=bv(y(r));if(sx===0)var px=Tr(y(r))===0&&Tr(y(r))===0&&Tr(y(r))===0?0:w(r);else if(sx===1&&Tr(y(r))===0){for(;;){var Q=_v(y(r));if(Q!==0)break}var px=Q===1?0:w(r)}else var px=w(r)}else var px=w(r)}if(2>>0)throw W0([0,Nr,Tt0],1);switch(px){case 0:continue;case 1:break;default:if(Xj(aU(r)))continue;vU(r,1)}var b0=r[3];Rj(r,xx);var U=l2(r),h0=Q6(x,xx,b0);return[0,x,[8,G6(U),h0]]}default:return[0,x,[7,Dx(r)]]}}),Jb0=H6(function(x,r){or(r);var e=y(r),t=-1>>0)var u=w(r);else switch(t){case 0:var u=5;break;case 1:if(W(r,1),ms(y(r))===0){for(;W(r,1),ms(y(r))===0;);var u=w(r)}else var u=w(r);break;case 2:var u=0;break;case 3:W(r,0);var u=Ae(y(r))===0?0:w(r);break;case 4:W(r,5);var i=V5(y(r)),u=i===0?3:i===1?2:w(r);break;default:var u=4}if(5>>0)return Tx(kn0);switch(u){case 0:return[2,$1(x,r)];case 1:return[2,x];case 2:var c=A1(x,r),v=$r(Br),a=nl(x,v,r),l=a[1];return[1,l,qt(l,c,a[2],v,0)];case 3:var m=A1(x,r),h=$r(Br),T=Ev(x,h,r),b=T[1];return[1,b,qt(b,m,T[2],h,1)];case 4:var N=A1(x,r),j=$r(Br),I=$r(Br),F=iB(x,j,I,r),M=F[1],z=F[2],B=Pe(M,r),K=[0,M[1],N,B],n0=G2(I);return[0,M,[3,[0,K,G2(j),n0,0,z]]];default:var $=mt(x,zr(x,r));return[0,$,[3,[0,zr($,r),hn0,mn0,0,1]]]}}),Gb0=H6(function(x,r){function e(S){for(;;)if(W(S,29),cr(y(S))!==0)return w(S)}function t(S){W(S,29);var G=KU(y(S));if(3>>0)return w(S);switch(G){case 0:return e(S);case 1:var rx=to(y(S));if(rx===0)for(;;){W(S,24);var yx=rl(y(S));if(2>>0)return w(S);switch(yx){case 0:return u(S);case 1:break;default:return i(S)}}else{if(rx!==1)return w(S);for(;;){W(S,24);var Ex=ds(y(S));if(3>>0)return w(S);switch(Ex){case 0:return u(S);case 1:break;case 2:return c(S);default:return i(S)}}}break;case 2:for(;;){W(S,24);var nx=rl(y(S));if(2>>0)return w(S);switch(nx){case 0:return v(S);case 1:break;default:return a(S)}}break;default:for(;;){W(S,24);var p0=ds(y(S));if(3>>0)return w(S);switch(p0){case 0:return v(S);case 1:break;case 2:return c(S);default:return a(S)}}}}function u(S){for(;;)if(W(S,23),cr(y(S))!==0)return w(S)}function i(S){W(S,22);var G=X2(y(S));if(G!==0)return G===1?u(S):w(S);for(;;)if(W(S,21),cr(y(S))!==0)return w(S)}function c(S){for(;;){if(vr(y(S))!==0)return w(S);x:for(;;){W(S,24);var G=ds(y(S));if(3>>0)return w(S);switch(G){case 0:return u(S);case 1:break;case 2:break x;default:return i(S)}}}}function v(S){for(;;)if(W(S,23),cr(y(S))!==0)return w(S)}function a(S){W(S,22);var G=X2(y(S));if(G!==0)return G===1?v(S):w(S);for(;;)if(W(S,21),cr(y(S))!==0)return w(S)}function l(S){W(S,27);var G=X2(y(S));if(G!==0)return G===1?e(S):w(S);for(;;)if(W(S,25),cr(y(S))!==0)return w(S)}function m(S){return W(S,3),$U(y(S))===0?3:w(S)}function h(S){return J5(y(S))===0&&X5(y(S))===0&&GU(y(S))===0&&LU(y(S))===0&&MU(y(S))===0&&B5(y(S))===0&&V6(y(S))===0&&J5(y(S))===0&&fo(y(S))===0&&Vj(y(S))===0&&Tv(y(S))===0?3:w(S)}function T(S){W(S,30);var G=FU(y(S));if(3>>0)return w(S);switch(G){case 0:return e(S);case 1:x:for(;;){W(S,30);var rx=no(y(S));if(4>>0)return w(S);switch(rx){case 0:return e(S);case 1:break;case 2:return t(S);case 3:break x;default:return l(S)}}for(;;){if(vr(y(S))!==0)return w(S);x:for(;;){W(S,30);var yx=no(y(S));if(4>>0)return w(S);switch(yx){case 0:return e(S);case 1:break;case 2:return t(S);case 3:break x;default:return l(S)}}}break;case 2:return t(S);default:return l(S)}}function b(S){for(;;)if(W(S,15),cr(y(S))!==0)return w(S)}function N(S){W(S,30);var G=rl(y(S));if(2>>0)return w(S);switch(G){case 0:return e(S);case 1:x:for(;;){W(S,30);var rx=ds(y(S));if(3>>0)return w(S);switch(rx){case 0:return e(S);case 1:break;case 2:break x;default:return l(S)}}for(;;){if(vr(y(S))!==0)return w(S);x:for(;;){W(S,30);var yx=ds(y(S));if(3>>0)return w(S);switch(yx){case 0:return e(S);case 1:break;case 2:break x;default:return l(S)}}}break;default:return l(S)}}function j(S){W(S,15);var G=X2(y(S));if(G!==0)return G===1?b(S):w(S);for(;;)if(W(S,15),cr(y(S))!==0)return w(S)}function I(S){W(S,28);var G=X2(y(S));if(G!==0)return G===1?e(S):w(S);for(;;)if(W(S,26),cr(y(S))!==0)return w(S)}function F(S){for(;;)if(W(S,9),cr(y(S))!==0)return w(S)}function M(S){for(;;)if(W(S,9),cr(y(S))!==0)return w(S)}function z(S){for(;;)if(W(S,13),cr(y(S))!==0)return w(S)}function B(S){for(;;)if(W(S,13),cr(y(S))!==0)return w(S)}function K(S){for(;;)if(W(S,19),cr(y(S))!==0)return w(S)}function n0(S){for(;;)if(W(S,19),cr(y(S))!==0)return w(S)}function $(S){for(;;){if(vr(y(S))!==0)return w(S);x:for(;;){W(S,30);var G=YU(y(S));if(4>>0)return w(S);switch(G){case 0:return e(S);case 1:return N(S);case 2:break;case 3:break x;default:return I(S)}}}}or(r);var H=function(S){var G=Bb0(y(S));if(31>>0)return w(S);switch(G){case 0:return 66;case 1:return 67;case 2:if(W(S,1),ms(y(S))!==0)return w(S);for(;;)if(W(S,1),ms(y(S))!==0)return w(S);break;case 3:return 0;case 4:return W(S,0),Ae(y(S))===0?0:w(S);case 5:return 6;case 6:return 65;case 7:if(W(S,67),V6(y(S))!==0)return w(S);var rx=y(S),yx=sn>>0)return w(S);switch(bx){case 0:return e(S);case 1:break;case 2:return t(S);case 3:break x;default:return l(S)}}for(;;){if(vr(y(S))!==0)return w(S);x:for(;;){W(S,30);var B0=no(y(S));if(4>>0)return w(S);switch(B0){case 0:return e(S);case 1:break;case 2:return t(S);case 3:break x;default:return l(S)}}}break;case 16:W(S,67);var Wx=V5(y(S));if(Wx!==0)return Wx===1?5:w(S);W(S,2);var Yx=F5(y(S));if(2>>0)return w(S);switch(Yx){case 0:for(;;){var ax=F5(y(S));if(2>>0)return w(S);switch(ax){case 0:break;case 1:return m(S);default:return h(S)}}break;case 1:return m(S);default:return h(S)}break;case 17:W(S,30);var Qx=UU(y(S));if(8>>0)return w(S);switch(Qx){case 0:return e(S);case 1:return T(S);case 2:x:for(;;){W(S,16);var kx=JU(y(S));if(4>>0)return w(S);switch(kx){case 0:return b(S);case 1:return N(S);case 2:break;case 3:break x;default:return j(S)}}for(;;){W(S,15);var tr=D5(y(S));if(3>>0)return w(S);switch(tr){case 0:return b(S);case 1:return N(S);case 2:break;default:return j(S)}}break;case 3:for(;;){W(S,30);var sr=D5(y(S));if(3>>0)return w(S);switch(sr){case 0:return e(S);case 1:return N(S);case 2:break;default:return I(S)}}break;case 4:W(S,29);var Mr=qU(y(S));if(Mr===0)return e(S);if(Mr!==1)return w(S);x:{r:for(;;){W(S,10);var a2=$5(y(S));if(3>>0)return w(S);switch(a2){case 0:return F(S);case 1:break;case 2:break x;default:break r}}W(S,8);var _2=X2(y(S));if(_2!==0)return _2===1?F(S):w(S);for(;;)if(W(S,7),cr(y(S))!==0)return w(S)}x:for(;;){if(hs(y(S))!==0)return w(S);r:for(;;){W(S,10);var i2=$5(y(S));if(3>>0)return w(S);switch(i2){case 0:return M(S);case 1:break;case 2:break r;default:break x}}}W(S,8);var Q2=X2(y(S));if(Q2!==0)return Q2===1?M(S):w(S);for(;;)if(W(S,7),cr(y(S))!==0)return w(S);break;case 5:return t(S);case 6:W(S,29);var jx=BU(y(S));if(jx===0)return e(S);if(jx!==1)return w(S);x:{r:for(;;){W(S,14);var _=W5(y(S));if(3<_>>>0)return w(S);switch(_){case 0:return z(S);case 1:break;case 2:break x;default:break r}}W(S,12);var V=X2(y(S));if(V!==0)return V===1?z(S):w(S);for(;;)if(W(S,11),cr(y(S))!==0)return w(S)}x:for(;;){if(V1(y(S))!==0)return w(S);r:for(;;){W(S,14);var lx=W5(y(S));if(3>>0)return w(S);switch(lx){case 0:return B(S);case 1:break;case 2:break r;default:break x}}}W(S,12);var U0=X2(y(S));if(U0!==0)return U0===1?B(S):w(S);for(;;)if(W(S,11),cr(y(S))!==0)return w(S);break;case 7:W(S,29);var ox=CU(y(S));if(ox===0)return e(S);if(ox!==1)return w(S);x:{r:for(;;){W(S,20);var wx=Q5(y(S));if(3>>0)return w(S);switch(wx){case 0:return K(S);case 1:break;case 2:break x;default:break r}}W(S,18);var Cr=X2(y(S));if(Cr!==0)return Cr===1?K(S):w(S);for(;;)if(W(S,17),cr(y(S))!==0)return w(S)}x:for(;;){if(Tr(y(S))!==0)return w(S);r:for(;;){W(S,20);var Hx=Q5(y(S));if(3>>0)return w(S);switch(Hx){case 0:return n0(S);case 1:break;case 2:break r;default:break x}}}W(S,18);var Zr=X2(y(S));if(Zr!==0)return Zr===1?n0(S):w(S);for(;;)if(W(S,17),cr(y(S))!==0)return w(S);break;default:return I(S)}break;case 18:W(S,30);var dr=L5(y(S));if(5>>0)return w(S);switch(dr){case 0:return e(S);case 1:return T(S);case 2:for(;;){W(S,30);var Or=L5(y(S));if(5>>0)return w(S);switch(Or){case 0:return e(S);case 1:return T(S);case 2:break;case 3:return t(S);case 4:return $(S);default:return I(S)}}break;case 3:return t(S);case 4:return $(S);default:return I(S)}break;case 19:return 44;case 20:return 42;case 21:return 49;case 22:W(S,51);var x2=y(S),ux=61>>0)return Tx(on0);var t0=H;if(34>t0)switch(t0){case 0:return[2,$1(x,r)];case 1:return[2,x];case 2:var c0=A1(x,r),r0=$r(Br),v0=Ev(x,r0,r),a0=v0[1];return[1,a0,qt(a0,c0,v0[2],r0,1)];case 3:var g0=Dx(r);if(!x[5]){var i0=A1(x,r),s0=$r(Br);ir(s0,g0);var d0=Ev(x,s0,r),w0=d0[1];return[1,w0,qt(w0,i0,d0[2],s0,1)]}var M0=x[4]?xB(x,zr(x,r),g0):x,C0=A5(1,M0),D0=w5(r);return br(J6(r,D0-1|0,1),Mo)&&P(J6(r,D0-2|0,1),Mo)?[0,C0,87]:[2,C0];case 4:if(x[4])return[2,A5(0,x)];xl(r),or(r);var I0=DU(y(r))===0?0:w(r);return I0===0?[0,x,K2]:Tx(vn0);case 5:var j0=A1(x,r),y0=$r(Br),Y0=nl(x,y0,r),L=Y0[1];return[1,L,qt(L,j0,Y0[2],y0,0)];case 6:var N0=Dx(r),S0=A1(x,r),K0=$r(Br),A0=$r(Br);ir(A0,N0);var $0=uB(x,N0,K0,A0,0,r),ex=$0[1],xx=$0[3],tx=[0,ex[1],S0,$0[2]],z0=G2(A0);return[0,ex,[2,[0,tx,G2(K0),z0,xx]]];case 7:return D2(x,r,function(S,G){or(G);x:if(Se(y(G))===0&&q5(y(G))===0&&hs(y(G))===0){r:for(;;){var rx=C5(y(G));if(2>>0){var nx=w(G);break x}switch(rx){case 0:break;case 1:break r;default:var nx=0;break x}}for(;;){r:{if(hs(y(G))===0){e:for(;;){var yx=C5(y(G));if(2>>0){var Ex=w(G);break r}switch(yx){case 0:break;case 1:break e;default:var Ex=0;break r}}continue}var Ex=w(G)}var nx=Ex;break}}else var nx=w(G);return nx===0?[0,S,Bt(0,l2(G))]:Tx(an0)});case 8:return[0,x,Bt(0,l2(r))];case 9:return D2(x,r,function(S,G){if(or(G),Se(y(G))===0&&q5(y(G))===0&&hs(y(G))===0){for(;;){W(G,0);var rx=j5(y(G));if(rx!==0)break}if(rx===1)for(;;){if(hs(y(G))===0){for(;;){W(G,0);var yx=j5(y(G));if(yx!==0)break}if(yx===1)continue;var Ex=w(G)}else var Ex=w(G);var nx=Ex;break}else var nx=w(G)}else var nx=w(G);return nx===0?[0,S,Ut(0,l2(G))]:Tx(sn0)});case 10:return[0,x,Ut(0,l2(r))];case 11:return D2(x,r,function(S,G){or(G);x:if(Se(y(G))===0&&z5(y(G))===0&&V1(y(G))===0){r:for(;;){var rx=M5(y(G));if(2>>0){var nx=w(G);break x}switch(rx){case 0:break;case 1:break r;default:var nx=0;break x}}for(;;){r:{if(V1(y(G))===0){e:for(;;){var yx=M5(y(G));if(2>>0){var Ex=w(G);break r}switch(yx){case 0:break;case 1:break e;default:var Ex=0;break r}}continue}var Ex=w(G)}var nx=Ex;break}}else var nx=w(G);return nx===0?[0,S,Bt(1,l2(G))]:Tx(cn0)});case 12:return[0,x,Bt(1,l2(r))];case 13:return D2(x,r,function(S,G){if(or(G),Se(y(G))===0&&z5(y(G))===0&&V1(y(G))===0){for(;;){W(G,0);var rx=R5(y(G));if(rx!==0)break}if(rx===1)for(;;){if(V1(y(G))===0){for(;;){W(G,0);var yx=R5(y(G));if(yx!==0)break}if(yx===1)continue;var Ex=w(G)}else var Ex=w(G);var nx=Ex;break}else var nx=w(G)}else var nx=w(G);return nx===0?[0,S,Ut(3,l2(G))]:Tx(fn0)});case 14:return[0,x,Ut(3,l2(r))];case 15:return D2(x,r,function(S,G){if(or(G),Se(y(G))===0&&V1(y(G))===0){for(;;)if(W(G,0),V1(y(G))!==0){var rx=w(G);break}}else var rx=w(G);return rx===0?[0,S,Ut(1,l2(G))]:Tx(in0)});case 16:return[0,x,Ut(1,l2(r))];case 17:return D2(x,r,function(S,G){or(G);x:if(Se(y(G))===0&&I5(y(G))===0&&Tr(y(G))===0){r:for(;;){var rx=O5(y(G));if(2>>0){var nx=w(G);break x}switch(rx){case 0:break;case 1:break r;default:var nx=0;break x}}for(;;){r:{if(Tr(y(G))===0){e:for(;;){var yx=O5(y(G));if(2>>0){var Ex=w(G);break r}switch(yx){case 0:break;case 1:break e;default:var Ex=0;break r}}continue}var Ex=w(G)}var nx=Ex;break}}else var nx=w(G);return nx===0?[0,S,Bt(2,l2(G))]:Tx(un0)});case 18:return[0,x,Bt(2,l2(r))];case 19:return D2(x,r,function(S,G){if(or(G),Se(y(G))===0&&I5(y(G))===0&&Tr(y(G))===0){for(;;){W(G,0);var rx=G5(y(G));if(rx!==0)break}if(rx===1)for(;;){if(Tr(y(G))===0){for(;;){W(G,0);var yx=G5(y(G));if(yx!==0)break}if(yx===1)continue;var Ex=w(G)}else var Ex=w(G);var nx=Ex;break}else var nx=w(G)}else var nx=w(G);return nx===0?[0,S,Ut(4,l2(G))]:Tx(nn0)});case 20:return[0,x,Ut(4,l2(r))];case 21:return D2(x,r,function(S,G){function rx(kx){var tr=H5(y(kx));if(2>>0)return w(kx);switch(tr){case 0:var sr=to(y(kx));return sr===0?yx(kx):sr===1?Ex(kx):w(kx);case 1:return yx(kx);default:return Ex(kx)}}function yx(kx){for(;;){var tr=el(y(kx));if(tr!==0)return tr===1?0:w(kx)}}function Ex(kx){for(;;){var tr=Lt(y(kx));if(2>>0)return w(kx);switch(tr){case 0:break;case 1:for(;;){if(vr(y(kx))!==0)return w(kx);x:for(;;){var sr=Lt(y(kx));if(2>>0)return w(kx);switch(sr){case 0:break;case 1:break x;default:return 0}}}break;default:return 0}}}function nx(kx){var tr=K5(y(kx));if(tr!==0)return tr===1?rx(kx):w(kx);x:for(;;){var sr=ve(y(kx));if(2>>0)return w(kx);switch(sr){case 0:break;case 1:return rx(kx);default:break x}}for(;;){if(vr(y(kx))!==0)return w(kx);x:for(;;){var Mr=ve(y(kx));if(2>>0)return w(kx);switch(Mr){case 0:break;case 1:return rx(kx);default:break x}}}}or(G);var p0=eo(y(G));if(2>>0)var Fx=w(G);else x:switch(p0){case 0:if(vr(y(G))===0){r:for(;;){var Sx=ve(y(G));if(2>>0){var Fx=w(G);break x}switch(Sx){case 0:break;case 1:var Fx=rx(G);break x;default:break r}}for(;;){r:{if(vr(y(G))===0){e:for(;;){var bx=ve(y(G));if(2>>0){var B0=w(G);break r}switch(bx){case 0:break;case 1:var B0=rx(G);break r;default:break e}}continue}var B0=w(G)}var Fx=B0;break}}else var Fx=w(G);break;case 1:var Wx=N5(y(G)),Fx=Wx===0?nx(G):Wx===1?rx(G):w(G);break;default:r:for(;;){var Yx=Y5(y(G));if(2>>0){var Fx=w(G);break}switch(Yx){case 0:var Fx=nx(G);break r;case 1:break;default:var Fx=rx(G);break r}}}if(Fx!==0)return Tx(tn0);var ax=l2(G),Qx=P1(S,zr(S,G),42);return[0,Qx,Bt(2,ax)]});case 22:var px=l2(r),sx=P1(x,zr(x,r),42);return[0,sx,Bt(2,px)];case 23:return D2(x,r,function(S,G){function rx(ax){var Qx=H5(y(ax));if(2>>0)return w(ax);switch(Qx){case 0:var kx=to(y(ax));return kx===0?yx(ax):kx===1?Ex(ax):w(ax);case 1:return yx(ax);default:return Ex(ax)}}function yx(ax){for(;;)if(W(ax,0),vr(y(ax))!==0)return w(ax)}function Ex(ax){for(;;){W(ax,0);var Qx=uo(y(ax));if(Qx!==0){if(Qx!==1)return w(ax);for(;;){if(vr(y(ax))!==0)return w(ax);for(;;){W(ax,0);var kx=uo(y(ax));if(kx!==0)break}if(kx!==1)return w(ax)}}}}function nx(ax){var Qx=K5(y(ax));if(Qx!==0)return Qx===1?rx(ax):w(ax);x:for(;;){var kx=ve(y(ax));if(2>>0)return w(ax);switch(kx){case 0:break;case 1:return rx(ax);default:break x}}for(;;){if(vr(y(ax))!==0)return w(ax);x:for(;;){var tr=ve(y(ax));if(2>>0)return w(ax);switch(tr){case 0:break;case 1:return rx(ax);default:break x}}}}or(G);var p0=eo(y(G));if(2>>0)var Fx=w(G);else x:switch(p0){case 0:if(vr(y(G))===0){r:for(;;){var Sx=ve(y(G));if(2>>0){var Fx=w(G);break x}switch(Sx){case 0:break;case 1:var Fx=rx(G);break x;default:break r}}for(;;){r:{if(vr(y(G))===0){e:for(;;){var bx=ve(y(G));if(2>>0){var B0=w(G);break r}switch(bx){case 0:break;case 1:var B0=rx(G);break r;default:break e}}continue}var B0=w(G)}var Fx=B0;break}}else var Fx=w(G);break;case 1:var Wx=N5(y(G)),Fx=Wx===0?nx(G):Wx===1?rx(G):w(G);break;default:r:for(;;){var Yx=Y5(y(G));if(2>>0){var Fx=w(G);break}switch(Yx){case 0:var Fx=nx(G);break r;case 1:break;default:var Fx=rx(G);break r}}}return Fx===0?[0,S,Ut(4,l2(G))]:Tx(en0)});case 24:return[0,x,Ut(4,l2(r))];case 25:return D2(x,r,function(S,G){function rx(Yx){for(;;){var ax=Lt(y(Yx));if(2>>0)return w(Yx);switch(ax){case 0:break;case 1:for(;;){if(vr(y(Yx))!==0)return w(Yx);x:for(;;){var Qx=Lt(y(Yx));if(2>>0)return w(Yx);switch(Qx){case 0:break;case 1:break x;default:return 0}}}break;default:return 0}}}function yx(Yx){var ax=el(y(Yx));return ax===0?rx(Yx):ax===1?0:w(Yx)}or(G);var Ex=eo(y(G));if(2>>0)var nx=w(G);else x:switch(Ex){case 0:var nx=vr(y(G))===0?rx(G):w(G);break;case 1:for(;;){var p0=tl(y(G));if(p0===0){var nx=yx(G);break}if(p0!==1){var nx=w(G);break}}break;default:r:for(;;){var Fx=io(y(G));if(2>>0){var nx=w(G);break x}switch(Fx){case 0:var nx=yx(G);break x;case 1:break;default:break r}}for(;;){r:{if(vr(y(G))===0){e:for(;;){var Sx=io(y(G));if(2>>0){var bx=w(G);break r}switch(Sx){case 0:var bx=yx(G);break r;case 1:break;default:break e}}continue}var bx=w(G)}var nx=bx;break}}if(nx!==0)return Tx(rn0);var B0=l2(G),Wx=P1(S,zr(S,G),34);return[0,Wx,Bt(2,B0)]});case 26:return D2(x,r,function(S,G){or(G);var rx=to(y(G));x:if(rx===0)for(;;){var yx=el(y(G));if(yx!==0){if(yx===1){var Fx=0;break}var Fx=w(G);break}}else if(rx===1){r:for(;;){var Ex=Lt(y(G));if(2>>0){var Fx=w(G);break x}switch(Ex){case 0:break;case 1:break r;default:var Fx=0;break x}}for(;;){r:{if(vr(y(G))===0){e:for(;;){var nx=Lt(y(G));if(2>>0){var p0=w(G);break r}switch(nx){case 0:break;case 1:break e;default:var p0=0;break r}}continue}var p0=w(G)}var Fx=p0;break}}else var Fx=w(G);return Fx===0?[0,S,Bt(2,l2(G))]:Tx(xn0)});case 27:var Q=l2(r),b0=P1(x,zr(x,r),34);return[0,b0,Bt(2,Q)];case 28:return[0,x,Bt(2,l2(r))];case 29:return D2(x,r,function(S,G){function rx(B0){for(;;){W(B0,0);var Wx=uo(y(B0));if(Wx!==0){if(Wx!==1)return w(B0);for(;;){if(vr(y(B0))!==0)return w(B0);for(;;){W(B0,0);var Yx=uo(y(B0));if(Yx!==0)break}if(Yx!==1)return w(B0)}}}}function yx(B0){return W(B0,0),vr(y(B0))===0?rx(B0):w(B0)}or(G);var Ex=eo(y(G));if(2>>0)var nx=w(G);else x:switch(Ex){case 0:var nx=vr(y(G))===0?rx(G):w(G);break;case 1:for(;;){W(G,0);var p0=tl(y(G));if(p0===0){var nx=yx(G);break}if(p0!==1){var nx=w(G);break}}break;default:r:for(;;){W(G,0);var Fx=io(y(G));if(2>>0){var nx=w(G);break x}switch(Fx){case 0:var nx=yx(G);break x;case 1:break;default:break r}}for(;;){r:{if(vr(y(G))===0){e:for(;;){W(G,0);var Sx=io(y(G));if(2>>0){var bx=w(G);break r}switch(Sx){case 0:var bx=yx(G);break r;case 1:break;default:break e}}continue}var bx=w(G)}var nx=bx;break}}return nx===0?[0,S,Ut(4,l2(G))]:Tx(Zt0)});case 30:return[0,x,Ut(4,l2(r))];case 31:return[0,x,67];case 32:return[0,x,6];default:return[0,x,7]}switch(t0){case 34:return[0,x,0];case 35:return[0,x,1];case 36:return[0,x,2];case 37:return[0,x,3];case 38:return[0,x,4];case 39:return[0,x,5];case 40:return[0,x,12];case 41:return[0,x,10];case 42:return[0,x,8];case 43:return[0,x,9];case 44:return[0,x,87];case 45:return[0,x,84];case 46:return[0,x,86];case 47:return[0,x,6];case 48:return[0,x,7];case 49:return[0,x,99];case 50:return[0,x,y2];case 51:return[0,x,83];case 52:return[0,x,86];case 53:return[0,x,K2];case 54:return[0,x,87];case 55:return[0,x,89];case 56:return[0,x,88];case 57:return[0,x,90];case 58:return[0,x,92];case 59:return[0,x,11];case 60:return[0,x,83];case 61:return[0,x,Be];case 62:return[0,x,ui];case 63:return[0,x,r8];case 64:return[0,x,_k];case 65:var U=r[6];HU(r);var h0=Q6(x,U,r[3]);Rj(r,U);var _0=l2(r),m0=tB(x,_0),T0=m0[2],X=m0[1],Gx=fx(T0,Op);if(0<=Gx){if(0>=Gx)return[0,X,Wa];var Px=fx(T0,v6);if(0<=Px){if(0>=Px)return[0,X,s2];if(!P(T0,ra))return[0,X,32];if(!P(T0,Zs))return[0,X,47];if(!P(T0,fk))return[0,X,Ba];if(!P(T0,Ip))return[0,X,rn];if(!P(T0,Ws))return[0,X,m6]}else{if(!P(T0,Fp))return[0,X,S3];if(!P(T0,uv))return[0,X,30];if(!P(T0,p3))return[0,X,P3];if(!P(T0,Zo))return[0,X,Br];if(!P(T0,Re))return[0,X,43];if(!P(T0,l3))return[0,X,vf]}}else{var G0=fx(T0,Qf);if(0<=G0){if(0>=G0)return[0,X,42];if(!P(T0,Gs))return[0,X,31];if(!P(T0,m3))return[0,X,r6];if(!P(T0,JO))return[0,X,M2];if(!P(T0,ie))return[0,X,54];if(!P(T0,a6))return[0,X,Xo];if(!P(T0,H8))return[0,X,Sk]}else{if(!P(T0,yp))return[0,X,tv];if(!P(T0,b3))return[0,X,d6];if(!P(T0,av))return[0,X,zl];if(!P(T0,k8))return[0,X,pn0];if(!P(T0,$l))return[0,X,ln0];if(!P(T0,be))return[0,X,y6]}}return[0,X,[4,h0,T0,G6(_0)]];case 66:var Kr=x[4]?P1(x,zr(x,r),91):x;return[0,Kr,mr];default:return[0,x,[7,Dx(r)]]}}),Wb0=H6(function(x,r){function e(_){for(;;)if(W(_,33),cr(y(_))!==0)return w(_)}function t(_){W(_,33);var V=KU(y(_));if(3>>0)return w(_);switch(V){case 0:return e(_);case 1:var lx=to(y(_));if(lx===0)for(;;){W(_,28);var U0=rl(y(_));if(2>>0)return w(_);switch(U0){case 0:return u(_);case 1:break;default:return i(_)}}else{if(lx!==1)return w(_);for(;;){W(_,28);var ox=ds(y(_));if(3>>0)return w(_);switch(ox){case 0:return u(_);case 1:break;case 2:return c(_);default:return i(_)}}}break;case 2:for(;;){W(_,28);var wx=rl(y(_));if(2>>0)return w(_);switch(wx){case 0:return v(_);case 1:break;default:return a(_)}}break;default:for(;;){W(_,28);var Cr=ds(y(_));if(3>>0)return w(_);switch(Cr){case 0:return v(_);case 1:break;case 2:return c(_);default:return a(_)}}}}function u(_){for(;;)if(W(_,27),cr(y(_))!==0)return w(_)}function i(_){W(_,26);var V=X2(y(_));if(V!==0)return V===1?u(_):w(_);for(;;)if(W(_,25),cr(y(_))!==0)return w(_)}function c(_){for(;;){if(vr(y(_))!==0)return w(_);x:for(;;){W(_,28);var V=ds(y(_));if(3>>0)return w(_);switch(V){case 0:return u(_);case 1:break;case 2:break x;default:return i(_)}}}}function v(_){for(;;)if(W(_,27),cr(y(_))!==0)return w(_)}function a(_){W(_,26);var V=X2(y(_));if(V!==0)return V===1?v(_):w(_);for(;;)if(W(_,25),cr(y(_))!==0)return w(_)}function l(_){W(_,31);var V=X2(y(_));if(V!==0)return V===1?e(_):w(_);for(;;)if(W(_,29),cr(y(_))!==0)return w(_)}function m(_){return W(_,3),$U(y(_))===0?3:w(_)}function h(_){return J5(y(_))===0&&X5(y(_))===0&&GU(y(_))===0&&LU(y(_))===0&&MU(y(_))===0&&B5(y(_))===0&&V6(y(_))===0&&J5(y(_))===0&&fo(y(_))===0&&Vj(y(_))===0&&Tv(y(_))===0?3:w(_)}function T(_){W(_,34);var V=FU(y(_));if(3>>0)return w(_);switch(V){case 0:return e(_);case 1:x:for(;;){W(_,34);var lx=no(y(_));if(4>>0)return w(_);switch(lx){case 0:return e(_);case 1:break;case 2:return t(_);case 3:break x;default:return l(_)}}for(;;){if(vr(y(_))!==0)return w(_);x:for(;;){W(_,34);var U0=no(y(_));if(4>>0)return w(_);switch(U0){case 0:return e(_);case 1:break;case 2:return t(_);case 3:break x;default:return l(_)}}}break;case 2:return t(_);default:return l(_)}}function b(_){for(;;)if(W(_,19),cr(y(_))!==0)return w(_)}function N(_){W(_,34);var V=rl(y(_));if(2>>0)return w(_);switch(V){case 0:return e(_);case 1:x:for(;;){W(_,34);var lx=ds(y(_));if(3>>0)return w(_);switch(lx){case 0:return e(_);case 1:break;case 2:break x;default:return l(_)}}for(;;){if(vr(y(_))!==0)return w(_);x:for(;;){W(_,34);var U0=ds(y(_));if(3>>0)return w(_);switch(U0){case 0:return e(_);case 1:break;case 2:break x;default:return l(_)}}}break;default:return l(_)}}function j(_){for(;;)if(W(_,17),cr(y(_))!==0)return w(_)}function I(_){for(;;)if(W(_,17),cr(y(_))!==0)return w(_)}function F(_){for(;;)if(W(_,11),cr(y(_))!==0)return w(_)}function M(_){for(;;)if(W(_,11),cr(y(_))!==0)return w(_)}function z(_){for(;;)if(W(_,15),cr(y(_))!==0)return w(_)}function B(_){for(;;)if(W(_,15),cr(y(_))!==0)return w(_)}function K(_){for(;;)if(W(_,23),cr(y(_))!==0)return w(_)}function n0(_){for(;;)if(W(_,23),cr(y(_))!==0)return w(_)}function $(_){W(_,32);var V=X2(y(_));if(V!==0)return V===1?e(_):w(_);for(;;)if(W(_,30),cr(y(_))!==0)return w(_)}function H(_){for(;;){if(vr(y(_))!==0)return w(_);x:for(;;){W(_,34);var V=YU(y(_));if(4>>0)return w(_);switch(V){case 0:return e(_);case 1:return N(_);case 2:break;case 3:break x;default:return $(_)}}}}or(r);var t0=function(_){var V=Ub0(y(_));if(36>>0)return w(_);switch(V){case 0:return 98;case 1:return 99;case 2:if(W(_,1),ms(y(_))!==0)return w(_);for(;;)if(W(_,1),ms(y(_))!==0)return w(_);break;case 3:return 0;case 4:return W(_,0),Ae(y(_))===0?0:w(_);case 5:return W(_,88),hn(y(_))===0?(W(_,58),hn(y(_))===0?54:w(_)):w(_);case 6:return 7;case 7:W(_,95);var lx=y(_),U0=32>>0)return w(_);switch(Cr){case 0:return W(_,83),hn(y(_))===0?70:w(_);case 1:return 4;default:return 69}case 14:W(_,80);var Hx=y(_),Zr=42>>0)return w(_);switch(ux){case 0:return e(_);case 1:break;case 2:return t(_);case 3:break x;default:return l(_)}}for(;;){if(vr(y(_))!==0)return w(_);x:for(;;){W(_,34);var Lx=no(y(_));if(4>>0)return w(_);switch(Lx){case 0:return e(_);case 1:break;case 2:return t(_);case 3:break x;default:return l(_)}}}break;case 18:W(_,93);var Zx=RU(y(_));if(2>>0)return w(_);switch(Zx){case 0:W(_,2);var qr=F5(y(_));if(2>>0)return w(_);switch(qr){case 0:for(;;){var Y2=F5(y(_));if(2>>0)return w(_);switch(Y2){case 0:break;case 1:return m(_);default:return h(_)}}break;case 1:return m(_);default:return h(_)}break;case 1:return 5;default:return 92}break;case 19:W(_,34);var H2=UU(y(_));if(8

>>0)return w(_);switch(H2){case 0:return e(_);case 1:return T(_);case 2:x:{r:for(;;){W(_,20);var Kt=JU(y(_));if(4>>0)return w(_);switch(Kt){case 0:return b(_);case 1:return N(_);case 2:break;case 3:break x;default:break r}}W(_,19);var dt=X2(y(_));if(dt!==0)return dt===1?b(_):w(_);for(;;)if(W(_,19),cr(y(_))!==0)return w(_)}x:for(;;){W(_,18);var Jt=D5(y(_));if(3>>0)return w(_);switch(Jt){case 0:return j(_);case 1:return N(_);case 2:break;default:break x}}W(_,17);var C1=X2(y(_));if(C1!==0)return C1===1?j(_):w(_);for(;;)if(W(_,17),cr(y(_))!==0)return w(_);break;case 3:x:for(;;){W(_,18);var q1=D5(y(_));if(3>>0)return w(_);switch(q1){case 0:return I(_);case 1:return N(_);case 2:break;default:break x}}W(_,17);var b2=X2(y(_));if(b2!==0)return b2===1?I(_):w(_);for(;;)if(W(_,17),cr(y(_))!==0)return w(_);break;case 4:W(_,33);var wn=qU(y(_));if(wn===0)return e(_);if(wn!==1)return w(_);x:{r:for(;;){W(_,12);var _n=$5(y(_));if(3<_n>>>0)return w(_);switch(_n){case 0:return F(_);case 1:break;case 2:break x;default:break r}}W(_,10);var bs=X2(y(_));if(bs!==0)return bs===1?F(_):w(_);for(;;)if(W(_,9),cr(y(_))!==0)return w(_)}x:for(;;){if(hs(y(_))!==0)return w(_);r:for(;;){W(_,12);var le=$5(y(_));if(3>>0)return w(_);switch(le){case 0:return M(_);case 1:break;case 2:break r;default:break x}}}W(_,10);var Ze=X2(y(_));if(Ze!==0)return Ze===1?M(_):w(_);for(;;)if(W(_,9),cr(y(_))!==0)return w(_);break;case 5:return t(_);case 6:W(_,33);var Ts=BU(y(_));if(Ts===0)return e(_);if(Ts!==1)return w(_);x:{r:for(;;){W(_,16);var Lv=W5(y(_));if(3>>0)return w(_);switch(Lv){case 0:return z(_);case 1:break;case 2:break x;default:break r}}W(_,14);var yt=X2(y(_));if(yt!==0)return yt===1?z(_):w(_);for(;;)if(W(_,13),cr(y(_))!==0)return w(_)}x:for(;;){if(V1(y(_))!==0)return w(_);r:for(;;){W(_,16);var yr=W5(y(_));if(3>>0)return w(_);switch(yr){case 0:return B(_);case 1:break;case 2:break r;default:break x}}}W(_,14);var Ta=X2(y(_));if(Ta!==0)return Ta===1?B(_):w(_);for(;;)if(W(_,13),cr(y(_))!==0)return w(_);break;case 7:W(_,33);var Es=CU(y(_));if(Es===0)return e(_);if(Es!==1)return w(_);x:{r:for(;;){W(_,24);var gt=Q5(y(_));if(3>>0)return w(_);switch(gt){case 0:return K(_);case 1:break;case 2:break x;default:break r}}W(_,22);var Mv=X2(y(_));if(Mv!==0)return Mv===1?K(_):w(_);for(;;)if(W(_,21),cr(y(_))!==0)return w(_)}x:for(;;){if(Tr(y(_))!==0)return w(_);r:for(;;){W(_,24);var qv=Q5(y(_));if(3>>0)return w(_);switch(qv){case 0:return n0(_);case 1:break;case 2:break r;default:break x}}}W(_,22);var bn=X2(y(_));if(bn!==0)return bn===1?n0(_):w(_);for(;;)if(W(_,21),cr(y(_))!==0)return w(_);break;default:return $(_)}break;case 20:W(_,34);var Ea=L5(y(_));if(5>>0)return w(_);switch(Ea){case 0:return e(_);case 1:return T(_);case 2:for(;;){W(_,34);var ko=L5(y(_));if(5>>0)return w(_);switch(ko){case 0:return e(_);case 1:return T(_);case 2:break;case 3:return t(_);case 4:return H(_);default:return $(_)}}break;case 3:return t(_);case 4:return H(_);default:return $(_)}break;case 21:return 46;case 22:return 44;case 23:W(_,78);var Sa=y(_),Aa=59>>0)return Tx(hc0);var c0=t0;if(50>c0)switch(c0){case 0:return[2,$1(x,r)];case 1:return[2,x];case 2:var r0=A1(x,r),v0=$r(Br),a0=Ev(x,v0,r),g0=a0[1];return[1,g0,qt(g0,r0,a0[2],v0,1)];case 3:var i0=Dx(r);if(!x[5]){var s0=A1(x,r),d0=$r(Br);ir(d0,T1(i0,2,Nx(i0)-2|0));var w0=Ev(x,d0,r),M0=w0[1];return[1,M0,qt(M0,s0,w0[2],d0,1)]}var C0=x[4]?xB(x,zr(x,r),i0):x,D0=A5(1,C0),I0=w5(r);return br(J6(r,I0-1|0,1),Mo)&&P(J6(r,I0-2|0,1),Mo)?[0,D0,87]:[2,D0];case 4:if(x[4])return[2,A5(0,x)];xl(r),or(r);var j0=DU(y(r))===0?0:w(r);return j0===0?[0,x,K2]:Tx(dc0);case 5:var y0=A1(x,r),Y0=$r(Br),L=nl(x,Y0,r),N0=L[1];return[1,N0,qt(N0,y0,L[2],Y0,0)];case 6:if(r[6]!==0)return[0,x,yc0];var S0=A1(x,r),K0=$r(Br),A0=nl(x,K0,r),$0=A0[1],ex=[0,$0[1],S0,A0[2]];return[0,$0,[6,ex,G2(K0)]];case 7:var xx=Dx(r),tx=A1(x,r),z0=$r(Br),px=$r(Br);ir(px,xx);var sx=uB(x,xx,z0,px,0,r),Q=sx[1],b0=sx[3],U=[0,Q[1],tx,sx[2]],h0=G2(px);return[0,Q,[2,[0,U,G2(z0),h0,b0]]];case 8:var _0=$r(Br),m0=$r(Br),T0=A1(x,r),X=iB(x,_0,m0,r),Gx=X[1],Px=X[2],G0=Pe(Gx,r),Kr=[0,Gx[1],T0,G0],S=G2(m0);return[0,Gx,[3,[0,Kr,G2(_0),S,1,Px]]];case 9:return D2(x,r,function(_,V){or(V);x:if(Se(y(V))===0&&q5(y(V))===0&&hs(y(V))===0){r:for(;;){var lx=C5(y(V));if(2>>0){var wx=w(V);break x}switch(lx){case 0:break;case 1:break r;default:var wx=0;break x}}for(;;){r:{if(hs(y(V))===0){e:for(;;){var U0=C5(y(V));if(2>>0){var ox=w(V);break r}switch(U0){case 0:break;case 1:break e;default:var ox=0;break r}}continue}var ox=w(V)}var wx=ox;break}}else var wx=w(V);return wx===0?[0,_,[1,0,Dx(V)]]:Tx(mc0)});case 10:return[0,x,[1,0,Dx(r)]];case 11:return D2(x,r,function(_,V){if(or(V),Se(y(V))===0&&q5(y(V))===0&&hs(y(V))===0){for(;;){W(V,0);var lx=j5(y(V));if(lx!==0)break}if(lx===1)for(;;){if(hs(y(V))===0){for(;;){W(V,0);var U0=j5(y(V));if(U0!==0)break}if(U0===1)continue;var ox=w(V)}else var ox=w(V);var wx=ox;break}else var wx=w(V)}else var wx=w(V);return wx===0?[0,_,[0,0,Dx(V)]]:Tx(kc0)});case 12:return[0,x,[0,0,Dx(r)]];case 13:return D2(x,r,function(_,V){or(V);x:if(Se(y(V))===0&&z5(y(V))===0&&V1(y(V))===0){r:for(;;){var lx=M5(y(V));if(2>>0){var wx=w(V);break x}switch(lx){case 0:break;case 1:break r;default:var wx=0;break x}}for(;;){r:{if(V1(y(V))===0){e:for(;;){var U0=M5(y(V));if(2>>0){var ox=w(V);break r}switch(U0){case 0:break;case 1:break e;default:var ox=0;break r}}continue}var ox=w(V)}var wx=ox;break}}else var wx=w(V);return wx===0?[0,_,[1,1,Dx(V)]]:Tx(pc0)});case 14:return[0,x,[1,1,Dx(r)]];case 15:return D2(x,r,function(_,V){if(or(V),Se(y(V))===0&&z5(y(V))===0&&V1(y(V))===0){for(;;){W(V,0);var lx=R5(y(V));if(lx!==0)break}if(lx===1)for(;;){if(V1(y(V))===0){for(;;){W(V,0);var U0=R5(y(V));if(U0!==0)break}if(U0===1)continue;var ox=w(V)}else var ox=w(V);var wx=ox;break}else var wx=w(V)}else var wx=w(V);return wx===0?[0,_,[0,3,Dx(V)]]:Tx(lc0)});case 16:return[0,x,[0,3,Dx(r)]];case 17:return D2(x,r,function(_,V){if(or(V),Se(y(V))===0){for(;;){var lx=y(V),U0=47>>0){var wx=w(V);break x}switch(lx){case 0:break;case 1:break r;default:var wx=0;break x}}for(;;){r:{if(Tr(y(V))===0){e:for(;;){var U0=O5(y(V));if(2>>0){var ox=w(V);break r}switch(U0){case 0:break;case 1:break e;default:var ox=0;break r}}continue}var ox=w(V)}var wx=ox;break}}else var wx=w(V);return wx===0?[0,_,[1,2,Dx(V)]]:Tx(ac0)});case 22:return[0,x,[1,2,Dx(r)]];case 23:return D2(x,r,function(_,V){if(or(V),Se(y(V))===0&&I5(y(V))===0&&Tr(y(V))===0){for(;;){W(V,0);var lx=G5(y(V));if(lx!==0)break}if(lx===1)for(;;){if(Tr(y(V))===0){for(;;){W(V,0);var U0=G5(y(V));if(U0!==0)break}if(U0===1)continue;var ox=w(V)}else var ox=w(V);var wx=ox;break}else var wx=w(V)}else var wx=w(V);return wx===0?[0,_,[0,4,Dx(V)]]:Tx(sc0)});case 24:return[0,x,[0,4,Dx(r)]];case 25:return D2(x,r,function(_,V){function lx(Zx){var qr=H5(y(Zx));if(2>>0)return w(Zx);switch(qr){case 0:var Y2=to(y(Zx));return Y2===0?U0(Zx):Y2===1?ox(Zx):w(Zx);case 1:return U0(Zx);default:return ox(Zx)}}function U0(Zx){for(;;){var qr=el(y(Zx));if(qr!==0)return qr===1?0:w(Zx)}}function ox(Zx){for(;;){var qr=Lt(y(Zx));if(2>>0)return w(Zx);switch(qr){case 0:break;case 1:for(;;){if(vr(y(Zx))!==0)return w(Zx);x:for(;;){var Y2=Lt(y(Zx));if(2>>0)return w(Zx);switch(Y2){case 0:break;case 1:break x;default:return 0}}}break;default:return 0}}}function wx(Zx){var qr=K5(y(Zx));if(qr!==0)return qr===1?lx(Zx):w(Zx);x:for(;;){var Y2=ve(y(Zx));if(2>>0)return w(Zx);switch(Y2){case 0:break;case 1:return lx(Zx);default:break x}}for(;;){if(vr(y(Zx))!==0)return w(Zx);x:for(;;){var H2=ve(y(Zx));if(2

>>0)return w(Zx);switch(H2){case 0:break;case 1:return lx(Zx);default:break x}}}}or(V);var Cr=eo(y(V));if(2>>0)var Hx=w(V);else x:switch(Cr){case 0:if(vr(y(V))===0){r:for(;;){var Zr=ve(y(V));if(2>>0){var Hx=w(V);break x}switch(Zr){case 0:break;case 1:var Hx=lx(V);break x;default:break r}}for(;;){r:{if(vr(y(V))===0){e:for(;;){var dr=ve(y(V));if(2>>0){var Or=w(V);break r}switch(dr){case 0:break;case 1:var Or=lx(V);break r;default:break e}}continue}var Or=w(V)}var Hx=Or;break}}else var Hx=w(V);break;case 1:var x2=N5(y(V)),Hx=x2===0?wx(V):x2===1?lx(V):w(V);break;default:r:for(;;){var ux=Y5(y(V));if(2>>0){var Hx=w(V);break}switch(ux){case 0:var Hx=wx(V);break r;case 1:break;default:var Hx=lx(V);break r}}}if(Hx!==0)return Tx(cc0);var Lx=P1(_,zr(_,V),42);return[0,Lx,[1,2,Dx(V)]]});case 26:var G=P1(x,zr(x,r),42);return[0,G,[1,2,Dx(r)]];case 27:return D2(x,r,function(_,V){function lx(Lx){var Zx=H5(y(Lx));if(2>>0)return w(Lx);switch(Zx){case 0:var qr=to(y(Lx));return qr===0?U0(Lx):qr===1?ox(Lx):w(Lx);case 1:return U0(Lx);default:return ox(Lx)}}function U0(Lx){for(;;)if(W(Lx,0),vr(y(Lx))!==0)return w(Lx)}function ox(Lx){for(;;){W(Lx,0);var Zx=uo(y(Lx));if(Zx!==0){if(Zx!==1)return w(Lx);for(;;){if(vr(y(Lx))!==0)return w(Lx);for(;;){W(Lx,0);var qr=uo(y(Lx));if(qr!==0)break}if(qr!==1)return w(Lx)}}}}function wx(Lx){var Zx=K5(y(Lx));if(Zx!==0)return Zx===1?lx(Lx):w(Lx);x:for(;;){var qr=ve(y(Lx));if(2>>0)return w(Lx);switch(qr){case 0:break;case 1:return lx(Lx);default:break x}}for(;;){if(vr(y(Lx))!==0)return w(Lx);x:for(;;){var Y2=ve(y(Lx));if(2>>0)return w(Lx);switch(Y2){case 0:break;case 1:return lx(Lx);default:break x}}}}or(V);var Cr=eo(y(V));if(2>>0)var Hx=w(V);else x:switch(Cr){case 0:if(vr(y(V))===0){r:for(;;){var Zr=ve(y(V));if(2>>0){var Hx=w(V);break x}switch(Zr){case 0:break;case 1:var Hx=lx(V);break x;default:break r}}for(;;){r:{if(vr(y(V))===0){e:for(;;){var dr=ve(y(V));if(2>>0){var Or=w(V);break r}switch(dr){case 0:break;case 1:var Or=lx(V);break r;default:break e}}continue}var Or=w(V)}var Hx=Or;break}}else var Hx=w(V);break;case 1:var x2=N5(y(V)),Hx=x2===0?wx(V):x2===1?lx(V):w(V);break;default:r:for(;;){var ux=Y5(y(V));if(2>>0){var Hx=w(V);break}switch(ux){case 0:var Hx=wx(V);break r;case 1:break;default:var Hx=lx(V);break r}}}return Hx===0?[0,_,[0,4,Dx(V)]]:Tx(fc0)});case 28:return[0,x,[0,4,Dx(r)]];case 29:return D2(x,r,function(_,V){function lx(x2){for(;;){var ux=Lt(y(x2));if(2>>0)return w(x2);switch(ux){case 0:break;case 1:for(;;){if(vr(y(x2))!==0)return w(x2);x:for(;;){var Lx=Lt(y(x2));if(2>>0)return w(x2);switch(Lx){case 0:break;case 1:break x;default:return 0}}}break;default:return 0}}}function U0(x2){var ux=el(y(x2));return ux===0?lx(x2):ux===1?0:w(x2)}or(V);var ox=eo(y(V));if(2>>0)var wx=w(V);else x:switch(ox){case 0:var wx=vr(y(V))===0?lx(V):w(V);break;case 1:for(;;){var Cr=tl(y(V));if(Cr===0){var wx=U0(V);break}if(Cr!==1){var wx=w(V);break}}break;default:r:for(;;){var Hx=io(y(V));if(2>>0){var wx=w(V);break x}switch(Hx){case 0:var wx=U0(V);break x;case 1:break;default:break r}}for(;;){r:{if(vr(y(V))===0){e:for(;;){var Zr=io(y(V));if(2>>0){var dr=w(V);break r}switch(Zr){case 0:var dr=U0(V);break r;case 1:break;default:break e}}continue}var dr=w(V)}var wx=dr;break}}if(wx!==0)return Tx(ic0);var Or=P1(_,zr(_,V),34);return[0,Or,[1,2,Dx(V)]]});case 30:return D2(x,r,function(_,V){or(V);var lx=to(y(V));x:if(lx===0)for(;;){var U0=el(y(V));if(U0!==0){if(U0===1){var Hx=0;break}var Hx=w(V);break}}else if(lx===1){r:for(;;){var ox=Lt(y(V));if(2>>0){var Hx=w(V);break x}switch(ox){case 0:break;case 1:break r;default:var Hx=0;break x}}for(;;){r:{if(vr(y(V))===0){e:for(;;){var wx=Lt(y(V));if(2>>0){var Cr=w(V);break r}switch(wx){case 0:break;case 1:break e;default:var Cr=0;break r}}continue}var Cr=w(V)}var Hx=Cr;break}}else var Hx=w(V);return Hx===0?[0,_,[1,2,Dx(V)]]:Tx(uc0)});case 31:var rx=P1(x,zr(x,r),34);return[0,rx,[1,2,Dx(r)]];case 32:return[0,x,[1,2,Dx(r)]];case 33:return D2(x,r,function(_,V){function lx(Or){for(;;){W(Or,0);var x2=uo(y(Or));if(x2!==0){if(x2!==1)return w(Or);for(;;){if(vr(y(Or))!==0)return w(Or);for(;;){W(Or,0);var ux=uo(y(Or));if(ux!==0)break}if(ux!==1)return w(Or)}}}}function U0(Or){return W(Or,0),vr(y(Or))===0?lx(Or):w(Or)}or(V);var ox=eo(y(V));if(2>>0)var wx=w(V);else x:switch(ox){case 0:var wx=vr(y(V))===0?lx(V):w(V);break;case 1:for(;;){W(V,0);var Cr=tl(y(V));if(Cr===0){var wx=U0(V);break}if(Cr!==1){var wx=w(V);break}}break;default:r:for(;;){W(V,0);var Hx=io(y(V));if(2>>0){var wx=w(V);break x}switch(Hx){case 0:var wx=U0(V);break x;case 1:break;default:break r}}for(;;){r:{if(vr(y(V))===0){e:for(;;){W(V,0);var Zr=io(y(V));if(2>>0){var dr=w(V);break r}switch(Zr){case 0:var dr=U0(V);break r;case 1:break;default:break e}}continue}var dr=w(V)}var wx=dr;break}}return wx===0?[0,_,[0,4,Dx(V)]]:Tx(nc0)});case 34:return[0,x,[0,4,Dx(r)]];case 35:var yx=zr(x,r),Ex=Dx(r);return[0,x,[4,yx,Ex,Ex]];case 36:return[0,x,0];case 37:return[0,x,1];case 38:return[0,x,4];case 39:return[0,x,5];case 40:return[0,x,6];case 41:return[0,x,7];case 42:return[0,x,12];case 43:return[0,x,10];case 44:return[0,x,8];case 45:return[0,x,9];case 46:return[0,x,87];case 47:xl(r),or(r);var nx=y(r),p0=62=Wx)return[0,x,54];var Yx=fx(B0,N3);if(0<=Yx){if(0>=Yx)return[0,x,52];var ax=fx(B0,Zs);if(0<=ax){if(0>=ax)return[0,x,47];if(!P(B0,Yl))return[0,x,25];if(!P(B0,Ws))return[0,x,48];if(!P(B0,L4))return[0,x,26];if(!P(B0,Hk))return[0,x,27];if(!P(B0,B1))return[0,x,59]}else{if(!P(B0,Ge))return[0,x,20];if(!P(B0,Qo))return[0,x,22];if(!P(B0,ze))return[0,x,23];if(!P(B0,ra))return[0,x,32];if(!P(B0,y8))return[0,x,24];if(!P(B0,qf))return[0,x,62]}}else{var Qx=fx(B0,Bp);if(0<=Qx){if(0>=Qx)return[0,x,55];if(!P(B0,h6))return[0,x,56];if(!P(B0,Rl))return[0,x,57];if(!P(B0,l6))return[0,x,58];if(!P(B0,Xe))return[0,x,19];if(!P(B0,Re))return[0,x,43]}else{if(!P(B0,j3))return[0,x,29];if(!P(B0,aI))return[0,x,21];if(!P(B0,rv))return[0,x,45];if(!P(B0,uv))return[0,x,30];if(!P(B0,cS))return[0,x,64];if(!P(B0,ub))return[0,x,63]}}}else{var kx=fx(B0,Xp);if(0<=kx){if(0>=kx)return[0,x,44];var tr=fx(B0,h3);if(0<=tr){if(0>=tr)return[0,x,15];if(!P(B0,d8))return[0,x,16];if(!P(B0,cv))return[0,x,53];if(!P(B0,X1))return[0,x,51];if(!P(B0,qa))return[0,x,17];if(!P(B0,Gl))return[0,x,18]}else{if(!P(B0,Ql))return[0,x,49];if(!P(B0,Nm))return[0,x,50];if(!P(B0,Qf))return[0,x,42];if(!P(B0,Gs))return[0,x,31];if(!P(B0,e8))return[0,x,39];if(!P(B0,f8))return[0,x,40]}}else{var sr=fx(B0,u6);if(0<=sr){if(0>=sr)return[0,x,28];if(!P(B0,Le))return[0,x,36];if(!P(B0,Ye))return[0,x,60];if(!P(B0,g6))return[0,x,61];if(!P(B0,Go))return[0,x,37];if(!P(B0,Kl))return[0,x,46];if(!P(B0,Rp))return[0,x,38]}else{if(!P(B0,Ka))return[0,x,65];if(!P(B0,nv))return[0,x,66];if(!P(B0,Ke))return[0,x,33];if(!P(B0,pp))return[0,x,34];if(!P(B0,V8))return[0,x,35];if(!P(B0,Ml))return[0,x,41]}}}var Mr=l2(r),a2=tB(x,Mr),_2=a2[2],i2=a2[1];return[0,i2,[4,bx,_2,G6(Mr)]];case 98:var Q2=x[4]?P1(x,zr(x,r),91):x;return[0,Q2,mr];default:var jx=mt(x,zr(x,r));return[0,jx,[7,Dx(r)]]}}),I1=kU([0,Sb0]);function Z6(x,r){return[0,0,0,r,TU(x)]}function xh(x){var r=x[4];switch(x[3]){case 0:var t0=Wb0(r);break;case 1:var t0=Gb0(r);break;case 2:var t0=Kb0(r);break;case 3:var e=Pe(r,r[2]),t=$r(Br),u=$r(Br),i=r[2];or(i);var c=y(i),v=rn>>0)var a=w(i);else switch(v){case 0:var a=1;break;case 1:var a=4;break;case 2:var a=0;break;case 3:W(i,0);var a=Ae(y(i))===0?0:w(i);break;case 4:var a=2;break;default:var a=3}if(4>>0)var l=Tx(dn0);else switch(a){case 0:var m=Dx(i);ir(u,m),ir(t,m);var h=cB($1(r,i),t,u,i),T=Pe(h,i),b=G2(t),N=G2(u),l=[0,h,[9,[0,h[1],e,T],b,N]];break;case 1:var l=[0,r,mr];break;case 2:var l=[0,r,99];break;case 3:var l=[0,r,0];break;default:xl(i);var j=cB(r,t,u,i),I=Pe(j,i),F=G2(t),M=G2(u),l=[0,j,[9,[0,j[1],e,I],F,M]]}var z=l[2],B=l[1],K=ZU(B,z),n0=B[6];if(n0===0)var H=[0,B,[0,z,K,0,0]];else var $=[0,z,K,ix(n0),0],H=[0,[0,B[1],B[2],B[3],B[4],B[5],0,B[7]],$];var t0=H;break;case 4:var t0=Jb0(r);break;default:var t0=zb0(r)}var c0=t0[1],r0=t0[2],v0=[0,TU(c0),r0];return x[4]=c0,x[1]?x[2]=[0,v0]:x[1]=[0,v0],v0}function sB(x){var r=x[1];return r?r[1][2]:xh(x)[2]}function ul(x){return C6(x[24][1])}function A2(x){return x[28][5]}function q0(x,r){var e=r[2];x[1][1]=[0,[0,r[1],e],x[1][1]];var t=x[23];return t?p(t[1],x,e):0}function x4(x,r){x[31][1]=r}function co(x,r){if(x===0)return sB(r[26][1]);if(x!==1)throw W0([0,Nr,Qc0],1);var e=r[26][1];e[1]||xh(e);var t=e[2];return t?t[1][2]:xh(e)[2]}function ha(x,r){return x===r[5]?r:[0,r[1],r[2],r[3],r[4],x,r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function aB(x,r){return x===r[10]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],x,r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function Qj(x,r){return x===r[18]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],x,r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function Hj(x,r){return x===r[19]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],x,r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function oB(x,r){return x===r[20]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],x,r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function Sv(x,r){return x===r[22]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],x,r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function Zj(x,r){return x===r[14]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],x,r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function r4(x,r){return x===r[8]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],x,r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function e4(x,r){return x===r[12]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],x,r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function Av(x,r){return x===r[15]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],x,r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function xC(x,r){return x===r[16]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],x,r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function vB(x,r){return x===r[6]?r:[0,r[1],r[2],r[3],r[4],r[5],x,r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function lB(x,r){return x===r[7]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],x,r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function rC(x,r){return x===r[13]?r:[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],x,r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function rh(x,r){return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],[0,x],r[24],r[25],r[26],r[27],r[28],r[29],r[30],r[31]]}function eC(x){function r(e){return q0(x,e)}return function(e){return b1(r,e)}}function il(x){var r=x[4][1];return r?[0,r[1][2]]:0}function pB(x){var r=x[4][1];return r?[0,r[1][1]]:0}function kB(x){return[0,x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],x[12],x[13],x[14],x[15],x[16],x[17],x[18],x[19],x[20],x[21],x[22],0,x[24],x[25],x[26],x[27],x[28],x[29],x[30],x[31]]}function mB(x,r,e,t){return[0,x[1],x[2],I1[1],x[4],x[5],0,0,0,0,0,1,x[12],x[13],x[14],x[15],x[16],x[17],e,r,x[20],t,x[22],x[23],x[24],x[25],x[26],x[27],x[28],x[29],x[30],x[31]]}function fl(x){return P(x,cv)&&P(x,ie)&&P(x,j3)&&P(x,Bp)&&P(x,h6)&&P(x,Rl)&&P(x,l6)&&P(x,Re)&&P(x,B1)?0:1}function Pv(x){return P(x,vb)&&P(x,\"eval\")?0:1}function eh(x){var r=fx(x,d8);x:{if(0<=r){if(0>>0){if(Te>=t+1>>>0)return 1}else if(t===6)return 0}return Iv(x,r)}function sl(x){return yB(0,x)}function ya(x,r){var e=xr(x,r);x:{if(typeof e==\"number\")switch(e){case 29:case 43:case 53:case 54:case 55:case 56:case 57:case 58:case 59:var t=1;break x}else if(e[0]===4){var t=fl(e[2]);break x}var t=0}if(t)return 1;x:{if(typeof e==\"number\")switch(e){case 14:case 21:case 49:case 61:case 62:case 63:case 64:case 65:case 66:case 127:break;default:break x}else if(e[0]!==4)break x;return 1}return 0}function th(x,r){return hB(r,xr(x,r))}function gB(x,r){var e=ya(x,r);return e||th(x,r)}function dn(x){return ya(0,x)}function so(x){var r=q(x)===15?1:0;if(r)var e=r;else{var t=q(x)===65?1:0;if(t){var u=xr(1,x)===15?1:0;if(u)var i=cl(1,x)[2][1],e=V0(x)[3][1]===i?1:0;else var e=u}else var e=t}return e}function nh(x){var r=q(x);if(typeof r!=\"number\"&&r[0]===4&&!P(r[3],Vo)){var e=x[28][1];if(e){var t=ya(1,x);if(t)var u=cl(1,x)[2][1],i=V0(x)[3][1]===u?1:0;else var i=t}else var i=e;return i}return 0}function t4(x){var r=q(x);if(typeof r==\"number\")switch(r){case 13:case 41:return 1}else if(r[0]===4&&!P(r[3],lA)&&xr(1,x)===41)return 1;return 0}function uC(x){var r=x[28][1];if(r){var e=q(x);if(typeof e!=\"number\"&&e[0]===4&&!P(e[3],$s)&&ya(1,x))return 1;var t=0}else var t=r;return t}function iC(x){var r=q(x);return typeof r!=\"number\"&&r[0]===4&&!P(r[3],_3)?1:0}function Ux(x,r){return q0(x,[0,V0(x),r])}function wB(x,r){var e=zj(0,r);return x?[28,e,x[1]]:[26,e]}function p2(x,r){var e=nC(r);return eC(r)(e),Ux(r,wB(x,q(r)))}function uh(x){function r(e){return q0(x,[0,e[1],sv])}return function(e){return b1(r,e)}}function _B(x,r){var e=x[6]?H0(ar(Wc0),r,r,r):Vc0;return p2([0,e],x)}function Ie(x,r){var e=x[5];return e&&Ux(x,r)}function ht(x,r){var e=x[5],t=r[2],u=r[1];return e&&q0(x,[0,u,t])}function Nv(x,r){return q0(x,[0,r,[14,x[5]]])}function E0(x){var r=x[27][1];if(r){var e=r[1],t=ul(x),u=q(x);d(e,[0,V0(x),u,t])}var i=x[26][1],c=i[1],v=c?c[1][1]:xh(i)[1];x[25][1]=v;var a=nC(x);eC(x)(a);var l=x[2][1],m=K3(co(0,x)[4],l);x[2][1]=m;var h=[0,co(0,x)];x[4][1]=h;var T=x[26][1];return T[2]?(T[1]=T[2],T[2]=0,0):(sB(T),T[1]=0,0)}function u2(x,r){var e=SU(q(x),r);return e&&E0(x),e}function V2(x,r){x[24][1]=[0,r,x[24][1]];var e=ul(x),t=Z6(x[25][1],e);x[26][1]=t}function Z2(x){var r=x[24][1],e=r?r[2]:Tx(Gc0);x[24][1]=e;var t=ul(x),u=Z6(x[25][1],t);x[26][1]=u}function L0(x){var r=V0(x);if(q(x)===9&&Iv(1,x)){var e=u0(x),t=Mx(e,D6(function(i){return i[1][2][1]<=r[3][1]?1:0},co(1,x)[4]));return x4(x,[0,r[3][1]+1|0,0]),t}var u=u0(x);return x4(x,r[3]),u}function ao(x){var r=x[4][1];if(!r)return 0;var e=r[1][2],t=D6(function(u){return u[1][2][1]<=e[3][1]?1:0},u0(x));return x4(x,[0,e[3][1]+1|0,0]),t}function yn(x,r){return p2([0,zj(zc0,r)],x)}function J(x,r){return 1-SU(q(x),r)&&yn(x,r),E0(x)}function bB(x,r){var e=u2(x,r);return 1-e&&yn(x,r),e}function ih(x,r){bB(x,r)}function ys(x,r){var e=q(x);x:{if(typeof e!=\"number\"&&e[0]===4&&br(e[3],r))break x;p2([0,d(ar(Yc0),r)],x)}return E0(x)}var gs=[n2,ts0,as(0)];function TB(x,r,e){if(e){var t=e[1],u=t[1],i=t[2];if(r[27][1]=[0,u],!x)return x;for(var c=i[2];;){if(!c)return;var v=c[2];d(u,c[1]);var c=v}}}function fC(x,r){var e=x[27][1];if(e){var t=e[1],u=eq(O);x[27][1]=[0,function(M){return xj(M,u)}];var i=[0,[0,t,u]]}else var i=0;var c=x[31][1],v=x[25][1],a=x[24][1],l=x[4][1],m=x[2][1],h=x[1][1];try{var T=d(r,x);TB(1,x,i);var b=[0,T];return b}catch(F){var N=U2(F);if(N!==gs)throw W0(N,0);TB(0,x,i),x[1][1]=h,x[2][1]=m,x[4][1]=l,x[24][1]=a,x[25][1]=v,x[31][1]=c;var j=ul(x),I=Z6(x[25][1],j);return x[26][1]=I,0}}function fh(x,r,e){var t=fC(x,e);return t?t[1]:r}function n4(x,r){var e=ix(r);if(!e)return r;var t=e[1],u=e[2],i=d(x,t);return t===i?r:ix([0,i,u])}var EB=d5(cs0,function(x){var r=Nj(x,us0),e=Pj(x,fs0),t=e[24],u=e[28],i=e[41],c=e[91],v=e[p6],a=e[vA],l=e[m_],m=e[VL],h=e[BR],T=e[jO],b=e[6],N=e[7],j=e[10],I=e[17],F=e[23],M=e[29],z=e[39],B=e[42],K=e[52],n0=e[61],$=e[Je],H=e[z1],t0=e[Wa],c0=e[P3],r0=e[OI],v0=e[DR],a0=e[NL],g0=e[XP],i0=e[Ap],s0=e[jg],d0=e[gp],w0=e[U9],M0=e[O8],C0=e[Db],D0=e[Gd],I0=e[$T],j0=e[LO],y0=e[_L],Y0=e[$D],L=e[UL],N0=e[yD],S0=e[Vb],K0=e[fL],A0=e[YD],$0=e[RF],ex=e[wD],xx=e[dD],tx=e[AD],z0=e[xL],px=e[fD],sx=Cj(x,0,0,MM,Mj,1)[1];return Dj(x,[0,B,function(Q,b0){var U=b0[2],h0=D6(function(m0){return ma(m0[1][2],Q[1+r])<0?1:0},U),_0=aa(h0);return aa(U)===_0?b0:[0,b0[1],h0,b0[3]]},px,function(Q,b0,U){var h0=U[2];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],_0]})},z0,function(Q,b0){var U=b0[2];return P0(d(Q[1][1+i],Q),U,b0,function(h0){return[0,b0[1],h0]})},tx,function(Q,b0,U){var h0=U[4],_0=U[3],m0=p(Q[1][1+a],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,T0]},xx,function(Q,b0,U){var h0=U[4],_0=U[3],m0=p(Q[1][1+a],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,T0]},ex,function(Q,b0,U){var h0=U[2];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],_0]})},$0,function(Q,b0,U){var h0=U[4],_0=U[3],m0=p(Q[1][1+T],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,T0]},T,function(Q,b0){var U=b0[2],h0=U[1],_0=b0[1],m0=U[2];return P0(d(Q[1][1+i],Q),m0,b0,function(T0){return[0,_0,[0,h0,T0]]})},h,function(Q,b0){var U=b0[2],h0=U[1],_0=b0[1],m0=U[2];return P0(d(Q[1][1+i],Q),m0,b0,function(T0){return[0,_0,[0,h0,T0]]})},A0,function(Q,b0,U){var h0=U[7],_0=U[2],m0=p(Q[1][1+m],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],m0,U[3],U[4],U[5],U[6],T0]},m,function(Q,b0){var U=b0[2],h0=U[1],_0=b0[1],m0=U[2];return P0(d(Q[1][1+i],Q),m0,b0,function(T0){return[0,_0,[0,h0,T0]]})},K0,function(Q,b0,U){var h0=U[2],_0=U[1];if(h0===0)return P0(d(Q[1][1+a],Q),_0,U,function(T0){return[0,T0,U[2],U[3]]});var m0=d(Q[1][1+t],Q);return P0(function(T0){return Ax(m0,T0)},h0,U,function(T0){return[0,U[1],T0,U[3]]})},S0,function(Q,b0){var U=b0[2],h0=U[2],_0=b0[1],m0=U[1],T0=d(Q[1][1+l],Q);return P0(function(X){return n4(T0,X)},m0,b0,function(X){return[0,_0,[0,X,h0]]})},l,function(Q,b0){var U=b0[2],h0=U[2],_0=U[1],m0=b0[1];if(h0===0)return P0(d(Q[1][1+v],Q),_0,b0,function(X){return[0,m0,[0,X,h0]]});var T0=d(Q[1][1+t],Q);return P0(function(X){return Ax(T0,X)},h0,b0,function(X){return[0,m0,[0,_0,X]]})},L,function(Q,b0,U){var h0=U[6],_0=U[5],m0=p(Q[1][1+N0],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],U[3],U[4],m0,T0,U[7]]},Y0,function(Q,b0){var U=b0[2],h0=b0[1],_0=U[3];return P0(d(Q[1][1+i],Q),_0,[0,h0,U],function(m0){return[0,h0,[0,U[1],U[2],m0]]})},y0,function(Q,b0){var U=b0[2],h0=U[1],_0=b0[1],m0=U[2];return P0(d(Q[1][1+i],Q),m0,b0,function(T0){return[0,_0,[0,h0,T0]]})},j0,function(Q,b0,U){var h0=U[4],_0=U[3],m0=p(Q[1][1+a],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,T0]},I0,function(Q,b0,U){var h0=U[10],_0=U[3],m0=p(Q[1][1+D0],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,U[4],U[5],U[6],U[7],U[8],U[9],T0,U[11]]},C0,function(Q,b0){var U=b0[2],h0=b0[1],_0=U[4];return P0(d(Q[1][1+i],Q),_0,[0,h0,U],function(m0){return[0,h0,[0,U[1],U[2],U[3],m0]]})},M0,function(Q,b0,U){var h0=U[4],_0=U[3],m0=p(Q[1][1+w0],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,T0,U[5]]},d0,function(Q,b0){if(b0[0]===0){var U=b0[1];return P0(d(Q[1][1+v],Q),U,b0,function(Gx){return[0,Gx]})}var h0=b0[1],_0=h0[2],m0=_0[2],T0=h0[1],X=p(Q[1][1+v],Q,m0);return m0===X?b0:[1,[0,T0,[0,_0[1],X]]]},s0,function(Q,b0,U){var h0=U[2];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],_0]})},i0,function(Q,b0,U){var h0=U[3],_0=U[1],m0=W2(d(Q[1][1+c],Q),_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,m0,U[2],T0]},g0,function(Q,b0,U){var h0=U[2],_0=U[1],m0=_0[3],T0=_0[2],X=_0[1];if(m0)var Gx=n4(d(Q[1][1+u],Q),m0),Px=T0;else var Gx=0,Px=p(Q[1][1+u],Q,T0);var G0=p(Q[1][1+i],Q,h0);return T0===Px&&m0===Gx&&h0===G0?U:[0,[0,X,Px,Gx],G0]},a0,function(Q,b0,U){var h0=U[4];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],U[2],U[3],_0]})},v0,function(Q,b0,U){var h0=U[4];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],U[2],U[3],_0]})},r0,function(Q,b0,U){var h0=U[4],_0=U[3],m0=p(Q[1][1+a],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],U[2],m0,T0]},H,function(Q,b0,U){var h0=U[4],_0=U[3],m0=U[2],T0=U[1],X=p(Q[1][1+i],Q,h0);if(_0){var Gx=Ax(d(Q[1][1+T],Q),_0);return _0===Gx&&h0===X?U:[0,U[1],U[2],Gx,X]}if(m0){var Px=Ax(d(Q[1][1+h],Q),m0);return m0===Px&&h0===X?U:[0,U[1],Px,U[3],X]}var G0=p(Q[1][1+a],Q,T0);return T0===G0&&h0===X?U:[0,G0,U[2],U[3],X]},c0,function(Q,b0,U){var h0=U[3],_0=U[2],m0=p(Q[1][1+t0],Q,_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,U[1],m0,T0]},$,function(Q,b0,U){var h0=U[2];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],_0]})},c,function(Q,b0,U){var h0=U[4];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],U[2],U[3],_0]})},n0,function(Q,b0){var U=b0[2],h0=U[1],_0=b0[1],m0=U[2];return P0(d(Q[1][1+i],Q),m0,b0,function(T0){return[0,_0,[0,h0,T0]]})},K,function(Q,b0,U){var h0=U[2],_0=U[1],m0=n4(d(Q[1][1+a],Q),_0),T0=p(Q[1][1+i],Q,h0);return _0===m0&&h0===T0?U:[0,m0,T0]},z,function(Q,b0,U){var h0=U[3];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],U[2],_0]})},M,function(Q,b0){var U=b0[3];return P0(d(Q[1][1+i],Q),U,b0,function(h0){return[0,b0[1],b0[2],h0]})},F,function(Q,b0,U){var h0=U[3];return P0(d(Q[1][1+i],Q),h0,U,function(_0){return[0,U[1],U[2],_0]})},I,function(Q,b0){var U=b0[2],h0=U[1],_0=b0[1],m0=U[2];return P0(d(Q[1][1+i],Q),m0,b0,function(T0){return[0,_0,[0,h0,T0]]})},j,function(Q,b0,U){var h0=U[2],_0=U[1],m0=_0[3],T0=_0[2],X=_0[1];if(m0)var Gx=n4(d(Q[1][1+u],Q),m0),Px=T0;else var Gx=0,Px=p(Q[1][1+u],Q,T0);var G0=p(Q[1][1+i],Q,h0);return T0===Px&&m0===Gx&&h0===G0?U:[0,[0,X,Px,Gx],G0]},N,function(Q,b0,U){var h0=U[2],_0=h0[2],m0=h0[1],T0=U[1];if(!_0)return P0(p(Q[1][1+b],Q,b0),m0,U,function(Gx){return[0,T0,[0,Gx,_0]]});var X=_0[1];return P0(d(Q[1][1+a],Q),X,U,function(Gx){return[0,T0,[0,m0,[0,Gx]]]})}]),function(Q,b0,U){var h0=y5(b0,x);return h0[1+r]=U,d(sx,h0),Oj(b0,h0,x)}});function ch(x){var r=il(x);if(r)var e=r[1],t=dB(x)?(x4(x,e[3]),[0,p(EB[1],0,e[3])]):0,u=t;else var u=0;return[0,0,function(i,c){return u?c(u[1],i):i}]}function u4(x){var r=il(x);if(r){var e=r[1];if(dB(x)){x4(x,e[3]);var t=ao(x),u=[0,p(EB[1],0,[0,e[3][1]+1|0,0])],i=t}else var u=0,i=ao(x)}else var u=0,i=0;return[0,i,function(c,v){return u?p(v,u[1],c):c}]}function F2(x){return N1(x)?u4(x):ch(x)}function Xt(x,r){return p(F2(x)[2],r,function(e,t){return p(Bx(e,C3,2),e,t)})}function Q1(x,r){if(!r)return 0;var e=r[1];return[0,p(F2(x)[2],e,function(t,u){return p(Bx(t,oT,5),t,u)})]}function cC(x,r){return p(F2(x)[2],r,function(e,t){return p(Bx(e,qL,8),e,t)})}function al(x,r){return p(F2(x)[2],r,function(e,t){return p(Bx(e,-1045824777,9),e,t)})}function i4(x,r){return p(F2(x)[2],r,function(e,t){return p(Bx(e,-455772979,10),e,t)})}function SB(x,r){if(!r)return 0;var e=r[1];return[0,p(F2(x)[2],e,function(t,u){return p(Bx(t,jL,13),t,u)})]}function gn(x,r){return p(F2(x)[2],r,function(e,t){return p(Bx(e,ZR,14),e,t)})}function AB(x,r){return p(F2(x)[2],r,function(e,t){var u=d(Bx(e,TD,16),e);return n4(function(i){return W2(u,i)},t)})}function PB(x,r){return p(F2(x)[2],r,function(e,t){return p(Bx(e,-21476009,17),e,t)})}d5(ss0,function(x){var r=Nj(x,ns0),e=jj(is0),t=e.length-1,u=LM.length-1,i=$a(t+u|0,0),c=t-1|0,v=0;if(c>=0)for(var a=v;;){var l=z6(x,N2(e,a)[1+a]);N2(i,a)[1+a]=l;var m=a+1|0;if(c===a)break;var a=m}var h=u-1|0,T=0;if(h>=0)for(var b=T;;){var N=b+t|0,j=Nj(x,N2(LM,b)[1+b]);N2(i,N)[1+N]=j;var I=b+1|0;if(h===b)break;var b=I}var F=i[4],M=i[5],z=i[eF],B=i[m_],K=i[316],n0=i[317],$=i[44],H=i[aD],t0=i[bF],c0=Cj(x,0,0,MM,Mj,1)[1];return Dj(x,[0,H,function(r0){return[0,r0[1+K],r0[1+n0]]},B,function(r0,v0){var a0=v0[2],g0=v0[1];return b1(d(r0[1][1+M],r0),g0),b1(d(r0[1][1+F],r0),a0)},z,function(r0,v0){return v0?p(r0[1][1+B],r0,v0[1]):0},M,function(r0,v0){var a0=v0[1],g0=r0[1+K];if(g0){var i0=ma(a0[2],g0[1][1][2])<0?1:0,s0=i0&&(r0[1+K]=[0,v0],0);return s0}var d0=ma(a0[2],r0[1+r][2])<0?1:0,w0=d0&&(r0[1+K]=[0,v0],0);return w0},F,function(r0,v0){var a0=v0[1],g0=r0[1+n0];if(g0){var i0=ma(g0[1][1][2],a0[2])<0?1:0,s0=i0&&(r0[1+n0]=[0,v0],0);return s0}var d0=0<=ma(a0[2],r0[1+r][3])?1:0,w0=d0&&(r0[1+n0]=[0,v0],0);return w0},$,function(r0,v0){return p(r0[1][1+B],r0,v0),v0},t0,function(r0,v0,a0){return p(r0[1][1+z],r0,a0[2]),a0}]),function(r0,v0,a0){var g0=y5(v0,x);return g0[1+r]=a0,d(c0,g0),g0[1+K]=0,g0[1+n0]=0,Oj(v0,g0,x)}});function IB(x){var r=q(x);x:{if(typeof r==\"number\"){var e=r;if(50<=e)switch(e){case 50:var u=Ks0;break x;case 51:var u=Js0;break x;case 52:var u=Gs0;break x;case 53:var u=Ws0;break x;case 54:var u=Vs0;break x;case 55:var u=$s0;break x;case 56:var u=Qs0;break x;case 57:var u=Hs0;break x;case 58:var u=Zs0;break x;case 59:var u=xa0;break x;case 60:var u=ra0;break x;case 61:var u=ea0;break x;case 62:var u=ta0;break x;case 63:var u=na0;break x;case 64:var u=ua0;break x;case 65:var u=ia0;break x;case 66:var u=fa0;break x;case 115:var u=ca0;break x;case 116:var u=sa0;break x;case 117:var u=aa0;break x;case 118:var u=oa0;break x;case 119:var u=va0;break x;case 120:var u=la0;break x;case 121:var u=pa0;break x;case 122:var u=ka0;break x;case 123:var u=ma0;break x;case 124:var u=ha0;break x;case 125:var u=da0;break x;case 126:var u=ya0;break x;case 127:var u=ga0;break x;case 129:var u=wa0;break x;case 130:var u=_a0;break x;case 131:var u=ba0;break x}else switch(e){case 15:var u=as0;break x;case 16:var u=os0;break x;case 17:var u=vs0;break x;case 18:var u=ls0;break x;case 19:var u=ps0;break x;case 20:var u=ks0;break x;case 21:var u=ms0;break x;case 22:var u=hs0;break x;case 23:var u=ds0;break x;case 24:var u=ys0;break x;case 25:var u=gs0;break x;case 26:var u=ws0;break x;case 27:var u=_s0;break x;case 28:var u=bs0;break x;case 29:var u=Ts0;break x;case 30:var u=Es0;break x;case 31:var u=Ss0;break x;case 32:var u=As0;break x;case 33:var u=Ps0;break x;case 34:var u=Is0;break x;case 35:var u=Ns0;break x;case 36:var u=js0;break x;case 37:var u=Cs0;break x;case 38:var u=Os0;break x;case 39:var u=Ds0;break x;case 40:var u=Fs0;break x;case 41:var u=Rs0;break x;case 42:var u=Ls0;break x;case 43:var u=Ms0;break x;case 44:var u=qs0;break x;case 45:var u=Us0;break x;case 46:var u=Bs0;break x;case 47:var u=Xs0;break x;case 48:var u=Ys0;break x;case 49:var u=zs0;break x}}else switch(r[0]){case 4:var u=r[2];break x;case 11:var t=r[1]?Ta0:Ea0,u=t;break x}p2(Sa0,x);var u=Aa0}return E0(x),u}function a1(x){var r=V0(x),e=u0(x),t=IB(x);return[0,r,[0,t,Z([0,e],[0,L0(x)],O)]]}function NB(x){var r=V0(x),e=u0(x);J(x,14);var t=V0(x),u=IB(x),i=Z([0,e],[0,L0(x)],O),c=Yr(r,t),v=t[2],a=r[3],l=a[1]===v[1]?1:0,m=l&&(a[2]===v[2]?1:0);return 1-m&&q0(x,[0,c,z1]),[0,c,[0,u,i]]}function jv(x){var r=x[2],e=r[3]===0?1:0,t=r[2];if(!e)return e;for(var u=t;;){if(!u)return 1;var i=u[1][2],c=u[2];x:{if(i[1][2][0]===2&&!i[2]){var v=1;break x}var v=0}if(!v)return v;var u=c}}function f4(x){for(var r=x;;){var e=r[2];if(e[0]!==31)return 0;var t=e[1][2];if(t[2][0]===27)return 1;var r=t}}function sh(x,r,e){var t=e[2][1],u=e[1];if(!P(t,nv)){var i=r[19];return i&&q0(r,[0,u,5])}if(P(t,j3)){if(!P(t,B1))return r[18]?q0(r,[0,u,95]):ht(r,[0,u,80])}else if(r[14])return q0(r,[0,u,[26,P5(t)]]);if(fl(t))return ht(r,[0,u,80]);if(eh(t))return q0(r,[0,u,95]);if(x){var c=x[1];if(Pv(t))return ht(r,[0,u,c])}}function x0(x,r,e){var t=x?x[1]:V0(e),u=d(r,e),i=il(e),c=i?Yr(t,i[1]):t;return[0,c,u]}function sC(x,r,e){var t=x0(x,r,e),u=t[2];return[0,[0,t[1],u[1]],u[2]]}function ah(x){V2(x,0);var r=q(x);Z2(x);var e=xr(1,x);x:{r:{if(typeof r==\"number\"){if(r!==22)break x}else{if(r[0]!==4)break x;var t=r[3];if(P(t,b3)){if(!P(t,m3))e:{if(typeof e==\"number\"){if(e!==22)break e}else if(e[0]!==4)break e;break r}}else e:{if(typeof e==\"number\"){if(e!==22)break e}else if(e[0]!==4)break e;break r}}if(typeof e==\"number\"){if(Xo!==e)break x}else if(e[0]!==4||P(e[3],a6))break x}return 1}return 0}function jB(x){switch(x){case 3:return 2;case 4:return 1;case 5:return 1;case 6:return 1;case 7:return 1;default:return 1}}function aC(x,r,e){if(e){var t=e[1];x:{if(t!==8232&&t1!==t){if(t===10){var u=6;break x}if(t===13){var u=5;break x}if(c6<=t){var u=3;break x}if(t_<=t){var u=2;break x}if(M2<=t){var u=1;break x}var u=0;break x}var u=7}var i=u}else var i=4;return[0,i,x]}var Vb0=[n2,co0,as(0)];function CB(x,r,e,t){try{var u=N2(x,r)[1+r];return u}catch(c){var i=U2(c);throw i[1]===u5?W0([0,Vb0,e,H0(ar(io0),t,r,x.length-1)],1):W0(i,0)}}function oh(x,r){if(r[1]===0&&r[2]===0)return 0;var e=CB(x,r[1]-1|0,r,no0);return CB(e,r[2],r,uo0)}function OB(x){function r(a){var l=q(a);x:if(typeof l==\"number\"){if(8<=l){if(10<=l)break x}else if(l!==1)break x;return 1}return 0}function e(a,l,m,h,T,b){var N=H0(x[24],a,T,b);if(m)var j=qx(Oo0,b),I=-N;else var j=b,I=N;var F=L0(a);return r(a)?[2,l,[0,I,j,Z([0,h],[0,F],O)]]:[0,l]}function t(a){var l=V0(a),m=u0(a),h=q(a);if(typeof h==\"number\")switch(h){case 105:E0(a);var T=q(a);return typeof T!=\"number\"&&T[0]===0?e(a,l,1,m,T[1],T[2]):[0,l];case 31:case 32:E0(a);var b=L0(a);return r(a)?[1,l,[0,h===32?1:0,Z([0,m],[0,b],O)]]:[0,l]}else switch(h[0]){case 0:return e(a,l,0,m,h[1],h[2]);case 1:var N=h[2],j=H0(x[26],a,h[1],N),I=L0(a);return r(a)?[4,l,[0,j,N,Z([0,m],[0,I],O)]]:[0,l];case 2:var F=h[1],M=F[1],z=F[3],B=F[2];F[4]&&Ie(a,76),E0(a);var K=L0(a);return r(a)?[3,M,[0,B,z,Z([0,m],[0,K],O)]]:[0,M]}return E0(a),[0,l]}var u=[0,Do0,I1[1],0,0];function i(a){var l=a1(a),m=q(a);x:{if(typeof m==\"number\"){if(m===83){J(a,83);var h=t(a);break x}if(m===87){Ux(a,[8,l[2][1]]),J(a,87);var h=t(a);break x}}var h=0}return[0,l,h]}var c=0;function v(a,l,m,h,T,b,N){var j=aa(T),I=aa(b);function F(z){return[2,[0,[0,b],m,h,N]]}function M(z){return[2,[0,[1,T],m,h,N]]}return j===0?F(O):I===0?M(O):j>>0){if(Te>=$+1>>>0)break}else if($===10){var H=V0(I),t0=u0(I);E0(I);var c0=q(I);x:{r:if(typeof c0==\"number\"){var r0=c0-2|0;if(ce>>0){if(Te>>0)break r}else{if(r0!==7)break r;J(I,9);var v0=q(I);e:{t:if(typeof v0==\"number\"){if(v0!==1&&mr!==v0)break t;var a0=1;break e}var a0=0}q0(I,[0,H,[6,a0]])}break x}q0(I,[0,H,So0])}var K=[0,K[1],K[2],1,t0];continue}}var g0=K[2],i0=K[1],s0=x0(c,i,I),d0=s0[2],w0=d0[2],M0=d0[1],C0=s0[1],D0=M0[2][1],I0=M0[1];x:if(br(D0,Z0))var j0=K;else{var y0=q2(D0,0),Y0=97<=y0?1:0,L=Y0&&(y0<=s2?1:0);L&&q0(I,[0,I0,[10,b,D0]]),I1[3].call(null,D0,g0)&&q0(I,[0,I0,[4,b,D0]]);var N0=K[4],S0=K[3],K0=I1[4].call(null,D0,g0),A0=[0,K[1],K0,S0,N0];let ax=D0;var $0=function(Qx,kx){if(z&&z[1]!==Qx)return q0(I,[0,kx,[9,b,z,ax]])};if(typeof w0==\"number\"){if(z)switch(z[1]){case 0:q0(I,[0,C0,[3,b,D0]]);var j0=A0;break x;case 1:q0(I,[0,C0,[11,b,D0]]);var j0=A0;break x;case 4:q0(I,[0,C0,[2,b,D0]]);var j0=A0;break x}var j0=[0,[0,i0[1],i0[2],i0[3],i0[4],[0,[0,C0,[0,M0]],i0[5]]],K0,S0,N0]}else switch(w0[0]){case 0:q0(I,[0,w0[1],[9,b,z,D0]]);var j0=A0;break;case 1:var ex=w0[1],xx=w0[2];$0(0,ex);var j0=[0,[0,[0,[0,C0,[0,M0,[0,ex,xx]]],i0[1]],i0[2],i0[3],i0[4],i0[5]],K0,S0,N0];break;case 2:var tx=w0[1],z0=w0[2];$0(1,tx);var j0=[0,[0,i0[1],[0,[0,C0,[0,M0,[0,tx,z0]]],i0[2]],i0[3],i0[4],i0[5]],K0,S0,N0];break;case 3:var px=w0[1],sx=w0[2];$0(2,px);var j0=[0,[0,i0[1],i0[2],[0,[0,C0,[0,M0,[0,px,sx]]],i0[3]],i0[4],i0[5]],K0,S0,N0];break;default:var Q=w0[1],b0=w0[2];$0(4,Q);var j0=[0,[0,i0[1],i0[2],i0[3],[0,[0,C0,[0,M0,[0,Q,b0]]],i0[4]],i0[5]],K0,S0,N0]}}var U=q(I);x:{r:if(typeof U==\"number\"){var h0=U-2|0;if(ce>>0){if(Te>>0)break r}else{if(h0!==6)break r;Ux(I,18),J(I,8)}break x}J(I,9)}var K=j0}var _0=K[3],m0=K[4],T0=ix(K[1][5]),X=ix(K[1][4]),Gx=ix(K[1][3]),Px=ix(K[1][2]),G0=ix(K[1][1]),Kr=Mx(m0,u0(I));J(I,1);var S=q(I);x:{r:if(typeof S==\"number\"){if(S!==1&&mr!==S)break r;var G=L0(I);break x}var G=N1(I)?ao(I):0}var rx=O2([0,B],[0,G],Kr,O);if(z){switch(z[1]){case 0:var yx=[0,[0,G0,1,_0,rx]];break;case 1:var yx=[1,[0,Px,1,_0,rx]];break;case 2:var yx=v(I,b,1,_0,Gx,T0,rx);break;case 3:var yx=[3,[0,T0,_0,rx]];break;default:var yx=[4,[0,X,1,_0,rx]]}var Ex=yx}else{var nx=aa(G0),p0=aa(Px),Fx=aa(X),Sx=aa(Gx),bx=aa(T0),B0=function(ax){return[2,[0,Ao0,0,_0,rx]]};x:{if(nx===0&&p0===0&&Fx===0){if(Sx===0&&bx===0){var Wx=B0(O);break x}var Wx=v(I,b,0,_0,Gx,T0,rx);break x}if(p0===0&&Fx===0&&Sx===0&&bx<=nx){b1(function(Qx){return q0(I,[0,Qx[1],[3,b,Qx[2][1][2][1]]])},T0);var Wx=[0,[0,G0,0,_0,rx]];break x}if(nx===0){if(Fx===0&&Sx===0&&bx<=p0){b1(function(Qx){return q0(I,[0,Qx[1],[11,b,Qx[2][1][2][1]]])},T0);var Wx=[1,[0,Px,0,_0,rx]];break x}if(p0===0&&Sx===0&&bx<=Fx){b1(function(Qx){return q0(I,[0,Qx[1],[11,b,Qx[2][1][2][1]]])},T0);var Wx=[4,[0,X,0,_0,rx]];break x}}q0(I,[0,N,[5,b]]);var Wx=B0(O)}var Ex=Wx}return Ex},l);return[0,T,j,Z([0,h],0,O)]}]}function ol(x){return[0,da(x)]}function vh(x,r,e){if(typeof e==\"number\")return[0,x,r];if(e[0]===0){var t=e[1],u=fx(x,t),i=e[2];return u===0?i===r?e:[0,t,r]:0<=u?[1,2,x,r,e,0]:[1,2,x,r,0,e]}var c=e[5],v=e[4],a=e[3],l=e[2],m=fx(x,l),h=e[1];if(m===0)return a===r?e:[1,h,x,r,v,c];if(0<=m){var T=vh(x,r,c);return c===T?e:lU(v,l,a,T)}var b=vh(x,r,v);return v===b?e:lU(b,l,a,c)}function $b0(x,r){if(typeof x==\"number\"){var e=x;if(57<=e)switch(e){case 57:if(typeof r==\"number\"&&r===57)return 0;break;case 58:if(typeof r==\"number\"&&r===58)return 0;break;case 59:if(typeof r==\"number\"&&r===59)return 0;break;case 60:if(typeof r==\"number\"&&r===60)return 0;break;case 61:if(typeof r==\"number\"&&r===61)return 0;break;case 62:if(typeof r==\"number\"&&r===62)return 0;break;case 63:if(typeof r==\"number\"&&r===63)return 0;break;case 64:if(typeof r==\"number\"&&r===64)return 0;break;case 65:if(typeof r==\"number\"&&r===65)return 0;break;case 66:if(typeof r==\"number\"&&r===66)return 0;break;case 67:if(typeof r==\"number\"&&r===67)return 0;break;case 68:if(typeof r==\"number\"&&r===68)return 0;break;case 69:if(typeof r==\"number\"&&r===69)return 0;break;case 70:if(typeof r==\"number\"&&r===70)return 0;break;case 71:if(typeof r==\"number\"&&r===71)return 0;break;case 72:if(typeof r==\"number\"&&r===72)return 0;break;case 73:if(typeof r==\"number\"&&r===73)return 0;break;case 74:if(typeof r==\"number\"&&r===74)return 0;break;case 75:if(typeof r==\"number\"&&r===75)return 0;break;case 76:if(typeof r==\"number\"&&r===76)return 0;break;case 77:if(typeof r==\"number\"&&r===77)return 0;break;case 78:if(typeof r==\"number\"&&r===78)return 0;break;case 79:if(typeof r==\"number\"&&r===79)return 0;break;case 80:if(typeof r==\"number\"&&r===80)return 0;break;case 81:if(typeof r==\"number\"&&r===81)return 0;break;case 82:if(typeof r==\"number\"&&r===82)return 0;break;case 83:if(typeof r==\"number\"&&r===83)return 0;break;case 84:if(typeof r==\"number\"&&r===84)return 0;break;case 85:if(typeof r==\"number\"&&r===85)return 0;break;case 86:if(typeof r==\"number\"&&r===86)return 0;break;case 87:if(typeof r==\"number\"&&r===87)return 0;break;case 88:if(typeof r==\"number\"&&r===88)return 0;break;case 89:if(typeof r==\"number\"&&r===89)return 0;break;case 90:if(typeof r==\"number\"&&r===90)return 0;break;case 91:if(typeof r==\"number\"&&r===91)return 0;break;case 92:if(typeof r==\"number\"&&r===92)return 0;break;case 93:if(typeof r==\"number\"&&r===93)return 0;break;case 94:if(typeof r==\"number\"&&r===94)return 0;break;case 95:if(typeof r==\"number\"&&r===95)return 0;break;case 96:if(typeof r==\"number\"&&r===96)return 0;break;case 97:if(typeof r==\"number\"&&r===97)return 0;break;case 98:if(typeof r==\"number\"&&r===98)return 0;break;case 99:if(typeof r==\"number\"&&r===99)return 0;break;case 100:if(typeof r==\"number\"&&y2===r)return 0;break;case 101:if(typeof r==\"number\"&&fe===r)return 0;break;case 102:if(typeof r==\"number\"&&g1===r)return 0;break;case 103:if(typeof r==\"number\"&&sn===r)return 0;break;case 104:if(typeof r==\"number\"&&Be===r)return 0;break;case 105:if(typeof r==\"number\"&&ui===r)return 0;break;case 106:if(typeof r==\"number\"&&Je===r)return 0;break;case 107:if(typeof r==\"number\"&&K2===r)return 0;break;case 108:if(typeof r==\"number\"&&sv===r)return 0;break;case 109:if(typeof r==\"number\"&&st===r)return 0;break;case 110:if(typeof r==\"number\"&&z1===r)return 0;break;case 111:if(typeof r==\"number\"&&ce===r)return 0;break;default:if(typeof r==\"number\"&&ea<=r)return 0}else switch(e){case 0:if(typeof r==\"number\"&&!r)return 0;break;case 1:if(typeof r==\"number\"&&r===1)return 0;break;case 2:if(typeof r==\"number\"&&r===2)return 0;break;case 3:if(typeof r==\"number\"&&r===3)return 0;break;case 4:if(typeof r==\"number\"&&r===4)return 0;break;case 5:if(typeof r==\"number\"&&r===5)return 0;break;case 6:if(typeof r==\"number\"&&r===6)return 0;break;case 7:if(typeof r==\"number\"&&r===7)return 0;break;case 8:if(typeof r==\"number\"&&r===8)return 0;break;case 9:if(typeof r==\"number\"&&r===9)return 0;break;case 10:if(typeof r==\"number\"&&r===10)return 0;break;case 11:if(typeof r==\"number\"&&r===11)return 0;break;case 12:if(typeof r==\"number\"&&r===12)return 0;break;case 13:if(typeof r==\"number\"&&r===13)return 0;break;case 14:if(typeof r==\"number\"&&r===14)return 0;break;case 15:if(typeof r==\"number\"&&r===15)return 0;break;case 16:if(typeof r==\"number\"&&r===16)return 0;break;case 17:if(typeof r==\"number\"&&r===17)return 0;break;case 18:if(typeof r==\"number\"&&r===18)return 0;break;case 19:if(typeof r==\"number\"&&r===19)return 0;break;case 20:if(typeof r==\"number\"&&r===20)return 0;break;case 21:if(typeof r==\"number\"&&r===21)return 0;break;case 22:if(typeof r==\"number\"&&r===22)return 0;break;case 23:if(typeof r==\"number\"&&r===23)return 0;break;case 24:if(typeof r==\"number\"&&r===24)return 0;break;case 25:if(typeof r==\"number\"&&r===25)return 0;break;case 26:if(typeof r==\"number\"&&r===26)return 0;break;case 27:if(typeof r==\"number\"&&r===27)return 0;break;case 28:if(typeof r==\"number\"&&r===28)return 0;break;case 29:if(typeof r==\"number\"&&r===29)return 0;break;case 30:if(typeof r==\"number\"&&r===30)return 0;break;case 31:if(typeof r==\"number\"&&r===31)return 0;break;case 32:if(typeof r==\"number\"&&r===32)return 0;break;case 33:if(typeof r==\"number\"&&r===33)return 0;break;case 34:if(typeof r==\"number\"&&r===34)return 0;break;case 35:if(typeof r==\"number\"&&r===35)return 0;break;case 36:if(typeof r==\"number\"&&r===36)return 0;break;case 37:if(typeof r==\"number\"&&r===37)return 0;break;case 38:if(typeof r==\"number\"&&r===38)return 0;break;case 39:if(typeof r==\"number\"&&r===39)return 0;break;case 40:if(typeof r==\"number\"&&r===40)return 0;break;case 41:if(typeof r==\"number\"&&r===41)return 0;break;case 42:if(typeof r==\"number\"&&r===42)return 0;break;case 43:if(typeof r==\"number\"&&r===43)return 0;break;case 44:if(typeof r==\"number\"&&r===44)return 0;break;case 45:if(typeof r==\"number\"&&r===45)return 0;break;case 46:if(typeof r==\"number\"&&r===46)return 0;break;case 47:if(typeof r==\"number\"&&r===47)return 0;break;case 48:if(typeof r==\"number\"&&r===48)return 0;break;case 49:if(typeof r==\"number\"&&r===49)return 0;break;case 50:if(typeof r==\"number\"&&r===50)return 0;break;case 51:if(typeof r==\"number\"&&r===51)return 0;break;case 52:if(typeof r==\"number\"&&r===52)return 0;break;case 53:if(typeof r==\"number\"&&r===53)return 0;break;case 54:if(typeof r==\"number\"&&r===54)return 0;break;case 55:if(typeof r==\"number\"&&r===55)return 0;break;default:if(typeof r==\"number\"&&r===56)return 0}}else switch(x[0]){case 0:if(typeof r!=\"number\"&&r[0]===0){var t=r[1],u=x[1];return p(d(hr[43],0),u,t)}break;case 1:if(typeof r!=\"number\"&&r[0]===1){var i=r[1],c=x[1];return p(d(hr[42],0),c,i)}break;case 2:if(typeof r!=\"number\"&&r[0]===2){var v=r[2],a=r[1],l=x[2],m=x[1],h=p(d(hr[41],0),m,a);return h===0?p(d(hr[40],0),l,v):h}break;case 3:if(typeof r!=\"number\"&&r[0]===3){var T=r[2],b=r[1],N=x[2],j=x[1],I=p(d(hr[39],0),j,b);return I===0?p(d(hr[38],0),N,T):I}break;case 4:if(typeof r!=\"number\"&&r[0]===4){var F=r[2],M=r[1],z=x[2],B=x[1],K=p(d(hr[37],0),B,M);return K===0?p(d(hr[36],0),z,F):K}break;case 5:if(typeof r!=\"number\"&&r[0]===5){var n0=r[1],$=x[1];return p(d(hr[35],0),$,n0)}break;case 6:if(typeof r!=\"number\"&&r[0]===6){var H=r[1],t0=x[1];return p(d(hr[34],0),t0,H)}break;case 7:if(typeof r!=\"number\"&&r[0]===7){var c0=r[2],r0=x[2],v0=r[1],a0=x[1],g0=p(d(hr[33],0),a0,v0);if(g0!==0)return g0;if(!r0)return c0?-1:0;var i0=r0[1];if(!c0)return 1;var s0=c0[1];return p(d(hr[32],0),i0,s0)}break;case 8:if(typeof r!=\"number\"&&r[0]===8){var d0=r[1],w0=x[1];return p(d(hr[31],0),w0,d0)}break;case 9:if(typeof r!=\"number\"&&r[0]===9){var M0=r[2],C0=x[2],D0=r[3],I0=r[1],j0=x[3],y0=x[1],Y0=p(d(hr[30],0),y0,I0);if(Y0!==0)return Y0;if(C0)var L=C0[1],N0=M0?p(hr[29],L,M0[1]):1;else var N0=M0?-1:0;return N0===0?p(d(hr[28],0),j0,D0):N0}break;case 10:if(typeof r!=\"number\"&&r[0]===10){var S0=r[2],K0=r[1],A0=x[2],$0=x[1],ex=p(d(hr[27],0),$0,K0);return ex===0?p(d(hr[26],0),A0,S0):ex}break;case 11:if(typeof r!=\"number\"&&r[0]===11){var xx=r[2],tx=r[1],z0=x[2],px=x[1],sx=p(d(hr[25],0),px,tx);return sx===0?p(d(hr[24],0),z0,xx):sx}break;case 12:if(typeof r!=\"number\"&&r[0]===12){var Q=r[1],b0=x[1];return p(d(hr[23],0),b0,Q)}break;case 13:if(typeof r!=\"number\"&&r[0]===13){var U=r[1],h0=x[1];return p(d(hr[22],0),h0,U)}break;case 14:if(typeof r!=\"number\"&&r[0]===14){var _0=r[1],m0=x[1];return p(d(hr[21],0),m0,_0)}break;case 15:if(typeof r!=\"number\"&&r[0]===15){var T0=r[4],X=r[3],Gx=r[2],Px=r[1],G0=x[4],Kr=x[3],S=x[2],G=x[1],rx=p(d(hr[20],0),G,Px);if(rx!==0)return rx;var yx=p(d(hr[19],0),S,Gx);if(yx!==0)return yx;var Ex=p(d(hr[18],0),Kr,X);return Ex===0?p(d(hr[17],0),G0,T0):Ex}break;case 16:if(typeof r!=\"number\"&&r[0]===16){var nx=r[1],p0=x[1];return p(d(hr[16],0),p0,nx)}break;case 17:if(typeof r!=\"number\"&&r[0]===17){var Fx=r[2],Sx=r[1],bx=x[2],B0=x[1],Wx=p(d(hr[15],0),B0,Sx);return Wx===0?p(d(hr[14],0),bx,Fx):Wx}break;case 18:if(typeof r!=\"number\"&&r[0]===18){var Yx=r[1],ax=x[1];return p(d(hr[13],0),ax,Yx)}break;case 19:if(typeof r!=\"number\"&&r[0]===19){var Qx=r[1],kx=x[1];return p(d(hr[12],0),kx,Qx)}break;case 20:if(typeof r!=\"number\"&&r[0]===20){var tr=r[1],sr=x[1];if(Zl<=sr){if(typeof tr==\"number\"&&Zl===tr)return 0}else if(typeof tr==\"number\"&&dR===tr)return 0;var Mr=function(le){return Zl<=le?1:0},a2=Mr(tr);return We(Mr(sr),a2)}break;case 21:if(typeof r!=\"number\"&&r[0]===21){var _2=r[1],i2=x[1];return p(d(hr[11],0),i2,_2)}break;case 22:if(typeof r!=\"number\"&&r[0]===22){var Q2=r[1],jx=x[1];return p(d(hr[10],0),jx,Q2)}break;case 23:if(typeof r!=\"number\"&&r[0]===23){var _=r[2],V=r[1],lx=x[2],U0=x[1],ox=p(d(hr[9],0),U0,V);return ox===0?p(d(hr[8],0),lx,_):ox}break;case 24:if(typeof r!=\"number\"&&r[0]===24){var wx=r[1],Cr=x[1];if(Bl===Cr){if(typeof wx==\"number\"&&Bl===wx)return 0}else if(s6<=Cr){if(typeof wx==\"number\"&&s6===wx)return 0}else if(typeof wx==\"number\"&&XO===wx)return 0;var Hx=function(le){return Bl===le?0:s6<=le?2:1},Zr=Hx(wx);return We(Hx(Cr),Zr)}break;case 25:if(typeof r!=\"number\"&&r[0]===25){var dr=r[1],Or=x[1];return p(d(hr[7],0),Or,dr)}break;case 26:if(typeof r!=\"number\"&&r[0]===26){var x2=r[1],ux=x[1];return p(d(hr[6],0),ux,x2)}break;case 27:if(typeof r!=\"number\"&&r[0]===27){var Lx=r[2],Zx=r[1],qr=x[2],Y2=x[1],H2=p(d(hr[5],0),Y2,Zx);return H2===0?p(d(hr[4],0),qr,Lx):H2}break;case 28:if(typeof r!=\"number\"&&r[0]===28){var Kt=r[2],dt=r[1],Jt=x[2],C1=x[1],q1=p(d(hr[3],0),C1,dt);return q1===0?p(d(hr[2],0),Jt,Kt):q1}break;default:if(typeof r!=\"number\"&&r[0]===29){var b2=r[1],wn=x[1];return p(d(hr[1],0),wn,b2)}}function _n(le){if(typeof le!=\"number\")switch(le[0]){case 0:return 16;case 1:return 17;case 2:return 19;case 3:return 20;case 4:return 21;case 5:return 22;case 6:return 23;case 7:return 24;case 8:return 26;case 9:return 27;case 10:return 28;case 11:return 30;case 12:return 31;case 13:return 33;case 14:return 36;case 15:return 48;case 16:return 50;case 17:return 51;case 18:return 53;case 19:return 61;case 20:return 69;case 21:return 72;case 22:return 81;case 23:return 88;case 24:return sv;case 25:return Wa;case 26:return y6;case 27:return M2;case 28:return jD;default:return QO}var Ze=le;if(57<=Ze)switch(Ze){case 57:return 79;case 58:return 80;case 59:return 82;case 60:return 83;case 61:return 84;case 62:return 85;case 63:return 86;case 64:return 87;case 65:return 89;case 66:return 90;case 67:return 91;case 68:return 92;case 69:return 93;case 70:return 94;case 71:return 95;case 72:return 96;case 73:return 97;case 74:return 98;case 75:return 99;case 76:return y2;case 77:return fe;case 78:return g1;case 79:return sn;case 80:return Be;case 81:return ui;case 82:return Je;case 83:return K2;case 84:return st;case 85:return z1;case 86:return ce;case 87:return ea;case 88:return Te;case 89:return mr;case 90:return tv;case 91:return P3;case 92:return zl;case 93:return vf;case 94:return m6;case 95:return s2;case 96:return rn;case 97:return S3;case 98:return Ba;case 99:return Sk;case 100:return Br;case 101:return Xo;case 102:return d6;case 103:return r6;case 104:return r8;case 105:return _k;case 106:return wR;case 107:return fR;case 108:return OI;case 109:return GF;case 110:return CL;case 111:return SR;default:return $L}switch(Ze){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7;case 8:return 8;case 9:return 9;case 10:return 10;case 11:return 11;case 12:return 12;case 13:return 13;case 14:return 14;case 15:return 15;case 16:return 18;case 17:return 25;case 18:return 29;case 19:return 32;case 20:return 34;case 21:return 35;case 22:return 37;case 23:return 38;case 24:return 39;case 25:return 40;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 49;case 34:return 52;case 35:return 54;case 36:return 55;case 37:return 56;case 38:return 57;case 39:return 58;case 40:return 59;case 41:return 60;case 42:return 62;case 43:return 63;case 44:return 64;case 45:return 65;case 46:return 66;case 47:return 67;case 48:return 68;case 49:return 70;case 50:return 71;case 51:return 73;case 52:return 74;case 53:return 75;case 54:return 76;case 55:return 77;default:return 78}}var bs=_n(r);return We(_n(x),bs)}var oC=kU([0,function(x,r){var e=r[2],t=x[2],u=wU(x[1],r[1]);return u===0?$b0(t,e):u}]);function c4(x,r,e){var t=e[2][1],u=e[1];return br(t,Z0)?r:I1[3].call(null,t,r)?(q0(x,[0,u,[0,t]]),r):I1[4].call(null,t,r)}function vC(x){return function(r){var e=r[2];switch(e[0]){case 0:return m1(function(t,u){var i=u[0]===0?u[1][2][2]:u[1][2][1];return vC(t)(i)},x,e[1][1]);case 1:return m1(function(t,u){if(u[0]===2)return t;var i=u[1][2][1];return vC(t)(i)},x,e[1][1]);case 2:return[0,e[1][1],x];default:return Tx($l0)}}}var X0=Vq(Hl0,Ql0[1]);function lh(x,r,e){var t=x?x[1]:0,u=r?r[1]:0,i=V0(e),c=q(e);if(typeof c==\"number\")switch(c){case 104:var v=u0(e);return E0(e),[0,[0,i,[0,0,Z([0,v],0,O)]]];case 105:var a=u0(e);return E0(e),[0,[0,i,[0,1,Z([0,a],0,O)]]];case 127:if(t){var l=u0(e);return E0(e),[0,[0,i,[0,2,Z([0,l],0,O)]]]}break}else if(c[0]===4){var m=c[3];if(P(m,qa)){if(!P(m,dw)&&u&&th(1,e)){var h=u0(e);return E0(e),[0,[0,i,[0,4,Z([0,h],0,O)]]]}}else if(u&&th(1,e)){var T=u0(e);E0(e);var b=q(e);x:{if(typeof b!=\"number\"&&b[0]===4&&!P(b[3],dw)){var N=V0(e);E0(e);var j=Yr(i,N),I=5;break x}var j=i,I=3}return[0,[0,j,[0,I,Z([0,T],0,O)]]]}}return 0}function DB(x,r,e,t,u){r===1&&Ie(u,76);var i=u0(u);E0(u);var c=L0(u);if(x)var v=Z([0,Mx(x[1],i)],[0,c],O),a=v,l=qx(to0,t),m=-e;else var a=Z([0,i],[0,c],O),l=t,m=e;return[30,[0,m,l,a]]}function FB(x,r,e,t){var u=u0(t);E0(t);var i=L0(t);if(x)var c=Z([0,Mx(x[1],u)],[0,i],O),v=qx(eo0,e),a=c,l=v,m=f5(FN,r);else var a=Z([0,u],[0,i],O),l=e,m=r;return[31,[0,m,l,a]]}var RB=[],LB=[],MB=[],qB=[],UB=[],BB=[],XB=[],YB=[],zB=[],KB=[],JB=[];function Hr(x){var r=V0(x),e=xC(0,x);return GB(e,r,lC(e))}function s4(x){return 1-A2(x)&&Ux(x,g1),x0(0,function(r){return J(r,87),Hr(r)},x)}function GB(x,r,e){var t=q(x);return typeof t==\"number\"&&t===42?x0([0,r],function(u){J(u,42);var i=lC(xC(1,u));ih(u,86);var c=Hr(u);ih(u,87);var v=Hr(u);return[17,[0,e,i,c,v,Z(0,[0,L0(u)],O)]]},x):e}function lC(x){var r=V0(x);if(q(x)===90){var e=u0(x);E0(x);var t=e}else var t=0;return WB(x,[0,t],r,VB(x))}function WB(x,r,e,t){var u=r?r[1]:0;return q(x)===90?x0([0,e],p(RB[1],u,[0,t,0]),x):t}function VB(x){var r=V0(x);if(q(x)===92){var e=u0(x);E0(x);var t=e}else var t=0;return $B(x,[0,t],r,QB(x))}function $B(x,r,e,t){var u=r?r[1]:0;return q(x)===92?x0([0,e],p(LB[1],u,[0,t,0]),x):t}function QB(x){return HB(x,pC(x))}function HB(x,r){var e=q(x);if(typeof e==\"number\"&&e===11&&!x[15]){var t=ph(x,r);return mh(1,x,t[1],0,[0,t[1],[0,0,[0,t,0],0,0]])}return r}function pC(x){var r=q(x);if(typeof r==\"number\"&&r===86)return x0(0,function(t){var u=u0(t);J(t,86);var i=Z([0,u],0,O);return[11,[0,pC(t),i]]},x);var e=V0(x);return ZB(0,x,e,Qb0(x))}function kC(x,r,e,t,u){var i=r?r[1]:0;if(N1(e))return u;var c=q(e);if(typeof c==\"number\"){if(c===6){E0(e);var v=0;return x<50?vl(x+1|0,i,v,e,t,u):J2(vl,[0,i,v,e,t,u])}if(c===10){var a=xr(1,e);if(typeof a==\"number\"&&a===6){Ux(e,Pa0),J(e,10),J(e,6);var l=0;return x<50?vl(x+1|0,i,l,e,t,u):J2(vl,[0,i,l,e,t,u])}return Ux(e,Ia0),u}if(c===84){E0(e),q(e)!==6&&Ux(e,40),J(e,6);var m=1,h=1;return x<50?vl(x+1|0,h,m,e,t,u):J2(vl,[0,h,m,e,t,u])}}return u}function ZB(x,r,e,t){return n5(kC(0,x,r,e,t))}function vl(x,r,e,t,u,i){var c=x0([0,u],function(a){if(!e&&u2(a,7))return[16,[0,i,Z(0,[0,L0(a)],O)]];var l=Hr(a);J(a,7);var m=[0,i,l,Z(0,[0,L0(a)],O)];return r?[21,[0,m,e]]:[20,m]},t),v=[0,r];return x<50?kC(x+1|0,v,t,u,c):J2(kC,[0,v,t,u,c])}function xX(x){if(V2(x,0),q(x)===4){E0(x);var r=xX(x);J(x,5);var t=r}else if(dn(x))var e=p(X0[13],0,x),t=[0,p(MB[1],x,[0,e[1],[0,e]])];else{Ux(x,45);var t=0}return Z2(x),t}function Qb0(x){var r=V0(x),e=q(x);x:{r:{if(typeof e==\"number\")switch(e){case 4:var t=V0(x),u=x0(0,xT0,x),i=u[2],c=u[1];return i[0]===0?mh(1,x,t,0,[0,c,i[1]]):i[1];case 6:return x0(0,function(i0){var s0=u0(i0);J(i0,6);var d0=Av(0,i0),w0=p(qB[1],d0,0),M0=w0[2],C0=w0[1];return J(i0,7),[28,[0,C0,M0,Z([0,s0],[0,L0(i0)],O)]]},x);case 47:return x0(0,function(i0){var s0=u0(i0);J(i0,47);var d0=xX(i0);if(!d0)return Na0;var w0=d0[1],M0=N1(i0)?0:yC(i0);return[24,[0,w0,M0,Z([0,s0],0,O)]]},x);case 54:return x0(0,function(i0){var s0=u0(i0);E0(i0);var d0=iX(i0),w0=d0[2],M0=d0[1];return[15,[0,w0,M0,Z([0,s0],0,O)]]},x);case 99:var v=V0(x),a=Q1(x,Ov(x));return mh(1,x,v,a,kh(x));case 105:return x0(0,Hb0,x);case 107:var l=u0(x);return E0(x),[0,r,[10,Z([0,l],[0,L0(x)],O)]];case 126:return x0(0,function(i0){var s0=u0(i0);E0(i0);var d0=L0(i0),w0=Hr(i0);return[25,[0,w0,Z([0,s0],[0,d0],O)]]},x);case 127:return x0(0,function(i0){var s0=u0(i0);E0(i0);var d0=L0(i0),w0=Hr(i0);return[27,[0,w0,Z([0,s0],[0,d0],O)]]},x);case 128:return x0(0,function(i0){var s0=u0(i0);E0(i0);var d0=L0(i0),w0=x0(0,function(M0){var C0=Cv(M0);return[0,C0,fh(M0,[0,V0(M0)],function(D0){if(1-u2(D0,42))throw W0(gs,1);var I0=lC(D0);if(!D0[16]&&q(D0)===86)throw W0(gs,1);return[1,[0,I0[1],I0]]}),1,0,0]},i0);return[18,[0,w0,Z([0,s0],[0,d0],O)]]},x);case 0:case 2:var m=dC(0,1,1,x);return[0,m[1],[14,m[2]]];case 132:case 133:break r;case 42:case 43:break;case 31:case 32:var h=u0(x);return E0(x),[0,r,[32,[0,e===32?1:0,Z([0,h],[0,L0(x)],O)]]];default:break x}else switch(e[0]){case 2:var T=e[1],b=T[3],N=T[2],j=T[1];T[4]&&Ie(x,76);var I=u0(x);return E0(x),[0,j,[29,[0,N,b,Z([0,I],[0,L0(x)],O)]]];case 4:var F=e[3];if(P(F,$s)){if(P(F,Vo)){if(!P(F,_3))break r}else if(x[28][1]){var M=xr(1,x);e:if(typeof M==\"number\"){if(M!==4&&M!==99)break e;var z=V0(x);E0(x);var B=Q1(x,Ov(x));return mh(0,x,z,B,kh(x))}var K=hh(x);return[0,K[1],[19,K[2]]]}}else if(x[28][1])return x0(0,function(i0){var s0=u0(i0);ys(i0,ja0);var d0=Q1(i0,Ov(i0)),w0=eX(i0);if(iC(i0))var C0=cC(i0,gC(i0)),D0=w0;else var M0=gC(i0),C0=M0,D0=p(F2(i0)[2],w0,function(I0,j0){return p(Bx(I0,420776873,12),I0,j0)});return[13,[0,d0,D0,C0,Z([0,s0],0,O)]]},x);break;case 7:if(P(e[1],Ll))break x;return Ux(x,84),[0,r,Ca0];case 12:var n0=e[3],$=e[2],H=e[1],t0=0;return x0(0,function(i0){return DB(t0,H,$,n0,i0)},x);case 13:var c0=e[3],r0=e[2],v0=0;return x0(0,function(i0){return FB(v0,r0,c0,i0)},x);default:break x}var a0=hh(x);return[0,a0[1],[19,a0[2]]]}return x0(0,function(i0){return[26,rX(i0)]},x)}var g0=Zb0(x);return g0?[0,r,g0[1]]:(p2(Oa0,x),[0,r,Da0])}function Hb0(x){var r=u0(x);E0(x);var e=q(x);if(typeof e!=\"number\")switch(e[0]){case 12:return DB([0,r],e[1],e[2],e[3],x);case 13:return FB([0,r],e[2],e[3],x)}return p2(Fa0,x),Ra0}function mC(x,r){var e=u0(x),t=x0(0,E0,x)[1],u=Z([0,e],[0,L0(x)],O);return[0,[19,[0,[0,mn(0,[0,t,r])],0,u]]]}function Zb0(x){var r=u0(x),e=q(x);if(typeof e==\"number\")switch(e){case 30:return E0(x),[0,[4,Z([0,r],[0,L0(x)],O)]];case 115:return E0(x),[0,[0,Z([0,r],[0,L0(x)],O)]];case 116:return E0(x),[0,[1,Z([0,r],[0,L0(x)],O)]];case 117:return E0(x),[0,[2,Z([0,r],[0,L0(x)],O)]];case 118:return E0(x),[0,[5,Z([0,r],[0,L0(x)],O)]];case 119:return E0(x),[0,[6,Z([0,r],[0,L0(x)],O)]];case 120:return E0(x),[0,[7,Z([0,r],[0,L0(x)],O)]];case 121:return E0(x),[0,[3,Z([0,r],[0,L0(x)],O)]];case 122:return E0(x),[0,[9,Z([0,r],[0,L0(x)],O)]];case 123:return E0(x),[0,[33,Z([0,r],[0,L0(x)],O)]];case 124:return E0(x),[0,[34,Z([0,r],[0,L0(x)],O)]];case 125:return E0(x),[0,[35,Z([0,r],[0,L0(x)],O)]];case 129:return mC(x,La0);case 130:return mC(x,Ma0);case 131:return mC(x,qa0)}else if(e[0]===11){var t=e[1];E0(x);var u=L0(x),i=t?-883944824:737456202;return[0,[8,i,Z([0,r],[0,u],O)]]}return 0}function rX(x){var r=u0(x),e=q(x);x:{if(typeof e==\"number\")switch(e){case 132:var t=1;break x;case 133:var t=2;break x}else if(e[0]===4&&!P(e[3],_3)){var t=0;break x}var t=Tx(Ua0)}var u=V0(x);E0(x);var i=L0(x),c=pC(x);return[0,u,c,Z([0,r],[0,i],O),t]}function ph(x,r){return[0,r[1],[0,0,r,0]]}function oo(x){return p(UB[1],x,0)}function kh(x){return x0(0,function(r){var e=u0(r);J(r,4);var t=d(oo(r),0),u=u0(r);J(r,5);var i=O2([0,e],[0,L0(r)],u,O);return[0,t[1],t[2],t[3],i]},x)}function eX(x){return x0(0,function(r){var e=u0(r);J(r,4);var t=p(BB[1],r,0),u=u0(r);J(r,5);var i=O2([0,e],[0,L0(r)],u,O);return[0,t[1],t[2],i]},x)}function xT0(x){var r=u0(x);J(x,4);var e=Av(0,x),t=q(e);x:{r:{e:{if(typeof t!=\"number\"){if(t[0]!==4)break r;var u=t[3];if(P(u,$s)){if(P(u,_3))break e;var i=xr(1,e);t:{if(typeof i==\"number\"&&1>=i+xa>>>0){var c=[0,d(oo(e),0)];break t}var c=[1,Hr(e)]}var v=c}else{if(!e[28][1])break e;var a=xr(1,e);t:{n:if(typeof a==\"number\"){if(a!==4&&a!==99)break n;var l=[1,Hr(e)];break t}var l=tX(e)}var v=l}var j=v;break x}switch(t){case 5:var j=Ba0;break x;case 132:var m=xr(1,e);t:{if(typeof m==\"number\"&&m===87){var h=[0,d(oo(e),0)];break t}var h=[1,Hr(e)]}var j=h;break x;case 43:break;case 12:case 114:var j=[0,d(oo(e),0)];break x;default:break r}}var j=tX(e);break x}r:{e:{if(typeof t==\"number\")switch(t){case 30:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:break;default:break e}else if(t[0]!==11)break e;var T=1;break r}var T=0}if(T){var b=xr(1,e);r:{if(typeof b==\"number\"&&1>=b+xa>>>0){var N=[0,d(oo(e),0)];break r}var N=[1,Hr(e)]}var j=N}else var j=[1,Hr(e)]}if(j[0]===0)var I=j;else{var F=j[1];if(x[15])var M=j;else{var z=q(x);x:{if(typeof z==\"number\"){if(z===5){if(xr(1,x)===11){var B=[0,ph(x,F),0],n0=[0,d(oo(x),B)];break x}var n0=[1,F];break x}if(z===9){J(x,9);var K=[0,ph(x,F),0],n0=[0,d(oo(x),K)];break x}}var n0=j}var M=n0}var I=M}var $=u0(x);J(x,5);var H=L0(x);if(I[0]===0)var t0=I[1],c0=O2([0,r],[0,H],$,O),r0=[0,[0,t0[1],t0[2],t0[3],c0]];else var r0=[1,rT0(I[1],r,H)];return r0}function tX(x){var r=xr(1,x);if(typeof r==\"number\"&&1>=r+xa>>>0)return[0,d(oo(x),0)];var e=V0(x),t=fX(x,Cv(x)),u=WB(x,0,e,$B(x,0,e,HB(x,ZB(0,x,e,[0,t[1],[19,t[2]]]))));return[1,GB(xC(0,x),e,u)]}function mh(x,r,e,t,u){return x0([0,e],function(i){return J(i,11),[12,[0,t,u,nX(i),0,x]]},r)}function nX(x){return ah(x)?[1,hC(x)]:[0,Hr(x)]}function hC(x){function r(e){var t=u0(e);J(e,Xo);var u=Mx(t,u0(e));return[0,[0,Hr(e)],u]}return x0(0,function(e){var t=u0(e),u=u2(e,d6)?1:u2(e,r6)?2:0;V2(e,0);var i=a1(e);Z2(e);x:if(u===2)var c=r(e),v=c[2],a=c[1];else{var l=q(e);if(typeof l==\"number\"&&Xo===l){var m=r(e),v=m[2],a=m[1];break x}var v=0,a=0}return[0,u,[0,i,a],O2([0,t],0,v,O)]},x)}function uX(x,r){return x0([0,r],hC,x)}function dC(x,r,e,t){var u=r&&(q(t)===2?1:0),i=r&&1-u;return x0(0,function(c){var v=u0(c),a=u?2:0;J(c,a);var l=Av(0,c),m=P6(XB[1],x,i,e,u,l,Xa0),h=m[3],T=m[2],b=m[1],N=Mx(h,u0(c)),j=u?3:1;return J(c,j),[0,u,T,b,O2([0,v],[0,L0(c)],N,O)]},t)}function iX(x){var r=u2(x,42)?AB(x,p(YB[1],x,0)):0;return[0,r,dC(0,0,0,x)]}function Cv(x){var r=a1(x),e=r[2],t=e[1],u=r[1],i=e[2];return tC(t)&&q0(x,[0,u,96]),[0,u,[0,t,i]]}function Ov(x){if(q(x)!==99)return 0;1-A2(x)&&Ux(x,g1);var r=x0(0,function(t){var u=u0(t);J(t,99);var i=H0(zB[1],t,0,0),c=u0(t);return ih(t,y2),[0,i,O2([0,u],[0,L0(t)],c,O)]},x),e=r[1];return r[2][1]||q0(x,[0,e,51]),[0,r]}function yC(x){return q(x)===99?[0,x0(0,function(r){var e=u0(r);J(r,99);var t=Av(0,r),u=p(KB[1],t,0),i=u0(t);return J(t,y2),[0,u,O2([0,e],[0,L0(t)],i,O)]},x)]:0}function hh(x){return fX(x,Cv(x))}function fX(x,r){return x0([0,r[1]],function(e){var t=p(JB[1],e,[0,r[1],[0,r]])[2],u=q(e)===99?p(F2(e)[2],t,function(i,c){return p(Bx(i,-860373976,65),i,c)}):t;return[0,u,yC(e),0]},x)}function gC(x){var r=q(x);x:{if(typeof r==\"number\")switch(r){case 87:var e=V0(x);1-A2(x)&&Ux(x,g1),E0(x);var t=x0(0,Hr,x),u=t[2],i=t[1],c=u[2][0]===26?1:0;return q0(x,[0,e,[16,c]]),[1,i,[0,e,u,0,0]];case 132:case 133:break;default:break x}else if(r[0]!==4||P(r[3],_3))break x;1-A2(x)&&Ux(x,g1);var v=x0([0,V0(x)],rX,x);return[1,v[1],v[2]]}return[0,da(x)]}function rT0(x,r,e){var t=x[2];function u(h0){return S1(h0,Z([0,r],[0,e],O))}var i=x[1];switch(t[0]){case 0:var U=[0,u(t[1])];break;case 1:var U=[1,u(t[1])];break;case 2:var U=[2,u(t[1])];break;case 3:var U=[3,u(t[1])];break;case 4:var U=[4,u(t[1])];break;case 5:var U=[5,u(t[1])];break;case 6:var U=[6,u(t[1])];break;case 7:var U=[7,u(t[1])];break;case 8:var c=u(t[2]),U=[8,t[1],c];break;case 9:var U=[9,u(t[1])];break;case 10:var U=[10,u(t[1])];break;case 11:var v=t[1],a=u(v[2]),U=[11,[0,v[1],a]];break;case 12:var l=t[1],m=l[5],h=u(l[4]),U=[12,[0,l[1],l[2],l[3],h,m]];break;case 13:var T=t[1],b=u(T[4]),U=[13,[0,T[1],T[2],T[3],b]];break;case 14:var N=t[1],j=N[4],I=S5(j,Z([0,r],[0,e],O)),U=[14,[0,N[1],N[2],N[3],I]];break;case 15:var F=t[1],M=u(F[3]),U=[15,[0,F[1],F[2],M]];break;case 16:var z=t[1],B=u(z[2]),U=[16,[0,z[1],B]];break;case 17:var K=t[1],n0=u(K[5]),U=[17,[0,K[1],K[2],K[3],K[4],n0]];break;case 18:var $=t[1],H=u($[2]),U=[18,[0,$[1],H]];break;case 19:var t0=t[1],c0=u(t0[3]),U=[19,[0,t0[1],t0[2],c0]];break;case 20:var r0=t[1],v0=u(r0[3]),U=[20,[0,r0[1],r0[2],v0]];break;case 21:var a0=t[1],g0=a0[1],i0=a0[2],s0=u(g0[3]),U=[21,[0,[0,g0[1],g0[2],s0],i0]];break;case 22:var d0=t[1],w0=u(d0[2]),U=[22,[0,d0[1],w0]];break;case 23:var M0=t[1],C0=u(M0[2]),U=[23,[0,M0[1],C0]];break;case 24:var D0=t[1],I0=u(D0[3]),U=[24,[0,D0[1],D0[2],I0]];break;case 25:var j0=t[1],y0=u(j0[2]),U=[25,[0,j0[1],y0]];break;case 26:var Y0=t[1],L=Y0[4],N0=u(Y0[3]),U=[26,[0,Y0[1],Y0[2],N0,L]];break;case 27:var S0=t[1],K0=u(S0[2]),U=[27,[0,S0[1],K0]];break;case 28:var A0=t[1],$0=u(A0[3]),U=[28,[0,A0[1],A0[2],$0]];break;case 29:var ex=t[1],xx=u(ex[3]),U=[29,[0,ex[1],ex[2],xx]];break;case 30:var tx=t[1],z0=u(tx[3]),U=[30,[0,tx[1],tx[2],z0]];break;case 31:var px=t[1],sx=u(px[3]),U=[31,[0,px[1],px[2],sx]];break;case 32:var Q=t[1],b0=u(Q[2]),U=[32,[0,Q[1],b0]];break;case 33:var U=[33,u(t[1])];break;case 34:var U=[34,u(t[1])];break;default:var U=[35,u(t[1])]}return[0,i,U]}Fr(RB,[0,function(x,r,e){for(var t=r;;){if(!u2(e,90)){var u=ix(t);if(u){var i=u[2];if(i){var c=i[2],v=i[1],a=u[1];return[22,[0,[0,a,v,c],Z([0,x],0,O)]]}}throw W0([0,Nr,ro0],1)}var t=[0,VB(e),t]}}]),Fr(LB,[0,function(x,r,e){for(var t=r;;){if(!u2(e,92)){var u=ix(t);if(u){var i=u[2];if(i){var c=i[2],v=i[1],a=u[1];return[23,[0,[0,a,v,c],Z([0,x],0,O)]]}}throw W0([0,Nr,xo0],1)}var t=[0,QB(e),t]}}]),Fr(MB,[0,function(x,r){for(var e=r;;){var t=e[2],u=e[1];if(q(x)===10&&gB(1,x)){let v=t;var i=x0([0,u],function(l){return J(l,10),[0,v,a1(l)]},x),c=i[1],e=[0,c,[1,[0,c,i[2]]]];continue}return t}}]),Fr(qB,[0,function(x,r){for(var e=r;;){var t=q(x);x:if(typeof t==\"number\"){if(t!==7&&mr!==t)break x;return[0,ix(e),0]}var u=x0(0,function(l){if(!u2(l,12)){var m=q(l);x:{if(typeof m==\"number\"&&(Be===m||ui===m&&ya(1,l))){var h=lh(0,0,l);break x}var h=0}var T=dn(l),b=xr(1,l);if(T&&typeof b==\"number\"&&1>=b+xa>>>0){var N=a1(l),j=u2(l,86);return J(l,87),[0,[1,[0,N,Hr(l),h,j]]]}var I=h?1:0;return I&&Ux(l,44),[0,[0,Hr(l)]]}var F=q(l);x:if(typeof F==\"number\"){if(10<=F){if(mr!==F)break x}else{if(7>F)break x;switch(F-7|0){case 0:break;case 1:break x;default:return p2(Za0,l),E0(l),0}}return 0}var M=dn(l),z=xr(1,l);x:{if(M&&typeof z==\"number\"&&1>=z+xa>>>0){var B=a1(l);q(l)===86&&(Ux(l,43),E0(l)),J(l,87);var K=[0,B];break x}var K=0}return[0,[2,[0,K,Hr(l)]]]},x),i=u[2],c=u[1];if(!i)return[0,ix(e),1];var v=[0,[0,c,i[1]],e];q(x)!==7&&J(x,9);var e=v}}]);function cX(x){var r=xr(1,x);return typeof r==\"number\"&&1>=r+xa>>>0?x0(0,function(e){V2(e,0);var t=p(X0[13],0,e);Z2(e),1-A2(e)&&Ux(e,g1);var u=u2(e,86);return J(e,87),[0,[0,t],Hr(e),u]},x):ph(x,Hr(x))}Fr(UB,[0,function(x,r,e){for(var t=r,u=e;;){var i=q(x);x:if(typeof i==\"number\")switch(i){case 5:case 12:case 114:var c=i===12?[0,x0(0,function(T){var b=u0(T);J(T,12);var N=Z([0,b],0,O);return[0,cX(T),N]},x)]:0;return[0,t,ix(u),c,0]}else if(i[0]===4&&!P(i[3],Qo)){if(xr(1,x)!==87&&xr(1,x)!==86)break x;var v=t!==0?1:0,a=v||(u!==0?1:0);a&&Ux(x,89);var l=x0(0,function(b){var N=u0(b);E0(b),q(b)===86&&Ux(b,88);var j=Z([0,N],0,O);return[0,s4(b),j]},x);q(x)!==5&&J(x,9);var t=[0,l];continue}var m=[0,cX(x),u];q(x)!==5&&J(x,9);var u=m}}]),Fr(BB,[0,function(x,r){for(var e=r;;){var t=q(x);x:if(typeof t==\"number\"){var u=t-5|0;if(7>>0){if(st!==u)break x}else if(5>=u-1>>>0)break x;var i=t===12?[0,x0(0,function(a){var l=u0(a);J(a,12);var m=xr(1,a);r:{if(typeof m==\"number\"){if(m===86){V2(a,0);var h=p(X0[13],0,a);Z2(a),J(a,86),J(a,87);var b=1,N=[0,h];break r}if(m===87){V2(a,0);var T=p(X0[13],0,a);Z2(a),J(a,87);var b=0,N=[0,T];break r}}var b=0,N=0}var j=Hr(a);return q(a)===9&&E0(a),[0,N,j,b,Z([0,l],0,O)]},x)]:0;return[0,ix(e),i,0]}var c=[0,x0(0,function(a){var l=q(a);x:{if(typeof l!=\"number\"&&l[0]===2){var m=l[1],h=m[4],T=m[3],b=m[2],N=m[1];h&&Ie(a,76),J(a,[2,[0,N,b,T,h]]);var I=[1,[0,N,[0,b,T,Z(0,[0,L0(a)],O)]]];break x}V2(a,0);var j=p(X0[13],0,a);Z2(a);var I=[0,j]}var F=u2(a,86);return[0,I,s4(a),F]},x),e];q(x)!==5&&J(x,9);var e=c}}]);function dh(x,r,e){return x0([0,r],function(t){var u=kh(t);return J(t,87),[0,e,u,nX(t),0,1]},x)}function sX(x,r,e,t,u){var i=gn(x,t),c=dh(x,r,Q1(x,Ov(x))),v=[0,c[1],[12,c[2]]],a=[0,i,[0,v],0,e!==0?1:0,0,1,0,Z([0,u],0,O)];return[0,[0,v[1],a]]}function yh(x,r,e,t,u,i,c){var v=c[2],a=c[1];return 1-A2(x)&&Ux(x,g1),[0,x0([0,r],function(l){var m=u2(l,86),h=bB(l,87)?Hr(l):[0,a,Ha0];return[0,v,[0,h],m,t!==0?1:0,u!==0?1:0,0,e,Z([0,i],0,O)]},x)]}function a4(x,r){var e=q(r);if(typeof e==\"number\"&&10>e)switch(e){case 1:if(!x)return;break;case 3:if(x)return;break;case 8:case 9:return E0(r)}return yn(r,9)}function o4(x,r){if(r)return q0(x,[0,r[1][1],K2])}function v4(x,r){if(r)return q0(x,[0,r[1],94])}function eT0(x,r,e,t,u,i,c,v,a){for(var l=e,m=t,h=u,T=i,b=c,N=v;;){var j=q(x);if(typeof j==\"number\")switch(j){case 6:v4(x,b);var I=xr(1,x);if(typeof I==\"number\"&&I===6)return o4(x,h),[4,x0([0,a],function(L){var N0=Mx(N,u0(L));J(L,6),J(L,6);var S0=a1(L);J(L,7),J(L,7);var K0=q(L);x:{r:if(typeof K0==\"number\"){if(K0!==4&&K0!==99)break r;var A0=dh(L,a,Q1(L,Ov(L))),xx=0,tx=[0,A0[1],[12,A0[2]]],z0=1,px=0;break x}var $0=u2(L,86),ex=L0(L);J(L,87);var xx=ex,tx=Hr(L),z0=0,px=$0}return[0,S0,tx,px,T!==0?1:0,z0,Z([0,N0],[0,xx],O)]},x)];var F=Mx(N,u0(x));J(x,6);var M=xr(1,x);return typeof M!=\"number\"&&M[0]===4&&!P(M[3],qa)&&T===0?[5,x0([0,a],function(L){var N0=Cv(L),S0=N0[1];E0(L);var K0=Hr(L);J(L,7);var A0=q(L);x:{r:{var $0=[0,N0,[0,S0],0,0,0];if(typeof A0==\"number\"){var ex=A0+F9|0;if(1>>0){if(ex!==-18)break r;E0(L);var xx=2}else var xx=ex?(E0(L),J(L,86),1):(E0(L),J(L,86),0);var tx=xx;break x}}var tx=3}J(L,87);var z0=Hr(L);return[0,[0,S0,$0],z0,K0,h,tx,Z([0,F],[0,L0(L)],O)]},x)]:[2,x0([0,a],function(L){if(xr(1,L)===87){var N0=a1(L);J(L,87);var S0=[0,N0]}else var S0=0;var K0=Hr(L);J(L,7);var A0=L0(L);J(L,87);var $0=Hr(L);return[0,S0,K0,$0,T!==0?1:0,h,Z([0,F],[0,A0],O)]},x)];case 43:if(l){if(h!==0)throw W0([0,Nr,Ja0],1);var z=[0,V0(x)],B=Mx(N,u0(x));E0(x);var l=0,m=0,T=z,N=B;continue}break;case 127:if(h===0){if(!ya(1,x)&&xr(1,x)!==6)break;var l=0,m=0,h=lh(Ga0,0,x);continue}break;case 104:case 105:if(h===0){var l=0,m=0,h=lh(0,0,x);continue}break;case 4:case 99:return v4(x,b),o4(x,h),[3,x0([0,a],function(L){var N0=V0(L),S0=dh(L,N0,Q1(L,Ov(L)));return[0,S0,T!==0?1:0,Z([0,N],0,O)]},x)]}else if(j[0]===4&&!P(j[3],pg)&&m){if(h!==0)throw W0([0,Nr,Wa0],1);var K=[0,V0(x)],n0=Mx(N,u0(x));E0(x);var l=0,m=0,b=K,N=n0;continue}if(T){var $=T[1];if(b)return Tx(Va0);if(typeof j==\"number\"&&1>=j+xa>>>0)return yh(x,a,h,0,b,0,[0,$,[3,mn(Z([0,N],0,O),[0,$,$a0])]])}else if(b){var H=b[1];if(typeof j==\"number\"&&1>=j+xa>>>0)return yh(x,a,h,T,0,0,[0,H,[3,mn(Z([0,N],0,O),[0,H,Qa0])]])}var t0=function(L){V2(L,0);var N0=p(X0[20],0,L);return Z2(L),N0},c0=u0(x),r0=t0(x),v0=r0[1],a0=r0[2];x:if(a0[0]===3){var g0=a0[1][2][1];if(P(g0,Bo)&&P(g0,T3))break x;var i0=q(x);if(typeof i0==\"number\"){var s0=i0-5|0;if(93>>0){if(95>=s0+1>>>0)return v4(x,b),o4(x,h),sX(x,a,T,a0,N)}else if(1>=s0-81>>>0)return yh(x,a,h,T,b,N,[0,v0,a0])}gn(x,a0);var d0=t0(x),w0=br(g0,Bo),M0=Mx(N,c0);return v4(x,b),o4(x,h),[0,x0([0,a],function(L){var N0=d0[1],S0=gn(L,d0[2]),K0=dh(L,a,0),A0=K0[2][2];r:if(w0){var $0=A0[2];e:{if(!$0[1]){if(!$0[2]&&!$0[3])break e;q0(L,[0,N0,23]);break r}q0(L,[0,N0,24])}}else{var ex=A0[2];if(ex[1])q0(L,[0,N0,66]);else{var xx=ex[2];e:{if(!ex[3]){if(xx&&!xx[2])break e;q0(L,[0,N0,65]);break r}q0(L,[0,N0,65])}}}var tx=Z([0,M0],0,O),z0=0,px=0,sx=0,Q=T!==0?1:0,b0=0,U=w0?[1,K0]:[2,K0];return[0,S0,U,b0,Q,sx,px,z0,tx]},x)]}var C0=r0[2],D0=q(x);x:if(typeof D0==\"number\"){if(D0!==4&&D0!==99)break x;return v4(x,b),o4(x,h),sX(x,a,T,C0,N)}var I0=T!==0?1:0;x:if(C0[0]===3){var j0=C0[1],y0=j0[2][1];r:{var Y0=j0[1];if(r){if(!br(Ro,y0)&&(!I0||!br(za,y0)))break r;q0(x,[0,Y0,[15,y0,I0,0,0]]);break x}}}return yh(x,a,h,T,b,N,[0,v0,C0])}}Fr(XB,[0,function(x,r,e,t,u,i){for(var c=i;;){var v=c[3],a=c[2],l=c[1];if(x&&e)throw W0([0,Nr,za0],1);if(r&&!e)throw W0([0,Nr,Ka0],1);var m=V0(u),h=q(u);if(typeof h==\"number\"){if(13<=h){if(mr===h)return[0,ix(l),a,v]}else if(h)switch(h-1|0){case 0:if(!t)return[0,ix(l),a,v];break;case 2:if(t)return[0,ix(l),a,v];break;case 11:if(!e){E0(u);var T=q(u);if(typeof T==\"number\"&&10>T)switch(T){case 1:case 3:case 8:case 9:q0(u,[0,m,32]),a4(t,u);continue}var b=nC(u);eC(u)(b),q0(u,[0,m,97]),E0(u),a4(t,u);continue}var N=u0(u);E0(u);var j=q(u);if(typeof j==\"number\"&&10>j)switch(j){case 1:case 3:case 8:case 9:a4(t,u);var I=q(u);if(typeof I==\"number\"){var F=I-1|0;if(2>=F>>>0)switch(F){case 0:if(r)return[0,ix(l),1,N];break;case 1:break;default:return q0(u,[0,m,31]),[0,ix(l),a,v]}}q0(u,[0,m,92]);continue}let K=N;var M=[1,x0([0,m],function($){var H=Z([0,K],0,O);return[0,Hr($),H]},u)];a4(t,u);var c=[0,[0,M,l],a,v];continue}}var z=eT0(u,x,x,x,0,0,0,0,m);a4(t,u);var c=[0,[0,z,l],a,v]}}]),Fr(YB,[0,function(x,r){for(var e=r;;){var t=[0,hh(x),e],u=q(x);if(typeof u==\"number\"&&u===9){J(x,9);var e=t;continue}return ix(t)}}]);function aX(x,r){var e=hB(x,r);if(e)var t=e;else{x:{if(typeof r==\"number\"&&1>=r+F9>>>0){var u=1;break x}var u=0}if(!u){x:{if(typeof r==\"number\")switch(r){case 15:case 30:case 31:case 32:case 42:case 43:case 47:case 54:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 127:break;default:break x}else switch(r[0]){case 4:if(tC(r[3]))return 1;break x;case 11:break;default:break x}return 1}return 0}var t=u}return t}Fr(zB,[0,function(x,r,e){for(var t=r,u=e;;){if(aX(x,q(x))){let b=t;var i=sC(0,function(I){var F=lh(0,Ya0,I),M=x0(0,function(r0){var v0=Cv(r0),a0=q(r0);x:{if(typeof a0==\"number\"){if(a0===42){var g0=1,i0=[1,x0(0,function(w0){return E0(w0),Hr(w0)},r0)];break x}if(a0===87){var g0=0,i0=[1,s4(r0)];break x}}var g0=0,i0=[0,da(r0)]}return[0,v0,i0,g0]},I),z=M[2],B=z[3],K=z[2],n0=z[1],$=M[1],H=q(I);x:{if(typeof H==\"number\"&&H===83){E0(I);var t0=1,c0=[0,Hr(I)];break x}b&&q0(I,[0,$,52]);var t0=b,c0=0}return[0,[0,n0,K,B,F,c0],t0]},x),c=i[2],v=[0,i[1],u]}else var c=t,v=u;var a=q(x);if(typeof a==\"number\"){var l=a+D9|0;if(14>>0){if(l===-91){E0(x);var t=c,u=v;continue}}else if(12>>0)return ix(v)}x:{r:{e:{if(typeof a!=\"number\"){if(a[0]!==4)break r;var m=a[3];if(!eh(m)){t:{if(P(m,nv)&&P(m,B1)){var h=0;break t}var h=1}if(!h){if(P(m,Ql)){if(!P(m,cv))break e;if(P(m,qf))break r;break e}if(!x[28][2])break r;var T=1;break x}}var T=1;break x}switch(a){case 4:case 83:break;default:break r}}var T=1;break x}var T=0}if(T)return yn(x,y2),ix(v);if(aX(x,a)){yn(x,9);var t=c,u=v}else{J(x,9);var t=c,u=v}}}]),Fr(KB,[0,function(x,r){for(var e=r;;){var t=q(x);x:if(typeof t==\"number\"){if(y2!==t&&mr!==t)break x;return ix(e)}var u=[0,Hr(x),e];y2!==q(x)&&J(x,9);var e=u}}]),Fr(JB,[0,function(x,r){for(var e=r;;){var t=e[2],u=e[1];if(q(x)===10&&th(1,x)){let v=t;var i=x0([0,u],function(l){return J(l,10),[0,v,Cv(l)]},x),c=i[1],e=[0,c,[1,[0,c,i[2]]]];continue}return[0,u,t]}}]);function oX(x,r){if(q(x)!==4)return[0,0,Z([0,r],[0,L0(x)],O)];var e=Mx(r,u0(x));J(x,4),V2(x,0);var t=d(X0[9],x);return Z2(x),J(x,5),[0,[0,t],Z([0,e],[0,L0(x)],O)]}function tT0(x){var r=q(x);if(typeof r==\"number\"&&r===87){1-A2(x)&&Ux(x,g1);var e=V0(x);return J(x,87),ah(x)?[2,uX(x,e)]:[1,x0([0,e],Hr,x)]}return[0,da(x)]}function nT0(x){var r=q(x);return typeof r==\"number\"&&r===87?[1,s4(x)]:[0,da(x)]}function uT0(x){var r=u0(x);return J(x,67),oX(x,r)}var iT0=0;function vX(x){var r=Av(0,x),e=q(r);return typeof e==\"number\"&&e===67?[0,x0(iT0,uT0,r)]:0}function fT0(x){var r=q(x);if(typeof r==\"number\"&&r===87){1-A2(x)&&Ux(x,g1);var e=da(x),t=V0(x);J(x,87);var u=q(x);if(typeof u==\"number\"&&u===67)return[0,[0,e],[0,x0([0,t],function(v){var a=u0(v);return J(v,67),oX(v,a)},Av(0,x))]];if(ah(x))return[0,[2,uX(x,t)],0];var i=[1,x0([0,t],Hr,x)],c=q(x)===67?al(x,i):i;return[0,c,vX(x)]}return[0,[0,da(x)],0]}function Ne(x,r){var e=ha(1,r);V2(e,1);var t=x(e);return Z2(e),t}function ga(x){return Ne(Hr,x)}function ws(x){return Ne(Cv,x)}function He(x){return Ne(Ov,x)}function lX(x){return Ne(yC,x)}function Dv(x){return Ne(s4,x)}function wC(x){return Ne(nT0,x)}function _C(x){return Ne(tT0,x)}function bC(x){return Ne(fT0,x)}function pX(x){return Ne(hh,x)}function TC(x){return Ne(gC,x)}function vo(x,r){var e=r[2],t=r[1],u=x[1];switch(e[0]){case 0:return m1(cT0,x,e[1][1]);case 1:return m1(sT0,x,e[1][1]);case 2:var i=e[1][1],c=i[2][1],v=x[2],a=x[1],l=i[1];I1[3].call(null,c,v)&&q0(a,[0,l,77]);var m=i[2][1],h=i[1];return Pv(m)&&ht(a,[0,h,78]),fl(m)&&ht(a,[0,h,80]),[0,a,I1[4].call(null,c,v)];default:return q0(u,[0,t,20]),x}}function cT0(x){return function(r){return r[0]===0?vo(x,r[1][2][2]):vo(x,r[1][2][1])}}function sT0(x){return function(r){switch(r[0]){case 0:return vo(x,r[1][2][1]);case 1:return vo(x,r[1][2][1]);default:return x}}}function kX(x,r){var e=r[2],t=e[3],u=m1(function(i,c){return vo(i,c[2][1])},[0,x,I1[1]],e[2]);t&&vo(u,t[1][2][1])}function mX(x,r,e,t){var u=x[5],i=t[0]===0?jv(t[1]):0,c=ha(u?0:r,x),v=r||u||1-i;if(!v)return v;if(e){var a=e[1],l=a[2][1],m=a[1];Pv(l)&&ht(c,[0,m,70]),fl(l)&&ht(c,[0,m,80])}if(t[0]===0)return kX(c,t[1]);var h=t[1][2],T=h[2],b=[0,Y3,[0,[0,vs(function(j){var I=j[2],F=I[1],M=I[4],z=I[3],B=I[2],K=F[0]===0?[3,F[1]]:[0,[0,Y3,F[1][2]]];return[0,[0,Y3,[0,K,B,z,M]]]},h[1]),[0,Y3],0]]],N=vo([0,c,I1[1]],b);T&&vo(N,T[1][2][1])}function ll(x,r,e,t){return mX(x,r,e,[0,t])}function hX(x,r){if(r!==12)return 0;var e=u0(x),t=x0(0,function(c){return J(c,12),p(X0[18],c,78)},x),u=t[2],i=t[1];return[0,[0,i,u,Z([0,e],0,O)]]}function aT0(x){q(x)===22&&Ux(x,89);var r=p(X0[18],x,78),e=q(x)===83?(J(x,83),[0,d(X0[10],x)]):0;return[0,r,e]}var oT0=0;function pl(x,r){function e(u){var i=aB(1,Qj(r,Hj(x,u))),c=u0(i);J(i,4);x:{if(A2(i)&&q(i)===22){var v=u0(i),a=x0(0,function(K){return J(K,22),q(K)===87?[0,Dv(K)]:(Ux(K,85),0)},i),l=a[2],m=a[1];if(!l){var T=0;break x}var h=l[1];q(i)===9&&E0(i);var T=[0,[0,m,[0,h,Z([0,v],0,O)]]];break x}var T=0}x:r:{for(var b=0;;){var N=q(i);if(typeof N==\"number\"){var j=N-5|0;if(7>>0){if(st===j)break}else if(5>>0)break r}var I=x0(oT0,aT0,i);q(i)!==5&&J(i,9);var b=[0,I,b]}break x}var F=f5(function(B){return[0,B[1],[0,B[2],B[3]]]},hX(i,N));q(i)!==5&&Ux(i,61);var M=ix(b),z=u0(i);return J(i,5),[0,T,M,F,O2([0,c],[0,L0(i)],z,O)]}var t=0;return function(u){return x0(t,e,u)}}function dX(x,r,e,t,u){var i=mB(x,r,e,u);return p(X0[16],t,i)}function l4(x,r,e,t,u){var i=dX(x,r,e,t,u);return[0,[0,i[1]],i[2]]}function Fv(x){if(K2!==q(x))return Dv0;var r=u0(x);return E0(x),[0,1,r]}function gh(x){if(q(x)===65&&!Iv(1,x)){var r=u0(x);return E0(x),[0,1,r]}return Ov0}function vT0(x){var r=gh(x),e=r[1],t=r[2],u=x0(0,function(F){var M=u0(F),z=q(F);x:{if(typeof z==\"number\"){if(z===15){E0(F);var B=Fv(F),n0=B[2],$=B[1],H=1;break x}}else if(z[0]===4&&!P(z[3],Vo)&&!e){E0(F);var n0=0,$=0,H=0;break x}yn(F,z);var K=Fv(F),n0=K[2],$=K[1],H=1}var t0=O6([0,t,[0,M,[0,n0,0]]]),c0=F[7],r0=q(F);x:{if(c0&&typeof r0==\"number\"){if(r0===4){var i0=0,s0=0;break x}if(r0===99){var v0=Q1(F,He(F)),a0=q(F)===4?0:[0,Xt(F,p(X0[13],Iv0,F))],i0=a0,s0=v0;break x}}var g0=dn(F)?Xt(F,p(X0[13],Nv0,F)):(_B(F,jv0),[0,V0(F),Cv0]),i0=[0,g0],s0=Q1(F,He(F))}var d0=pl(e,$)(F),w0=q(F)===87?d0:i4(F,d0),M0=bC(F),C0=M0[2],D0=M0[1];if(C0)var I0=SB(F,C0),j0=D0;else var I0=C0,j0=al(F,D0);return[0,$,H,s0,i0,w0,j0,I0,t0]},x),i=u[2],c=i[5],v=i[4],a=i[1],l=i[8],m=i[7],h=i[6],T=i[3],b=i[2],N=u[1],j=l4(x,e,a,0,jv(c)),I=j[1];return ll(x,j[2],v,c),[27,[0,v,c,I,e,a,b,m,h,T,Z([0,l],0,O),N]]}var lT0=0;function p4(x){return x0(lT0,vT0,x)}function EC(x,r){var e=u0(r);J(r,x);var t=r[28][2];if(t)var u=x===28?1:0,i=u&&(q(r)===49?1:0);else var i=t;i&&Ux(r,19);for(var c=0,v=0;;){var a=x0(0,function(I){var F=p(X0[18],I,81);if(u2(I,83))var M=0,z=[0,d(X0[10],I)];else{var B=F[1];if(F[2][0]===2)var M=0,z=0;else var M=[0,[0,B,58]],z=0}return[0,[0,F,z],M]},r),l=a[2],m=l[2],h=[0,[0,a[1],l[1]],c],T=m?[0,m[1],v]:v;if(!u2(r,9)){var b=ix(T);return[0,ix(h),e,b]}var c=h,v=T}}var pT0=OB(X0),kT0=25;function yX(x){return EC(kT0,x)}function gX(x){var r=EC(28,Zj(1,x)),e=r[1],t=r[2];return[0,e,t,ix(m1(function(u,i){return i[2][2]?u:[0,[0,i[1],57],u]},r[3],e))]}function wX(x){return EC(29,Zj(1,x))}function _X(x){function r(t){return[20,pT0[1].call(null,x,t)]}var e=0;return function(t){return x0(e,r,t)}}function mT0(x){var r=u0(x),e=q(x),t=xr(1,x);x:{r:if(typeof e!=\"number\"&&e[0]===2){var u=e[1],i=u[4],c=u[3],v=u[2],a=u[1];e:{if(typeof t==\"number\")switch(t){case 86:case 87:break;default:break e}else{if(t[0]!==4)break e;if(P(t[3],Nt))break r}i&&Ie(x,76),J(x,[2,[0,a,v,c,i]]);var l=[1,[0,a,[0,v,c,Z([0,r],[0,L0(x)],O)]]];if(typeof t==\"number\"&&1>=t+xa>>>0){var m=t===86?1:0;Ux(x,[17,m,v]),m&&E0(x);var h=V0(x),I=0,F=[0,h,[2,[0,[0,h,Sv0],wC(x),m]]],M=l;break x}E0(x);var I=0,F=p(X0[18],x,78),M=l;break x}}if(typeof t!=\"number\"&&t[0]===4&&!P(t[3],Nt)){var T=[0,a1(x)];ys(x,Av0);var I=0,F=p(X0[18],x,78),M=T;break x}if(typeof e==\"number\"&&!e){Ux(x,33);var b=[0,[0,V0(x),Pv0]],I=0,F=p(X0[18],x,78),M=b;break x}var N=H0(X0[14],x,0,78),j=N[2],I=1,F=[0,N[1],[2,j]],M=[0,j[1]]}var z=q(x)===83?(J(x,83),[0,d(X0[10],x)]):0;return[0,M,F,z,I]}var hT0=0;function dT0(x){var r=aB(1,x),e=u0(r);J(r,4);x:r:{for(var t=0;;){var u=q(r);if(typeof u==\"number\"){var i=u-5|0;if(7>>0){if(st===i)break}else if(5>>0)break r}var c=x0(hT0,mT0,r);q(r)!==5&&J(r,9);var t=[0,c,t]}break x}var v=f5(function(m){var h=m[3],T=m[2],b=m[1];return q(r)===9&&E0(r),[0,b,[0,T,h]]},hX(r,u));q(r)!==5&&Ux(r,61);var a=ix(t),l=u0(r);return J(r,5),[0,a,v,O2([0,e],[0,L0(r)],l,O)]}var yT0=0;function gT0(x){var r=x0(0,function(h){var T=u0(h);ys(h,Tv0);var b=Xt(h,p(X0[13],Ev0,h)),N=Q1(h,He(h)),j=x0(yT0,dT0,h),I=iC(h)?j:p(F2(h)[2],j,function(F,M){return p(Bx(F,842685896,11),F,M)});return[0,N,b,I,cC(h,TC(h)),T]},x),e=r[2],t=e[3],u=e[2],i=e[5],c=e[4],v=e[1],a=r[1],l=dX(x,0,0,0,0),m=l[1];return mX(x,l[2],[0,u],[1,t]),[3,[0,u,v,t,c,m,Z([0,i],0,O),a]]}var wT0=0;function SC(x){return x0(wT0,gT0,x)}function o1(x,r){if(r[0]===0)return r[1];var e=r[1];return b1(function(t){return q0(x,t)},r[2][1]),e}function AC(x,r,e){var t=x?x[1]:36;if(e[0]===0)var u=e[1];else{var i=e[1];b1(function(l){return q0(r,l)},e[2][2]);var u=i}1-d(X0[23],u)&&q0(r,[0,u[1],t]);var c=u[2];x:if(c[0]===10){var v=u[1];if(Pv(c[1][2][1])){ht(r,[0,v,71]);break x}}return p(X0[19],r,u)}function PC(x,r){var e=K3(x[2],r[2]);return[0,K3(x[1],r[1]),e]}function bX(x){var r=ix(x[2]);return[0,ix(x[1]),r]}function wh(x){var r=V0(x),e=TX(x),t=q(x);x:{if(typeof t==\"number\"&&t===90){var u=x0([0,r],function(l){for(var m=[0,e,0];;){var h=q(l);if(typeof h==\"number\"&&h===90){E0(l);var m=[0,TX(l),m];continue}var T=ix(m);return[0,T,Z(0,[0,L0(l)],O)]}},x),i=[0,u[1],[12,u[2]]];break x}var i=e}var c=q(x);if(typeof c!=\"number\"&&c[0]===4&&!P(c[3],Nt)){var v=x0([0,r],function(a){E0(a);var l=q(a);x:{r:if(typeof l==\"number\"){var m=l+E3|0;if(4>=m>>>0){switch(m){case 0:var h=Yt(a,0),N=[1,h[1],h[2]];break;case 3:var T=Yt(a,2),N=[1,T[1],T[2]];break;case 4:var b=Yt(a,1),N=[1,b[1],b[2]];break;default:break r}var j=N;break x}}var j=[0,p(X0[13],0,a)]}return[0,i,j,Z(0,[0,L0(a)],O)]},x);return[0,v[1],[13,v[2]]]}return i}function TX(x){var r=q(x);if(typeof r==\"number\")switch(r){case 0:var e=function(p0){var Fx=V0(p0),Sx=u0(p0);function bx(V){var lx=V[2],U0=V[1],ox=[2,[0,U0,lx[2][2]]];return[0,Fx,[0,ox,[0,U0,[7,lx]],1,Z([0,Sx],[0,L0(p0)],O)]]}var B0=q(p0);if(typeof B0==\"number\"){var Wx=B0+E3|0;if(4>=Wx>>>0)switch(Wx){case 0:return bx(Yt(p0,0));case 3:return bx(Yt(p0,2));case 4:return bx(Yt(p0,1))}}var Yx=u0(p0),ax=q(p0);x:{if(typeof ax!=\"number\")switch(ax[0]){case 0:var Qx=ax[2],kx=ax[1],tr=V0(p0),sr=H0(X0[24],p0,kx,Qx),jx=[1,[0,tr,[0,sr,Qx,Z([0,Yx],[0,L0(p0)],O)]]];break x;case 2:var Mr=ax[1],a2=Mr[4],_2=Mr[3],i2=Mr[2],Q2=Mr[1];a2&&Ie(p0,76),J(p0,[2,[0,Q2,i2,_2,a2]]);var jx=[0,[0,Q2,[0,i2,_2,Z([0,Yx],[0,L0(p0)],O)]]];break x}var jx=[2,a1(p0)]}J(p0,87);var _=wh(p0);return[0,Fx,[0,jx,_,0,Z([0,Sx],[0,L0(p0)],O)]]};return x0(0,function(p0){var Fx=u0(p0);J(p0,0);x:{for(var Sx=0;;){var bx=q(p0);if(typeof bx==\"number\"){var B0=bx-2|0;if(ce>>0){if(Te>=B0+1>>>0){var ax=[0,ix(Sx),0];break x}}else if(B0===10)break}var Wx=e(p0);1-(q(p0)===1?1:0)&&J(p0,9);var Sx=[0,Wx,Sx]}var Yx=SX(p0);q(p0)===9&&q0(p0,[0,V0(p0),Pl0]);var ax=[0,ix(Sx),[0,Yx]]}var Qx=ax[2],kx=ax[1],tr=u0(p0);return J(p0,1),[10,[0,kx,Qx,O2([0,Fx],[0,L0(p0)],tr,O)]]},x);case 4:var t=u0(x);J(x,4);var u=wh(x);J(x,5);var i=L0(x),c=u[2],v=function(p0){return S1(p0,Z([0,t],[0,i],O))},a=function(p0){return S5(p0,Z([0,t],[0,i],O))},l=u[1];switch(c[0]){case 0:var I0=[0,v(c[1])];break;case 1:var m=c[1],h=v(m[3]),I0=[1,[0,m[1],m[2],h]];break;case 2:var T=c[1],b=v(T[3]),I0=[2,[0,T[1],T[2],b]];break;case 3:var N=c[1],j=v(N[3]),I0=[3,[0,N[1],N[2],j]];break;case 4:var I=c[1],F=v(I[2]),I0=[4,[0,I[1],F]];break;case 5:var I0=[5,v(c[1])];break;case 6:var M=c[1],z=v(M[3]),I0=[6,[0,M[1],M[2],z]];break;case 7:var B=c[1],K=v(B[3]),I0=[7,[0,B[1],B[2],K]];break;case 8:var n0=c[1],$=n0[2],H=n0[1],t0=v($[2]),I0=[8,[0,H,[0,$[1],t0]]];break;case 9:var c0=c[1],r0=c0[2],v0=c0[1],a0=v(r0[3]),I0=[9,[0,v0,[0,r0[1],r0[2],a0]]];break;case 10:var g0=c[1],i0=a(g0[3]),I0=[10,[0,g0[1],g0[2],i0]];break;case 11:var s0=c[1],d0=a(s0[3]),I0=[11,[0,s0[1],s0[2],d0]];break;case 12:var w0=c[1],M0=v(w0[2]),I0=[12,[0,w0[1],M0]];break;default:var C0=c[1],D0=v(C0[3]),I0=[13,[0,C0[1],C0[2],D0]]}return[0,l,I0];case 6:return x0(0,function(p0){var Fx=u0(p0),Sx=V0(p0);J(p0,6);x:{for(var bx=0;;){var B0=q(p0);if(typeof B0==\"number\"){var Wx=B0-8|0;if(ui>>0){if(K2>=Wx+1>>>0){var kx=[0,ix(bx),0];break x}}else if(Wx===4)break}var Yx=wh(p0),ax=Yr(Sx,V0(p0));q(p0)!==7&&J(p0,9);var bx=[0,[0,ax,Yx],bx]}var Qx=SX(p0);q(p0)===9&&q0(p0,[0,V0(p0),Il0]);var kx=[0,ix(bx),[0,Qx]]}var tr=kx[2],sr=kx[1],Mr=u0(p0);return J(p0,7),[11,[0,sr,tr,O2([0,Fx],[0,L0(p0)],Mr,O)]]},x);case 25:var j0=Yt(x,0);return[0,j0[1],[7,j0[2]]];case 28:var y0=Yt(x,2);return[0,y0[1],[7,y0[2]]];case 29:var Y0=Yt(x,1);return[0,Y0[1],[7,Y0[2]]];case 30:var L=u0(x),N0=V0(x);return E0(x),[0,N0,[5,Z([0,L],[0,L0(x)],O)]];case 104:return EX(x,0);case 105:return EX(x,1);case 31:case 32:var S0=u0(x),K0=V0(x);return E0(x),[0,K0,[4,[0,r===32?1:0,Z([0,S0],[0,L0(x)],O)]]]}else switch(r[0]){case 0:var A0=r[2],$0=r[1],ex=u0(x),xx=V0(x),tx=H0(X0[24],x,$0,A0);return[0,xx,[1,[0,tx,A0,Z([0,ex],[0,L0(x)],O)]]];case 1:var z0=r[2],px=r[1],sx=u0(x),Q=V0(x),b0=H0(X0[26],x,px,z0);return[0,Q,[2,[0,b0,z0,Z([0,sx],[0,L0(x)],O)]]];case 2:var U=r[1],h0=U[4],_0=U[3],m0=U[2],T0=U[1],X=u0(x);return h0&&Ie(x,76),E0(x),[0,T0,[3,[0,m0,_0,Z([0,X],[0,L0(x)],O)]]];case 4:if(!P(r[3],qo)){var Gx=u0(x),Px=V0(x);return E0(x),[0,Px,[0,Z([0,Gx],[0,L0(x)],O)]]}break}if(!dn(x)){var G0=u0(x),Kr=V0(x);p2(0,x);x:if(typeof r!=\"number\"&&r[0]===7){E0(x);break x}return[0,Kr,[0,Z([0,G0],Tl0,O)]]}for(var S=V0(x),G=[0,p(X0[13],0,x)];;){var rx=q(x);if(typeof rx==\"number\"){if(rx===6){let p0=G;var G=[1,x0([0,S],function(Sx){J(Sx,6);var bx=u0(Sx),B0=q(Sx);x:{if(typeof B0!=\"number\")switch(B0[0]){case 0:var Wx=B0[2],Yx=B0[1],ax=V0(Sx),Qx=H0(X0[24],Sx,Yx,Wx),_2=[1,[0,ax,[0,Qx,Wx,Z([0,bx],[0,L0(Sx)],O)]]];break x;case 2:var kx=B0[1],tr=kx[4],sr=kx[3],Mr=kx[2],a2=kx[1];tr&&Ie(Sx,76),J(Sx,[2,[0,a2,Mr,sr,tr]]);var _2=[0,[0,a2,[0,Mr,sr,Z([0,bx],[0,L0(Sx)],O)]]];break x}p2(_l0,Sx);var _2=[0,[0,V0(Sx),bl0]]}return J(Sx,7),[0,p0,_2,Z(0,[0,L0(Sx)],O)]},x)];continue}if(rx===10){let p0=G;var G=[1,x0([0,S],function(Sx){E0(Sx);var bx=[2,a1(Sx)];return[0,p0,bx,Z(0,[0,L0(Sx)],O)]},x)];continue}}if(G[0]===0){var yx=G[1];return[0,yx[1],[8,yx]]}var Ex=G[1],nx=Ex[1];return[0,nx,[9,[0,nx,Ex[2]]]]}}function EX(x,r){return x0(0,function(e){var t=u0(e);E0(e);var u=q(e);x:{if(typeof u!=\"number\")switch(u[0]){case 0:var i=u[2],c=u[1],v=u0(e),a=V0(e),l=H0(X0[24],e,c,i),I=[0,a,[0,[0,l,i,Z([0,v],[0,L0(e)],O)]]];break x;case 1:var m=u[2],h=u[1],T=u0(e),b=V0(e),N=H0(X0[26],e,h,m),I=[0,b,[1,[0,N,m,Z([0,T],[0,L0(e)],O)]]];break x}var j=V0(e);p2(El0,e);var I=[0,j,Sl0]}return[6,[0,r,I,Z([0,t],[0,L0(e)],O)]]},x)}function Yt(x,r){return x0(0,function(e){var t=u0(e);E0(e);var u=p(X0[13],Al0,e);return[0,r,u,Z([0,t],[0,L0(e)],O)]},x)}function SX(x){return x0(0,function(r){var e=u0(r);J(r,12);var t=q(r);x:{r:if(typeof t==\"number\"){var u=t+E3|0;if(4>=u>>>0){switch(u){case 0:var i=[0,Yt(r,0)];break;case 3:var i=[0,Yt(r,2)];break;case 4:var i=[0,Yt(r,1)];break;default:break r}var c=i;break x}}var c=0}return[0,c,Z([0,e],[0,L0(r)],O)]},x)}function AX(x,r){var e=x[0]===0?x[1]:x[1]-1|0,t=(r[0]===0,r[1]);return t<=e?1:0}var k4=[],_h=[],PX=[],IX=[],NX=[],m4=[],jX=[],CX=[],IC=[],OX=[];function h4(x){var r=dn(x);if(r){var e=q(x);x:{if(typeof e==\"number\"){if(e===59){if(x[18]){var t=0;break x}}else if(e===66&&x[19]){var t=0;break x}}var t=1}var u=t}else var u=r;var i=q(x);x:{r:if(typeof i==\"number\"){if(23<=i){if(i===59){if(x[18])return[0,x0(0,function(m){m[10]&&Ux(m,ea);var h=u0(m),T=V0(m);J(m,59);var b=V0(m);if(sl(m))var N=0,j=0;else{var I=u2(m,K2),F=q(m);e:{t:if(typeof F==\"number\"){if(F!==87){if(10<=F)break t;switch(F){case 0:case 2:case 3:case 4:case 6:break t}}var M=0;break e}var M=1}e:{if(!I&&!M){var z=0;break e}var z=[0,zt(m)]}var N=I,j=z}var B=j?0:L0(m),K=Yr(T,b);return[38,[0,j,Z([0,h],[0,B],O),N,K]]},x)];break r}if(i!==99)break r}else if(i!==4&&22>i)break r;break x}if(!u)return d(k4[1],x)}x:{if(i===65&&A2(x)&&xr(1,x)===99){var c=k4[2],v=$X;break x}var c=$X,v=k4[2]}var a=fC(x,v);if(a)return a[1];var l=fC(x,c);return l?l[1]:d(k4[1],x)}function zt(x){return o1(x,h4(x))}function DX(x){var r=x[2];switch(r[0]){case 24:var e=r[1],t=e[1][2][1];if(P(t,X1)){if(!P(t,rv)&&!P(e[2][2][1],Um))return 0}else if(!P(e[2][2][1],Xl))return 0;break;case 10:case 23:break;default:return 0}return 1}function FX(x){var r=V0(x),e=x0(0,bh,x),t=e[2],u=e[1],i=q(x);x:{if(typeof i==\"number\"&&i===85){var v=zN(_h[3],1,x,t,u);break x}var c=H0(_h[1],x,t,u),v=H0(_h[2],x,c[2],c[1])}var a=v[2];if(q(x)!==86)return a;E0(x);var l=zt(e4(0,x));J(x,87);var m=x0([0,r],zt,x),h=m[2],T=m[1];return[0,[0,T,[8,[0,o1(x,a),l,h,0]]]]}function bh(x){return p(PX[1],x,0)}function RX(x){var r=q(x);if(typeof r==\"number\"){if(49<=r){if(Be<=r){if(ea>r)switch(r+F9|0){case 0:return Qv0;case 1:return Hv0;case 6:return Zv0;case 7:return x30}}else if(r===66&&x[19])return x[10]&&Ux(x,6),r30}else if(46<=r)switch(r+Ja|0){case 0:return e30;case 1:return t30;default:return n30}}return 0}function LX(x){var r=V0(x),e=u0(x),t=RX(x);if(t){var u=t[1];E0(x);var i=x0([0,r],MX,x),c=i[2],v=i[1];x:r:if(u===6){var a=c[2];switch(a[0]){case 10:ht(x,[0,v,68]);break;case 23:a[1][2][0]===1&&q0(x,[0,v,62]);break;default:break r}break x}return[0,[0,v,[36,[0,u,c,Z([0,e],0,O)]]]]}var l=q(x);x:{if(typeof l==\"number\"){if(ea===l){var m=i30;break x}if(Te===l){var m=u30;break x}}var m=0}if(m){var h=m[1];E0(x);var T=x0([0,r],MX,x),b=T[2],N=T[1];1-DX(b)&&q0(x,[0,b[1],36]);var j=b[2];x:if(j[0]===10&&Pv(j[1][2][1])){Ie(x,73);break x}return[0,[0,N,[37,[0,h,b,1,Z([0,e],0,O)]]]]}var I=qX(x);if(N1(x))return I;var F=q(x);x:{if(typeof F==\"number\"){if(ea===F){var M=c30;break x}if(Te===F){var M=f30;break x}}var M=0}if(!M)return I;var z=M[1],B=o1(x,I);1-DX(B)&&q0(x,[0,B[1],36]);var K=B[2];x:if(K[0]===10&&Pv(K[1][2][1])){Ie(x,72);break x}var n0=V0(x);E0(x);var $=L0(x),H=Yr(B[1],n0);return[0,[0,H,[37,[0,z,B,0,Z(0,[0,$],O)]]]]}function MX(x){return o1(x,LX(x))}function qX(x){var r=V0(x),e=1-x[17],t=0,u=x[17]===0?x:[0,x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],x[12],x[13],x[14],x[15],x[16],t,x[18],x[19],x[20],x[21],x[22],x[23],x[24],x[25],x[26],x[27],x[28],x[29],x[30],x[31]],i=q(u);x:{r:if(typeof i==\"number\"){var c=i+nA|0;if(7>=c>>>0){switch(c){case 0:if(!e)break r;var v=[0,XX(u)];break;case 6:var v=[0,x0(0,function(m){var h=u0(m),T=V0(m);if(J(m,51),u2(m,10)){var b=mn(0,[0,T,v30]),N=V0(m);ys(m,l30);var j=mn(0,[0,N,p30]);return[24,[0,b,j,Z([0,h],[0,L0(m)],O)]]}var I=u0(m);J(m,4);var F=VX([0,I],0,zt(e4(0,m)));return J(m,5),[11,[0,F,Z([0,h],[0,L0(m)],O)]]},u)];break;case 7:var v=[0,UX(u)];break;default:break r}var a=v;break x}}var a=so(u)?[0,zX(u)]:KX(u)}return lo(0,0,u,r,a)}function NC(x){return o1(x,qX(x))}function UX(x){switch(x[22]){case 0:var r=0,e=0;break;case 1:var r=0,e=1;break;default:var r=1,e=1}var t=V0(x),u=u0(x);J(x,52);var i=[0,t,[30,[0,Z([0,u],[0,L0(x)],O)]]],c=q(x);if(typeof c==\"number\"&&11>c)switch(c){case 4:var v=r?i:(q0(x,[0,t,y2]),[0,t,[10,mn(0,[0,t,s30])]]);return BX(0,x,t,v);case 6:case 10:var a=e?i:(q0(x,[0,t,99]),[0,t,[10,mn(0,[0,t,o30])]]);return BX(0,x,t,a)}return e?p2(a30,x):q0(x,[0,t,99]),i}function lo(x,r,e,t,u){var i=x?x[1]:1,c=r?r[1]:0,v=YX([0,i],[0,c],e,t,u),a=pB(e);x:{if(a){var l=a[1];if(typeof l==\"number\"&&l===84){var m=1;break x}}var m=0}function h(j){var I=F2(j)[2];return p(I,o1(j,v),function(F,M){return p(Bx(F,jt,93),F,M)})}function T(j,I,F){var M=Th(I),z=M[1],B=M[2],K=Yr(t,z),n0=[0,F,j,[0,z,B],0];x:{if(!m&&!c){var $=[6,n0];break x}var $=[27,[0,n0,K,m]]}var H=c||m;return lo([0,i],[0,H],I,t,[0,[0,K,$]])}if(e[13])return v;var b=q(e);if(typeof b==\"number\"){var N=b-99|0;if(2>>0){if(N===-95)return T(0,e,h(e))}else if(N!==1&&A2(e))return fh(rh(function(j,I){throw W0(gs,1)},e),v,function(j){var I=h(j);return T(jC(j),j,I)})}return v}function BX(x,r,e,t){var u=x?x[1]:1;return o1(r,lo([0,u],0,r,e,[0,t]))}function XX(x){return x0(0,function(r){var e=V0(r),t=u0(r);if(J(r,45),r[11]&&q(r)===10){var u=L0(r);E0(r);var i=mn(Z([0,t],[0,u],O),[0,e,k30]),c=q(r);return typeof c!=\"number\"&&c[0]===4&&!P(c[3],Um)?[24,[0,i,p(X0[13],0,r),0]]:(p2(m30,r),E0(r),[10,i])}var v=V0(r),a=q(r);x:{if(typeof a==\"number\"){if(a===45){var l=XX(r);break x}if(a===52){var l=UX(rC(1,r));break x}}var l=so(r)?zX(r):o1(r,KX(r))}var m=rC(1,r),h=o1(m,YX([0,h30[1]],0,m,v,[0,l])),T=q(r);x:{if(typeof T!=\"number\"&&T[0]===3){var b=WX(r,v,h,T[1]);break x}var b=h}x:{r:if(q(r)!==4){if(A2(r)&&q(r)===99)break r;var N=b;break x}var N=p(F2(r)[2],b,function(M,z){return p(Bx(M,jt,94),M,z)})}var j=A2(r)?fh(rh(function(M,z){throw W0(gs,1)},r),0,jC):0,I=q(r);x:{if(typeof I==\"number\"&&I===4){var F=[0,Th(r)];break x}var F=0}return[25,[0,N,j,F,Z([0,t],0,O)]]},x)}function jC(x){V2(x,1);var r=q(x)===99?[0,x0(0,IX[1],x)]:0;return Z2(x),r}function Th(x){return x0(0,function(r){var e=u0(r);J(r,4);var t=p(NX[1],r,0),u=u0(r);return J(r,5),[0,t,O2([0,e],[0,L0(r)],u,O)]},x)}function YX(x,r,e,t,u){var i=x?x[1]:1,c=r?r[1]:0,v=q(e);if(typeof v==\"number\")switch(v){case 6:return E0(e),P6(m4[1],[0,i],[0,c],0,e,t,u);case 10:return E0(e),P6(m4[2],[0,i],[0,c],0,e,t,u);case 84:1-i&&Ux(e,59),J(e,84);var a=q(e);if(typeof a==\"number\")switch(a){case 4:return u;case 6:return E0(e),P6(m4[1],[0,i],y30,d30,e,t,u);case 99:if(A2(e))return u;break}else if(a[0]===3)return Ux(e,60),u;return P6(m4[2],[0,i],w30,g30,e,t,u)}else if(v[0]===3){var l=v[1];return c&&Ux(e,60),lo(_30,0,e,t,[0,WX(e,t,o1(e,u),l)])}return u}function zX(x){return x0(0,function(r){var e=gh(r),t=e[1],u=e[2],i=x0(0,function(F){var M=u0(F);J(F,15);var z=Fv(F),B=z[1],K=O6([0,u,[0,M,[0,z[2],0]]]);if(q(F)===4)var n0=0,$=0;else{var H=q(F);x:{if(typeof H==\"number\"&&H===99){var c0=0;break x}var t0=Qj(B,Hj(t,F)),c0=[0,Xt(t0,p(X0[13],b30,t0))]}var n0=Q1(F,He(F)),$=c0}var r0=Sv(0,F),v0=t||r0[19],a0=pl(v0,B)(r0),g0=q(r0)===87?a0:i4(r0,a0),i0=bC(r0),s0=i0[2],d0=i0[1];if(s0)var w0=SB(r0,s0),M0=d0;else var w0=s0,M0=al(r0,d0);return[0,$,g0,B,w0,M0,n0,K]},r),c=i[2],v=c[3],a=c[2],l=c[1],m=c[7],h=c[6],T=c[5],b=c[4],N=i[1],j=l4(r,t,v,1,jv(a)),I=j[1];return ll(r,j[2],l,a),[9,[0,l,a,I,t,v,1,b,T,h,Z([0,m],0,O),N]]},x)}function CC(x,r,e){switch(r){case 1:Ie(x,76);try{var t=Qm(ov(qx(T30,e))),u=t}catch(T){var i=U2(T);if(i[1]!==vn)throw W0(i,0);var u=Tx(qx(E30,e))}break;case 2:Ie(x,75);try{var c=jN(e),u=c}catch(T){var v=U2(T);if(v[1]!==vn)throw W0(v,0);var u=Tx(qx(S30,e))}break;case 4:try{var a=jN(e),u=a}catch(T){var l=U2(T);if(l[1]!==vn)throw W0(l,0);var u=Tx(qx(A30,e))}break;default:try{var m=Qm(ov(e)),u=m}catch(T){var h=U2(T);if(h[1]!==vn)throw W0(h,0);var u=Tx(qx(P30,e))}}return J(x,[0,r,e]),u}function OC(x,r,e){var t=Nx(e);x:{if(t!==0&&z1===q2(e,t-1|0)){var u=T1(e,0,t-1|0);break x}var u=e}var i=rq(u);return J(x,[1,r,e]),i}function KX(x){var r=V0(x),e=u0(x),t=q(x);if(typeof t==\"number\")switch(t){case 0:var u=d(X0[12],x);return[1,[0,u[1],[26,u[2]]],u[3]];case 4:var i=u0(x),c=x0(0,function(U){J(U,4);var h0=V0(U),_0=zt(U),m0=q(U);x:{if(typeof m0==\"number\"){if(m0===9){var T0=[0,DC(U,h0,[0,_0,0])];break x}if(m0===87){var T0=[1,[0,_0,Dv(U),0]];break x}}var T0=[0,_0]}return J(U,5),T0},x),v=c[2],a=c[1],l=L0(x),m=v[0]===0?v[1]:[0,a,[34,v[1]]];return[0,VX([0,i],[0,l],m)];case 6:var h=x0(0,_T0,x),T=h[2];return[1,[0,h[1],[0,T[1]]],T[2]];case 21:if(x[28][3]&&!Iv(1,x)&&xr(1,x)===4){var b=u0(x),N=V0(x),j=p(X0[13],0,x),I=Th(x),F=I[2],M=I[1];if(!N1(x)&&q(x)===0){var z=F[1];if(z){var B=z[1];if(B[0]===0&&!z[2])return[0,JX(x,N,b,B[1])]}return q0(x,[0,M,49]),[0,JX(x,N,b,[0,M,I30])]}var K=[0,j[1],[10,j]],n0=Yr(N,M);return lo(j30,N30,x,N,[0,[0,n0,[6,[0,K,0,[0,M,F],Z([0,b],0,O)]]]])}break;case 22:return E0(x),[0,[0,r,[33,[0,Z([0,e],[0,L0(x)],O)]]]];case 30:return E0(x),[0,[0,r,[16,Z([0,e],[0,L0(x)],O)]]];case 41:return[0,d(X0[22],x)];case 99:var $=d(X0[17],x),H=$[2],t0=$[1],c0=tn<=H[1]?[13,H[2]]:[12,H[2]];return[0,[0,t0,c0]];case 31:case 32:return E0(x),[0,[0,r,[15,[0,t===32?1:0,Z([0,e],[0,L0(x)],O)]]]];case 75:case 106:V2(x,5);var r0=V0(x),v0=u0(x),a0=q(x);x:{if(typeof a0!=\"number\"&&a0[0]===5){var g0=a0[3],i0=a0[2];E0(x);var s0=L0(x),d0=s0,w0=g0,M0=i0,C0=qx(D30,qx(i0,qx(O30,g0)));break x}p2(F30,x);var d0=0,w0=R30,M0=L30,C0=M30}Z2(x);var D0=$r(Nx(w0));Eb0(function(U){var h0=U+D9|0;if(21>=h0>>>0)switch(h0){case 0:case 3:case 5:case 9:case 15:case 17:case 18:case 21:return lt(D0,U)}},w0);var I0=G2(D0);return P(I0,w0)&&Ux(x,[19,w0]),[0,[0,r0,[19,[0,M0,I0,C0,Z([0,v0],[0,d0],O)]]]]}else switch(t[0]){case 0:var j0=t[2],y0=CC(x,t[1],j0);return[0,[0,r,[17,[0,y0,j0,Z([0,e],[0,L0(x)],O)]]]];case 1:var Y0=t[2],L=OC(x,t[1],Y0);return[0,[0,r,[18,[0,L,Y0,Z([0,e],[0,L0(x)],O)]]]];case 2:var N0=t[1],S0=N0[3],K0=N0[2],A0=N0[1];N0[4]&&Ie(x,76),E0(x);var $0=Z([0,e],[0,L0(x)],O),ex=x[28],xx=ex[7],tx=ex[8];x:{if(xx){var z0=xx[1];if(QM(z0,K0)){var sx=[20,[0,K0,A0,Nx(z0),0,S0,$0]];break x}}if(tx){var px=tx[1];if(QM(px,K0)){var sx=[20,[0,K0,A0,Nx(px),1,S0,$0]];break x}}var sx=[14,[0,K0,S0,$0]]}return[0,[0,A0,sx]];case 3:var Q=GX(x,t[1]);return[0,[0,Q[1],[32,Q[2]]]];case 4:if(!P(t[3],lA)&&xr(1,x)===41)return[0,d(X0[22],x)];break}if(dn(x)){var b0=p(X0[13],0,x);return[0,[0,b0[1],[10,b0]]]}p2(0,x);x:if(typeof t!=\"number\"&&t[0]===7){E0(x);break x}return[0,[0,r,[16,Z([0,e],C30,O)]]]}function JX(x,r,e,t){function u(i){var c=u0(i),v=d(X0[27],i),a=u2(i,16)?[0,d(X0[7],i)]:0;J(i,87);var l=zt(i),m=q(i);x:{r:if(typeof m==\"number\"){if(m!==1&&mr!==m)break r;break x}J(i,9)}return[0,v,l,a,Z([0,c],[0,L0(i)],O)]}return x0([0,r],function(i){J(i,0);for(var c=0;;){var v=q(i);x:if(typeof v==\"number\"){if(v!==1&&mr!==v)break x;var a=ix(c);return J(i,1),[22,[0,t,a,Z([0,e],[0,L0(i)],O)]]}var c=[0,x0(0,u,i),c]}},x)}function GX(x,r){var e=r[5],t=r[1],u=r[3],i=r[2],c=u0(x);J(x,[3,r]);var v=[0,t,[0,[0,u,i],e]];if(e)var l=0,m=[0,v,0],h=t;else var a=H0(jX[1],x,[0,v,0],0),l=a[3],m=a[2],h=a[1];var T=L0(x),b=Yr(t,h);return[0,b,[0,m,l,Z([0,c],[0,T],O)]]}function WX(x,r,e,t){var u=p(F2(x)[2],e,function(c,v){return p(Bx(c,jt,3),c,v)}),i=GX(x,t);return[0,Yr(r,i[1]),[31,[0,u,i,0]]]}function VX(x,r,e){var t=x?x[1]:0,u=r?r[1]:0,i=e[2];function c(ox){return S1(ox,Z([0,t],[0,u],O))}function v(ox){return S5(ox,Z([0,t],[0,u],O))}var a=e[1];switch(i[0]){case 0:var l=i[1],m=v(l[2]),U0=[0,[0,l[1],m]];break;case 1:var h=i[1],T=h[11],b=c(h[10]),U0=[1,[0,h[1],h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],b,T]];break;case 2:var N=i[1],j=c(N[2]),U0=[2,[0,N[1],j]];break;case 3:var I=i[1],F=c(I[3]),U0=[3,[0,I[1],I[2],F]];break;case 4:var M=i[1],z=c(M[4]),U0=[4,[0,M[1],M[2],M[3],z]];break;case 5:var B=i[1],K=c(B[4]),U0=[5,[0,B[1],B[2],B[3],K]];break;case 6:var n0=i[1],$=c(n0[4]),U0=[6,[0,n0[1],n0[2],n0[3],$]];break;case 7:var H=i[1],t0=c(H[7]),U0=[7,[0,H[1],H[2],H[3],H[4],H[5],H[6],t0]];break;case 8:var c0=i[1],r0=c(c0[4]),U0=[8,[0,c0[1],c0[2],c0[3],r0]];break;case 9:var v0=i[1],a0=v0[11],g0=c(v0[10]),U0=[9,[0,v0[1],v0[2],v0[3],v0[4],v0[5],v0[6],v0[7],v0[8],v0[9],g0,a0]];break;case 10:var i0=i[1],s0=i0[2],d0=i0[1],w0=c(s0[2]),U0=[10,[0,d0,[0,s0[1],w0]]];break;case 11:var M0=i[1],C0=c(M0[2]),U0=[11,[0,M0[1],C0]];break;case 12:var D0=i[1],I0=c(D0[4]),U0=[12,[0,D0[1],D0[2],D0[3],I0]];break;case 13:var j0=i[1],y0=c(j0[4]),U0=[13,[0,j0[1],j0[2],j0[3],y0]];break;case 14:var Y0=i[1],L=c(Y0[3]),U0=[14,[0,Y0[1],Y0[2],L]];break;case 15:var N0=i[1],S0=c(N0[2]),U0=[15,[0,N0[1],S0]];break;case 16:var U0=[16,c(i[1])];break;case 17:var K0=i[1],A0=c(K0[3]),U0=[17,[0,K0[1],K0[2],A0]];break;case 18:var $0=i[1],ex=c($0[3]),U0=[18,[0,$0[1],$0[2],ex]];break;case 19:var xx=i[1],tx=c(xx[4]),U0=[19,[0,xx[1],xx[2],xx[3],tx]];break;case 20:var z0=i[1],px=c(z0[6]),U0=[20,[0,z0[1],z0[2],z0[3],z0[4],z0[5],px]];break;case 21:var sx=i[1],Q=c(sx[4]),U0=[21,[0,sx[1],sx[2],sx[3],Q]];break;case 22:var b0=i[1],U=c(b0[3]),U0=[22,[0,b0[1],b0[2],U]];break;case 23:var h0=i[1],_0=c(h0[3]),U0=[23,[0,h0[1],h0[2],_0]];break;case 24:var m0=i[1],T0=c(m0[3]),U0=[24,[0,m0[1],m0[2],T0]];break;case 25:var X=i[1],Gx=c(X[4]),U0=[25,[0,X[1],X[2],X[3],Gx]];break;case 26:var Px=i[1],G0=v(Px[2]),U0=[26,[0,Px[1],G0]];break;case 27:var Kr=i[1],S=Kr[1],G=Kr[3],rx=Kr[2],yx=c(S[4]),U0=[27,[0,[0,S[1],S[2],S[3],yx],rx,G]];break;case 28:var Ex=i[1],nx=Ex[1],p0=Ex[3],Fx=Ex[2],Sx=c(nx[3]),U0=[28,[0,[0,nx[1],nx[2],Sx],Fx,p0]];break;case 29:var bx=i[1],B0=c(bx[2]),U0=[29,[0,bx[1],B0]];break;case 30:var U0=[30,[0,c(i[1][1])]];break;case 31:var Wx=i[1],Yx=c(Wx[3]),U0=[31,[0,Wx[1],Wx[2],Yx]];break;case 32:var ax=i[1],Qx=c(ax[3]),U0=[32,[0,ax[1],ax[2],Qx]];break;case 33:var U0=[33,[0,c(i[1][1])]];break;case 34:var kx=i[1],tr=c(kx[3]),U0=[34,[0,kx[1],kx[2],tr]];break;case 35:var sr=i[1],Mr=c(sr[3]),U0=[35,[0,sr[1],sr[2],Mr]];break;case 36:var a2=i[1],_2=c(a2[3]),U0=[36,[0,a2[1],a2[2],_2]];break;case 37:var i2=i[1],Q2=c(i2[4]),U0=[37,[0,i2[1],i2[2],i2[3],Q2]];break;default:var jx=i[1],_=jx[4],V=jx[3],lx=c(jx[2]),U0=[38,[0,jx[1],lx,V,_]]}return[0,a,U0]}function _T0(x){var r=u0(x);J(x,6);var e=p(CX[1],x,[0,0,ln]),t=e[2],u=e[1],i=u0(x);return J(x,7),[0,[0,u,O2([0,r],[0,L0(x)],i,O)],t]}function $X(x){var r=rh(IC[1],x),e=V0(r);if(xr(1,r)===11)var u=0,i=0;else var t=gh(r),u=t[2],i=t[1];var c=i||r[19],v=Hj(c,r),a=v[18],l=x0(0,function(s0){var d0=Q1(s0,He(s0));if(dn(s0)&&d0===0){var w0=p(X0[13],q30,s0),M0=w0[1],C0=[0,M0,[0,[0,M0,[2,[0,w0,[0,da(s0)],0]]],0]];return[0,d0,[0,M0,[0,0,[0,C0,0],0,0]],[0,[0,M0[1],M0[3],M0[3]]],0]}var D0=pl(c,a)(s0);kX(s0,D0);var I0=bC(Av(1,s0));return[0,d0,D0,I0[1],I0[2]]},v),m=l[2],h=m[2],T=h[2];x:{r:{var b=m[4],N=m[3],j=m[1],I=l[1];if(!T[1]){var F=T[2];if(!T[3]&&F)break r;var M=kB(v);break x}}var M=v}var z=h[2],B=z[1];if(B){var K=h[1];q0(M,[0,B[1][1],86]);var n0=[0,K,[0,0,z[2],z[3],z[4]]]}else var n0=h;var $=jv(n0),H=N1(M),t0=H&&(q(M)===11?1:0);t0&&Ux(M,55),J(M,11);var c0=mB(kB(M),i,0,$),r0=x0(0,IC[2],c0),v0=r0[2],a0=v0[1],g0=r0[1];ll(c0,v0[2],0,n0);var i0=Yr(e,g0);return[0,[0,i0,[1,[0,0,n0,a0,i,0,1,b,N,j,Z([0,u],0,O),I]]]]}function DC(x,r,e){return x0([0,r],d(OX[1],e),x)}function QX(x){var r=V0(x),e=FX(x),t=q(x);x:{if(typeof t==\"number\"){var u=t-68|0;if(15>=u>>>0){switch(u){case 0:var i=Fv0;break;case 1:var i=Rv0;break;case 2:var i=Lv0;break;case 3:var i=Mv0;break;case 4:var i=qv0;break;case 5:var i=Uv0;break;case 6:var i=Bv0;break;case 7:var i=Xv0;break;case 8:var i=Yv0;break;case 9:var i=zv0;break;case 10:var i=Kv0;break;case 11:var i=Jv0;break;case 12:var i=Gv0;break;case 13:var i=Wv0;break;case 14:var i=Vv0;break;default:var i=$v0}var c=i;break x}}var c=0}if(c!==0&&E0(x),!c)return e;var v=c[1];return[0,x0([0,r],function(a){var l=AC(0,a,e);return[4,[0,v,l,zt(a),0]]},x)]}function bT0(x,r){if(typeof r==\"number\"&&r===80)return 0;throw W0(gs,1)}Fr(k4,[0,QX,function(x){var r=rh(bT0,x),e=QX(r),t=q(r);if(typeof t==\"number\"){if(t===11)throw W0(gs,1);if(t===87){var u=pB(r);x:{if(u){var i=u[1];if(typeof i==\"number\"&&i===5){var c=1;break x}}var c=0}if(c)throw W0(gs,1)}}if(!dn(r))return e;if(e[0]===0){var v=e[1][2];if(v[0]===10&&!P(v[1][2][1],Ka)&&!N1(r))throw W0(gs,1)}return e}]);function FC(x,r,e,t,u){var i=o1(x,r);return[0,[0,u,[21,[0,t,i,o1(x,e),0]]]]}function RC(x,r,e){for(var t=r,u=e;;){var i=q(x);if(typeof i==\"number\"&&i===89){E0(x);var c=x0(0,bh,x),v=c[2],a=Yr(u,c[1]),l=LC(0,x,FC(x,t,v,1,a),a),t=l[2],u=l[1];continue}return[0,u,t]}}function HX(x,r,e){for(var t=r,u=e;;){var i=q(x);if(typeof i==\"number\"&&i===88){E0(x);var c=x0(0,bh,x),v=RC(x,c[2],c[1]),a=v[2],l=Yr(u,v[1]),m=LC(0,x,FC(x,t,a,0,l),l),t=m[2],u=m[1];continue}return[0,u,t]}}function LC(x,r,e,t){for(var u=x,i=e,c=t;;){var v=q(r);if(typeof v==\"number\"&&v===85){1-u&&Ux(r,ll0),J(r,85);var a=x0(0,bh,r),l=a[2],m=a[1],h=q(r);x:{if(typeof h==\"number\"&&1>=h+iD>>>0){Ux(r,[22,Yj(h)]);var T=RC(r,l,m),b=HX(r,T[2],T[1]),N=b[2],j=b[1];break x}var N=l,j=m}var I=Yr(c,j),u=1,i=FC(r,i,N,2,I),c=I;continue}return[0,c,i]}}Fr(_h,[0,RC,HX,LC]);function MC(x,r,e,t){return[0,t,[5,[0,e,x,r,0]]]}Fr(PX,[0,function(x,r){for(var e=r;;){var t=x0(0,function(L){var N0=RX(L)!==0?1:0;return[0,N0,LX(e4(0,L))]},x),u=t[2],i=u[2],c=u[1],v=t[1];x:if(q(x)===99&&i[0]===0&&i[1][2][0]===12){Ux(x,2);break x}let Y0=v;var a=function(L,N0){for(var S0=L,K0=N0;;){var A0=q(x);x:if(typeof A0!=\"number\"&&A0[0]===4){var $0=A0[3];if(P($0,Nt)&&P($0,$R))break x;if(A2(x)){E0(x);var ex=o1(x,K0);r:{if(S0){var xx=S0[1],tx=xx[2],z0=S0[2],px=xx[3],sx=tx[1],Q=xx[1];if(AX(tx[2],z30)){var b0=MC(Q,ex,sx,Yr(px,Y0)),U=z0;break r}}var b0=ex,U=S0}var h0=b0[1];if(br($0,$R))var _0=ga(x),m0=_0[1],Px=[0,[0,Yr(h0,m0),[35,[0,b0,[0,m0,_0],0]]]];else if(q(x)===28){var T0=Yr(h0,V0(x));E0(x);var Px=[0,[0,T0,[2,[0,b0,0]]]]}else var X=ga(x),Gx=X[1],Px=[0,[0,Yr(h0,Gx),[3,[0,b0,[0,Gx,X],0]]]];var S0=U,K0=Px;continue}}return[0,S0,K0]}}(e,i),l=a[2],m=a[1],h=q(x);x:{r:if(typeof h==\"number\"){var T=h-17|0;if(1>>0){if(73>T)break r;switch(T-73|0){case 0:var b=K30;break;case 1:var b=J30;break;case 2:var b=G30;break;case 3:var b=W30;break;case 4:var b=V30;break;case 5:var b=$30;break;case 6:var b=Q30;break;case 7:var b=H30;break;case 8:var b=Z30;break;case 9:var b=xl0;break;case 10:var b=rl0;break;case 11:var b=el0;break;case 12:var b=tl0;break;case 13:var b=nl0;break;case 14:var b=ul0;break;case 15:var b=il0;break;case 16:var b=fl0;break;case 17:var b=cl0;break;case 18:var b=sl0;break;case 19:var b=al0;break;default:break r}var N=b}else var N=T?ol0:x[12]?0:vl0;var j=N;break x}var j=0}if(j!==0&&E0(x),!m&&!j)return l;if(j){var I=j[1],F=I[1],M=I[2],z=c&&(F===14?1:0);z&&q0(x,[0,v,37]);x:for(var B=o1(x,l),K=[0,F,M],n0=v,$=m;;){var H=K[2],t0=K[1];if(!$)break x;var c0=$[1],r0=c0[2],v0=$[2],a0=c0[3],g0=r0[1],i0=c0[1];if(!AX(r0[2],H))break;var s0=Yr(a0,n0),B=MC(i0,B,g0,s0),K=[0,t0,H],n0=s0,$=v0}var e=[0,[0,B,[0,t0,H],n0],$]}else for(var d0=o1(x,l),w0=v,M0=m;;){if(!M0)return[0,d0];var C0=M0[1],D0=M0[2],I0=C0[2][1],j0=C0[1],y0=Yr(C0[3],w0),d0=MC(j0,d0,I0,y0),w0=y0,M0=D0}}}]),Fr(IX,[0,function(x){var r=u0(x);J(x,99);for(var e=0;;){var t=q(x);x:if(typeof t==\"number\"){if(y2!==t&&mr!==t)break x;var u=ix(e),i=u0(x);J(x,y2);var c=q(x)===4?F2(x)[1]:L0(x);return[0,u,O2([0,r],[0,c],i,O)]}var v=q(x);x:{if(typeof v!=\"number\"&&v[0]===4&&!P(v[2],qo)){var a=V0(x),l=u0(x);ys(x,Y30);var m=[1,[0,a,[0,Z([0,l],[0,L0(x)],O)]]];break x}var m=[0,ga(x)]}var h=[0,m,e];y2!==q(x)&&J(x,9);var e=h}}]);function TT0(x){var r=u0(x);J(x,12);var e=zt(x);return[0,e,Z([0,r],0,O)]}Fr(NX,[0,function(x,r){for(var e=r;;){var t=q(x);x:if(typeof t==\"number\"){if(t!==5&&mr!==t)break x;return ix(e)}var u=q(x);x:{if(typeof u==\"number\"&&u===12){var i=[1,x0(0,TT0,x)];break x}var i=[0,zt(x)]}var c=[0,i,e];q(x)!==5&&J(x,9);var e=c}}]),Fr(m4,[0,function(x,r,e,t,u,i){var c=x?x[1]:1,v=r?r[1]:0,a=e?e[1]:0,l=rC(0,t),m=d(X0[7],l),h=V0(t);J(t,7);var T=L0(t),b=Yr(u,h),N=Z(0,[0,T],O),j=[0,o1(t,i),[2,m],N],I=v?[28,[0,j,b,a]]:[23,j];return lo([0,c],[0,v],t,u,[0,[0,b,I]])},function(x,r,e,t,u,i){var c=x?x[1]:1,v=r?r[1]:0,a=e?e[1]:0,l=q(t);x:{if(typeof l==\"number\"&&l===14){var m=NB(t),h=m[1],T=t[30][1],b=m[2][1];if(T){var N=T[1];t[30][1]=[0,[0,N[1],[0,[0,b,h],N[2]]],T[2]]}else q0(t,[0,h,63]);var I=[1,m],F=h;break x}var j=a1(t),I=[0,j],F=j[1]}var M=Yr(u,F);x:if(i[0]===0&&i[1][2][0]===30&&I[0]===1){q0(t,[0,M,82]);break x}var z=[0,o1(t,i),I,0],B=v?[28,[0,z,M,a]]:[23,z];return lo([0,c],[0,v],t,u,[0,[0,M,B]])}]),Fr(jX,[0,function(x,r,e){for(var t=r,u=e;;){var i=d(X0[7],x),c=[0,i,u],v=q(x);if(typeof v==\"number\"&&v===1){V2(x,4);var a=q(x);if(typeof a!=\"number\"&&a[0]===3){var l=a[1],m=l[5],h=l[1],T=l[3],b=l[2];E0(x),Z2(x);var N=[0,[0,h,[0,[0,T,b],m]],t];if(m){var j=ix(c);return[0,h,ix(N),j]}var t=N,u=c;continue}throw W0([0,Nr,U30],1)}p2(B30,x);var I=[0,i[1],X30],F=ix(c),M=ix([0,I,t]);return[0,i[1],M,F]}}]),Fr(CX,[0,function(x,r){for(var e=r;;){var t=e[2],u=e[1],i=q(x);x:if(typeof i==\"number\"){if(13<=i){if(mr!==i)break x}else{if(7>i)break x;switch(i-7|0){case 0:break;case 2:var c=V0(x);E0(x);var e=[0,[0,[2,c],u],t];continue;case 5:var v=u0(x),a=x0(0,function(n0){E0(n0);var $=h4(n0);return $[0]===0?[0,$[1],ln]:[0,$[1],$[2]]},x),l=a[2],m=l[2],h=a[1],T=l[1],b=[1,[0,h,[0,T,Z([0,v],0,O)]]],N=q(x)===7?1:0;r:{if(!N&&xr(1,x)===7){var j=[0,m[1],[0,[0,h,16],m[2]]];break r}var j=m}1-N&&J(x,9);var e=[0,[0,b,u],PC(j,t)];continue;default:break x}}var I=bX(t);return[0,ix(u),I]}var F=h4(x);if(F[0]===0)var M=ln,z=F[1];else var M=F[2],z=F[1];q(x)!==7&&J(x,9);var e=[0,[0,[0,z],u],PC(M,t)]}}]),Fr(IC,[0,function(x){return function(r){x:if(typeof r==\"number\"){if(61<=r){var e=r-62|0;if(49>=e>>>0){var t=e-15|0;if(9>>0)break x;switch(t){case 0:case 1:case 3:case 9:break;default:break x}}}else if(7<=r){if(r!==55)break x}else if(5>r)break x;return 0}throw W0(gs,1)}},function(x){var r=q(x);if(typeof r==\"number\"&&!r){var e=p(X0[16],1,x);return[0,[0,e[1]],e[2]]}return[0,[1,d(X0[10],x)],0]}]),Fr(OX,[0,function(x,r){for(var e=x;;){var t=q(r);if(typeof t==\"number\"&&t===9){E0(r);var e=[0,zt(r),e];continue}return[29,[0,ix(e),0]]}}]);function ET0(x){var r=u0(x);E0(x);var e=Z([0,r],0,O),t=NC(x),u=N1(x)?u4(x):ch(x);return[0,p(u[2],t,function(i,c){return p(Bx(i,jt,95),i,c)}),e]}function qC(x){if(!x[28][4])return 0;for(var r=0;;){var e=q(x);if(typeof e==\"number\"&&e===13){var r=[0,x0(0,ET0,x),r];continue}return ix(r)}}function po(x,r){var e=x?x[1]:0,t=u0(r),u=q(r);if(typeof u==\"number\")switch(u){case 6:var i=x0(0,function(s0){var d0=u0(s0);J(s0,6);var w0=e4(0,s0),M0=d(X0[10],w0);return J(s0,7),[0,M0,Z([0,d0],[0,L0(s0)],O)]},r),c=i[1];return[0,c,[5,[0,c,i[2]]]];case 14:if(!e){var v=x0(0,function(s0){return E0(s0),[3,a1(s0)]},r),a=v[1],l=v[2];return q0(r,[0,a,63]),[0,a,l]}var m=NB(r),h=r[30][1],T=m[2][1],b=m[1];if(h){var N=h[1],j=h[2],I=N[2],F=[0,[0,I1[4].call(null,T,N[1]),I],j];r[30][1]=F}else Tx(Hc0);return[0,b,[4,m]]}else switch(u[0]){case 0:var M=u[2],z=u[1],B=V0(r),K=CC(r,z,M);return[0,B,[1,[0,B,[0,K,M,Z([0,t],[0,L0(r)],O)]]]];case 1:var n0=u[2],$=u[1],H=V0(r),t0=OC(r,$,n0);return[0,H,[2,[0,H,[0,t0,n0,Z([0,t],[0,L0(r)],O)]]]];case 2:var c0=u[1],r0=c0[4],v0=c0[3],a0=c0[2],g0=c0[1];return r0&&Ie(r,76),J(r,[2,[0,g0,a0,v0,r0]]),[0,g0,[0,[0,g0,[0,a0,v0,Z([0,t],[0,L0(r)],O)]]]]}var i0=a1(r);return[0,i0[1],[3,i0]]}function Eh(x,r,e){var t=0,u=Fv(x),i=u[1],c=u[2],v=po([0,r],x),a=v[1],l=gn(x,v[2]);return[0,l,x0(0,function(m){var h=Sv(1,m),T=x0(0,function(B){var K=pl(0,0)(B),n0=0,$=q(B)===87?K:i4(B,K);x:if(e){var H=$[2];r:{if(!H[1]){if(!H[2]&&!H[3])break r;q0(B,[0,a,23]);break x}q0(B,[0,a,24])}}else{var t0=$[2];r:if(t0[1])q0(B,[0,a,66]);else{var c0=t0[2];if(c0&&!c0[2]&&!t0[3])break r;t0[3]?q0(B,[0,a,65]):q0(B,[0,a,65])}}return[0,n0,$,al(B,_C(B))]},h),b=T[2],N=b[2],j=b[3],I=b[1],F=T[1],M=l4(h,t,i,0,jv(N)),z=M[1];return ll(h,M[2],0,N),[0,0,N,z,t,i,1,0,j,I,Z([0,c],0,O),F]},x)]}function ZX(x){var r=h4(x);return r[0]===0?[0,r[1],ln]:[0,r[1],r[2]]}function xY(x,r){switch(r[0]){case 0:var e=r[1],t=e[1],u=e[2];return q0(x,[0,t,47]),[0,t,[14,u]];case 1:var i=r[1],c=i[1],v=i[2];return q0(x,[0,c,47]),[0,c,[17,v]];case 2:var a=r[1],l=a[1],m=a[2];return q0(x,[0,l,47]),[0,l,[18,m]];case 3:var h=r[1],T=h[2][1],b=h[1];return eh(T)?q0(x,[0,b,95]):fl(T)&&ht(x,[0,b,80]),[0,b,[10,h]];case 4:return Tx(Xl0);default:var N=r[1][2][1];return q0(x,[0,N[1],7]),N}}function rY(x,r,e){function t(i){var c=Sv(1,i),v=x0(0,function(j){var I=Q1(j,He(j)),F=pl(x,r)(j),M=q(j)===87?F:i4(j,F);return[0,I,M,al(j,_C(j))]},c),a=v[2],l=a[2],m=a[3],h=a[1],T=v[1],b=l4(c,x,r,0,jv(l)),N=b[1];return ll(c,b[2],0,l),[0,0,l,N,x,r,1,0,m,h,Z([0,e],0,O),T]}var u=0;return function(i){return x0(u,t,i)}}function eY(x){return J(x,87),ZX(x)}function UC(x,r,e,t,u,i){var c=x0([0,r],function(a){if(!t&&!u){var l=q(a);x:if(typeof l==\"number\"){if(87<=l){if(l!==99){if(88<=l)break x;var m=eY(a);return[0,[0,e,m[1],0],m[2]]}}else{if(l===83){if(e[0]===3)var h=e[1],T=V0(a),b=x0([0,h[1]],function(F){var M=u0(F);J(F,83);var z=L0(F),B=p(X0[19],F,[0,h[1],[10,h]]),K=d(X0[10],F);return[4,[0,0,B,K,Z([0,M],[0,z],O)]]},a),N=[0,b,[0,[0,[0,T,[26,P5(Bl0)]],0],0]];else var N=eY(a);return[0,[0,e,N[1],1],N[2]]}if(10<=l)break x;switch(l){case 4:break;case 1:case 9:return[0,[0,e,xY(a,e),1],ln];default:break x}}var j=gn(a,e);return[0,[1,j,rY(t,u,i)(a)],ln]}return[0,[0,e,xY(a,e),1],ln]}var I=gn(a,e);return[0,[1,I,rY(t,u,i)(a)],ln]},x),v=c[2];return[0,[0,[0,c[1],v[1]]],v[2]]}function ST0(x){if(q(x)===12){var r=u0(x),e=x0(0,function(d0){return J(d0,12),ZX(d0)},x),t=e[2],u=t[2],i=t[1],c=e[1];return[0,[1,[0,c,[0,i,Z([0,r],0,O)]]],u]}var v=V0(x),a=xr(1,x);x:{r:if(typeof a==\"number\"){if(87<=a){if(a!==99&&88<=a)break r}else if(a!==83){if(10<=a)break r;switch(a){case 1:case 4:case 9:break;default:break r}}var m=0,h=0;break x}var l=gh(x),m=l[2],h=l[1]}var T=Fv(x),b=T[1],N=Mx(m,T[2]),j=q(x);if(!h&&!b&&typeof j!=\"number\"&&j[0]===4){var I=j[3];if(!P(I,Bo)){var F=u0(x),M=po(0,x)[2],z=q(x);x:if(typeof z==\"number\"){if(87<=z){if(z!==99&&88<=z)break x}else if(z!==83){if(10<=z)break x;switch(z){case 1:case 4:case 9:break;default:break x}}return UC(x,v,M,0,0,0)}gn(x,M);var B=x0([0,v],function(d0){return Eh(d0,0,1)},x),K=B[2],n0=K[2],$=K[1],H=B[1];return[0,[0,[0,H,[2,$,n0,Z([0,F],0,O)]]],ln]}if(!P(I,T3)){var t0=u0(x),c0=po(0,x)[2],r0=q(x);x:if(typeof r0==\"number\"){if(87<=r0){if(r0!==99&&88<=r0)break x}else if(r0!==83){if(10<=r0)break x;switch(r0){case 1:case 4:case 9:break;default:break x}}return UC(x,v,c0,0,0,0)}gn(x,c0);var v0=x0([0,v],function(d0){return Eh(d0,0,0)},x),a0=v0[2],g0=a0[2],i0=a0[1],s0=v0[1];return[0,[0,[0,s0,[3,i0,g0,Z([0,t0],0,O)]]],ln]}}return UC(x,v,po(0,x)[2],h,b,N)}function Sh(x,r,e,t){var u=e[2][1],i=e[1];if(br(u,Ro))return q0(x,[0,i,[15,u,0,RL===t?1:0,1]]),r;x:{r:{e:{for(var c=r;;){if(typeof c==\"number\")break r;if(c[0]===0)break e;var v=fx(u,c[2]),a=c[5],l=c[4],m=c[3];if(v===0)break;var h=0<=v?a:l,c=h}var b=[0,m];break x}var T=c[2];if(fx(u,c[1])===0){var b=[0,T];break x}var b=0;break x}var b=0}if(!b)return vh(u,t,r);var N=b[1];x:{r:if(typeof t==\"number\"){if(jA===t){if(typeof N!=\"number\"||KI!==N)break r}else if(KI!==t||typeof N!=\"number\"||jA!==N)break r;break x}q0(x,[0,i,[1,u]])}return vh(u,yR,r)}function tY(x,r){return x0(0,function(e){var t=r?u0(e):0;J(e,53);for(var u=0;;){var i=[0,x0(0,function(a){var l=ws(a),m=q(a)===99?p(F2(a)[2],l,function(h,T){return p(Bx(h,C3,96),h,T)}):l;return[0,m,lX(a)]},e),u],c=q(e);if(typeof c==\"number\"&&c===9){J(e,9);var u=i;continue}var v=ix(i);return[0,v,Z([0,t],0,O)]}},x)}function BC(x){switch(x[0]){case 0:case 3:var r=x[1];return[0,[0,r[1],r[2][1]]];default:return 0}}function XC(x,r){if(r)return q0(x,[0,r[1][1],K2])}function YC(x,r){if(r)return q0(x,[0,r[1],12])}function nY(x,r,e,t,u,i,c,v){var a=x0([0,r],function(j){var I=wC(j),F=q(j);x:if(i){if(typeof F==\"number\"&&F===83){Ux(j,13),E0(j);var M=0;break x}var M=0}else{if(typeof F==\"number\"&&F===83){E0(j);var z=Sv(1,j),M=[0,d(X0[7],z)];break x}var M=1}var B=q(j);x:{if(typeof B==\"number\"&&9>B)switch(B){case 8:E0(j);var K=q(j);r:{e:if(typeof K==\"number\"){if(K!==1&&mr!==K)break e;var n0=L0(j);break r}var n0=N1(j)?ao(j):0}var v0=[0,t,I,M,n0];break x;case 4:case 6:p2(0,j);var v0=[0,t,I,M,0];break x}var $=q(j);r:{e:if(typeof $==\"number\"){if($!==1&&mr!==$)break e;var H=[0,,function(d0,w0){return d0}];break r}var H=N1(j)?u4(j):ch(j)}if(typeof M==\"number\")if(I[0]===0)var t0=M,c0=I,r0=p(H[2],t,function(s0,d0){return p(Bx(s0,ZR,99),s0,d0)});else var t0=M,c0=[1,p(H[2],I[1],function(s0,d0){return p(Bx(s0,kA,y2),s0,d0)})],r0=t;else var t0=[0,p(H[2],M[1],function(s0,d0){return p(Bx(s0,jt,fe),s0,d0)})],c0=I,r0=t;var v0=[0,r0,c0,t0,0]}var a0=v0[3],g0=v0[2],i0=v0[1];return[0,i0,g0,a0,Z([0,v],[0,v0[4]],O)]},x),l=a[2],m=l[4],h=l[3],T=l[2],b=l[1],N=a[1];return b[0]===4?[2,[0,N,[0,b[1],h,T,u,c,e,m]]]:[1,[0,N,[0,b,h,T,u,c,e,m]]]}function zC(x,r,e,t,u,i,c,v,a,l){for(;;){var m=q(x);x:if(typeof m==\"number\"){var h=m-1|0;if(7>>0){var T=h-82|0;if(4>>0)break x;switch(T){case 3:p2(0,x),E0(x);continue;case 0:case 4:break;default:break x}}else if(5>=h-1>>>0)break x;if(!u&&!i)return nY(x,r,e,t,c,v,a,l)}var b=q(x);x:{if(typeof b==\"number\"&&(b===4||b===99)){var N=0;break x}var N=sl(x)?1:0}if(N)return nY(x,r,e,t,c,v,a,l);YC(x,v),XC(x,a);var j=BC(t);x:{if(c){if(j){var I=j[1],F=I[1];if(!P(I[2],za)){q0(x,[0,F,[15,Dl0,c,1,0]]);var B=Sv(1,x),K=1;break x}}}else if(j){var M=j[1],z=M[1];if(!P(M[2],Ro)){u&&q0(x,[0,z,9]),i&&q0(x,[0,z,10]);var B=Sv(2,x),K=0;break x}}var B=Sv(1,x),K=1}var n0=gn(B,t),$=x0(0,function(t0){var c0=x0(0,function(w0){var M0=Q1(w0,He(w0)),C0=pl(u,i)(w0),D0=q(w0)===87?C0:i4(w0,C0),I0=D0[2],j0=I0[1];x:{if(j0){var y0=j0[1][1],Y0=D0[1];if(K===0){q0(w0,[0,y0,87]);var L=[0,Y0,[0,0,I0[2],I0[3],I0[4]]];break x}}var L=D0}return[0,M0,L,al(w0,_C(w0))]},t0),r0=c0[2],v0=r0[2],a0=r0[3],g0=r0[1],i0=c0[1],s0=l4(t0,u,i,0,jv(v0)),d0=s0[1];return ll(t0,s0[2],0,v0),[0,0,v0,d0,u,i,1,0,a0,g0,0,i0]},B),H=[0,K,n0,$,c,e,Z([0,l],0,O)];return[0,[0,Yr(r,$[1]),H]]}}function KC(x,r){var e=xr(x,r);x:if(typeof e==\"number\"){if(87<=e){if(e!==99&&88<=e)break x}else if(e!==83){if(9<=e)break x;switch(e){case 1:case 4:case 8:break;default:break x}}return 1}return 0}var AT0=0;function PT0(x,r,e,t){var u=V0(x),i=q(x);x:{if(typeof i==\"number\")switch(i){case 104:var c=u0(x);E0(x);var l=[0,[0,u,[0,0,Z([0,c],0,O)]]];break x;case 105:var v=u0(x);E0(x);var l=[0,[0,u,[0,1,Z([0,v],0,O)]]];break x}else if(i[0]===4&&!P(i[3],Zo)&&r){var a=u0(x);E0(x);var l=[0,[0,u,[0,2,Z([0,a],0,O)]]];break x}var l=0}x:if(l){var m=l[1][1];if(!e&&!t)break x;return q0(x,[0,m,K2]),0}return l}var IT0=0;function uY(x){return KC(IT0,x)}function NT0(x){var r=V0(x),e=qC(x),t=q(x);x:{if(typeof t==\"number\"&&t===61&&!KC(1,x)){var u=[0,V0(x)],i=u0(x);E0(x);var c=i,v=u;break x}var c=0,v=0}var a=q(x);x:if(typeof a==\"number\"&&2>=a+tR>>>0&&ya(1,x)){r:{if(typeof a==\"number\"){var l=a+tR|0;if(2>=l>>>0){switch(l){case 0:var m=XO;break;case 1:var m=s6;break;default:var m=Bl}var h=m;break r}}var h=Tx(Fl0)}Ux(x,[24,h]),E0(x);break x}var T=q(x)===43?1:0;if(T){var b=xr(1,x);x:{r:if(typeof b==\"number\"){if(88<=b){if(b!==99&&mr!==b)break r}else{var N=b-9|0;if(77>>0){if(78>N)switch(N+9|0){case 1:case 4:case 8:break;default:break r}}else if(N!==74)break r}var j=0;break x}var j=1}var I=j}else var I=T;if(I){var F=u0(x);E0(x);var M=F}else var M=0;var z=q(x)===65?1:0;if(z)var B=1-KC(1,x),K=B&&1-Iv(1,x);else var K=z;if(K){var n0=u0(x);E0(x);var $=n0}else var $=0;var H=Fv(x),t0=H[1],c0=H[2],r0=ya(1,x),v0=r0||(xr(1,x)===6?1:0),a0=PT0(x,v0,K,t0);x:{if(!t0&&a0){var g0=Fv(x),i0=g0[2],s0=g0[1];break x}var i0=c0,s0=t0}var d0=O6([0,c,[0,M,[0,$,[0,i0,0]]]]),w0=q(x);if(!K&&!s0&&typeof w0!=\"number\"&&w0[0]===4){var M0=w0[3];if(!P(M0,Bo)){var C0=u0(x),D0=po(Ll0,x)[2];if(uY(x))return zC(x,r,e,D0,K,s0,I,v,a0,d0);YC(x,v),XC(x,a0),gn(x,D0);var I0=Mx(d0,C0),j0=x0([0,r],function(Gx){return Eh(Gx,1,1)},x),y0=j0[2],Y0=y0[1],L=y0[2],N0=j0[1],S0=BC(Y0);x:if(I){if(S0){var K0=S0[1],A0=K0[1];if(!P(K0[2],za)){q0(x,[0,A0,[15,Ul0,I,0,0]]);break x}}}else if(S0){var $0=S0[1],ex=$0[1];if(!P($0[2],Ro)){q0(x,[0,ex,8]);break x}}return[0,[0,N0,[0,2,Y0,L,I,e,Z([0,I0],0,O)]]]}if(!P(M0,T3)){var xx=u0(x),tx=po(Rl0,x)[2];if(uY(x))return zC(x,r,e,tx,K,s0,I,v,a0,d0);YC(x,v),XC(x,a0),gn(x,tx);var z0=Mx(d0,xx),px=x0([0,r],function(Gx){return Eh(Gx,1,0)},x),sx=px[2],Q=sx[1],b0=sx[2],U=px[1],h0=BC(Q);x:if(I){if(h0){var _0=h0[1],m0=_0[1];if(!P(_0[2],za)){q0(x,[0,m0,[15,ql0,I,0,0]]);break x}}}else if(h0){var T0=h0[1],X=T0[1];if(!P(T0[2],Ro)){q0(x,[0,X,8]);break x}}return[0,[0,U,[0,3,Q,b0,I,e,Z([0,z0],0,O)]]]}}return zC(x,r,e,po(Ml0,x)[2],K,s0,I,v,a0,d0)}function iY(x,r,e,t){var u=x?x[1]:0,i=ha(1,r),c=Mx(u,qC(i)),v=u0(i),a=q(i);x:if(typeof a!=\"number\"&&a[0]===4&&!P(a[3],lA)){Ux(i,83),E0(i);break x}J(i,41);var l=Zj(1,i),m=q(l);x:{r:if(e&&typeof m==\"number\"){if(53<=m){if(m!==99&&54<=m)break r}else if(m!==42&&m)break r;var T=0;break x}if(dn(i))var h=p(X0[13],0,l),T=[0,p(F2(i)[2],h,function($,H){return p(Bx($,C3,sn),$,H)})];else{_B(i,Nl0);var T=[0,[0,V0(i),jl0]]}}var b=He(i);if(b)var N=b[1],j=[0,p(F2(i)[2],N,function($,H){return p(Bx($,oT,g1),$,H)})];else var j=0;var I=u0(i);if(u2(i,42))var F=x0(0,function($){var H=NC(Qj(0,$)),t0=q($)===99?p(F2($)[2],H,function(r0,v0){return p(Bx(r0,jt,97),r0,v0)}):H,c0=lX($);return[0,t0,c0,Z([0,I],0,O)]},i),M=F[1],z=F[2],B=[0,[0,M,p(F2(i)[2],z,function($,H){return H0(Bx($,-663447790,98),$,M,H)})]];else var B=0;if(q(i)===53){1-A2(i)&&Ux(i,Je);var K=[0,PB(i,tY(i,1))]}else var K=0;var n0=x0(0,function($){var H=u0($);if(!u2($,0))return yn($,0),Ol0;$[30][1]=[0,[0,I1[1],0],$[30][1]];for(var t0=0,c0=AT0,r0=0;;){var v0=q($);if(typeof v0==\"number\"){var a0=v0-2|0;if(ce>>0){if(Te>=a0+1>>>0)break}else if(a0===6){J($,8);continue}}var g0=NT0($);switch(g0[0]){case 0:var i0=g0[1],s0=i0[2],d0=i0[1];switch(s0[1]){case 0:if(s0[4])var xx=c0,tx=t0;else{t0&&q0($,[0,d0,15]);var xx=c0,tx=1}break;case 1:var w0=s0[2],M0=w0[0]===4?Sh($,c0,w0[1],RL):c0,xx=M0,tx=t0;break;case 2:var C0=s0[2],D0=C0[0]===4?Sh($,c0,C0[1],jA):c0,xx=D0,tx=t0;break;default:var I0=s0[2],j0=I0[0]===4?Sh($,c0,I0[1],KI):c0,xx=j0,tx=t0}break;case 1:var y0=g0[1][2],Y0=y0[4],L=y0[1];switch(L[0]){case 4:Tx(Cl0);break;case 0:case 3:var N0=L[1],S0=N0[2][1],K0=br(S0,Ro),A0=N0[1];if(K0)var ex=K0;else var $0=br(S0,za),ex=$0&&Y0;ex&&q0($,[0,A0,[15,S0,Y0,0,0]]);break}var xx=c0,tx=t0;break;default:var xx=Sh($,c0,g0[1][2][1],yR),tx=t0}var t0=tx,c0=xx,r0=[0,g0,r0]}function z0(Kr,S){return D6(function(G){return 1-I1[3].call(null,G[1],Kr)},S)}var px=ix(r0),sx=$[30][1];if(sx){var Q=sx[1],b0=Q[1];if(sx[2]){var U=sx[2],h0=z0(b0,Q[2]),_0=C6(U),m0=_0[2],T0=_0[1],X=KM(U),Gx=[0,[0,T0,Mx(m0,h0)],X];$[30][1]=Gx}else b1(function(Kr){return q0($,[0,Kr[2],[25,Kr[1]]])},z0(b0,Q[2])),$[30][1]=0}else Tx(Zc0);J($,1);var Px=q($);x:{r:if(!t){if(typeof Px==\"number\"&&(Px===1||mr===Px))break r;if(N1($)){var G0=ao($);break x}var G0=0;break x}var G0=L0($)}return[0,px,Z([0,H],[0,G0],O)]},i);return[0,T,n0,j,B,K,c,Z([0,v],0,O)]}function Ah(x,r){return x0(0,function(e){return[2,iY([0,r],e,e[7],0)]},x)}function jT0(x){return[7,iY(0,x,1,1)]}var CT0=0,fY=OB(X0);function cY(x){var r=p4(x);x:if(x[5])Nv(x,r[1]);else{var e=r[2];r:if(e[0]===27){var t=e[1],u=r[1];if(t[4])q0(x,[0,u,4]);else{if(!t[5])break r;q0(x,[0,u,22])}break x}}return r}function Ph(x,r){var e=r[4],t=r[3],u=r[2],i=r[1];e&&Ie(x,76);var c=u0(x);return J(x,[2,[0,i,u,t,e]]),[0,i,[0,u,t,Z([0,c],[0,L0(x)],O)]]}function x1(x,r,e){var t=x?x[1]:hv0,u=r?r[1]:1,i=q(e);if(typeof i==\"number\"){var c=i-2|0;if(ce>>0){if(Te>=c+1>>>0)return[1,[0,L0(e),function(a,l){return a}]]}else if(c===6){E0(e);var v=q(e);x:if(typeof v==\"number\"){if(v!==1&&mr!==v)break x;return[0,L0(e)]}return N1(e)?[0,ao(e)]:dv0}}return N1(e)?[1,u4(e)]:(u&&p2([0,t],e),yv0)}function wa(x){var r=q(x);x:if(typeof r==\"number\"){if(r!==1&&mr!==r)break x;return[0,L0(x),function(e,t){return e}]}return N1(x)?u4(x):ch(x)}function JC(x,r,e){var t=x1(0,0,r);if(t[0]===0)return[0,t[1],e];var u=t[1][2],i=ix(e);if(i)var c=i[2],v=ix([0,p(u,i[1],function(a,l){return H0(Bx(a,634872468,66),a,x,l)}),c]);else var v=0;return[0,0,v]}var sY=[],aY=[],oY=[];function vY(x,r,e){var t=e[2][1],u=e[1];if(!(t&&!t[1][2][2]&&!t[2]))return q0(x,[0,u,r])}function GC(x,r){if(!x[5]&&f4(r))return Nv(x,r[1])}function lY(x){var r=so(x)?cY(x):d(X0[2],x),e=1-x[5],t=e&&f4(r);return t&&Nv(x,r[1]),r}function OT0(x){var r=u0(x);J(x,44);var e=lY(x);return[0,e,Z([0,r],0,O)]}function DT0(x){var r=u0(x);J(x,16);var e=Mx(r,u0(x));J(x,4);var t=d(X0[7],x);J(x,5);var u=lY(x),i=q(x)===44?[0,x0(0,OT0,x)]:0;return[28,[0,t,u,i,Z([0,e],0,O)]]}var FT0=0;function pY(x){return x0(FT0,DT0,x)}function RT0(x){var r=d(X0[7],x),e=x1(cv0,0,x);if(e[0]===0)var t=r,u=e[1];else var t=p(e[1][2],r,function(h,T){return p(Bx(h,jt,72),h,T)}),u=0;if(x[20]){var i=t[2];if(i[0]===14){var c=i[1][2];x:{if(1>>0){if(e!==14)break x}else if(4>=e-1>>>0)break x;return L0(x)}return N1(x)?ao(x):0}function AY(x){return q(x)===1?0:[0,d(X0[7],x)]}function _a(x){var r=V0(x),e=q(x);x:{if(typeof e!=\"number\"&&e[0]===8){var t=e[1];break x}p2(gl0,x);var t=wl0}var u=u0(x);E0(x);var i=q(x);x:{r:if(typeof i==\"number\"){var c=i+RR|0;if(73>>0){if(c!==77)break r}else if(71>=c-1>>>0)break r;var v=L0(x);break x}var v=qh(x)}return[0,r,[0,t,Z([0,u],[0,v],O)]]}function PY(x){var r=xr(1,x);if(typeof r==\"number\"){if(r===10)for(var e=x0(0,function(u){var i=[0,_a(u)];return J(u,10),[0,i,_a(u)]},x);;){var t=q(x);if(typeof t==\"number\"&&t===10){let u=e;var e=x0([0,e[1]],function(c){return J(c,10),[0,[1,u],_a(c)]},x);continue}return[2,e]}if(r===87)return[1,x0(0,function(u){var i=_a(u);return J(u,87),[0,i,_a(u)]},x)]}return[0,_a(x)]}function b4(x,r){return br(x[2][1],r[2][1])}function IY(x,r){var e=x[2],t=e[1],u=r[2],i=u[1],c=e[2],v=u[2];x:{if(t[0]===0){var a=t[1];if(i[0]===0){var m=b4(a,i[1]);break x}}else{var l=t[1];if(i[0]!==0){var m=IY(l,i[1]);break x}}var m=0}return m&&b4(c,v)}function Uh(x,r){switch(x[0]){case 0:var e=x[1];if(r[0]===0)return b4(e,r[1]);break;case 1:var t=x[1];if(r[0]===1){var u=t[2],i=r[1][2],c=u[2],v=i[2],a=b4(u[1],i[1]);return a&&b4(c,v)}break;default:var l=x[1];if(r[0]===2)return IY(l,r[1])}return 0}function QC(x){switch(x[0]){case 0:return x[1][1];case 1:return x[1][1];default:return x[1][1]}}var Rv=[];function NY(x,r){var e=u0(r),t=x0(0,function(d0){J(d0,99);var w0=q(d0);if(typeof w0==\"number\"){if(y2===w0)return E0(d0),hl0}else if(w0[0]===8){var M0=PY(d0);x:{if(A2(d0)&&q(d0)===99&&Je!==xr(1,d0)){var C0=fh(d0,0,jC);break x}var C0=0}for(var D0=0;;){var I0=q(d0);if(typeof I0==\"number\"){if(I0===0){var j0=u0(d0);V2(d0,0);var y0=x0(0,function(A0){J(A0,0),J(A0,12);var $0=d(X0[10],A0);return J(A0,1),$0},d0),Y0=y0[2],L=y0[1];Z2(d0);var D0=[0,[1,[0,L,[0,Y0,Z([0,j0],[0,qh(d0)],O)]]],D0];continue}}else if(I0[0]===8){var D0=[0,[0,x0(0,function(A0){var $0=xr(1,A0);x:{if(typeof $0==\"number\"&&$0===87){var ex=[1,x0(0,function(Px){var G0=_a(Px);return J(Px,87),[0,G0,_a(Px)]},A0)];break x}var ex=[0,_a(A0)]}var xx=q(A0);x:{if(typeof xx==\"number\"&&xx===83){J(A0,83);var tx=u0(A0),z0=q(A0);r:{if(typeof z0==\"number\"){if(z0===0){var px=u0(A0);V2(A0,0);var sx=x0(0,function(G0){J(G0,0);var Kr=AY(G0);return J(G0,1),Kr},A0),Q=sx[1],b0=sx[2];Z2(A0);var U=[0,b0,O2([0,px],[0,qh(A0)],0,O)];U[1]||q0(A0,[0,Q,46]);var T0=[0,[1,[0,Q,U]]];break r}}else if(z0[0]===10){var h0=z0[3],_0=z0[2],m0=z0[1];J(A0,z0);var T0=[0,[0,[0,m0,[0,_0,h0,Z([0,tx],[0,qh(A0)],O)]]]];break r}Ux(A0,35);var T0=[0,[0,[0,V0(A0),yl0]]]}var X=T0;break x}var X=0}return[0,ex,X]},d0)],D0];continue}var N0=ix(D0),S0=[0,Ma,[0,M0,C0,u2(d0,Je),N0]];return u2(d0,y2)?[0,S0]:(yn(d0,y2),[1,S0])}}return yn(d0,y2),dl0},r);if(Z2(r),d(Rv[3],t))var u=eE,i=x0(0,function(d0){return 0},r);else{V2(r,3);var c=d(Rv[4],t),v=H0(Rv[1],x,c,r),u=v[2],i=v[1]}var a=L0(r);x:{r:if(typeof u!=\"number\"){var l=u[1];if(Ma===l){var m=u[2],h=m[2][1],T=t[2],b=m[1];if(T[0]===0){var N=T[1];if(typeof N==\"number\")q0(r,[0,QC(h),pl0]);else{var j=N[2][1];e:if(1-Uh(h,j)){if(x&&Uh(x[1],h)){var I=[21,d(Rv[2],j)];q0(r,[0,QC(j),I]);break e}var F=[13,d(Rv[2],j)];q0(r,[0,QC(h),F])}}}var M=b}else{if(tn!==l)break r;var z=u[2],B=t[2];if(B[0]===0){var K=B[1];typeof K!=\"number\"&&q0(r,[0,z,[13,d(Rv[2],K[2][1])]])}var M=z}var n0=M;break x}var n0=t[1]}var $=t[2][1],H=t[1];if(typeof $==\"number\"){x:{r:{var t0=Z([0,e],[0,a],O);if(typeof u!=\"number\"){var c0=u[1];if(Ma===c0)var r0=u[2][1];else{if(tn!==c0)break r;var r0=u[2]}var v0=r0;break x}}var v0=n0}var a0=[0,tn,[0,H,v0,i,t0]]}else{var g0=$[2];x:{var i0=Z([0,e],[0,a],O);if(typeof u!=\"number\"&&Ma===u[1]){var s0=[0,u[2]];break x}var s0=0}var a0=[0,Ma,[0,[0,H,g0],s0,i,i0]]}return[0,Yr(t[1],n0),a0]}function jY(x,r){return V2(r,2),NY(x,r)}function BT0(x,r,e,t){for(var u=t;;){var i=il(e);if(u&&r){var c=u[1],v=c[2],a=r[1],l=u[2];x:{if(v[0]===0){var m=v[1],h=m[2];if(h){var T=h[1][2][1],b=1-Uh(m[1][2][1],T);if(b){var N=Uh(a,T);break x}var N=b;break x}}var N=0}if(N){var j=c[2];x:{if(j[0]===0){var I=j[1],F=I[2];if(F){var M=F[1],z=Yr(c[1],I[3][1]),B=[0,Ma,M],K=[0,z,[0,[0,I[1],0,I[3],I[4]]]];break x}}var B=eE,K=c}return Z2(e),[0,ix([0,K,l]),i,B]}}var n0=q(e);if(typeof n0==\"number\"){if(n0===99){V2(e,2);var $=q(e),H=xr(1,e);x:if(typeof $==\"number\"&&$===99&&typeof H==\"number\"){if(Je!==H&&mr!==H)break x;var t0=x0(0,function(z0){J(z0,99),J(z0,Je);var px=q(z0);if(typeof px==\"number\"){if(y2===px)return E0(z0),tn}else if(px[0]===8){var sx=PY(z0);return ih(z0,y2),[0,Ma,[0,sx]]}return yn(z0,y2),tn},e),c0=t0[2],r0=t0[1],v0=typeof c0==\"number\"?[0,tn,r0]:[0,Ma,[0,r0,c0[2]]],a0=e[24][1];r:{if(a0){var g0=a0[2];if(g0){var i0=g0[2];break r}}var i0=Tx(Jc0)}e[24][1]=i0;var s0=ul(e),d0=Z6(e[25][1],s0);return e[26][1]=d0,[0,ix(u),i,v0]}var w0=NY(r,e),M0=w0[2],C0=w0[1],D0=tn<=M0[1]?[0,C0,[1,M0[2]]]:[0,C0,[0,M0[2]]],u=[0,D0,u];continue}if(mr===n0)return p2(0,e),[0,ix(u),i,eE]}var I0=q(e);x:{if(typeof I0==\"number\"){if(I0===0){V2(e,0);var j0=x0(0,function(z0){J(z0,0);var px=q(z0);r:{if(typeof px==\"number\"&&px===12){var sx=u0(z0);J(z0,12);var Q=d(X0[10],z0),h0=[3,[0,Q,Z([0,sx],0,O)]];break r}var b0=AY(z0),U=b0?0:u0(z0),h0=[2,[0,b0,O2(0,0,U,O)]]}return J(z0,1),h0},e),y0=j0[2],Y0=j0[1];Z2(e);var ex=[0,Y0,y0];break x}}else if(I0[0]===9){var L=I0[3],N0=I0[2],S0=I0[1];J(e,I0);var ex=[0,S0,[4,[0,N0,L]]];break x}var K0=jY(r,e),A0=K0[2],$0=K0[1],ex=tn<=A0[1]?[0,$0,[1,A0[2]]]:[0,$0,[0,A0[2]]]}var u=[0,ex,u]}}function CY(x){switch(x[0]){case 0:return x[1][2][1];case 1:var r=x[1][2],e=r[1],t=qx(kl0,r[2][2][1]);return qx(e[2][1],t);default:var u=x[1][2],i=u[1],c=u[2],v=i[0]===0?i[1][2][1]:CY([2,i[1]]);return qx(v,qx(ml0,c[2][1]))}}Fr(Rv,[0,function(x,r,e){var t=V0(e),u=BT0(O,r,e,0),i=u[2],c=u[3],v=u[1],a=i?i[1]:t;return[0,[0,Yr(t,a),v],c]},CY,function(x){var r=x[2];if(r[0]!==0)return 1;var e=r[1];return typeof e==\"number\"?0:e[2][3]},function(x){var r=x[2][1];return typeof r==\"number\"?0:[0,r[2][1]]}]);function OY(x,r){var e=a1(r);return sh(x,r,e),e}var HC=[],DY=[],FY=[],RY=[];function XT0(x){var r=u0(x);J(x,60);var e=q(x)===8?L0(x):0,t=x1(0,0,x),u=t[0]===0?t[1]:t[1][1];return[5,[0,Z([0,r],[0,Mx(e,u)],O)]]}var YT0=0;function zT0(x){var r=u0(x);J(x,38);var e=r4(1,x),t=d(X0[2],e),u=1-x[5],i=u&&f4(t);i&&Nv(x,t[1]);var c=L0(x);J(x,26);var v=L0(x);J(x,4);var a=d(X0[7],x);J(x,5);var l=q(x)===8?L0(x):0,m=x1(0,mv0,x),h=m[0]===0?Mx(l,m[1]):m[1][1];return[18,[0,t,a,Z([0,r],[0,Mx(c,Mx(v,h))],O)]]}var KT0=0;function JT0(x){var r=u0(x);J(x,40);var e=x[19],t=e&&u2(x,66),u=Mx(r,u0(x));J(x,4);var i=Z([0,u],0,O),c=q(x);x:{if(typeof c==\"number\"&&c===65){var v=1;break x}var v=0}var a=e4(1,x),l=q(a);x:{if(typeof l==\"number\"){if(25<=l){if(30>l)switch(l+E3|0){case 0:var m=x0(0,yX,a),h=m[2],T=h[3],b=h[1],N=m[1],t0=T,c0=[0,[1,[0,N,[0,b,0,Z([0,h[2]],0,O)]]]];break x;case 3:var j=x0(0,gX,a),I=j[2],F=I[3],M=I[1],z=j[1],t0=F,c0=[0,[1,[0,z,[0,M,2,Z([0,I[2]],0,O)]]]];break x;case 4:if(xr(1,a)!==17){var B=x0(0,wX,a),K=B[2],n0=K[3],$=K[1],H=B[1],t0=n0,c0=[0,[1,[0,H,[0,$,1,Z([0,K[2]],0,O)]]]];break x}break}}else if(l===8){var t0=0,c0=0;break x}}var t0=0,c0=[0,[0,d(X0[8],a)]]}var r0=q(x);if(typeof r0==\"number\"){if(r0===17){if(!c0)throw W0([0,Nr,kv0],1);var v0=c0[1];if(v0[0]===0)var a0=[1,AC(pv0,x,v0[1])];else{var g0=v0[1];vY(x,38,g0);var a0=[0,g0]}t?J(x,64):J(x,17);var i0=d(X0[7],x);J(x,5);var s0=r4(1,x),d0=d(X0[2],s0);return GC(x,d0),[25,[0,a0,i0,d0,0,i]]}if(r0===64){if(!c0)throw W0([0,Nr,lv0],1);var w0=c0[1];if(w0[0]===0){var M0=AC(vv0,x,w0[1]),C0=1-t,D0=C0&&v;x:if(D0){var I0=M0[2];if(I0[0]===2){var j0=I0[1][1],y0=j0[1];if(!P(j0[2][1],Ka)){q0(x,[0,y0,39]);break x}}}var Y0=[1,M0]}else{var L=w0[1];vY(x,39,L);var Y0=[0,L]}J(x,64);var N0=d(X0[10],x);J(x,5);var S0=r4(1,x),K0=d(X0[2],S0);return GC(x,K0),[26,[0,Y0,N0,K0,t,i]]}}if(b1(function(b0){return q0(x,b0)},t0),t?J(x,64):J(x,8),c0)var A0=c0[1],$0=A0[0]===0?[0,[1,o1(x,A0[1])]]:[0,[0,A0[1]]],ex=$0;else var ex=0;var xx=q(x);x:{if(typeof xx==\"number\"&&xx===8){var tx=0;break x}var tx=[0,d(X0[7],x)]}J(x,8);var z0=q(x);x:{if(typeof z0==\"number\"&&z0===5){var px=0;break x}var px=[0,d(X0[7],x)]}J(x,5);var sx=r4(1,x),Q=d(X0[2],sx);return GC(x,Q),[24,[0,ex,tx,px,Q,i]]}var GT0=0;function WT0(x){1-x[11]&&Ux(x,27);var r=u0(x),e=V0(x);J(x,19);var t=q(x)===8?L0(x):0;x:{if(q(x)!==8&&!sl(x)){var u=[0,d(X0[7],x)];break x}var u=0}var i=Yr(e,V0(x)),c=x1(0,0,x);x:{if(c[0]===0)var v=c[1];else{var a=c[1],l=a[1];if(u){var m=[0,p(a[2],u[1],function(j,I){return p(Bx(j,jt,67),j,I)})],h=t;break x}var v=l}var m=u,h=Mx(t,v)}return[33,[0,m,Z([0,r],[0,h],O),i]]}var VT0=0;function $T0(x){var r=u0(x);J(x,20),J(x,4);var e=d(X0[7],x);J(x,5),J(x,0);for(var t=ov0;;){var u=t[2],i=t[1],c=q(x);x:if(typeof c==\"number\"){if(c!==1&&mr!==c)break x;var v=ix(u);J(x,1);var a=wa(x)[1],l=e[1];return[34,[0,e,v,Z([0,r],[0,a],O),l]]}let h=i;var m=sC(0,function(b){var N=u0(b),j=q(b);x:{if(typeof j==\"number\"&&j===37){h&&Ux(b,53),J(b,37);var I=L0(b),F=0;break x}J(b,34);var I=0,F=[0,d(X0[7],b)]}var M=h||(F===0?1:0);J(b,87);var z=Mx(I,wa(b)[1]);function B(H){x:if(typeof H==\"number\"){var t0=H-1|0;if(33>>0){if(t0!==36)break x}else if(31>=t0-1>>>0)break x;return 1}return 0}var K=1,n0=b[9]===1?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],K,b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]],$=p(X0[4],B,n0);return[0,[0,F,$,Z([0,N],[0,z],O)],M]},x),t=[0,m[2],[0,m[1],u]]}}var QT0=0;function HT0(x){var r=u0(x),e=V0(x);J(x,23),N1(x)&&q0(x,[0,e,54]);var t=d(X0[7],x),u=x1(0,0,x);if(u[0]===0)var i=t,c=u[1];else var i=p(u[1][2],t,function(v,a){return p(Bx(v,jt,68),v,a)}),c=0;return[35,[0,i,Z([0,r],[0,c],O)]]}var ZT0=0;function xE0(x){var r=u0(x);J(x,24);var e=d(X0[15],x),t=q(x)===35?p(F2(x)[2],e,function(b,N){var j=N[1];return[0,j,H0(Bx(b,zp,4),b,j,N[2])]}):e,u=q(x);x:{if(typeof u==\"number\"&&u===35){var i=[0,x0(0,function(N){var j=u0(N);J(N,35);var I=L0(N);if(q(N)===4){J(N,4);var F=[0,p(X0[18],N,67)];J(N,5);var M=F}else var M=0;var z=d(X0[15],N),B=q(N)===39?z:p(wa(N)[2],z,function(K,n0){var $=n0[1];return[0,$,H0(Bx(K,zp,69),K,$,n0[2])]});return[0,M,B,Z([0,j],[0,I],O)]},x)];break x}var i=0}var c=q(x);x:{if(typeof c==\"number\"&&c===39){J(x,39);var v=d(X0[15],x),a=v[1],l=v[2],m=[0,[0,a,p(wa(x)[2],l,function(N,j){return H0(Bx(N,zp,70),N,a,j)})]];break x}var m=0}var h=i===0?1:0,T=h&&(m===0?1:0);return T&&q0(x,[0,t[1],56]),[36,[0,t,i,m,Z([0,r],0,O)]]}var rE0=0;function eE0(x){var r=0,e=yX(x),t=e[3],u=e[2],i=JC(r,x,e[1]),c=i[2],v=i[1];return b1(function(a){return q0(x,a)},t),[39,[0,c,r,Z([0,u],[0,v],O)]]}var tE0=0;function nE0(x){var r=2,e=gX(x),t=e[3],u=e[2],i=JC(r,x,e[1]),c=i[2],v=i[1];return b1(function(a){return q0(x,a)},t),[39,[0,c,r,Z([0,u],[0,v],O)]]}var uE0=0;function iE0(x){var r=1,e=wX(x),t=e[3],u=e[2],i=JC(r,x,e[1]),c=i[2],v=i[1];return b1(function(a){return q0(x,a)},t),[39,[0,c,r,Z([0,u],[0,v],O)]]}var fE0=0;function cE0(x){var r=u0(x);J(x,26);var e=Mx(r,u0(x));J(x,4);var t=d(X0[7],x);J(x,5);var u=r4(1,x),i=d(X0[2],u),c=1-x[5],v=c&&f4(i);return v&&Nv(x,i[1]),[40,[0,t,i,Z([0,e],0,O)]]}var sE0=0;function aE0(x){var r=u0(x),e=d(X0[7],x),t=q(x),u=e[2];if(u[0]===10&&typeof t==\"number\"&&t===87){var i=u[1],c=i[2][1],v=e[1];J(x,87),I1[3].call(null,c,x[3])&&q0(x,[0,v,[23,sv0,c]]);var a=x[31],l=x[30],m=x[29],h=x[28],T=x[27],b=x[26],N=x[25],j=x[24],I=x[23],F=x[22],M=x[21],z=x[20],B=x[19],K=x[18],n0=x[17],$=x[16],H=x[15],t0=x[14],c0=x[13],r0=x[12],v0=x[11],a0=x[10],g0=x[9],i0=x[8],s0=x[7],d0=x[6],w0=x[5],M0=x[4],C0=I1[4].call(null,c,x[3]),D0=[0,x[1],x[2],C0,M0,w0,d0,s0,i0,g0,a0,v0,r0,c0,t0,H,$,n0,K,B,z,M,F,I,j,N,b,T,h,m,l,a],I0=so(D0)?cY(D0):d(X0[2],D0);return[31,[0,i,I0,Z([0,r],0,O)]]}var j0=x1(av0,0,x);if(j0[0]===0)var y0=e,Y0=j0[1];else var y0=p(j0[1][2],e,function(L,N0){return p(Bx(L,jt,71),L,N0)}),Y0=0;return[23,[0,y0,0,Z(0,[0,Y0],O)]]}var oE0=0;function vE0(x,r){var e=x?x[1]:0;1-A2(r)&&Ux(r,sn);var t=xr(1,r);if(typeof t==\"number\")switch(t){case 25:return Rh(0,r);case 28:return Rh(2,r);case 29:return Rh(1,r);case 41:return x0(0,function(b){var N=u0(b);return J(b,61),[6,VC(N,b)]},r);case 47:if(q(r)===51)return jh(r);break;case 49:if(r[28][2])return x0(0,function(b){var N=u0(b);return J(b,61),[8,fY[1].call(null,[0,N],b)]},r);break;case 50:if(e)return bY(r);break;case 54:return x0(0,function(b){var N=u0(b);return J(b,61),[11,Dh(N,b)]},r);case 62:var u=q(r);return typeof u==\"number\"&&u===51&&e?jh(r):x0(0,function(b){var N=u0(b);return J(b,61),[15,Ch(N,b)]},r);case 63:return x0(0,function(b){var N=u0(b);return J(b,61),[16,Oh(qo0,N,b)]},r);case 15:case 65:return yY(r)}else if(t[0]===4){var i=t[3];if(P(i,$s)){if(P(i,Vo)){if(!P(i,aR)){var c=V0(r),v=u0(r);J(r,61);var a=Mx(v,u0(r));return ys(r,zo0),q(r)===10?x0([0,c],function(b){var N=u0(b);J(b,10);var j=u0(b);ys(b,Jo0);var I=O6([0,a,[0,N,[0,j,[0,u0(b),0]]]]),F=Dv(b),M=x1(0,0,b);if(M[0]===0)var z=M[1],B=F;else var z=0,B=p(M[1][2],F,function(K,n0){return p(Bx(K,kA,89),K,n0)});return[13,[0,B,Z([0,I],[0,z],O)]]},r):x0([0,c],d(aY[1],a),r)}if(!P(i,hT)){var l=V0(r),m=u0(r);J(r,61);var h=Mx(m,u0(r));return ys(r,Ko0),x0([0,l],d(oY[1],h),r)}}else if(r[28][1])return yY(r)}else if(r[28][1])return x0(0,function(b){var N=u0(b);return J(b,61),[7,$C(N,b)]},r)}if(!e)return d(X0[2],r);var T=q(r);return typeof T==\"number\"&&T===51?jh(r):Rh(0,r)}var lE0=0;function LY(x,r,e){var t=oB(1,x),u=zN(HC[2],t,r,e,Yl0),i=u[4],c=u[3],v=u[2],a=oB(0,u[1]),l=ix(v);return b1(d(HC[1],a),l),[0,a,c,i]}function MY(x){var r=qC(x),e=q(x);if(typeof e==\"number\"){var t=e-50|0;if(11>=t>>>0)switch(t){case 0:var u=vB(1,ha(1,x)),i=u0(u),c=V0(u);J(u,50);var v=q(u);if(typeof v==\"number\"){if(54<=v){if(64>v)switch(v-54|0){case 0:return x0([0,c],function(T){1-A2(T)&&Ux(T,Be);var b=0,N=x0(0,function(I){return Dh(b,I)},T),j=[0,N[1],[30,N[2]]];return[22,[0,[0,j],0,0,0,Z([0,i],0,O)]]},u);case 8:if(xr(1,u)!==0)return x0([0,c],function(T){1-A2(T)&&Ux(T,Be);var b=xr(1,T);if(typeof b==\"number\"){if(b===49)return Ux(T,17),J(T,62),[22,[0,0,0,0,0,Z([0,i],0,O)]];if(K2===b){J(T,62);var N=V0(T);J(T,K2);var j=w4(T),I=j[1];return[22,[0,0,[0,[1,[0,N,0]]],[0,I],0,Z([0,i],[0,j[2]],O)]]}}var F=0,M=x0(0,function(B){return Ch(F,B)},T),z=[0,M[1],[37,M[2]]];return[22,[0,[0,z],0,0,0,Z([0,i],0,O)]]},u);break;case 9:return x0([0,c],function(T){var b=x0(0,function(j){return Oh(0,0,j)},T),N=[0,b[1],[38,b[2]]];return[22,[0,[0,N],0,0,0,Z([0,i],0,O)]]},u)}}else if(v===37)return x0([0,c],function(T){var b=Mx(i,u0(T)),N=x0(0,function(n0){return J(n0,37)},T)[1],j=lB(1,T);x:{if(!so(j)&&!nh(j)){if(t4(j)){var B=0,K=[0,Ah(j,r)];break x}if(q(j)===49){var B=0,K=[0,_X(0)(j)];break x}if(uC(j)){var B=0,K=[0,SC(j)];break x}var I=d(X0[10],j),F=x1(0,0,j);if(F[0]===0)var M=F[1],z=I;else var M=0,z=p(F[1][2],I,function(H,t0){return p(Bx(H,jt,91),H,t0)});var B=M,K=[1,z];break x}var B=0,K=[0,p4(j)]}return[21,[0,N,K,Z([0,b],[0,B],O)]]},u)}if(t4(u))return x0([0,c],function(T){var b=Ah(T,r);return[22,[0,[0,b],0,0,1,Z([0,i],0,O)]]},u);if(!so(u)&&!nh(u)){if(typeof v==\"number\"){var a=v+E3|0;if(4>>0){if(a===24&&u[28][2])return x0([0,c],function(T){var b=p(X0[3],[0,r],T);return[22,[0,[0,b],0,0,1,Z([0,i],0,O)]]},u)}else if(1>>0)return x0([0,c],function(T){var b=p(X0[3],[0,r],T);return[22,[0,[0,b],0,0,1,Z([0,i],0,O)]]},u)}if(uC(u))return x0([0,c],function(T){var b=SC(T);return[22,[0,[0,b],0,0,1,Z([0,i],0,O)]]},u);if(typeof v==\"number\"&&K2===v)return x0([0,c],function(T){var b=V0(T);J(T,K2);var N=q(T);x:{if(typeof N!=\"number\"&&N[0]===4&&!P(N[3],Nt)){E0(T);var j=[0,a1(T)];break x}var j=0}var I=w4(T),F=I[1];return[22,[0,0,[0,[1,[0,b,j]]],[0,F],1,Z([0,i],[0,I[2]],O)]]},u);var l=u2(u,62)?0:1;return u2(u,0)?x0([0,c],function(T){var b=wY(0,T,0);J(T,1);var N=q(T);x:{if(typeof N!=\"number\"&&N[0]===4&&!P(N[3],o6)){var j=w4(T),M=j[2],z=[0,j[1]];break x}_Y(T,b);var I=x1(0,0,T),F=I[0]===0?I[1]:I[1][1],M=F,z=0}return[22,[0,0,[0,[0,b]],z,l,Z([0,i],[0,M],O)]]},u):(p2(Qo0,u),p(X0[3],[0,r],u))}return x0([0,c],function(T){uh(T)(r);var b=p4(T);return[22,[0,[0,b],0,0,1,Z([0,i],0,O)]]},u);case 1:uh(x)(r);var m=xr(1,x);x:{r:if(typeof m==\"number\"){if(m!==4&&m!==10)break r;var h=d4(x);break x}var h=jh(x)}return h;case 11:if(xr(1,x)===50)return uh(x)(r),bY(x);break}}return Bh([0,r],x)}function qY(x,r){return H0(DY[1],r,x,0)}function UY(x,r){var e=LY(r,x,function(i){return Bh(0,i)}),t=e[3],u=e[2];return[0,m1(function(i,c){return[0,c,i]},ZC(x,e[1]),u),t]}function ZC(x,r){return H0(FY[1],r,x,0)}function Bh(x,r){var e=x?x[1]:0;1-t4(r)&&uh(r)(e);var t=q(r);if(typeof t==\"number\"){if(t===28)return x0(uE0,nE0,r);if(t===29)return x0(fE0,iE0,r)}if(!so(r)&&!nh(r)){if(t4(r))return Ah(r,e);if(typeof t==\"number\"){var u=t-49|0;if(14>=u>>>0)switch(u){case 0:if(r[28][2])return _X(0)(r);break;case 5:if(!gB(1,r))return d4(r);var i=0,c=x0(0,function(T){return Dh(i,T)},r);return[0,c[1],[30,c[2]]];case 12:return vE0(0,r);case 13:if(ya(1,r)&&!yB(1,r)){var v=0,a=x0(0,function(T){return Ch(v,T)},r);return[0,a[1],[37,a[2]]]}return d(X0[2],r);case 14:var l=xr(1,r);if(typeof l==\"number\"&&l===62){var m=0,h=x0(0,function(T){return Oh(Uo0,m,T)},r);return[0,h[1],[38,h[2]]]}return d(X0[2],r)}}return uC(r)?SC(r):BY(r)}return p4(r)}function BY(x){for(;;){var r=q(x);if(typeof r==\"number\"&&tv>r)switch(r){case 0:var e=d(X0[15],x),t=e[1],u=e[2];return[0,t,[0,p(wa(x)[2],u,function(j0,y0){return H0(Bx(j0,zp,77),j0,t,y0)})]];case 8:var i=V0(x),c=u0(x);return J(x,8),[0,i,[19,[0,Z([0,c],[0,wa(x)[1]],O)]]];case 16:return pY(x);case 19:return x0(VT0,WT0,x);case 20:return x0(QT0,$T0,x);case 21:if(x[28][3]&&!Iv(1,x)&&xr(1,x)===4){var v=u0(x),a=V0(x),l=p(X0[13],0,x),m=Th(x),h=m[2],T=m[1];if(!N1(x)&&q(x)===0){var b=h[1];if(b){var N=b[1];if(N[0]===0&&!b[2])return dY(x,a,v,N[1])}return q0(x,[0,T,49]),dY(x,a,v,[0,T,Ro0])}var j=[0,l[1],[10,l]],I=Yr(a,T),F=o1(x,lo(Mo0,Lo0,x,a,[0,[0,I,[6,[0,j,0,[0,T,h],Z([0,v],0,O)]]]]));return x0([0,a],function(j0){var y0=x1(Fo0,0,j0);if(y0[0]===0)var Y0=F,L=y0[1];else var Y0=p(y0[1][2],F,function(N0,S0){return p(Bx(N0,jt,76),N0,S0)}),L=0;return[23,[0,Y0,0,Z(0,[0,L],O)]]},x)}break;case 23:return x0(ZT0,HT0,x);case 24:return x0(rE0,xE0,x);case 25:return x0(tE0,eE0,x);case 26:return x0(sE0,cE0,x);case 27:var M=x0(0,function(j0){var y0=u0(j0);J(j0,27);var Y0=Mx(y0,u0(j0));J(j0,4);var L=d(X0[7],j0);J(j0,5);var N0=d(X0[2],j0),S0=1-j0[5],K0=S0&&f4(N0);return K0&&Nv(j0,N0[1]),[41,[0,L,N0,Z([0,Y0],0,O)]]},x),z=M[1],B=M[2];return ht(x,[0,z,74]),[0,z,B];case 33:var K=u0(x),n0=x0(0,function(j0){J(j0,33);x:{if(q(j0)!==8&&!sl(j0)){var y0=p(X0[13],0,j0),Y0=y0[2][1],L=y0[1];1-I1[3].call(null,Y0,j0[3])&&q0(j0,[0,L,[29,Y0]]);var N0=[0,y0];break x}var N0=0}var S0=x1(0,0,j0);x:{if(S0[0]===0)var K0=S0[1];else{var A0=S0[1],$0=A0[1];if(N0){var ex=[0,p(A0[2],N0[1],function(sx,Q){return p(Bx(sx,C3,74),sx,Q)})],xx=0;break x}var K0=$0}var ex=N0,xx=K0}return[0,ex,xx]},x),$=n0[2],H=$[1],t0=n0[1],c0=H===0?1:0,r0=$[2];if(c0)var v0=x[8],a0=v0||x[9],g0=1-a0;else var g0=c0;return g0&&q0(x,[0,t0,25]),[0,t0,[1,[0,H,Z([0,K],[0,r0],O)]]];case 36:var i0=u0(x),s0=x0(0,function(j0){J(j0,36);x:{if(q(j0)!==8&&!sl(j0)){var y0=p(X0[13],0,j0),Y0=y0[2][1],L=y0[1];1-I1[3].call(null,Y0,j0[3])&&q0(j0,[0,L,[29,Y0]]);var N0=[0,y0];break x}var N0=0}var S0=x1(0,0,j0);x:{if(S0[0]===0)var K0=S0[1];else{var A0=S0[1],$0=A0[1];if(N0){var ex=[0,p(A0[2],N0[1],function(sx,Q){return p(Bx(sx,C3,75),sx,Q)})],xx=0;break x}var K0=$0}var ex=N0,xx=K0}return[0,ex,xx]},x),d0=s0[2],w0=s0[1],M0=d0[2],C0=d0[1];return 1-x[8]&&q0(x,[0,w0,26]),[0,w0,[4,[0,C0,Z([0,i0],[0,M0],O)]]];case 38:return x0(KT0,zT0,x);case 40:return x0(GT0,JT0,x);case 44:return pY(x);case 60:return x0(YT0,XT0,x);case 114:return p2(zl0,x),[0,V0(x),Kl0];case 1:case 5:case 7:case 9:case 10:case 11:case 12:case 17:case 18:case 34:case 35:case 37:case 39:case 42:case 43:case 50:case 84:case 87:p2(Jl0,x),E0(x);continue}if(!so(x)&&!nh(x)){if(typeof r==\"number\"&&r===29&&xr(1,x)===6){var D0=cl(1,x);return q0(x,[0,Yr(V0(x),D0),3]),d4(x)}return dn(x)?x0(oE0,aE0,x):(t4(x)&&(p2(0,x),E0(x)),d4(x))}var I0=p4(x);return Nv(x,I0[1]),I0}}Fr(HC,[0,function(x,r){if(typeof r!=\"number\"&&r[0]===2){var e=r[1],t=e[4],u=e[1];return t&&ht(x,[0,u,76])}return Tx(qx(Wl0,qx(IU(r),Gl0)))},function(x,r,e,t){for(var u=x,i=t;;){var c=i[3],v=i[2],a=i[1],l=q(u);if(typeof l==\"number\"&&mr===l)return[0,u,a,v,c];if(d(r,l))return[0,u,a,v,c];if(typeof l!=\"number\"&&l[0]===2){var m=d(e,u),h=[0,m,v],T=m[2];if(T[0]===23){var b=T[1][2];if(b){var N=br(b[1],\"use strict\"),j=m[1],I=N&&1-u[21];I&&q0(u,[0,j,79]);var F=N?ha(1,u):u,M=[0,l,a],z=c||N,u=F,i=[0,M,h,z];continue}}return[0,u,a,h,c]}return[0,u,a,v,c]}}]),Fr(DY,[0,function(x,r,e){for(var t=e;;){var u=q(x);if(typeof u==\"number\"&&mr===u||d(r,u))return ix(t);var t=[0,MY(x),t]}}]),Fr(FY,[0,function(x,r,e){for(var t=e;;){var u=q(x);if(typeof u==\"number\"&&mr===u||d(r,u))return ix(t);var t=[0,Bh(0,x),t]}}]),Fr(RY,[0,function(x,r,e){var t=1-x,u=OY([0,r],e),i=t&&(q(e)===86?1:0);return i&&(1-A2(e)&&Ux(e,g1),J(e,86)),[0,u,wC(e),i]}]),$q(Zl0[1],X0,[0,function(x){var r=q(x);x:{if(typeof r!=\"number\"&&r[0]===6){var e=r[2],t=r[1];E0(x);var u=[0,[0,t,e]];break x}var u=0}var i=u0(x);x:{r:{for(var c=ix(i),v=5;c;){var a=c[2],l=c[1],m=l[2],h=l[1],T=m[2];e:{t:{for(var b=0,N=Nx(T);;){if(N<(b+5|0))break t;var j=br(T1(T,b,v),\"@flow\");if(j)break;var b=b+1|0}var I=j;break e}var I=0}if(I)break r;var c=a}var F=0;break x}x[31][1]=h[3];var F=ix([0,[0,h,m],a])}x:if(F===0){if(i){var M=i[1],z=M[2];if(!z[1]){var B=z[2],K=M[1];if(1<=Nx(B)&&q2(B,0)===42){x[31][1]=K[3];var n0=[0,M,0];break x}}}var n0=0}else var n0=F;function $(i0){return 0}var H=LY(x,$,MY),t0=H[2],c0=m1(function(i0,s0){return[0,s0,i0]},qY($,H[1]),t0),r0=V0(x);if(J(x,mr),m1(function(i0,s0){var d0=s0[2];switch(d0[0]){case 21:return c4(x,i0,mn(0,[0,d0[1][1],Vl0]));case 22:var w0=d0[1],M0=w0[1];if(M0){if(!w0[2]){var C0=M0[1],D0=C0[2],I0=C0[1];x:{switch(D0[0]){case 39:return m1(function(N0,S0){return c4(x,N0,S0)},i0,m1(function(N0,S0){return m1(vC,N0,[0,S0[2][1],0])},0,D0[1][1]));case 2:case 27:var j0=D0[1][1];if(j0){var y0=j0[1];break x}break;case 3:case 20:case 30:case 37:case 38:var y0=D0[1][1];break x}return i0}return c4(x,i0,mn(0,[0,I0,y0[2][1]]))}}else{var Y0=w0[2];if(Y0){var L=Y0[1];return L[0]===0?m1(function(N0,S0){var K0=S0[2],A0=K0[2],$0=K0[1];return A0?c4(x,N0,A0[1]):c4(x,N0,$0)},i0,L[1]):i0}}return i0;default:return i0}},I1[1],c0),c0)var v0=C6(ix(c0))[1],a0=Yr(C6(c0)[1],v0);else var a0=r0;var g0=ix(x[2][1]);return[0,a0,[0,c0,u,Z([0,n0],0,O),g0]]},BY,Bh,ZC,UY,qY,function(x){var r=V0(x),e=zt(x),t=q(x);return typeof t==\"number\"&&t===9?DC(x,r,[0,e,0]):e},function(x){var r=V0(x),e=h4(x),t=q(x);return typeof t==\"number\"&&t===9?[0,DC(x,r,[0,o1(x,e),0])]:e},function(x){return o1(x,FX(x))},zt,NC,function(x){var r=x0(0,function(t){var u=u0(t);J(t,0);x:for(var i=0,c=[0,0,ln];;){var v=c[2],a=c[1],l=q(t);if(typeof l==\"number\"){if(l===1)break x;if(mr===l)break}var m=ST0(t),h=m[1],T=m[2];r:{if(h[0]===1&&q(t)===9){var b=[0,V0(t)];break r}var b=0}var N=PC(T,v),j=q(t);r:{e:if(typeof j==\"number\"){var I=j-2|0;if(ce>>0){if(Te>>0)break e}else{if(I!==7)break e;E0(t)}var B=N;break r}var F=zj(Kc0,9),M=wB([0,F],q(t)),z=[0,V0(t),M];u2(t,8);var B=[0,[0,z,N[1]],[0,z,N[2]]]}var i=b,c=[0,[0,h,a],B]}var K=i?[0,v[1],[0,[0,i[1],90],v[2]]]:v,n0=bX(K),$=ix(a),H=u0(t);return J(t,1),[0,[0,$,O2([0,u],[0,L0(t)],H,O)],n0]},x),e=r[2];return[0,r[1],e[1],e[2]]},OY,function(x,r,e){var t=r?r[1]:0;return x0(0,p(RY[1],t,e),x)},function(x){var r=V0(x),e=u0(x);J(x,0);var t=ZC(function(v){return v===1?1:0},x),u=V0(x),i=t===0?u0(x):0;J(x,1);var c=[0,t,O2([0,e],[0,L0(x)],i,O)];return[0,Yr(r,u),c]},function(x){function r(t){var u=u0(t);J(t,0);var i=UY(function(h){return h===1?1:0},t),c=i[1],v=i[2],a=c===0?u0(t):0;J(t,1);var l=q(t);x:{r:if(!x){if(typeof l==\"number\"&&(l===1||mr===l))break r;if(N1(t)){var m=ao(t);break x}var m=0;break x}var m=L0(t)}return[0,[0,c,O2([0,u],[0,m],a,O)],v]}var e=0;return function(t){return sC(e,r,t)}},function(x){return jY(lE0,x)},_4,Lh,po,Ah,function(x){return x0(CT0,jT0,x)},function(x){var r=x[2];switch(r[0]){case 24:var e=r[1],t=e[1][2][1];if(P(t,X1)){if(!P(t,rv)&&!P(e[2][2][1],Um))return 0}else if(!P(e[2][2][1],Xl))return 0;break;case 0:case 10:case 23:case 26:break;default:return 0}return 1},CC,Dv,OC,wh]);var xO=[n2,kb0,as(0)],rO=[0,xO,[0]],pE0=d5(lb0,function(x){var r=Pj(x,vb0)[41],e=Cj(x,0,0,pb0,Mj,1)[1];return Wq(x,r,function(t,u){return 0}),function(t,u){var i=y5(u,x);return d(e,i),Oj(u,i,x)}}),kE0=[n2,C00,as(0)];function mE0(x){if(typeof x==\"number\"){var r=x;if(57<=r)switch(r){case 57:return IH;case 58:return NH;case 59:return jH;case 60:return CH;case 61:return OH;case 62:return DH;case 63:return FH;case 64:return RH;case 65:return LH;case 66:return MH;case 67:return qH;case 68:return UH;case 69:return BH;case 70:return XH;case 71:return YH;case 72:return zH;case 73:return KH;case 74:return JH;case 75:return GH;case 76:return WH;case 77:return VH;case 78:return $H;case 79:return QH;case 80:return HH;case 81:return ZH;case 82:return xZ;case 83:return rZ;case 84:return eZ;case 85:return tZ;case 86:return nZ;case 87:return uZ;case 88:return iZ;case 89:return fZ;case 90:return cZ;case 91:return sZ;case 92:return aZ;case 93:return oZ;case 94:return vZ;case 95:return lZ;case 96:return pZ;case 97:return kZ;case 98:return mZ;case 99:return hZ;case 100:return dZ;case 101:return yZ;case 102:return gZ;case 103:return wZ;case 104:return _Z;case 105:return bZ;case 106:return TZ;case 107:return EZ;case 108:return SZ;case 109:return AZ;case 110:return PZ;case 111:return IZ;default:return NZ}switch(r){case 0:return TQ;case 1:return EQ;case 2:return SQ;case 3:return AQ;case 4:return PQ;case 5:return IQ;case 6:return NQ;case 7:return jQ;case 8:return CQ;case 9:return OQ;case 10:return DQ;case 11:return qx(RQ,FQ);case 12:return LQ;case 13:return MQ;case 14:return qQ;case 15:return UQ;case 16:return BQ;case 17:return XQ;case 18:return YQ;case 19:return zQ;case 20:return KQ;case 21:return JQ;case 22:return GQ;case 23:return WQ;case 24:return VQ;case 25:return $Q;case 26:return QQ;case 27:return HQ;case 28:return ZQ;case 29:return xH;case 30:return qx(eH,rH);case 31:return tH;case 32:return nH;case 33:return uH;case 34:return iH;case 35:return fH;case 36:return cH;case 37:return sH;case 38:return aH;case 39:return oH;case 40:return vH;case 41:return lH;case 42:return pH;case 43:return kH;case 44:return mH;case 45:return hH;case 46:return dH;case 47:return yH;case 48:return gH;case 49:return wH;case 50:return _H;case 51:return bH;case 52:return TH;case 53:return EH;case 54:return SH;case 55:return AH;default:return PH}}switch(x[0]){case 0:var e=x[1];return d(ar(jZ),e);case 1:var t=x[1];return d(ar(CZ),t);case 2:var u=x[2],i=x[1];return p(ar(OZ),u,i);case 3:var c=x[2],v=x[1];return H0(ar(DZ),c,c,v);case 4:var a=x[2],l=x[1];return p(ar(FZ),a,l);case 5:var m=x[1];return d(ar(RZ),m);case 6:return x[1]?LZ:MZ;case 7:var h=x[2],T=x[1],b=d(ar(qZ),T);if(!h)return d(ar(BZ),b);var N=h[1];return p(ar(UZ),N,b);case 8:var j=x[1];return p(ar(XZ),j,j);case 9:var I=x[3],F=x[2],M=x[1];if(!F)return p(ar(KZ),I,M);var z=F[1];if(z===3)return p(ar(zZ),I,M);switch(z){case 0:var B=VV;break;case 1:var B=$V;break;case 2:var B=QV;break;case 3:var B=HV;break;default:var B=ZV}return zN(ar(YZ),M,B,I,B);case 10:var K=x[2],n0=x[1],$=$M(K);return H0(ar(JZ),K,$,n0);case 11:var H=x[2],t0=x[1];return p(ar(GZ),H,t0);case 12:var c0=x[1];return d(ar(WZ),c0);case 13:var r0=x[1];return d(ar(VZ),r0);case 14:return x[1]?qx(QZ,$Z):qx(ZZ,HZ);case 15:var v0=x[1],a0=x[4],g0=x[3],i0=x[2]?x00:r00,s0=g0?e00:t00,d0=a0?qx(n00,v0):v0;return H0(ar(u00),i0,s0,d0);case 16:return i00;case 17:var w0=x[2],M0=x[1],C0=HM(45,w0);if(C0)var D0=C0[1],I0=C0[2]?VM(bQ,[0,D0,vs($M,C0[2])]):D0;else var I0=w0;var j0=M0?f00:c00;return H0(ar(s00),w0,I0,j0);case 18:var y0=x[1]?a00:o00;return d(ar(v00),y0);case 19:var Y0=x[1];return d(ar(l00),Y0);case 20:var L=Zl<=x[1]?p00:k00;return d(ar(m00),L);case 21:var N0=x[1];return d(ar(h00),N0);case 22:var S0=x[1];return d(ar(d00),S0);case 23:var K0=x[2],A0=x[1];return p(ar(y00),A0,K0);case 24:var $0=x[1];if(Bl===$0)var ex=T00,xx=E00;else if(s6<=$0)var ex=g00,xx=w00;else var ex=_00,xx=b00;return p(ar(S00),xx,ex);case 25:var tx=x[1];return d(ar(A00),tx);case 26:var z0=x[1];return d(ar(P00),z0);case 27:var px=x[2],sx=x[1];return p(ar(I00),sx,px);case 28:var Q=x[2],b0=x[1];return p(ar(N00),b0,Q);default:var U=x[1];return d(ar(j00),U)}}function hE0(x,r){var e=x[2];function t(_){return S1(_,r)}var u=x[1];switch(e[0]){case 0:var i=e[1],c=S5(i[2],r),jx=[0,[0,i[1],c]];break;case 1:var v=e[1],a=t(v[2]),jx=[1,[0,v[1],a]];break;case 2:var l=e[1],m=t(l[7]),jx=[2,[0,l[1],l[2],l[3],l[4],l[5],l[6],m]];break;case 3:var h=e[1],T=h[7],b=t(h[6]),jx=[3,[0,h[1],h[2],h[3],h[4],h[5],b,T]];break;case 4:var N=e[1],j=t(N[2]),jx=[4,[0,N[1],j]];break;case 5:var jx=[5,[0,t(e[1][1])]];break;case 6:var I=e[1],F=t(I[7]),jx=[6,[0,I[1],I[2],I[3],I[4],I[5],I[6],F]];break;case 7:var M=e[1],z=t(M[5]),jx=[7,[0,M[1],M[2],M[3],M[4],z]];break;case 8:var B=e[1],K=t(B[3]),jx=[8,[0,B[1],B[2],K]];break;case 9:var n0=e[1],$=t(n0[5]),jx=[9,[0,n0[1],n0[2],n0[3],n0[4],$]];break;case 10:var H=e[1],t0=t(H[4]),jx=[10,[0,H[1],H[2],H[3],t0]];break;case 11:var c0=e[1],r0=t(c0[5]),jx=[11,[0,c0[1],c0[2],c0[3],c0[4],r0]];break;case 12:var v0=e[1],a0=t(v0[3]),jx=[12,[0,v0[1],v0[2],a0]];break;case 13:var g0=e[1],i0=t(g0[2]),jx=[13,[0,g0[1],i0]];break;case 14:var s0=e[1],d0=t(s0[3]),jx=[14,[0,s0[1],s0[2],d0]];break;case 15:var w0=e[1],M0=t(w0[4]),jx=[15,[0,w0[1],w0[2],w0[3],M0]];break;case 16:var C0=e[1],D0=t(C0[5]),jx=[16,[0,C0[1],C0[2],C0[3],C0[4],D0]];break;case 17:var I0=e[1],j0=t(I0[4]),jx=[17,[0,I0[1],I0[2],I0[3],j0]];break;case 18:var y0=e[1],Y0=t(y0[3]),jx=[18,[0,y0[1],y0[2],Y0]];break;case 19:var jx=[19,[0,t(e[1][1])]];break;case 20:var L=e[1],N0=t(L[3]),jx=[20,[0,L[1],L[2],N0]];break;case 21:var S0=e[1],K0=t(S0[3]),jx=[21,[0,S0[1],S0[2],K0]];break;case 22:var A0=e[1],$0=t(A0[5]),jx=[22,[0,A0[1],A0[2],A0[3],A0[4],$0]];break;case 23:var ex=e[1],xx=t(ex[3]),jx=[23,[0,ex[1],ex[2],xx]];break;case 24:var tx=e[1],z0=t(tx[5]),jx=[24,[0,tx[1],tx[2],tx[3],tx[4],z0]];break;case 25:var px=e[1],sx=t(px[5]),jx=[25,[0,px[1],px[2],px[3],px[4],sx]];break;case 26:var Q=e[1],b0=t(Q[5]),jx=[26,[0,Q[1],Q[2],Q[3],Q[4],b0]];break;case 27:var U=e[1],h0=U[11],_0=t(U[10]),jx=[27,[0,U[1],U[2],U[3],U[4],U[5],U[6],U[7],U[8],U[9],_0,h0]];break;case 28:var m0=e[1],T0=t(m0[4]),jx=[28,[0,m0[1],m0[2],m0[3],T0]];break;case 29:var X=e[1],Gx=t(X[5]),jx=[29,[0,X[1],X[2],X[3],X[4],Gx]];break;case 30:var Px=e[1],G0=t(Px[5]),jx=[30,[0,Px[1],Px[2],Px[3],Px[4],G0]];break;case 31:var Kr=e[1],S=t(Kr[3]),jx=[31,[0,Kr[1],Kr[2],S]];break;case 32:var G=e[1],rx=t(G[3]),jx=[32,[0,G[1],G[2],rx]];break;case 33:var yx=e[1],Ex=yx[3],nx=t(yx[2]),jx=[33,[0,yx[1],nx,Ex]];break;case 34:var p0=e[1],Fx=p0[4],Sx=t(p0[3]),jx=[34,[0,p0[1],p0[2],Sx,Fx]];break;case 35:var bx=e[1],B0=t(bx[2]),jx=[35,[0,bx[1],B0]];break;case 36:var Wx=e[1],Yx=t(Wx[4]),jx=[36,[0,Wx[1],Wx[2],Wx[3],Yx]];break;case 37:var ax=e[1],Qx=t(ax[4]),jx=[37,[0,ax[1],ax[2],ax[3],Qx]];break;case 38:var kx=e[1],tr=t(kx[5]),jx=[38,[0,kx[1],kx[2],kx[3],kx[4],tr]];break;case 39:var sr=e[1],Mr=t(sr[3]),jx=[39,[0,sr[1],sr[2],Mr]];break;case 40:var a2=e[1],_2=t(a2[3]),jx=[40,[0,a2[1],a2[2],_2]];break;default:var i2=e[1],Q2=t(i2[3]),jx=[41,[0,i2[1],i2[2],Q2]]}return[0,u,jx]}var dE0=pv(rO)===n2?rO:rO[1];YN(OS,dE0);var ba=o0,j1=null,XY=void 0;function Xh(x){return 1-(x===XY?1:0)}ba.String,ba.RegExp,ba.Object,ba.Date,ba.Math;function yE0(x){throw x}function YY(x){return d(yE0,x)}ba.JSON;var gE0=ba.Array,wE0=ba.Error;kj(function(x){return x[1]===xO?[0,Dt(x[2].toString())]:0}),kj(function(x){return x instanceof gE0?0:[0,Dt(x.toString())]});var zY=[0,0];function _s(x){return $z(F6(x))}function $2(x){return tM(F6(x))}function pr(x,r){return $2(ix(c5(x,r)))}function gx(x,r){return r?d(x,r[1]):j1}function ml(x,r){return r[0]===0?j1:x(r[1])}function KY(x){return _s([0,[0,ob0,x[1]],[0,[0,ab0,x[2]],0]])}function JY(x){var r=x[1],e=r?Jx(r[1][1]):j1,t=[0,[0,fb0,KY(x[3])],0];return _s([0,[0,sb0,e],[0,[0,cb0,KY(x[2])],t]])}function w2(x){if(!x)return 0;var r=x[1],e=r[1];return Z([0,e],[0,Mx(r[3],r[2])],O)}var _E0=Jx;function hl(x,r,e){var t=r[e];return Xh(t)?t|0:x}function bE0(x,r){var e=B3(r,XY)?{}:r,t=Dt(x),u=hl(z3[6],e,hb0),i=hl(z3[5],e,db0),c=hl(z3[4],e,yb0),v=hl(z3[3],e,gb0),a=hl(z3[2],e,wb0),l=[0,hl(z3[1],e,_b0),a,v,c,i,u,0,0],m=e[GO],h=Xh(m),T=h&&m|0,b=e[wO],N=Xh(b)?b|0:1,j=e.all_comments,I=Xh(j)?j|0:1,F=[0,0],M=T?[0,function(Y){return F[1]=[0,Y,F[1]],0}]:0,z=0,B=mb0[1];try{var K=0,n0=oU(t),$=K,H=n0}catch(Y){var t0=U2(Y);if(t0!==Za)throw W0(t0,0);var c0=[0,[0,[0,z,Y3[2],Y3[3]],48],0],$=c0,H=oU(xs0)}var r0=[0,z,H,D00,0,l[5],bU,F00],v0=[0,Z6(r0,0)],a0=[0,[0,$],[0,0],I1[1],[0,0],l[6],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,[0,es0],[0,r0],v0,[0,M],l,z,[0,0],[0,rs0]],g0=d(X0[1],a0),i0=ix(a0[1][1]),s0=ix(m1(function(Y,A){var D=Y[2],f0=Y[1];return oC[3].call(null,A,f0)?[0,f0,D]:[0,oC[4].call(null,A,f0),[0,A,D]]},[0,oC[1],0],i0)[2]);if(s0){var d0=s0[2],w0=s0[1];if(B)throw W0([0,kE0,w0,d0],1)}zY[1]=0;var M0=Nx(t)-0|0,C0=Ot(t);x:{r:{for(var D0=0,I0=0;;){if(I0===M0)break r;var j0=se(C0,I0);e:{if(0<=j0&&Br>=j0){var y0=1;break e}if(PI<=j0&&kk>=j0){var y0=2;break e}if(s3<=j0&&Fy>=j0){var y0=3;break e}if(w3<=j0&&zo>=j0){var y0=4;break e}var y0=0}if(y0===0)var D0=aC(D0,I0,0),I0=I0+1|0;else{if((M0-I0|0)>>0)throw W0([0,Nr,JV],1);switch(Y0){case 0:var N0=se(C0,I0);break;case 1:var N0=(se(C0,I0)&31)<<6|se(C0,I0+1|0)&63;break;case 2:var N0=(se(C0,I0)&15)<<12|(se(C0,I0+1|0)&63)<<6|se(C0,I0+2|0)&63;break;default:var N0=(se(C0,I0)&7)<<18|(se(C0,I0+1|0)&63)<<12|(se(C0,I0+2|0)&63)<<6|se(C0,I0+3|0)&63}var D0=aC(D0,I0,[0,N0]),I0=L}}var S0=aC(D0,I0,0);break x}var S0=D0}for(var K0=fo0,A0=ix([0,6,S0]);;){var $0=K0[3],ex=K0[2],xx=K0[1];if(!A0)break;var tx=A0[1];if(tx===5){var z0=A0[2];if(z0&&z0[1]===6){var px=z0[2],K0=[0,xx+2|0,0,[0,F6(ix([0,xx,ex])),$0]],A0=px;continue}}else if(6>tx){var sx=A0[2],K0=[0,xx+jB(tx)|0,[0,xx,ex],$0],A0=sx;continue}var Q=A0[2],b0=[0,F6(ix([0,xx,ex])),$0],K0=[0,xx+jB(tx)|0,0,b0],A0=Q}var U=F6(ix($0));if(N)var _0=g0;else var h0=d(pE0[1],0),_0=p(Bx(h0,-201766268,Be),h0,g0);if(I)var T0=_0;else var m0=_0[2],T0=[0,_0[1],[0,m0[1],m0[2],m0[3],0]];function X(Y,A,D,f0){var k0=[0,oh(U,A[3]),0],R0=[0,[0,x60,$2([0,oh(U,A[2]),k0])],0],Q0=Mx(R0,[0,[0,r60,JY(A)],0]);if(D){var mx=D[1],Ix=mx[1];if(Ix){var Rx=mx[2];if(Rx)var nr=[0,[0,e60,wo(Rx)],0],zx=[0,[0,t60,wo(Ix)],nr];else var zx=[0,[0,n60,wo(Ix)],0];var rr=zx}else var ur=mx[2],kr=ur?[0,[0,u60,wo(ur)],0]:0,rr=kr;var Cx=rr}else var Cx=0;return _s(K3(Mx(Q0,Mx(Cx,[0,[0,i60,Jx(Y)],0])),f0))}function Gx(Y){return pr(Px,Y)}function Px(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:return Yx([0,D,A[1]]);case 1:var f0=A[1],k0=f0[2];return X(p60,D,k0,[0,[0,l60,gx(p0,f0[1])],0]);case 2:return V(f50,[0,D,A[1]]);case 3:var R0=A[1],Q0=R0[3],mx=R0[6],Ix=R0[5],Rx=R0[4],nr=R0[2],zx=R0[1],ur=S1(w2(Q0[2][3]),mx),kr=[0,[0,Z50,gx(d1,nr)],0],rr=[0,[0,xh0,Pa(Rx)],kr],Cx=Q0[2],gr=Cx[2],Er=Cx[1];if(gr)var Jr=gr[1],Sr=Jr[2],Gr=Sr[2],k2=Jr[1],P2=X(ih0,k2,Gr,[0,[0,uh0,dr(Sr[1])],0]),Dr=$2(ix([0,P2,c5(wx,Er)]));else var Dr=$2(vs(wx,Er));var m2=[0,[0,eh0,p0(zx)],[0,[0,rh0,Dr],rr]];return X(nh0,D,ur,[0,[0,th0,Yx(Ix)],m2]);case 4:var r2=A[1],Ar=r2[2];return X(m60,D,Ar,[0,[0,k60,gx(p0,r2[1])],0]);case 5:return X(h60,D,A[1][1],0);case 6:return kx([0,D,A[1]]);case 7:return tr([0,D,A[1]]);case 8:return _2([0,D,A[1]]);case 9:var wr=A[1],f2=wr[5],Ur=wr[4],Qr=wr[3],T2=wr[2],Rr=wr[1];if(Qr){var d2=Qr[1];if(d2[0]!==0&&!d2[1][2])return X(y60,D,f2,[0,[0,d60,gx(b2,Ur)],0])}if(T2){var o2=T2[1];switch(o2[0]){case 0:var c2=ax(o2[1]);break;case 1:var c2=Qx(o2[1]);break;case 2:var c2=kx(o2[1]);break;case 3:var c2=tr(o2[1]);break;case 4:var c2=yr(o2[1]);break;case 5:var c2=jx(o2[1]);break;case 6:var c2=_(1,o2[1]);break;case 7:var c2=Hx(o2[1]);break;default:var c2=_2(o2[1])}var E2=c2}else var E2=j1;var pe=[0,[0,g60,gx(b2,Ur)],0],je=[0,[0,_60,E2],[0,[0,w60,Q2(Qr)],pe]],xt=Rr?1:0;return X(T60,D,f2,[0,[0,b60,!!xt],je]);case 10:return Qx([0,D,A[1]]);case 11:var U1=A[1],e2=U1[5],Z1=U1[4],R2=U1[2],wt=U1[1],O1=[0,[0,Mm0,pr(Zr,U1[3])],0],_t=[0,[0,qm0,bn(0,Z1)],O1],Wt=[0,[0,Um0,gx(d1,R2)],_t];return X(Xm0,D,e2,[0,[0,Bm0,p0(wt)],Wt]);case 12:var rt=A[1],et=rt[1],Ox=rt[3],tt=rt[2],xe=et[0]===0?p0(et[1]):b2(et[1]);return X(A60,D,Ox,[0,[0,S60,xe],[0,[0,E60,Yx(tt)],0]]);case 13:var v1=A[1],Ce=v1[2];return X(I60,D,Ce,[0,[0,P60,H1(v1[1])],0]);case 14:var Oe=A[1],nt=Oe[3],ut=Oe[2],it=p0(Oe[1]);return X(C60,D,nt,[0,[0,j60,it],[0,[0,N60,Yx(ut)],0]]);case 15:var r1=A[1],bt=r1[4],Tt=r1[2],Is=r1[1],ft=[0,[0,Gm0,yr(r1[3])],0],Vt=[0,[0,Wm0,gx(d1,Tt)],ft];return X($m0,D,bt,[0,[0,Vm0,p0(Is)],Vt]);case 16:return _(1,[0,D,A[1]]);case 17:return ax([0,D,A[1]]);case 18:var D1=A[1],Tn=D1[3],ke=D1[1],De=[0,[0,O60,G0(D1[2])],0];return X(F60,D,Tn,[0,[0,D60,Px(ke)],De]);case 19:return X(R60,D,A[1][1],0);case 20:var $t=A[1],Ns=$t[3],En=$t[1],js=[0,[0,Vh0,Cr($t[2])],0];return X(Qh0,D,Ns,[0,[0,$h0,p0(En)],js]);case 21:var re=A[1],Et=re[2],Cs=re[3],Sn=Et[0]===0?Px(Et[1]):G0(Et[1]);return X(q60,D,Cs,[0,[0,M60,Sn],[0,[0,L60,Jx(i2(1))],0]]);case 22:var Fe=A[1],Os=Fe[5],Ds=Fe[4],To=Fe[3],Eo=Fe[2],Yv=Fe[1];if(Eo){var zv=Eo[1];if(zv[0]!==0){var So=zv[1][2],Ao=[0,[0,U60,Jx(i2(Ds))],0],_l=[0,[0,B60,gx(p0,So)],Ao];return X(Y60,D,Os,[0,[0,X60,gx(b2,To)],_l])}}var Kv=[0,[0,z60,Jx(i2(Ds))],0],bl=[0,[0,K60,gx(b2,To)],Kv],Tl=[0,[0,J60,Q2(Eo)],bl];return X(W60,D,Os,[0,[0,G60,gx(Px,Yv)],Tl]);case 23:var Fs=A[1],Po=Fs[3],Jv=Fs[1],El=[0,[0,V60,gx(_E0,Fs[2])],0];return X(Q60,D,Po,[0,[0,$60,G0(Jv)],El]);case 24:var Rs=A[1],Gv=Rs[5],Oa=Rs[3],Sl=Rs[2],Wv=Rs[1],Io=[0,[0,H60,Px(Rs[4])],0],Al=[0,[0,Z60,gx(G0,Oa)],Io],Da=[0,[0,x40,gx(G0,Sl)],Al];return X(e40,D,Gv,[0,[0,r40,gx(function(nO){return nO[0]===0?Ts(nO[1]):G0(nO[1])},Wv)],Da]);case 25:var Ls=A[1],No=Ls[1],jo=Ls[5],Fa=Ls[4],Pl=Ls[3],Il=Ls[2],Nl=No[0]===0?Ts(No[1]):dr(No[1]),Co=[0,[0,n40,Px(Pl)],[0,[0,t40,!!Fa],0]];return X(f40,D,jo,[0,[0,i40,Nl],[0,[0,u40,G0(Il)],Co]]);case 26:var An=A[1],Ra=An[1],jl=An[5],Oo=An[4],Vv=An[3],Ms=An[2],$v=Ra[0]===0?Ts(Ra[1]):dr(Ra[1]),St=[0,[0,s40,Px(Vv)],[0,[0,c40,!!Oo],0]];return X(v40,D,jl,[0,[0,o40,$v],[0,[0,a40,G0(Ms)],St]]);case 27:var F1=A[1],Qv=F1[3],Hv=F1[2],Cl=F1[10],Do=F1[9],Fo=F1[8],Zv=F1[7],Ol=F1[6],x3=F1[5],Wh=F1[4],Qt=Hv[2][4],Pn=F1[1],r3=Qv[0]===0?Qv[1]:Tx(m80),Vh=S1(w2(Qt),Cl);if(Ol===0)var qs=0,e3=h80;else var qs=[0,[0,w80,!!Wh],[0,[0,g80,!!x3],[0,[0,y80,gx(_o,Zv)],[0,[0,d80,!1],0]]]],e3=_80;var $h=[0,[0,b80,gx(d1,Do)],0],Qh=[0,[0,T80,qr(Fo)],$h],Hh=[0,[0,E80,Yx(r3)],Qh],Zh=[0,[0,S80,ux(Hv)],Hh];return X(e3,D,Vh,Mx([0,[0,A80,gx(p0,Pn)],Zh],qs));case 28:var t3=A[1],N4=t3[3],xd=t3[4],j4=t3[2],n=t3[1];if(N4)var s=N4[1][2],f=Px(hE0(s[1],s[2]));else var f=j1;var o=[0,[0,p40,Px(j4)],[0,[0,l40,f],0]];return X(m40,D,xd,[0,[0,k40,G0(n)],o]);case 29:var k=A[1],g=k[4],E=k[3],C=k[5],R=k[2],e0=k[1];if(g){var l0=g[1];if(l0[0]===0)var Xx=vs(function(uO){var rd=uO[3],ed=uO[2],VY=uO[1],AE0=ed?Yr(rd[1],ed[1][1]):rd[1],PE0=ed?ed[1]:rd;x:{r:{var IE0=0;if(VY){switch(VY[1]){case 0:var $Y=qf;break;case 1:var $Y=Zs;break;default:break r}var QY=$Y;break x}}var QY=j1}var NE0=[0,[0,z_0,p0(PE0)],[0,[0,Y_0,QY],IE0]];return X(J_0,AE0,0,[0,[0,K_0,p0(rd)],NE0])},l0[1]);else var F0=l0[1],dx=F0[1],Xx=[0,X(X_0,dx,0,[0,[0,B_0,p0(F0[2])],0]),0];var Kx=Xx}else var Kx=0;if(E)var _r=E[1][1],t2=[0,[0,q_0,p0(_r)],0],Wr=[0,X(U_0,_r[1],0,t2),Kx];else var Wr=Kx;switch(e0){case 0:var Vx=h40;break;case 1:var Vx=d40;break;default:var Vx=y40}var C2=[0,[0,w40,b2(R)],[0,[0,g40,Jx(Vx)],0]];return X(b40,D,C,[0,[0,_40,$2(Wr)],C2]);case 30:return Hx([0,D,A[1]]);case 31:var z2=A[1],ee=z2[3],me=z2[1],he=[0,[0,T40,Px(z2[2])],0];return X(S40,D,ee,[0,[0,E40,p0(me)],he]);case 32:var te=A[1],de=te[3],ye=te[1],ge=[0,[0,A40,pr(S,te[2])],0];return X(I40,D,de,[0,[0,P40,G0(ye)],ge]);case 33:var At=A[1],we=At[2];return X(j40,D,we,[0,[0,N40,gx(G0,At[1])],0]);case 34:var ct=A[1],Us=ct[3],Bs=ct[1],Xs=[0,[0,C40,pr(B0,ct[2])],0];return X(D40,D,Us,[0,[0,O40,G0(Bs)],Xs]);case 35:var In=A[1],Ys=In[2];return X(R40,D,Ys,[0,[0,F40,G0(In[1])],0]);case 36:var zs=A[1],n3=zs[4],u3=zs[2],i3=zs[1],f3=[0,[0,L40,gx(Yx,zs[3])],0],_x=[0,[0,M40,gx(Wx,u3)],f3];return X(U40,D,n3,[0,[0,q40,Yx(i3)],_x]);case 37:return jx([0,D,A[1]]);case 38:return _(0,[0,D,A[1]]);case 39:return Ts([0,D,A[1]]);case 40:var c3=A[1],hx=c3[3],eO=c3[1],tO=[0,[0,B40,Px(c3[2])],0];return X(Y40,D,hx,[0,[0,X40,G0(eO)],tO]);default:var cx=A[1],TE0=cx[3],EE0=cx[1],SE0=[0,[0,z40,Px(cx[2])],0];return X(J40,D,TE0,[0,[0,K40,G0(EE0)],SE0])}}function G0(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:var f0=A[1],k0=f0[2],R0=[0,[0,G40,pr(Jt,f0[1])],0];return X(W40,D,w2(k0),R0);case 1:var Q0=A[1],mx=Q0[3],Ix=Q0[2],Rx=Q0[10],nr=Q0[9],zx=Q0[8],ur=Q0[7],kr=Q0[4],rr=Ix[2][4];if(mx[0]===0)var Cx=0,gr=Yx(mx[1]);else var Cx=1,gr=G0(mx[1]);var Er=S1(w2(rr),Rx),Jr=[0,[0,V40,gx(d1,nr)],0],Sr=[0,[0,Q40,!!Cx],[0,[0,$40,qr(zx)],Jr]],Gr=[0,[0,rp0,gr],[0,[0,xp0,!!kr],[0,[0,Z40,!1],[0,[0,H40,gx(_o,ur)],Sr]]]];return X(np0,D,Er,[0,[0,tp0,j1],[0,[0,ep0,ux(Ix)],Gr]]);case 2:var k2=A[1],P2=k2[2];return X(ip0,D,P2,[0,[0,up0,G0(k2[1])],0]);case 3:var Dr=A[1],m2=Dr[3],r2=Dr[1],Ar=[0,[0,fp0,yr(Dr[2][2])],0];return X(sp0,D,m2,[0,[0,cp0,G0(r2)],Ar]);case 4:var wr=A[1],f2=wr[1],Ur=wr[4],Qr=wr[3],T2=wr[2];if(f2){switch(f2[1]){case 0:var Rr=Q$;break;case 1:var Rr=H$;break;case 2:var Rr=Z$;break;case 3:var Rr=xQ;break;case 4:var Rr=rQ;break;case 5:var Rr=eQ;break;case 6:var Rr=tQ;break;case 7:var Rr=nQ;break;case 8:var Rr=uQ;break;case 9:var Rr=iQ;break;case 10:var Rr=fQ;break;case 11:var Rr=cQ;break;case 12:var Rr=sQ;break;case 13:var Rr=aQ;break;default:var Rr=oQ}var d2=Rr}else var d2=ap0;var o2=[0,[0,op0,G0(Qr)],0];return X(pp0,D,Ur,[0,[0,lp0,Jx(d2)],[0,[0,vp0,dr(T2)],o2]]);case 5:var c2=A[1],E2=c2[4],pe=c2[2],je=c2[1],xt=[0,[0,kp0,G0(c2[3])],0],U1=[0,[0,mp0,G0(pe)],xt];switch(je){case 0:var e2=I$;break;case 1:var e2=N$;break;case 2:var e2=j$;break;case 3:var e2=C$;break;case 4:var e2=O$;break;case 5:var e2=D$;break;case 6:var e2=F$;break;case 7:var e2=R$;break;case 8:var e2=L$;break;case 9:var e2=M$;break;case 10:var e2=q$;break;case 11:var e2=U$;break;case 12:var e2=B$;break;case 13:var e2=X$;break;case 14:var e2=Y$;break;case 15:var e2=z$;break;case 16:var e2=K$;break;case 17:var e2=J$;break;case 18:var e2=G$;break;case 19:var e2=W$;break;case 20:var e2=V$;break;default:var e2=$$}return X(dp0,D,E2,[0,[0,hp0,Jx(e2)],U1]);case 6:var Z1=A[1],R2=Z1[4],wt=S1(w2(Z1[3][2][2]),R2);return X(yp0,D,wt,gl(Z1));case 7:return V(c50,[0,D,A[1]]);case 8:var O1=A[1],_t=O1[4],Wt=O1[2],rt=O1[1],et=[0,[0,gp0,G0(O1[3])],0],Ox=[0,[0,wp0,G0(Wt)],et];return X(bp0,D,_t,[0,[0,_p0,G0(rt)],Ox]);case 9:return nx([0,D,A[1]]);case 10:return p0(A[1]);case 11:var tt=A[1],xe=tt[2];return X(Ep0,D,xe,[0,[0,Tp0,G0(tt[1])],0]);case 12:return ho([0,D,A[1]]);case 13:return Bv([0,D,A[1]]);case 14:return b2([0,D,A[1]]);case 15:return wn([0,D,A[1]]);case 16:return _n([0,D,A[1]]);case 17:return C1([0,D,A[1]]);case 18:return q1([0,D,A[1]]);case 19:var v1=A[1],Ce=v1[2],Oe=v1[1],nt=v1[4],ut=v1[3];try{var it=new RegExp(Jx(Oe),Jx(Ce)),r1=it}catch{var r1=j1}return X(dy0,D,nt,[0,[0,hy0,r1],[0,[0,my0,Jx(ut)],[0,[0,ky0,_s([0,[0,py0,Jx(Oe)],[0,[0,ly0,Jx(Ce)],0]])],0]]]);case 20:var bt=A[1];return b2([0,D,[0,bt[1],bt[5],bt[6]]]);case 21:var Tt=A[1],Is=Tt[4],ft=Tt[3],Vt=Tt[2];switch(Tt[1]){case 0:var D1=Sp0;break;case 1:var D1=Ap0;break;default:var D1=Pp0}var Tn=[0,[0,Ip0,G0(ft)],0];return X(Cp0,D,Is,[0,[0,jp0,Jx(D1)],[0,[0,Np0,G0(Vt)],Tn]]);case 22:var ke=A[1],De=ke[3],$t=ke[1],Ns=[0,[0,Op0,pr(Kr,ke[2])],0];return X(Fp0,D,De,[0,[0,Dp0,G0($t)],Ns]);case 23:var En=A[1],js=En[3];return X(Rp0,D,js,E4(En));case 24:var re=A[1],Et=re[3],Cs=re[1],Sn=[0,[0,Lp0,p0(re[2])],0];return X(qp0,D,Et,[0,[0,Mp0,p0(Cs)],Sn]);case 25:var Fe=A[1],Os=Fe[4],Ds=Fe[3],To=Fe[2],Eo=Fe[1];if(Ds)var Yv=Ds[1],zv=S1(w2(Yv[2][2]),Os),So=zv,Ao=bx(Yv);else var So=Os,Ao=$2(0);var _l=[0,[0,Bp0,gx(Gt,To)],[0,[0,Up0,Ao],0]];return X(Yp0,D,So,[0,[0,Xp0,G0(Eo)],_l]);case 26:var Kv=A[1],bl=Kv[2],Tl=[0,[0,zp0,pr(Y2,Kv[1])],0];return X(Kp0,D,w2(bl),Tl);case 27:var Fs=A[1],Po=Fs[1],Jv=Fs[3],El=Po[4],Rs=S1(w2(Po[3][2][2]),El);return X(Gp0,D,Rs,Mx(gl(Po),[0,[0,Jp0,!!Jv],0]));case 28:var Gv=A[1],Oa=Gv[1],Sl=Oa[3],Wv=[0,[0,Wp0,!!Gv[3]],0];return X(Vp0,D,Sl,Mx(E4(Oa),Wv));case 29:var Io=A[1],Al=Io[2];return X(Qp0,D,Al,[0,[0,$p0,pr(G0,Io[1])],0]);case 30:return X(Hp0,D,A[1][1],0);case 31:var Da=A[1],Ls=Da[3],No=Da[1],jo=[0,[0,Ny0,bs(Da[2])],0];return X(Cy0,D,Ls,[0,[0,jy0,G0(No)],jo]);case 32:return bs([0,D,A[1]]);case 33:return X(Zp0,D,A[1][1],0);case 34:var Fa=A[1],Pl=Fa[3],Il=Fa[1],Nl=[0,[0,xk0,H1(Fa[2])],0];return X(ek0,D,Pl,[0,[0,rk0,G0(Il)],Nl]);case 35:var Co=A[1],An=Co[3],Ra=Co[1],jl=[0,[0,tk0,yr(Co[2][2])],0];return X(uk0,D,An,[0,[0,nk0,G0(Ra)],jl]);case 36:var Oo=A[1],Vv=Oo[3],Ms=Oo[2],$v=Oo[1];if(7<=$v)return X(fk0,D,Vv,[0,[0,ik0,G0(Ms)],0]);switch($v){case 0:var St=ck0;break;case 1:var St=sk0;break;case 2:var St=ak0;break;case 3:var St=ok0;break;case 4:var St=vk0;break;case 5:var St=lk0;break;case 6:var St=pk0;break;default:var St=Tx(kk0)}return X(yk0,D,Vv,[0,[0,dk0,Jx(St)],[0,[0,hk0,!0],[0,[0,mk0,G0(Ms)],0]]]);case 37:var F1=A[1],Qv=F1[4],Hv=F1[3],Cl=F1[2],Do=F1[1]?gk0:wk0;return X(Ek0,D,Qv,[0,[0,Tk0,Jx(Do)],[0,[0,bk0,G0(Cl)],[0,[0,_k0,!!Hv],0]]]);default:var Fo=A[1],Zv=Fo[2],Ol=[0,[0,Sk0,!!Fo[3]],0];return X(Pk0,D,Zv,[0,[0,Ak0,gx(G0,Fo[1])],Ol])}}function Kr(Y){var A=Y[2],D=A[4],f0=A[2],k0=A[1],R0=Y[1],Q0=[0,[0,Ik0,gx(G0,A[3])],0],mx=[0,[0,Nk0,G0(f0)],Q0];return X(Ck0,R0,D,[0,[0,jk0,G(k0)],mx])}function S(Y){var A=Y[2],D=A[4],f0=A[2],k0=A[1],R0=Y[1],Q0=[0,[0,Ok0,gx(G0,A[3])],0],mx=[0,[0,Dk0,Yx(f0)],Q0];return X(Rk0,R0,D,[0,[0,Fk0,G(k0)],mx])}function G(Y){var A=Y[2],D=Y[1];function f0(Ur){return X(Kk0,D,0,[0,[0,zk0,Ur],0])}switch(A[0]){case 0:return X(Jk0,D,A[1],0);case 1:return f0(C1([0,D,A[1]]));case 2:return f0(q1([0,D,A[1]]));case 3:return f0(b2([0,D,A[1]]));case 4:return f0(wn([0,D,A[1]]));case 5:return f0(_n([0,D,A[1]]));case 6:var k0=A[1],R0=k0[2],Q0=k0[3],mx=k0[1]?Gk0:Wk0,Ix=R0[2],Rx=R0[1],nr=Ix[0]===0?C1([0,Rx,Ix[1]]):q1([0,Rx,Ix[1]]);return X(Qk0,D,Q0,[0,[0,$k0,Jx(mx)],[0,[0,Vk0,nr],0]]);case 7:return yx([0,D,A[1]]);case 8:return rx(A[1]);case 9:var zx=function(Ur){var Qr=Ur[2],T2=Qr[2],Rr=Qr[1],d2=Qr[3],o2=Ur[1],c2=0;switch(T2[0]){case 0:var E2=b2(T2[1]);break;case 1:var E2=C1(T2[1]);break;default:var E2=p0(T2[1])}var pe=[0,[0,Bk0,E2],c2],je=Rr[0]===0?rx(Rr[1]):zx(Rr[1]);return X(Yk0,o2,d2,[0,[0,Xk0,je],pe])};return zx(A[1]);case 10:var ur=A[1],kr=ur[3],rr=ur[1],Cx=[0,[0,Hk0,gx(Ex,ur[2])],0],gr=[0,[0,Zk0,pr(function(Ur){var Qr=Ur[2],T2=Qr[1],Rr=Qr[4],d2=Ur[1],o2=[0,[0,Lk0,!!Qr[3]],0],c2=[0,[0,Mk0,G(Qr[2])],o2];switch(T2[0]){case 0:var E2=b2(T2[1]);break;case 1:var E2=C1(T2[1]);break;default:var E2=p0(T2[1])}return X(Uk0,d2,Rr,[0,[0,qk0,E2],c2])},rr)],Cx];return X(x80,D,w2(kr),gr);case 11:var Er=A[1],Jr=Er[3],Sr=Er[1],Gr=[0,[0,r80,gx(Ex,Er[2])],0],k2=[0,[0,e80,pr(function(Ur){return G(Ur[2])},Sr)],Gr];return X(t80,D,w2(Jr),k2);case 12:var P2=A[1],Dr=P2[2];return X(u80,D,Dr,[0,[0,n80,pr(G,P2[1])],0]);default:var m2=A[1],r2=m2[2],Ar=m2[3],wr=m2[1],f2=r2[0]===0?p0(r2[1]):yx([0,r2[1],r2[2]]);return X(c80,D,Ar,[0,[0,f80,G(wr)],[0,[0,i80,f2],0]])}}function rx(Y){var A=Y[1];return X(a80,A,0,[0,[0,s80,p0(Y)],0])}function yx(Y){var A=Y[2],D=A[3],f0=A[2],k0=Y[1],R0=[0,[0,o80,Jx(Ze(A[1]))],0];return X(l80,k0,D,[0,[0,v80,p0(f0)],R0])}function Ex(Y){var A=Y[2],D=A[2],f0=Y[1];return X(k80,f0,D,[0,[0,p80,gx(yx,A[1])],0])}function nx(Y){var A=Y[2],D=A[3],f0=A[2],k0=A[10],R0=A[9],Q0=A[8],mx=A[7],Ix=A[5],Rx=A[4],nr=f0[2][4],zx=A[1],ur=Y[1],kr=D[0]===0?D[1]:Tx(P80),rr=S1(w2(nr),k0),Cx=[0,[0,I80,gx(d1,R0)],0],gr=[0,[0,j80,!1],[0,[0,N80,qr(Q0)],Cx]],Er=[0,[0,D80,!!Rx],[0,[0,O80,!!Ix],[0,[0,C80,gx(_o,mx)],gr]]],Jr=[0,[0,F80,Yx(kr)],Er],Sr=[0,[0,R80,ux(f0)],Jr];return X(M80,ur,rr,[0,[0,L80,gx(p0,zx)],Sr])}function p0(Y){var A=Y[2];return X(X80,Y[1],A[2],[0,[0,B80,Jx(A[1])],[0,[0,U80,j1],[0,[0,q80,!1],0]]])}function Fx(Y){var A=Y[2];return X(J80,Y[1],A[2],[0,[0,K80,Jx(A[1])],[0,[0,z80,j1],[0,[0,Y80,!1],0]]])}function Sx(Y,A){var D=A[1][2],f0=D[2],k0=D[1],R0=[0,[0,G80,!!A[3]],0];return X($80,Y,f0,[0,[0,V80,Jx(k0)],[0,[0,W80,ml(H1,A[2])],R0]])}function bx(Y){return pr(dt,Y[2][1])}function B0(Y){var A=Y[2],D=A[3],f0=A[1],k0=Y[1],R0=[0,[0,Q80,pr(Px,A[2])],0];return X(Z80,k0,D,[0,[0,H80,gx(G0,f0)],R0])}function Wx(Y){var A=Y[2],D=A[3],f0=A[1],k0=Y[1],R0=[0,[0,xm0,Yx(A[2])],0];return X(em0,k0,D,[0,[0,rm0,gx(dr,f0)],R0])}function Yx(Y){var A=Y[2],D=A[2],f0=Y[1],k0=[0,[0,tm0,Gx(A[1])],0];return X(nm0,f0,w2(D),k0)}function ax(Y){var A=Y[2],D=A[2],f0=A[1],k0=A[4],R0=A[3],Q0=Y[1],mx=Yr(f0[1],D[1]),Ix=[0,[0,um0,Jx(Ze(R0))],0];return X(fm0,Q0,k0,[0,[0,im0,Sx(mx,[0,f0,[1,D],0])],Ix])}function Qx(Y){var A=Y[2],D=A[2],f0=A[1],k0=A[4],R0=A[3],Q0=Y[1],mx=Yr(f0[1],D[1]),Ix=D[2][2];x:{if(Ix[0]===12){var Rx=Ix[1][5];if(typeof Rx==\"number\"&&!Rx){var nr=0,zx=cm0;break x}}var nr=[0,[0,sm0,gx(_o,R0)],0],zx=am0}return X(zx,Q0,k0,Mx([0,[0,om0,Sx(mx,[0,f0,[1,D],0])],0],nr))}function kx(Y){var A=Y[2],D=A[6],f0=A[4],k0=A[7],R0=A[5],Q0=A[3],mx=A[2],Ix=A[1],Rx=Y[1],nr=$2(f0?[0,Zr(f0[1]),0]:0),zx=D?pr(U0,D[1][2][1]):$2(0),ur=[0,[0,pm0,nr],[0,[0,lm0,zx],[0,[0,vm0,pr(Zr,R0)],0]]],kr=[0,[0,km0,bn(0,Q0)],ur],rr=[0,[0,mm0,gx(d1,mx)],kr];return X(dm0,Rx,k0,[0,[0,hm0,p0(Ix)],rr])}function tr(Y){var A=Y[2],D=A[3],f0=Y[1],k0=A[5],R0=A[4],Q0=A[2],mx=A[1],Ix=S1(w2(D[2][3]),k0),Rx=D[2],nr=Rx[1],zx=Rx[2],ur=[0,[0,ym0,gx(d1,Q0)],0],kr=[0,[0,gm0,Pa(R0)],ur],rr=[0,[0,wm0,sr(nr)],kr],Cx=[0,[0,_m0,gx(Mr,zx)],rr],gr=[0,[0,bm0,sr(nr)],Cx];return X(Em0,f0,Ix,[0,[0,Tm0,p0(mx)],gr])}function sr(Y){return $2(vs(function(A){var D=A[2];return a2(0,D[3],A[1],[0,D[1]],D[2][2])},Y))}function Mr(Y){var A=Y[2],D=A[4],f0=A[3],k0=A[2],R0=Y[1];return a2(D,f0,R0,f5(function(Q0){return[0,Q0]},A[1]),k0)}function a2(Y,A,D,f0,k0){if(f0)var R0=f0[1],Q0=R0[0]===0?gx(p0,[0,R0[1]]):gx(b2,[0,R0[1]]),mx=Q0;else var mx=gx(p0,0);return X(Dm0,D,Y,[0,[0,Om0,mx],[0,[0,Cm0,yr(k0)],[0,[0,jm0,!!A],0]]])}function _2(Y){var A=Y[2],D=A[3],f0=A[1],k0=Y[1],R0=[0,[0,Fm0,Cr(A[2])],0];return X(Lm0,k0,D,[0,[0,Rm0,p0(f0)],R0])}function i2(Y){return Y?Ym0:zm0}function Q2(Y){if(!Y)return $2(0);var A=Y[1];if(A[0]===0)return pr(Yh,A[1]);var D=A[1],f0=D[2],k0=D[1];return $2(f0?[0,X(Jm0,k0,0,[0,[0,Km0,p0(f0[1])],0]),0]:0)}function jx(Y){var A=Y[2],D=A[4],f0=A[2],k0=A[1],R0=Y[1],Q0=[0,[0,Qm0,yr(A[3])],0],mx=[0,[0,Hm0,gx(d1,f0)],Q0];return X(x50,R0,D,[0,[0,Zm0,p0(k0)],mx])}function _(Y,A){var D=A[2],f0=D[5],k0=D[4],R0=D[3],Q0=D[2],mx=D[1],Ix=A[1],Rx=Y?r50:e50,nr=[0,[0,t50,gx(yr,k0)],0],zx=[0,[0,n50,gx(yr,R0)],nr],ur=[0,[0,u50,gx(d1,Q0)],zx];return X(Rx,Ix,f0,[0,[0,i50,p0(mx)],ur])}function V(Y,A){var D=A[2],f0=D[7],k0=D[5],R0=D[4],Q0=D[2],mx=D[6],Ix=D[3],Rx=D[1],nr=A[1];if(R0)var zx=R0[1][2],ur=zx[2],kr=zx[1],rr=S1(zx[3],f0),Cx=ur,gr=[0,kr];else var rr=f0,Cx=0,gr=0;if(k0)var Er=k0[1][2],Jr=Er[1],Sr=S1(Er[2],rr),Gr=Sr,k2=pr(U0,Jr);else var Gr=rr,k2=$2(0);var P2=[0,[0,a50,k2],[0,[0,s50,pr(lx,mx)],0]],Dr=[0,[0,o50,gx(As,Cx)],P2],m2=[0,[0,v50,gx(G0,gr)],Dr],r2=[0,[0,l50,gx(d1,Ix)],m2],Ar=Q0[2],wr=Ar[2],f2=Q0[1],Ur=[0,[0,p50,X(_50,f2,wr,[0,[0,w50,pr(ox,Ar[1])],0])],r2];return X(Y,nr,Gr,[0,[0,k50,gx(p0,Rx)],Ur])}function lx(Y){var A=Y[2],D=A[2],f0=Y[1];return X(h50,f0,D,[0,[0,m50,G0(A[1])],0])}function U0(Y){var A=Y[2],D=A[1],f0=Y[1],k0=[0,[0,d50,gx(As,A[2])],0];return X(g50,f0,0,[0,[0,y50,p0(D)],k0])}function ox(Y){switch(Y[0]){case 0:var A=Y[1],D=A[2],f0=D[6],k0=D[2],R0=D[5],Q0=D[4],mx=D[3],Ix=D[1],Rx=A[1];switch(k0[0]){case 0:var kr=f0,rr=0,Cx=b2(k0[1]);break;case 1:var kr=f0,rr=0,Cx=C1(k0[1]);break;case 2:var kr=f0,rr=0,Cx=q1(k0[1]);break;case 3:var kr=f0,rr=0,Cx=p0(k0[1]);break;case 4:var kr=f0,rr=0,Cx=Fx(k0[1]);break;default:var nr=k0[1][2],zx=nr[1],ur=S1(nr[2],f0),kr=ur,rr=1,Cx=G0(zx)}switch(Ix){case 0:var gr=b50;break;case 1:var gr=T50;break;case 2:var gr=E50;break;default:var gr=S50}var Er=[0,[0,N50,Jx(gr)],[0,[0,I50,!!Q0],[0,[0,P50,!!rr],[0,[0,A50,pr(lx,R0)],0]]]];return X(O50,Rx,kr,[0,[0,C50,Cx],[0,[0,j50,nx(mx)],Er]]);case 1:var Jr=Y[1],Sr=Jr[2],Gr=Sr[7],k2=Sr[6],P2=Sr[2],Dr=Sr[1],m2=Sr[5],r2=Sr[4],Ar=Sr[3],wr=Jr[1];switch(Dr[0]){case 0:var Rr=Gr,d2=0,o2=b2(Dr[1]);break;case 1:var Rr=Gr,d2=0,o2=C1(Dr[1]);break;case 2:var Rr=Gr,d2=0,o2=q1(Dr[1]);break;case 3:var Rr=Gr,d2=0,o2=p0(Dr[1]);break;case 4:var f2=Tx(Y50),Rr=f2[3],d2=f2[2],o2=f2[1];break;default:var Ur=Dr[1][2],Qr=Ur[1],T2=S1(Ur[2],Gr),Rr=T2,d2=1,o2=G0(Qr)}if(typeof P2==\"number\")if(P2)var c2=0,E2=0;else var c2=1,E2=0;else var c2=0,E2=[0,P2[1]];var pe=c2?[0,[0,z50,!!c2],0]:0,je=k2===0?0:[0,[0,K50,pr(lx,k2)],0],xt=Mx(je,pe),U1=[0,[0,W50,!!d2],[0,[0,G50,!!r2],[0,[0,J50,gx(yt,m2)],0]]],e2=[0,[0,V50,ml(H1,Ar)],U1];return X(H50,wr,Rr,Mx([0,[0,Q50,o2],[0,[0,$50,gx(G0,E2)],e2]],xt));default:var Z1=Y[1],R2=Z1[2],wt=R2[6],O1=R2[2],_t=R2[7],Wt=R2[5],rt=R2[4],et=R2[3],Ox=R2[1],tt=Z1[1];if(typeof O1==\"number\")if(O1)var xe=0,v1=0;else var xe=1,v1=0;else var xe=0,v1=[0,O1[1]];var Ce=xe?[0,[0,D50,!!xe],0]:0,Oe=wt===0?0:[0,[0,F50,pr(lx,wt)],0],nt=Mx(Oe,Ce),ut=[0,[0,M50,!1],[0,[0,L50,!!rt],[0,[0,R50,gx(yt,Wt)],0]]],it=[0,[0,q50,ml(H1,et)],ut],r1=[0,[0,U50,gx(G0,v1)],it];return X(X50,tt,_t,Mx([0,[0,B50,Fx(Ox)],r1],nt))}}function wx(Y){var A=Y[2],D=A[3],f0=A[2],k0=A[1],R0=Y[1],Q0=A[4],mx=k0[0]===0?p0(k0[1]):b2(k0[1]);if(D)var Ix=[0,[0,fh0,G0(D[1])],0],Rx=X(sh0,R0,0,[0,[0,ch0,dr(f0)],Ix]);else var Rx=dr(f0);return X(lh0,R0,0,[0,[0,vh0,mx],[0,[0,oh0,Rx],[0,[0,ah0,!!Q0],0]]])}function Cr(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:var f0=A[1],k0=f0[4],R0=[0,[0,jh0,!!f0[2]],[0,[0,Nh0,!!f0[3]],0]],Q0=[0,[0,Ch0,pr(function(Ar){var wr=Ar[2],f2=wr[1],Ur=Ar[1],Qr=[0,[0,Ah0,wn(wr[2])],0];return X(Ih0,Ur,0,[0,[0,Ph0,p0(f2)],Qr])},f0[1])],R0];return X(Oh0,D,w2(k0),Q0);case 1:var mx=A[1],Ix=mx[4],Rx=[0,[0,Fh0,!!mx[2]],[0,[0,Dh0,!!mx[3]],0]],nr=[0,[0,Rh0,pr(function(Ar){var wr=Ar[2],f2=wr[1],Ur=Ar[1],Qr=[0,[0,Th0,C1(wr[2])],0];return X(Sh0,Ur,0,[0,[0,Eh0,p0(f2)],Qr])},mx[1])],Rx];return X(Lh0,D,w2(Ix),nr);case 2:var zx=A[1],ur=zx[1],kr=zx[4],rr=zx[3],Cx=zx[2],gr=ur[0]===0?vs(function(Ar){var wr=Ar[1];return X(bh0,wr,0,[0,[0,_h0,p0(Ar[2][1])],0])},ur[1]):vs(function(Ar){var wr=Ar[2],f2=wr[1],Ur=Ar[1],Qr=[0,[0,yh0,b2(wr[2])],0];return X(wh0,Ur,0,[0,[0,gh0,p0(f2)],Qr])},ur[1]),Er=[0,[0,Uh0,$2(gr)],[0,[0,qh0,!!Cx],[0,[0,Mh0,!!rr],0]]];return X(Bh0,D,w2(kr),Er);case 3:var Jr=A[1],Sr=Jr[3],Gr=[0,[0,Xh0,!!Jr[2]],0],k2=[0,[0,Yh0,pr(function(Ar){var wr=Ar[1];return X(dh0,wr,0,[0,[0,hh0,p0(Ar[2][1])],0])},Jr[1])],Gr];return X(zh0,D,w2(Sr),k2);default:var P2=A[1],Dr=P2[4],m2=[0,[0,Jh0,!!P2[2]],[0,[0,Kh0,!!P2[3]],0]],r2=[0,[0,Gh0,pr(function(Ar){var wr=Ar[2],f2=wr[1],Ur=Ar[1],Qr=[0,[0,ph0,q1(wr[2])],0];return X(mh0,Ur,0,[0,[0,kh0,p0(f2)],Qr])},P2[1])],m2];return X(Wh0,D,w2(Dr),r2)}}function Hx(Y){var A=Y[2],D=A[5],f0=A[4],k0=A[2],R0=A[1],Q0=Y[1],mx=[0,[0,Hh0,pr(Zr,A[3])],0],Ix=[0,[0,Zh0,bn(0,f0)],mx],Rx=[0,[0,xd0,gx(d1,k0)],Ix];return X(ed0,Q0,D,[0,[0,rd0,p0(R0)],Rx])}function Zr(Y){var A=Y[2],D=A[1],f0=A[3],k0=A[2],R0=Y[1],Q0=D[0]===0?p0(D[1]):Ea(D[1]);return X(ud0,R0,f0,[0,[0,nd0,Q0],[0,[0,td0,gx(As,k0)],0]])}function dr(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:var f0=A[1],k0=f0[3],R0=f0[1],Q0=[0,[0,id0,ml(H1,f0[2])],0],mx=[0,[0,fd0,pr(H2,R0)],Q0];return X(cd0,D,w2(k0),mx);case 1:var Ix=A[1],Rx=Ix[3],nr=Ix[1],zx=[0,[0,sd0,ml(H1,Ix[2])],0],ur=[0,[0,ad0,pr(Zx,nr)],zx];return X(od0,D,w2(Rx),ur);case 2:return Sx(D,A[1]);default:return G0(A[1])}}function Or(Y){var A=Y[2],D=A[2],f0=A[1],k0=Y[1];if(!D)return dr(f0);var R0=[0,[0,vd0,G0(D[1])],0];return X(pd0,k0,0,[0,[0,ld0,dr(f0)],R0])}function x2(Y){var A=Y[2],D=A[2],f0=Y[1];return X(hd0,f0,D,[0,[0,md0,Qo],[0,[0,kd0,H1(A[1])],0]])}function ux(Y){var A=Y[2],D=A[3],f0=A[2],k0=A[1];if(D){var R0=D[1],Q0=R0[2],mx=Q0[2],Ix=R0[1],Rx=X(yd0,Ix,mx,[0,[0,dd0,dr(Q0[1])],0]),nr=ix([0,Rx,c5(Or,f0)]),zx=k0?[0,x2(k0[1]),nr]:nr;return $2(zx)}var ur=vs(Or,f0),kr=k0?[0,x2(k0[1]),ur]:ur;return $2(kr)}function Lx(Y,A){var D=A[2];return X(wd0,Y,D,[0,[0,gd0,dr(A[1])],0])}function Zx(Y){switch(Y[0]){case 0:var A=Y[1],D=A[2],f0=D[2],k0=D[1],R0=A[1];if(!f0)return dr(k0);var Q0=[0,[0,_d0,G0(f0[1])],0];return X(Td0,R0,0,[0,[0,bd0,dr(k0)],Q0]);case 1:var mx=Y[1];return Lx(mx[1],mx[2]);default:return j1}}function qr(Y){switch(Y[0]){case 0:return j1;case 1:return H1(Y[1]);default:var A=Y[1],D=A[2],f0=A[1];return X(Mw0,f0,0,[0,[0,Lw0,Ta([0,D[1],D[2]])],0])}}function Y2(Y){if(Y[0]===0){var A=Y[1],D=A[2],f0=A[1];switch(D[0]){case 0:var k0=D[3],R0=D[1],rr=0,Cx=k0,gr=0,Er=Ed0,Jr=G0(D[2]),Sr=R0;break;case 1:var Q0=D[2],mx=D[1],rr=0,Cx=0,gr=1,Er=Sd0,Jr=nx([0,Q0[1],Q0[2]]),Sr=mx;break;case 2:var Ix=D[2],Rx=D[3],nr=D[1],rr=Rx,Cx=0,gr=0,Er=Ad0,Jr=nx([0,Ix[1],Ix[2]]),Sr=nr;break;default:var zx=D[2],ur=D[3],kr=D[1],rr=ur,Cx=0,gr=0,Er=Pd0,Jr=nx([0,zx[1],zx[2]]),Sr=kr}switch(Sr[0]){case 0:var m2=rr,r2=0,Ar=b2(Sr[1]);break;case 1:var m2=rr,r2=0,Ar=C1(Sr[1]);break;case 2:var m2=rr,r2=0,Ar=q1(Sr[1]);break;case 3:var m2=rr,r2=0,Ar=p0(Sr[1]);break;case 4:var Gr=Tx(Id0),m2=Gr[3],r2=Gr[2],Ar=Gr[1];break;default:var k2=Sr[1][2],P2=k2[1],Dr=S1(k2[2],rr),m2=Dr,r2=1,Ar=G0(P2)}return X(Rd0,f0,m2,[0,[0,Fd0,Ar],[0,[0,Dd0,Jr],[0,[0,Od0,Jx(Er)],[0,[0,Cd0,!!gr],[0,[0,jd0,!!Cx],[0,[0,Nd0,!!r2],0]]]]]])}var wr=Y[1],f2=wr[2],Ur=f2[2],Qr=wr[1];return X(Md0,Qr,Ur,[0,[0,Ld0,G0(f2[1])],0])}function H2(Y){if(Y[0]!==0){var A=Y[1];return Lx(A[1],A[2])}var D=Y[1],f0=D[2],k0=f0[3],R0=f0[2],Q0=f0[1],mx=f0[4],Ix=D[1];switch(Q0[0]){case 0:var zx=0,ur=0,kr=b2(Q0[1]);break;case 1:var zx=0,ur=0,kr=C1(Q0[1]);break;case 2:var zx=0,ur=0,kr=q1(Q0[1]);break;case 3:var zx=0,ur=0,kr=p0(Q0[1]);break;default:var Rx=Q0[1][2],nr=Rx[2],zx=nr,ur=1,kr=G0(Rx[1])}if(k0)var rr=k0[1],Cx=Yr(R0[1],rr[1]),gr=[0,[0,qd0,G0(rr)],0],Er=X(Bd0,Cx,0,[0,[0,Ud0,dr(R0)],gr]);else var Er=dr(R0);return X(Wd0,Ix,zx,[0,[0,Gd0,kr],[0,[0,Jd0,Er],[0,[0,Kd0,Gc],[0,[0,zd0,!1],[0,[0,Yd0,!!mx],[0,[0,Xd0,!!ur],0]]]]]])}function Kt(Y){var A=Y[2],D=A[2],f0=Y[1];return X($d0,f0,D,[0,[0,Vd0,G0(A[1])],0])}function dt(Y){return Y[0]===0?G0(Y[1]):Kt(Y[1])}function Jt(Y){switch(Y[0]){case 0:return G0(Y[1]);case 1:return Kt(Y[1]);default:return j1}}function C1(Y){var A=Y[2];return X(Zd0,Y[1],A[3],[0,[0,Hd0,A[1]],[0,[0,Qd0,Jx(A[2])],0]])}function q1(Y){var A=Y[2],D=A[2],f0=A[1],k0=A[3],R0=Y[1],Q0=f0?yM(O3,f0[1]):VM(xy0,HM(95,T1(D,0,Nx(D)-1|0)));return X(ny0,R0,k0,[0,[0,ty0,j1],[0,[0,ey0,Jx(Q0)],[0,[0,ry0,Jx(D)],0]]])}function b2(Y){var A=Y[2];return X(fy0,Y[1],A[3],[0,[0,iy0,Jx(A[1])],[0,[0,uy0,Jx(A[2])],0]])}function wn(Y){var A=Y[2],D=A[1],f0=A[2],k0=Y[1],R0=D?cy0:sy0;return X(vy0,k0,f0,[0,[0,oy0,!!D],[0,[0,ay0,Jx(R0)],0]])}function _n(Y){return X(wy0,Y[1],Y[2],[0,[0,gy0,j1],[0,[0,yy0,uv],0]])}function bs(Y){var A=Y[2],D=A[3],f0=A[1],k0=Y[1],R0=[0,[0,_y0,pr(G0,A[2])],0];return X(Ty0,k0,D,[0,[0,by0,pr(le,f0)],R0])}function le(Y){var A=Y[2],D=A[1],f0=A[2],k0=Y[1];return X(Iy0,k0,0,[0,[0,Py0,_s([0,[0,Sy0,Jx(D[1])],[0,[0,Ey0,Jx(D[2])],0]])],[0,[0,Ay0,!!f0],0]])}function Ze(Y){switch(Y){case 0:return Oy0;case 1:return Dy0;default:return Fy0}}function Ts(Y){var A=Y[2],D=A[3],f0=A[1],k0=Y[1],R0=[0,[0,Ry0,Jx(Ze(A[2]))],0];return X(My0,k0,D,[0,[0,Ly0,pr(Lv,f0)],R0])}function Lv(Y){var A=Y[2],D=A[1],f0=Y[1],k0=[0,[0,qy0,gx(G0,A[2])],0];return X(By0,f0,0,[0,[0,Uy0,dr(D)],k0])}function yt(Y){var A=Y[2],D=A[2],f0=Y[1];switch(A[1]){case 0:var k0=Xy0;break;case 1:var k0=Yy0;break;case 2:var k0=zy0;break;case 3:var k0=Ky0;break;case 4:var k0=Jy0;break;default:var k0=Gy0}return X(Vy0,f0,D,[0,[0,Wy0,Jx(k0)],0])}function yr(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:return X($y0,D,A[1],0);case 1:return X(Qy0,D,A[1],0);case 2:return X(Hy0,D,A[1],0);case 3:return X(Zy0,D,A[1],0);case 4:return X(x90,D,A[1],0);case 5:return X(e90,D,A[1],0);case 6:return X(t90,D,A[1],0);case 7:return X(n90,D,A[1],0);case 8:return X(u90,D,A[2],0);case 9:return X(r90,D,A[1],0);case 10:return X(Dw0,D,A[1],0);case 11:var f0=A[1],k0=f0[2];return X(f90,D,k0,[0,[0,i90,yr(f0[1])],0]);case 12:return Es([0,D,A[1]]);case 13:var R0=A[1],Q0=R0[2],mx=R0[4],Ix=R0[3],Rx=R0[1],nr=S1(w2(Q0[2][3]),mx),zx=Q0[2],ur=zx[2],kr=zx[1],rr=[0,[0,Sm0,gx(d1,Rx)],0],Cx=[0,[0,Am0,Pa(Ix)],rr],gr=[0,[0,Pm0,gx(Mr,ur)],Cx];return X(Nm0,D,nr,[0,[0,Im0,sr(kr)],gr]);case 14:return bn(1,[0,D,A[1]]);case 15:var Er=A[1],Jr=Er[3],Sr=Er[2],Gr=[0,[0,wg0,bn(0,Er[1])],0];return X(bg0,D,Jr,[0,[0,_g0,pr(Zr,Sr)],Gr]);case 16:var k2=A[1],P2=k2[2];return X(Eg0,D,P2,[0,[0,Tg0,yr(k2[1])],0]);case 17:var Dr=A[1],m2=Dr[5],r2=Dr[3],Ar=Dr[2],wr=Dr[1],f2=[0,[0,Sg0,yr(Dr[4])],0],Ur=[0,[0,Ag0,yr(r2)],f2],Qr=[0,[0,Pg0,yr(Ar)],Ur];return X(Ng0,D,m2,[0,[0,Ig0,yr(wr)],Qr]);case 18:var T2=A[1],Rr=T2[2];return X(Cg0,D,Rr,[0,[0,jg0,Ia(T2[1])],0]);case 19:return ko([0,D,A[1]]);case 20:var d2=A[1],o2=d2[3];return X(Bg0,D,o2,Sa(d2));case 21:var c2=A[1],E2=c2[1],pe=E2[3],je=[0,[0,Xg0,!!c2[2]],0];return X(Yg0,D,pe,Mx(Sa(E2),je));case 22:var xt=A[1],U1=xt[1],e2=xt[2];return X(Kg0,D,e2,[0,[0,zg0,pr(yr,[0,U1[1],[0,U1[2],U1[3]]])],0]);case 23:var Z1=A[1],R2=Z1[1],wt=Z1[2];return X(Gg0,D,wt,[0,[0,Jg0,pr(yr,[0,R2[1],[0,R2[2],R2[3]]])],0]);case 24:var O1=A[1],_t=O1[2],Wt=O1[3],rt=O1[1],et=_t?[0,[0,Wg0,As(_t[1])],0]:0;return X($g0,D,Wt,[0,[0,Vg0,Aa(rt)],et]);case 25:var Ox=A[1],tt=Ox[2];return X(rw0,D,tt,[0,[0,xw0,yr(Ox[1])],0]);case 26:return mo(D,A[1]);case 27:var xe=A[1];return Ss(D,xe[2],cw0,xe[1]);case 28:var v1=A[1],Ce=v1[3],Oe=[0,[0,sw0,!!v1[2]],0];return X(ow0,D,Ce,[0,[0,aw0,pr(function(Vt){var D1=Vt[2],Tn=Vt[1];switch(D1[0]){case 0:return yr(D1[1]);case 1:var ke=D1[1],De=ke[2],$t=ke[1],Ns=[0,[0,vw0,!!ke[4]],0],En=[0,[0,lw0,gx(yt,ke[3])],Ns],js=[0,[0,pw0,yr(De)],En];return X(mw0,Tn,0,[0,[0,kw0,p0($t)],js]);default:var re=D1[1],Et=re[1],Cs=[0,[0,hw0,yr(re[2])],0];return X(yw0,Tn,0,[0,[0,dw0,gx(p0,Et)],Cs])}},v1[1])],Oe]);case 29:var nt=A[1];return X(_w0,D,nt[3],[0,[0,ww0,Jx(nt[1])],[0,[0,gw0,Jx(nt[2])],0]]);case 30:var ut=A[1];return X(Ew0,D,ut[3],[0,[0,Tw0,ut[1]],[0,[0,bw0,Jx(ut[2])],0]]);case 31:var it=A[1];return X(Pw0,D,it[3],[0,[0,Aw0,j1],[0,[0,Sw0,Jx(it[2])],0]]);case 32:var r1=A[1],bt=r1[1],Tt=r1[2],Is=0,ft=bt?Iw0:Nw0;return X(Ow0,D,Tt,[0,[0,Cw0,!!bt],[0,[0,jw0,Jx(ft)],Is]]);case 33:return X(c90,D,A[1],0);case 34:return X(s90,D,A[1],0);default:return X(a90,D,A[1],0)}}function Ta(Y){var A=Y[2],D=A[2],f0=A[3],k0=D[2],R0=D[1],Q0=Y[1];switch(A[1]){case 0:var mx=j1;break;case 1:var mx=b3;break;default:var mx=m3}var Ix=[0,[0,v90,gx(yr,k0)],[0,[0,o90,mx],0]],Rx=[0,[0,l90,p0(R0)],Ix];return X(p90,Q0,w2(f0),Rx)}function Es(Y){var A=Y[2],D=A[5],f0=A[3],k0=A[2][2],R0=A[4],Q0=k0[3],mx=k0[2],Ix=k0[1],Rx=A[1],nr=Y[1],zx=S1(w2(k0[4]),R0),ur=D===0?k90:m90,kr=D===0?0:[0,[0,h90,gx(qv,Ix)],0],rr=[0,[0,d90,gx(d1,Rx)],0],Cx=[0,[0,y90,gx(Mv,Q0)],rr],gr=f0[0]===0?yr(f0[1]):Ta(f0[1]);return X(ur,nr,zx,Mx([0,[0,w90,pr(function(Er){return gt(0,Er)},mx)],[0,[0,g90,gr],Cx]],kr))}function gt(Y,A){var D=A[2],f0=D[1],k0=A[1],R0=[0,[0,_90,!!D[3]],0],Q0=[0,[0,b90,yr(D[2])],R0];return X(E90,k0,Y,[0,[0,T90,gx(p0,f0)],Q0])}function Mv(Y){var A=Y[2];return gt(A[2],A[1])}function qv(Y){var A=Y[2],D=A[2],f0=Y[1],k0=[0,[0,A90,yr(A[1][2])],[0,[0,S90,!1],0]];return X(I90,f0,D,[0,[0,P90,gx(p0,0)],k0])}function bn(Y,A){var D=A[2],f0=D[4],k0=D[2],R0=D[1],Q0=A[1],mx=m1(function(gr,Er){var Jr=gr[4],Sr=gr[3],Gr=gr[2],k2=gr[1];switch(Er[0]){case 0:var P2=Er[1],Dr=P2[2],m2=Dr[2],r2=Dr[1],Ar=Dr[8],wr=Dr[7],f2=Dr[6],Ur=Dr[5],Qr=Dr[4],T2=Dr[3],Rr=P2[1];switch(r2[0]){case 0:var d2=b2(r2[1]);break;case 1:var d2=C1(r2[1]);break;case 2:var d2=q1(r2[1]);break;case 3:var d2=p0(r2[1]);break;case 4:var d2=Tx(M90);break;default:var d2=Tx(q90)}switch(m2[0]){case 0:var E2=U90,pe=yr(m2[1]);break;case 1:var o2=m2[1],E2=B90,pe=Es([0,o2[1],o2[2]]);break;default:var c2=m2[1],E2=X90,pe=Es([0,c2[1],c2[2]])}return[0,[0,X(Q90,Rr,Ar,[0,[0,$90,d2],[0,[0,V90,pe],[0,[0,W90,!!f2],[0,[0,G90,!!T2],[0,[0,J90,!!Qr],[0,[0,K90,!!Ur],[0,[0,z90,gx(yt,wr)],[0,[0,Y90,Jx(E2)],0]]]]]]]]),k2],Gr,Sr,Jr];case 1:var je=Er[1],xt=je[2],U1=xt[2],e2=je[1];return[0,[0,X(Z90,e2,U1,[0,[0,H90,yr(xt[1])],0]),k2],Gr,Sr,Jr];case 2:var Z1=Er[1],R2=Z1[2],wt=R2[6],O1=R2[4],_t=R2[3],Wt=R2[2],rt=R2[1],et=Z1[1],Ox=[0,[0,rg0,!!O1],[0,[0,xg0,gx(yt,R2[5])],0]],tt=[0,[0,eg0,yr(_t)],Ox],xe=[0,[0,tg0,yr(Wt)],tt];return[0,k2,[0,X(ug0,et,wt,[0,[0,ng0,gx(p0,rt)],xe]),Gr],Sr,Jr];case 3:var v1=Er[1],Ce=v1[2],Oe=Ce[3],nt=v1[1],ut=[0,[0,ig0,!!Ce[2]],0];return[0,k2,Gr,[0,X(cg0,nt,Oe,[0,[0,fg0,Es(Ce[1])],ut]),Sr],Jr];case 4:var it=Er[1],r1=it[2],bt=r1[6],Tt=r1[5],Is=r1[4],ft=r1[3],Vt=r1[1],D1=it[1],Tn=[0,[0,dg0,!!ft],[0,[0,hg0,!!Is],[0,[0,mg0,!!Tt],[0,[0,kg0,yr(r1[2])],0]]]];return[0,k2,Gr,Sr,[0,X(gg0,D1,bt,[0,[0,yg0,p0(Vt)],Tn]),Jr]];default:var ke=Er[1],De=ke[2],$t=De[6],Ns=De[4],En=De[3],js=De[2],re=De[1],Et=ke[1],Cs=0;switch(De[5]){case 0:var Sn=\"PlusOptional\";break;case 1:var Sn=\"MinusOptional\";break;case 2:var Sn=\"Optional\";break;default:var Sn=j1}var Fe=[0,[0,ag0,gx(yt,Ns)],[0,[0,sg0,Sn],Cs]],Os=[0,[0,og0,yr(En)],Fe],Ds=[0,[0,vg0,yr(js)],Os];return[0,[0,X(pg0,Et,$t,[0,[0,lg0,Ia(re)],Ds]),k2],Gr,Sr,Jr]}},N90,D[3]),Ix=mx[3],Rx=mx[2],nr=mx[1],zx=[0,[0,j90,$2(ix(mx[4]))],0],ur=[0,[0,C90,$2(ix(Ix))],zx],kr=[0,[0,O90,$2(ix(Rx))],ur],rr=[0,[0,F90,!!R0],[0,[0,D90,$2(ix(nr))],kr]],Cx=Y?[0,[0,R90,!!k0],rr]:rr;return X(L90,Q0,w2(f0),Cx)}function Ea(Y){var A=Y[2],D=A[1],f0=A[2],k0=Y[1],R0=D[0]===0?p0(D[1]):Ea(D[1]);return X(Fg0,k0,0,[0,[0,Dg0,R0],[0,[0,Og0,p0(f0)],0]])}function ko(Y){var A=Y[2],D=A[1],f0=A[3],k0=A[2],R0=Y[1],Q0=D[0]===0?p0(D[1]):Ea(D[1]);return X(Mg0,R0,f0,[0,[0,Lg0,Q0],[0,[0,Rg0,gx(As,k0)],0]])}function Sa(Y){var A=Y[1],D=[0,[0,qg0,yr(Y[2])],0];return[0,[0,Ug0,yr(A)],D]}function Aa(Y){if(Y[0]===0)return p0(Y[1]);var A=Y[1],D=A[2],f0=D[2],k0=A[1],R0=Aa(D[1]);return X(Zg0,k0,0,[0,[0,Hg0,R0],[0,[0,Qg0,p0(f0)],0]])}function Pa(Y){return Y[0]===0?j1:mo(Y[1],Y[2])}function mo(Y,A){var D=A[3],f0=A[2];switch(A[4]){case 0:var k0=ew0;break;case 1:var k0=tw0;break;default:var k0=nw0}return Ss(Y,D,k0,f0)}function Ss(Y,A,D,f0){return X(fw0,Y,A,[0,[0,iw0,Jx(D)],[0,[0,uw0,yr(f0)],0]])}function H1(Y){var A=Y[1];return X(Rw0,A,0,[0,[0,Fw0,yr(Y[2])],0])}function d1(Y){var A=Y[2],D=A[2],f0=Y[1],k0=[0,[0,qw0,pr(Ia,A[1])],0];return X(Uw0,f0,w2(D),k0)}function Ia(Y){var A=Y[2],D=A[1][2],f0=A[5],k0=A[4],R0=A[2],Q0=D[2],mx=D[1],Ix=Y[1],Rx=A[3]?[0,[0,Bw0,!0],0]:0,nr=[0,[0,Xw0,gx(yr,f0)],0],zx=[0,[0,Yw0,gx(yt,k0)],nr];return X(Jw0,Ix,Q0,Mx([0,[0,Kw0,Jx(mx)],[0,[0,zw0,ml(H1,R0)],zx]],Rx))}function As(Y){var A=Y[2],D=A[2],f0=Y[1],k0=[0,[0,Gw0,pr(yr,A[1])],0];return X(Ww0,f0,w2(D),k0)}function Gt(Y){var A=Y[2],D=A[2],f0=Y[1],k0=[0,[0,Vw0,pr(Uv,A[1])],0];return X($w0,f0,w2(D),k0)}function Uv(Y){if(Y[0]===0)return yr(Y[1]);var A=Y[1],D=A[1],f0=A[2][1];return ko([0,D,[0,[0,mn(0,[0,D,Qw0])],0,f0]])}function ho(Y){var A=Y[2],D=A[1],f0=A[4],k0=A[2],R0=Y[1],Q0=[0,[0,Hw0,pr(Na,A[3][2])],0],mx=[0,[0,Zw0,gx(dl,k0)],Q0],Ix=D[2],Rx=Ix[2],nr=Ix[4],zx=Ix[3],ur=Ix[1],kr=D[1],rr=Rx?[0,[0,i_0,Gt(Rx[1])],0]:0,Cx=[0,[0,c_0,pr(Xv,nr)],[0,[0,f_0,!!zx],0]];return X(r_0,R0,f0,[0,[0,x_0,X(a_0,kr,0,Mx([0,[0,s_0,yo(ur)],Cx],rr))],mx])}function Bv(Y){var A=Y[2],D=A[4],f0=A[3][2],k0=A[1],R0=Y[1],Q0=[0,[0,e_0,X(p_0,A[2],0,0)],0],mx=[0,[0,t_0,pr(Na,f0)],Q0];return X(u_0,R0,D,[0,[0,n_0,X(o_0,k0,0,0)],mx])}function Xv(Y){if(Y[0]===0){var A=Y[1],D=A[2],f0=D[1],k0=D[2],R0=A[1],Q0=f0[0]===0?Ps(f0[1]):yl(f0[1]);return X(h_0,R0,0,[0,[0,m_0,Q0],[0,[0,k_0,gx(go,k0)],0]])}var mx=Y[1],Ix=mx[2],Rx=Ix[2],nr=mx[1];return X(y_0,nr,Rx,[0,[0,d_0,G0(Ix[1])],0])}function dl(Y){var A=Y[1];return X(l_0,A,0,[0,[0,v_0,yo(Y[2][1])],0])}function Na(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:return ho([0,D,A[1]]);case 1:return Bv([0,D,A[1]]);case 2:return ja([0,D,A[1]]);case 3:var f0=A[1],k0=f0[2];return X(T_0,D,k0,[0,[0,b_0,G0(f0[1])],0]);default:var R0=A[1];return X(A_0,D,0,[0,[0,S_0,Jx(R0[1])],[0,[0,E_0,Jx(R0[2])],0]])}}function yo(Y){switch(Y[0]){case 0:return Ps(Y[1]);case 1:return yl(Y[1]);default:return Ca(Y[1])}}function go(Y){if(Y[0]===0){var A=Y[1];return b2([0,A[1],A[2]])}var D=Y[1];return ja([0,D[1],D[2]])}function ja(Y){var A=Y[2],D=A[1],f0=Y[1],k0=A[2],R0=D?G0(D[1]):X(g_0,[0,f0[1],[0,f0[2][1],f0[2][2]+1|0],[0,f0[3][1],f0[3][2]-1|0]],0,0);return X(__0,f0,w2(k0),[0,[0,w_0,R0],0])}function Ca(Y){var A=Y[2],D=A[1],f0=A[2],k0=Y[1],R0=D[0]===0?Ps(D[1]):Ca(D[1]);return X(N_0,k0,0,[0,[0,I_0,R0],[0,[0,P_0,Ps(f0)],0]])}function yl(Y){var A=Y[2],D=A[1],f0=Y[1],k0=[0,[0,j_0,Ps(A[2])],0];return X(O_0,f0,0,[0,[0,C_0,Ps(D)],k0])}function Ps(Y){var A=Y[2];return X(F_0,Y[1],A[2],[0,[0,D_0,Jx(A[1])],0])}function Yh(Y){var A=Y[2],D=A[2],f0=A[1],k0=Y[1],R0=p0(D?D[1]:f0);return X(M_0,k0,0,[0,[0,L_0,p0(f0)],[0,[0,R_0,R0],0]])}function wo(Y){return pr(T4,Y)}function T4(Y){var A=Y[2],D=Y[1];if(A[1])var f0=A[2],k0=G_0;else var f0=A[2],k0=W_0;return X(k0,D,0,[0,[0,V_0,Jx(f0)],0])}function _o(Y){var A=Y[2],D=A[1],f0=A[2],k0=Y[1];if(D)var R0=[0,[0,$_0,G0(D[1])],0],Q0=Q_0;else var R0=0,Q0=H_0;return X(Q0,k0,f0,R0)}function gl(Y){var A=Y[2],D=Y[1],f0=[0,[0,Z_0,bx(Y[3])],0],k0=[0,[0,xb0,gx(Gt,A)],f0];return[0,[0,rb0,G0(D)],k0]}function E4(Y){var A=Y[2],D=Y[1];switch(A[0]){case 0:var f0=0,k0=p0(A[1]);break;case 1:var f0=0,k0=Fx(A[1]);break;default:var f0=1,k0=G0(A[1])}return[0,[0,nb0,G0(D)],[0,[0,tb0,k0],[0,[0,eb0,!!f0],0]]]}var bo=T0[2],S4=bo[2],zh=bo[4],Kh=bo[3],Jh=T0[1],Gh=Gx(bo[1]),A4=[0,[0,c60,Gh],[0,[0,f60,wo(zh)],0]];if(S4)var P4=S4[1],I4=Mx(A4,[0,[0,o60,X(a60,P4[1],0,[0,[0,s60,Jx(P4[2])],0])],0]);else var I4=A4;var wl=X(v60,Jh,Kh,I4);return wl.errors=pr(function(Y){var A=Y[1],D=[0,[0,ub0,Jx(mE0(Y[2]))],0];return _s([0,[0,ib0,JY(A)],D])},Mx(s0,zY[1])),T&&(wl[GO]=$2(c5(function(Y){var A=Y[2],D=Y[1],f0=Y[3],k0=[0,[0,so0,Jx(Yj(A))],0],R0=[0,oh(U,D[3]),0],Q0=[0,[0,ao0,$2([0,oh(U,D[2]),R0])],k0],mx=[0,[0,lo0,_s([0,[0,vo0,D[3][1]],[0,[0,oo0,D[3][2]],0]])],0],Ix=[0,[0,ho0,_s([0,[0,mo0,_s([0,[0,ko0,D[2][1]],[0,[0,po0,D[2][2]],0]])],mx])],Q0];switch(f0){case 0:var Rx=do0;break;case 1:var Rx=yo0;break;case 2:var Rx=go0;break;case 3:var Rx=wo0;break;case 4:var Rx=_o0;break;default:var Rx=bo0}return _s([0,[0,Eo0,Jx(IU(A))],[0,[0,To0,Jx(Rx)],Ix]])},F[1]))),wl}if(typeof fO<\"u\")var GY=fO;else{var WY={};ba.flow=WY;var GY=WY}GY.parse=Hz(function(x,r){try{var e=bE0(x,r);return e}catch(u){var t=U2(u);return t[1]===xO?YY(t[2]):YY(new wE0(Jx(qx(bb0,B6(t)))))}}),VN(O)})(globalThis)});var pO={};HY(pO,{parsers:()=>lO});var lO={};HY(lO,{flow:()=>oS0});var hz=ME0(ZY(),1);function qE0(o0,vx){let $x=new SyntaxError(o0+\" (\"+vx.loc.start.line+\":\"+vx.loc.start.column+\")\");return Object.assign($x,vx)}var xz=qE0;var UE0=(o0,vx,$x)=>{if(!(o0&&vx==null))return Array.isArray(vx)||typeof vx==\"string\"?vx[$x<0?vx.length+$x:$x]:vx.at($x)},cO=UE0;function BE0(o0){return Array.isArray(o0)&&o0.length>0}var rz=BE0;function Ht(o0){var Pr,lr,Ir;let vx=((Pr=o0.range)==null?void 0:Pr[0])??o0.start,$x=(Ir=((lr=o0.declaration)==null?void 0:lr.decorators)??o0.decorators)==null?void 0:Ir[0];return $x?Math.min(Ht($x),vx):vx}function La(o0){var vx;return((vx=o0.range)==null?void 0:vx[1])??o0.end}function XE0(o0){let vx=new Set(o0);return $x=>vx.has($x==null?void 0:$x.type)}var ez=XE0;var YE0=ez([\"Block\",\"CommentBlock\",\"MultiLine\"]),C4=YE0;function zE0(o0){let vx=`*${o0.value}*`.split(`\n`);return vx.length>1&&vx.every($x=>$x.trimStart()[0]===\"*\")}var sO=zE0;function KE0(o0){return C4(o0)&&o0.value[0]===\"*\"&&/@(?:type|satisfies)\\b/u.test(o0.value)}var tz=KE0;var O4=null;function D4(o0){if(O4!==null&&typeof O4.property){let vx=O4;return O4=D4.prototype=null,vx}return O4=D4.prototype=o0??Object.create(null),new D4}var JE0=10;for(let o0=0;o0<=JE0;o0++)D4();function aO(o0){return D4(o0)}function GE0(o0,vx=\"type\"){aO(o0);function $x(Pr){let lr=Pr[vx],Ir=o0[lr];if(!Array.isArray(Ir))throw Object.assign(new Error(`Missing visitor keys for '${lr}'.`),{node:Pr});return Ir}return $x}var nz=GE0;var uz={ArrayExpression:[\"elements\"],AssignmentExpression:[\"left\",\"right\"],BinaryExpression:[\"left\",\"right\"],InterpreterDirective:[],Directive:[\"value\"],DirectiveLiteral:[],BlockStatement:[\"directives\",\"body\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],CatchClause:[\"param\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExpressionStatement:[\"expression\"],File:[\"program\"],ForInStatement:[\"left\",\"right\",\"body\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"typeAnnotation\",\"decorators\"],IfStatement:[\"test\",\"consequent\",\"alternate\"],LabeledStatement:[\"label\",\"body\"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],NewExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],Program:[\"directives\",\"body\"],ObjectExpression:[\"properties\"],ObjectMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectProperty:[\"key\",\"value\",\"decorators\"],RestElement:[\"argument\",\"typeAnnotation\",\"decorators\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],ParenthesizedExpression:[\"expression\"],SwitchCase:[\"test\",\"consequent\"],SwitchStatement:[\"discriminant\",\"cases\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],AssignmentPattern:[\"left\",\"right\",\"decorators\",\"typeAnnotation\"],ArrayPattern:[\"elements\",\"typeAnnotation\",\"decorators\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],ClassBody:[\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ExportAllDeclaration:[\"source\",\"attributes\",\"exported\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],ExportSpecifier:[\"local\",\"exported\"],ForOfStatement:[\"left\",\"right\",\"body\"],ImportDeclaration:[\"specifiers\",\"source\",\"attributes\"],ImportDefaultSpecifier:[\"local\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],ImportExpression:[\"source\",\"options\"],MetaProperty:[\"meta\",\"property\"],ClassMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectPattern:[\"properties\",\"typeAnnotation\",\"decorators\"],SpreadElement:[\"argument\"],Super:[],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\",\"typeArguments\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],YieldExpression:[\"argument\"],AwaitExpression:[\"argument\"],BigIntLiteral:[],ExportNamespaceSpecifier:[\"exported\"],OptionalMemberExpression:[\"object\",\"property\"],OptionalCallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],ClassProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],ClassPrivateProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassPrivateMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],PrivateName:[\"id\"],StaticBlock:[\"body\"],AnyTypeAnnotation:[],ArrayTypeAnnotation:[\"elementType\"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:[\"id\",\"typeParameters\"],DeclareClass:[\"id\",\"typeParameters\",\"extends\",\"mixins\",\"implements\",\"body\"],DeclareFunction:[\"id\",\"predicate\"],DeclareInterface:[\"id\",\"typeParameters\",\"extends\",\"body\"],DeclareModule:[\"id\",\"body\"],DeclareModuleExports:[\"typeAnnotation\"],DeclareTypeAlias:[\"id\",\"typeParameters\",\"right\"],DeclareOpaqueType:[\"id\",\"typeParameters\",\"supertype\"],DeclareVariable:[\"id\"],DeclareExportDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],DeclareExportAllDeclaration:[\"source\",\"attributes\"],DeclaredPredicate:[\"value\"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:[\"typeParameters\",\"params\",\"rest\",\"returnType\",\"this\"],FunctionTypeParam:[\"name\",\"typeAnnotation\"],GenericTypeAnnotation:[\"id\",\"typeParameters\"],InferredPredicate:[],InterfaceExtends:[\"id\",\"typeParameters\"],InterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],InterfaceTypeAnnotation:[\"extends\",\"body\"],IntersectionTypeAnnotation:[\"types\"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:[\"typeAnnotation\"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:[\"properties\",\"indexers\",\"callProperties\",\"internalSlots\"],ObjectTypeInternalSlot:[\"id\",\"value\"],ObjectTypeCallProperty:[\"value\"],ObjectTypeIndexer:[\"variance\",\"id\",\"key\",\"value\"],ObjectTypeProperty:[\"key\",\"value\",\"variance\"],ObjectTypeSpreadProperty:[\"argument\"],OpaqueType:[\"id\",\"typeParameters\",\"supertype\",\"impltype\"],QualifiedTypeIdentifier:[\"qualification\",\"id\"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:[\"types\",\"elementTypes\"],TypeofTypeAnnotation:[\"argument\",\"typeArguments\"],TypeAlias:[\"id\",\"typeParameters\",\"right\"],TypeAnnotation:[\"typeAnnotation\"],TypeCastExpression:[\"expression\",\"typeAnnotation\"],TypeParameter:[\"bound\",\"default\",\"variance\"],TypeParameterDeclaration:[\"params\"],TypeParameterInstantiation:[\"params\"],UnionTypeAnnotation:[\"types\"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:[\"id\",\"body\"],EnumBooleanBody:[\"members\"],EnumNumberBody:[\"members\"],EnumStringBody:[\"members\"],EnumSymbolBody:[\"members\"],EnumBooleanMember:[\"id\",\"init\"],EnumNumberMember:[\"id\",\"init\"],EnumStringMember:[\"id\",\"init\"],EnumDefaultedMember:[\"id\"],IndexedAccessType:[\"objectType\",\"indexType\"],OptionalIndexedAccessType:[\"objectType\",\"indexType\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXSpreadChild:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\",\"typeArguments\",\"typeParameters\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:[\"object\",\"callee\"],ImportAttribute:[\"key\",\"value\"],Decorator:[\"expression\"],DoExpression:[\"body\"],ExportDefaultSpecifier:[\"exported\"],RecordExpression:[\"properties\"],TupleExpression:[\"elements\"],ModuleExpression:[\"body\"],TopicReference:[],PipelineTopicExpression:[\"expression\"],PipelineBareFunction:[\"callee\"],PipelinePrimaryTopicReference:[],TSParameterProperty:[\"parameter\",\"decorators\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\"],TSQualifiedName:[\"left\",\"right\"],TSCallSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSPropertySignature:[\"key\",\"typeAnnotation\"],TSMethodSignature:[\"key\",\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructorType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSTypeReference:[\"typeName\",\"typeParameters\",\"typeArguments\"],TSTypePredicate:[\"parameterName\",\"typeAnnotation\"],TSTypeQuery:[\"exprName\",\"typeParameters\",\"typeArguments\"],TSTypeLiteral:[\"members\"],TSArrayType:[\"elementType\"],TSTupleType:[\"elementTypes\"],TSOptionalType:[\"typeAnnotation\"],TSRestType:[\"typeAnnotation\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSUnionType:[\"types\"],TSIntersectionType:[\"types\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSInferType:[\"typeParameter\"],TSParenthesizedType:[\"typeAnnotation\"],TSTypeOperator:[\"typeAnnotation\"],TSIndexedAccessType:[\"objectType\",\"indexType\"],TSMappedType:[\"typeParameter\",\"nameType\",\"typeAnnotation\"],TSLiteralType:[\"literal\"],TSExpressionWithTypeArguments:[\"expression\",\"typeParameters\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceBody:[\"body\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSInstantiationExpression:[\"expression\",\"typeParameters\",\"typeArguments\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSSatisfiesExpression:[\"expression\",\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSModuleDeclaration:[\"id\",\"body\"],TSModuleBlock:[\"body\"],TSImportType:[\"argument\",\"qualifier\",\"typeParameters\",\"typeArguments\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSExternalModuleReference:[\"expression\"],TSNonNullExpression:[\"expression\"],TSExportAssignment:[\"expression\"],TSNamespaceExportDeclaration:[\"id\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeParameterInstantiation:[\"params\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameter:[\"constraint\",\"default\",\"name\"],ChainExpression:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],Literal:[],MethodDefinition:[\"decorators\",\"key\",\"value\"],PrivateIdentifier:[],Property:[\"key\",\"value\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],AccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],TSAbstractAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAsyncKeyword:[],TSClassImplements:[\"expression\",\"typeArguments\",\"typeParameters\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumBody:[\"members\"],TSExportKeyword:[],TSInterfaceHeritage:[\"expression\",\"typeArguments\",\"typeParameters\"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],AsConstExpression:[\"expression\"],AsExpression:[\"expression\",\"typeAnnotation\"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"rendersType\"],ComponentParameter:[\"name\",\"local\"],ComponentTypeAnnotation:[\"params\",\"rest\",\"typeParameters\",\"rendersType\"],ComponentTypeParameter:[\"name\",\"typeAnnotation\"],ConditionalTypeAnnotation:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],DeclareComponent:[\"id\",\"params\",\"rest\",\"typeParameters\",\"rendersType\"],DeclareEnum:[\"id\",\"body\"],DeclareHook:[\"id\"],DeclareNamespace:[\"id\",\"body\"],EnumBigIntBody:[\"members\"],EnumBigIntMember:[\"id\",\"init\"],HookDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"returnType\"],HookTypeAnnotation:[\"params\",\"returnType\",\"rest\",\"typeParameters\"],InferTypeAnnotation:[\"typeParameter\"],KeyofTypeAnnotation:[\"argument\"],ObjectTypeMappedTypeProperty:[\"keyTparam\",\"propType\",\"sourceType\",\"variance\"],QualifiedTypeofIdentifier:[\"qualification\",\"id\"],TupleTypeLabeledElement:[\"label\",\"elementType\",\"variance\"],TupleTypeSpreadElement:[\"label\",\"typeAnnotation\"],TypeOperator:[\"typeAnnotation\"],TypePredicate:[\"parameterName\",\"typeAnnotation\",\"asserts\"],NGRoot:[\"node\"],NGPipeExpression:[\"left\",\"right\",\"arguments\"],NGChainedExpression:[\"expressions\"],NGEmptyExpression:[],NGMicrosyntax:[\"body\"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:[\"expression\",\"alias\"],NGMicrosyntaxKeyedExpression:[\"key\",\"expression\"],NGMicrosyntaxLet:[\"key\",\"value\"],NGMicrosyntaxAs:[\"key\",\"alias\"],JsExpressionRoot:[\"node\"],JsonRoot:[\"node\"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:[\"typeAnnotation\"],TSJSDocNonNullableType:[\"typeAnnotation\"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:[\"expression\",\"typeAnnotation\"]};var WE0=nz(uz),iz=WE0;function oO(o0,vx){if(!(o0!==null&&typeof o0==\"object\"))return o0;if(Array.isArray(o0)){for(let Pr=0;Pr{var L2;(L2=Ir.leadingComments)!=null&&L2.some(tz)&&lr.add(Ht(Ir))}),o0=td(o0,Ir=>{if(Ir.type===\"ParenthesizedExpression\"){let{expression:L2}=Ir;if(L2.type===\"TypeCastExpression\")return L2.range=[...Ir.range],L2;let ne=Ht(Ir);if(!lr.has(ne))return L2.extra={...L2.extra,parenthesized:!0},L2}})}if(o0=td(o0,lr=>{switch(lr.type){case\"LogicalExpression\":if(fz(lr))return vO(lr);break;case\"VariableDeclaration\":{let Ir=cO(!1,lr.declarations,-1);Ir!=null&&Ir.init&&Pr[La(Ir)]!==\";\"&&(lr.range=[Ht(lr),La(Ir)]);break}case\"TSParenthesizedType\":return lr.typeAnnotation;case\"TSTypeParameter\":if(typeof lr.name==\"string\"){let Ir=Ht(lr);lr.name={type:\"Identifier\",name:lr.name,range:[Ir,Ir+lr.name.length]}}break;case\"TopicReference\":o0.extra={...o0.extra,__isUsingHackPipeline:!0};break;case\"TSUnionType\":case\"TSIntersectionType\":if(lr.types.length===1)return lr.types[0];break}}),rz(o0.comments)){let lr=cO(!1,o0.comments,-1);for(let Ir=o0.comments.length-2;Ir>=0;Ir--){let L2=o0.comments[Ir];La(L2)===Ht(lr)&&C4(L2)&&C4(lr)&&sO(L2)&&sO(lr)&&(o0.comments.splice(Ir+1,1),L2.value+=\"*//*\"+lr.value,L2.range=[Ht(L2),La(lr)]),lr=L2}}return o0.type===\"Program\"&&(o0.range=[0,Pr.length]),o0}function fz(o0){return o0.type===\"LogicalExpression\"&&o0.right.type===\"LogicalExpression\"&&o0.operator===o0.right.operator}function vO(o0){return fz(o0)?vO({type:\"LogicalExpression\",operator:o0.operator,left:vO({type:\"LogicalExpression\",operator:o0.operator,left:o0.left,right:o0.right.left,range:[Ht(o0.left),La(o0.right.left)]}),right:o0.right.right,range:[Ht(o0),La(o0)]}):o0}var cz=VE0;var $E0=(o0,vx,$x,Pr)=>{if(!(o0&&vx==null))return vx.replaceAll?vx.replaceAll($x,Pr):$x.global?vx.replace($x,Pr):vx.split($x).join(Pr)},Dl=$E0;var QE0=/\\*\\/$/,HE0=/^\\/\\*\\*?/,ZE0=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,xS0=/(^|\\s+)\\/\\/([^\\n\\r]*)/g,sz=/^(\\r?\\n)+/,rS0=/(?:^|\\r?\\n) *(@[^\\n\\r]*?) *\\r?\\n *(?![^\\n\\r@]*\\/\\/[^]*)([^\\s@][^\\n\\r@]+?) *\\r?\\n/g,az=/(?:^|\\r?\\n) *@(\\S+) *([^\\n\\r]*)/g,eS0=/(\\r?\\n|^) *\\* ?/g,tS0=[];function oz(o0){let vx=o0.match(ZE0);return vx?vx[0].trimStart():\"\"}function vz(o0){let vx=`\n`;o0=Dl(!1,o0.replace(HE0,\"\").replace(QE0,\"\"),eS0,\"$1\");let $x=\"\";for(;$x!==o0;)$x=o0,o0=Dl(!1,o0,rS0,`${vx}$1 $2${vx}`);o0=o0.replace(sz,\"\").trimEnd();let Pr=Object.create(null),lr=Dl(!1,o0,az,\"\").replace(sz,\"\").trimEnd(),Ir;for(;Ir=az.exec(o0);){let L2=Dl(!1,Ir[2],xS0,\"\");if(typeof Pr[Ir[1]]==\"string\"||Array.isArray(Pr[Ir[1]])){let ne=Pr[Ir[1]];Pr[Ir[1]]=[...tS0,...Array.isArray(ne)?ne:[ne],L2]}else Pr[Ir[1]]=L2}return{comments:lr,pragmas:Pr}}function nS0(o0){if(!o0.startsWith(\"#!\"))return\"\";let vx=o0.indexOf(`\n`);return vx===-1?o0:o0.slice(0,vx)}var lz=nS0;function uS0(o0){let vx=lz(o0);vx&&(o0=o0.slice(vx.length+1));let $x=oz(o0),{pragmas:Pr,comments:lr}=vz($x);return{shebang:vx,text:o0,pragmas:Pr,comments:lr}}function pz(o0){let{pragmas:vx}=uS0(o0);return Object.prototype.hasOwnProperty.call(vx,\"prettier\")||Object.prototype.hasOwnProperty.call(vx,\"format\")}function iS0(o0){return o0=typeof o0==\"function\"?{parse:o0}:o0,{astFormat:\"estree\",hasPragma:pz,locStart:Ht,locEnd:La,...o0}}var kz=iS0;function fS0(o0){return o0.charAt(0)===\"#\"&&o0.charAt(1)===\"!\"?\"//\"+o0.slice(2):o0}var mz=fS0;var cS0={comments:!1,components:!0,enums:!0,esproposal_decorators:!0,esproposal_export_star_as:!0,tokens:!0};function sS0(o0){let{message:vx,loc:{start:$x,end:Pr}}=o0;return xz(vx,{loc:{start:{line:$x.line,column:$x.column+1},end:{line:Pr.line,column:Pr.column+1}},cause:o0})}function aS0(o0){let vx=hz.default.parse(mz(o0),cS0),[$x]=vx.errors;if($x)throw sS0($x);return cz(vx,{text:o0})}var oS0=kz(aS0);var lA0=pO;export{lA0 as default,lO as parsers};\n", "var Br=Object.defineProperty;var Ir=e=>{throw TypeError(e)};var jn=(e,t,r)=>t in e?Br(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ue=(e,t)=>{for(var r in t)Br(e,r,{get:t[r],enumerable:!0})};var Me=(e,t,r)=>jn(e,typeof t!=\"symbol\"?t+\"\":t,r),Rr=(e,t,r)=>t.has(e)||Ir(\"Cannot \"+r);var I=(e,t,r)=>(Rr(e,t,\"read from private field\"),r?r.call(e):t.get(e)),Pt=(e,t,r)=>t.has(e)?Ir(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,r),J=(e,t,r,n)=>(Rr(e,t,\"write to private field\"),n?n.call(e,r):t.set(e,r),r);var Pr={};Ue(Pr,{languages:()=>mn,parsers:()=>Ar,printers:()=>vi});var Qn=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ze=Qn;var Mt=\"string\",zt=\"array\",Yt=\"cursor\",Lt=\"indent\",Dt=\"align\",Gt=\"trim\",_t=\"group\",Ot=\"fill\",Bt=\"if-break\",Kt=\"indent-if-break\",Wt=\"line-suffix\",jt=\"line-suffix-boundary\",$=\"line\",Qt=\"label\",It=\"break-parent\",me=new Set([Yt,Lt,Dt,Gt,_t,Ot,Bt,Kt,Wt,jt,$,Qt,It]);function Jn(e){if(typeof e==\"string\")return Mt;if(Array.isArray(e))return zt;if(!e)return;let{type:t}=e;if(me.has(t))return t}var Jt=Jn;var $n=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function Xn(e){let t=e===null?\"null\":typeof e;if(t!==\"string\"&&t!==\"object\")return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(Jt(e))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(e);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=$n([...me].map(s=>`'${s}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var Ye=class extends Error{name=\"InvalidDocError\";constructor(t){super(Xn(t)),this.doc=t}},Ge=Ye;var qr=()=>{},dt=qr,de=qr;function B(e){return dt(e),{type:Lt,contents:e}}function Zn(e,t){return dt(t),{type:Dt,contents:t,n:e}}function R(e,t={}){return dt(e),de(t.expandedStates,!0),{type:_t,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function Ke(e){return Zn(-1,e)}function We(e){return de(e),{type:Ot,parts:e}}function je(e,t=\"\",r={}){return dt(e),t!==\"\"&&dt(t),{type:Bt,breakContents:e,flatContents:t,groupId:r.groupId}}var Vr={type:It};var ts={type:$,hard:!0},es={type:$,hard:!0,literal:!0},L={type:$},M={type:$,soft:!0},gt=[ts,Vr],Hr=[es,Vr];function bt(e,t){dt(e),de(t);let r=[];for(let n=0;n{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[r<0?t.length+r:r]:t.at(r)},it=rs;function ns(e,t){if(typeof e==\"string\")return t(e);let r=new Map;return n(e);function n(i){if(r.has(i))return r.get(i);let a=s(i);return r.set(i,a),a}function s(i){switch(Jt(i)){case zt:return t(i.map(n));case Ot:return t({...i,parts:i.parts.map(n)});case Bt:return t({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case _t:{let{expandedStates:a,contents:o}=i;return a?(a=a.map(n),o=a[0]):o=n(o),t({...i,contents:o,expandedStates:a})}case Dt:case Lt:case Kt:case Qt:case Wt:return t({...i,contents:n(i.contents)});case Mt:case Yt:case Gt:case jt:case $:case It:return t(i);default:throw new Ge(i)}}}function Fr(e,t=Hr){return ns(e,r=>typeof r==\"string\"?bt(t,r.split(`\n`)):r)}var ge=\"'\",Ur='\"';function ss(e,t){let r=t===!0||t===ge?ge:Ur,n=r===ge?Ur:ge,s=0,i=0;for(let a of e)a===r?s++:a===n&&i++;return s>i?n:r}var be=ss;function Qe(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var U,Je=class{constructor(t){Pt(this,U);J(this,U,new Set(t))}getLeadingWhitespaceCount(t){let r=I(this,U),n=0;for(let s=0;s=0&&r.has(t.charAt(s));s--)n++;return n}getLeadingWhitespace(t){let r=this.getLeadingWhitespaceCount(t);return t.slice(0,r)}getTrailingWhitespace(t){let r=this.getTrailingWhitespaceCount(t);return t.slice(t.length-r)}hasLeadingWhitespace(t){return I(this,U).has(t.charAt(0))}hasTrailingWhitespace(t){return I(this,U).has(it(!1,t,-1))}trimStart(t){let r=this.getLeadingWhitespaceCount(t);return t.slice(r)}trimEnd(t){let r=this.getTrailingWhitespaceCount(t);return t.slice(0,t.length-r)}trim(t){return this.trimEnd(this.trimStart(t))}split(t,r=!1){let n=`[${Qe([...I(this,U)].join(\"\"))}]+`,s=new RegExp(r?`(${n})`:n,\"u\");return t.split(s)}hasWhitespaceCharacter(t){let r=I(this,U);return Array.prototype.some.call(t,n=>r.has(n))}hasNonWhitespaceCharacter(t){let r=I(this,U);return Array.prototype.some.call(t,n=>!r.has(n))}isWhitespaceOnly(t){let r=I(this,U);return Array.prototype.every.call(t,n=>r.has(n))}};U=new WeakMap;var Mr=Je;var is=[\"\t\",`\n`,\"\\f\",\"\\r\",\" \"],as=new Mr(is),z=as;function os(e){return Array.isArray(e)&&e.length>0}var $t=os;var $e=class extends Error{name=\"UnexpectedNodeError\";constructor(t,r,n=\"type\"){super(`Unexpected ${r} node ${n}: ${JSON.stringify(t[n])}.`),this.node=t}},zr=$e;function Yr(e,t){if(e.type===\"TextNode\"){let r=e.chars.trim();if(!r)return null;t.chars=z.split(r).join(\" \")}e.type===\"ElementNode\"&&(delete t.startTag,delete t.openTag,delete t.parts,delete t.endTag,delete t.closeTag,delete t.nameNode,delete t.body,delete t.blockParamNodes,delete t.params,delete t.path),e.type===\"Block\"&&(delete t.blockParamNodes,delete t.params),e.type===\"AttrNode\"&&e.name.toLowerCase()===\"class\"&&delete t.value,e.type===\"PathExpression\"&&(t.head=e.head.original)}Yr.ignoredProperties=new Set([\"loc\",\"selfClosing\"]);var Gr=Yr;var Xt=null;function Zt(e){if(Xt!==null&&typeof Xt.property){let t=Xt;return Xt=Zt.prototype=null,t}return Xt=Zt.prototype=e??Object.create(null),new Zt}var ls=10;for(let e=0;e<=ls;e++)Zt();function Xe(e){return Zt(e)}function cs(e,t=\"type\"){Xe(e);function r(n){let s=n[t],i=e[s];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:n});return i}return r}var Kr=cs;var Wr={Template:[\"body\"],Block:[\"body\"],MustacheStatement:[\"path\",\"params\",\"hash\"],BlockStatement:[\"path\",\"params\",\"hash\",\"program\",\"inverse\"],ElementModifierStatement:[\"path\",\"params\",\"hash\"],CommentStatement:[],MustacheCommentStatement:[],ElementNode:[\"attributes\",\"modifiers\",\"children\",\"comments\"],AttrNode:[\"value\"],TextNode:[],ConcatStatement:[\"parts\"],SubExpression:[\"path\",\"params\",\"hash\"],PathExpression:[],StringLiteral:[],BooleanLiteral:[],NumberLiteral:[],NullLiteral:[],UndefinedLiteral:[],Hash:[\"pairs\"],HashPair:[\"value\"]};var us=Kr(Wr),jr=us;function yt(e){return e.loc.start.offset}function te(e){return e.loc.end.offset}var Qr=new Set([\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]);function $r(e){return e.toUpperCase()===e}function hs(e){return e.type===\"ElementNode\"&&typeof e.tag==\"string\"&&!e.tag.startsWith(\":\")&&($r(e.tag[0])||e.tag.includes(\".\"))}function ps(e){return Qr.has(e.toLowerCase())&&!$r(e[0])}function Ze(e){return e.selfClosing===!0||ps(e.tag)||hs(e)&&e.children.every(t=>ye(t))}function ye(e){return e.type===\"TextNode\"&&!/\\S/u.test(e.chars)}function Jr(e){return(e==null?void 0:e.type)===\"MustacheCommentStatement\"&&typeof e.value==\"string\"&&e.value.trim()===\"prettier-ignore\"}function Xr(e){return Jr(e.node)||e.isInArray&&(e.key===\"children\"||e.key===\"body\"||e.key===\"parts\")&&Jr(e.siblings[e.index-2])}var on=2;function fs(e,t,r){var s,i,a,o,c,h,p,m,v;let{node:n}=e;switch(n.type){case\"Block\":case\"Program\":case\"Template\":return R(e.map(r,\"body\"));case\"ElementNode\":{let g=R(ds(e,r)),E=t.htmlWhitespaceSensitivity===\"ignore\"&&((s=e.next)==null?void 0:s.type)===\"ElementNode\"?M:\"\";if(Ze(n))return[g,E];let N=[\"\"];return n.children.length===0?[g,B(N),E]:t.htmlWhitespaceSensitivity===\"ignore\"?[g,B(Zr(e,t,r)),gt,B(N),E]:[g,B(R(Zr(e,t,r))),B(N),E]}case\"BlockStatement\":return vs(e)?[Es(e,r),rn(e,r,t),nn(e,r,t)]:[ks(e,r),R([rn(e,r,t),nn(e,r,t),ws(e,r,t)])];case\"ElementModifierStatement\":return R([\"{{\",an(e,r),\"}}\"]);case\"MustacheStatement\":return R([ke(n),an(e,r),Se(n)]);case\"SubExpression\":return R([\"(\",Ls(e,r),M,\")\"]);case\"AttrNode\":{let{name:g,value:E}=n,N=E.type===\"TextNode\";if(N&&E.chars===\"\"&&yt(E)===te(E))return g;let w=N?be(E.chars,t.singleQuote):E.type===\"ConcatStatement\"?be(E.parts.map(q=>q.type===\"TextNode\"?q.chars:\"\").join(\"\"),t.singleQuote):\"\",Z=r(\"value\");return[g,\"=\",w,g===\"class\"&&w?R(B(Z)):Z,w]}case\"ConcatStatement\":return e.map(r,\"parts\");case\"Hash\":return bt(L,e.map(r,\"pairs\"));case\"HashPair\":return[n.key,\"=\",r(\"value\")];case\"TextNode\":{let g=ze(!1,n.chars,\"{{\",String.raw`\\{{`),E=Cs(e);if(E){if(E===\"class\"){let j=g.trim().split(/\\s+/u).join(\" \"),tt=!1,V=!1;return e.parent.type===\"ConcatStatement\"&&(((i=e.previous)==null?void 0:i.type)===\"MustacheStatement\"&&/^\\s/u.test(g)&&(tt=!0),((a=e.next)==null?void 0:a.type)===\"MustacheStatement\"&&/\\s$/u.test(g)&&j!==\"\"&&(V=!0)),[tt?L:\"\",j,V?L:\"\"]}return Fr(g)}let N=z.isWhitespaceOnly(g),{isFirst:x,isLast:w}=e;if(t.htmlWhitespaceSensitivity!==\"ignore\"){let j=w&&e.parent.type===\"Template\",tt=x&&e.parent.type===\"Template\";if(N){if(tt||j)return\"\";let P=[L],rt=Rt(g);return rt&&(P=ee(rt)),w&&(P=P.map(he=>Ke(he))),P}let V=z.getLeadingWhitespace(g),Nt=[];if(V){Nt=[L];let P=Rt(V);P&&(Nt=ee(P)),g=g.slice(V.length)}let H=z.getTrailingWhitespace(g),et=[];if(H){if(!j){et=[L];let P=Rt(H);P&&(et=ee(P)),w&&(et=et.map(rt=>Ke(rt)))}g=g.slice(0,-H.length)}return[...Nt,We(sn(g)),...et]}let Z=Rt(g),q=Ns(g),W=xs(g);if((x||w)&&N&&(e.parent.type===\"Block\"||e.parent.type===\"ElementNode\"||e.parent.type===\"Template\"))return\"\";N&&Z?(q=Math.min(Z,on),W=0):((((o=e.next)==null?void 0:o.type)===\"BlockStatement\"||((c=e.next)==null?void 0:c.type)===\"ElementNode\")&&(W=Math.max(W,1)),(((h=e.previous)==null?void 0:h.type)===\"BlockStatement\"||((p=e.previous)==null?void 0:p.type)===\"ElementNode\")&&(q=Math.max(q,1)));let Tt=\"\",Ct=\"\";return W===0&&((m=e.next)==null?void 0:m.type)===\"MustacheStatement\"&&(Ct=\" \"),q===0&&((v=e.previous)==null?void 0:v.type)===\"MustacheStatement\"&&(Tt=\" \"),x&&(q=0,Tt=\"\"),w&&(W=0,Ct=\"\"),z.hasLeadingWhitespace(g)&&(g=Tt+z.trimStart(g)),z.hasTrailingWhitespace(g)&&(g=z.trimEnd(g)+Ct),[...ee(q),We(sn(g)),...ee(W)]}case\"MustacheCommentStatement\":{let g=yt(n),E=te(n),N=t.originalText.charAt(g+2)===\"~\",x=t.originalText.charAt(E-3)===\"~\",w=n.value.includes(\"}}\")?\"--\":\"\";return[\"{{\",N?\"~\":\"\",\"!\",w,n.value,w,x?\"~\":\"\",\"}}\"]}case\"PathExpression\":return Bs(n);case\"BooleanLiteral\":return String(n.value);case\"CommentStatement\":return[\"\"];case\"StringLiteral\":return As(e,t);case\"NumberLiteral\":return String(n.value);case\"UndefinedLiteral\":return\"undefined\";case\"NullLiteral\":return\"null\";case\"AtHead\":case\"VarHead\":case\"ThisHead\":default:throw new zr(n,\"Handlebars\")}}function ms(e,t){return yt(e)-yt(t)}function ds(e,t){let{node:r}=e,n=[\"attributes\",\"modifiers\",\"comments\"].filter(i=>$t(r[i])),s=n.flatMap(i=>r[i]).sort(ms);for(let i of n)e.each(({node:a})=>{let o=s.indexOf(a);s.splice(o,1,[L,t()])},i);return $t(r.blockParams)&&s.push(L,er(r)),[\"<\",r.tag,B(s),gs(r)]}function Zr(e,t,r){let{node:n}=e,s=n.children.every(i=>ye(i));return t.htmlWhitespaceSensitivity===\"ignore\"&&s?\"\":e.map(({isFirst:i})=>{let a=r();return i&&t.htmlWhitespaceSensitivity===\"ignore\"?[M,a]:a},\"children\")}function gs(e){return Ze(e)?je([M,\"/>\"],[\" />\",M]):je([M,\">\"],\">\")}function ke(e){var n;let t=e.trusting?\"{{{\":\"{{\",r=(n=e.strip)!=null&&n.open?\"~\":\"\";return[t,r]}function Se(e){var n;let t=e.trusting?\"}}}\":\"}}\";return[(n=e.strip)!=null&&n.close?\"~\":\"\",t]}function bs(e){let t=ke(e),r=e.openStrip.open?\"~\":\"\";return[t,r,\"#\"]}function ys(e){let t=Se(e);return[e.openStrip.close?\"~\":\"\",t]}function tn(e){let t=ke(e),r=e.closeStrip.open?\"~\":\"\";return[t,r,\"/\"]}function en(e){let t=Se(e);return[e.closeStrip.close?\"~\":\"\",t]}function ln(e){let t=ke(e),r=e.inverseStrip.open?\"~\":\"\";return[t,r]}function cn(e){let t=Se(e);return[e.inverseStrip.close?\"~\":\"\",t]}function ks(e,t){let{node:r}=e,n=[],s=ve(e,t);return s&&n.push(R(s)),$t(r.program.blockParams)&&n.push(er(r.program)),R([bs(r),tr(e,t),n.length>0?B([L,bt(L,n)]):\"\",M,ys(r)])}function Ss(e,t){return[t.htmlWhitespaceSensitivity===\"ignore\"?gt:\"\",ln(e),\"else\",cn(e)]}var un=(e,t)=>e.head.type===\"VarHead\"&&t.head.type===\"VarHead\"&&e.head.name===t.head.name;function vs(e){var n;let{grandparent:t,node:r}=e;return((n=t==null?void 0:t.inverse)==null?void 0:n.body.length)===1&&t.inverse.body[0]===r&&un(t.inverse.body[0].path,t.path)}function Es(e,t){let{node:r,grandparent:n}=e;return R([ln(n),[\"else\",\" \",n.inverse.body[0].path.head.name],B([L,R(ve(e,t)),...$t(r.program.blockParams)?[L,er(r.program)]:[]]),M,cn(n)])}function ws(e,t,r){let{node:n}=e;return r.htmlWhitespaceSensitivity===\"ignore\"?[hn(n)?M:gt,tn(n),t(\"path\"),en(n)]:[tn(n),t(\"path\"),en(n)]}function hn(e){return e.type===\"BlockStatement\"&&e.program.body.every(t=>ye(t))}function Ts(e){return pn(e)&&e.inverse.body.length===1&&e.inverse.body[0].type===\"BlockStatement\"&&un(e.inverse.body[0].path,e.path)}function pn(e){return e.type===\"BlockStatement\"&&e.inverse}function rn(e,t,r){let{node:n}=e;if(hn(n))return\"\";let s=t(\"program\");return r.htmlWhitespaceSensitivity===\"ignore\"?B([gt,s]):B(s)}function nn(e,t,r){let{node:n}=e,s=t(\"inverse\"),i=r.htmlWhitespaceSensitivity===\"ignore\"?[gt,s]:s;return Ts(n)?i:pn(n)?[Ss(n,r),B(i)]:\"\"}function sn(e){return bt(L,z.split(e))}function Cs(e){for(let t=0;t<2;t++){let r=e.getParentNode(t);if((r==null?void 0:r.type)===\"AttrNode\")return r.name.toLowerCase()}}function Rt(e){return e=typeof e==\"string\"?e:\"\",e.split(`\n`).length-1}function Ns(e){e=typeof e==\"string\"?e:\"\";let t=(e.match(/^([^\\S\\n\\r]*[\\n\\r])+/gu)||[])[0]||\"\";return Rt(t)}function xs(e){e=typeof e==\"string\"?e:\"\";let t=(e.match(/([\\n\\r][^\\S\\n\\r]*)+$/gu)||[])[0]||\"\";return Rt(t)}function ee(e=0){return Array.from({length:Math.min(e,on)}).fill(gt)}function As(e,t){let{node:{value:r}}=e,n=be(r,Ps(e)?!t.singleQuote:t.singleQuote);return[n,ze(!1,r,n,`\\\\${n}`),n]}function Ps(e){let{ancestors:t}=e,r=t.findIndex(n=>n.type!==\"SubExpression\");return r!==-1&&t[r+1].type===\"ConcatStatement\"&&t[r+2].type===\"AttrNode\"}function Ls(e,t){let r=tr(e,t),n=ve(e,t);return n?B([r,L,R(n)]):r}function an(e,t){let r=tr(e,t),n=ve(e,t);return n?[B([r,L,n]),M]:r}function tr(e,t){return t(\"path\")}function ve(e,t){var s;let{node:r}=e,n=[];return r.params.length>0&&n.push(...e.map(t,\"params\")),((s=r.hash)==null?void 0:s.pairs.length)>0&&n.push(t(\"hash\")),n.length===0?\"\":bt(L,n)}function er(e){return[\"as |\",e.blockParams.join(\" \"),\"|\"]}var Ds=new Set(\"!\\\"#%&'()*+,./;<=>@[\\\\]^`{|}~\"),_s=new Set([\"true\",\"false\",\"null\",\"undefined\"]),Os=(e,t)=>t===0&&e.startsWith(\"@\")?!1:t!==0&&_s.has(e)||/\\s/u.test(e)||/^\\d/u.test(e)||Array.prototype.some.call(e,r=>Ds.has(r));function Bs(e){return e.tail.length===0&&e.original.includes(\"/\")?e.original:[e.head.original,...e.tail].map((r,n)=>Os(r,n)?`[${r}]`:r).join(\".\")}var Is={print:fs,massageAstNode:Gr,hasPrettierIgnore:Xr,getVisitorKeys:jr},fn=Is;var mn=[{linguistLanguageId:155,name:\"Handlebars\",type:\"markup\",color:\"#f7931e\",aliases:[\"hbs\",\"htmlbars\"],extensions:[\".handlebars\",\".hbs\"],tmScope:\"text.html.handlebars\",aceMode:\"handlebars\",parsers:[\"glimmer\"],vscodeLanguageIds:[\"handlebars\"]}];var Ar={};Ue(Ar,{glimmer:()=>Si});var Rs=Object.freeze([]);function gn(){return Rs}var Oa=gn(),Ba=gn();var rr=Object.assign;var dn=console;function bn(e,t=\"unexpected unreachable branch\"){throw dn.log(\"unreachable\",e),dn.log(`${t} :: ${JSON.stringify(e)} (${e})`),new Error(\"code reached unreachable\")}var qs=function(){var e=function(nt,d,k,b){for(k=k||{},b=nt.length;b--;k[nt[b]]=d);return k},t=[2,44],r=[1,20],n=[5,14,15,19,29,34,39,44,47,48,52,56,60],s=[1,35],i=[1,38],a=[1,30],o=[1,31],c=[1,32],h=[1,33],p=[1,34],m=[1,37],v=[14,15,19,29,34,39,44,47,48,52,56,60],g=[14,15,19,29,34,44,47,48,52,56,60],E=[15,18],N=[14,15,19,29,34,47,48,52,56,60],x=[33,64,71,79,80,81,82,83,84],w=[23,33,55,64,67,71,74,79,80,81,82,83,84],Z=[1,51],q=[23,33,55,64,67,71,74,79,80,81,82,83,84,86],W=[2,43],Tt=[55,64,71,79,80,81,82,83,84],Ct=[1,58],j=[1,59],tt=[1,66],V=[33,64,71,74,79,80,81,82,83,84],Nt=[23,64,71,79,80,81,82,83,84],H=[1,76],et=[64,67,71,79,80,81,82,83,84],P=[33,74],rt=[23,33,55,67,71,74],he=[1,106],Oe=[1,118],Lr=[71,76],Be={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,expr:49,mustache_repetition0:50,mustache_option0:51,OPEN_UNESCAPED:52,mustache_repetition1:53,mustache_option1:54,CLOSE_UNESCAPED:55,OPEN_PARTIAL:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,sexpr:63,OPEN_SEXPR:64,sexpr_repetition0:65,sexpr_option0:66,CLOSE_SEXPR:67,hash:68,hash_repetition_plus0:69,hashSegment:70,ID:71,EQUALS:72,blockParams:73,OPEN_BLOCK_PARAMS:74,blockParams_repetition_plus0:75,CLOSE_BLOCK_PARAMS:76,path:77,dataName:78,STRING:79,NUMBER:80,BOOLEAN:81,UNDEFINED:82,NULL:83,DATA:84,pathSegments:85,SEP:86,$accept:0,$end:1},terminals_:{2:\"error\",5:\"EOF\",14:\"COMMENT\",15:\"CONTENT\",18:\"END_RAW_BLOCK\",19:\"OPEN_RAW_BLOCK\",23:\"CLOSE_RAW_BLOCK\",29:\"OPEN_BLOCK\",33:\"CLOSE\",34:\"OPEN_INVERSE\",39:\"OPEN_INVERSE_CHAIN\",44:\"INVERSE\",47:\"OPEN_ENDBLOCK\",48:\"OPEN\",52:\"OPEN_UNESCAPED\",55:\"CLOSE_UNESCAPED\",56:\"OPEN_PARTIAL\",60:\"OPEN_PARTIAL_BLOCK\",64:\"OPEN_SEXPR\",67:\"CLOSE_SEXPR\",71:\"ID\",72:\"EQUALS\",74:\"OPEN_BLOCK_PARAMS\",76:\"CLOSE_BLOCK_PARAMS\",79:\"STRING\",80:\"NUMBER\",81:\"BOOLEAN\",82:\"UNDEFINED\",83:\"NULL\",84:\"DATA\",86:\"SEP\"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[49,1],[49,1],[63,5],[68,1],[70,3],[73,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[78,2],[77,1],[85,3],[85,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[50,0],[50,2],[51,0],[51,1],[53,0],[53,2],[54,0],[54,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[65,0],[65,2],[66,0],[66,1],[69,1],[69,2],[75,1],[75,2]],performAction:function(d,k,b,y,C,l,xt){var u=l.length-1;switch(C){case 1:return l[u-1];case 2:this.$=y.prepareProgram(l[u]);break;case 3:case 4:case 5:case 6:case 7:case 8:case 20:case 27:case 28:case 33:case 34:this.$=l[u];break;case 9:this.$={type:\"CommentStatement\",value:y.stripComment(l[u]),strip:y.stripFlags(l[u],l[u]),loc:y.locInfo(this._$)};break;case 10:this.$={type:\"ContentStatement\",original:l[u],value:l[u],loc:y.locInfo(this._$)};break;case 11:this.$=y.prepareRawBlock(l[u-2],l[u-1],l[u],this._$);break;case 12:this.$={path:l[u-3],params:l[u-2],hash:l[u-1]};break;case 13:this.$=y.prepareBlock(l[u-3],l[u-2],l[u-1],l[u],!1,this._$);break;case 14:this.$=y.prepareBlock(l[u-3],l[u-2],l[u-1],l[u],!0,this._$);break;case 15:this.$={open:l[u-5],path:l[u-4],params:l[u-3],hash:l[u-2],blockParams:l[u-1],strip:y.stripFlags(l[u-5],l[u])};break;case 16:case 17:this.$={path:l[u-4],params:l[u-3],hash:l[u-2],blockParams:l[u-1],strip:y.stripFlags(l[u-5],l[u])};break;case 18:this.$={strip:y.stripFlags(l[u-1],l[u-1]),program:l[u]};break;case 19:var st=y.prepareBlock(l[u-2],l[u-1],l[u],l[u],!1,this._$),Ut=y.prepareProgram([st],l[u-1].loc);Ut.chained=!0,this.$={strip:l[u-2].strip,program:Ut,chain:!0};break;case 21:this.$={path:l[u-1],strip:y.stripFlags(l[u-2],l[u])};break;case 22:case 23:this.$=y.prepareMustache(l[u-3],l[u-2],l[u-1],l[u-4],y.stripFlags(l[u-4],l[u]),this._$);break;case 24:this.$={type:\"PartialStatement\",name:l[u-3],params:l[u-2],hash:l[u-1],indent:\"\",strip:y.stripFlags(l[u-4],l[u]),loc:y.locInfo(this._$)};break;case 25:this.$=y.preparePartialBlock(l[u-2],l[u-1],l[u],this._$);break;case 26:this.$={path:l[u-3],params:l[u-2],hash:l[u-1],strip:y.stripFlags(l[u-4],l[u])};break;case 29:this.$={type:\"SubExpression\",path:l[u-3],params:l[u-2],hash:l[u-1],loc:y.locInfo(this._$)};break;case 30:this.$={type:\"Hash\",pairs:l[u],loc:y.locInfo(this._$)};break;case 31:this.$={type:\"HashPair\",key:y.id(l[u-2]),value:l[u],loc:y.locInfo(this._$)};break;case 32:this.$=y.id(l[u-1]);break;case 35:this.$={type:\"StringLiteral\",value:l[u],original:l[u],loc:y.locInfo(this._$)};break;case 36:this.$={type:\"NumberLiteral\",value:Number(l[u]),original:Number(l[u]),loc:y.locInfo(this._$)};break;case 37:this.$={type:\"BooleanLiteral\",value:l[u]===\"true\",original:l[u]===\"true\",loc:y.locInfo(this._$)};break;case 38:this.$={type:\"UndefinedLiteral\",original:void 0,value:void 0,loc:y.locInfo(this._$)};break;case 39:this.$={type:\"NullLiteral\",original:null,value:null,loc:y.locInfo(this._$)};break;case 40:this.$=y.preparePath(!0,l[u],this._$);break;case 41:this.$=y.preparePath(!1,l[u],this._$);break;case 42:l[u-2].push({part:y.id(l[u]),original:l[u],separator:l[u-1]}),this.$=l[u-2];break;case 43:this.$=[{part:y.id(l[u]),original:l[u]}];break;case 44:case 46:case 48:case 56:case 62:case 68:case 76:case 80:case 84:case 88:case 92:this.$=[];break;case 45:case 47:case 49:case 57:case 63:case 69:case 77:case 81:case 85:case 89:case 93:case 97:case 99:l[u-1].push(l[u]);break;case 96:case 98:this.$=[l[u]];break}},table:[e([5,14,15,19,29,34,48,52,56,60],t,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,39,44,47],[2,2],{7:5,8:6,9:7,10:8,11:9,12:10,13:11,24:15,27:16,16:17,59:19,14:[1,12],15:r,19:[1,23],29:[1,21],34:[1,22],48:[1,13],52:[1,14],56:[1,18],60:[1,24]}),{1:[2,1]},e(n,[2,45]),e(n,[2,3]),e(n,[2,4]),e(n,[2,5]),e(n,[2,6]),e(n,[2,7]),e(n,[2,8]),e(n,[2,9]),{20:26,49:25,63:27,64:s,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{20:26,49:39,63:27,64:s,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(v,t,{6:3,4:40}),e(g,t,{6:3,4:41}),e(E,[2,46],{17:42}),{20:26,49:43,63:27,64:s,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(N,t,{6:3,4:44}),e([5,14,15,18,19,29,34,39,44,47,48,52,56,60],[2,10]),{20:45,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{20:46,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{20:47,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{20:26,49:48,63:27,64:s,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(x,[2,76],{50:49}),e(w,[2,27]),e(w,[2,28]),e(w,[2,33]),e(w,[2,34]),e(w,[2,35]),e(w,[2,36]),e(w,[2,37]),e(w,[2,38]),e(w,[2,39]),{20:26,49:50,63:27,64:s,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(w,[2,41],{86:Z}),{71:i,85:52},e(q,W),e(Tt,[2,80],{53:53}),{25:54,38:56,39:Ct,43:57,44:j,45:55,47:[2,52]},{28:60,43:61,44:j,47:[2,54]},{13:63,15:r,18:[1,62]},e(x,[2,84],{57:64}),{26:65,47:tt},e(V,[2,56],{30:67}),e(V,[2,62],{35:68}),e(Nt,[2,48],{21:69}),e(x,[2,88],{61:70}),{20:26,33:[2,78],49:72,51:71,63:27,64:s,68:73,69:74,70:75,71:H,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(et,[2,92],{65:77}),{71:[1,78]},e(w,[2,40],{86:Z}),{20:26,49:80,54:79,55:[2,82],63:27,64:s,68:81,69:74,70:75,71:H,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{26:82,47:tt},{47:[2,53]},e(v,t,{6:3,4:83}),{47:[2,20]},{20:84,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(N,t,{6:3,4:85}),{26:86,47:tt},{47:[2,55]},e(n,[2,11]),e(E,[2,47]),{20:26,33:[2,86],49:88,58:87,63:27,64:s,68:89,69:74,70:75,71:H,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(n,[2,25]),{20:90,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(P,[2,58],{20:26,63:27,77:28,78:29,85:36,69:74,70:75,31:91,49:92,68:93,64:s,71:H,79:a,80:o,81:c,82:h,83:p,84:m}),e(P,[2,64],{20:26,63:27,77:28,78:29,85:36,69:74,70:75,36:94,49:95,68:96,64:s,71:H,79:a,80:o,81:c,82:h,83:p,84:m}),{20:26,22:97,23:[2,50],49:98,63:27,64:s,68:99,69:74,70:75,71:H,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{20:26,33:[2,90],49:101,62:100,63:27,64:s,68:102,69:74,70:75,71:H,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{33:[1,103]},e(x,[2,77]),{33:[2,79]},e([23,33,55,67,74],[2,30],{70:104,71:[1,105]}),e(rt,[2,96]),e(q,W,{72:he}),{20:26,49:108,63:27,64:s,66:107,67:[2,94],68:109,69:74,70:75,71:H,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},e(q,[2,42]),{55:[1,110]},e(Tt,[2,81]),{55:[2,83]},e(n,[2,13]),{38:56,39:Ct,43:57,44:j,45:112,46:111,47:[2,74]},e(V,[2,68],{40:113}),{47:[2,18]},e(n,[2,14]),{33:[1,114]},e(x,[2,85]),{33:[2,87]},{33:[1,115]},{32:116,33:[2,60],73:117,74:Oe},e(V,[2,57]),e(P,[2,59]),{33:[2,66],37:119,73:120,74:Oe},e(V,[2,63]),e(P,[2,65]),{23:[1,121]},e(Nt,[2,49]),{23:[2,51]},{33:[1,122]},e(x,[2,89]),{33:[2,91]},e(n,[2,22]),e(rt,[2,97]),{72:he},{20:26,49:123,63:27,64:s,71:i,77:28,78:29,79:a,80:o,81:c,82:h,83:p,84:m,85:36},{67:[1,124]},e(et,[2,93]),{67:[2,95]},e(n,[2,23]),{47:[2,19]},{47:[2,75]},e(P,[2,70],{20:26,63:27,77:28,78:29,85:36,69:74,70:75,41:125,49:126,68:127,64:s,71:H,79:a,80:o,81:c,82:h,83:p,84:m}),e(n,[2,24]),e(n,[2,21]),{33:[1,128]},{33:[2,61]},{71:[1,130],75:129},{33:[1,131]},{33:[2,67]},e(E,[2,12]),e(N,[2,26]),e(rt,[2,31]),e(w,[2,29]),{33:[2,72],42:132,73:133,74:Oe},e(V,[2,69]),e(P,[2,71]),e(v,[2,15]),{71:[1,135],76:[1,134]},e(Lr,[2,98]),e(g,[2,16]),{33:[1,136]},{33:[2,73]},{33:[2,32]},e(Lr,[2,99]),e(v,[2,17])],defaultActions:{4:[2,1],55:[2,53],57:[2,20],61:[2,55],73:[2,79],81:[2,83],85:[2,18],89:[2,87],99:[2,51],102:[2,91],109:[2,95],111:[2,19],112:[2,75],117:[2,61],120:[2,67],133:[2,73],134:[2,32]},parseError:function(d,k){if(k.recoverable)this.trace(d);else{var b=new Error(d);throw b.hash=k,b}},parse:function(d){var k=this,b=[0],y=[],C=[null],l=[],xt=this.table,u=\"\",st=0,Ut=0,Dr=0,Yn=2,_r=1,Gn=l.slice.call(arguments,1),A=Object.create(this.lexer),ft={yy:{}};for(var Re in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Re)&&(ft.yy[Re]=this.yy[Re]);A.setInput(d,ft.yy),ft.yy.lexer=A,ft.yy.parser=this,typeof A.yylloc>\"u\"&&(A.yylloc={});var qe=A.yylloc;l.push(qe);var Kn=A.options&&A.options.ranges;typeof ft.yy.parseError==\"function\"?this.parseError=ft.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ei(Y){b.length=b.length-2*Y,C.length=C.length-Y,l.length=l.length-Y}for(var Wn=function(){var Y;return Y=A.lex()||_r,typeof Y!=\"number\"&&(Y=k.symbols_[Y]||Y),Y},O,Ve,mt,F,wi,He,At={},pe,Q,Or,fe;;){if(mt=b[b.length-1],this.defaultActions[mt]?F=this.defaultActions[mt]:((O===null||typeof O>\"u\")&&(O=Wn()),F=xt[mt]&&xt[mt][O]),typeof F>\"u\"||!F.length||!F[0]){var Fe=\"\";fe=[];for(pe in xt[mt])this.terminals_[pe]&&pe>Yn&&fe.push(\"'\"+this.terminals_[pe]+\"'\");A.showPosition?Fe=\"Parse error on line \"+(st+1)+`:\n`+A.showPosition()+`\nExpecting `+fe.join(\", \")+\", got '\"+(this.terminals_[O]||O)+\"'\":Fe=\"Parse error on line \"+(st+1)+\": Unexpected \"+(O==_r?\"end of input\":\"'\"+(this.terminals_[O]||O)+\"'\"),this.parseError(Fe,{text:A.match,token:this.terminals_[O]||O,line:A.yylineno,loc:qe,expected:fe})}if(F[0]instanceof Array&&F.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+mt+\", token: \"+O);switch(F[0]){case 1:b.push(O),C.push(A.yytext),l.push(A.yylloc),b.push(F[1]),O=null,Ve?(O=Ve,Ve=null):(Ut=A.yyleng,u=A.yytext,st=A.yylineno,qe=A.yylloc,Dr>0&&Dr--);break;case 2:if(Q=this.productions_[F[1]][1],At.$=C[C.length-Q],At._$={first_line:l[l.length-(Q||1)].first_line,last_line:l[l.length-1].last_line,first_column:l[l.length-(Q||1)].first_column,last_column:l[l.length-1].last_column},Kn&&(At._$.range=[l[l.length-(Q||1)].range[0],l[l.length-1].range[1]]),He=this.performAction.apply(At,[u,Ut,st,ft.yy,F[1],C,l].concat(Gn)),typeof He<\"u\")return He;Q&&(b=b.slice(0,-1*Q*2),C=C.slice(0,-1*Q),l=l.slice(0,-1*Q)),b.push(this.productions_[F[1]][0]),C.push(At.$),l.push(At._$),Or=xt[b[b.length-2]][b[b.length-1]],b.push(Or);break;case 3:return!0}}return!0}},zn=function(){var nt={EOF:1,parseError:function(k,b){if(this.yy.parser)this.yy.parser.parseError(k,b);else throw new Error(k)},setInput:function(d,k){return this.yy=k||this.yy||{},this._input=d,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var d=this._input[0];this.yytext+=d,this.yyleng++,this.offset++,this.match+=d,this.matched+=d;var k=d.match(/(?:\\r\\n?|\\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),d},unput:function(d){var k=d.length,b=d.split(/(?:\\r\\n?|\\n)/g);this._input=d+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var y=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),b.length-1&&(this.yylineno-=b.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:b?(b.length===y.length?this.yylloc.first_column:0)+y[y.length-b.length].length-b[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(d){this.unput(this.match.slice(d))},pastInput:function(){var d=this.matched.substr(0,this.matched.length-this.match.length);return(d.length>20?\"...\":\"\")+d.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var d=this.match;return d.length<20&&(d+=this._input.substr(0,20-d.length)),(d.substr(0,20)+(d.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var d=this.pastInput(),k=new Array(d.length+1).join(\"-\");return d+this.upcomingInput()+`\n`+k+\"^\"},test_match:function(d,k){var b,y,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),y=d[0].match(/(?:\\r\\n?|\\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+d[0].length},this.yytext+=d[0],this.match+=d[0],this.matches=d,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(d[0].length),this.matched+=d[0],b=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),b)return b;if(this._backtrack){for(var l in C)this[l]=C[l];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var d,k,b,y;this._more||(this.yytext=\"\",this.match=\"\");for(var C=this._currentRules(),l=0;lk[0].length)){if(k=b,y=l,this.options.backtrack_lexer){if(d=this.test_match(b,C[l]),d!==!1)return d;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(d=this.test_match(k,C[y]),d!==!1?d:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var k=this.next();return k||this.lex()},begin:function(k){this.conditionStack.push(k)},popState:function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:\"INITIAL\"},pushState:function(k){this.begin(k)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(k,b,y,C){function l(u,st){return b.yytext=b.yytext.substring(u,b.yyleng-st+u)}var xt=C;switch(y){case 0:if(b.yytext.slice(-2)===\"\\\\\\\\\"?(l(0,1),this.begin(\"mu\")):b.yytext.slice(-1)===\"\\\\\"?(l(0,1),this.begin(\"emu\")):this.begin(\"mu\"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin(\"raw\"),15;break;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]===\"raw\"?15:(l(5,9),18);case 5:return 15;case 6:return this.popState(),14;break;case 7:return 64;case 8:return 67;case 9:return 19;case 10:return this.popState(),this.begin(\"raw\"),23;break;case 11:return 56;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 52;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin(\"com\");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 72;case 25:return 71;case 26:return 71;case 27:return 86;case 28:break;case 29:return this.popState(),55;break;case 30:return this.popState(),33;break;case 31:return b.yytext=l(1,2).replace(/\\\\\"/g,'\"'),79;break;case 32:return b.yytext=l(1,2).replace(/\\\\'/g,\"'\"),79;break;case 33:return 84;case 34:return 81;case 35:return 81;case 36:return 82;case 37:return 83;case 38:return 80;case 39:return 74;case 40:return 76;case 41:return 71;case 42:return b.yytext=b.yytext.replace(/\\\\([\\\\\\]])/g,\"$1\"),71;break;case 43:return\"INVALID\";case 44:return 5}},rules:[/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:\\{\\{\\{\\{(?=[^/]))/,/^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/,/^(?:[^\\x00]+?(?=(\\{\\{\\{\\{)))/,/^(?:[\\s\\S]*?--(~)?\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{\\{\\{)/,/^(?:\\}\\}\\}\\})/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#>)/,/^(?:\\{\\{(~)?#\\*?)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{(~)?!--)/,/^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?\\*?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)|])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:undefined(?=([~}\\s)])))/,/^(?:null(?=([~}\\s)])))/,/^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/,/^(?:as\\s+\\|)/,/^(?:\\|)/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/,/^(?:\\[(\\\\\\]|[^\\]])*\\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return nt}();Be.lexer=zn;function Ie(){this.yy={}}return Ie.prototype=Be,Be.Parser=Ie,new Ie}(),Ee=qs;var nr=[\"description\",\"fileName\",\"lineNumber\",\"endLineNumber\",\"message\",\"name\",\"number\",\"stack\"];function sr(e,t){var r=t&&t.loc,n,s,i,a;r&&(n=r.start.line,s=r.end.line,i=r.start.column,a=r.end.column,e+=\" - \"+n+\":\"+i);for(var o=Error.prototype.constructor.call(this,e),c=0;clr,id:()=>Vs,prepareBlock:()=>Ys,prepareMustache:()=>Ms,preparePartialBlock:()=>Ks,preparePath:()=>Us,prepareProgram:()=>Gs,prepareRawBlock:()=>zs,stripComment:()=>Fs,stripFlags:()=>Hs});function or(e,t){if(t=t.path?t.path.original:t,e.path.original!==t){var r={loc:e.path.loc};throw new at(e.path.original+\" doesn't match \"+t,r)}}function lr(e,t){this.source=e,this.start={line:t.first_line,column:t.first_column},this.end={line:t.last_line,column:t.last_column}}function Vs(e){return/^\\[.*\\]$/.test(e)?e.substring(1,e.length-1):e}function Hs(e,t){return{open:e.charAt(2)===\"~\",close:t.charAt(t.length-3)===\"~\"}}function Fs(e){return e.replace(/^\\{\\{~?!-?-?/,\"\").replace(/-?-?~?\\}\\}$/,\"\")}function Us(e,t,r){r=this.locInfo(r);for(var n=e?\"@\":\"\",s=[],i=0,a=0,o=t.length;a0)throw new at(\"Invalid path: \"+n,{loc:r});c===\"..\"&&i++}else s.push(c)}return{type:\"PathExpression\",data:e,depth:i,parts:s,original:n,loc:r}}function Ms(e,t,r,n,s,i){var a=n.charAt(3)||n.charAt(2),o=a!==\"{\"&&a!==\"&\",c=/\\*/.test(n);return{type:c?\"Decorator\":\"MustacheStatement\",path:e,params:t,hash:r,escaped:o,strip:s,loc:this.locInfo(i)}}function zs(e,t,r,n){or(e,r),n=this.locInfo(n);var s={type:\"Program\",body:t,strip:{},loc:n};return{type:\"BlockStatement\",path:e.path,params:e.params,hash:e.hash,program:s,openStrip:{},inverseStrip:{},closeStrip:{},loc:n}}function Ys(e,t,r,n,s,i){n&&n.path&&or(e,n);var a=/\\*/.test(e.open);t.blockParams=e.blockParams;var o,c;if(r){if(a)throw new at(\"Unexpected inverse block on decorator\",r);r.chain&&(r.program.body[0].closeStrip=n.strip),c=r.strip,o=r.program}return s&&(s=o,o=t,t=s),{type:a?\"DecoratorBlock\":\"BlockStatement\",path:e.path,params:e.params,hash:e.hash,program:t,inverse:o,openStrip:e.strip,inverseStrip:c,closeStrip:n&&n.strip,loc:this.locInfo(i)}}function Gs(e,t){if(!t&&e.length){var r=e[0].loc,n=e[e.length-1].loc;r&&n&&(t={source:r.source,start:{line:r.start.line,column:r.start.column},end:{line:n.end.line,column:n.end.column}})}return{type:\"Program\",body:e,strip:{},loc:t}}function Ks(e,t,r,n){return or(e,r),{type:\"PartialBlockStatement\",name:e.path,params:e.params,hash:e.hash,program:t,openStrip:e.strip,closeStrip:r&&r.strip,loc:this.locInfo(n)}}var En={};for(Ce in re)Object.prototype.hasOwnProperty.call(re,Ce)&&(En[Ce]=re[Ce]);var Ce;function Ne(e,t){if(e.type===\"Program\")return e;Ee.yy=En,Ee.yy.locInfo=function(n){return new lr(t&&t.srcName,n)};var r=Ee.parse(e);return r}function cr(e,t){var r=Ne(e,t),n=new vn(t);return n.accept(r)}var Tn={Aacute:\"\\xC1\",aacute:\"\\xE1\",Abreve:\"\\u0102\",abreve:\"\\u0103\",ac:\"\\u223E\",acd:\"\\u223F\",acE:\"\\u223E\\u0333\",Acirc:\"\\xC2\",acirc:\"\\xE2\",acute:\"\\xB4\",Acy:\"\\u0410\",acy:\"\\u0430\",AElig:\"\\xC6\",aelig:\"\\xE6\",af:\"\\u2061\",Afr:\"\\u{1D504}\",afr:\"\\u{1D51E}\",Agrave:\"\\xC0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",Alpha:\"\\u0391\",alpha:\"\\u03B1\",Amacr:\"\\u0100\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",amp:\"&\",AMP:\"&\",andand:\"\\u2A55\",And:\"\\u2A53\",and:\"\\u2227\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angmsd:\"\\u2221\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",Aogon:\"\\u0104\",aogon:\"\\u0105\",Aopf:\"\\u{1D538}\",aopf:\"\\u{1D552}\",apacir:\"\\u2A6F\",ap:\"\\u2248\",apE:\"\\u2A70\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",ApplyFunction:\"\\u2061\",approx:\"\\u2248\",approxeq:\"\\u224A\",Aring:\"\\xC5\",aring:\"\\xE5\",Ascr:\"\\u{1D49C}\",ascr:\"\\u{1D4B6}\",Assign:\"\\u2254\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",Atilde:\"\\xC3\",atilde:\"\\xE3\",Auml:\"\\xC4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",barvee:\"\\u22BD\",barwed:\"\\u2305\",Barwed:\"\\u2306\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",Bcy:\"\\u0411\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",Because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",Bfr:\"\\u{1D505}\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bNot:\"\\u2AED\",bnot:\"\\u2310\",Bopf:\"\\u{1D539}\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxbox:\"\\u29C9\",boxdl:\"\\u2510\",boxdL:\"\\u2555\",boxDl:\"\\u2556\",boxDL:\"\\u2557\",boxdr:\"\\u250C\",boxdR:\"\\u2552\",boxDr:\"\\u2553\",boxDR:\"\\u2554\",boxh:\"\\u2500\",boxH:\"\\u2550\",boxhd:\"\\u252C\",boxHd:\"\\u2564\",boxhD:\"\\u2565\",boxHD:\"\\u2566\",boxhu:\"\\u2534\",boxHu:\"\\u2567\",boxhU:\"\\u2568\",boxHU:\"\\u2569\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxul:\"\\u2518\",boxuL:\"\\u255B\",boxUl:\"\\u255C\",boxUL:\"\\u255D\",boxur:\"\\u2514\",boxuR:\"\\u2558\",boxUr:\"\\u2559\",boxUR:\"\\u255A\",boxv:\"\\u2502\",boxV:\"\\u2551\",boxvh:\"\\u253C\",boxvH:\"\\u256A\",boxVh:\"\\u256B\",boxVH:\"\\u256C\",boxvl:\"\\u2524\",boxvL:\"\\u2561\",boxVl:\"\\u2562\",boxVL:\"\\u2563\",boxvr:\"\\u251C\",boxvR:\"\\u255E\",boxVr:\"\\u255F\",boxVR:\"\\u2560\",bprime:\"\\u2035\",breve:\"\\u02D8\",Breve:\"\\u02D8\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",Bscr:\"\\u212C\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsolb:\"\\u29C5\",bsol:\"\\\\\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",Bumpeq:\"\\u224E\",bumpeq:\"\\u224F\",Cacute:\"\\u0106\",cacute:\"\\u0107\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",cap:\"\\u2229\",Cap:\"\\u22D2\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",CapitalDifferentialD:\"\\u2145\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",Cayleys:\"\\u212D\",ccaps:\"\\u2A4D\",Ccaron:\"\\u010C\",ccaron:\"\\u010D\",Ccedil:\"\\xC7\",ccedil:\"\\xE7\",Ccirc:\"\\u0108\",ccirc:\"\\u0109\",Cconint:\"\\u2230\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",Cdot:\"\\u010A\",cdot:\"\\u010B\",cedil:\"\\xB8\",Cedilla:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",centerdot:\"\\xB7\",CenterDot:\"\\xB7\",cfr:\"\\u{1D520}\",Cfr:\"\\u212D\",CHcy:\"\\u0427\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",Chi:\"\\u03A7\",chi:\"\\u03C7\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",CircleDot:\"\\u2299\",circledR:\"\\xAE\",circledS:\"\\u24C8\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",cir:\"\\u25CB\",cirE:\"\\u29C3\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",Colon:\"\\u2237\",Colone:\"\\u2A74\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",Congruent:\"\\u2261\",conint:\"\\u222E\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",copf:\"\\u{1D554}\",Copf:\"\\u2102\",coprod:\"\\u2210\",Coproduct:\"\\u2210\",copy:\"\\xA9\",COPY:\"\\xA9\",copysr:\"\\u2117\",CounterClockwiseContourIntegral:\"\\u2233\",crarr:\"\\u21B5\",cross:\"\\u2717\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",CupCap:\"\\u224D\",cup:\"\\u222A\",Cup:\"\\u22D3\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dagger:\"\\u2020\",Dagger:\"\\u2021\",daleth:\"\\u2138\",darr:\"\\u2193\",Darr:\"\\u21A1\",dArr:\"\\u21D3\",dash:\"\\u2010\",Dashv:\"\\u2AE4\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",Dcaron:\"\\u010E\",dcaron:\"\\u010F\",Dcy:\"\\u0414\",dcy:\"\\u0434\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",DD:\"\\u2145\",dd:\"\\u2146\",DDotrahd:\"\\u2911\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",Del:\"\\u2207\",Delta:\"\\u0394\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",Dfr:\"\\u{1D507}\",dfr:\"\\u{1D521}\",dHar:\"\\u2965\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",diam:\"\\u22C4\",diamond:\"\\u22C4\",Diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",DifferentialD:\"\\u2146\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",DJcy:\"\\u0402\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",Dopf:\"\\u{1D53B}\",dopf:\"\\u{1D555}\",Dot:\"\\xA8\",dot:\"\\u02D9\",DotDot:\"\\u20DC\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",DotEqual:\"\\u2250\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrowBar:\"\\u2913\",downarrow:\"\\u2193\",DownArrow:\"\\u2193\",Downarrow:\"\\u21D3\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVectorBar:\"\\u2956\",DownLeftVector:\"\\u21BD\",DownRightTeeVector:\"\\u295F\",DownRightVectorBar:\"\\u2957\",DownRightVector:\"\\u21C1\",DownTeeArrow:\"\\u21A7\",DownTee:\"\\u22A4\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",Dscr:\"\\u{1D49F}\",dscr:\"\\u{1D4B9}\",DScy:\"\\u0405\",dscy:\"\\u0455\",dsol:\"\\u29F6\",Dstrok:\"\\u0110\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",DZcy:\"\\u040F\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",Eacute:\"\\xC9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",Ecaron:\"\\u011A\",ecaron:\"\\u011B\",Ecirc:\"\\xCA\",ecirc:\"\\xEA\",ecir:\"\\u2256\",ecolon:\"\\u2255\",Ecy:\"\\u042D\",ecy:\"\\u044D\",eDDot:\"\\u2A77\",Edot:\"\\u0116\",edot:\"\\u0117\",eDot:\"\\u2251\",ee:\"\\u2147\",efDot:\"\\u2252\",Efr:\"\\u{1D508}\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",Egrave:\"\\xC8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",Element:\"\\u2208\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",Emacr:\"\\u0112\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",EmptySmallSquare:\"\\u25FB\",emptyv:\"\\u2205\",EmptyVerySmallSquare:\"\\u25AB\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",ENG:\"\\u014A\",eng:\"\\u014B\",ensp:\"\\u2002\",Eogon:\"\\u0118\",eogon:\"\\u0119\",Eopf:\"\\u{1D53C}\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",Epsilon:\"\\u0395\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",Equal:\"\\u2A75\",equals:\"=\",EqualTilde:\"\\u2242\",equest:\"\\u225F\",Equilibrium:\"\\u21CC\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erarr:\"\\u2971\",erDot:\"\\u2253\",escr:\"\\u212F\",Escr:\"\\u2130\",esdot:\"\\u2250\",Esim:\"\\u2A73\",esim:\"\\u2242\",Eta:\"\\u0397\",eta:\"\\u03B7\",ETH:\"\\xD0\",eth:\"\\xF0\",Euml:\"\\xCB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",Exists:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",ExponentialE:\"\\u2147\",fallingdotseq:\"\\u2252\",Fcy:\"\\u0424\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",Ffr:\"\\u{1D509}\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",Fopf:\"\\u{1D53D}\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",ForAll:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",Fouriertrf:\"\\u2131\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",Fscr:\"\\u2131\",gacute:\"\\u01F5\",Gamma:\"\\u0393\",gamma:\"\\u03B3\",Gammad:\"\\u03DC\",gammad:\"\\u03DD\",gap:\"\\u2A86\",Gbreve:\"\\u011E\",gbreve:\"\\u011F\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",gcirc:\"\\u011D\",Gcy:\"\\u0413\",gcy:\"\\u0433\",Gdot:\"\\u0120\",gdot:\"\\u0121\",ge:\"\\u2265\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",gescc:\"\\u2AA9\",ges:\"\\u2A7E\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",Gfr:\"\\u{1D50A}\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",Gg:\"\\u22D9\",ggg:\"\\u22D9\",gimel:\"\\u2137\",GJcy:\"\\u0403\",gjcy:\"\\u0453\",gla:\"\\u2AA5\",gl:\"\\u2277\",glE:\"\\u2A92\",glj:\"\\u2AA4\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gnE:\"\\u2269\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",Gopf:\"\\u{1D53E}\",gopf:\"\\u{1D558}\",grave:\"`\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gt:\">\",GT:\">\",Gt:\"\\u226B\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",Hacek:\"\\u02C7\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",HARDcy:\"\\u042A\",hardcy:\"\\u044A\",harrcir:\"\\u2948\",harr:\"\\u2194\",hArr:\"\\u21D4\",harrw:\"\\u21AD\",Hat:\"^\",hbar:\"\\u210F\",Hcirc:\"\\u0124\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",Hopf:\"\\u210D\",horbar:\"\\u2015\",HorizontalLine:\"\\u2500\",hscr:\"\\u{1D4BD}\",Hscr:\"\\u210B\",hslash:\"\\u210F\",Hstrok:\"\\u0126\",hstrok:\"\\u0127\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",hybull:\"\\u2043\",hyphen:\"\\u2010\",Iacute:\"\\xCD\",iacute:\"\\xED\",ic:\"\\u2063\",Icirc:\"\\xCE\",icirc:\"\\xEE\",Icy:\"\\u0418\",icy:\"\\u0438\",Idot:\"\\u0130\",IEcy:\"\\u0415\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",Ifr:\"\\u2111\",Igrave:\"\\xCC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",IJlig:\"\\u0132\",ijlig:\"\\u0133\",Imacr:\"\\u012A\",imacr:\"\\u012B\",image:\"\\u2111\",ImaginaryI:\"\\u2148\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",Im:\"\\u2111\",imof:\"\\u22B7\",imped:\"\\u01B5\",Implies:\"\\u21D2\",incare:\"\\u2105\",in:\"\\u2208\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",intcal:\"\\u22BA\",int:\"\\u222B\",Int:\"\\u222C\",integers:\"\\u2124\",Integral:\"\\u222B\",intercal:\"\\u22BA\",Intersection:\"\\u22C2\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",IOcy:\"\\u0401\",iocy:\"\\u0451\",Iogon:\"\\u012E\",iogon:\"\\u012F\",Iopf:\"\\u{1D540}\",iopf:\"\\u{1D55A}\",Iota:\"\\u0399\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",Iscr:\"\\u2110\",isin:\"\\u2208\",isindot:\"\\u22F5\",isinE:\"\\u22F9\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",Itilde:\"\\u0128\",itilde:\"\\u0129\",Iukcy:\"\\u0406\",iukcy:\"\\u0456\",Iuml:\"\\xCF\",iuml:\"\\xEF\",Jcirc:\"\\u0134\",jcirc:\"\\u0135\",Jcy:\"\\u0419\",jcy:\"\\u0439\",Jfr:\"\\u{1D50D}\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",Jopf:\"\\u{1D541}\",jopf:\"\\u{1D55B}\",Jscr:\"\\u{1D4A5}\",jscr:\"\\u{1D4BF}\",Jsercy:\"\\u0408\",jsercy:\"\\u0458\",Jukcy:\"\\u0404\",jukcy:\"\\u0454\",Kappa:\"\\u039A\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",Kcedil:\"\\u0136\",kcedil:\"\\u0137\",Kcy:\"\\u041A\",kcy:\"\\u043A\",Kfr:\"\\u{1D50E}\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",KHcy:\"\\u0425\",khcy:\"\\u0445\",KJcy:\"\\u040C\",kjcy:\"\\u045C\",Kopf:\"\\u{1D542}\",kopf:\"\\u{1D55C}\",Kscr:\"\\u{1D4A6}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",Lacute:\"\\u0139\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",Lambda:\"\\u039B\",lambda:\"\\u03BB\",lang:\"\\u27E8\",Lang:\"\\u27EA\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",Laplacetrf:\"\\u2112\",laquo:\"\\xAB\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larr:\"\\u2190\",Larr:\"\\u219E\",lArr:\"\\u21D0\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",latail:\"\\u2919\",lAtail:\"\\u291B\",lat:\"\\u2AAB\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lBarr:\"\\u290E\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",Lcaron:\"\\u013D\",lcaron:\"\\u013E\",Lcedil:\"\\u013B\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",Lcy:\"\\u041B\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",lE:\"\\u2266\",LeftAngleBracket:\"\\u27E8\",LeftArrowBar:\"\\u21E4\",leftarrow:\"\\u2190\",LeftArrow:\"\\u2190\",Leftarrow:\"\\u21D0\",LeftArrowRightArrow:\"\\u21C6\",leftarrowtail:\"\\u21A2\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVectorBar:\"\\u2959\",LeftDownVector:\"\\u21C3\",LeftFloor:\"\\u230A\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",LeftRightArrow:\"\\u2194\",Leftrightarrow:\"\\u21D4\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",LeftRightVector:\"\\u294E\",LeftTeeArrow:\"\\u21A4\",LeftTee:\"\\u22A3\",LeftTeeVector:\"\\u295A\",leftthreetimes:\"\\u22CB\",LeftTriangleBar:\"\\u29CF\",LeftTriangle:\"\\u22B2\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVectorBar:\"\\u2958\",LeftUpVector:\"\\u21BF\",LeftVectorBar:\"\\u2952\",LeftVector:\"\\u21BC\",lEg:\"\\u2A8B\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",lescc:\"\\u2AA8\",les:\"\\u2A7D\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",LessLess:\"\\u2AA1\",lesssim:\"\\u2272\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",Lfr:\"\\u{1D50F}\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lHar:\"\\u2962\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",LJcy:\"\\u0409\",ljcy:\"\\u0459\",llarr:\"\\u21C7\",ll:\"\\u226A\",Ll:\"\\u22D8\",llcorner:\"\\u231E\",Lleftarrow:\"\\u21DA\",llhard:\"\\u296B\",lltri:\"\\u25FA\",Lmidot:\"\\u013F\",lmidot:\"\\u0140\",lmoustache:\"\\u23B0\",lmoust:\"\\u23B0\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lnE:\"\\u2268\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",LongLeftArrow:\"\\u27F5\",Longleftarrow:\"\\u27F8\",longleftrightarrow:\"\\u27F7\",LongLeftRightArrow:\"\\u27F7\",Longleftrightarrow:\"\\u27FA\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",LongRightArrow:\"\\u27F6\",Longrightarrow:\"\\u27F9\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",Lopf:\"\\u{1D543}\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",Lscr:\"\\u2112\",lsh:\"\\u21B0\",Lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",Lstrok:\"\\u0141\",lstrok:\"\\u0142\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",lt:\"<\",LT:\"<\",Lt:\"\\u226A\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",ltrPar:\"\\u2996\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",Map:\"\\u2905\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",Mcy:\"\\u041C\",mcy:\"\\u043C\",mdash:\"\\u2014\",mDDot:\"\\u223A\",measuredangle:\"\\u2221\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",midast:\"*\",midcir:\"\\u2AF0\",mid:\"\\u2223\",middot:\"\\xB7\",minusb:\"\\u229F\",minus:\"\\u2212\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",MinusPlus:\"\\u2213\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",Mopf:\"\\u{1D544}\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",Mscr:\"\\u2133\",mstpos:\"\\u223E\",Mu:\"\\u039C\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nabla:\"\\u2207\",Nacute:\"\\u0143\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natural:\"\\u266E\",naturals:\"\\u2115\",natur:\"\\u266E\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",Ncaron:\"\\u0147\",ncaron:\"\\u0148\",Ncedil:\"\\u0145\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",Ncy:\"\\u041D\",ncy:\"\\u043D\",ndash:\"\\u2013\",nearhk:\"\\u2924\",nearr:\"\\u2197\",neArr:\"\\u21D7\",nearrow:\"\\u2197\",ne:\"\\u2260\",nedot:\"\\u2250\\u0338\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,nexist:\"\\u2204\",nexists:\"\\u2204\",Nfr:\"\\u{1D511}\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",nGg:\"\\u22D9\\u0338\",ngsim:\"\\u2275\",nGt:\"\\u226B\\u20D2\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nGtv:\"\\u226B\\u0338\",nharr:\"\\u21AE\",nhArr:\"\\u21CE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",NJcy:\"\\u040A\",njcy:\"\\u045A\",nlarr:\"\\u219A\",nlArr:\"\\u21CD\",nldr:\"\\u2025\",nlE:\"\\u2266\\u0338\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nLeftarrow:\"\\u21CD\",nleftrightarrow:\"\\u21AE\",nLeftrightarrow:\"\\u21CE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nLl:\"\\u22D8\\u0338\",nlsim:\"\\u2274\",nLt:\"\\u226A\\u20D2\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nLtv:\"\\u226A\\u0338\",nmid:\"\\u2224\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",nopf:\"\\u{1D55F}\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",not:\"\\xAC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",notin:\"\\u2209\",notindot:\"\\u22F5\\u0338\",notinE:\"\\u22F9\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangle:\"\\u22EB\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",nparallel:\"\\u2226\",npar:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",npre:\"\\u2AAF\\u0338\",nrarrc:\"\\u2933\\u0338\",nrarr:\"\\u219B\",nrArr:\"\\u21CF\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nRightarrow:\"\\u21CF\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",Nscr:\"\\u{1D4A9}\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",Ntilde:\"\\xD1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",Nu:\"\\u039D\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvDash:\"\\u22AD\",nVdash:\"\\u22AE\",nVDash:\"\\u22AF\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvHarr:\"\\u2904\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwArr:\"\\u21D6\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",Oacute:\"\\xD3\",oacute:\"\\xF3\",oast:\"\\u229B\",Ocirc:\"\\xD4\",ocirc:\"\\xF4\",ocir:\"\\u229A\",Ocy:\"\\u041E\",ocy:\"\\u043E\",odash:\"\\u229D\",Odblac:\"\\u0150\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",OElig:\"\\u0152\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",Ofr:\"\\u{1D512}\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",Ograve:\"\\xD2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",Omacr:\"\\u014C\",omacr:\"\\u014D\",Omega:\"\\u03A9\",omega:\"\\u03C9\",Omicron:\"\\u039F\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",Oopf:\"\\u{1D546}\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",operp:\"\\u29B9\",oplus:\"\\u2295\",orarr:\"\\u21BB\",Or:\"\\u2A54\",or:\"\\u2228\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oS:\"\\u24C8\",Oscr:\"\\u{1D4AA}\",oscr:\"\\u2134\",Oslash:\"\\xD8\",oslash:\"\\xF8\",osol:\"\\u2298\",Otilde:\"\\xD5\",otilde:\"\\xF5\",otimesas:\"\\u2A36\",Otimes:\"\\u2A37\",otimes:\"\\u2297\",Ouml:\"\\xD6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",para:\"\\xB6\",parallel:\"\\u2225\",par:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",Pfr:\"\\u{1D513}\",pfr:\"\\u{1D52D}\",Phi:\"\\u03A6\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",Pi:\"\\u03A0\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plus:\"+\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",Poincareplane:\"\\u210C\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",Popf:\"\\u2119\",pound:\"\\xA3\",prap:\"\\u2AB7\",Pr:\"\\u2ABB\",pr:\"\\u227A\",prcue:\"\\u227C\",precapprox:\"\\u2AB7\",prec:\"\\u227A\",preccurlyeq:\"\\u227C\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",pre:\"\\u2AAF\",prE:\"\\u2AB3\",precsim:\"\\u227E\",prime:\"\\u2032\",Prime:\"\\u2033\",primes:\"\\u2119\",prnap:\"\\u2AB9\",prnE:\"\\u2AB5\",prnsim:\"\\u22E8\",prod:\"\\u220F\",Product:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",Proportional:\"\\u221D\",Proportion:\"\\u2237\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",Pscr:\"\\u{1D4AB}\",pscr:\"\\u{1D4C5}\",Psi:\"\\u03A8\",psi:\"\\u03C8\",puncsp:\"\\u2008\",Qfr:\"\\u{1D514}\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",Qopf:\"\\u211A\",qprime:\"\\u2057\",Qscr:\"\\u{1D4AC}\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quot:'\"',QUOT:'\"',rAarr:\"\\u21DB\",race:\"\\u223D\\u0331\",Racute:\"\\u0154\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",Rang:\"\\u27EB\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarr:\"\\u2192\",Rarr:\"\\u21A0\",rArr:\"\\u21D2\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",Rarrtl:\"\\u2916\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",rAtail:\"\\u291C\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rBarr:\"\\u290F\",RBarr:\"\\u2910\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",Rcaron:\"\\u0158\",rcaron:\"\\u0159\",Rcedil:\"\\u0156\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",Rcy:\"\\u0420\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",Re:\"\\u211C\",rect:\"\\u25AD\",reg:\"\\xAE\",REG:\"\\xAE\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",Rfr:\"\\u211C\",rHar:\"\\u2964\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",Rho:\"\\u03A1\",rho:\"\\u03C1\",rhov:\"\\u03F1\",RightAngleBracket:\"\\u27E9\",RightArrowBar:\"\\u21E5\",rightarrow:\"\\u2192\",RightArrow:\"\\u2192\",Rightarrow:\"\\u21D2\",RightArrowLeftArrow:\"\\u21C4\",rightarrowtail:\"\\u21A3\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVectorBar:\"\\u2955\",RightDownVector:\"\\u21C2\",RightFloor:\"\\u230B\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",RightTeeArrow:\"\\u21A6\",RightTee:\"\\u22A2\",RightTeeVector:\"\\u295B\",rightthreetimes:\"\\u22CC\",RightTriangleBar:\"\\u29D0\",RightTriangle:\"\\u22B3\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVectorBar:\"\\u2954\",RightUpVector:\"\\u21BE\",RightVectorBar:\"\\u2953\",RightVector:\"\\u21C0\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoustache:\"\\u23B1\",rmoust:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",Ropf:\"\\u211D\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",RoundImplies:\"\\u2970\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",Rrightarrow:\"\\u21DB\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",Rscr:\"\\u211B\",rsh:\"\\u21B1\",Rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",RuleDelayed:\"\\u29F4\",ruluhar:\"\\u2968\",rx:\"\\u211E\",Sacute:\"\\u015A\",sacute:\"\\u015B\",sbquo:\"\\u201A\",scap:\"\\u2AB8\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Sc:\"\\u2ABC\",sc:\"\\u227B\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scE:\"\\u2AB4\",Scedil:\"\\u015E\",scedil:\"\\u015F\",Scirc:\"\\u015C\",scirc:\"\\u015D\",scnap:\"\\u2ABA\",scnE:\"\\u2AB6\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",Scy:\"\\u0421\",scy:\"\\u0441\",sdotb:\"\\u22A1\",sdot:\"\\u22C5\",sdote:\"\\u2A66\",searhk:\"\\u2925\",searr:\"\\u2198\",seArr:\"\\u21D8\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",Sfr:\"\\u{1D516}\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",SHCHcy:\"\\u0429\",shchcy:\"\\u0449\",SHcy:\"\\u0428\",shcy:\"\\u0448\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",shy:\"\\xAD\",Sigma:\"\\u03A3\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",SmallCircle:\"\\u2218\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",SOFTcy:\"\\u042C\",softcy:\"\\u044C\",solbar:\"\\u233F\",solb:\"\\u29C4\",sol:\"/\",Sopf:\"\\u{1D54A}\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",Sqrt:\"\\u221A\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",square:\"\\u25A1\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",squarf:\"\\u25AA\",squ:\"\\u25A1\",squf:\"\\u25AA\",srarr:\"\\u2192\",Sscr:\"\\u{1D4AE}\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",Star:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",Sub:\"\\u22D0\",subdot:\"\\u2ABD\",subE:\"\\u2AC5\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",Subset:\"\\u22D0\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",SubsetEqual:\"\\u2286\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succapprox:\"\\u2AB8\",succ:\"\\u227B\",succcurlyeq:\"\\u227D\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",SuchThat:\"\\u220B\",sum:\"\\u2211\",Sum:\"\\u2211\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",sup:\"\\u2283\",Sup:\"\\u22D1\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supE:\"\\u2AC6\",supe:\"\\u2287\",supedot:\"\\u2AC4\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",Supset:\"\\u22D1\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swArr:\"\\u21D9\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",Tab:\"\t\",target:\"\\u2316\",Tau:\"\\u03A4\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",Tcaron:\"\\u0164\",tcaron:\"\\u0165\",Tcedil:\"\\u0162\",tcedil:\"\\u0163\",Tcy:\"\\u0422\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",Tfr:\"\\u{1D517}\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",Therefore:\"\\u2234\",Theta:\"\\u0398\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",THORN:\"\\xDE\",thorn:\"\\xFE\",tilde:\"\\u02DC\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",timesbar:\"\\u2A31\",timesb:\"\\u22A0\",times:\"\\xD7\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",top:\"\\u22A4\",Topf:\"\\u{1D54B}\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",TRADE:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",TripleDot:\"\\u20DB\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",Tscr:\"\\u{1D4AF}\",tscr:\"\\u{1D4C9}\",TScy:\"\\u0426\",tscy:\"\\u0446\",TSHcy:\"\\u040B\",tshcy:\"\\u045B\",Tstrok:\"\\u0166\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",Uacute:\"\\xDA\",uacute:\"\\xFA\",uarr:\"\\u2191\",Uarr:\"\\u219F\",uArr:\"\\u21D1\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",ubrcy:\"\\u045E\",Ubreve:\"\\u016C\",ubreve:\"\\u016D\",Ucirc:\"\\xDB\",ucirc:\"\\xFB\",Ucy:\"\\u0423\",ucy:\"\\u0443\",udarr:\"\\u21C5\",Udblac:\"\\u0170\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",Ufr:\"\\u{1D518}\",ufr:\"\\u{1D532}\",Ugrave:\"\\xD9\",ugrave:\"\\xF9\",uHar:\"\\u2963\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",Umacr:\"\\u016A\",umacr:\"\\u016B\",uml:\"\\xA8\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",uogon:\"\\u0173\",Uopf:\"\\u{1D54C}\",uopf:\"\\u{1D566}\",UpArrowBar:\"\\u2912\",uparrow:\"\\u2191\",UpArrow:\"\\u2191\",Uparrow:\"\\u21D1\",UpArrowDownArrow:\"\\u21C5\",updownarrow:\"\\u2195\",UpDownArrow:\"\\u2195\",Updownarrow:\"\\u21D5\",UpEquilibrium:\"\\u296E\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",upsi:\"\\u03C5\",Upsi:\"\\u03D2\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",upsilon:\"\\u03C5\",UpTeeArrow:\"\\u21A5\",UpTee:\"\\u22A5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",Uring:\"\\u016E\",uring:\"\\u016F\",urtri:\"\\u25F9\",Uscr:\"\\u{1D4B0}\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",Utilde:\"\\u0168\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",Uuml:\"\\xDC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",vArr:\"\\u21D5\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vBar:\"\\u2AE8\",Vbar:\"\\u2AEB\",vBarv:\"\\u2AE9\",Vcy:\"\\u0412\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vDash:\"\\u22A8\",Vdash:\"\\u22A9\",VDash:\"\\u22AB\",Vdashl:\"\\u2AE6\",veebar:\"\\u22BB\",vee:\"\\u2228\",Vee:\"\\u22C1\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",Verbar:\"\\u2016\",vert:\"|\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",Vopf:\"\\u{1D54D}\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",Vscr:\"\\u{1D4B1}\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",Vvdash:\"\\u22AA\",vzigzag:\"\\u299A\",Wcirc:\"\\u0174\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",Wedge:\"\\u22C0\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",Wfr:\"\\u{1D51A}\",wfr:\"\\u{1D534}\",Wopf:\"\\u{1D54E}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",Wscr:\"\\u{1D4B2}\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",Xfr:\"\\u{1D51B}\",xfr:\"\\u{1D535}\",xharr:\"\\u27F7\",xhArr:\"\\u27FA\",Xi:\"\\u039E\",xi:\"\\u03BE\",xlarr:\"\\u27F5\",xlArr:\"\\u27F8\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",Xopf:\"\\u{1D54F}\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrarr:\"\\u27F6\",xrArr:\"\\u27F9\",Xscr:\"\\u{1D4B3}\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",Yacute:\"\\xDD\",yacute:\"\\xFD\",YAcy:\"\\u042F\",yacy:\"\\u044F\",Ycirc:\"\\u0176\",ycirc:\"\\u0177\",Ycy:\"\\u042B\",ycy:\"\\u044B\",yen:\"\\xA5\",Yfr:\"\\u{1D51C}\",yfr:\"\\u{1D536}\",YIcy:\"\\u0407\",yicy:\"\\u0457\",Yopf:\"\\u{1D550}\",yopf:\"\\u{1D56A}\",Yscr:\"\\u{1D4B4}\",yscr:\"\\u{1D4CE}\",YUcy:\"\\u042E\",yucy:\"\\u044E\",yuml:\"\\xFF\",Yuml:\"\\u0178\",Zacute:\"\\u0179\",zacute:\"\\u017A\",Zcaron:\"\\u017D\",zcaron:\"\\u017E\",Zcy:\"\\u0417\",zcy:\"\\u0437\",Zdot:\"\\u017B\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",Zfr:\"\\u2128\",ZHcy:\"\\u0416\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},Ws=/^#[xX]([A-Fa-f0-9]+)$/,js=/^#([0-9]+)$/,Qs=/^([A-Za-z0-9]+)$/,ur=function(){function e(t){this.named=t}return e.prototype.parse=function(t){if(t){var r=t.match(Ws);if(r)return String.fromCharCode(parseInt(r[1],16));if(r=t.match(js),r)return String.fromCharCode(parseInt(r[1],10));if(r=t.match(Qs),r)return this.named[r[1]]}},e}(),Js=/[\\t\\n\\f ]/,$s=/[A-Za-z]/,Xs=/\\r\\n?/g;function _(e){return Js.test(e)}function wn(e){return $s.test(e)}function Zs(e){return e.replace(Xs,`\n`)}var hr=function(){function e(t,r,n){n===void 0&&(n=\"precompile\"),this.delegate=t,this.entityParser=r,this.mode=n,this.state=\"beforeData\",this.line=-1,this.column=-1,this.input=\"\",this.index=-1,this.tagNameBuffer=\"\",this.states={beforeData:function(){var s=this.peek();if(s===\"<\"&&!this.isIgnoredEndTag())this.transitionTo(\"tagOpen\"),this.markTagStart(),this.consume();else{if(this.mode===\"precompile\"&&s===`\n`){var i=this.tagNameBuffer.toLowerCase();(i===\"pre\"||i===\"textarea\")&&this.consume()}this.transitionTo(\"data\"),this.delegate.beginData()}},data:function(){var s=this.peek(),i=this.tagNameBuffer;s===\"<\"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo(\"tagOpen\"),this.markTagStart(),this.consume()):s===\"&\"&&i!==\"script\"&&i!==\"style\"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||\"&\")):(this.consume(),this.delegate.appendToData(s))},tagOpen:function(){var s=this.consume();s===\"!\"?this.transitionTo(\"markupDeclarationOpen\"):s===\"/\"?this.transitionTo(\"endTagOpen\"):(s===\"@\"||s===\":\"||wn(s))&&(this.transitionTo(\"tagName\"),this.tagNameBuffer=\"\",this.delegate.beginStartTag(),this.appendToTagName(s))},markupDeclarationOpen:function(){var s=this.consume();if(s===\"-\"&&this.peek()===\"-\")this.consume(),this.transitionTo(\"commentStart\"),this.delegate.beginComment();else{var i=s.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();i===\"DOCTYPE\"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo(\"doctype\"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var s=this.consume();_(s)&&this.transitionTo(\"beforeDoctypeName\")},beforeDoctypeName:function(){var s=this.consume();_(s)||(this.transitionTo(\"doctypeName\"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase()))},doctypeName:function(){var s=this.consume();_(s)?this.transitionTo(\"afterDoctypeName\"):s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase())},afterDoctypeName:function(){var s=this.consume();if(!_(s))if(s===\">\")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\");else{var i=s.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),a=i.toUpperCase()===\"PUBLIC\",o=i.toUpperCase()===\"SYSTEM\";(a||o)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),a?this.transitionTo(\"afterDoctypePublicKeyword\"):o&&this.transitionTo(\"afterDoctypeSystemKeyword\")}},afterDoctypePublicKeyword:function(){var s=this.peek();_(s)?(this.transitionTo(\"beforeDoctypePublicIdentifier\"),this.consume()):s==='\"'?(this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"),this.consume()):s===\"'\"?(this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"),this.consume()):s===\">\"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\"))},doctypePublicIdentifierDoubleQuoted:function(){var s=this.consume();s==='\"'?this.transitionTo(\"afterDoctypePublicIdentifier\"):s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},doctypePublicIdentifierSingleQuoted:function(){var s=this.consume();s===\"'\"?this.transitionTo(\"afterDoctypePublicIdentifier\"):s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},afterDoctypePublicIdentifier:function(){var s=this.consume();_(s)?this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"):s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):s==='\"'?this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"):s===\"'\"&&this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\")},betweenDoctypePublicAndSystemIdentifiers:function(){var s=this.consume();_(s)||(s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):s==='\"'?this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"):s===\"'\"&&this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"))},doctypeSystemIdentifierDoubleQuoted:function(){var s=this.consume();s==='\"'?this.transitionTo(\"afterDoctypeSystemIdentifier\"):s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},doctypeSystemIdentifierSingleQuoted:function(){var s=this.consume();s===\"'\"?this.transitionTo(\"afterDoctypeSystemIdentifier\"):s===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},afterDoctypeSystemIdentifier:function(){var s=this.consume();_(s)||s===\">\"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\"))},commentStart:function(){var s=this.consume();s===\"-\"?this.transitionTo(\"commentStartDash\"):s===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(s),this.transitionTo(\"comment\"))},commentStartDash:function(){var s=this.consume();s===\"-\"?this.transitionTo(\"commentEnd\"):s===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(\"-\"),this.transitionTo(\"comment\"))},comment:function(){var s=this.consume();s===\"-\"?this.transitionTo(\"commentEndDash\"):this.delegate.appendToCommentData(s)},commentEndDash:function(){var s=this.consume();s===\"-\"?this.transitionTo(\"commentEnd\"):(this.delegate.appendToCommentData(\"-\"+s),this.transitionTo(\"comment\"))},commentEnd:function(){var s=this.consume();s===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(\"--\"+s),this.transitionTo(\"comment\"))},tagName:function(){var s=this.consume();_(s)?this.transitionTo(\"beforeAttributeName\"):s===\"/\"?this.transitionTo(\"selfClosingStartTag\"):s===\">\"?(this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.appendToTagName(s)},endTagName:function(){var s=this.consume();_(s)?(this.transitionTo(\"beforeAttributeName\"),this.tagNameBuffer=\"\"):s===\"/\"?(this.transitionTo(\"selfClosingStartTag\"),this.tagNameBuffer=\"\"):s===\">\"?(this.delegate.finishTag(),this.transitionTo(\"beforeData\"),this.tagNameBuffer=\"\"):this.appendToTagName(s)},beforeAttributeName:function(){var s=this.peek();if(_(s)){this.consume();return}else s===\"/\"?(this.transitionTo(\"selfClosingStartTag\"),this.consume()):s===\">\"?(this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):s===\"=\"?(this.delegate.reportSyntaxError(\"attribute name cannot start with equals sign\"),this.transitionTo(\"attributeName\"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s)):(this.transitionTo(\"attributeName\"),this.delegate.beginAttribute())},attributeName:function(){var s=this.peek();_(s)?(this.transitionTo(\"afterAttributeName\"),this.consume()):s===\"/\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):s===\"=\"?(this.transitionTo(\"beforeAttributeValue\"),this.consume()):s===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):s==='\"'||s===\"'\"||s===\"<\"?(this.delegate.reportSyntaxError(s+\" is not a valid character within attribute names\"),this.consume(),this.delegate.appendToAttributeName(s)):(this.consume(),this.delegate.appendToAttributeName(s))},afterAttributeName:function(){var s=this.peek();if(_(s)){this.consume();return}else s===\"/\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):s===\"=\"?(this.consume(),this.transitionTo(\"beforeAttributeValue\")):s===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo(\"attributeName\"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s))},beforeAttributeValue:function(){var s=this.peek();_(s)?this.consume():s==='\"'?(this.transitionTo(\"attributeValueDoubleQuoted\"),this.delegate.beginAttributeValue(!0),this.consume()):s===\"'\"?(this.transitionTo(\"attributeValueSingleQuoted\"),this.delegate.beginAttributeValue(!0),this.consume()):s===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.transitionTo(\"attributeValueUnquoted\"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(s))},attributeValueDoubleQuoted:function(){var s=this.consume();s==='\"'?(this.delegate.finishAttributeValue(),this.transitionTo(\"afterAttributeValueQuoted\")):s===\"&\"?this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\"):this.delegate.appendToAttributeValue(s)},attributeValueSingleQuoted:function(){var s=this.consume();s===\"'\"?(this.delegate.finishAttributeValue(),this.transitionTo(\"afterAttributeValueQuoted\")):s===\"&\"?this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\"):this.delegate.appendToAttributeValue(s)},attributeValueUnquoted:function(){var s=this.peek();_(s)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"beforeAttributeName\")):s===\"/\"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):s===\"&\"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\")):s===\">\"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.consume(),this.delegate.appendToAttributeValue(s))},afterAttributeValueQuoted:function(){var s=this.peek();_(s)?(this.consume(),this.transitionTo(\"beforeAttributeName\")):s===\"/\"?(this.consume(),this.transitionTo(\"selfClosingStartTag\")):s===\">\"?(this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.transitionTo(\"beforeAttributeName\")},selfClosingStartTag:function(){var s=this.peek();s===\">\"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.transitionTo(\"beforeAttributeName\")},endTagOpen:function(){var s=this.consume();(s===\"@\"||s===\":\"||wn(s))&&(this.transitionTo(\"endTagName\"),this.tagNameBuffer=\"\",this.delegate.beginEndTag(),this.appendToTagName(s))}},this.reset()}return e.prototype.reset=function(){this.transitionTo(\"beforeData\"),this.input=\"\",this.tagNameBuffer=\"\",this.index=0,this.line=1,this.column=0,this.delegate.reset()},e.prototype.transitionTo=function(t){this.state=t},e.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},e.prototype.tokenizePart=function(t){for(this.input+=Zs(t);this.index\"||t===\"style\"&&this.input.substring(this.index,this.index+8)!==\"\"||t===\"script\"&&this.input.substring(this.index,this.index+9)!==\"<\\/script>\"},e}(),Ka=function(){function e(t,r){r===void 0&&(r={}),this.options=r,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new hr(this,t,r.mode),this._currentAttribute=void 0}return e.prototype.tokenize=function(t){return this.tokens=[],this.tokenizer.tokenize(t),this.tokens},e.prototype.tokenizePart=function(t){return this.tokens=[],this.tokenizer.tokenizePart(t),this.tokens},e.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},e.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},e.prototype.current=function(){var t=this.token;if(t===null)throw new Error(\"token was unexpectedly null\");if(arguments.length===0)return t;for(var r=0;r\\xA0]/u,ao=new RegExp(ei.source,\"gu\");var br=new Set([\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]);function ri(e){var t;return br.has(e.toLowerCase())&&((t=e[0])==null?void 0:t.toLowerCase())===e[0]}function ue(e){return e.length>0}function ie(e,t=\"unexpected empty list\"){return e}function Nr(e){return e.length===0?void 0:e[e.length-1]}function ni(e){return e.length===0?void 0:e[0]}var ut=Object.freeze({line:1,column:0}),si=Object.freeze({source:\"(synthetic)\",start:ut,end:ut}),se=Object.freeze({source:\"(nonexistent)\",start:ut,end:ut}),ct=Object.freeze({source:\"(broken)\",start:ut,end:ut}),yr=class{_whens;constructor(t){this._whens=t}first(t){for(let r of this._whens){let n=r.match(t);if(ue(n))return n[0]}return null}},Le=class{_map=new Map;get(t,r){let n=this._map.get(t);return n||(n=r(),this._map.set(t,n),n)}add(t,r){this._map.set(t,r)}match(t){let r=function(a){switch(a){case\"Broken\":case\"InternalsSynthetic\":case\"NonExistent\":return\"IS_INVISIBLE\";default:return a}}(t),n=[],s=this._map.get(r),i=this._map.get(\"MATCH_ANY\");return s&&n.push(s),i&&n.push(i),n}};function On(e){return e(new kr).validate()}var kr=class{_whens=new Le;validate(){return(t,r)=>this.matchFor(t.kind,r.kind)(t,r)}matchFor(t,r){let n=this._whens.match(t);return ue(n),new yr(n).first(r)}when(t,r,n){return this._whens.get(t,()=>new Le).add(r,n),this}},Sr=class e{static synthetic(t){let r=D.synthetic(t);return new e({loc:r,chars:t})}static load(t,r){return new e({loc:D.load(t,r[1]),chars:r[0]})}chars;loc;constructor(t){this.loc=t.loc,this.chars=t.chars}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}},D=class e{static get NON_EXISTENT(){return new X(\"NonExistent\",se).wrap()}static load(t,r){return typeof r==\"number\"?e.forCharPositions(t,r,r):typeof r==\"string\"?e.synthetic(r):Array.isArray(r)?e.forCharPositions(t,r[0],r[1]):r===\"NonExistent\"?e.NON_EXISTENT:r===\"Broken\"?e.broken(ct):void bn(r)}static forHbsLoc(t,r){let n=new pt(t,r.start),s=new pt(t,r.end);return new oe(t,{start:n,end:s},r).wrap()}static forCharPositions(t,r,n){let s=new wt(t,r),i=new wt(t,n);return new ae(t,{start:s,end:i}).wrap()}static synthetic(t){return new X(\"InternalsSynthetic\",se,t).wrap()}static broken(t=ct){return new X(\"Broken\",t).wrap()}isInvisible;constructor(t){var r;this.data=t,this.isInvisible=(r=t.kind)!==\"CharPosition\"&&r!==\"HbsPosition\"}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let t=this.data.toHbsSpan();return t===null?ct:t.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(t){return K(t.data,this.data.getEnd())}withEnd(t){return K(this.data.getStart(),t.data)}asString(){return this.data.asString()}toSlice(t){let r=this.data.asString();return!1,new Sr({loc:this,chars:t||r})}get start(){return this.loc.start}set start(t){this.data.locDidUpdate({start:t})}get end(){return this.loc.end}set end(t){this.data.locDidUpdate({end:t})}get source(){return this.module}collapse(t){switch(t){case\"start\":return this.getStart().collapsed();case\"end\":return this.getEnd().collapsed()}}extend(t){return K(this.data.getStart(),t.data.getEnd())}serialize(){return this.data.serialize()}slice({skipStart:t=0,skipEnd:r=0}){return K(this.getStart().move(t).data,this.getEnd().move(-r).data)}sliceStartChars({skipStart:t=0,chars:r}){return K(this.getStart().move(t).data,this.getStart().move(t+r).data)}sliceEndChars({skipEnd:t=0,chars:r}){return K(this.getEnd().move(t-r).data,this.getStart().move(-t).data)}},ce,ae=class{constructor(t,r){Me(this,\"kind\",\"CharPosition\");Pt(this,ce,null);this.source=t,this.charPositions=r}wrap(){return new D(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let t=I(this,ce);if(t===null){let r=this.charPositions.start.toHbsPos(),n=this.charPositions.end.toHbsPos();t=J(this,ce,r===null||n===null?ht:new oe(this.source,{start:r,end:n}))}return t===ht?null:t}serialize(){let{start:{charPos:t},end:{charPos:r}}=this.charPositions;return t===r?t:[t,r]}toCharPosSpan(){return this}};ce=new WeakMap;var St,vt,oe=class{constructor(t,r,n=null){Me(this,\"kind\",\"HbsPosition\");Pt(this,St,null);Pt(this,vt);this.source=t,this.hbsPositions=r,J(this,vt,n)}serialize(){let t=this.toCharPosSpan();return t===null?\"Broken\":t.wrap().serialize()}wrap(){return new D(this)}updateProvided(t,r){I(this,vt)&&(I(this,vt)[r]=t),J(this,St,null),J(this,vt,{start:t,end:t})}locDidUpdate({start:t,end:r}){t!==void 0&&(this.updateProvided(t,\"start\"),this.hbsPositions.start=new pt(this.source,t,null)),r!==void 0&&(this.updateProvided(r,\"end\"),this.hbsPositions.end=new pt(this.source,r,null))}asString(){let t=this.toCharPosSpan();return t===null?\"\":t.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let t=I(this,St);if(t===null){let r=this.hbsPositions.start.toCharPos(),n=this.hbsPositions.end.toCharPos();if(!r||!n)return t=J(this,St,ht),null;t=J(this,St,new ae(this.source,{start:r,end:n}))}return t===ht?null:t}};St=new WeakMap,vt=new WeakMap;var X=class{constructor(t,r,n=null){this.kind=t,this.loc=r,this.string=n}serialize(){switch(this.kind){case\"Broken\":case\"NonExistent\":return this.kind;case\"InternalsSynthetic\":return this.string||\"\"}}wrap(){return new D(this)}asString(){return this.string||\"\"}locDidUpdate({start:t,end:r}){t!==void 0&&(this.loc.start=t),r!==void 0&&(this.loc.end=r)}getModule(){return\"an unknown module\"}getStart(){return new le(this.kind,this.loc.start)}getEnd(){return new le(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return ct}},K=On(e=>e.when(\"HbsPosition\",\"HbsPosition\",(t,r)=>new oe(t.source,{start:t,end:r}).wrap()).when(\"CharPosition\",\"CharPosition\",(t,r)=>new ae(t.source,{start:t,end:r}).wrap()).when(\"CharPosition\",\"HbsPosition\",(t,r)=>{let n=r.toCharPos();return n===null?new X(\"Broken\",ct).wrap():K(t,n)}).when(\"HbsPosition\",\"CharPosition\",(t,r)=>{let n=t.toCharPos();return n===null?new X(\"Broken\",ct).wrap():K(n,r)}).when(\"IS_INVISIBLE\",\"MATCH_ANY\",t=>new X(t.kind,ct).wrap()).when(\"MATCH_ANY\",\"IS_INVISIBLE\",(t,r)=>new X(r.kind,ct).wrap())),ht=\"BROKEN\",Ht=class e{static forHbsPos(t,r){return new pt(t,r,null).wrap()}static broken(t=ut){return new le(\"Broken\",t).wrap()}constructor(t){this.data=t}get offset(){let t=this.data.toCharPos();return t===null?null:t.offset}eql(t){return ii(this.data,t.data)}until(t){return K(this.data,t.data)}move(t){let r=this.data.toCharPos();if(r===null)return e.broken();{let n=r.offset+t;return r.source.validate(n)?new wt(r.source,n).wrap():e.broken()}}collapsed(){return K(this.data,this.data)}toJSON(){return this.data.toJSON()}},wt=class{kind=\"CharPosition\";_locPos=null;constructor(t,r){this.source=t,this.charPos=r}toCharPos(){return this}toJSON(){let t=this.toHbsPos();return t===null?ut:t.toJSON()}wrap(){return new Ht(this)}get offset(){return this.charPos}toHbsPos(){let t=this._locPos;if(t===null){let r=this.source.hbsPosFor(this.charPos);this._locPos=t=r===null?ht:new pt(this.source,r,this.charPos)}return t===ht?null:t}},pt=class{kind=\"HbsPosition\";_charPos;constructor(t,r,n=null){this.source=t,this.hbsPos=r,this._charPos=n===null?null:new wt(t,n)}toCharPos(){let t=this._charPos;if(t===null){let r=this.source.charPosFor(this.hbsPos);this._charPos=t=r===null?ht:new wt(this.source,r)}return t===ht?null:t}toJSON(){return this.hbsPos}wrap(){return new Ht(this)}toHbsPos(){return this}},le=class{constructor(t,r){this.kind=t,this.pos=r}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new Ht(this)}get offset(){return null}},ii=On(e=>e.when(\"HbsPosition\",\"HbsPosition\",({hbsPos:t},{hbsPos:r})=>t.column===r.column&&t.line===r.line).when(\"CharPosition\",\"CharPosition\",({charPos:t},{charPos:r})=>t===r).when(\"CharPosition\",\"HbsPosition\",({offset:t},r)=>{var n;return t===((n=r.toCharPos())==null?void 0:n.offset)}).when(\"HbsPosition\",\"CharPosition\",(t,{offset:r})=>{var n;return((n=t.toCharPos())==null?void 0:n.offset)===r}).when(\"MATCH_ANY\",\"MATCH_ANY\",()=>!1)),Et=class e{static from(t,r={}){var n;return new e(t,(n=r.meta)==null?void 0:n.moduleName)}constructor(t,r=\"an unknown module\"){this.source=t,this.module=r}validate(t){return t>=0&&t<=this.source.length}slice(t,r){return this.source.slice(t,r)}offsetFor(t,r){return Ht.forHbsPos(this,{line:t,column:r})}spanFor({start:t,end:r}){return D.forHbsLoc(this,{start:{line:t.line,column:t.column},end:{line:r.line,column:r.column}})}hbsPosFor(t){let r=0,n=0;if(t>this.source.length)return null;for(;;){let s=this.source.indexOf(`\n`,n);if(t<=s||s===-1)return{line:r+1,column:t-n};r+=1,n=s+1}}charPosFor(t){let{line:r,column:n}=t,s=this.source.length,i=0,a=0;for(;ao)return o;if(!1){let c=this.hbsPosFor(a+n);c.line,c.column}return a+n}if(o===-1)return 0;i+=1,a=o+1}return s}};function S(e,t){let{module:r,loc:n}=t,{line:s,column:i}=n.start,a=t.asString(),o=a?`\n\n|\n| ${a.split(`\n`).join(`\n| `)}\n|\n\n`:\"\",c=new Error(`${e}: ${o}(error occurred in '${r}' @ line ${s} : column ${i})`);return c.name=\"SyntaxError\",c.location=t,c.code=a,c}var ai={Template:[\"body\"],Block:[\"body\"],MustacheStatement:[\"path\",\"params\",\"hash\"],BlockStatement:[\"path\",\"params\",\"hash\",\"program\",\"inverse\"],ElementModifierStatement:[\"path\",\"params\",\"hash\"],CommentStatement:[],MustacheCommentStatement:[],ElementNode:[\"attributes\",\"modifiers\",\"children\",\"comments\"],AttrNode:[\"value\"],TextNode:[],ConcatStatement:[\"parts\"],SubExpression:[\"path\",\"params\",\"hash\"],PathExpression:[],StringLiteral:[],BooleanLiteral:[],NumberLiteral:[],NullLiteral:[],UndefinedLiteral:[],Hash:[\"pairs\"],HashPair:[\"value\"]},xr=function(){function e(t,r,n,s){let i=Error.call(this,t);this.key=s,this.message=t,this.node=r,this.parent=n,i.stack&&(this.stack=i.stack)}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}();function Nn(e,t,r){return new xr(\"Cannot remove a node unless it is part of an array\",e,t,r)}function oi(e,t,r){return new xr(\"Cannot replace a node with multiple nodes unless it is part of an array\",e,t,r)}function xn(e,t){return new xr(\"Replacing and removing in key handlers is not yet supported.\",e,null,t)}var Ft=class{node;parent;parentKey;constructor(t,r=null,n=null){this.node=t,this.parent=r,this.parentKey=n}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new vr(this)}}},vr=class{path;constructor(t){this.path=t}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}};function Bn(e){return typeof e==\"function\"?e:e.enter}function In(e){return typeof e==\"function\"?void 0:e.exit}function De(e,t){let r,n,s,{node:i,parent:a,parentKey:o}=t,c=function(h,p){if(h.Program&&(p===\"Template\"&&!h.Template||p===\"Block\"&&!h.Block))return h.Program;let m=h[p];return m!==void 0?m:h.All}(e,i.type);if(c!==void 0&&(r=Bn(c),n=In(c)),r!==void 0&&(s=r(i,t)),s!=null){if(JSON.stringify(i)!==JSON.stringify(s))return Array.isArray(s)?(Rn(e,s,a,o),s):De(e,new Ft(s,a,o))||s;s=void 0}if(s===void 0){let h=ai[i.type];for(let p=0;ptypeof t==\"string\"?f.var({name:t,loc:D.synthetic(t)}):t)}function Ln(e=[],t=[],r=!1,n){return f.blockItself({body:e,params:Vn(t),chained:r,loc:T(n||null)})}function Dn(e=[],t=[],r){return f.template({body:e,blockParams:t,loc:T(r||null)})}function T(...e){if(e.length===1){let t=e[0];return t&&typeof t==\"object\"?D.forHbsLoc(fr(),t):D.forHbsLoc(fr(),si)}{let[t,r,n,s,i]=e,a=i?new Et(\"\",i):fr();return D.forHbsLoc(a,{start:{line:t,column:r},end:{line:n||t,column:s||r}})}}var hi={mustache:function(e,t=[],r=ne([]),n=!1,s,i){return f.mustache({path:lt(e),params:t,hash:r,trusting:n,strip:i,loc:T(s||null)})},block:function(e,t,r,n,s=null,i,a,o,c){let h,p=null;return h=n.type===\"Template\"?f.blockItself({params:Vn(n.blockParams),body:n.body,loc:n.loc}):n,(s==null?void 0:s.type)===\"Template\"?(s.blockParams.length,p=f.blockItself({params:[],body:s.body,loc:s.loc})):p=s,f.block({path:lt(e),params:t||[],hash:r||ne([]),defaultBlock:h,elseBlock:p,loc:T(i||null),openStrip:a,inverseStrip:o,closeStrip:c})},comment:function(e,t){return f.comment({value:e,loc:T(t||null)})},mustacheComment:function(e,t){return f.mustacheComment({value:e,loc:T(t||null)})},element:function(e,t={}){let r,n,{attrs:s,blockParams:i,modifiers:a,comments:o,children:c,openTag:h,closeTag:p,loc:m}=t;typeof e==\"string\"?e.endsWith(\"/\")?(r=lt(e.slice(0,-1)),n=!0):r=lt(e):\"type\"in e?(e.type,e.type,r=e):\"path\"in e?(e.path.type,e.path.type,r=e.path,n=e.selfClosing):(r=lt(e.name),n=e.selfClosing);let v=i==null?void 0:i.map(E=>typeof E==\"string\"?Pn(E):E),g=null;return p?g=T(p||null):p===void 0&&(g=n||ri(r.original)?null:T(null)),f.element({path:r,selfClosing:n||!1,attributes:s||[],params:v||[],modifiers:a||[],comments:o||[],children:c||[],openTag:T(h||null),closeTag:g,loc:T(m||null)})},elementModifier:function(e,t,r,n){return f.elementModifier({path:lt(e),params:t||[],hash:r||ne([]),loc:T(n||null)})},attr:function(e,t,r){return f.attr({name:e,value:t,loc:T(r||null)})},text:function(e=\"\",t){return f.text({chars:e,loc:T(t||null)})},sexpr:function(e,t=[],r=ne([]),n){return f.sexpr({path:lt(e),params:t,hash:r,loc:T(n||null)})},concat:function(e,t){if(!ue(e))throw new Error(\"b.concat requires at least one part\");return f.concat({parts:e,loc:T(t||null)})},hash:ne,pair:function(e,t,r){return f.pair({key:e,value:t,loc:T(r||null)})},literal:Pe,program:function(e,t,r){return t&&t.length?Ln(e,t,!1,r):Dn(e,[],r)},blockItself:Ln,template:Dn,loc:T,pos:function(e,t){return f.pos({line:e,column:t})},path:lt,fullPath:function(e,t=[],r){return f.path({head:e,tail:t,loc:T(r||null)})},head:function(e,t){return f.head({original:e,loc:T(t||null)})},at:function(e,t){return f.atName({name:e,loc:T(t||null)})},var:Pn,this:function(e){return f.this({loc:T(e||null)})},string:mr(\"StringLiteral\"),boolean:mr(\"BooleanLiteral\"),number:mr(\"NumberLiteral\"),undefined:()=>Pe(\"UndefinedLiteral\",void 0),null:()=>Pe(\"NullLiteral\",null)};function mr(e){return function(t,r){return Pe(e,t,r)}}var Ae={close:!1,open:!1},f=new class{pos({line:e,column:t}){return{line:e,column:t}}blockItself({body:e,params:t,chained:r=!1,loc:n}){return{type:\"Block\",body:e,params:t,get blockParams(){return this.params.map(s=>s.name)},set blockParams(s){this.params=s.map(i=>f.var({name:i,loc:D.synthetic(i)}))},chained:r,loc:n}}template({body:e,blockParams:t,loc:r}){return{type:\"Template\",body:e,blockParams:t,loc:r}}mustache({path:e,params:t,hash:r,trusting:n,loc:s,strip:i=Ae}){return function({path:a,params:o,hash:c,trusting:h,strip:p,loc:m}){let v={type:\"MustacheStatement\",path:a,params:o,hash:c,trusting:h,strip:p,loc:m};return Object.defineProperty(v,\"escaped\",{enumerable:!1,get(){return!this.trusting},set(g){this.trusting=!g}}),v}({path:e,params:t,hash:r,trusting:n,strip:i,loc:s})}block({path:e,params:t,hash:r,defaultBlock:n,elseBlock:s=null,loc:i,openStrip:a=Ae,inverseStrip:o=Ae,closeStrip:c=Ae}){return{type:\"BlockStatement\",path:e,params:t,hash:r,program:n,inverse:s,loc:i,openStrip:a,inverseStrip:o,closeStrip:c}}comment({value:e,loc:t}){return{type:\"CommentStatement\",value:e,loc:t}}mustacheComment({value:e,loc:t}){return{type:\"MustacheCommentStatement\",value:e,loc:t}}concat({parts:e,loc:t}){return{type:\"ConcatStatement\",parts:e,loc:t}}element({path:e,selfClosing:t,attributes:r,modifiers:n,params:s,comments:i,children:a,openTag:o,closeTag:c,loc:h}){let p=t;return{type:\"ElementNode\",path:e,attributes:r,modifiers:n,params:s,comments:i,children:a,openTag:o,closeTag:c,loc:h,get tag(){return this.path.original},set tag(m){this.path.original=m},get blockParams(){return this.params.map(m=>m.name)},set blockParams(m){this.params=m.map(v=>f.var({name:v,loc:D.synthetic(v)}))},get selfClosing(){return p},set selfClosing(m){p=m,this.closeTag=m?null:D.synthetic(``)}}}elementModifier({path:e,params:t,hash:r,loc:n}){return{type:\"ElementModifierStatement\",path:e,params:t,hash:r,loc:n}}attr({name:e,value:t,loc:r}){return{type:\"AttrNode\",name:e,value:t,loc:r}}text({chars:e,loc:t}){return{type:\"TextNode\",chars:e,loc:t}}sexpr({path:e,params:t,hash:r,loc:n}){return{type:\"SubExpression\",path:e,params:t,hash:r,loc:n}}path({head:e,tail:t,loc:r}){return function({head:n,tail:s,loc:i}){let a={type:\"PathExpression\",head:n,tail:s,get original(){return[this.head.original,...this.tail].join(\".\")},set original(o){let[c,...h]=ie(o.split(\".\"));this.head=hi.head(c,this.head.loc),this.tail=h},loc:i};return Object.defineProperty(a,\"parts\",{enumerable:!1,get(){let o=ie(this.original.split(\".\"));return o[0]===\"this\"?o.shift():o[0].startsWith(\"@\")&&(o[0]=o[0].slice(1)),Object.freeze(o)},set(o){var h;let c=[...o];c[0]===\"this\"||(h=c[0])!=null&&h.startsWith(\"@\")||(this.head.type===\"ThisHead\"?c.unshift(\"this\"):this.head.type===\"AtHead\"&&(c[0]=`@${c[0]}`)),this.original=c.join(\".\")}}),Object.defineProperty(a,\"this\",{enumerable:!1,get(){return this.head.type===\"ThisHead\"}}),Object.defineProperty(a,\"data\",{enumerable:!1,get(){return this.head.type===\"AtHead\"}}),a}({head:e,tail:t,loc:r})}head({original:e,loc:t}){return e===\"this\"?this.this({loc:t}):e[0]===\"@\"?this.atName({name:e,loc:t}):this.var({name:e,loc:t})}this({loc:e}){return{type:\"ThisHead\",get original(){return\"this\"},loc:e}}atName({name:e,loc:t}){let r=\"\",n={type:\"AtHead\",get name(){return r},set name(s){s[0],s.indexOf(\".\"),r=s},get original(){return this.name},set original(s){this.name=s},loc:t};return n.name=e,n}var({name:e,loc:t}){let r=\"\",n={type:\"VarHead\",get name(){return r},set name(s){s[0],s.indexOf(\".\"),r=s},get original(){return this.name},set original(s){this.name=s},loc:t};return n.name=e,n}hash({pairs:e,loc:t}){return{type:\"Hash\",pairs:e,loc:t}}pair({key:e,value:t,loc:r}){return{type:\"HashPair\",key:e,value:t,loc:r}}literal({type:e,value:t,loc:r}){return function({type:n,value:s,loc:i}){let a={type:n,value:s,loc:i};return Object.defineProperty(a,\"original\",{enumerable:!1,get(){return this.value},set(o){this.value=o}}),a}({type:e,value:t,loc:r})}},Er=class{elementStack=[];lines;source;currentAttribute=null;currentNode=null;tokenizer;constructor(t,r=new ur(Tn),n=\"precompile\"){this.source=t,this.lines=t.source.split(/\\r\\n?|\\n/u),this.tokenizer=new hr(this,r,n)}offset(){let{line:t,column:r}=this.tokenizer;return this.source.offsetFor(t,r)}pos({line:t,column:r}){return this.source.offsetFor(t,r)}finish(t){return rr({},t,{loc:t.start.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){let t=this.currentNode;return t&&(t.type===\"StartTag\"||t.type),t}get currentStartTag(){let t=this.currentNode;return t&&t.type,t}get currentEndTag(){let t=this.currentNode;return t&&t.type,t}get currentComment(){let t=this.currentNode;return t&&t.type,t}get currentData(){let t=this.currentNode;return t&&t.type,t}acceptNode(t){return this[t.type](t)}currentElement(){return Nr(ie(this.elementStack))}sourceForNode(t,r){let n,s,i,a=t.loc.start.line-1,o=a-1,c=t.loc.start.column,h=[];for(r?(s=r.loc.end.line-1,i=r.loc.end.column):(s=t.loc.end.line-1,i=t.loc.end.column);o=E?-1:v.indexOf(N,g),x===-1||x+N.length>E?(g=E,w=this.source.spanFor(se)):(g=x,w=m.sliceStartChars({skipStart:g,chars:N.length}),g+=N.length),a.push(f.var({name:N,loc:w}))}}t.program.loc||(t.program.loc=se),t.inverse&&!t.inverse.loc&&(t.inverse.loc=se);let o=this.Program(t.program,a),c=t.inverse?this.Program(t.inverse,[]):null,h=f.block({path:r,params:n,hash:s,defaultBlock:o,elseBlock:c,loc:this.source.spanFor(t.loc),openStrip:t.openStrip,inverseStrip:t.inverseStrip,closeStrip:t.closeStrip});Vt(this.currentElement(),h)}MustacheStatement(t){var o;(o=this.pendingError)==null||o.mustache(this.source.spanFor(t.loc));let{tokenizer:r}=this;if(r.state===\"comment\")return void this.appendToCommentData(this.sourceForNode(t));let n,{escaped:s,loc:i,strip:a}=t;if(\"original\"in t.path&&t.path.original===\"...attributes\")throw S(\"Illegal use of ...attributes\",this.source.spanFor(t.loc));if(qn(t.path))n=f.mustache({path:this.acceptNode(t.path),params:[],hash:f.hash({pairs:[],loc:this.source.spanFor(t.path.loc).collapse(\"end\")}),trusting:!s,loc:this.source.spanFor(i),strip:a});else{let{path:c,params:h,hash:p}=dr(this,t);n=f.mustache({path:c,params:h,hash:p,trusting:!s,loc:this.source.spanFor(i),strip:a})}switch(r.state){case\"tagOpen\":case\"tagName\":throw S(\"Cannot use mustaches in an elements tagname\",n.loc);case\"beforeAttributeName\":gr(this.currentStartTag,n);break;case\"attributeName\":case\"afterAttributeName\":this.beginAttributeValue(!1),this.finishAttributeValue(),gr(this.currentStartTag,n),r.transitionTo(\"beforeAttributeName\");break;case\"afterAttributeValueQuoted\":gr(this.currentStartTag,n),r.transitionTo(\"beforeAttributeName\");break;case\"beforeAttributeValue\":this.beginAttributeValue(!1),this.appendDynamicAttributeValuePart(n),r.transitionTo(\"attributeValueUnquoted\");break;case\"attributeValueDoubleQuoted\":case\"attributeValueSingleQuoted\":case\"attributeValueUnquoted\":this.appendDynamicAttributeValuePart(n);break;default:Vt(this.currentElement(),n)}return n}appendDynamicAttributeValuePart(t){this.finalizeTextPart();let r=this.currentAttr;r.isDynamic=!0,r.parts.push(t)}finalizeTextPart(){let t=this.currentAttr.currentPart;t!==null&&(this.currentAttr.parts.push(t),this.startTextPart())}startTextPart(){this.currentAttr.currentPart=null}ContentStatement(t){(function(r,n){let s=n.loc.start.line,i=n.loc.start.column,a=function(o,c){if(c===\"\")return{lines:o.split(`\n`).length-1,columns:0};let[h]=o.split(c),p=h.split(/\\n/u),m=p.length-1;return{lines:m,columns:p[m].length}}(n.original,n.value);s+=a.lines,a.lines?i=a.columns:i+=a.columns,r.line=s,r.column=i})(this.tokenizer,t),this.tokenizer.tokenizePart(t.value),this.tokenizer.flushData()}CommentStatement(t){let{tokenizer:r}=this;if(r.state===\"comment\")return this.appendToCommentData(this.sourceForNode(t)),null;let{value:n,loc:s}=t,i=f.mustacheComment({value:n,loc:this.source.spanFor(s)});switch(r.state){case\"beforeAttributeName\":case\"afterAttributeName\":this.currentStartTag.comments.push(i);break;case\"beforeData\":case\"data\":Vt(this.currentElement(),i);break;default:throw S(`Using a Handlebars comment when in the \\`${r.state}\\` state is not supported`,this.source.spanFor(t.loc))}return i}PartialStatement(t){throw S(\"Handlebars partials are not supported\",this.source.spanFor(t.loc))}PartialBlockStatement(t){throw S(\"Handlebars partial blocks are not supported\",this.source.spanFor(t.loc))}Decorator(t){throw S(\"Handlebars decorators are not supported\",this.source.spanFor(t.loc))}DecoratorBlock(t){throw S(\"Handlebars decorator blocks are not supported\",this.source.spanFor(t.loc))}SubExpression(t){let{path:r,params:n,hash:s}=dr(this,t);return f.sexpr({path:r,params:n,hash:s,loc:this.source.spanFor(t.loc)})}PathExpression(t){let{original:r}=t,n;if(r.indexOf(\"/\")!==-1){if(r.slice(0,2)===\"./\")throw S('Using \"./\" is not supported in Glimmer and unnecessary',this.source.spanFor(t.loc));if(r.slice(0,3)===\"../\")throw S('Changing context using \"../\" is not supported in Glimmer',this.source.spanFor(t.loc));if(r.indexOf(\".\")!==-1)throw S(\"Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths\",this.source.spanFor(t.loc));n=[t.parts.join(\"/\")]}else{if(r===\".\")throw S(\"'.' is not a supported path in Glimmer; check for a path with a trailing '.'\",this.source.spanFor(t.loc));n=t.parts}let s,i=!1;if(/^this(?:\\..+)?$/u.test(r)&&(i=!0),i)s=f.this({loc:this.source.spanFor({start:t.loc.start,end:{line:t.loc.start.line,column:t.loc.start.column+4}})});else if(t.data){let a=n.shift();if(a===void 0)throw S(\"Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.\",this.source.spanFor(t.loc));s=f.atName({name:`@${a}`,loc:this.source.spanFor({start:t.loc.start,end:{line:t.loc.start.line,column:t.loc.start.column+a.length+1}})})}else{let a=n.shift();if(a===void 0)throw S(\"Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.\",this.source.spanFor(t.loc));s=f.var({name:a,loc:this.source.spanFor({start:t.loc.start,end:{line:t.loc.start.line,column:t.loc.start.column+a.length}})})}return f.path({head:s,tail:n,loc:this.source.spanFor(t.loc)})}Hash(t){let r=t.pairs.map(n=>f.pair({key:n.key,value:this.acceptNode(n.value),loc:this.source.spanFor(n.loc)}));return f.hash({pairs:r,loc:this.source.spanFor(t.loc)})}StringLiteral(t){return f.literal({type:\"StringLiteral\",value:t.value,loc:this.source.spanFor(t.loc)})}BooleanLiteral(t){return f.literal({type:\"BooleanLiteral\",value:t.value,loc:this.source.spanFor(t.loc)})}NumberLiteral(t){return f.literal({type:\"NumberLiteral\",value:t.value,loc:this.source.spanFor(t.loc)})}UndefinedLiteral(t){return f.literal({type:\"UndefinedLiteral\",value:void 0,loc:this.source.spanFor(t.loc)})}NullLiteral(t){return f.literal({type:\"NullLiteral\",value:null,loc:this.source.spanFor(t.loc)})}};function dr(e,t){let r;switch(t.path.type){case\"PathExpression\":r=e.PathExpression(t.path);break;case\"SubExpression\":r=e.SubExpression(t.path);break;case\"StringLiteral\":case\"UndefinedLiteral\":case\"NullLiteral\":case\"NumberLiteral\":case\"BooleanLiteral\":{let i;throw i=t.path.type===\"BooleanLiteral\"?t.path.original.toString():t.path.type===\"StringLiteral\"?`\"${t.path.original}\"`:t.path.type===\"NullLiteral\"?\"null\":t.path.type===\"NumberLiteral\"?t.path.value.toString():\"undefined\",S(`${t.path.type} \"${t.path.type===\"StringLiteral\"?t.path.original:i}\" cannot be called as a sub-expression, replace (${i}) with ${i}`,e.source.spanFor(t.path.loc))}}let n=t.params?t.params.map(i=>e.acceptNode(i)):[],s=ue(n)?Nr(n).loc:r.loc;return{path:r,params:n,hash:t.hash?e.Hash(t.hash):f.hash({pairs:[],loc:e.source.spanFor(s).collapse(\"end\")})}}function gr(e,t){let{path:r,params:n,hash:s,loc:i}=t;if(qn(r)){let o=`{{${function(c){return c.type===\"UndefinedLiteral\"?\"undefined\":JSON.stringify(c.value)}(r)}}}`;throw S(`In <${e.name} ... ${o} ..., ${o} is not a valid modifier`,t.loc)}let a=f.elementModifier({path:r,params:n,hash:s,loc:i});e.modifiers.push(a)}function qt(e){return/[\\t\\n\\f ]/u.test(e)}var Tr=class extends wr{tagOpenLine=0;tagOpenColumn=0;reset(){this.currentNode=null}beginComment(){this.currentNode={type:\"CommentStatement\",value:\"\",start:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}appendToCommentData(t){this.currentComment.value+=t}finishComment(){Vt(this.currentElement(),f.comment(this.finish(this.currentComment)))}beginData(){this.currentNode={type:\"TextNode\",chars:\"\",start:this.offset()}}appendToData(t){this.currentData.chars+=t}finishData(){Vt(this.currentElement(),f.text(this.finish(this.currentData)))}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:\"StartTag\",name:\"\",nameStart:null,nameEnd:null,attributes:[],modifiers:[],comments:[],params:[],selfClosing:!1,start:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:\"EndTag\",name:\"\",start:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let t=this.finish(this.currentTag);if(t.type===\"StartTag\"){if(this.finishStartTag(),t.name===\":\")throw S(\"Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter\",this.source.spanFor({start:this.currentTag.start.toJSON(),end:this.offset().toJSON()}));(br.has(t.name)||t.selfClosing)&&this.finishEndTag(!0)}else t.type===\"EndTag\"&&this.finishEndTag(!1)}finishStartTag(){let{name:t,nameStart:r,nameEnd:n}=this.currentStartTag,s=r.until(n),[i,...a]=ie(t.split(\".\")),o=f.path({head:f.head({original:i,loc:s.sliceStartChars({chars:i.length})}),tail:a,loc:s}),{attributes:c,modifiers:h,comments:p,params:m,selfClosing:v,loc:g}=this.finish(this.currentStartTag),E=f.element({path:o,selfClosing:v,attributes:c,modifiers:h,comments:p,params:m,children:[],openTag:g,closeTag:v?null:D.broken(),loc:g});this.elementStack.push(E)}finishEndTag(t){let{start:r}=this.currentTag,n=this.finish(this.currentTag),s=this.elementStack.pop();this.validateEndTag(n,s,t);let i=this.currentElement();t?s.closeTag=null:s.selfClosing?s.closeTag:s.closeTag=r.until(this.offset()),s.loc=s.loc.withEnd(this.offset()),Vt(i,f.element(s))}markTagAsSelfClosing(){let t=this.currentTag;if(t.type!==\"StartTag\")throw S(\"Invalid end tag: closing tag must not be self-closing\",this.source.spanFor({start:t.start.toJSON(),end:this.offset().toJSON()}));t.selfClosing=!0}appendToTagName(t){let r=this.currentTag;if(r.name+=t,r.type===\"StartTag\"){let n=this.offset();r.nameStart===null&&(r.nameEnd,r.nameStart=n.move(-1)),r.nameEnd=n}}beginAttribute(){let t=this.offset();this.currentAttribute={name:\"\",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:t,valueSpan:t.collapsed()}}appendToAttributeName(t){this.currentAttr.name+=t,this.currentAttr.name===\"as\"&&this.parsePossibleBlockParams()}beginAttributeValue(t){this.currentAttr.isQuoted=t,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(t){let r=this.currentAttr.parts,n=r[r.length-1],s=this.currentAttr.currentPart;if(s)s.chars+=t,s.loc=s.loc.withEnd(this.offset());else{let i=this.offset();i=t===`\n`?n?n.loc.getEnd():this.currentAttr.valueSpan.getStart():i.move(-1),this.currentAttr.currentPart=f.text({chars:t,loc:i.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let t=this.currentTag,r=this.offset();if(t.type===\"EndTag\")throw S(\"Invalid end tag: closing tag must not have attributes\",this.source.spanFor({start:t.start.toJSON(),end:r.toJSON()}));let{name:n,parts:s,start:i,isQuoted:a,isDynamic:o,valueSpan:c}=this.currentAttr;if(n.startsWith(\"|\")&&s.length===0&&!a&&!o)throw S(\"Invalid block parameters syntax: block parameters must be preceded by the `as` keyword\",i.until(i.move(n.length)));let h=this.assembleAttributeValue(s,a,o,i.until(r));h.loc=c.withEnd(r);let p=f.attr({name:n,value:h,loc:i.until(r)});this.currentStartTag.attributes.push(p)}parsePossibleBlockParams(){let t=/[!\"#%&'()*+./;<=>@[\\\\\\]^`{|}~]/u;this.tokenizer.state;let r=this.currentStartTag,n=this.currentAttr,s={state:\"PossibleAs\"},i={PossibleAs:o=>{if(s.state,qt(o))s={state:\"BeforeStartPipe\"},this.tokenizer.transitionTo(\"afterAttributeName\"),this.tokenizer.consume();else{if(o===\"|\")throw S('Invalid block parameters syntax: expecting at least one space character between \"as\" and \"|\"',n.start.until(this.offset().move(1)));s={state:\"Done\"}}},BeforeStartPipe:o=>{s.state,qt(o)?this.tokenizer.consume():o===\"|\"?(s={state:\"BeforeBlockParamName\"},this.tokenizer.transitionTo(\"beforeAttributeName\"),this.tokenizer.consume()):s={state:\"Done\"}},BeforeBlockParamName:o=>{if(s.state,qt(o))this.tokenizer.consume();else if(o===\"\")s={state:\"Done\"},this.pendingError={mustache(c){throw S(\"Invalid block parameters syntax: mustaches cannot be used inside parameters list\",c)},eof(c){throw S('Invalid block parameters syntax: expecting the tag to be closed with \">\" or \"/>\" after parameters list',n.start.until(c))}};else if(o===\"|\"){if(r.params.length===0)throw S(\"Invalid block parameters syntax: empty parameters list, expecting at least one identifier\",n.start.until(this.offset().move(1)));s={state:\"AfterEndPipe\"},this.tokenizer.consume()}else{if(o===\">\"||o===\"/\")throw S('Invalid block parameters syntax: incomplete parameters list, expecting \"|\" but the tag was closed prematurely',n.start.until(this.offset().move(1)));s={state:\"BlockParamName\",name:o,start:this.offset()},this.tokenizer.consume()}},BlockParamName:o=>{if(s.state,o===\"\")s={state:\"Done\"},this.pendingError={mustache(c){throw S(\"Invalid block parameters syntax: mustaches cannot be used inside parameters list\",c)},eof(c){throw S('Invalid block parameters syntax: expecting the tag to be closed with \">\" or \"/>\" after parameters list',n.start.until(c))}};else if(o===\"|\"||qt(o)){let c=s.start.until(this.offset());if(s.name===\"this\"||t.test(s.name))throw S(`Invalid block parameters syntax: invalid identifier name \\`${s.name}\\``,c);r.params.push(f.var({name:s.name,loc:c})),s=o===\"|\"?{state:\"AfterEndPipe\"}:{state:\"BeforeBlockParamName\"},this.tokenizer.consume()}else{if(o===\">\"||o===\"/\")throw S('Invalid block parameters syntax: expecting \"|\" but the tag was closed prematurely',n.start.until(this.offset().move(1)));s.name+=o,this.tokenizer.consume()}},AfterEndPipe:o=>{s.state,qt(o)?this.tokenizer.consume():o===\"\"?(s={state:\"Done\"},this.pendingError={mustache(c){throw S(\"Invalid block parameters syntax: modifiers cannot follow parameters list\",c)},eof(c){throw S('Invalid block parameters syntax: expecting the tag to be closed with \">\" or \"/>\" after parameters list',n.start.until(c))}}):o===\">\"||o===\"/\"?s={state:\"Done\"}:(s={state:\"Error\",message:'Invalid block parameters syntax: expecting the tag to be closed with \">\" or \"/>\" after parameters list',start:this.offset()},this.tokenizer.consume())},Error:o=>{if(s.state,o===\"\"||o===\"/\"||o===\">\"||qt(o))throw S(s.message,s.start.until(this.offset()));this.tokenizer.consume()},Done:()=>{}},a;do a=this.tokenizer.peek(),i[s.state](a);while(s.state!==\"Done\"&&a!==\"\");s.state}reportSyntaxError(t){throw S(t,this.offset().collapsed())}assembleConcatenatedValue(t){for(let s of t)if(s.type!==\"MustacheStatement\"&&s.type!==\"TextNode\")throw S(`Unsupported node in quoted attribute value: ${s.type}`,s.loc);let r=ni(t),n=Nr(t);return f.concat({parts:t,loc:this.source.spanFor(r.loc).extend(this.source.spanFor(n.loc))})}validateEndTag(t,r,n){if(br.has(t.name)&&!n)throw S(`<${t.name}> elements do not need end tags. You should remove it`,t.loc);if(r.tag===void 0)throw S(`Closing tag without an open tag`,t.loc);if(r.tag!==t.name)throw S(`Closing tag did not match last open tag <${r.tag}> (on line ${r.loc.startPosition.line})`,t.loc)}assembleAttributeValue(t,r,n,s){if(n){if(r)return this.assembleConcatenatedValue(t);{let[i,a]=t;if(a===void 0||a.type===\"TextNode\"&&a.chars===\"/\")return i;throw S(\"An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'\",s)}}return ue(t)?t[0]:f.text({chars:\"\",loc:s})}},pi={},Cr=class extends ur{constructor(){super({})}parse(){}};function Hn(e,t={}){var c,h,p;let r,n,s,i=t.mode||\"precompile\";typeof e==\"string\"?(r=new Et(e,(c=t.meta)==null?void 0:c.moduleName),n=i===\"codemod\"?Ne(e,t.parseOptions):cr(e,t.parseOptions)):e instanceof Et?(r=e,n=i===\"codemod\"?Ne(e.source,t.parseOptions):cr(e.source,t.parseOptions)):(r=new Et(\"\",(h=t.meta)==null?void 0:h.moduleName),n=e),i===\"codemod\"&&(s=new Cr);let a=D.forCharPositions(r,0,r.source.length);n.loc={source:\"(program)\",start:a.startPosition,end:a.endPosition};let o=new Tr(r,s,i).parse(n,t.locals??[]);if((p=t==null?void 0:t.plugins)!=null&&p.ast)for(let m of t.plugins.ast)ui(o,m(rr({},t,{syntax:pi},{plugins:void 0})).visitor);return o}var fi={resolution:()=>xe.GetStrictKeyword,serialize:()=>\"Strict\",isAngleBracket:!1},oo={...fi,isAngleBracket:!0};var _e=`\n`,Fn=\"\\r\",Un=function(){function e(t){this.length=t.length;for(var r=[0],n=0;nthis.length)return null;for(var r=0,n=this.offsets;n[r+1]<=t;)r++;var s=t-n[r];return{line:r,column:s}},e.prototype.indexForLocation=function(t){var r=t.line,n=t.column;return r<0||r>=this.offsets.length||n<0||n>this.lengthOfLine(r)?null:this.offsets[r]+n},e.prototype.lengthOfLine=function(t){var r=this.offsets[t],n=t===this.offsets.length-1?this.length:this.offsets[t+1];return n-r},e}();function mi(e,t){let r=new SyntaxError(e+\" (\"+t.loc.start.line+\":\"+t.loc.start.column+\")\");return Object.assign(r,t)}var Mn=mi;function di(e){let t=e.children??e.body;if(t)for(let r=0;rt.indexForLocation({line:s-1,column:i}),n=s=>{let{start:i,end:a}=s.loc;i.offset=r(i),a.offset=r(a)};return()=>({name:\"prettierParsePlugin\",visitor:{All(s){n(s),di(s)}}})}function bi(e){let t;try{t=Hn(e,{mode:\"codemod\",plugins:{ast:[gi(e)]}})}catch(r){let n=ki(r);if(n){let s=yi(r);throw Mn(s,{loc:n,cause:r})}throw r}return t}function yi(e){let{message:t}=e,r=t.split(`\n`);return r.length>=4&&/^Parse error on line \\d+:$/u.test(r[0])&&/^-*\\^$/u.test(it(!1,r,-2))?it(!1,r,-1):r.length>=4&&/:\\s?$/u.test(r[0])&&/^\\(error occurred in '.*?' @ line \\d+ : column \\d+\\)$/u.test(it(!1,r,-1))&&r[1]===\"\"&&it(!1,r,-2)===\"\"&&r.slice(2,-2).every(n=>n.startsWith(\"|\"))?r[0].trim().slice(0,-1):t}function ki(e){let{location:t,hash:r}=e;if(t){let{start:n,end:s}=t;return typeof s.line!=\"number\"?{start:n}:t}if(r){let{loc:{last_line:n,last_column:s}}=r;return{start:{line:n,column:s+1}}}}var Si={parse:bi,astFormat:\"glimmer\",locStart:yt,locEnd:te};var vi={glimmer:fn};var wo=Pr;export{wo as default,mn as languages,Ar as parsers,vi as printers};\n", "var tt=Object.defineProperty;var Ne=(e,t)=>{for(var n in t)tt(e,n,{get:t[n],enumerable:!0})};var Te={};Ne(Te,{languages:()=>Pe,options:()=>we,parsers:()=>Ee,printers:()=>sn});var nt=(e,t,n,r)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(n,r):n.global?t.replace(n,r):t.split(n).join(r)},Y=nt;var re=\"indent\";var se=\"group\";var oe=\"if-break\";var P=\"line\";var ae=\"break-parent\";var xe=()=>{},b=xe,ce=xe;function x(e){return b(e),{type:re,contents:e}}function y(e,t={}){return b(e),ce(t.expandedStates,!0),{type:se,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function O(e,t=\"\",n={}){return b(e),t!==\"\"&&b(t),{type:oe,breakContents:e,flatContents:t,groupId:n.groupId}}var mt={type:ae};var Et={type:P,hard:!0};var k={type:P},p={type:P,soft:!0},f=[Et,mt];function E(e,t){b(e),ce(t);let n=[];for(let r=0;r{let i=!!(r!=null&&r.backwards);if(n===!1)return!1;let{length:s}=t,a=n;for(;a>=0&&a0}var ue=It;var le=class extends Error{name=\"UnexpectedNodeError\";constructor(t,n,r=\"type\"){super(`Unexpected ${n} node ${r}: ${JSON.stringify(t[r])}.`),this.node=t}},ge=le;var F=null;function w(e){if(F!==null&&typeof F.property){let t=F;return F=w.prototype=null,t}return F=w.prototype=e??Object.create(null),new w}var Ot=10;for(let e=0;e<=Ot;e++)w();function pe(e){return w(e)}function Dt(e,t=\"type\"){pe(e);function n(r){let i=r[t],s=e[i];if(!Array.isArray(s))throw Object.assign(new Error(`Missing visitor keys for '${i}'.`),{node:r});return s}return n}var ke=Dt;var J=class{constructor(t,n,r){this.start=t.start,this.end=n.end,this.startToken=t,this.endToken=n,this.source=r}get[Symbol.toStringTag](){return\"Location\"}toJSON(){return{start:this.start,end:this.end}}},V=class{constructor(t,n,r,i,s,a){this.kind=t,this.start=n,this.end=r,this.line=i,this.column=s,this.value=a,this.prev=null,this.next=null}get[Symbol.toStringTag](){return\"Token\"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},X={Name:[],Document:[\"definitions\"],OperationDefinition:[\"name\",\"variableDefinitions\",\"directives\",\"selectionSet\"],VariableDefinition:[\"variable\",\"type\",\"defaultValue\",\"directives\"],Variable:[\"name\"],SelectionSet:[\"selections\"],Field:[\"alias\",\"name\",\"arguments\",\"directives\",\"selectionSet\"],Argument:[\"name\",\"value\"],FragmentSpread:[\"name\",\"directives\"],InlineFragment:[\"typeCondition\",\"directives\",\"selectionSet\"],FragmentDefinition:[\"name\",\"variableDefinitions\",\"typeCondition\",\"directives\",\"selectionSet\"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:[\"values\"],ObjectValue:[\"fields\"],ObjectField:[\"name\",\"value\"],Directive:[\"name\",\"arguments\"],NamedType:[\"name\"],ListType:[\"type\"],NonNullType:[\"type\"],SchemaDefinition:[\"description\",\"directives\",\"operationTypes\"],OperationTypeDefinition:[\"type\"],ScalarTypeDefinition:[\"description\",\"name\",\"directives\"],ObjectTypeDefinition:[\"description\",\"name\",\"interfaces\",\"directives\",\"fields\"],FieldDefinition:[\"description\",\"name\",\"arguments\",\"type\",\"directives\"],InputValueDefinition:[\"description\",\"name\",\"type\",\"defaultValue\",\"directives\"],InterfaceTypeDefinition:[\"description\",\"name\",\"interfaces\",\"directives\",\"fields\"],UnionTypeDefinition:[\"description\",\"name\",\"directives\",\"types\"],EnumTypeDefinition:[\"description\",\"name\",\"directives\",\"values\"],EnumValueDefinition:[\"description\",\"name\",\"directives\"],InputObjectTypeDefinition:[\"description\",\"name\",\"directives\",\"fields\"],DirectiveDefinition:[\"description\",\"name\",\"arguments\",\"locations\"],SchemaExtension:[\"directives\",\"operationTypes\"],ScalarTypeExtension:[\"name\",\"directives\"],ObjectTypeExtension:[\"name\",\"interfaces\",\"directives\",\"fields\"],InterfaceTypeExtension:[\"name\",\"interfaces\",\"directives\",\"fields\"],UnionTypeExtension:[\"name\",\"directives\",\"types\"],EnumTypeExtension:[\"name\",\"directives\",\"values\"],InputObjectTypeExtension:[\"name\",\"directives\",\"fields\"]},Jn=new Set(Object.keys(X));var S;(function(e){e.QUERY=\"query\",e.MUTATION=\"mutation\",e.SUBSCRIPTION=\"subscription\"})(S||(S={}));var At=ke(X,\"kind\"),Se=At;function q(e){return e.loc.start}function Q(e){return e.loc.end}function Ce(e){return/^\\s*#[^\\S\\n]*@(?:format|prettier)\\s*(?:\\n|$)/u.test(e)}function ve(e){return`# @format\n\n`+e}function gt(e,t,n){let{node:r}=e;if(!r.description)return\"\";let i=[n(\"description\")];return r.kind===\"InputValueDefinition\"&&!r.description.block?i.push(k):i.push(f),i}var A=gt;function kt(e,t,n){let{node:r}=e;switch(r.kind){case\"Document\":return[...E(f,g(e,t,n,\"definitions\")),f];case\"OperationDefinition\":{let i=t.originalText[q(r)]!==\"{\",s=!!r.name;return[i?r.operation:\"\",i&&s?[\" \",n(\"name\")]:\"\",i&&!s&&ue(r.variableDefinitions)?\" \":\"\",be(e,n),_(e,n,r),!i&&!s?\"\":\" \",n(\"selectionSet\")]}case\"FragmentDefinition\":return[\"fragment \",n(\"name\"),be(e,n),\" on \",n(\"typeCondition\"),_(e,n,r),\" \",n(\"selectionSet\")];case\"SelectionSet\":return[\"{\",x([f,E(f,g(e,t,n,\"selections\"))]),f,\"}\"];case\"Field\":return y([r.alias?[n(\"alias\"),\": \"]:\"\",n(\"name\"),r.arguments.length>0?y([\"(\",x([p,E([O(\"\",\", \"),p],g(e,t,n,\"arguments\"))]),p,\")\"]):\"\",_(e,n,r),r.selectionSet?\" \":\"\",n(\"selectionSet\")]);case\"Name\":return r.value;case\"StringValue\":if(r.block){let i=Y(!1,r.value,'\"\"\"',String.raw`\\\"\"\"`).split(`\n`);return i.length===1&&(i[0]=i[0].trim()),i.every(s=>s===\"\")&&(i.length=0),E(f,['\"\"\"',...i,'\"\"\"'])}return['\"',Y(!1,Y(!1,r.value,/[\"\\\\]/gu,String.raw`\\$&`),`\n`,String.raw`\\n`),'\"'];case\"IntValue\":case\"FloatValue\":case\"EnumValue\":return r.value;case\"BooleanValue\":return r.value?\"true\":\"false\";case\"NullValue\":return\"null\";case\"Variable\":return[\"$\",n(\"name\")];case\"ListValue\":return y([\"[\",x([p,E([O(\"\",\", \"),p],e.map(n,\"values\"))]),p,\"]\"]);case\"ObjectValue\":{let i=t.bracketSpacing&&r.fields.length>0?\" \":\"\";return y([\"{\",i,x([p,E([O(\"\",\", \"),p],e.map(n,\"fields\"))]),p,O(\"\",i),\"}\"])}case\"ObjectField\":case\"Argument\":return[n(\"name\"),\": \",n(\"value\")];case\"Directive\":return[\"@\",n(\"name\"),r.arguments.length>0?y([\"(\",x([p,E([O(\"\",\", \"),p],g(e,t,n,\"arguments\"))]),p,\")\"]):\"\"];case\"NamedType\":return n(\"name\");case\"VariableDefinition\":return[n(\"variable\"),\": \",n(\"type\"),r.defaultValue?[\" = \",n(\"defaultValue\")]:\"\",_(e,n,r)];case\"ObjectTypeExtension\":case\"ObjectTypeDefinition\":case\"InputObjectTypeExtension\":case\"InputObjectTypeDefinition\":case\"InterfaceTypeExtension\":case\"InterfaceTypeDefinition\":{let{kind:i}=r,s=[];return i.endsWith(\"TypeDefinition\")?s.push(A(e,t,n)):s.push(\"extend \"),i.startsWith(\"ObjectType\")?s.push(\"type\"):i.startsWith(\"InputObjectType\")?s.push(\"input\"):s.push(\"interface\"),s.push(\" \",n(\"name\")),!i.startsWith(\"InputObjectType\")&&r.interfaces.length>0&&s.push(\" implements \",...vt(e,t,n)),s.push(_(e,n,r)),r.fields.length>0&&s.push([\" {\",x([f,E(f,g(e,t,n,\"fields\"))]),f,\"}\"]),s}case\"FieldDefinition\":return[A(e,t,n),n(\"name\"),r.arguments.length>0?y([\"(\",x([p,E([O(\"\",\", \"),p],g(e,t,n,\"arguments\"))]),p,\")\"]):\"\",\": \",n(\"type\"),_(e,n,r)];case\"DirectiveDefinition\":return[A(e,t,n),\"directive \",\"@\",n(\"name\"),r.arguments.length>0?y([\"(\",x([p,E([O(\"\",\", \"),p],g(e,t,n,\"arguments\"))]),p,\")\"]):\"\",r.repeatable?\" repeatable\":\"\",\" on \",...E(\" | \",e.map(n,\"locations\"))];case\"EnumTypeExtension\":case\"EnumTypeDefinition\":return[A(e,t,n),r.kind===\"EnumTypeExtension\"?\"extend \":\"\",\"enum \",n(\"name\"),_(e,n,r),r.values.length>0?[\" {\",x([f,E(f,g(e,t,n,\"values\"))]),f,\"}\"]:\"\"];case\"EnumValueDefinition\":return[A(e,t,n),n(\"name\"),_(e,n,r)];case\"InputValueDefinition\":return[A(e,t,n),n(\"name\"),\": \",n(\"type\"),r.defaultValue?[\" = \",n(\"defaultValue\")]:\"\",_(e,n,r)];case\"SchemaExtension\":return[\"extend schema\",_(e,n,r),...r.operationTypes.length>0?[\" {\",x([f,E(f,g(e,t,n,\"operationTypes\"))]),f,\"}\"]:[]];case\"SchemaDefinition\":return[A(e,t,n),\"schema\",_(e,n,r),\" {\",r.operationTypes.length>0?x([f,E(f,g(e,t,n,\"operationTypes\"))]):\"\",f,\"}\"];case\"OperationTypeDefinition\":return[r.operation,\": \",n(\"type\")];case\"FragmentSpread\":return[\"...\",n(\"name\"),_(e,n,r)];case\"InlineFragment\":return[\"...\",r.typeCondition?[\" on \",n(\"typeCondition\")]:\"\",_(e,n,r),\" \",n(\"selectionSet\")];case\"UnionTypeExtension\":case\"UnionTypeDefinition\":return y([A(e,t,n),y([r.kind===\"UnionTypeExtension\"?\"extend \":\"\",\"union \",n(\"name\"),_(e,n,r),r.types.length>0?[\" =\",O(\"\",\" \"),x([O([k,\"| \"]),E([k,\"| \"],e.map(n,\"types\"))])]:\"\"])]);case\"ScalarTypeExtension\":case\"ScalarTypeDefinition\":return[A(e,t,n),r.kind===\"ScalarTypeExtension\"?\"extend \":\"\",\"scalar \",n(\"name\"),_(e,n,r)];case\"NonNullType\":return[n(\"type\"),\"!\"];case\"ListType\":return[\"[\",n(\"type\"),\"]\"];default:throw new ge(r,\"Graphql\",\"kind\")}}function _(e,t,n){if(n.directives.length===0)return\"\";let r=E(k,e.map(t,\"directives\"));return n.kind===\"FragmentDefinition\"||n.kind===\"OperationDefinition\"?y([k,r]):[\" \",y(x([p,r]))]}function g(e,t,n,r){return e.map(({isLast:i,node:s})=>{let a=n();return!i&&Ae(t.originalText,Q(s))?[a,f]:a},r)}function St(e){return e.kind!==\"Comment\"}function Ct(e){let t=e.node;if(t.kind===\"Comment\")return\"#\"+t.value.trimEnd();throw new Error(\"Not a comment: \"+JSON.stringify(t))}function vt(e,t,n){let{node:r}=e,i=[],{interfaces:s}=r,a=e.map(n,\"interfaces\");for(let u=0;ur.value.trim()===\"prettier-ignore\")}var Lt={print:kt,massageAstNode:Le,hasPrettierIgnore:bt,insertPragma:ve,printComment:Ct,canAttachComment:St,getVisitorKeys:Se},Re=Lt;var Pe=[{linguistLanguageId:139,name:\"GraphQL\",type:\"data\",color:\"#e10098\",extensions:[\".graphql\",\".gql\",\".graphqls\"],tmScope:\"source.graphql\",aceMode:\"text\",parsers:[\"graphql\"],vscodeLanguageIds:[\"graphql\"]}];var Fe={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var Rt={bracketSpacing:Fe.bracketSpacing},we=Rt;var Ee={};Ne(Ee,{graphql:()=>rn});function Ve(e){return typeof e==\"object\"&&e!==null}function Be(e,t){if(!!!e)throw new Error(t??\"Unexpected invariant triggered.\")}var Pt=/\\r\\n|[\\n\\r]/g;function B(e,t){let n=0,r=1;for(let i of e.body.matchAll(Pt)){if(typeof i.index==\"number\"||Be(!1),i.index>=t)break;n=i.index+i[0].length,r+=1}return{line:r,column:t+1-n}}function Me(e){return fe(e.source,B(e.source,e.start))}function fe(e,t){let n=e.locationOffset.column-1,r=\"\".padStart(n)+e.body,i=t.line-1,s=e.locationOffset.line-1,a=t.line+s,u=t.line===1?n:0,l=t.column+u,T=`${e.name}:${a}:${l}\n`,h=r.split(/\\r\\n|[\\n\\r]/g),D=h[i];if(D.length>120){let I=Math.floor(l/80),ie=l%80,N=[];for(let v=0;v[\"|\",v]),[\"|\",\"^\".padStart(ie)],[\"|\",N[I+1]]])}return T+Ue([[`${a-1} |`,h[i-1]],[`${a} |`,D],[\"|\",\"^\".padStart(l)],[`${a+1} |`,h[i+1]]])}function Ue(e){let t=e.filter(([r,i])=>i!==void 0),n=Math.max(...t.map(([r])=>r.length));return t.map(([r,i])=>r.padStart(n)+(i?\" \"+i:\"\")).join(`\n`)}function Ft(e){let t=e[0];return t==null||\"kind\"in t||\"length\"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}var W=class e extends Error{constructor(t,...n){var r,i,s;let{nodes:a,source:u,positions:l,path:T,originalError:h,extensions:D}=Ft(n);super(t),this.name=\"GraphQLError\",this.path=T??void 0,this.originalError=h??void 0,this.nodes=Ye(Array.isArray(a)?a:a?[a]:void 0);let I=Ye((r=this.nodes)===null||r===void 0?void 0:r.map(N=>N.loc).filter(N=>N!=null));this.source=u??(I==null||(i=I[0])===null||i===void 0?void 0:i.source),this.positions=l??(I==null?void 0:I.map(N=>N.start)),this.locations=l&&u?l.map(N=>B(u,N)):I==null?void 0:I.map(N=>B(N.source,N.start));let ie=Ve(h==null?void 0:h.extensions)?h==null?void 0:h.extensions:void 0;this.extensions=(s=D??ie)!==null&&s!==void 0?s:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),h!=null&&h.stack?Object.defineProperty(this,\"stack\",{value:h.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,\"stack\",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return\"GraphQLError\"}toString(){let t=this.message;if(this.nodes)for(let n of this.nodes)n.loc&&(t+=`\n\n`+Me(n.loc));else if(this.source&&this.locations)for(let n of this.locations)t+=`\n\n`+fe(this.source,n);return t}toJSON(){let t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};function Ye(e){return e===void 0||e.length===0?void 0:e}function d(e,t,n){return new W(`Syntax Error: ${n}`,{source:e,positions:[t]})}var H;(function(e){e.QUERY=\"QUERY\",e.MUTATION=\"MUTATION\",e.SUBSCRIPTION=\"SUBSCRIPTION\",e.FIELD=\"FIELD\",e.FRAGMENT_DEFINITION=\"FRAGMENT_DEFINITION\",e.FRAGMENT_SPREAD=\"FRAGMENT_SPREAD\",e.INLINE_FRAGMENT=\"INLINE_FRAGMENT\",e.VARIABLE_DEFINITION=\"VARIABLE_DEFINITION\",e.SCHEMA=\"SCHEMA\",e.SCALAR=\"SCALAR\",e.OBJECT=\"OBJECT\",e.FIELD_DEFINITION=\"FIELD_DEFINITION\",e.ARGUMENT_DEFINITION=\"ARGUMENT_DEFINITION\",e.INTERFACE=\"INTERFACE\",e.UNION=\"UNION\",e.ENUM=\"ENUM\",e.ENUM_VALUE=\"ENUM_VALUE\",e.INPUT_OBJECT=\"INPUT_OBJECT\",e.INPUT_FIELD_DEFINITION=\"INPUT_FIELD_DEFINITION\"})(H||(H={}));var c;(function(e){e.NAME=\"Name\",e.DOCUMENT=\"Document\",e.OPERATION_DEFINITION=\"OperationDefinition\",e.VARIABLE_DEFINITION=\"VariableDefinition\",e.SELECTION_SET=\"SelectionSet\",e.FIELD=\"Field\",e.ARGUMENT=\"Argument\",e.FRAGMENT_SPREAD=\"FragmentSpread\",e.INLINE_FRAGMENT=\"InlineFragment\",e.FRAGMENT_DEFINITION=\"FragmentDefinition\",e.VARIABLE=\"Variable\",e.INT=\"IntValue\",e.FLOAT=\"FloatValue\",e.STRING=\"StringValue\",e.BOOLEAN=\"BooleanValue\",e.NULL=\"NullValue\",e.ENUM=\"EnumValue\",e.LIST=\"ListValue\",e.OBJECT=\"ObjectValue\",e.OBJECT_FIELD=\"ObjectField\",e.DIRECTIVE=\"Directive\",e.NAMED_TYPE=\"NamedType\",e.LIST_TYPE=\"ListType\",e.NON_NULL_TYPE=\"NonNullType\",e.SCHEMA_DEFINITION=\"SchemaDefinition\",e.OPERATION_TYPE_DEFINITION=\"OperationTypeDefinition\",e.SCALAR_TYPE_DEFINITION=\"ScalarTypeDefinition\",e.OBJECT_TYPE_DEFINITION=\"ObjectTypeDefinition\",e.FIELD_DEFINITION=\"FieldDefinition\",e.INPUT_VALUE_DEFINITION=\"InputValueDefinition\",e.INTERFACE_TYPE_DEFINITION=\"InterfaceTypeDefinition\",e.UNION_TYPE_DEFINITION=\"UnionTypeDefinition\",e.ENUM_TYPE_DEFINITION=\"EnumTypeDefinition\",e.ENUM_VALUE_DEFINITION=\"EnumValueDefinition\",e.INPUT_OBJECT_TYPE_DEFINITION=\"InputObjectTypeDefinition\",e.DIRECTIVE_DEFINITION=\"DirectiveDefinition\",e.SCHEMA_EXTENSION=\"SchemaExtension\",e.SCALAR_TYPE_EXTENSION=\"ScalarTypeExtension\",e.OBJECT_TYPE_EXTENSION=\"ObjectTypeExtension\",e.INTERFACE_TYPE_EXTENSION=\"InterfaceTypeExtension\",e.UNION_TYPE_EXTENSION=\"UnionTypeExtension\",e.ENUM_TYPE_EXTENSION=\"EnumTypeExtension\",e.INPUT_OBJECT_TYPE_EXTENSION=\"InputObjectTypeExtension\"})(c||(c={}));function je(e){return e===9||e===32}function L(e){return e>=48&&e<=57}function Ge(e){return e>=97&&e<=122||e>=65&&e<=90}function he(e){return Ge(e)||e===95}function $e(e){return Ge(e)||L(e)||e===95}function Je(e){var t;let n=Number.MAX_SAFE_INTEGER,r=null,i=-1;for(let a=0;au===0?a:a.slice(n)).slice((t=r)!==null&&t!==void 0?t:0,i+1)}function wt(e){let t=0;for(;t\",e.EOF=\"\",e.BANG=\"!\",e.DOLLAR=\"$\",e.AMP=\"&\",e.PAREN_L=\"(\",e.PAREN_R=\")\",e.SPREAD=\"...\",e.COLON=\":\",e.EQUALS=\"=\",e.AT=\"@\",e.BRACKET_L=\"[\",e.BRACKET_R=\"]\",e.BRACE_L=\"{\",e.PIPE=\"|\",e.BRACE_R=\"}\",e.NAME=\"Name\",e.INT=\"Int\",e.FLOAT=\"Float\",e.STRING=\"String\",e.BLOCK_STRING=\"BlockString\",e.COMMENT=\"Comment\"})(o||(o={}));var z=class{constructor(t){let n=new V(o.SOF,0,0,0,0);this.source=t,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return\"Lexer\"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let t=this.token;if(t.kind!==o.EOF)do if(t.next)t=t.next;else{let n=Vt(this,t.end);t.next=n,n.prev=t,t=n}while(t.kind===o.COMMENT);return t}};function qe(e){return e===o.BANG||e===o.DOLLAR||e===o.AMP||e===o.PAREN_L||e===o.PAREN_R||e===o.SPREAD||e===o.COLON||e===o.EQUALS||e===o.AT||e===o.BRACKET_L||e===o.BRACKET_R||e===o.BRACE_L||e===o.PIPE||e===o.BRACE_R}function R(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function K(e,t){return Qe(e.charCodeAt(t))&&We(e.charCodeAt(t+1))}function Qe(e){return e>=55296&&e<=56319}function We(e){return e>=56320&&e<=57343}function C(e,t){let n=e.source.body.codePointAt(t);if(n===void 0)return o.EOF;if(n>=32&&n<=126){let r=String.fromCodePoint(n);return r==='\"'?`'\"'`:`\"${r}\"`}return\"U+\"+n.toString(16).toUpperCase().padStart(4,\"0\")}function m(e,t,n,r,i){let s=e.line,a=1+n-e.lineStart;return new V(t,n,r,s,a,i)}function Vt(e,t){let n=e.source.body,r=n.length,i=t;for(;i=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function Gt(e,t){let n=e.source.body;switch(n.charCodeAt(t+1)){case 34:return{value:'\"',size:2};case 92:return{value:\"\\\\\",size:2};case 47:return{value:\"/\",size:2};case 98:return{value:\"\\b\",size:2};case 102:return{value:\"\\f\",size:2};case 110:return{value:`\n`,size:2};case 114:return{value:\"\\r\",size:2};case 116:return{value:\"\t\",size:2}}throw d(e.source,t,`Invalid character escape sequence: \"${n.slice(t,t+2)}\".`)}function $t(e,t){let n=e.source.body,r=n.length,i=e.lineStart,s=t+3,a=s,u=\"\",l=[];for(;s2?\"[\"+Ht(e)+\"]\":\"{ \"+n.map(([i,s])=>i+\": \"+te(s,t)).join(\", \")+\" }\"}function Wt(e,t){if(e.length===0)return\"[]\";if(t.length>2)return\"[Array]\";let n=Math.min(10,e.length),r=e.length-n,i=[];for(let s=0;s1&&i.push(`... ${r} more items`),\"[\"+i.join(\", \")+\"]\"}function Ht(e){let t=Object.prototype.toString.call(e).replace(/^\\[object /,\"\").replace(/]$/,\"\");if(t===\"Object\"&&typeof e.constructor==\"function\"){let n=e.constructor.name;if(typeof n==\"string\"&&n!==\"\")return n}return t}var zt=globalThis.process&&!0,He=zt?function(t,n){return t instanceof n}:function(t,n){if(t instanceof n)return!0;if(typeof t==\"object\"&&t!==null){var r;let i=n.prototype[Symbol.toStringTag],s=Symbol.toStringTag in t?t[Symbol.toStringTag]:(r=t.constructor)===null||r===void 0?void 0:r.name;if(i===s){let a=ee(t);throw new Error(`Cannot use ${i} \"${a}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`)}}return!1};var M=class{constructor(t,n=\"GraphQL request\",r={line:1,column:1}){typeof t==\"string\"||Z(!1,`Body must be a string. Received: ${ee(t)}.`),this.body=t,this.name=n,this.locationOffset=r,this.locationOffset.line>0||Z(!1,\"line in locationOffset is 1-indexed and must be positive.\"),this.locationOffset.column>0||Z(!1,\"column in locationOffset is 1-indexed and must be positive.\")}get[Symbol.toStringTag](){return\"Source\"}};function ze(e){return He(e,M)}function Ke(e,t){return new me(e,t).parseDocument()}var me=class{constructor(t,n={}){let r=ze(t)?t:new M(t);this._lexer=new z(r),this._options=n,this._tokenCounter=0}parseName(){let t=this.expectToken(o.NAME);return this.node(t,{kind:c.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:c.DOCUMENT,definitions:this.many(o.SOF,this.parseDefinition,o.EOF)})}parseDefinition(){if(this.peek(o.BRACE_L))return this.parseOperationDefinition();let t=this.peekDescription(),n=t?this._lexer.lookahead():this._lexer.token;if(n.kind===o.NAME){switch(n.value){case\"schema\":return this.parseSchemaDefinition();case\"scalar\":return this.parseScalarTypeDefinition();case\"type\":return this.parseObjectTypeDefinition();case\"interface\":return this.parseInterfaceTypeDefinition();case\"union\":return this.parseUnionTypeDefinition();case\"enum\":return this.parseEnumTypeDefinition();case\"input\":return this.parseInputObjectTypeDefinition();case\"directive\":return this.parseDirectiveDefinition()}if(t)throw d(this._lexer.source,this._lexer.token.start,\"Unexpected description, descriptions are supported only on type definitions.\");switch(n.value){case\"query\":case\"mutation\":case\"subscription\":return this.parseOperationDefinition();case\"fragment\":return this.parseFragmentDefinition();case\"extend\":return this.parseTypeSystemExtension()}}throw this.unexpected(n)}parseOperationDefinition(){let t=this._lexer.token;if(this.peek(o.BRACE_L))return this.node(t,{kind:c.OPERATION_DEFINITION,operation:S.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});let n=this.parseOperationType(),r;return this.peek(o.NAME)&&(r=this.parseName()),this.node(t,{kind:c.OPERATION_DEFINITION,operation:n,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){let t=this.expectToken(o.NAME);switch(t.value){case\"query\":return S.QUERY;case\"mutation\":return S.MUTATION;case\"subscription\":return S.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(o.PAREN_L,this.parseVariableDefinition,o.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:c.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(o.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(o.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){let t=this._lexer.token;return this.expectToken(o.DOLLAR),this.node(t,{kind:c.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:c.SELECTION_SET,selections:this.many(o.BRACE_L,this.parseSelection,o.BRACE_R)})}parseSelection(){return this.peek(o.SPREAD)?this.parseFragment():this.parseField()}parseField(){let t=this._lexer.token,n=this.parseName(),r,i;return this.expectOptionalToken(o.COLON)?(r=n,i=this.parseName()):i=n,this.node(t,{kind:c.FIELD,alias:r,name:i,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(o.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){let n=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(o.PAREN_L,n,o.PAREN_R)}parseArgument(t=!1){let n=this._lexer.token,r=this.parseName();return this.expectToken(o.COLON),this.node(n,{kind:c.ARGUMENT,name:r,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){let t=this._lexer.token;this.expectToken(o.SPREAD);let n=this.expectOptionalKeyword(\"on\");return!n&&this.peek(o.NAME)?this.node(t,{kind:c.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:c.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){let t=this._lexer.token;return this.expectKeyword(\"fragment\"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:c.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:c.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value===\"on\")throw this.unexpected();return this.parseName()}parseValueLiteral(t){let n=this._lexer.token;switch(n.kind){case o.BRACKET_L:return this.parseList(t);case o.BRACE_L:return this.parseObject(t);case o.INT:return this.advanceLexer(),this.node(n,{kind:c.INT,value:n.value});case o.FLOAT:return this.advanceLexer(),this.node(n,{kind:c.FLOAT,value:n.value});case o.STRING:case o.BLOCK_STRING:return this.parseStringLiteral();case o.NAME:switch(this.advanceLexer(),n.value){case\"true\":return this.node(n,{kind:c.BOOLEAN,value:!0});case\"false\":return this.node(n,{kind:c.BOOLEAN,value:!1});case\"null\":return this.node(n,{kind:c.NULL});default:return this.node(n,{kind:c.ENUM,value:n.value})}case o.DOLLAR:if(t)if(this.expectToken(o.DOLLAR),this._lexer.token.kind===o.NAME){let r=this._lexer.token.value;throw d(this._lexer.source,n.start,`Unexpected variable \"$${r}\" in constant value.`)}else throw this.unexpected(n);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){let t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:c.STRING,value:t.value,block:t.kind===o.BLOCK_STRING})}parseList(t){let n=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:c.LIST,values:this.any(o.BRACKET_L,n,o.BRACKET_R)})}parseObject(t){let n=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:c.OBJECT,fields:this.any(o.BRACE_L,n,o.BRACE_R)})}parseObjectField(t){let n=this._lexer.token,r=this.parseName();return this.expectToken(o.COLON),this.node(n,{kind:c.OBJECT_FIELD,name:r,value:this.parseValueLiteral(t)})}parseDirectives(t){let n=[];for(;this.peek(o.AT);)n.push(this.parseDirective(t));return n}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){let n=this._lexer.token;return this.expectToken(o.AT),this.node(n,{kind:c.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){let t=this._lexer.token,n;if(this.expectOptionalToken(o.BRACKET_L)){let r=this.parseTypeReference();this.expectToken(o.BRACKET_R),n=this.node(t,{kind:c.LIST_TYPE,type:r})}else n=this.parseNamedType();return this.expectOptionalToken(o.BANG)?this.node(t,{kind:c.NON_NULL_TYPE,type:n}):n}parseNamedType(){return this.node(this._lexer.token,{kind:c.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(o.STRING)||this.peek(o.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"schema\");let r=this.parseConstDirectives(),i=this.many(o.BRACE_L,this.parseOperationTypeDefinition,o.BRACE_R);return this.node(t,{kind:c.SCHEMA_DEFINITION,description:n,directives:r,operationTypes:i})}parseOperationTypeDefinition(){let t=this._lexer.token,n=this.parseOperationType();this.expectToken(o.COLON);let r=this.parseNamedType();return this.node(t,{kind:c.OPERATION_TYPE_DEFINITION,operation:n,type:r})}parseScalarTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"scalar\");let r=this.parseName(),i=this.parseConstDirectives();return this.node(t,{kind:c.SCALAR_TYPE_DEFINITION,description:n,name:r,directives:i})}parseObjectTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"type\");let r=this.parseName(),i=this.parseImplementsInterfaces(),s=this.parseConstDirectives(),a=this.parseFieldsDefinition();return this.node(t,{kind:c.OBJECT_TYPE_DEFINITION,description:n,name:r,interfaces:i,directives:s,fields:a})}parseImplementsInterfaces(){return this.expectOptionalKeyword(\"implements\")?this.delimitedMany(o.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(o.BRACE_L,this.parseFieldDefinition,o.BRACE_R)}parseFieldDefinition(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseName(),i=this.parseArgumentDefs();this.expectToken(o.COLON);let s=this.parseTypeReference(),a=this.parseConstDirectives();return this.node(t,{kind:c.FIELD_DEFINITION,description:n,name:r,arguments:i,type:s,directives:a})}parseArgumentDefs(){return this.optionalMany(o.PAREN_L,this.parseInputValueDef,o.PAREN_R)}parseInputValueDef(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(o.COLON);let i=this.parseTypeReference(),s;this.expectOptionalToken(o.EQUALS)&&(s=this.parseConstValueLiteral());let a=this.parseConstDirectives();return this.node(t,{kind:c.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:s,directives:a})}parseInterfaceTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"interface\");let r=this.parseName(),i=this.parseImplementsInterfaces(),s=this.parseConstDirectives(),a=this.parseFieldsDefinition();return this.node(t,{kind:c.INTERFACE_TYPE_DEFINITION,description:n,name:r,interfaces:i,directives:s,fields:a})}parseUnionTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"union\");let r=this.parseName(),i=this.parseConstDirectives(),s=this.parseUnionMemberTypes();return this.node(t,{kind:c.UNION_TYPE_DEFINITION,description:n,name:r,directives:i,types:s})}parseUnionMemberTypes(){return this.expectOptionalToken(o.EQUALS)?this.delimitedMany(o.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"enum\");let r=this.parseName(),i=this.parseConstDirectives(),s=this.parseEnumValuesDefinition();return this.node(t,{kind:c.ENUM_TYPE_DEFINITION,description:n,name:r,directives:i,values:s})}parseEnumValuesDefinition(){return this.optionalMany(o.BRACE_L,this.parseEnumValueDefinition,o.BRACE_R)}parseEnumValueDefinition(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseEnumValueName(),i=this.parseConstDirectives();return this.node(t,{kind:c.ENUM_VALUE_DEFINITION,description:n,name:r,directives:i})}parseEnumValueName(){if(this._lexer.token.value===\"true\"||this._lexer.token.value===\"false\"||this._lexer.token.value===\"null\")throw d(this._lexer.source,this._lexer.token.start,`${ne(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"input\");let r=this.parseName(),i=this.parseConstDirectives(),s=this.parseInputFieldsDefinition();return this.node(t,{kind:c.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:r,directives:i,fields:s})}parseInputFieldsDefinition(){return this.optionalMany(o.BRACE_L,this.parseInputValueDef,o.BRACE_R)}parseTypeSystemExtension(){let t=this._lexer.lookahead();if(t.kind===o.NAME)switch(t.value){case\"schema\":return this.parseSchemaExtension();case\"scalar\":return this.parseScalarTypeExtension();case\"type\":return this.parseObjectTypeExtension();case\"interface\":return this.parseInterfaceTypeExtension();case\"union\":return this.parseUnionTypeExtension();case\"enum\":return this.parseEnumTypeExtension();case\"input\":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"schema\");let n=this.parseConstDirectives(),r=this.optionalMany(o.BRACE_L,this.parseOperationTypeDefinition,o.BRACE_R);if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:c.SCHEMA_EXTENSION,directives:n,operationTypes:r})}parseScalarTypeExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"scalar\");let n=this.parseName(),r=this.parseConstDirectives();if(r.length===0)throw this.unexpected();return this.node(t,{kind:c.SCALAR_TYPE_EXTENSION,name:n,directives:r})}parseObjectTypeExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"type\");let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),s=this.parseFieldsDefinition();if(r.length===0&&i.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:c.OBJECT_TYPE_EXTENSION,name:n,interfaces:r,directives:i,fields:s})}parseInterfaceTypeExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"interface\");let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),s=this.parseFieldsDefinition();if(r.length===0&&i.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:c.INTERFACE_TYPE_EXTENSION,name:n,interfaces:r,directives:i,fields:s})}parseUnionTypeExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"union\");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseUnionMemberTypes();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:c.UNION_TYPE_EXTENSION,name:n,directives:r,types:i})}parseEnumTypeExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"enum\");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseEnumValuesDefinition();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:c.ENUM_TYPE_EXTENSION,name:n,directives:r,values:i})}parseInputObjectTypeExtension(){let t=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"input\");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseInputFieldsDefinition();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:c.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:r,fields:i})}parseDirectiveDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"directive\"),this.expectToken(o.AT);let r=this.parseName(),i=this.parseArgumentDefs(),s=this.expectOptionalKeyword(\"repeatable\");this.expectKeyword(\"on\");let a=this.parseDirectiveLocations();return this.node(t,{kind:c.DIRECTIVE_DEFINITION,description:n,name:r,arguments:i,repeatable:s,locations:a})}parseDirectiveLocations(){return this.delimitedMany(o.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){let t=this._lexer.token,n=this.parseName();if(Object.prototype.hasOwnProperty.call(H,n.value))return n;throw this.unexpected(t)}node(t,n){return this._options.noLocation!==!0&&(n.loc=new J(t,this._lexer.lastToken,this._lexer.source)),n}peek(t){return this._lexer.token.kind===t}expectToken(t){let n=this._lexer.token;if(n.kind===t)return this.advanceLexer(),n;throw d(this._lexer.source,n.start,`Expected ${Ze(t)}, found ${ne(n)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){let n=this._lexer.token;if(n.kind===o.NAME&&n.value===t)this.advanceLexer();else throw d(this._lexer.source,n.start,`Expected \"${t}\", found ${ne(n)}.`)}expectOptionalKeyword(t){let n=this._lexer.token;return n.kind===o.NAME&&n.value===t?(this.advanceLexer(),!0):!1}unexpected(t){let n=t??this._lexer.token;return d(this._lexer.source,n.start,`Unexpected ${ne(n)}.`)}any(t,n,r){this.expectToken(t);let i=[];for(;!this.expectOptionalToken(r);)i.push(n.call(this));return i}optionalMany(t,n,r){if(this.expectOptionalToken(t)){let i=[];do i.push(n.call(this));while(!this.expectOptionalToken(r));return i}return[]}many(t,n,r){this.expectToken(t);let i=[];do i.push(n.call(this));while(!this.expectOptionalToken(r));return i}delimitedMany(t,n){this.expectOptionalToken(t);let r=[];do r.push(n.call(this));while(this.expectOptionalToken(t));return r}advanceLexer(){let{maxTokens:t}=this._options,n=this._lexer.advance();if(t!==void 0&&n.kind!==o.EOF&&(++this._tokenCounter,this._tokenCounter>t))throw d(this._lexer.source,n.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};function ne(e){let t=e.value;return Ze(e.kind)+(t!=null?` \"${t}\"`:\"\")}function Ze(e){return qe(e)?`\"${e}\"`:e}function Kt(e,t){let n=new SyntaxError(e+\" (\"+t.loc.start.line+\":\"+t.loc.start.column+\")\");return Object.assign(n,t)}var et=Kt;function Zt(e){let t=[],{startToken:n,endToken:r}=e.loc;for(let i=n;i!==r;i=i.next)i.kind===\"Comment\"&&t.push({...i,loc:{start:i.start,end:i.end}});return t}var en={allowLegacyFragmentVariables:!0};function tn(e){if((e==null?void 0:e.name)===\"GraphQLError\"){let{message:t,locations:[n]}=e;return et(t,{loc:{start:n},cause:e})}return e}function nn(e){let t;try{t=Ke(e,en)}catch(n){throw tn(n)}return t.comments=Zt(t),t}var rn={parse:nn,astFormat:\"graphql\",hasPragma:Ce,locStart:q,locEnd:Q};var sn={graphql:Re};var fr=Te;export{fr as default,Pe as languages,we as options,Ee as parsers,sn as printers};\n", "var ri=Object.defineProperty;var Xr=t=>{throw TypeError(t)};var Jr=(t,e)=>{for(var r in e)ri(t,r,{get:e[r],enumerable:!0})};var Zr=(t,e,r)=>e.has(t)||Xr(\"Cannot \"+r);var K=(t,e,r)=>(Zr(t,e,\"read from private field\"),r?r.call(t):e.get(t)),en=(t,e,r)=>e.has(t)?Xr(\"Cannot add the same private member more than once\"):e instanceof WeakSet?e.add(t):e.set(t,r),tn=(t,e,r,n)=>(Zr(t,e,\"write to private field\"),n?n.call(t,r):e.set(t,r),r);var Yr={};Jr(Yr,{languages:()=>As,options:()=>vs,parsers:()=>Gr,printers:()=>Io});var ni=(t,e,r,n)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(r,n):r.global?e.replace(r,n):e.split(r).join(n)},w=ni;var Ve=\"string\",Ue=\"array\",We=\"cursor\",De=\"indent\",ve=\"align\",ze=\"trim\",ye=\"group\",we=\"fill\",be=\"if-break\",Te=\"indent-if-break\",Ge=\"line-suffix\",Ye=\"line-suffix-boundary\",Q=\"line\",je=\"label\",xe=\"break-parent\",St=new Set([We,De,ve,ze,ye,we,be,Te,Ge,Ye,Q,je,xe]);function si(t){if(typeof t==\"string\")return Ve;if(Array.isArray(t))return Ue;if(!t)return;let{type:e}=t;if(St.has(e))return e}var Ke=si;var ii=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function ai(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(Ke(t))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(t);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=ii([...St].map(s=>`'${s}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${n}.`}var or=class extends Error{name=\"InvalidDocError\";constructor(e){super(ai(e)),this.doc=e}},ur=or;var rn=()=>{},re=rn,_t=rn;function k(t){return re(t),{type:De,contents:t}}function nn(t,e){return re(e),{type:ve,contents:e,n:t}}function _(t,e={}){return re(t),_t(e.expandedStates,!0),{type:ye,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function sn(t){return nn(Number.NEGATIVE_INFINITY,t)}function an(t){return nn({type:\"root\"},t)}function Et(t){return _t(t),{type:we,parts:t}}function le(t,e=\"\",r={}){return re(t),e!==\"\"&&re(e),{type:be,breakContents:t,flatContents:e,groupId:r.groupId}}function on(t,e){return re(t),{type:Te,contents:t,groupId:e.groupId,negate:e.negate}}var ne={type:xe};var oi={type:Q,hard:!0},ui={type:Q,hard:!0,literal:!0},E={type:Q},v={type:Q,soft:!0},S=[oi,ne],un=[ui,ne];function q(t,e){re(t),_t(e);let r=[];for(let n=0;n{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[r<0?e.length+r:r]:e.at(r)},se=li;function lr(t,e){if(typeof t==\"string\")return e(t);let r=new Map;return n(t);function n(i){if(r.has(i))return r.get(i);let a=s(i);return r.set(i,a),a}function s(i){switch(Ke(i)){case Ue:return e(i.map(n));case we:return e({...i,parts:i.parts.map(n)});case be:return e({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case ye:{let{expandedStates:a,contents:o}=i;return a?(a=a.map(n),o=a[0]):o=n(o),e({...i,contents:o,expandedStates:a})}case ve:case De:case Te:case je:case Ge:return e({...i,contents:n(i.contents)});case Ve:case We:case ze:case Ye:case Q:case xe:return e(i);default:throw new ur(i)}}}function B(t,e=un){return lr(t,r=>typeof r==\"string\"?q(e,r.split(`\n`)):r)}var At=\"'\",ln='\"';function ci(t,e){let r=e===!0||e===At?At:ln,n=r===At?ln:At,s=0,i=0;for(let a of t)a===r?s++:a===n&&i++;return s>i?n:r}var cn=ci;function cr(t){if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return t.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var H,pr=class{constructor(e){en(this,H);tn(this,H,new Set(e))}getLeadingWhitespaceCount(e){let r=K(this,H),n=0;for(let s=0;s=0&&r.has(e.charAt(s));s--)n++;return n}getLeadingWhitespace(e){let r=this.getLeadingWhitespaceCount(e);return e.slice(0,r)}getTrailingWhitespace(e){let r=this.getTrailingWhitespaceCount(e);return e.slice(e.length-r)}hasLeadingWhitespace(e){return K(this,H).has(e.charAt(0))}hasTrailingWhitespace(e){return K(this,H).has(se(!1,e,-1))}trimStart(e){let r=this.getLeadingWhitespaceCount(e);return e.slice(r)}trimEnd(e){let r=this.getTrailingWhitespaceCount(e);return e.slice(0,e.length-r)}trim(e){return this.trimEnd(this.trimStart(e))}split(e,r=!1){let n=`[${cr([...K(this,H)].join(\"\"))}]+`,s=new RegExp(r?`(${n})`:n,\"u\");return e.split(s)}hasWhitespaceCharacter(e){let r=K(this,H);return Array.prototype.some.call(e,n=>r.has(n))}hasNonWhitespaceCharacter(e){let r=K(this,H);return Array.prototype.some.call(e,n=>!r.has(n))}isWhitespaceOnly(e){let r=K(this,H);return Array.prototype.every.call(e,n=>r.has(n))}};H=new WeakMap;var pn=pr;var pi=[\"\t\",`\n`,\"\\f\",\"\\r\",\" \"],hi=new pn(pi),N=hi;var hr=class extends Error{name=\"UnexpectedNodeError\";constructor(e,r,n=\"type\"){super(`Unexpected ${r} node ${n}: ${JSON.stringify(e[n])}.`),this.node=e}},hn=hr;function mi(t){return(t==null?void 0:t.type)===\"front-matter\"}var ke=mi;var fi=new Set([\"sourceSpan\",\"startSourceSpan\",\"endSourceSpan\",\"nameSpan\",\"valueSpan\",\"keySpan\",\"tagDefinition\",\"tokens\",\"valueTokens\",\"switchValueSourceSpan\",\"expSourceSpan\",\"valueSourceSpan\"]),di=new Set([\"if\",\"else if\",\"for\",\"switch\",\"case\"]);function mn(t,e){var r;if(t.type===\"text\"||t.type===\"comment\"||ke(t)||t.type===\"yaml\"||t.type===\"toml\")return null;if(t.type===\"attribute\"&&delete e.value,t.type===\"docType\"&&delete e.value,t.type===\"angularControlFlowBlock\"&&((r=t.parameters)!=null&&r.children))for(let n of e.parameters.children)di.has(t.name)?delete n.expression:n.expression=n.expression.trim();t.type===\"angularIcuExpression\"&&(e.switchValue=t.switchValue.trim()),t.type===\"angularLetDeclarationInitializer\"&&delete e.value}mn.ignoredProperties=fi;var fn=mn;async function gi(t,e){if(t.language===\"yaml\"){let r=t.value.trim(),n=r?await e(r,{parser:\"yaml\"}):\"\";return an([t.startDelimiter,t.explicitLanguage,S,n,n?S:\"\",t.endDelimiter])}}var dn=gi;function ce(t,e=!0){return[k([v,t]),e?v:\"\"]}function Y(t,e){let r=t.type===\"NGRoot\"?t.node.type===\"NGMicrosyntax\"&&t.node.body.length===1&&t.node.body[0].type===\"NGMicrosyntaxExpression\"?t.node.body[0].expression:t.node:t.type===\"JsExpressionRoot\"?t.node:t;return r&&(r.type===\"ObjectExpression\"||r.type===\"ArrayExpression\"||(e.parser===\"__vue_expression\"||e.parser===\"__vue_ts_expression\")&&(r.type===\"TemplateLiteral\"||r.type===\"StringLiteral\"))}async function T(t,e,r,n){r={__isInHtmlAttribute:!0,__embeddedInHtml:!0,...r};let s=!0;n&&(r.__onHtmlBindingRoot=(a,o)=>{s=n(a,o)});let i=await e(t,r,e);return s?_(i):ce(i)}function Ci(t,e,r,n){let{node:s}=r,i=n.originalText.slice(s.sourceSpan.start.offset,s.sourceSpan.end.offset);return/^\\s*$/u.test(i)?\"\":T(i,t,{parser:\"__ng_directive\",__isInHtmlAttribute:!1},Y)}var gn=Ci;var Si=t=>String(t).split(/[/\\\\]/u).pop();function Cn(t,e){if(!e)return;let r=Si(e).toLowerCase();return t.find(({filenames:n})=>n==null?void 0:n.some(s=>s.toLowerCase()===r))??t.find(({extensions:n})=>n==null?void 0:n.some(s=>r.endsWith(s)))}function _i(t,e){if(e)return t.find(({name:r})=>r.toLowerCase()===e)??t.find(({aliases:r})=>r==null?void 0:r.includes(e))??t.find(({extensions:r})=>r==null?void 0:r.includes(`.${e}`))}function Ei(t,e){let r=t.plugins.flatMap(s=>s.languages??[]),n=_i(r,e.language)??Cn(r,e.physicalFile)??Cn(r,e.file)??(e.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var Be=Ei;var Sn=\"inline\",_n={area:\"none\",base:\"none\",basefont:\"none\",datalist:\"none\",head:\"none\",link:\"none\",meta:\"none\",noembed:\"none\",noframes:\"none\",param:\"block\",rp:\"none\",script:\"block\",style:\"none\",template:\"inline\",title:\"none\",html:\"block\",body:\"block\",address:\"block\",blockquote:\"block\",center:\"block\",dialog:\"block\",div:\"block\",figure:\"block\",figcaption:\"block\",footer:\"block\",form:\"block\",header:\"block\",hr:\"block\",legend:\"block\",listing:\"block\",main:\"block\",p:\"block\",plaintext:\"block\",pre:\"block\",search:\"block\",xmp:\"block\",slot:\"contents\",ruby:\"ruby\",rt:\"ruby-text\",article:\"block\",aside:\"block\",h1:\"block\",h2:\"block\",h3:\"block\",h4:\"block\",h5:\"block\",h6:\"block\",hgroup:\"block\",nav:\"block\",section:\"block\",dir:\"block\",dd:\"block\",dl:\"block\",dt:\"block\",menu:\"block\",ol:\"block\",ul:\"block\",li:\"list-item\",table:\"table\",caption:\"table-caption\",colgroup:\"table-column-group\",col:\"table-column\",thead:\"table-header-group\",tbody:\"table-row-group\",tfoot:\"table-footer-group\",tr:\"table-row\",td:\"table-cell\",th:\"table-cell\",input:\"inline-block\",button:\"inline-block\",fieldset:\"block\",details:\"block\",summary:\"block\",marquee:\"inline-block\",source:\"block\",track:\"block\",meter:\"inline-block\",progress:\"inline-block\",object:\"inline-block\",video:\"inline-block\",audio:\"inline-block\",select:\"inline-block\",option:\"block\",optgroup:\"block\"},En=\"normal\",An={listing:\"pre\",plaintext:\"pre\",pre:\"pre\",xmp:\"pre\",nobr:\"nowrap\",table:\"initial\",textarea:\"pre-wrap\"};function Ai(t){return t.type===\"element\"&&!t.hasExplicitNamespace&&![\"html\",\"svg\"].includes(t.namespace)}var pe=Ai;var Di=t=>w(!1,t,/^[\\t\\f\\r ]*\\n/gu,\"\"),mr=t=>Di(N.trimEnd(t)),Dn=t=>{let e=t,r=N.getLeadingWhitespace(e);r&&(e=e.slice(r.length));let n=N.getTrailingWhitespace(e);return n&&(e=e.slice(0,-n.length)),{leadingWhitespace:r,trailingWhitespace:n,text:e}};function Dt(t,e){return!!(t.type===\"ieConditionalComment\"&&t.lastChild&&!t.lastChild.isSelfClosing&&!t.lastChild.endSourceSpan||t.type===\"ieConditionalComment\"&&!t.complete||he(t)&&t.children.some(r=>r.type!==\"text\"&&r.type!==\"interpolation\")||wt(t,e)&&!U(t)&&t.type!==\"interpolation\")}function me(t){return t.type===\"attribute\"||!t.parent||!t.prev?!1:vi(t.prev)}function vi(t){return t.type===\"comment\"&&t.value.trim()===\"prettier-ignore\"}function O(t){return t.type===\"text\"||t.type===\"comment\"}function U(t){return t.type===\"element\"&&(t.fullName===\"script\"||t.fullName===\"style\"||t.fullName===\"svg:style\"||t.fullName===\"svg:script\"||pe(t)&&(t.name===\"script\"||t.name===\"style\"))}function vn(t){return t.children&&!U(t)}function yn(t){return U(t)||t.type===\"interpolation\"||fr(t)}function fr(t){return In(t).startsWith(\"pre\")}function wn(t,e){var s,i;let r=n();if(r&&!t.prev&&((i=(s=t.parent)==null?void 0:s.tagDefinition)!=null&&i.ignoreFirstLf))return t.type===\"interpolation\";return r;function n(){return ke(t)||t.type===\"angularControlFlowBlock\"?!1:(t.type===\"text\"||t.type===\"interpolation\")&&t.prev&&(t.prev.type===\"text\"||t.prev.type===\"interpolation\")?!0:!t.parent||t.parent.cssDisplay===\"none\"?!1:he(t.parent)?!0:!(!t.prev&&(t.parent.type===\"root\"||he(t)&&t.parent||U(t.parent)||Je(t.parent,e)||!ki(t.parent.cssDisplay))||t.prev&&!Fi(t.prev.cssDisplay))}}function bn(t,e){return ke(t)||t.type===\"angularControlFlowBlock\"?!1:(t.type===\"text\"||t.type===\"interpolation\")&&t.next&&(t.next.type===\"text\"||t.next.type===\"interpolation\")?!0:!t.parent||t.parent.cssDisplay===\"none\"?!1:he(t.parent)?!0:!(!t.next&&(t.parent.type===\"root\"||he(t)&&t.parent||U(t.parent)||Je(t.parent,e)||!Bi(t.parent.cssDisplay))||t.next&&!Li(t.next.cssDisplay))}function Tn(t){return Ni(t.cssDisplay)&&!U(t)}function Qe(t){return ke(t)||t.next&&t.sourceSpan.end&&t.sourceSpan.end.line+10&&([\"body\",\"script\",\"style\"].includes(t.name)||t.children.some(e=>wi(e)))||t.firstChild&&t.firstChild===t.lastChild&&t.firstChild.type!==\"text\"&&Bn(t.firstChild)&&(!t.lastChild.isTrailingSpaceSensitive||Ln(t.lastChild))}function dr(t){return t.type===\"element\"&&t.children.length>0&&([\"html\",\"head\",\"ul\",\"ol\",\"select\"].includes(t.name)||t.cssDisplay.startsWith(\"table\")&&t.cssDisplay!==\"table-cell\")}function vt(t){return Fn(t)||t.prev&&yi(t.prev)||kn(t)}function yi(t){return Fn(t)||t.type===\"element\"&&t.fullName===\"br\"||kn(t)}function kn(t){return Bn(t)&&Ln(t)}function Bn(t){return t.hasLeadingSpaces&&(t.prev?t.prev.sourceSpan.end.linet.sourceSpan.end.line:t.parent.type===\"root\"||t.parent.endSourceSpan&&t.parent.endSourceSpan.start.line>t.sourceSpan.end.line)}function Fn(t){switch(t.type){case\"ieConditionalComment\":case\"comment\":case\"directive\":return!0;case\"element\":return[\"script\",\"select\"].includes(t.name)}return!1}function yt(t){return t.lastChild?yt(t.lastChild):t}function wi(t){var e;return(e=t.children)==null?void 0:e.some(r=>r.type!==\"text\")}function Nn(t){if(t)switch(t){case\"module\":case\"text/javascript\":case\"text/babel\":case\"application/javascript\":return\"babel\";case\"application/x-typescript\":return\"typescript\";case\"text/markdown\":return\"markdown\";case\"text/html\":return\"html\";case\"text/x-handlebars-template\":return\"glimmer\";default:if(t.endsWith(\"json\")||t.endsWith(\"importmap\")||t===\"speculationrules\")return\"json\"}}function bi(t,e){let{name:r,attrMap:n}=t;if(r!==\"script\"||Object.prototype.hasOwnProperty.call(n,\"src\"))return;let{type:s,lang:i}=t.attrMap;return!i&&!s?\"babel\":Be(e,{language:i})??Nn(s)}function Ti(t,e){if(!wt(t,e))return;let{attrMap:r}=t;if(Object.prototype.hasOwnProperty.call(r,\"src\"))return;let{type:n,lang:s}=r;return Be(e,{language:s})??Nn(n)}function xi(t,e){if(t.name!==\"style\")return;let{lang:r}=t.attrMap;return r?Be(e,{language:r}):\"css\"}function gr(t,e){return bi(t,e)??xi(t,e)??Ti(t,e)}function Xe(t){return t===\"block\"||t===\"list-item\"||t.startsWith(\"table\")}function ki(t){return!Xe(t)&&t!==\"inline-block\"}function Bi(t){return!Xe(t)&&t!==\"inline-block\"}function Li(t){return!Xe(t)}function Fi(t){return!Xe(t)}function Ni(t){return!Xe(t)&&t!==\"inline-block\"}function he(t){return In(t).startsWith(\"pre\")}function Pi(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.parent}return!1}function Pn(t,e){var n;if(fe(t,e))return\"block\";if(((n=t.prev)==null?void 0:n.type)===\"comment\"){let s=t.prev.value.match(/^\\s*display:\\s*([a-z]+)\\s*$/u);if(s)return s[1]}let r=!1;if(t.type===\"element\"&&t.namespace===\"svg\")if(Pi(t,s=>s.fullName===\"svg:foreignObject\"))r=!0;else return t.name===\"svg\"?\"inline-block\":\"block\";switch(e.htmlWhitespaceSensitivity){case\"strict\":return\"inline\";case\"ignore\":return\"block\";default:return t.type===\"element\"&&(!t.namespace||r||pe(t))&&_n[t.name]||Sn}}function In(t){return t.type===\"element\"&&(!t.namespace||pe(t))&&An[t.name]||En}function Ii(t){let e=Number.POSITIVE_INFINITY;for(let r of t.split(`\n`)){if(r.length===0)continue;let n=N.getLeadingWhitespaceCount(r);if(n===0)return 0;r.length!==n&&nr.slice(e)).join(`\n`)}function Sr(t){return w(!1,w(!1,t,\"'\",\"'\"),\""\",'\"')}function P(t){return Sr(t.value)}var Ri=new Set([\"template\",\"style\",\"script\"]);function Je(t,e){return fe(t,e)&&!Ri.has(t.fullName)}function fe(t,e){return e.parser===\"vue\"&&t.type===\"element\"&&t.parent.type===\"root\"&&t.fullName.toLowerCase()!==\"html\"}function wt(t,e){return fe(t,e)&&(Je(t,e)||t.attrMap.lang&&t.attrMap.lang!==\"html\")}function Rn(t){let e=t.fullName;return e.charAt(0)===\"#\"||e===\"slot-scope\"||e===\"v-slot\"||e.startsWith(\"v-slot:\")}function On(t,e){let r=t.parent;if(!fe(r,e))return!1;let n=r.fullName,s=t.fullName;return n===\"script\"&&s===\"setup\"||n===\"style\"&&s===\"vars\"}function bt(t,e=t.value){return t.parent.isWhitespaceSensitive?t.parent.isIndentationSensitive?B(e):B(Cr(mr(e)),S):q(E,N.split(e))}function Tt(t,e){return fe(t,e)&&t.name===\"script\"}var _r=/\\{\\{(.+?)\\}\\}/su;async function $n(t,e){let r=[];for(let[n,s]of t.split(_r).entries())if(n%2===0)r.push(B(s));else try{r.push(_([\"{{\",k([E,await T(s,e,{parser:\"__ng_interpolation\",__isInHtmlInterpolation:!0})]),E,\"}}\"]))}catch{r.push(\"{{\",B(s),\"}}\")}return r}function Er({parser:t}){return(e,r,n)=>T(P(n.node),e,{parser:t},Y)}var Oi=Er({parser:\"__ng_action\"}),$i=Er({parser:\"__ng_binding\"}),Mi=Er({parser:\"__ng_directive\"});function qi(t,e){if(e.parser!==\"angular\")return;let{node:r}=t,n=r.fullName;if(n.startsWith(\"(\")&&n.endsWith(\")\")||n.startsWith(\"on-\"))return Oi;if(n.startsWith(\"[\")&&n.endsWith(\"]\")||/^bind(?:on)?-/u.test(n)||/^ng-(?:if|show|hide|class|style)$/u.test(n))return $i;if(n.startsWith(\"*\"))return Mi;let s=P(r);if(/^i18n(?:-.+)?$/u.test(n))return()=>ce(Et(bt(r,s.trim())),!s.includes(\"@@\"));if(_r.test(s))return i=>$n(s,i)}var Mn=qi;function Hi(t,e){let{node:r}=t,n=P(r);if(r.fullName===\"class\"&&!e.parentParser&&!n.includes(\"{{\"))return()=>n.trim().split(/\\s+/u).join(\" \")}var qn=Hi;function Hn(t){return t===\"\t\"||t===`\n`||t===\"\\f\"||t===\"\\r\"||t===\" \"}var Vi=/^[ \\t\\n\\r\\u000c]+/,Ui=/^[, \\t\\n\\r\\u000c]+/,Wi=/^[^ \\t\\n\\r\\u000c]+/,zi=/[,]+$/,Vn=/^\\d+$/,Gi=/^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;function Yi(t){let e=t.length,r,n,s,i,a,o=0,u;function p(C){let A,D=C.exec(t.substring(o));if(D)return[A]=D,o+=A.length,A}let l=[];for(;;){if(p(Ui),o>=e){if(l.length===0)throw new Error(\"Must contain one or more image candidate strings.\");return l}u=o,r=p(Wi),n=[],r.slice(-1)===\",\"?(r=r.replace(zi,\"\"),d()):f()}function f(){for(p(Vi),s=\"\",i=\"in descriptor\";;){if(a=t.charAt(o),i===\"in descriptor\")if(Hn(a))s&&(n.push(s),s=\"\",i=\"after descriptor\");else if(a===\",\"){o+=1,s&&n.push(s),d();return}else if(a===\"(\")s+=a,i=\"in parens\";else if(a===\"\"){s&&n.push(s),d();return}else s+=a;else if(i===\"in parens\")if(a===\")\")s+=a,i=\"in descriptor\";else if(a===\"\"){n.push(s),d();return}else s+=a;else if(i===\"after descriptor\"&&!Hn(a))if(a===\"\"){d();return}else i=\"in descriptor\",o-=1;o+=1}}function d(){let C=!1,A,D,R,F,c={},g,y,M,x,V;for(F=0;FQi(P(t.node))}var Wn={width:\"w\",height:\"h\",density:\"x\"},Ki=Object.keys(Wn);function Qi(t){let e=Un(t),r=Ki.filter(l=>e.some(f=>Object.prototype.hasOwnProperty.call(f,l)));if(r.length>1)throw new Error(\"Mixed descriptor in srcset is not supported\");let[n]=r,s=Wn[n],i=e.map(l=>l.source.value),a=Math.max(...i.map(l=>l.length)),o=e.map(l=>l[n]?String(l[n].value):\"\"),u=o.map(l=>{let f=l.indexOf(\".\");return f===-1?l.length:f}),p=Math.max(...u);return ce(q([\",\",E],i.map((l,f)=>{let d=[l],C=o[f];if(C){let A=a-l.length+1,D=p-u[f],R=\" \".repeat(A+D);d.push(le(R,\" \"),C+s)}return d})))}var zn=ji;function Gn(t,e){let{node:r}=t,n=P(t.node).trim();if(r.fullName===\"style\"&&!e.parentParser&&!n.includes(\"{{\"))return async s=>ce(await s(n,{parser:\"css\",__isHTMLStyleAttribute:!0}))}var Ar=new WeakMap;function Xi(t,e){let{root:r}=t;return Ar.has(r)||Ar.set(r,r.children.some(n=>Tt(n,e)&&[\"ts\",\"typescript\"].includes(n.attrMap.lang))),Ar.get(r)}var Le=Xi;function Yn(t,e,r){let{node:n}=r,s=P(n);return T(`type T<${s}> = any`,t,{parser:\"babel-ts\",__isEmbeddedTypescriptGenericParameters:!0},Y)}function jn(t,e,{parseWithTs:r}){return T(`function _(${t}) {}`,e,{parser:r?\"babel-ts\":\"babel\",__isVueBindings:!0})}async function Kn(t,e,r,n){let s=P(r.node),{left:i,operator:a,right:o}=Ji(s),u=Le(r,n);return[_(await T(`function _(${i}) {}`,t,{parser:u?\"babel-ts\":\"babel\",__isVueForBindingLeft:!0})),\" \",a,\" \",await T(o,t,{parser:u?\"__ts_expression\":\"__js_expression\"})]}function Ji(t){let e=/(.*?)\\s+(in|of)\\s+(.*)/su,r=/,([^,\\]}]*)(?:,([^,\\]}]*))?$/u,n=/^\\(|\\)$/gu,s=t.match(e);if(!s)return;let i={};if(i.for=s[3].trim(),!i.for)return;let a=w(!1,s[1].trim(),n,\"\"),o=a.match(r);o?(i.alias=a.replace(r,\"\"),i.iterator1=o[1].trim(),o[2]&&(i.iterator2=o[2].trim())):i.alias=a;let u=[i.alias,i.iterator1,i.iterator2];if(!u.some((p,l)=>!p&&(l===0||u.slice(l+1).some(Boolean))))return{left:u.filter(Boolean).join(\",\"),operator:s[2],right:i.for}}function Zi(t,e){if(e.parser!==\"vue\")return;let{node:r}=t,n=r.fullName;if(n===\"v-for\")return Kn;if(n===\"generic\"&&Tt(r.parent,e))return Yn;let s=P(r),i=Le(t,e);if(Rn(r)||On(r,e))return a=>jn(s,a,{parseWithTs:i});if(n.startsWith(\"@\")||n.startsWith(\"v-on:\"))return a=>ea(s,a,{parseWithTs:i});if(n.startsWith(\":\")||n.startsWith(\"v-bind:\"))return a=>ta(s,a,{parseWithTs:i});if(n.startsWith(\"v-\"))return a=>Qn(s,a,{parseWithTs:i})}async function ea(t,e,{parseWithTs:r}){var n;try{return await Qn(t,e,{parseWithTs:r})}catch(s){if(((n=s.cause)==null?void 0:n.code)!==\"BABEL_PARSER_SYNTAX_ERROR\")throw s}return T(t,e,{parser:r?\"__vue_ts_event_binding\":\"__vue_event_binding\"},Y)}function ta(t,e,{parseWithTs:r}){return T(t,e,{parser:r?\"__vue_ts_expression\":\"__vue_expression\"},Y)}function Qn(t,e,{parseWithTs:r}){return T(t,e,{parser:r?\"__ts_expression\":\"__js_expression\"},Y)}var Xn=Zi;function ra(t,e){let{node:r}=t;if(r.value){if(/^PRETTIER_HTML_PLACEHOLDER_\\d+_\\d+_IN_JS$/u.test(e.originalText.slice(r.valueSpan.start.offset,r.valueSpan.end.offset))||e.parser===\"lwc\"&&r.value.startsWith(\"{\")&&r.value.endsWith(\"}\"))return[r.rawName,\"=\",r.value];for(let n of[zn,Gn,qn,Xn,Mn]){let s=n(t,e);if(s)return na(s)}}}function na(t){return async(e,r,n,s)=>{let i=await t(e,r,n,s);if(i)return i=lr(i,a=>typeof a==\"string\"?w(!1,a,'\"',\""\"):a),[n.node.rawName,'=\"',_(i),'\"']}}var Jn=ra;var Zn=new Proxy(()=>{},{get:()=>Zn}),Dr=Zn;function sa(t){return Array.isArray(t)&&t.length>0}var Fe=sa;function X(t){return t.sourceSpan.start.offset}function J(t){return t.sourceSpan.end.offset}function Ze(t,e){return[t.isSelfClosing?\"\":ia(t,e),de(t,e)]}function ia(t,e){return t.lastChild&&Se(t.lastChild)?\"\":[aa(t,e),xt(t,e)]}function de(t,e){return(t.next?j(t.next):Ce(t.parent))?\"\":[ge(t,e),W(t,e)]}function aa(t,e){return Ce(t)?ge(t.lastChild,e):\"\"}function W(t,e){return Se(t)?xt(t.parent,e):et(t)?kt(t.next,e):\"\"}function xt(t,e){if(Dr(!t.isSelfClosing),ts(t,e))return\"\";switch(t.type){case\"ieConditionalComment\":return\"\";case\"ieConditionalStartComment\":return\"]>\";case\"interpolation\":return\"}}\";case\"angularIcuExpression\":return\"}\";case\"element\":if(t.isSelfClosing)return\"/>\";default:return\">\"}}function ts(t,e){return!t.isSelfClosing&&!t.endSourceSpan&&(me(t)||Dt(t.parent,e))}function j(t){return t.prev&&t.prev.type!==\"docType\"&&t.type!==\"angularControlFlowBlock\"&&!O(t.prev)&&t.isLeadingSpaceSensitive&&!t.hasLeadingSpaces}function Ce(t){var e;return((e=t.lastChild)==null?void 0:e.isTrailingSpaceSensitive)&&!t.lastChild.hasTrailingSpaces&&!O(yt(t.lastChild))&&!he(t)}function Se(t){return!t.next&&!t.hasTrailingSpaces&&t.isTrailingSpaceSensitive&&O(yt(t))}function et(t){return t.next&&!O(t.next)&&O(t)&&t.isTrailingSpaceSensitive&&!t.hasTrailingSpaces}function oa(t){let e=t.trim().match(/^prettier-ignore-attribute(?:\\s+(.+))?$/su);return e?e[1]?e[1].split(/\\s+/u):!0:!1}function tt(t){return!t.prev&&t.isLeadingSpaceSensitive&&!t.hasLeadingSpaces}function ua(t,e,r){var f;let{node:n}=t;if(!Fe(n.attrs))return n.isSelfClosing?\" \":\"\";let s=((f=n.prev)==null?void 0:f.type)===\"comment\"&&oa(n.prev.value),i=typeof s==\"boolean\"?()=>s:Array.isArray(s)?d=>s.includes(d.rawName):()=>!1,a=t.map(({node:d})=>i(d)?B(e.originalText.slice(X(d),J(d))):r(),\"attrs\"),o=n.type===\"element\"&&n.fullName===\"script\"&&n.attrs.length===1&&n.attrs[0].fullName===\"src\"&&n.children.length===0,p=e.singleAttributePerLine&&n.attrs.length>1&&!fe(n,e)?S:E,l=[k([o?\" \":E,q(p,a)])];return n.firstChild&&tt(n.firstChild)||n.isSelfClosing&&Ce(n.parent)||o?l.push(n.isSelfClosing?\" \":\"\"):l.push(e.bracketSameLine?n.isSelfClosing?\" \":\"\":n.isSelfClosing?E:v),l}function la(t){return t.firstChild&&tt(t.firstChild)?\"\":Bt(t)}function rt(t,e,r){let{node:n}=t;return[_e(n,e),ua(t,e,r),n.isSelfClosing?\"\":la(n)]}function _e(t,e){return t.prev&&et(t.prev)?\"\":[z(t,e),kt(t,e)]}function z(t,e){return tt(t)?Bt(t.parent):j(t)?ge(t.prev,e):\"\"}var es=\"<${t.rawName}`;default:return`<${t.rawName}`}}function Bt(t){switch(Dr(!t.isSelfClosing),t.type){case\"ieConditionalComment\":return\"]>\";case\"element\":if(t.condition)return\">\";default:return\">\"}}function ca(t,e){if(!t.endSourceSpan)return\"\";let r=t.startSourceSpan.end.offset;t.firstChild&&tt(t.firstChild)&&(r-=Bt(t).length);let n=t.endSourceSpan.start.offset;return t.lastChild&&Se(t.lastChild)?n+=xt(t,e).length:Ce(t)&&(n-=ge(t.lastChild,e).length),e.originalText.slice(r,n)}var Lt=ca;var pa=new Set([\"if\",\"else if\",\"for\",\"switch\",\"case\"]);function ha(t,e){let{node:r}=t;switch(r.type){case\"element\":if(U(r)||r.type===\"interpolation\")return;if(!r.isSelfClosing&&wt(r,e)){let n=gr(r,e);return n?async(s,i)=>{let a=Lt(r,e),o=/^\\s*$/u.test(a),u=\"\";return o||(u=await s(mr(a),{parser:n,__embeddedInHtml:!0}),o=u===\"\"),[z(r,e),_(rt(t,e,i)),o?\"\":S,u,o?\"\":S,Ze(r,e),W(r,e)]}:void 0}break;case\"text\":if(U(r.parent)){let n=gr(r.parent,e);if(n)return async s=>{let i=n===\"markdown\"?Cr(r.value.replace(/^[^\\S\\n]*\\n/u,\"\")):r.value,a={parser:n,__embeddedInHtml:!0};if(e.parser===\"html\"&&n===\"babel\"){let o=\"script\",{attrMap:u}=r.parent;u&&(u.type===\"module\"||u.type===\"text/babel\"&&u[\"data-type\"]===\"module\")&&(o=\"module\"),a.__babelSourceType=o}return[ne,z(r,e),await s(i,a),W(r,e)]}}else if(r.parent.type===\"interpolation\")return async n=>{let s={__isInHtmlInterpolation:!0,__embeddedInHtml:!0};return e.parser===\"angular\"?s.parser=\"__ng_interpolation\":e.parser===\"vue\"?s.parser=Le(t,e)?\"__vue_ts_expression\":\"__vue_expression\":s.parser=\"__js_expression\",[k([E,await n(r.value,s)]),r.parent.next&&j(r.parent.next)?\" \":E]};break;case\"attribute\":return Jn(t,e);case\"front-matter\":return n=>dn(r,n);case\"angularControlFlowBlockParameters\":return pa.has(t.parent.name)?gn:void 0;case\"angularLetDeclarationInitializer\":return n=>T(r.value,n,{parser:\"__ng_binding\",__isInHtmlAttribute:!1})}}var rs=ha;var nt=null;function st(t){if(nt!==null&&typeof nt.property){let e=nt;return nt=st.prototype=null,e}return nt=st.prototype=t??Object.create(null),new st}var ma=10;for(let t=0;t<=ma;t++)st();function vr(t){return st(t)}function fa(t,e=\"type\"){vr(t);function r(n){let s=n[e],i=t[s];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:n});return i}return r}var ns=fa;var da={\"front-matter\":[],root:[\"children\"],element:[\"attrs\",\"children\"],ieConditionalComment:[\"children\"],ieConditionalStartComment:[],ieConditionalEndComment:[],interpolation:[\"children\"],text:[\"children\"],docType:[],comment:[],attribute:[],cdata:[],angularControlFlowBlock:[\"children\",\"parameters\"],angularControlFlowBlockParameters:[\"children\"],angularControlFlowBlockParameter:[],angularLetDeclaration:[\"init\"],angularLetDeclarationInitializer:[],angularIcuExpression:[\"cases\"],angularIcuCase:[\"expression\"]},ss=da;var ga=ns(ss),is=ga;function as(t){return/^\\s*/u.test(t)}function os(t){return`\n\n`+t}var us=new Map([[\"if\",new Set([\"else if\",\"else\"])],[\"else if\",new Set([\"else if\",\"else\"])],[\"for\",new Set([\"empty\"])],[\"defer\",new Set([\"placeholder\",\"error\",\"loading\"])],[\"placeholder\",new Set([\"placeholder\",\"error\",\"loading\"])],[\"error\",new Set([\"placeholder\",\"error\",\"loading\"])],[\"loading\",new Set([\"placeholder\",\"error\",\"loading\"])]]);function ls(t){let e=J(t);return t.type===\"element\"&&!t.endSourceSpan&&Fe(t.children)?Math.max(e,ls(se(!1,t.children,-1))):e}function it(t,e,r){let n=t.node;if(me(n)){let s=ls(n);return[z(n,e),B(N.trimEnd(e.originalText.slice(X(n)+(n.prev&&et(n.prev)?kt(n).length:0),s-(n.next&&j(n.next)?ge(n,e).length:0)))),W(n,e)]}return r()}function Ft(t,e){return O(t)&&O(e)?t.isTrailingSpaceSensitive?t.hasTrailingSpaces?vt(e)?S:E:\"\":vt(e)?S:v:et(t)&&(me(e)||e.firstChild||e.isSelfClosing||e.type===\"element\"&&e.attrs.length>0)||t.type===\"element\"&&t.isSelfClosing&&j(e)?\"\":!e.isLeadingSpaceSensitive||vt(e)||j(e)&&t.lastChild&&Se(t.lastChild)&&t.lastChild.lastChild&&Se(t.lastChild.lastChild)?S:e.hasLeadingSpaces?E:v}function Ne(t,e,r){let{node:n}=t;if(dr(n))return[ne,...t.map(i=>{let a=i.node,o=a.prev?Ft(a.prev,a):\"\";return[o?[o,Qe(a.prev)?S:\"\"]:\"\",it(i,e,r)]},\"children\")];let s=n.children.map(()=>Symbol(\"\"));return t.map((i,a)=>{let o=i.node;if(O(o)){if(o.prev&&O(o.prev)){let A=Ft(o.prev,o);if(A)return Qe(o.prev)?[S,S,it(i,e,r)]:[A,it(i,e,r)]}return it(i,e,r)}let u=[],p=[],l=[],f=[],d=o.prev?Ft(o.prev,o):\"\",C=o.next?Ft(o,o.next):\"\";return d&&(Qe(o.prev)?u.push(S,S):d===S?u.push(S):O(o.prev)?p.push(d):p.push(le(\"\",v,{groupId:s[a-1]}))),C&&(Qe(o)?O(o.next)&&f.push(S,S):C===S?O(o.next)&&f.push(S):l.push(C)),[...u,_([...p,_([it(i,e,r),...l],{id:s[a]})]),...f]},\"children\")}function cs(t,e,r){let{node:n}=t,s=[];Ca(t)&&s.push(\"} \"),s.push(\"@\",n.name),n.parameters&&s.push(\" (\",_(r(\"parameters\")),\")\"),s.push(\" {\");let i=ps(n);return n.children.length>0?(n.firstChild.hasLeadingSpaces=!0,n.lastChild.hasTrailingSpaces=!0,s.push(k([S,Ne(t,e,r)])),i&&s.push(S,\"}\")):i&&s.push(\"}\"),_(s,{shouldBreak:!0})}function ps(t){var e,r;return!(((e=t.next)==null?void 0:e.type)===\"angularControlFlowBlock\"&&((r=us.get(t.name))!=null&&r.has(t.next.name)))}function Ca(t){let{previous:e}=t;return(e==null?void 0:e.type)===\"angularControlFlowBlock\"&&!me(e)&&!ps(e)}function hs(t,e,r){return[k([v,q([\";\",E],t.map(r,\"children\"))]),v]}function ms(t,e,r){let{node:n}=t;return[_e(n,e),_([n.switchValue.trim(),\", \",n.clause,n.cases.length>0?[\",\",k([E,q(E,t.map(r,\"cases\"))])]:\"\",v]),de(n,e)]}function fs(t,e,r){let{node:n}=t;return[n.value,\" {\",_([k([v,t.map(({node:s})=>s.type===\"text\"&&!N.trim(s.value)?\"\":r(),\"expression\")]),v]),\"}\"]}function ds(t,e,r){let{node:n}=t;if(Dt(n,e))return[z(n,e),_(rt(t,e,r)),B(Lt(n,e)),...Ze(n,e),W(n,e)];let s=n.children.length===1&&(n.firstChild.type===\"interpolation\"||n.firstChild.type===\"angularIcuExpression\")&&n.firstChild.isLeadingSpaceSensitive&&!n.firstChild.hasLeadingSpaces&&n.lastChild.isTrailingSpaceSensitive&&!n.lastChild.hasTrailingSpaces,i=Symbol(\"element-attr-group-id\"),a=l=>_([_(rt(t,e,r),{id:i}),l,Ze(n,e)]),o=l=>s?on(l,{groupId:i}):(U(n)||Je(n,e))&&n.parent.type===\"root\"&&e.parser===\"vue\"&&!e.vueIndentScriptAndStyle?l:k(l),u=()=>s?le(v,\"\",{groupId:i}):n.firstChild.hasLeadingSpaces&&n.firstChild.isLeadingSpaceSensitive?E:n.firstChild.type===\"text\"&&n.isWhitespaceSensitive&&n.isIndentationSensitive?sn(v):v,p=()=>(n.next?j(n.next):Ce(n.parent))?n.lastChild.hasTrailingSpaces&&n.lastChild.isTrailingSpaceSensitive?\" \":\"\":s?le(v,\"\",{groupId:i}):n.lastChild.hasTrailingSpaces&&n.lastChild.isTrailingSpaceSensitive?E:(n.lastChild.type===\"comment\"||n.lastChild.type===\"text\"&&n.isWhitespaceSensitive&&n.isIndentationSensitive)&&new RegExp(`\\\\n[\\\\t ]{${e.tabWidth*(t.ancestors.length-1)}}$`,\"u\").test(n.lastChild.value)?\"\":v;return n.children.length===0?a(n.hasDanglingSpaces&&n.isDanglingSpaceSensitive?E:\"\"):a([xn(n)?ne:\"\",o([u(),Ne(t,e,r)]),p()])}function at(t){return t>=9&&t<=32||t==160}function Nt(t){return 48<=t&&t<=57}function ot(t){return t>=97&&t<=122||t>=65&&t<=90}function gs(t){return t>=97&&t<=102||t>=65&&t<=70||Nt(t)}function Pt(t){return t===10||t===13}function yr(t){return 48<=t&&t<=55}function It(t){return t===39||t===34||t===96}var Sa=/-+([a-z0-9])/g;function Ss(t){return t.replace(Sa,(...e)=>e[1].toUpperCase())}var ie=class t{constructor(e,r,n,s){this.file=e,this.offset=r,this.line=n,this.col=s}toString(){return this.offset!=null?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(e){let r=this.file.content,n=r.length,s=this.offset,i=this.line,a=this.col;for(;s>0&&e<0;)if(s--,e++,r.charCodeAt(s)==10){i--;let u=r.substring(0,s-1).lastIndexOf(String.fromCharCode(10));a=u>0?s-u:s}else a--;for(;s0;){let o=r.charCodeAt(s);s++,e--,o==10?(i++,a=0):a++}return new t(this.file,s,i,a)}getContext(e,r){let n=this.file.content,s=this.offset;if(s!=null){s>n.length-1&&(s=n.length-1);let i=s,a=0,o=0;for(;a0&&(s--,a++,!(n[s]==`\n`&&++o==r)););for(a=0,o=0;a]${e.after}\")`:this.msg}toString(){let e=this.span.details?`, ${this.span.details}`:\"\";return`${this.contextualMessage()}: ${this.span.start}${e}`}};var _a=[Aa,Da,ya,ba,Ta,Ba,xa,ka,La,wa];function Ea(t,e){for(let r of _a)r(t,e);return t}function Aa(t){t.walk(e=>{if(e.type===\"element\"&&e.tagDefinition.ignoreFirstLf&&e.children.length>0&&e.children[0].type===\"text\"&&e.children[0].value[0]===`\n`){let r=e.children[0];r.value.length===1?e.removeChild(r):r.value=r.value.slice(1)}})}function Da(t){let e=r=>{var n,s;return r.type===\"element\"&&((n=r.prev)==null?void 0:n.type)===\"ieConditionalStartComment\"&&r.prev.sourceSpan.end.offset===r.startSourceSpan.start.offset&&((s=r.firstChild)==null?void 0:s.type)===\"ieConditionalEndComment\"&&r.firstChild.sourceSpan.start.offset===r.startSourceSpan.end.offset};t.walk(r=>{if(r.children)for(let n=0;n{if(n.children)for(let s=0;se.type===\"cdata\",e=>``)}function wa(t){let e=r=>{var n,s;return r.type===\"element\"&&r.attrs.length===0&&r.children.length===1&&r.firstChild.type===\"text\"&&!N.hasWhitespaceCharacter(r.children[0].value)&&!r.firstChild.hasLeadingSpaces&&!r.firstChild.hasTrailingSpaces&&r.isLeadingSpaceSensitive&&!r.hasLeadingSpaces&&r.isTrailingSpaceSensitive&&!r.hasTrailingSpaces&&((n=r.prev)==null?void 0:n.type)===\"text\"&&((s=r.next)==null?void 0:s.type)===\"text\"};t.walk(r=>{if(r.children)for(let n=0;n`+s.firstChild.value+``+a.value,i.sourceSpan=new h(i.sourceSpan.start,a.sourceSpan.end),i.isTrailingSpaceSensitive=a.isTrailingSpaceSensitive,i.hasTrailingSpaces=a.hasTrailingSpaces,r.removeChild(s),n--,r.removeChild(a)}})}function ba(t,e){if(e.parser===\"html\")return;let r=/\\{\\{(.+?)\\}\\}/su;t.walk(n=>{if(vn(n))for(let s of n.children){if(s.type!==\"text\")continue;let i=s.sourceSpan.start,a=null,o=s.value.split(r);for(let u=0;u0&&n.insertChildBefore(s,{type:\"text\",value:p,sourceSpan:new h(i,a)});continue}a=i.moveBy(p.length+4),n.insertChildBefore(s,{type:\"interpolation\",sourceSpan:new h(i,a),children:p.length===0?[]:[{type:\"text\",value:p,sourceSpan:new h(i.moveBy(2),a.moveBy(-2))}]})}n.removeChild(s)}})}function Ta(t){t.walk(e=>{if(!e.children)return;if(e.children.length===0||e.children.length===1&&e.children[0].type===\"text\"&&N.trim(e.children[0].value).length===0){e.hasDanglingSpaces=e.children.length>0,e.children=[];return}let r=yn(e),n=fr(e);if(!r)for(let s=0;s{e.isSelfClosing=!e.children||e.type===\"element\"&&(e.tagDefinition.isVoid||e.endSourceSpan&&e.startSourceSpan.start===e.endSourceSpan.start&&e.startSourceSpan.end===e.endSourceSpan.end)})}function ka(t,e){t.walk(r=>{r.type===\"element\"&&(r.hasHtmComponentClosingTag=r.endSourceSpan&&/^<\\s*\\/\\s*\\/\\s*>$/u.test(e.originalText.slice(r.endSourceSpan.start.offset,r.endSourceSpan.end.offset)))})}function Ba(t,e){t.walk(r=>{r.cssDisplay=Pn(r,e)})}function La(t,e){t.walk(r=>{let{children:n}=r;if(n){if(n.length===0){r.isDanglingSpaceSensitive=Tn(r);return}for(let s of n)s.isLeadingSpaceSensitive=wn(s,e),s.isTrailingSpaceSensitive=bn(s,e);for(let s=0;s of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var Ds=\"HTML\",Pa={bracketSameLine:wr.bracketSameLine,htmlWhitespaceSensitivity:{category:Ds,type:\"choice\",default:\"css\",description:\"How to handle whitespaces in HTML.\",choices:[{value:\"css\",description:\"Respect the default value of CSS display property.\"},{value:\"strict\",description:\"Whitespaces are considered sensitive.\"},{value:\"ignore\",description:\"Whitespaces are considered insensitive.\"}]},singleAttributePerLine:wr.singleAttributePerLine,vueIndentScriptAndStyle:{category:Ds,type:\"boolean\",default:!1,description:\"Indent script and style tags in Vue files.\"}},vs=Pa;var Gr={};Jr(Gr,{angular:()=>Fo,html:()=>Lo,lwc:()=>Po,vue:()=>No});var Cp=new RegExp(`(\\\\:not\\\\()|(([\\\\.\\\\#]?)[-\\\\w]+)|(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\"']?)([^\\\\]\"']*)\\\\5)?\\\\])|(\\\\))|(\\\\s*,\\\\s*)`,\"g\");var ys;(function(t){t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\"})(ys||(ys={}));var ws;(function(t){t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\"})(ws||(ws={}));var bs;(function(t){t[t.None=0]=\"None\",t[t.SignalBased=1]=\"SignalBased\",t[t.HasDecoratorInputTransform=2]=\"HasDecoratorInputTransform\"})(bs||(bs={}));var br={name:\"custom-elements\"},Tr={name:\"no-errors-schema\"};var Z;(function(t){t[t.NONE=0]=\"NONE\",t[t.HTML=1]=\"HTML\",t[t.STYLE=2]=\"STYLE\",t[t.SCRIPT=3]=\"SCRIPT\",t[t.URL=4]=\"URL\",t[t.RESOURCE_URL=5]=\"RESOURCE_URL\"})(Z||(Z={}));var Ts;(function(t){t[t.Error=0]=\"Error\",t[t.Warning=1]=\"Warning\",t[t.Ignore=2]=\"Ignore\"})(Ts||(Ts={}));var I;(function(t){t[t.RAW_TEXT=0]=\"RAW_TEXT\",t[t.ESCAPABLE_RAW_TEXT=1]=\"ESCAPABLE_RAW_TEXT\",t[t.PARSABLE_DATA=2]=\"PARSABLE_DATA\"})(I||(I={}));function ut(t,e=!0){if(t[0]!=\":\")return[null,t];let r=t.indexOf(\":\",1);if(r===-1){if(e)throw new Error(`Unsupported format \"${t}\" expecting \":namespace:name\"`);return[null,t]}return[t.slice(1,r),t.slice(r+1)]}function xr(t){return ut(t)[1]===\"ng-container\"}function kr(t){return ut(t)[1]===\"ng-content\"}function Re(t){return t===null?null:ut(t)[0]}function Oe(t,e){return t?`:${t}:${e}`:e}var $t;function Br(){return $t||($t={},Ot(Z.HTML,[\"iframe|srcdoc\",\"*|innerHTML\",\"*|outerHTML\"]),Ot(Z.STYLE,[\"*|style\"]),Ot(Z.URL,[\"*|formAction\",\"area|href\",\"area|ping\",\"audio|src\",\"a|href\",\"a|ping\",\"blockquote|cite\",\"body|background\",\"del|cite\",\"form|action\",\"img|src\",\"input|src\",\"ins|cite\",\"q|cite\",\"source|src\",\"track|src\",\"video|poster\",\"video|src\"]),Ot(Z.RESOURCE_URL,[\"applet|code\",\"applet|codebase\",\"base|href\",\"embed|src\",\"frame|src\",\"head|profile\",\"html|manifest\",\"iframe|src\",\"link|href\",\"media|src\",\"object|codebase\",\"object|data\",\"script|src\"])),$t}function Ot(t,e){for(let r of e)$t[r.toLowerCase()]=t}var Mt=class{};var Ia=\"boolean\",Ra=\"number\",Oa=\"string\",$a=\"object\",Ma=[\"[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored\",\"[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy\",\"abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy\",\"media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume\",\":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex\",\":svg:graphics^:svg:|\",\":svg:animation^:svg:|*begin,*end,*repeat\",\":svg:geometry^:svg:|\",\":svg:componentTransferFunction^:svg:|\",\":svg:gradient^:svg:|\",\":svg:textContent^:svg:graphics|\",\":svg:textPositioning^:svg:textContent|\",\"a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username\",\"area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username\",\"audio^media|\",\"br^[HTMLElement]|clear\",\"base^[HTMLElement]|href,target\",\"body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink\",\"button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value\",\"canvas^[HTMLElement]|#height,#width\",\"content^[HTMLElement]|select\",\"dl^[HTMLElement]|!compact\",\"data^[HTMLElement]|value\",\"datalist^[HTMLElement]|\",\"details^[HTMLElement]|!open\",\"dialog^[HTMLElement]|!open,returnValue\",\"dir^[HTMLElement]|!compact\",\"div^[HTMLElement]|align\",\"embed^[HTMLElement]|align,height,name,src,type,width\",\"fieldset^[HTMLElement]|!disabled,name\",\"font^[HTMLElement]|color,face,size\",\"form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target\",\"frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src\",\"frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows\",\"hr^[HTMLElement]|align,color,!noShade,size,width\",\"head^[HTMLElement]|\",\"h1,h2,h3,h4,h5,h6^[HTMLElement]|align\",\"html^[HTMLElement]|version\",\"iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width\",\"img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width\",\"input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width\",\"li^[HTMLElement]|type,#value\",\"label^[HTMLElement]|htmlFor\",\"legend^[HTMLElement]|align\",\"link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type\",\"map^[HTMLElement]|name\",\"marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width\",\"menu^[HTMLElement]|!compact\",\"meta^[HTMLElement]|content,httpEquiv,media,name,scheme\",\"meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value\",\"ins,del^[HTMLElement]|cite,dateTime\",\"ol^[HTMLElement]|!compact,!reversed,#start,type\",\"object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width\",\"optgroup^[HTMLElement]|!disabled,label\",\"option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value\",\"output^[HTMLElement]|defaultValue,%htmlFor,name,value\",\"p^[HTMLElement]|align\",\"param^[HTMLElement]|name,type,value,valueType\",\"picture^[HTMLElement]|\",\"pre^[HTMLElement]|#width\",\"progress^[HTMLElement]|#max,#value\",\"q,blockquote,cite^[HTMLElement]|\",\"script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type\",\"select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value\",\"slot^[HTMLElement]|name\",\"source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width\",\"span^[HTMLElement]|\",\"style^[HTMLElement]|!disabled,media,type\",\"caption^[HTMLElement]|align\",\"th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width\",\"col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width\",\"table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width\",\"tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign\",\"tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign\",\"template^[HTMLElement]|\",\"textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap\",\"time^[HTMLElement]|dateTime\",\"title^[HTMLElement]|text\",\"track^[HTMLElement]|!default,kind,label,src,srclang\",\"ul^[HTMLElement]|!compact,type\",\"unknown^[HTMLElement]|\",\"video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width\",\":svg:a^:svg:graphics|\",\":svg:animate^:svg:animation|\",\":svg:animateMotion^:svg:animation|\",\":svg:animateTransform^:svg:animation|\",\":svg:circle^:svg:geometry|\",\":svg:clipPath^:svg:graphics|\",\":svg:defs^:svg:graphics|\",\":svg:desc^:svg:|\",\":svg:discard^:svg:|\",\":svg:ellipse^:svg:geometry|\",\":svg:feBlend^:svg:|\",\":svg:feColorMatrix^:svg:|\",\":svg:feComponentTransfer^:svg:|\",\":svg:feComposite^:svg:|\",\":svg:feConvolveMatrix^:svg:|\",\":svg:feDiffuseLighting^:svg:|\",\":svg:feDisplacementMap^:svg:|\",\":svg:feDistantLight^:svg:|\",\":svg:feDropShadow^:svg:|\",\":svg:feFlood^:svg:|\",\":svg:feFuncA^:svg:componentTransferFunction|\",\":svg:feFuncB^:svg:componentTransferFunction|\",\":svg:feFuncG^:svg:componentTransferFunction|\",\":svg:feFuncR^:svg:componentTransferFunction|\",\":svg:feGaussianBlur^:svg:|\",\":svg:feImage^:svg:|\",\":svg:feMerge^:svg:|\",\":svg:feMergeNode^:svg:|\",\":svg:feMorphology^:svg:|\",\":svg:feOffset^:svg:|\",\":svg:fePointLight^:svg:|\",\":svg:feSpecularLighting^:svg:|\",\":svg:feSpotLight^:svg:|\",\":svg:feTile^:svg:|\",\":svg:feTurbulence^:svg:|\",\":svg:filter^:svg:|\",\":svg:foreignObject^:svg:graphics|\",\":svg:g^:svg:graphics|\",\":svg:image^:svg:graphics|decoding\",\":svg:line^:svg:geometry|\",\":svg:linearGradient^:svg:gradient|\",\":svg:mpath^:svg:|\",\":svg:marker^:svg:|\",\":svg:mask^:svg:|\",\":svg:metadata^:svg:|\",\":svg:path^:svg:geometry|\",\":svg:pattern^:svg:|\",\":svg:polygon^:svg:geometry|\",\":svg:polyline^:svg:geometry|\",\":svg:radialGradient^:svg:gradient|\",\":svg:rect^:svg:geometry|\",\":svg:svg^:svg:graphics|#currentScale,#zoomAndPan\",\":svg:script^:svg:|type\",\":svg:set^:svg:animation|\",\":svg:stop^:svg:|\",\":svg:style^:svg:|!disabled,media,title,type\",\":svg:switch^:svg:graphics|\",\":svg:symbol^:svg:|\",\":svg:tspan^:svg:textPositioning|\",\":svg:text^:svg:textPositioning|\",\":svg:textPath^:svg:textContent|\",\":svg:title^:svg:|\",\":svg:use^:svg:graphics|\",\":svg:view^:svg:|#zoomAndPan\",\"data^[HTMLElement]|value\",\"keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name\",\"menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default\",\"summary^[HTMLElement]|\",\"time^[HTMLElement]|dateTime\",\":svg:cursor^:svg:|\",\":math:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforeinput,*beforematch,*beforetoggle,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contentvisibilityautostatechange,*contextlost,*contextmenu,*contextrestored,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*scrollend,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex\",\":math:math^:math:|\",\":math:maction^:math:|\",\":math:menclose^:math:|\",\":math:merror^:math:|\",\":math:mfenced^:math:|\",\":math:mfrac^:math:|\",\":math:mi^:math:|\",\":math:mmultiscripts^:math:|\",\":math:mn^:math:|\",\":math:mo^:math:|\",\":math:mover^:math:|\",\":math:mpadded^:math:|\",\":math:mphantom^:math:|\",\":math:mroot^:math:|\",\":math:mrow^:math:|\",\":math:ms^:math:|\",\":math:mspace^:math:|\",\":math:msqrt^:math:|\",\":math:mstyle^:math:|\",\":math:msub^:math:|\",\":math:msubsup^:math:|\",\":math:msup^:math:|\",\":math:mtable^:math:|\",\":math:mtd^:math:|\",\":math:mtext^:math:|\",\":math:mtr^:math:|\",\":math:munder^:math:|\",\":math:munderover^:math:|\",\":math:semantics^:math:|\"],xs=new Map(Object.entries({class:\"className\",for:\"htmlFor\",formaction:\"formAction\",innerHtml:\"innerHTML\",readonly:\"readOnly\",tabindex:\"tabIndex\"})),qa=Array.from(xs).reduce((t,[e,r])=>(t.set(e,r),t),new Map),qt=class extends Mt{constructor(){super(),this._schema=new Map,this._eventSchema=new Map,Ma.forEach(e=>{let r=new Map,n=new Set,[s,i]=e.split(\"|\"),a=i.split(\",\"),[o,u]=s.split(\"^\");o.split(\",\").forEach(l=>{this._schema.set(l.toLowerCase(),r),this._eventSchema.set(l.toLowerCase(),n)});let p=u&&this._schema.get(u.toLowerCase());if(p){for(let[l,f]of p)r.set(l,f);for(let l of this._eventSchema.get(u.toLowerCase()))n.add(l)}a.forEach(l=>{if(l.length>0)switch(l[0]){case\"*\":n.add(l.substring(1));break;case\"!\":r.set(l.substring(1),Ia);break;case\"#\":r.set(l.substring(1),Ra);break;case\"%\":r.set(l.substring(1),$a);break;default:r.set(l,Oa)}})})}hasProperty(e,r,n){if(n.some(i=>i.name===Tr.name))return!0;if(e.indexOf(\"-\")>-1){if(xr(e)||kr(e))return!1;if(n.some(i=>i.name===br.name))return!0}return(this._schema.get(e.toLowerCase())||this._schema.get(\"unknown\")).has(r)}hasElement(e,r){return r.some(n=>n.name===Tr.name)||e.indexOf(\"-\")>-1&&(xr(e)||kr(e)||r.some(n=>n.name===br.name))?!0:this._schema.has(e.toLowerCase())}securityContext(e,r,n){n&&(r=this.getMappedPropName(r)),e=e.toLowerCase(),r=r.toLowerCase();let s=Br()[e+\"|\"+r];return s||(s=Br()[\"*|\"+r],s||Z.NONE)}getMappedPropName(e){return xs.get(e)??e}getDefaultComponentElementName(){return\"ng-component\"}validateProperty(e){return e.toLowerCase().startsWith(\"on\")?{error:!0,msg:`Binding to event property '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...\nIf '${e}' is a directive input, make sure the directive is imported by the current module.`}:{error:!1}}validateAttribute(e){return e.toLowerCase().startsWith(\"on\")?{error:!0,msg:`Binding to event attribute '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...`}:{error:!1}}allKnownElementNames(){return Array.from(this._schema.keys())}allKnownAttributesOfElement(e){let r=this._schema.get(e.toLowerCase())||this._schema.get(\"unknown\");return Array.from(r.keys()).map(n=>qa.get(n)??n)}allKnownEventsOfElement(e){return Array.from(this._eventSchema.get(e.toLowerCase())??[])}normalizeAnimationStyleProperty(e){return Ss(e)}normalizeAnimationStyleValue(e,r,n){let s=\"\",i=n.toString().trim(),a=null;if(Ha(e)&&n!==0&&n!==\"0\")if(typeof n==\"number\")s=\"px\";else{let o=n.match(/^[+-]?[\\d\\.]+([a-z]*)$/);o&&o[1].length==0&&(a=`Please provide a CSS unit value for ${r}:${n}`)}return{error:a,value:i+s}}};function Ha(t){switch(t){case\"width\":case\"height\":case\"minWidth\":case\"minHeight\":case\"maxWidth\":case\"maxHeight\":case\"left\":case\"top\":case\"bottom\":case\"right\":case\"fontSize\":case\"outlineWidth\":case\"outlineOffset\":case\"paddingTop\":case\"paddingLeft\":case\"paddingBottom\":case\"paddingRight\":case\"marginTop\":case\"marginLeft\":case\"marginBottom\":case\"marginRight\":case\"borderRadius\":case\"borderWidth\":case\"borderTopWidth\":case\"borderLeftWidth\":case\"borderRightWidth\":case\"borderBottomWidth\":case\"textIndent\":return!0;default:return!1}}var m=class{constructor({closedByChildren:e,implicitNamespacePrefix:r,contentType:n=I.PARSABLE_DATA,closedByParent:s=!1,isVoid:i=!1,ignoreFirstLf:a=!1,preventNamespaceInheritance:o=!1,canSelfClose:u=!1}={}){this.closedByChildren={},this.closedByParent=!1,e&&e.length>0&&e.forEach(p=>this.closedByChildren[p]=!0),this.isVoid=i,this.closedByParent=s||i,this.implicitNamespacePrefix=r||null,this.contentType=n,this.ignoreFirstLf=a,this.preventNamespaceInheritance=o,this.canSelfClose=u??i}isClosedByChild(e){return this.isVoid||e.toLowerCase()in this.closedByChildren}getContentType(e){return typeof this.contentType==\"object\"?(e===void 0?void 0:this.contentType[e])??this.contentType.default:this.contentType}},ks,lt;function $e(t){return lt||(ks=new m({canSelfClose:!0}),lt=Object.assign(Object.create(null),{base:new m({isVoid:!0}),meta:new m({isVoid:!0}),area:new m({isVoid:!0}),embed:new m({isVoid:!0}),link:new m({isVoid:!0}),img:new m({isVoid:!0}),input:new m({isVoid:!0}),param:new m({isVoid:!0}),hr:new m({isVoid:!0}),br:new m({isVoid:!0}),source:new m({isVoid:!0}),track:new m({isVoid:!0}),wbr:new m({isVoid:!0}),p:new m({closedByChildren:[\"address\",\"article\",\"aside\",\"blockquote\",\"div\",\"dl\",\"fieldset\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"main\",\"nav\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"ul\"],closedByParent:!0}),thead:new m({closedByChildren:[\"tbody\",\"tfoot\"]}),tbody:new m({closedByChildren:[\"tbody\",\"tfoot\"],closedByParent:!0}),tfoot:new m({closedByChildren:[\"tbody\"],closedByParent:!0}),tr:new m({closedByChildren:[\"tr\"],closedByParent:!0}),td:new m({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),th:new m({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),col:new m({isVoid:!0}),svg:new m({implicitNamespacePrefix:\"svg\"}),foreignObject:new m({implicitNamespacePrefix:\"svg\",preventNamespaceInheritance:!0}),math:new m({implicitNamespacePrefix:\"math\"}),li:new m({closedByChildren:[\"li\"],closedByParent:!0}),dt:new m({closedByChildren:[\"dt\",\"dd\"]}),dd:new m({closedByChildren:[\"dt\",\"dd\"],closedByParent:!0}),rb:new m({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rt:new m({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rtc:new m({closedByChildren:[\"rb\",\"rtc\",\"rp\"],closedByParent:!0}),rp:new m({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),optgroup:new m({closedByChildren:[\"optgroup\"],closedByParent:!0}),option:new m({closedByChildren:[\"option\",\"optgroup\"],closedByParent:!0}),pre:new m({ignoreFirstLf:!0}),listing:new m({ignoreFirstLf:!0}),style:new m({contentType:I.RAW_TEXT}),script:new m({contentType:I.RAW_TEXT}),title:new m({contentType:{default:I.ESCAPABLE_RAW_TEXT,svg:I.PARSABLE_DATA}}),textarea:new m({contentType:I.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),new qt().allKnownElementNames().forEach(e=>{!lt[e]&&Re(e)===null&&(lt[e]=new m({canSelfClose:!1}))})),lt[t]??ks}var ae=class{constructor(e,r){this.sourceSpan=e,this.i18n=r}},Ht=class extends ae{constructor(e,r,n,s){super(r,s),this.value=e,this.tokens=n,this.type=\"text\"}visit(e,r){return e.visitText(this,r)}},Vt=class extends ae{constructor(e,r,n,s){super(r,s),this.value=e,this.tokens=n,this.type=\"cdata\"}visit(e,r){return e.visitCdata(this,r)}},Ut=class extends ae{constructor(e,r,n,s,i,a){super(s,a),this.switchValue=e,this.type=r,this.cases=n,this.switchValueSourceSpan=i}visit(e,r){return e.visitExpansion(this,r)}},Wt=class{constructor(e,r,n,s,i){this.value=e,this.expression=r,this.sourceSpan=n,this.valueSourceSpan=s,this.expSourceSpan=i,this.type=\"expansionCase\"}visit(e,r){return e.visitExpansionCase(this,r)}},zt=class extends ae{constructor(e,r,n,s,i,a,o){super(n,o),this.name=e,this.value=r,this.keySpan=s,this.valueSpan=i,this.valueTokens=a,this.type=\"attribute\"}visit(e,r){return e.visitAttribute(this,r)}get nameSpan(){return this.keySpan}},G=class extends ae{constructor(e,r,n,s,i,a=null,o=null,u){super(s,u),this.name=e,this.attrs=r,this.children=n,this.startSourceSpan=i,this.endSourceSpan=a,this.nameSpan=o,this.type=\"element\"}visit(e,r){return e.visitElement(this,r)}},Gt=class{constructor(e,r){this.value=e,this.sourceSpan=r,this.type=\"comment\"}visit(e,r){return e.visitComment(this,r)}},Yt=class{constructor(e,r){this.value=e,this.sourceSpan=r,this.type=\"docType\"}visit(e,r){return e.visitDocType(this,r)}},ee=class extends ae{constructor(e,r,n,s,i,a,o=null,u){super(s,u),this.name=e,this.parameters=r,this.children=n,this.nameSpan=i,this.startSourceSpan=a,this.endSourceSpan=o,this.type=\"block\"}visit(e,r){return e.visitBlock(this,r)}},ct=class{constructor(e,r){this.expression=e,this.sourceSpan=r,this.type=\"blockParameter\",this.startSourceSpan=null,this.endSourceSpan=null}visit(e,r){return e.visitBlockParameter(this,r)}},pt=class{constructor(e,r,n,s,i){this.name=e,this.value=r,this.sourceSpan=n,this.nameSpan=s,this.valueSpan=i,this.type=\"letDeclaration\",this.startSourceSpan=null,this.endSourceSpan=null}visit(e,r){return e.visitLetDeclaration(this,r)}};function jt(t,e,r=null){let n=[],s=t.visit?i=>t.visit(i,r)||i.visit(t,r):i=>i.visit(t,r);return e.forEach(i=>{let a=s(i);a&&n.push(a)}),n}var ht=class{constructor(){}visitElement(e,r){this.visitChildren(r,n=>{n(e.attrs),n(e.children)})}visitAttribute(e,r){}visitText(e,r){}visitCdata(e,r){}visitComment(e,r){}visitDocType(e,r){}visitExpansion(e,r){return this.visitChildren(r,n=>{n(e.cases)})}visitExpansionCase(e,r){}visitBlock(e,r){this.visitChildren(r,n=>{n(e.parameters),n(e.children)})}visitBlockParameter(e,r){}visitLetDeclaration(e,r){}visitChildren(e,r){let n=[],s=this;function i(a){a&&n.push(jt(s,a,e))}return r(i),Array.prototype.concat.apply([],n)}};var Me={AElig:\"\\xC6\",AMP:\"&\",amp:\"&\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",af:\"\\u2061\",Aring:\"\\xC5\",angst:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",colone:\"\\u2254\",coloneq:\"\\u2254\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Backslash:\"\\u2216\",setminus:\"\\u2216\",setmn:\"\\u2216\",smallsetminus:\"\\u2216\",ssetmn:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",doublebarwedge:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",becaus:\"\\u2235\",because:\"\\u2235\",Bernoullis:\"\\u212C\",Bscr:\"\\u212C\",bernou:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",breve:\"\\u02D8\",Bumpeq:\"\\u224E\",HumpDownHump:\"\\u224E\",bump:\"\\u224E\",CHcy:\"\\u0427\",COPY:\"\\xA9\",copy:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",DD:\"\\u2145\",Cayleys:\"\\u212D\",Cfr:\"\\u212D\",Ccaron:\"\\u010C\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",cedil:\"\\xB8\",CenterDot:\"\\xB7\",centerdot:\"\\xB7\",middot:\"\\xB7\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",odot:\"\\u2299\",CircleMinus:\"\\u2296\",ominus:\"\\u2296\",CirclePlus:\"\\u2295\",oplus:\"\\u2295\",CircleTimes:\"\\u2297\",otimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",cwconint:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",Colon:\"\\u2237\",Proportion:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",equiv:\"\\u2261\",Conint:\"\\u222F\",DoubleContourIntegral:\"\\u222F\",ContourIntegral:\"\\u222E\",conint:\"\\u222E\",oint:\"\\u222E\",Copf:\"\\u2102\",complexes:\"\\u2102\",Coproduct:\"\\u2210\",coprod:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",awconint:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",asympeq:\"\\u224D\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",ddagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",DoubleLeftTee:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",nabla:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",acute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",dot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",dblac:\"\\u02DD\",DiacriticalGrave:\"`\",grave:\"`\",DiacriticalTilde:\"\\u02DC\",tilde:\"\\u02DC\",Diamond:\"\\u22C4\",diam:\"\\u22C4\",diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",dd:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DoubleDot:\"\\xA8\",die:\"\\xA8\",uml:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",doteq:\"\\u2250\",esdot:\"\\u2250\",DoubleDownArrow:\"\\u21D3\",Downarrow:\"\\u21D3\",dArr:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",Leftarrow:\"\\u21D0\",lArr:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",Leftrightarrow:\"\\u21D4\",hArr:\"\\u21D4\",iff:\"\\u21D4\",DoubleLongLeftArrow:\"\\u27F8\",Longleftarrow:\"\\u27F8\",xlArr:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",Longleftrightarrow:\"\\u27FA\",xhArr:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",Longrightarrow:\"\\u27F9\",xrArr:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",Implies:\"\\u21D2\",Rightarrow:\"\\u21D2\",rArr:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",vDash:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",Uparrow:\"\\u21D1\",uArr:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",Updownarrow:\"\\u21D5\",vArr:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",par:\"\\u2225\",parallel:\"\\u2225\",shortparallel:\"\\u2225\",spar:\"\\u2225\",DownArrow:\"\\u2193\",ShortDownArrow:\"\\u2193\",darr:\"\\u2193\",downarrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",duarr:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",leftharpoondown:\"\\u21BD\",lhard:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",rhard:\"\\u21C1\",rightharpoondown:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",top:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",mapstodown:\"\\u21A7\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ETH:\"\\xD0\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrave:\"\\xC8\",Element:\"\\u2208\",in:\"\\u2208\",isin:\"\\u2208\",isinv:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",eqsim:\"\\u2242\",esim:\"\\u2242\",Equilibrium:\"\\u21CC\",rightleftharpoons:\"\\u21CC\",rlhar:\"\\u21CC\",Escr:\"\\u2130\",expectation:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Euml:\"\\xCB\",Exists:\"\\u2203\",exist:\"\\u2203\",ExponentialE:\"\\u2147\",ee:\"\\u2147\",exponentiale:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",blacksquare:\"\\u25AA\",squarf:\"\\u25AA\",squf:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",forall:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",GT:\">\",gt:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",ggg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",ge:\"\\u2265\",geq:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",gel:\"\\u22DB\",gtreqless:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",gE:\"\\u2267\",geqq:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",gl:\"\\u2277\",gtrless:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",GreaterTilde:\"\\u2273\",gsim:\"\\u2273\",gtrsim:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",NestedGreaterGreater:\"\\u226B\",gg:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",caron:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",Poincareplane:\"\\u210C\",HilbertSpace:\"\\u210B\",Hscr:\"\\u210B\",hamilt:\"\\u210B\",Hopf:\"\\u210D\",quaternions:\"\\u210D\",HorizontalLine:\"\\u2500\",boxh:\"\\u2500\",Hstrok:\"\\u0126\",HumpEqual:\"\\u224F\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Im:\"\\u2111\",image:\"\\u2111\",imagpart:\"\\u2111\",Igrave:\"\\xCC\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",ii:\"\\u2148\",Int:\"\\u222C\",Integral:\"\\u222B\",int:\"\\u222B\",Intersection:\"\\u22C2\",bigcap:\"\\u22C2\",xcap:\"\\u22C2\",InvisibleComma:\"\\u2063\",ic:\"\\u2063\",InvisibleTimes:\"\\u2062\",it:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",imagline:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",LT:\"<\",lt:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Lscr:\"\\u2112\",lagran:\"\\u2112\",Larr:\"\\u219E\",twoheadleftarrow:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",lang:\"\\u27E8\",langle:\"\\u27E8\",LeftArrow:\"\\u2190\",ShortLeftArrow:\"\\u2190\",larr:\"\\u2190\",leftarrow:\"\\u2190\",slarr:\"\\u2190\",LeftArrowBar:\"\\u21E4\",larrb:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",leftrightarrows:\"\\u21C6\",lrarr:\"\\u21C6\",LeftCeiling:\"\\u2308\",lceil:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",lobrk:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",dharl:\"\\u21C3\",downharpoonleft:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",lfloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",harr:\"\\u2194\",leftrightarrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",dashv:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",mapstoleft:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",vartriangleleft:\"\\u22B2\",vltri:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",ltrie:\"\\u22B4\",trianglelefteq:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",uharl:\"\\u21BF\",upharpoonleft:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",leftharpoonup:\"\\u21BC\",lharu:\"\\u21BC\",LeftVectorBar:\"\\u2952\",LessEqualGreater:\"\\u22DA\",leg:\"\\u22DA\",lesseqgtr:\"\\u22DA\",LessFullEqual:\"\\u2266\",lE:\"\\u2266\",leqq:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",lg:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",LessTilde:\"\\u2272\",lesssim:\"\\u2272\",lsim:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",lAarr:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",longleftarrow:\"\\u27F5\",xlarr:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",longleftrightarrow:\"\\u27F7\",xharr:\"\\u27F7\",LongRightArrow:\"\\u27F6\",longrightarrow:\"\\u27F6\",xrarr:\"\\u27F6\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",swarr:\"\\u2199\",swarrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",searr:\"\\u2198\",searrow:\"\\u2198\",Lsh:\"\\u21B0\",lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",NestedLessLess:\"\\u226A\",ll:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mscr:\"\\u2133\",phmmat:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",mnplus:\"\\u2213\",mp:\"\\u2213\",Mopf:\"\\u{1D544}\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",ZeroWidthSpace:\"\\u200B\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",nbsp:\"\\xA0\",Nopf:\"\\u2115\",naturals:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",nequiv:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",npar:\"\\u2226\",nparallel:\"\\u2226\",nshortparallel:\"\\u2226\",nspar:\"\\u2226\",NotElement:\"\\u2209\",notin:\"\\u2209\",notinva:\"\\u2209\",NotEqual:\"\\u2260\",ne:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",nesim:\"\\u2242\\u0338\",NotExists:\"\\u2204\",nexist:\"\\u2204\",nexists:\"\\u2204\",NotGreater:\"\\u226F\",ngt:\"\\u226F\",ngtr:\"\\u226F\",NotGreaterEqual:\"\\u2271\",nge:\"\\u2271\",ngeq:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",ngE:\"\\u2267\\u0338\",ngeqq:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",nGtv:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",ntgl:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",ngsim:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",nbump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",nbumpe:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",nltri:\"\\u22EA\",ntriangleleft:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",nltrie:\"\\u22EC\",ntrianglelefteq:\"\\u22EC\",NotLess:\"\\u226E\",nless:\"\\u226E\",nlt:\"\\u226E\",NotLessEqual:\"\\u2270\",nle:\"\\u2270\",nleq:\"\\u2270\",NotLessGreater:\"\\u2278\",ntlg:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",nLtv:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",nlsim:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",npr:\"\\u2280\",nprec:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",npre:\"\\u2AAF\\u0338\",npreceq:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",nprcue:\"\\u22E0\",NotReverseElement:\"\\u220C\",notni:\"\\u220C\",notniva:\"\\u220C\",NotRightTriangle:\"\\u22EB\",nrtri:\"\\u22EB\",ntriangleright:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",nrtrie:\"\\u22ED\",ntrianglerighteq:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",nsqsube:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",nsqsupe:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",nsubset:\"\\u2282\\u20D2\",vnsub:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",nsube:\"\\u2288\",nsubseteq:\"\\u2288\",NotSucceeds:\"\\u2281\",nsc:\"\\u2281\",nsucc:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",nsce:\"\\u2AB0\\u0338\",nsucceq:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",nsccue:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",nsupset:\"\\u2283\\u20D2\",vnsup:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",nsupe:\"\\u2289\",nsupseteq:\"\\u2289\",NotTilde:\"\\u2241\",nsim:\"\\u2241\",NotTildeEqual:\"\\u2244\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",ncong:\"\\u2247\",NotTildeTilde:\"\\u2249\",nap:\"\\u2249\",napprox:\"\\u2249\",NotVerticalBar:\"\\u2224\",nmid:\"\\u2224\",nshortmid:\"\\u2224\",nsmid:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",ohm:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",ldquo:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",lsquo:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",oline:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",tbrk:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",part:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",pm:\"\\xB1\",Popf:\"\\u2119\",primes:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",pr:\"\\u227A\",prec:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",pre:\"\\u2AAF\",preceq:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",prcue:\"\\u227C\",preccurlyeq:\"\\u227C\",PrecedesTilde:\"\\u227E\",precsim:\"\\u227E\",prsim:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",prod:\"\\u220F\",Proportional:\"\\u221D\",prop:\"\\u221D\",propto:\"\\u221D\",varpropto:\"\\u221D\",vprop:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUOT:'\"',quot:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",rationals:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",drbkarow:\"\\u2910\",REG:\"\\xAE\",circledR:\"\\xAE\",reg:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",twoheadrightarrow:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",Rfr:\"\\u211C\",real:\"\\u211C\",realpart:\"\\u211C\",ReverseElement:\"\\u220B\",SuchThat:\"\\u220B\",ni:\"\\u220B\",niv:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",leftrightharpoons:\"\\u21CB\",lrhar:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",duhar:\"\\u296F\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",rang:\"\\u27E9\",rangle:\"\\u27E9\",RightArrow:\"\\u2192\",ShortRightArrow:\"\\u2192\",rarr:\"\\u2192\",rightarrow:\"\\u2192\",srarr:\"\\u2192\",RightArrowBar:\"\\u21E5\",rarrb:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",rightleftarrows:\"\\u21C4\",rlarr:\"\\u21C4\",RightCeiling:\"\\u2309\",rceil:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",robrk:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",dharr:\"\\u21C2\",downharpoonright:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",rfloor:\"\\u230B\",RightTee:\"\\u22A2\",vdash:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",map:\"\\u21A6\",mapsto:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",vartriangleright:\"\\u22B3\",vrtri:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",rtrie:\"\\u22B5\",trianglerighteq:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",uharr:\"\\u21BE\",upharpoonright:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",rharu:\"\\u21C0\",rightharpoonup:\"\\u21C0\",RightVectorBar:\"\\u2953\",Ropf:\"\\u211D\",reals:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",rAarr:\"\\u21DB\",Rscr:\"\\u211B\",realine:\"\\u211B\",Rsh:\"\\u21B1\",rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortUpArrow:\"\\u2191\",UpArrow:\"\\u2191\",uarr:\"\\u2191\",uparrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",compfn:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",radic:\"\\u221A\",Square:\"\\u25A1\",squ:\"\\u25A1\",square:\"\\u25A1\",SquareIntersection:\"\\u2293\",sqcap:\"\\u2293\",SquareSubset:\"\\u228F\",sqsub:\"\\u228F\",sqsubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",sqsube:\"\\u2291\",sqsubseteq:\"\\u2291\",SquareSuperset:\"\\u2290\",sqsup:\"\\u2290\",sqsupset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",sqsupe:\"\\u2292\",sqsupseteq:\"\\u2292\",SquareUnion:\"\\u2294\",sqcup:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",sstarf:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",sube:\"\\u2286\",subseteq:\"\\u2286\",Succeeds:\"\\u227B\",sc:\"\\u227B\",succ:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",sce:\"\\u2AB0\",succeq:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",sccue:\"\\u227D\",succcurlyeq:\"\\u227D\",SucceedsTilde:\"\\u227F\",scsim:\"\\u227F\",succsim:\"\\u227F\",Sum:\"\\u2211\",sum:\"\\u2211\",Sup:\"\\u22D1\",Supset:\"\\u22D1\",Superset:\"\\u2283\",sup:\"\\u2283\",supset:\"\\u2283\",SupersetEqual:\"\\u2287\",supe:\"\\u2287\",supseteq:\"\\u2287\",THORN:\"\\xDE\",TRADE:\"\\u2122\",trade:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",there4:\"\\u2234\",therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",Tilde:\"\\u223C\",sim:\"\\u223C\",thicksim:\"\\u223C\",thksim:\"\\u223C\",TildeEqual:\"\\u2243\",sime:\"\\u2243\",simeq:\"\\u2243\",TildeFullEqual:\"\\u2245\",cong:\"\\u2245\",TildeTilde:\"\\u2248\",ap:\"\\u2248\",approx:\"\\u2248\",asymp:\"\\u2248\",thickapprox:\"\\u2248\",thkap:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",tdot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",lowbar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",bbrk:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",bigcup:\"\\u22C3\",xcup:\"\\u22C3\",UnionPlus:\"\\u228E\",uplus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",udarr:\"\\u21C5\",UpDownArrow:\"\\u2195\",updownarrow:\"\\u2195\",varr:\"\\u2195\",UpEquilibrium:\"\\u296E\",udhar:\"\\u296E\",UpTee:\"\\u22A5\",bot:\"\\u22A5\",bottom:\"\\u22A5\",perp:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",mapstoup:\"\\u21A5\",UpperLeftArrow:\"\\u2196\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",nearr:\"\\u2197\",nearrow:\"\\u2197\",Upsi:\"\\u03D2\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",bigvee:\"\\u22C1\",xvee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",mid:\"\\u2223\",shortmid:\"\\u2223\",smid:\"\\u2223\",VerticalLine:\"|\",verbar:\"|\",vert:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",wr:\"\\u2240\",wreath:\"\\u2240\",VeryThinSpace:\"\\u200A\",hairsp:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",bigwedge:\"\\u22C0\",xwedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",zeetrf:\"\\u2128\",Zopf:\"\\u2124\",integers:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",mstpos:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acirc:\"\\xE2\",acy:\"\\u0430\",aelig:\"\\xE6\",afr:\"\\u{1D51E}\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",and:\"\\u2227\",wedge:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",angle:\"\\u2220\",ange:\"\\u29A4\",angmsd:\"\\u2221\",measuredangle:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",approxeq:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",midast:\"*\",atilde:\"\\xE3\",auml:\"\\xE4\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",bcong:\"\\u224C\",backepsilon:\"\\u03F6\",bepsi:\"\\u03F6\",backprime:\"\\u2035\",bprime:\"\\u2035\",backsim:\"\\u223D\",bsim:\"\\u223D\",backsimeq:\"\\u22CD\",bsime:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrktbrk:\"\\u23B6\",bcy:\"\\u0431\",bdquo:\"\\u201E\",ldquor:\"\\u201E\",bemptyv:\"\\u29B0\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",twixt:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcirc:\"\\u25EF\",xcirc:\"\\u25EF\",bigodot:\"\\u2A00\",xodot:\"\\u2A00\",bigoplus:\"\\u2A01\",xoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",xotime:\"\\u2A02\",bigsqcup:\"\\u2A06\",xsqcup:\"\\u2A06\",bigstar:\"\\u2605\",starf:\"\\u2605\",bigtriangledown:\"\\u25BD\",xdtri:\"\\u25BD\",bigtriangleup:\"\\u25B3\",xutri:\"\\u25B3\",biguplus:\"\\u2A04\",xuplus:\"\\u2A04\",bkarow:\"\\u290D\",rbarr:\"\\u290D\",blacklozenge:\"\\u29EB\",lozf:\"\\u29EB\",blacktriangle:\"\\u25B4\",utrif:\"\\u25B4\",blacktriangledown:\"\\u25BE\",dtrif:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",ltrif:\"\\u25C2\",blacktriangleright:\"\\u25B8\",rtrif:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",minusb:\"\\u229F\",boxplus:\"\\u229E\",plusb:\"\\u229E\",boxtimes:\"\\u22A0\",timesb:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bumpE:\"\\u2AAE\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",cire:\"\\u2257\",circlearrowleft:\"\\u21BA\",olarr:\"\\u21BA\",circlearrowright:\"\\u21BB\",orarr:\"\\u21BB\",circledS:\"\\u24C8\",oS:\"\\u24C8\",circledast:\"\\u229B\",oast:\"\\u229B\",circledcirc:\"\\u229A\",ocir:\"\\u229A\",circleddash:\"\\u229D\",odash:\"\\u229D\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",comma:\",\",commat:\"@\",comp:\"\\u2201\",complement:\"\\u2201\",congdot:\"\\u2A6D\",copf:\"\\u{1D554}\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",curlyeqprec:\"\\u22DE\",cuesc:\"\\u22DF\",curlyeqsucc:\"\\u22DF\",cularr:\"\\u21B6\",curvearrowleft:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curvearrowright:\"\\u21B7\",curarrm:\"\\u293C\",curlyvee:\"\\u22CE\",cuvee:\"\\u22CE\",curlywedge:\"\\u22CF\",cuwed:\"\\u22CF\",curren:\"\\xA4\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",dash:\"\\u2010\",hyphen:\"\\u2010\",dbkarow:\"\\u290F\",rBarr:\"\\u290F\",dcaron:\"\\u010F\",dcy:\"\\u0434\",ddarr:\"\\u21CA\",downdownarrows:\"\\u21CA\",ddotseq:\"\\u2A77\",eDDot:\"\\u2A77\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",digamma:\"\\u03DD\",gammad:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",llcorner:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",doteqdot:\"\\u2251\",eDot:\"\\u2251\",dotminus:\"\\u2238\",minusd:\"\\u2238\",dotplus:\"\\u2214\",plusdo:\"\\u2214\",dotsquare:\"\\u22A1\",sdotb:\"\\u22A1\",drcorn:\"\\u231F\",lrcorner:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",triangledown:\"\\u25BF\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\u2256\",eqcirc:\"\\u2256\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",eqcolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",efDot:\"\\u2252\",fallingdotseq:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrave:\"\\xE8\",egs:\"\\u2A96\",eqslantgtr:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",eqslantless:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",varnothing:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",straightepsilon:\"\\u03F5\",varepsilon:\"\\u03F5\",equals:\"=\",equest:\"\\u225F\",questeq:\"\\u225F\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",risingdotseq:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",eta:\"\\u03B7\",eth:\"\\xF0\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",fork:\"\\u22D4\",pitchfork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",half:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",sfrown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gEl:\"\\u2A8C\",gtreqqless:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gap:\"\\u2A86\",gtrapprox:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gimel:\"\\u2137\",gjcy:\"\\u0453\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gneqq:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",gscr:\"\\u210A\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtrdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrarr:\"\\u2978\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hardcy:\"\\u044A\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",leftrightsquigarrow:\"\\u21AD\",hbar:\"\\u210F\",hslash:\"\\u210F\",planck:\"\\u210F\",plankv:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",mldr:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",searhk:\"\\u2925\",hkswarow:\"\\u2926\",swarhk:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",larrhk:\"\\u21A9\",hookrightarrow:\"\\u21AA\",rarrhk:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hstrok:\"\\u0127\",hybull:\"\\u2043\",iacute:\"\\xED\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexcl:\"\\xA1\",ifr:\"\\u{1D526}\",igrave:\"\\xEC\",iiiint:\"\\u2A0C\",qint:\"\\u2A0C\",iiint:\"\\u222D\",tint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",imath:\"\\u0131\",inodot:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",intcal:\"\\u22BA\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",itilde:\"\\u0129\",iukcy:\"\\u0456\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",varkappa:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lEg:\"\\u2A8B\",lesseqqgtr:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lambda:\"\\u03BB\",langd:\"\\u2991\",lap:\"\\u2A85\",lessapprox:\"\\u2A85\",laquo:\"\\xAB\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrlp:\"\\u21AB\",looparrowleft:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",leftarrowtail:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lcub:\"{\",lbrack:\"[\",lsqb:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leq:\"\\u2264\",leftleftarrows:\"\\u21C7\",llarr:\"\\u21C7\",leftthreetimes:\"\\u22CB\",lthree:\"\\u22CB\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessdot:\"\\u22D6\",ltdot:\"\\u22D6\",lfisht:\"\\u297C\",lfr:\"\\u{1D529}\",lgE:\"\\u2A91\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lneqq:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",longmapsto:\"\\u27FC\",xmap:\"\\u27FC\",looparrowright:\"\\u21AC\",rarrlp:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lpar:\"(\",lparlt:\"\\u2993\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsquor:\"\\u201A\",sbquo:\"\\u201A\",lstrok:\"\\u0142\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",triangleleft:\"\\u25C3\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",macr:\"\\xAF\",strns:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",midcir:\"\\u2AF0\",minus:\"\\u2212\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mscr:\"\\u{1D4C2}\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nLeftarrow:\"\\u21CD\",nlArr:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nhArr:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nRightarrow:\"\\u21CF\",nrArr:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",natur:\"\\u266E\",natural:\"\\u266E\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nedot:\"\\u2250\\u0338\",nesear:\"\\u2928\",toea:\"\\u2928\",nfr:\"\\u{1D52B}\",nharr:\"\\u21AE\",nleftrightarrow:\"\\u21AE\",nhpar:\"\\u2AF2\",nis:\"\\u22FC\",nisd:\"\\u22FA\",njcy:\"\\u045A\",nlE:\"\\u2266\\u0338\",nleqq:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nleftarrow:\"\\u219A\",nldr:\"\\u2025\",nopf:\"\\u{1D55F}\",not:\"\\xAC\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",nrarr:\"\\u219B\",nrightarrow:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nscr:\"\\u{1D4C3}\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsubseteqq:\"\\u2AC5\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupseteqq:\"\\u2AC6\\u0338\",ntilde:\"\\xF1\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwnear:\"\\u2927\",oacute:\"\\xF3\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",or:\"\\u2228\",vee:\"\\u2228\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",oscr:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oslash:\"\\xF8\",osol:\"\\u2298\",otilde:\"\\xF5\",otimesas:\"\\u2A36\",ouml:\"\\xF6\",ovbar:\"\\u233D\",para:\"\\xB6\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",straightphi:\"\\u03D5\",varphi:\"\\u03D5\",phone:\"\\u260E\",pi:\"\\u03C0\",piv:\"\\u03D6\",varpi:\"\\u03D6\",planckh:\"\\u210E\",plus:\"+\",plusacir:\"\\u2A23\",pluscir:\"\\u2A22\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",pound:\"\\xA3\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",precapprox:\"\\u2AB7\",precnapprox:\"\\u2AB9\",prnap:\"\\u2AB9\",precneqq:\"\\u2AB5\",prnE:\"\\u2AB5\",precnsim:\"\\u22E8\",prnsim:\"\\u22E8\",prime:\"\\u2032\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quatint:\"\\u2A16\",quest:\"?\",rAtail:\"\\u291C\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",raemptyv:\"\\u29B3\",rangd:\"\\u2992\",range:\"\\u29A5\",raquo:\"\\xBB\",rarrap:\"\\u2975\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rightarrowtail:\"\\u21A3\",rarrw:\"\\u219D\",rightsquigarrow:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rbbrk:\"\\u2773\",rbrace:\"}\",rcub:\"}\",rbrack:\"]\",rsqb:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdsh:\"\\u21B3\",rect:\"\\u25AD\",rfisht:\"\\u297D\",rfr:\"\\u{1D52F}\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",varrho:\"\\u03F1\",rightrightarrows:\"\\u21C9\",rrarr:\"\\u21C9\",rightthreetimes:\"\\u22CC\",rthree:\"\\u22CC\",ring:\"\\u02DA\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",triangleright:\"\\u25B9\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",succapprox:\"\\u2AB8\",scaron:\"\\u0161\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",succneqq:\"\\u2AB6\",scnap:\"\\u2ABA\",succnapprox:\"\\u2ABA\",scnsim:\"\\u22E9\",succnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",tosa:\"\\u2929\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",varsigma:\"\\u03C2\",simdot:\"\\u2A6A\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smile:\"\\u2323\",ssmile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",sqcaps:\"\\u2293\\uFE00\",sqcups:\"\\u2294\\uFE00\",sscr:\"\\u{1D4C8}\",star:\"\\u2606\",sub:\"\\u2282\",subset:\"\\u2282\",subE:\"\\u2AC5\",subseteqq:\"\\u2AC5\",subdot:\"\\u2ABD\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subsetneqq:\"\\u2ACB\",subne:\"\\u228A\",subsetneq:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supE:\"\\u2AC6\",supseteqq:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supsetneqq:\"\\u2ACC\",supne:\"\\u228B\",supsetneq:\"\\u228B\",supplus:\"\\u2AC0\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swnwar:\"\\u292A\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",vartheta:\"\\u03D1\",thorn:\"\\xFE\",times:\"\\xD7\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tprime:\"\\u2034\",triangle:\"\\u25B5\",utri:\"\\u25B5\",triangleq:\"\\u225C\",trie:\"\\u225C\",tridot:\"\\u25EC\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",uHar:\"\\u2963\",uacute:\"\\xFA\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udblac:\"\\u0171\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrave:\"\\xF9\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",upsi:\"\\u03C5\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",uuarr:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vangrt:\"\\u299C\",varsubsetneq:\"\\u228A\\uFE00\",vsubne:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",vsubnE:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",vsupne:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vcy:\"\\u0432\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",vfr:\"\\u{1D533}\",vopf:\"\\u{1D567}\",vscr:\"\\u{1D4CB}\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wscr:\"\\u{1D4CC}\",xfr:\"\\u{1D535}\",xi:\"\\u03BE\",xnis:\"\\u22FB\",xopf:\"\\u{1D569}\",xscr:\"\\u{1D4CD}\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},Ua=\"\\uE500\";Me.ngsp=Ua;var Wa=[/@/,/^\\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//];function Bs(t,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${t}' to be an array, [start, end].`);if(e!=null){let r=e[0],n=e[1];Wa.forEach(s=>{if(s.test(r)||s.test(n))throw new Error(`['${r}', '${n}'] contains unusable interpolation symbol.`)})}}var Lr=class t{static fromArray(e){return e?(Bs(\"interpolation\",e),new t(e[0],e[1])):Fr}constructor(e,r){this.start=e,this.end=r}},Fr=new Lr(\"{{\",\"}}\");var ft=class extends Ie{constructor(e,r,n){super(n,e),this.tokenType=r}},Or=class{constructor(e,r,n){this.tokens=e,this.errors=r,this.nonNormalizedIcuExpressions=n}};function Us(t,e,r,n={}){let s=new $r(new Ee(t,e),r,n);return s.tokenize(),new Or(Co(s.tokens),s.errors,s.nonNormalizedIcuExpressions)}var lo=/\\r\\n?/g;function qe(t){return`Unexpected character \"${t===0?\"EOF\":String.fromCharCode(t)}\"`}function Is(t){return`Unknown entity \"${t}\" - use the \"&#;\" or \"&#x;\" syntax`}function co(t,e){return`Unable to parse entity \"${e}\" - ${t} character reference entities must end with \";\"`}var Zt;(function(t){t.HEX=\"hexadecimal\",t.DEC=\"decimal\"})(Zt||(Zt={}));var dt=class{constructor(e){this.error=e}},$r=class{constructor(e,r,n){this._getTagContentType=r,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this.nonNormalizedIcuExpressions=[],this._tokenizeIcu=n.tokenizeExpansionForms||!1,this._interpolationConfig=n.interpolationConfig||Fr,this._leadingTriviaCodePoints=n.leadingTriviaChars&&n.leadingTriviaChars.map(i=>i.codePointAt(0)||0),this._canSelfClose=n.canSelfClose||!1,this._allowHtmComponentClosingTags=n.allowHtmComponentClosingTags||!1;let s=n.range||{endPos:e.content.length,startPos:0,startLine:0,startCol:0};this._cursor=n.escapedString?new Mr(e,s):new er(e,s),this._preserveLineEndings=n.preserveLineEndings||!1,this._i18nNormalizeLineEndingsInICUs=n.i18nNormalizeLineEndingsInICUs||!1,this._tokenizeBlocks=n.tokenizeBlocks??!0,this._tokenizeLet=n.tokenizeLet??!0;try{this._cursor.init()}catch(i){this.handleError(i)}}_processCarriageReturns(e){return this._preserveLineEndings?e:e.replace(lo,`\n`)}tokenize(){for(;this._cursor.peek()!==0;){let e=this._cursor.clone();try{if(this._attemptCharCode(60))if(this._attemptCharCode(33))this._attemptStr(\"[CDATA[\")?this._consumeCdata(e):this._attemptStr(\"--\")?this._consumeComment(e):this._attemptStrCaseInsensitive(\"doctype\")?this._consumeDocType(e):this._consumeBogusComment(e);else if(this._attemptCharCode(47))this._consumeTagClose(e);else{let r=this._cursor.clone();this._attemptCharCode(63)?(this._cursor=r,this._consumeBogusComment(e)):this._consumeTagOpen(e)}else this._tokenizeLet&&this._cursor.peek()===64&&!this._inInterpolation&&this._attemptStr(\"@let\")?this._consumeLetDeclaration(e):this._tokenizeBlocks&&this._attemptCharCode(64)?this._consumeBlockStart(e):this._tokenizeBlocks&&!this._inInterpolation&&!this._isInExpansionCase()&&!this._isInExpansionForm()&&this._attemptCharCode(125)?this._consumeBlockEnd(e):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeWithInterpolation(5,8,()=>this._isTextEnd(),()=>this._isTagStart())}catch(r){this.handleError(r)}}this._beginToken(34),this._endToken([])}_getBlockName(){let e=!1,r=this._cursor.clone();return this._attemptCharCodeUntilFn(n=>at(n)?!e:$s(n)?(e=!0,!1):!0),this._cursor.getChars(r).trim()}_consumeBlockStart(e){this._beginToken(25,e);let r=this._endToken([this._getBlockName()]);if(this._cursor.peek()===40)if(this._cursor.advance(),this._consumeBlockParameters(),this._attemptCharCodeUntilFn(b),this._attemptCharCode(41))this._attemptCharCodeUntilFn(b);else{r.type=29;return}this._attemptCharCode(123)?(this._beginToken(26),this._endToken([])):r.type=29}_consumeBlockEnd(e){this._beginToken(27,e),this._endToken([])}_consumeBlockParameters(){for(this._attemptCharCodeUntilFn(Ms);this._cursor.peek()!==41&&this._cursor.peek()!==0;){this._beginToken(28);let e=this._cursor.clone(),r=null,n=0;for(;this._cursor.peek()!==59&&this._cursor.peek()!==0||r!==null;){let s=this._cursor.peek();if(s===92)this._cursor.advance();else if(s===r)r=null;else if(r===null&&It(s))r=s;else if(s===40&&r===null)n++;else if(s===41&&r===null){if(n===0)break;n>0&&n--}this._cursor.advance()}this._endToken([this._cursor.getChars(e)]),this._attemptCharCodeUntilFn(Ms)}}_consumeLetDeclaration(e){if(this._beginToken(30,e),at(this._cursor.peek()))this._attemptCharCodeUntilFn(b);else{let s=this._endToken([this._cursor.getChars(e)]);s.type=33;return}let r=this._endToken([this._getLetDeclarationName()]);if(this._attemptCharCodeUntilFn(b),!this._attemptCharCode(61)){r.type=33;return}this._attemptCharCodeUntilFn(s=>b(s)&&!Pt(s)),this._consumeLetDeclarationValue(),this._cursor.peek()===59?(this._beginToken(32),this._endToken([]),this._cursor.advance()):(r.type=33,r.sourceSpan=this._cursor.getSpan(e))}_getLetDeclarationName(){let e=this._cursor.clone(),r=!1;return this._attemptCharCodeUntilFn(n=>ot(n)||n===36||n===95||r&&Nt(n)?(r=!0,!1):!0),this._cursor.getChars(e).trim()}_consumeLetDeclarationValue(){let e=this._cursor.clone();for(this._beginToken(31,e);this._cursor.peek()!==0;){let r=this._cursor.peek();if(r===59)break;It(r)&&(this._cursor.advance(),this._attemptCharCodeUntilFn(n=>n===92?(this._cursor.advance(),!1):n===r)),this._cursor.advance()}this._endToken([this._cursor.getChars(e)])}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(fo(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===125){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(e,r=this._cursor.clone()){this._currentTokenStart=r,this._currentTokenType=e}_endToken(e,r){if(this._currentTokenStart===null)throw new ft(\"Programming error - attempted to end a token when there was no start to the token\",this._currentTokenType,this._cursor.getSpan(r));if(this._currentTokenType===null)throw new ft(\"Programming error - attempted to end a token which has no token type\",null,this._cursor.getSpan(this._currentTokenStart));let n={type:this._currentTokenType,parts:e,sourceSpan:(r??this._cursor).getSpan(this._currentTokenStart,this._leadingTriviaCodePoints)};return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n}_createError(e,r){this._isInExpansionForm()&&(e+=` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`);let n=new ft(e,this._currentTokenType,r);return this._currentTokenStart=null,this._currentTokenType=null,new dt(n)}handleError(e){if(e instanceof gt&&(e=this._createError(e.msg,this._cursor.getSpan(e.cursor))),e instanceof dt)this.errors.push(e.error);else throw e}_attemptCharCode(e){return this._cursor.peek()===e?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(e){return go(this._cursor.peek(),e)?(this._cursor.advance(),!0):!1}_requireCharCode(e){let r=this._cursor.clone();if(!this._attemptCharCode(e))throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(r))}_attemptStr(e){let r=e.length;if(this._cursor.charsLeft()this._attemptStr(\"-->\")),this._beginToken(11),this._requireStr(\"-->\"),this._endToken([])}_consumeBogusComment(e){this._beginToken(10,e),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===62),this._beginToken(11),this._cursor.advance(),this._endToken([])}_consumeCdata(e){this._beginToken(12,e),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"]]>\")),this._beginToken(13),this._requireStr(\"]]>\"),this._endToken([])}_consumeDocType(e){this._beginToken(18,e),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===62),this._beginToken(19),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let e=this._cursor.clone(),r=\"\";for(;this._cursor.peek()!==58&&!po(this._cursor.peek());)this._cursor.advance();let n;this._cursor.peek()===58?(r=this._cursor.getChars(e),this._cursor.advance(),n=this._cursor.clone()):n=e,this._requireCharCodeUntilFn(Rs,r===\"\"?0:1);let s=this._cursor.getChars(n);return[r,s]}_consumeTagOpen(e){let r,n,s,i=[];try{if(!ot(this._cursor.peek()))throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(e));for(s=this._consumeTagOpenStart(e),n=s.parts[0],r=s.parts[1],this._attemptCharCodeUntilFn(b);this._cursor.peek()!==47&&this._cursor.peek()!==62&&this._cursor.peek()!==60&&this._cursor.peek()!==0;){let[o,u]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(b),this._attemptCharCode(61)){this._attemptCharCodeUntilFn(b);let p=this._consumeAttributeValue();i.push({prefix:o,name:u,value:p})}else i.push({prefix:o,name:u});this._attemptCharCodeUntilFn(b)}this._consumeTagOpenEnd()}catch(o){if(o instanceof dt){s?s.type=4:(this._beginToken(5,e),this._endToken([\"<\"]));return}throw o}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===2)return;let a=this._getTagContentType(r,n,this._fullNameStack.length>0,i);this._handleFullNameStackForTagOpen(n,r),a===I.RAW_TEXT?this._consumeRawTextWithTagClose(n,r,!1):a===I.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,r,!0)}_consumeRawTextWithTagClose(e,r,n){this._consumeRawText(n,()=>!this._attemptCharCode(60)||!this._attemptCharCode(47)||(this._attemptCharCodeUntilFn(b),!this._attemptStrCaseInsensitive(e?`${e}:${r}`:r))?!1:(this._attemptCharCodeUntilFn(b),this._attemptCharCode(62))),this._beginToken(3),this._requireCharCodeUntilFn(s=>s===62,3),this._cursor.advance(),this._endToken([e,r]),this._handleFullNameStackForTagClose(e,r)}_consumeTagOpenStart(e){this._beginToken(0,e);let r=this._consumePrefixAndName();return this._endToken(r)}_consumeAttributeName(){let e=this._cursor.peek();if(e===39||e===34)throw this._createError(qe(e),this._cursor.getSpan());this._beginToken(14);let r=this._consumePrefixAndName();return this._endToken(r),r}_consumeAttributeValue(){let e;if(this._cursor.peek()===39||this._cursor.peek()===34){let r=this._cursor.peek();this._consumeQuote(r);let n=()=>this._cursor.peek()===r;e=this._consumeWithInterpolation(16,17,n,n),this._consumeQuote(r)}else{let r=()=>Rs(this._cursor.peek());e=this._consumeWithInterpolation(16,17,r,r)}return e}_consumeQuote(e){this._beginToken(15),this._requireCharCode(e),this._endToken([String.fromCodePoint(e)])}_consumeTagOpenEnd(){let e=this._attemptCharCode(47)?2:1;this._beginToken(e),this._requireCharCode(62),this._endToken([])}_consumeTagClose(e){if(this._beginToken(3,e),this._attemptCharCodeUntilFn(b),this._allowHtmComponentClosingTags&&this._attemptCharCode(47))this._attemptCharCodeUntilFn(b),this._requireCharCode(62),this._endToken([]);else{let[r,n]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(b),this._requireCharCode(62),this._endToken([r,n]),this._handleFullNameStackForTagClose(r,n)}}_consumeExpansionFormStart(){this._beginToken(20),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(20),this._beginToken(7);let e=this._readUntil(44),r=this._processCarriageReturns(e);if(this._i18nNormalizeLineEndingsInICUs)this._endToken([r]);else{let s=this._endToken([e]);r!==e&&this.nonNormalizedIcuExpressions.push(s)}this._requireCharCode(44),this._attemptCharCodeUntilFn(b),this._beginToken(7);let n=this._readUntil(44);this._endToken([n]),this._requireCharCode(44),this._attemptCharCodeUntilFn(b)}_consumeExpansionCaseStart(){this._beginToken(21);let e=this._readUntil(123).trim();this._endToken([e]),this._attemptCharCodeUntilFn(b),this._beginToken(22),this._requireCharCode(123),this._endToken([]),this._attemptCharCodeUntilFn(b),this._expansionCaseStack.push(22)}_consumeExpansionCaseEnd(){this._beginToken(23),this._requireCharCode(125),this._endToken([]),this._attemptCharCodeUntilFn(b),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(24),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeWithInterpolation(e,r,n,s){this._beginToken(e);let i=[];for(;!n();){let o=this._cursor.clone();this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(this._endToken([this._processCarriageReturns(i.join(\"\"))],o),i.length=0,this._consumeInterpolation(r,o,s),this._beginToken(e)):this._cursor.peek()===38?(this._endToken([this._processCarriageReturns(i.join(\"\"))]),i.length=0,this._consumeEntity(e),this._beginToken(e)):i.push(this._readChar())}this._inInterpolation=!1;let a=this._processCarriageReturns(i.join(\"\"));return this._endToken([a]),a}_consumeInterpolation(e,r,n){let s=[];this._beginToken(e,r),s.push(this._interpolationConfig.start);let i=this._cursor.clone(),a=null,o=!1;for(;this._cursor.peek()!==0&&(n===null||!n());){let u=this._cursor.clone();if(this._isTagStart()){this._cursor=u,s.push(this._getProcessedChars(i,u)),this._endToken(s);return}if(a===null)if(this._attemptStr(this._interpolationConfig.end)){s.push(this._getProcessedChars(i,u)),s.push(this._interpolationConfig.end),this._endToken(s);return}else this._attemptStr(\"//\")&&(o=!0);let p=this._cursor.peek();this._cursor.advance(),p===92?this._cursor.advance():p===a?a=null:!o&&a===null&&It(p)&&(a=p)}s.push(this._getProcessedChars(i,this._cursor)),this._endToken(s)}_getProcessedChars(e,r){return this._processCarriageReturns(r.getChars(e))}_isTextEnd(){return!!(this._isTagStart()||this._cursor.peek()===0||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===125&&this._isInExpansionCase())||this._tokenizeBlocks&&!this._inInterpolation&&!this._isInExpansion()&&(this._isBlockStart()||this._cursor.peek()===64||this._cursor.peek()===125))}_isTagStart(){if(this._cursor.peek()===60){let e=this._cursor.clone();e.advance();let r=e.peek();if(97<=r&&r<=122||65<=r&&r<=90||r===47||r===33)return!0}return!1}_isBlockStart(){if(this._tokenizeBlocks&&this._cursor.peek()===64){let e=this._cursor.clone();if(e.advance(),$s(e.peek()))return!0}return!1}_readUntil(e){let r=this._cursor.clone();return this._attemptUntilChar(e),this._cursor.getChars(r)}_isInExpansion(){return this._isInExpansionCase()||this._isInExpansionForm()}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===22}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===20}isExpansionFormStart(){if(this._cursor.peek()!==123)return!1;if(this._interpolationConfig){let e=this._cursor.clone(),r=this._attemptStr(this._interpolationConfig.start);return this._cursor=e,!r}return!0}_handleFullNameStackForTagOpen(e,r){let n=Oe(e,r);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===n)&&this._fullNameStack.push(n)}_handleFullNameStackForTagClose(e,r){let n=Oe(e,r);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===n&&this._fullNameStack.pop()}};function b(t){return!at(t)||t===0}function Rs(t){return at(t)||t===62||t===60||t===47||t===39||t===34||t===61||t===0}function po(t){return(t<97||12257)}function ho(t){return t===59||t===0||!gs(t)}function mo(t){return t===59||t===0||!ot(t)}function fo(t){return t!==125}function go(t,e){return Os(t)===Os(e)}function Os(t){return t>=97&&t<=122?t-97+65:t}function $s(t){return ot(t)||Nt(t)||t===95}function Ms(t){return t!==59&&b(t)}function Co(t){let e=[],r;for(let n=0;n0&&r.indexOf(e.peek())!==-1;)n===e&&(e=e.clone()),e.advance();let s=this.locationFromCursor(e),i=this.locationFromCursor(this),a=n!==e?this.locationFromCursor(n):s;return new h(s,i,a)}getChars(e){return this.input.substring(e.state.offset,this.state.offset)}charAt(e){return this.input.charCodeAt(e)}advanceState(e){if(e.offset>=this.end)throw this.state=e,new gt('Unexpected character \"EOF\"',this);let r=this.charAt(e.offset);r===10?(e.line++,e.column=0):Pt(r)||e.column++,e.offset++,this.updatePeek(e)}updatePeek(e){e.peek=e.offset>=this.end?0:this.charAt(e.offset)}locationFromCursor(e){return new ie(e.file,e.state.offset,e.state.line,e.state.column)}},Mr=class t extends er{constructor(e,r){e instanceof t?(super(e),this.internalState={...e.internalState}):(super(e,r),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new t(this)}getChars(e){let r=e.clone(),n=\"\";for(;r.internalState.offsetthis.internalState.peek;if(e()===92)if(this.internalState={...this.state},this.advanceState(this.internalState),e()===110)this.state.peek=10;else if(e()===114)this.state.peek=13;else if(e()===118)this.state.peek=11;else if(e()===116)this.state.peek=9;else if(e()===98)this.state.peek=8;else if(e()===102)this.state.peek=12;else if(e()===117)if(this.advanceState(this.internalState),e()===123){this.advanceState(this.internalState);let r=this.clone(),n=0;for(;e()!==125;)this.advanceState(this.internalState),n++;this.state.peek=this.decodeHexDigits(r,n)}else{let r=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(r,4)}else if(e()===120){this.advanceState(this.internalState);let r=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(r,2)}else if(yr(e())){let r=\"\",n=0,s=this.clone();for(;yr(e())&&n<3;)s=this.clone(),r+=String.fromCodePoint(e()),this.advanceState(this.internalState),n++;this.state.peek=parseInt(r,8),this.internalState=s.internalState}else Pt(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(e,r){let n=this.input.slice(e.internalState.offset,e.internalState.offset+r),s=parseInt(n,16);if(isNaN(s))throw e.state=e.internalState,new gt(\"Invalid hexadecimal escape sequence\",e);return s}},gt=class{constructor(e,r){this.msg=e,this.cursor=r}};var L=class t extends Ie{static create(e,r,n){return new t(e,r,n)}constructor(e,r,n){super(r,n),this.elementName=e}},Vr=class{constructor(e,r){this.rootNodes=e,this.errors=r}},tr=class{constructor(e){this.getTagDefinition=e}parse(e,r,n,s=!1,i){let a=D=>(R,...F)=>D(R.toLowerCase(),...F),o=s?this.getTagDefinition:a(this.getTagDefinition),u=D=>o(D).getContentType(),p=s?i:a(i),f=Us(e,r,i?(D,R,F,c)=>{let g=p(D,R,F,c);return g!==void 0?g:u(D)}:u,n),d=n&&n.canSelfClose||!1,C=n&&n.allowHtmComponentClosingTags||!1,A=new Ur(f.tokens,o,d,C,s);return A.build(),new Vr(A.rootNodes,f.errors.concat(A.errors))}},Ur=class t{constructor(e,r,n,s,i){this.tokens=e,this.getTagDefinition=r,this.canSelfClose=n,this.allowHtmComponentClosingTags=s,this.isTagNameCaseSensitive=i,this._index=-1,this._containerStack=[],this.rootNodes=[],this.errors=[],this._advance()}build(){for(;this._peek.type!==34;)this._peek.type===0||this._peek.type===4?this._consumeStartTag(this._advance()):this._peek.type===3?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===12?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===10?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===5||this._peek.type===7||this._peek.type===6?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===20?this._consumeExpansion(this._advance()):this._peek.type===25?(this._closeVoidElement(),this._consumeBlockOpen(this._advance())):this._peek.type===27?(this._closeVoidElement(),this._consumeBlockClose(this._advance())):this._peek.type===29?(this._closeVoidElement(),this._consumeIncompleteBlock(this._advance())):this._peek.type===30?(this._closeVoidElement(),this._consumeLet(this._advance())):this._peek.type===18?this._consumeDocType(this._advance()):this._peek.type===33?(this._closeVoidElement(),this._consumeIncompleteLet(this._advance())):this._advance();for(let e of this._containerStack)e instanceof ee&&this.errors.push(L.create(e.name,e.sourceSpan,`Unclosed block \"${e.name}\"`))}_advance(){let e=this._peek;return this._index0)return this.errors=this.errors.concat(i.errors),null;let a=new h(e.sourceSpan.start,s.sourceSpan.end,e.sourceSpan.fullStart),o=new h(r.sourceSpan.start,s.sourceSpan.end,r.sourceSpan.fullStart);return new Wt(e.parts[0],i.rootNodes,a,e.sourceSpan,o)}_collectExpansionExpTokens(e){let r=[],n=[22];for(;;){if((this._peek.type===20||this._peek.type===22)&&n.push(this._peek.type),this._peek.type===23)if(Ws(n,22)){if(n.pop(),n.length===0)return r}else return this.errors.push(L.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===24)if(Ws(n,20))n.pop();else return this.errors.push(L.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===34)return this.errors.push(L.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;r.push(this._advance())}}_getText(e){let r=e.parts[0];if(r.length>0&&r[0]==`\n`){let n=this._getClosestParentElement();n!=null&&n.children.length==0&&this.getTagDefinition(n.name).ignoreFirstLf&&(r=r.substring(1))}return r}_consumeText(e){let r=[e],n=e.sourceSpan,s=e.parts[0];if(s.length>0&&s[0]===`\n`){let i=this._getContainer();i!=null&&i.children.length===0&&this.getTagDefinition(i.name).ignoreFirstLf&&(s=s.substring(1),r[0]={type:e.type,sourceSpan:e.sourceSpan,parts:[s]})}for(;this._peek.type===8||this._peek.type===5||this._peek.type===9;)e=this._advance(),r.push(e),e.type===8?s+=e.parts.join(\"\").replace(/&([^;]+);/g,zs):e.type===9?s+=e.parts[0]:s+=e.parts.join(\"\");if(s.length>0){let i=e.sourceSpan;this._addToParent(new Ht(s,new h(n.start,i.end,n.fullStart,n.details),r))}}_closeVoidElement(){let e=this._getContainer();e instanceof G&&this.getTagDefinition(e.name).isVoid&&this._containerStack.pop()}_consumeStartTag(e){let[r,n]=e.parts,s=[];for(;this._peek.type===14;)s.push(this._consumeAttr(this._advance()));let i=this._getElementFullName(r,n,this._getClosestParentElement()),a=!1;if(this._peek.type===2){this._advance(),a=!0;let C=this.getTagDefinition(i);this.canSelfClose||C.canSelfClose||Re(i)!==null||C.isVoid||this.errors.push(L.create(i,e.sourceSpan,`Only void, custom and foreign elements can be self closed \"${e.parts[1]}\"`))}else this._peek.type===1&&(this._advance(),a=!1);let o=this._peek.sourceSpan.fullStart,u=new h(e.sourceSpan.start,o,e.sourceSpan.fullStart),p=new h(e.sourceSpan.start,o,e.sourceSpan.fullStart),l=new h(e.sourceSpan.start.moveBy(1),e.sourceSpan.end),f=new G(i,s,[],u,p,void 0,l),d=this._getContainer();this._pushContainer(f,d instanceof G&&this.getTagDefinition(d.name).isClosedByChild(f.name)),a?this._popContainer(i,G,u):e.type===4&&(this._popContainer(i,G,null),this.errors.push(L.create(i,u,`Opening tag \"${i}\" not terminated.`)))}_pushContainer(e,r){r&&this._containerStack.pop(),this._addToParent(e),this._containerStack.push(e)}_consumeEndTag(e){let r=this.allowHtmComponentClosingTags&&e.parts.length===0?null:this._getElementFullName(e.parts[0],e.parts[1],this._getClosestParentElement());if(r&&this.getTagDefinition(r).isVoid)this.errors.push(L.create(r,e.sourceSpan,`Void elements do not have end tags \"${e.parts[1]}\"`));else if(!this._popContainer(r,G,e.sourceSpan)){let n=`Unexpected closing tag \"${r}\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;this.errors.push(L.create(r,e.sourceSpan,n))}}_popContainer(e,r,n){let s=!1;for(let i=this._containerStack.length-1;i>=0;i--){let a=this._containerStack[i];if(Re(a.name)?a.name===e:(e==null||a.name.toLowerCase()===e.toLowerCase())&&a instanceof r)return a.endSourceSpan=n,a.sourceSpan.end=n!==null?n.end:a.sourceSpan.end,this._containerStack.splice(i,this._containerStack.length-i),!s;(a instanceof ee||a instanceof G&&!this.getTagDefinition(a.name).closedByParent)&&(s=!0)}return!1}_consumeAttr(e){let r=Oe(e.parts[0],e.parts[1]),n=e.sourceSpan.end,s;this._peek.type===15&&(s=this._advance());let i=\"\",a=[],o,u;if(this._peek.type===16)for(o=this._peek.sourceSpan,u=this._peek.sourceSpan.end;this._peek.type===16||this._peek.type===17||this._peek.type===9;){let f=this._advance();a.push(f),f.type===17?i+=f.parts.join(\"\").replace(/&([^;]+);/g,zs):f.type===9?i+=f.parts[0]:i+=f.parts.join(\"\"),u=n=f.sourceSpan.end}this._peek.type===15&&(u=n=this._advance().sourceSpan.end);let l=o&&u&&new h((s==null?void 0:s.sourceSpan.start)??o.start,u,(s==null?void 0:s.sourceSpan.fullStart)??o.fullStart);return new zt(r,i,new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),e.sourceSpan,l,a.length>0?a:void 0,void 0)}_consumeBlockOpen(e){let r=[];for(;this._peek.type===28;){let o=this._advance();r.push(new ct(o.parts[0],o.sourceSpan))}this._peek.type===26&&this._advance();let n=this._peek.sourceSpan.fullStart,s=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),i=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),a=new ee(e.parts[0],r,[],s,e.sourceSpan,i);this._pushContainer(a,!1)}_consumeBlockClose(e){this._popContainer(null,ee,e.sourceSpan)||this.errors.push(L.create(null,e.sourceSpan,'Unexpected closing block. The block may have been closed earlier. If you meant to write the } character, you should use the \"}\" HTML entity instead.'))}_consumeIncompleteBlock(e){let r=[];for(;this._peek.type===28;){let o=this._advance();r.push(new ct(o.parts[0],o.sourceSpan))}let n=this._peek.sourceSpan.fullStart,s=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),i=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),a=new ee(e.parts[0],r,[],s,e.sourceSpan,i);this._pushContainer(a,!1),this._popContainer(null,ee,null),this.errors.push(L.create(e.parts[0],s,`Incomplete block \"${e.parts[0]}\". If you meant to write the @ character, you should use the \"@\" HTML entity instead.`))}_consumeLet(e){let r=e.parts[0],n,s;if(this._peek.type!==31){this.errors.push(L.create(e.parts[0],e.sourceSpan,`Invalid @let declaration \"${r}\". Declaration must have a value.`));return}else n=this._advance();if(this._peek.type!==32){this.errors.push(L.create(e.parts[0],e.sourceSpan,`Unterminated @let declaration \"${r}\". Declaration must be terminated with a semicolon.`));return}else s=this._advance();let i=s.sourceSpan.fullStart,a=new h(e.sourceSpan.start,i,e.sourceSpan.fullStart),o=e.sourceSpan.toString().lastIndexOf(r),u=e.sourceSpan.start.moveBy(o),p=new h(u,e.sourceSpan.end),l=new pt(r,n.parts[0],a,p,n.sourceSpan);this._addToParent(l)}_consumeIncompleteLet(e){let r=e.parts[0]??\"\",n=r?` \"${r}\"`:\"\";if(r.length>0){let s=e.sourceSpan.toString().lastIndexOf(r),i=e.sourceSpan.start.moveBy(s),a=new h(i,e.sourceSpan.end),o=new h(e.sourceSpan.start,e.sourceSpan.start.moveBy(0)),u=new pt(r,\"\",e.sourceSpan,a,o);this._addToParent(u)}this.errors.push(L.create(e.parts[0],e.sourceSpan,`Incomplete @let declaration${n}. @let declarations must be written as \\`@let = ;\\``))}_getContainer(){return this._containerStack.length>0?this._containerStack[this._containerStack.length-1]:null}_getClosestParentElement(){for(let e=this._containerStack.length-1;e>-1;e--)if(this._containerStack[e]instanceof G)return this._containerStack[e];return null}_addToParent(e){let r=this._getContainer();r===null?this.rootNodes.push(e):r.children.push(e)}_getElementFullName(e,r,n){if(e===\"\"&&(e=this.getTagDefinition(r).implicitNamespacePrefix||\"\",e===\"\"&&n!=null)){let s=ut(n.name)[1];this.getTagDefinition(s).preventNamespaceInheritance||(e=Re(n.name))}return Oe(e,r)}};function Ws(t,e){return t.length>0&&t[t.length-1]===e}function zs(t,e){return Me[e]!==void 0?Me[e]||t:/^#x[a-f0-9]+$/i.test(e)?String.fromCodePoint(parseInt(e.slice(2),16)):/^#\\d+$/.test(e)?String.fromCodePoint(parseInt(e.slice(1),10)):t}var rr=class extends tr{constructor(){super($e)}parse(e,r,n,s=!1,i){return super.parse(e,r,n,s,i)}};var Wr=null,So=()=>(Wr||(Wr=new rr),Wr);function zr(t,e={}){let{canSelfClose:r=!1,allowHtmComponentClosingTags:n=!1,isTagNameCaseSensitive:s=!1,getTagContentType:i,tokenizeAngularBlocks:a=!1,tokenizeAngularLetDeclaration:o=!1}=e;return So().parse(t,\"angular-html-parser\",{tokenizeExpansionForms:a,interpolationConfig:void 0,canSelfClose:r,allowHtmComponentClosingTags:n,tokenizeBlocks:a,tokenizeLet:o},s,i)}function _o(t,e){let r=new SyntaxError(t+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(r,e)}var Gs=_o;var Ct=3;function Eo(t){let e=t.slice(0,Ct);if(e!==\"---\"&&e!==\"+++\")return;let r=t.indexOf(`\n`,Ct);if(r===-1)return;let n=t.slice(Ct,r).trim(),s=t.indexOf(`\n${e}`,r),i=n;if(i||(i=e===\"+++\"?\"toml\":\"yaml\"),s===-1&&e===\"---\"&&i===\"yaml\"&&(s=t.indexOf(`\n...`,r)),s===-1)return;let a=s+1+Ct,o=t.charAt(a+1);if(!/\\s?/u.test(o))return;let u=t.slice(0,a);return{type:\"front-matter\",language:i,explicitLanguage:n,value:t.slice(r+1,s),startDelimiter:e,endDelimiter:u.slice(-Ct),raw:u}}function Ao(t){let e=Eo(t);if(!e)return{content:t};let{raw:r}=e;return{frontMatter:e,content:w(!1,r,/[^\\n]/gu,\" \")+t.slice(r.length)}}var Ys=Ao;var nr={attrs:!0,children:!0,cases:!0,expression:!0},js=new Set([\"parent\"]),sr=class t{constructor(e={}){for(let r of new Set([...js,...Object.keys(e)]))this.setProperty(r,e[r])}setProperty(e,r){if(this[e]!==r){if(e in nr&&(r=r.map(n=>this.createChild(n))),!js.has(e)){this[e]=r;return}Object.defineProperty(this,e,{value:r,enumerable:!1,configurable:!0})}}map(e){let r;for(let n in nr){let s=this[n];if(s){let i=Do(s,a=>a.map(e));r!==s&&(r||(r=new t({parent:this.parent})),r.setProperty(n,i))}}if(r)for(let n in this)n in nr||(r[n]=this[n]);return e(r||this)}walk(e){for(let r in nr){let n=this[r];if(n)for(let s=0;s[e.fullName,e.value]))}};function Do(t,e){let r=t.map(e);return r.some((n,s)=>n!==t[s])?r:t}var vo=[{regex:/^(\\[if([^\\]]*)\\]>)(.*?){try{return[!0,e(i,o).children]}catch{return[!1,[{type:\"text\",value:i,sourceSpan:new h(o,u)}]]}})();return{type:\"ieConditionalComment\",complete:p,children:l,condition:w(!1,s.trim(),/\\s+/gu,\" \"),sourceSpan:t.sourceSpan,startSourceSpan:new h(t.sourceSpan.start,o),endSourceSpan:new h(u,t.sourceSpan.end)}}function wo(t,e,r){let[,n]=r;return{type:\"ieConditionalStartComment\",condition:w(!1,n.trim(),/\\s+/gu,\" \"),sourceSpan:t.sourceSpan}}function bo(t){return{type:\"ieConditionalEndComment\",sourceSpan:t.sourceSpan}}var ir=new Map([[\"*\",new Set([\"accesskey\",\"autocapitalize\",\"autofocus\",\"class\",\"contenteditable\",\"dir\",\"draggable\",\"enterkeyhint\",\"hidden\",\"id\",\"inert\",\"inputmode\",\"is\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"nonce\",\"popover\",\"slot\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\",\"writingsuggestions\"])],[\"a\",new Set([\"charset\",\"coords\",\"download\",\"href\",\"hreflang\",\"name\",\"ping\",\"referrerpolicy\",\"rel\",\"rev\",\"shape\",\"target\",\"type\"])],[\"applet\",new Set([\"align\",\"alt\",\"archive\",\"code\",\"codebase\",\"height\",\"hspace\",\"name\",\"object\",\"vspace\",\"width\"])],[\"area\",new Set([\"alt\",\"coords\",\"download\",\"href\",\"hreflang\",\"nohref\",\"ping\",\"referrerpolicy\",\"rel\",\"shape\",\"target\",\"type\"])],[\"audio\",new Set([\"autoplay\",\"controls\",\"crossorigin\",\"loop\",\"muted\",\"preload\",\"src\"])],[\"base\",new Set([\"href\",\"target\"])],[\"basefont\",new Set([\"color\",\"face\",\"size\"])],[\"blockquote\",new Set([\"cite\"])],[\"body\",new Set([\"alink\",\"background\",\"bgcolor\",\"link\",\"text\",\"vlink\"])],[\"br\",new Set([\"clear\"])],[\"button\",new Set([\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"name\",\"popovertarget\",\"popovertargetaction\",\"type\",\"value\"])],[\"canvas\",new Set([\"height\",\"width\"])],[\"caption\",new Set([\"align\"])],[\"col\",new Set([\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"])],[\"colgroup\",new Set([\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"])],[\"data\",new Set([\"value\"])],[\"del\",new Set([\"cite\",\"datetime\"])],[\"details\",new Set([\"name\",\"open\"])],[\"dialog\",new Set([\"open\"])],[\"dir\",new Set([\"compact\"])],[\"div\",new Set([\"align\"])],[\"dl\",new Set([\"compact\"])],[\"embed\",new Set([\"height\",\"src\",\"type\",\"width\"])],[\"fieldset\",new Set([\"disabled\",\"form\",\"name\"])],[\"font\",new Set([\"color\",\"face\",\"size\"])],[\"form\",new Set([\"accept\",\"accept-charset\",\"action\",\"autocomplete\",\"enctype\",\"method\",\"name\",\"novalidate\",\"target\"])],[\"frame\",new Set([\"frameborder\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"noresize\",\"scrolling\",\"src\"])],[\"frameset\",new Set([\"cols\",\"rows\"])],[\"h1\",new Set([\"align\"])],[\"h2\",new Set([\"align\"])],[\"h3\",new Set([\"align\"])],[\"h4\",new Set([\"align\"])],[\"h5\",new Set([\"align\"])],[\"h6\",new Set([\"align\"])],[\"head\",new Set([\"profile\"])],[\"hr\",new Set([\"align\",\"noshade\",\"size\",\"width\"])],[\"html\",new Set([\"manifest\",\"version\"])],[\"iframe\",new Set([\"align\",\"allow\",\"allowfullscreen\",\"allowpaymentrequest\",\"allowusermedia\",\"frameborder\",\"height\",\"loading\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"referrerpolicy\",\"sandbox\",\"scrolling\",\"src\",\"srcdoc\",\"width\"])],[\"img\",new Set([\"align\",\"alt\",\"border\",\"crossorigin\",\"decoding\",\"fetchpriority\",\"height\",\"hspace\",\"ismap\",\"loading\",\"longdesc\",\"name\",\"referrerpolicy\",\"sizes\",\"src\",\"srcset\",\"usemap\",\"vspace\",\"width\"])],[\"input\",new Set([\"accept\",\"align\",\"alt\",\"autocomplete\",\"checked\",\"dirname\",\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"ismap\",\"list\",\"max\",\"maxlength\",\"min\",\"minlength\",\"multiple\",\"name\",\"pattern\",\"placeholder\",\"popovertarget\",\"popovertargetaction\",\"readonly\",\"required\",\"size\",\"src\",\"step\",\"type\",\"usemap\",\"value\",\"width\"])],[\"ins\",new Set([\"cite\",\"datetime\"])],[\"isindex\",new Set([\"prompt\"])],[\"label\",new Set([\"for\",\"form\"])],[\"legend\",new Set([\"align\"])],[\"li\",new Set([\"type\",\"value\"])],[\"link\",new Set([\"as\",\"blocking\",\"charset\",\"color\",\"crossorigin\",\"disabled\",\"fetchpriority\",\"href\",\"hreflang\",\"imagesizes\",\"imagesrcset\",\"integrity\",\"media\",\"referrerpolicy\",\"rel\",\"rev\",\"sizes\",\"target\",\"type\"])],[\"map\",new Set([\"name\"])],[\"menu\",new Set([\"compact\"])],[\"meta\",new Set([\"charset\",\"content\",\"http-equiv\",\"media\",\"name\",\"scheme\"])],[\"meter\",new Set([\"high\",\"low\",\"max\",\"min\",\"optimum\",\"value\"])],[\"object\",new Set([\"align\",\"archive\",\"border\",\"classid\",\"codebase\",\"codetype\",\"data\",\"declare\",\"form\",\"height\",\"hspace\",\"name\",\"standby\",\"type\",\"typemustmatch\",\"usemap\",\"vspace\",\"width\"])],[\"ol\",new Set([\"compact\",\"reversed\",\"start\",\"type\"])],[\"optgroup\",new Set([\"disabled\",\"label\"])],[\"option\",new Set([\"disabled\",\"label\",\"selected\",\"value\"])],[\"output\",new Set([\"for\",\"form\",\"name\"])],[\"p\",new Set([\"align\"])],[\"param\",new Set([\"name\",\"type\",\"value\",\"valuetype\"])],[\"pre\",new Set([\"width\"])],[\"progress\",new Set([\"max\",\"value\"])],[\"q\",new Set([\"cite\"])],[\"script\",new Set([\"async\",\"blocking\",\"charset\",\"crossorigin\",\"defer\",\"fetchpriority\",\"integrity\",\"language\",\"nomodule\",\"referrerpolicy\",\"src\",\"type\"])],[\"select\",new Set([\"autocomplete\",\"disabled\",\"form\",\"multiple\",\"name\",\"required\",\"size\"])],[\"slot\",new Set([\"name\"])],[\"source\",new Set([\"height\",\"media\",\"sizes\",\"src\",\"srcset\",\"type\",\"width\"])],[\"style\",new Set([\"blocking\",\"media\",\"type\"])],[\"table\",new Set([\"align\",\"bgcolor\",\"border\",\"cellpadding\",\"cellspacing\",\"frame\",\"rules\",\"summary\",\"width\"])],[\"tbody\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"td\",new Set([\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"])],[\"template\",new Set([\"shadowrootclonable\",\"shadowrootdelegatesfocus\",\"shadowrootmode\"])],[\"textarea\",new Set([\"autocomplete\",\"cols\",\"dirname\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"name\",\"placeholder\",\"readonly\",\"required\",\"rows\",\"wrap\"])],[\"tfoot\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"th\",new Set([\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"])],[\"thead\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"time\",new Set([\"datetime\"])],[\"tr\",new Set([\"align\",\"bgcolor\",\"char\",\"charoff\",\"valign\"])],[\"track\",new Set([\"default\",\"kind\",\"label\",\"src\",\"srclang\"])],[\"ul\",new Set([\"compact\",\"type\"])],[\"video\",new Set([\"autoplay\",\"controls\",\"crossorigin\",\"height\",\"loop\",\"muted\",\"playsinline\",\"poster\",\"preload\",\"src\",\"width\"])]]);var Qs=new Set([\"a\",\"abbr\",\"acronym\",\"address\",\"applet\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"bgsound\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"content\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"image\",\"img\",\"input\",\"ins\",\"isindex\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"listing\",\"main\",\"map\",\"mark\",\"marquee\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"multicol\",\"nav\",\"nextid\",\"nobr\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"plaintext\",\"pre\",\"progress\",\"q\",\"rb\",\"rbc\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"search\",\"section\",\"select\",\"shadow\",\"slot\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"xmp\"]);function To(t){if(t.type===\"block\"){if(t.name=w(!1,t.name.toLowerCase(),/\\s+/gu,\" \").trim(),t.type=\"angularControlFlowBlock\",!Fe(t.parameters)){delete t.parameters;return}for(let e of t.parameters)e.type=\"angularControlFlowBlockParameter\";t.parameters={type:\"angularControlFlowBlockParameters\",children:t.parameters,sourceSpan:new h(t.parameters[0].sourceSpan.start,se(!1,t.parameters,-1).sourceSpan.end)}}}function xo(t){t.type===\"letDeclaration\"&&(t.type=\"angularLetDeclaration\",t.id=t.name,t.init={type:\"angularLetDeclarationInitializer\",sourceSpan:new h(t.valueSpan.start,t.valueSpan.end),value:t.value},delete t.name,delete t.value)}function ko(t){(t.type===\"plural\"||t.type===\"select\")&&(t.clause=t.type,t.type=\"angularIcuExpression\"),t.type===\"expansionCase\"&&(t.type=\"angularIcuCase\")}function Js(t,e,r){let{name:n,canSelfClose:s=!0,normalizeTagName:i=!1,normalizeAttributeName:a=!1,allowHtmComponentClosingTags:o=!1,isTagNameCaseSensitive:u=!1,shouldParseAsRawText:p}=e,{rootNodes:l,errors:f}=zr(t,{canSelfClose:s,allowHtmComponentClosingTags:o,isTagNameCaseSensitive:u,getTagContentType:p?(...c)=>p(...c)?I.RAW_TEXT:void 0:void 0,tokenizeAngularBlocks:n===\"angular\"?!0:void 0,tokenizeAngularLetDeclaration:n===\"angular\"?!0:void 0});if(n===\"vue\"){if(l.some(x=>x.type===\"docType\"&&x.value===\"html\"||x.type===\"element\"&&x.name.toLowerCase()===\"html\"))return Js(t,ei,r);let g,y=()=>g??(g=zr(t,{canSelfClose:s,allowHtmComponentClosingTags:o,isTagNameCaseSensitive:u})),M=x=>y().rootNodes.find(({startSourceSpan:V})=>V&&V.start.offset===x.startSourceSpan.start.offset)??x;for(let[x,V]of l.entries()){let{endSourceSpan:jr,startSourceSpan:ti}=V;if(jr===null)f=y().errors,l[x]=M(V);else if(Bo(V,r)){let Kr=y().errors.find(Qr=>Qr.span.start.offset>ti.start.offset&&Qr.span.start.offset0&&Xs(f[0]);let d=c=>{let g=c.name.startsWith(\":\")?c.name.slice(1).split(\":\")[0]:null,y=c.nameSpan.toString(),M=g!==null&&y.startsWith(`${g}:`),x=M?y.slice(g.length+1):y;c.name=x,c.namespace=g,c.hasExplicitNamespace=M},C=c=>{switch(c.type){case\"element\":d(c);for(let g of c.attrs)d(g),g.valueSpan?(g.value=g.valueSpan.toString(),/[\"']/u.test(g.value[0])&&(g.value=g.value.slice(1,-1))):g.value=null;break;case\"comment\":c.value=c.sourceSpan.toString().slice(4,-3);break;case\"text\":c.value=c.sourceSpan.toString();break}},A=(c,g)=>{let y=c.toLowerCase();return g(y)?y:c},D=c=>{if(c.type===\"element\"&&(i&&(!c.namespace||c.namespace===c.tagDefinition.implicitNamespacePrefix||pe(c))&&(c.name=A(c.name,g=>Qs.has(g))),a))for(let g of c.attrs)g.namespace||(g.name=A(g.name,y=>ir.has(c.name)&&(ir.get(\"*\").has(y)||ir.get(c.name).has(y))))},R=c=>{c.sourceSpan&&c.endSourceSpan&&(c.sourceSpan=new h(c.sourceSpan.start,c.endSourceSpan.end))},F=c=>{if(c.type===\"element\"){let g=$e(u?c.name:c.name.toLowerCase());!c.namespace||c.namespace===g.implicitNamespacePrefix||pe(c)?c.tagDefinition=g:c.tagDefinition=$e(\"\")}};return jt(new class extends ht{visitExpansionCase(c,g){n===\"angular\"&&this.visitChildren(g,y=>{y(c.expression)})}visit(c){C(c),F(c),D(c),R(c)}},l),l}function Bo(t,e){var n;if(t.type!==\"element\"||t.name!==\"template\")return!1;let r=(n=t.attrs.find(s=>s.name===\"lang\"))==null?void 0:n.value;return!r||Be(e,{language:r})===\"html\"}function Xs(t){let{msg:e,span:{start:r,end:n}}=t;throw Gs(e,{loc:{start:{line:r.line+1,column:r.col+1},end:{line:n.line+1,column:n.col+1}},cause:t})}function Zs(t,e,r={},n=!0){let{frontMatter:s,content:i}=n?Ys(t):{frontMatter:null,content:t},a=new Ee(t,r.filepath),o=new ie(a,0,0,0),u=o.moveBy(t.length),p={type:\"root\",sourceSpan:new h(o,u),children:Js(i,e,r)};if(s){let d=new ie(a,0,0,0),C=d.moveBy(s.raw.length);s.sourceSpan=new h(d,C),p.children.unshift(s)}let l=new sr(p),f=(d,C)=>{let{offset:A}=C,D=w(!1,t.slice(0,A),/[^\\n\\r]/gu,\" \"),F=Zs(D+d,e,r,!1);F.sourceSpan=new h(C,se(!1,F.children,-1).sourceSpan.end);let c=F.children[0];return c.length===A?F.children.shift():(c.sourceSpan=new h(c.sourceSpan.start.moveBy(A),c.sourceSpan.end),c.value=c.value.slice(A)),F};return l.walk(d=>{if(d.type===\"comment\"){let C=Ks(d,f);C&&d.parent.replaceChild(d,C)}To(d),xo(d),ko(d)}),l}function ar(t){return{parse:(e,r)=>Zs(e,t,r),hasPragma:as,astFormat:\"html\",locStart:X,locEnd:J}}var ei={name:\"html\",normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0},Lo=ar(ei),Fo=ar({name:\"angular\"}),No=ar({name:\"vue\",isTagNameCaseSensitive:!0,shouldParseAsRawText(t,e,r,n){return t.toLowerCase()!==\"html\"&&!r&&(t!==\"template\"||n.some(({name:s,value:i})=>s===\"lang\"&&i!==\"html\"&&i!==\"\"&&i!==void 0))}}),Po=ar({name:\"lwc\",canSelfClose:!1});var Io={html:Es};var Nh=Yr;export{Nh as default,As as languages,vs as options,Gr as parsers,Io as printers};\n", "var cl=Object.create;var pt=Object.defineProperty;var ll=Object.getOwnPropertyDescriptor;var fl=Object.getOwnPropertyNames;var Dl=Object.getPrototypeOf,pl=Object.prototype.hasOwnProperty;var Mn=e=>{throw TypeError(e)};var C=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),zn=(e,r)=>{for(var t in r)pt(e,t,{get:r[t],enumerable:!0})},hl=(e,r,t,n)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let a of fl(r))!pl.call(e,a)&&a!==t&&pt(e,a,{get:()=>r[a],enumerable:!(n=ll(r,a))||n.enumerable});return e};var Ue=(e,r,t)=>(t=e!=null?cl(Dl(e)):{},hl(r||!e||!e.__esModule?pt(t,\"default\",{value:e,enumerable:!0}):t,e));var Yn=(e,r,t)=>r.has(e)||Mn(\"Cannot \"+t);var ce=(e,r,t)=>(Yn(e,r,\"read from private field\"),t?t.call(e):r.get(e)),Gn=(e,r,t)=>r.has(e)?Mn(\"Cannot add the same private member more than once\"):r instanceof WeakSet?r.add(e):r.set(e,t),Vn=(e,r,t,n)=>(Yn(e,r,\"write to private field\"),n?n.call(e,t):r.set(e,t),t);var kr=C((Ym,jn)=>{\"use strict\";jn.exports=Fl;function Fl(e){return String(e).replace(/\\s+/g,\" \")}});var Gi=C((bv,Yi)=>{\"use strict\";Yi.exports=xf;var Dr=9,Mr=10,je=32,Cf=33,bf=58,$e=91,yf=92,qt=93,pr=94,zr=96,Yr=4,Af=1024;function xf(e){var r=this.Parser,t=this.Compiler;wf(r)&&Bf(r,e),kf(t)&&Tf(t)}function wf(e){return!!(e&&e.prototype&&e.prototype.blockTokenizers)}function kf(e){return!!(e&&e.prototype&&e.prototype.visitors)}function Bf(e,r){for(var t=r||{},n=e.prototype,a=n.blockTokenizers,u=n.inlineTokenizers,i=n.blockMethods,o=n.inlineMethods,s=a.definition,l=u.reference,c=[],f=-1,p=i.length,d;++fYr&&(Z=void 0,ve=T);else{if(Z0&&(M=Ee[k-1],M.contentStart===M.contentEnd);)k--;for(Be=b(g.slice(0,M.contentEnd));++T{St.isRemarkParser=_f;St.isRemarkCompiler=Sf;function _f(e){return!!(e&&e.prototype&&e.prototype.blockTokenizers)}function Sf(e){return!!(e&&e.prototype&&e.prototype.visitors)}});var Ji=C((Av,Ki)=>{var Vi=Ot();Ki.exports=If;var ji=9,$i=32,Gr=36,Of=48,Lf=57,Wi=92,Pf=[\"math\",\"math-inline\"],Hi=\"math-display\";function If(e){let r=this.Parser,t=this.Compiler;Vi.isRemarkParser(r)&&Nf(r,e),Vi.isRemarkCompiler(t)&&Rf(t,e)}function Nf(e,r){let t=e.prototype,n=t.inlineMethods;u.locator=a,t.inlineTokenizers.math=u,n.splice(n.indexOf(\"text\"),0,\"math\");function a(i,o){return i.indexOf(\"$\",o)}function u(i,o,s){let l=o.length,c=!1,f=!1,p=0,d,D,h,m,F,y,E;if(o.charCodeAt(p)===Wi&&(f=!0,p++),o.charCodeAt(p)===Gr){if(p++,f)return s?!0:i(o.slice(0,p))({type:\"text\",value:\"$\"});if(o.charCodeAt(p)===Gr&&(c=!0,p++),h=o.charCodeAt(p),!(h===$i||h===ji)){for(m=p;pLf)&&(!c||h===Gr)){F=p-1,p++,c&&p++,y=p;break}}else D===Wi&&(p++,h=o.charCodeAt(p+1));p++}if(y!==void 0)return s?!0:(E=o.slice(m,F+1),i(o.slice(0,y))({type:\"inlineMath\",value:E,data:{hName:\"span\",hProperties:{className:Pf.concat(c&&r.inlineMathDouble?[Hi]:[])},hChildren:[{type:\"text\",value:E}]}}))}}}}function Rf(e){let r=e.prototype;r.visitors.inlineMath=t;function t(n){let a=\"$\";return(n.data&&n.data.hProperties&&n.data.hProperties.className||[]).includes(Hi)&&(a=\"$$\"),a+n.value+a}}});var ru=C((xv,eu)=>{var Xi=Ot();eu.exports=Yf;var Qi=10,hr=32,Lt=36,Zi=`\n`,Uf=\"$\",Mf=2,zf=[\"math\",\"math-display\"];function Yf(){let e=this.Parser,r=this.Compiler;Xi.isRemarkParser(e)&&Gf(e),Xi.isRemarkCompiler(r)&&Vf(r)}function Gf(e){let r=e.prototype,t=r.blockMethods,n=r.interruptParagraph,a=r.interruptList,u=r.interruptBlockquote;r.blockTokenizers.math=i,t.splice(t.indexOf(\"fencedCode\")+1,0,\"math\"),n.splice(n.indexOf(\"fencedCode\")+1,0,[\"math\"]),a.splice(a.indexOf(\"fencedCode\")+1,0,[\"math\"]),u.splice(u.indexOf(\"fencedCode\")+1,0,[\"math\"]);function i(o,s,l){var c=s.length,f=0;let p,d,D,h,m,F,y,E,B,b,g;for(;fb&&s.charCodeAt(h-1)===hr;)h--;for(;h>b&&s.charCodeAt(h-1)===Lt;)B++,h--;for(F<=B&&s.indexOf(Uf,b)===h&&(E=!0,g=h);b<=g&&b-fb&&s.charCodeAt(g-1)===hr;)g--;if((!E||b!==g)&&d.push(s.slice(b,g)),E)break;f=D+1,D=s.indexOf(Zi,f+1),D=D===-1?c:D}return d=d.join(`\n`),o(s.slice(0,D))({type:\"math\",value:d,data:{hName:\"div\",hProperties:{className:zf.concat()},hChildren:[{type:\"text\",value:d}]}})}}}}function Vf(e){let r=e.prototype;r.visitors.math=t;function t(n){return`$$\n`+n.value+`\n$$`}}});var nu=C((wv,tu)=>{var jf=Ji(),$f=ru();tu.exports=Wf;function Wf(e){var r=e||{};$f.call(this,r),jf.call(this,r)}});var Ie=C((kv,iu)=>{iu.exports=Kf;var Hf=Object.prototype.hasOwnProperty;function Kf(){for(var e={},r=0;r{typeof Object.create==\"function\"?Pt.exports=function(r,t){t&&(r.super_=t,r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:Pt.exports=function(r,t){if(t){r.super_=t;var n=function(){};n.prototype=t.prototype,r.prototype=new n,r.prototype.constructor=r}}});var su=C((Tv,ou)=>{\"use strict\";var Jf=Ie(),au=uu();ou.exports=Xf;function Xf(e){var r,t,n;au(u,e),au(a,u),r=u.prototype;for(t in r)n=r[t],n&&typeof n==\"object\"&&(r[t]=\"concat\"in n?n.concat():Jf(n));return u;function a(i){return e.apply(this,i)}function u(){return this instanceof u?e.apply(this,arguments):new a(arguments)}}});var lu=C((qv,cu)=>{\"use strict\";cu.exports=Qf;function Qf(e,r,t){return n;function n(){var a=t||this,u=a[e];return a[e]=!r,i;function i(){a[e]=u}}}});var Du=C((_v,fu)=>{\"use strict\";fu.exports=Zf;function Zf(e){for(var r=String(e),t=[],n=/\\r?\\n|\\r/g;n.exec(r);)t.push(n.lastIndex);return t.push(r.length+1),{toPoint:a,toPosition:a,toOffset:u};function a(i){var o=-1;if(i>-1&&ii)return{line:o+1,column:i-(t[o-1]||0)+1,offset:i}}return{}}function u(i){var o=i&&i.line,s=i&&i.column,l;return!isNaN(o)&&!isNaN(s)&&o-1 in t&&(l=(t[o-2]||0)+s-1||0),l>-1&&l{\"use strict\";pu.exports=eD;var It=\"\\\\\";function eD(e,r){return t;function t(n){for(var a=0,u=n.indexOf(It),i=e[r],o=[],s;u!==-1;)o.push(n.slice(a,u)),a=u+1,s=n.charAt(a),(!s||i.indexOf(s)===-1)&&o.push(It),u=n.indexOf(It,a+1);return o.push(n.slice(a)),o.join(\"\")}}});var du=C((Ov,rD)=>{rD.exports={AElig:\"\\xC6\",AMP:\"&\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Agrave:\"\\xC0\",Aring:\"\\xC5\",Atilde:\"\\xC3\",Auml:\"\\xC4\",COPY:\"\\xA9\",Ccedil:\"\\xC7\",ETH:\"\\xD0\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Egrave:\"\\xC8\",Euml:\"\\xCB\",GT:\">\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Igrave:\"\\xCC\",Iuml:\"\\xCF\",LT:\"<\",Ntilde:\"\\xD1\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ograve:\"\\xD2\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",QUOT:'\"',REG:\"\\xAE\",THORN:\"\\xDE\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Ugrave:\"\\xD9\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",aacute:\"\\xE1\",acirc:\"\\xE2\",acute:\"\\xB4\",aelig:\"\\xE6\",agrave:\"\\xE0\",amp:\"&\",aring:\"\\xE5\",atilde:\"\\xE3\",auml:\"\\xE4\",brvbar:\"\\xA6\",ccedil:\"\\xE7\",cedil:\"\\xB8\",cent:\"\\xA2\",copy:\"\\xA9\",curren:\"\\xA4\",deg:\"\\xB0\",divide:\"\\xF7\",eacute:\"\\xE9\",ecirc:\"\\xEA\",egrave:\"\\xE8\",eth:\"\\xF0\",euml:\"\\xEB\",frac12:\"\\xBD\",frac14:\"\\xBC\",frac34:\"\\xBE\",gt:\">\",iacute:\"\\xED\",icirc:\"\\xEE\",iexcl:\"\\xA1\",igrave:\"\\xEC\",iquest:\"\\xBF\",iuml:\"\\xEF\",laquo:\"\\xAB\",lt:\"<\",macr:\"\\xAF\",micro:\"\\xB5\",middot:\"\\xB7\",nbsp:\"\\xA0\",not:\"\\xAC\",ntilde:\"\\xF1\",oacute:\"\\xF3\",ocirc:\"\\xF4\",ograve:\"\\xF2\",ordf:\"\\xAA\",ordm:\"\\xBA\",oslash:\"\\xF8\",otilde:\"\\xF5\",ouml:\"\\xF6\",para:\"\\xB6\",plusmn:\"\\xB1\",pound:\"\\xA3\",quot:'\"',raquo:\"\\xBB\",reg:\"\\xAE\",sect:\"\\xA7\",shy:\"\\xAD\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",szlig:\"\\xDF\",thorn:\"\\xFE\",times:\"\\xD7\",uacute:\"\\xFA\",ucirc:\"\\xFB\",ugrave:\"\\xF9\",uml:\"\\xA8\",uuml:\"\\xFC\",yacute:\"\\xFD\",yen:\"\\xA5\",yuml:\"\\xFF\"}});var mu=C((Lv,tD)=>{tD.exports={\"0\":\"\\uFFFD\",\"128\":\"\\u20AC\",\"130\":\"\\u201A\",\"131\":\"\\u0192\",\"132\":\"\\u201E\",\"133\":\"\\u2026\",\"134\":\"\\u2020\",\"135\":\"\\u2021\",\"136\":\"\\u02C6\",\"137\":\"\\u2030\",\"138\":\"\\u0160\",\"139\":\"\\u2039\",\"140\":\"\\u0152\",\"142\":\"\\u017D\",\"145\":\"\\u2018\",\"146\":\"\\u2019\",\"147\":\"\\u201C\",\"148\":\"\\u201D\",\"149\":\"\\u2022\",\"150\":\"\\u2013\",\"151\":\"\\u2014\",\"152\":\"\\u02DC\",\"153\":\"\\u2122\",\"154\":\"\\u0161\",\"155\":\"\\u203A\",\"156\":\"\\u0153\",\"158\":\"\\u017E\",\"159\":\"\\u0178\"}});var Ne=C((Pv,Fu)=>{\"use strict\";Fu.exports=nD;function nD(e){var r=typeof e==\"string\"?e.charCodeAt(0):e;return r>=48&&r<=57}});var vu=C((Iv,gu)=>{\"use strict\";gu.exports=iD;function iD(e){var r=typeof e==\"string\"?e.charCodeAt(0):e;return r>=97&&r<=102||r>=65&&r<=70||r>=48&&r<=57}});var We=C((Nv,Eu)=>{\"use strict\";Eu.exports=uD;function uD(e){var r=typeof e==\"string\"?e.charCodeAt(0):e;return r>=97&&r<=122||r>=65&&r<=90}});var bu=C((Rv,Cu)=>{\"use strict\";var aD=We(),oD=Ne();Cu.exports=sD;function sD(e){return aD(e)||oD(e)}});var yu=C((Uv,cD)=>{cD.exports={AEli:\"\\xC6\",AElig:\"\\xC6\",AM:\"&\",AMP:\"&\",Aacut:\"\\xC1\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acir:\"\\xC2\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrav:\"\\xC0\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",Arin:\"\\xC5\",Aring:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",Atild:\"\\xC3\",Atilde:\"\\xC3\",Aum:\"\\xC4\",Auml:\"\\xC4\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",Bscr:\"\\u212C\",Bumpeq:\"\\u224E\",CHcy:\"\\u0427\",COP:\"\\xA9\",COPY:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",Cayleys:\"\\u212D\",Ccaron:\"\\u010C\",Ccedi:\"\\xC7\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",CenterDot:\"\\xB7\",Cfr:\"\\u212D\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",Colon:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",Coproduct:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",DD:\"\\u2145\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",Diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",Downarrow:\"\\u21D3\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ET:\"\\xD0\",ETH:\"\\xD0\",Eacut:\"\\xC9\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecir:\"\\xCA\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrav:\"\\xC8\",Egrave:\"\\xC8\",Element:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",Equilibrium:\"\\u21CC\",Escr:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Eum:\"\\xCB\",Euml:\"\\xCB\",Exists:\"\\u2203\",ExponentialE:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",G:\">\",GT:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",Hopf:\"\\u210D\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",Hstrok:\"\\u0126\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacut:\"\\xCD\",Iacute:\"\\xCD\",Icir:\"\\xCE\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Igrav:\"\\xCC\",Igrave:\"\\xCC\",Im:\"\\u2111\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",Implies:\"\\u21D2\",Int:\"\\u222C\",Integral:\"\\u222B\",Intersection:\"\\u22C2\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Ium:\"\\xCF\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",L:\"<\",LT:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Larr:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",Leftarrow:\"\\u21D0\",Leftrightarrow:\"\\u21D4\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",LongRightArrow:\"\\u27F6\",Longleftarrow:\"\\u27F8\",Longleftrightarrow:\"\\u27FA\",Longrightarrow:\"\\u27F9\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",Lscr:\"\\u2112\",Lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",Mopf:\"\\u{1D544}\",Mscr:\"\\u2133\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntild:\"\\xD1\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacut:\"\\xD3\",Oacute:\"\\xD3\",Ocir:\"\\xD4\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograv:\"\\xD2\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslas:\"\\xD8\",Oslash:\"\\xD8\",Otild:\"\\xD5\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Oum:\"\\xD6\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",Poincareplane:\"\\u210C\",Popf:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUO:'\"',QUOT:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",RE:\"\\xAE\",REG:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",Rfr:\"\\u211C\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",Rightarrow:\"\\u21D2\",Ropf:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",Rscr:\"\\u211B\",Rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",Sup:\"\\u22D1\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",Supset:\"\\u22D1\",THOR:\"\\xDE\",THORN:\"\\xDE\",TRADE:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacut:\"\\xDA\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucir:\"\\xDB\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrav:\"\\xD9\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",Uparrow:\"\\u21D1\",Updownarrow:\"\\u21D5\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uum:\"\\xDC\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacut:\"\\xDD\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacut:\"\\xE1\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acir:\"\\xE2\",acirc:\"\\xE2\",acut:\"\\xB4\",acute:\"\\xB4\",acy:\"\\u0430\",aeli:\"\\xE6\",aelig:\"\\xE6\",af:\"\\u2061\",afr:\"\\u{1D51E}\",agrav:\"\\xE0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",am:\"&\",amp:\"&\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",approx:\"\\u2248\",approxeq:\"\\u224A\",arin:\"\\xE5\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",atild:\"\\xE3\",atilde:\"\\xE3\",aum:\"\\xE4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxh:\"\\u2500\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",bprime:\"\\u2035\",breve:\"\\u02D8\",brvba:\"\\xA6\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedi:\"\\xE7\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cedi:\"\\xB8\",cedil:\"\\xB8\",cemptyv:\"\\u29B2\",cen:\"\\xA2\",cent:\"\\xA2\",centerdot:\"\\xB7\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledR:\"\\xAE\",circledS:\"\\u24C8\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",conint:\"\\u222E\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",cop:\"\\xA9\",copy:\"\\xA9\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curre:\"\\xA4\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dArr:\"\\u21D3\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",darr:\"\\u2193\",dash:\"\\u2010\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",dcaron:\"\\u010F\",dcy:\"\\u0434\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",ddotseq:\"\\u2A77\",de:\"\\xB0\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",diam:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divid:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",dot:\"\\u02D9\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",downarrow:\"\\u2193\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eDDot:\"\\u2A77\",eDot:\"\\u2251\",eacut:\"\\xE9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\xEA\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrav:\"\\xE8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",equals:\"=\",equest:\"\\u225F\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",esdot:\"\\u2250\",esim:\"\\u2242\",eta:\"\\u03B7\",et:\"\\xF0\",eth:\"\\xF0\",eum:\"\\xEB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac1:\"\\xBC\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac3:\"\\xBE\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gammad:\"\\u03DD\",gap:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",ge:\"\\u2265\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",gjcy:\"\\u0453\",gl:\"\\u2277\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",grave:\"`\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",g:\">\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hArr:\"\\u21D4\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",hardcy:\"\\u044A\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",hbar:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",hstrok:\"\\u0127\",hybull:\"\\u2043\",hyphen:\"\\u2010\",iacut:\"\\xED\",iacute:\"\\xED\",ic:\"\\u2063\",icir:\"\\xEE\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexc:\"\\xA1\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",igrav:\"\\xEC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",image:\"\\u2111\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iques:\"\\xBF\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",itilde:\"\\u0129\",iukcy:\"\\u0456\",ium:\"\\xEF\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",lArr:\"\\u21D0\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lE:\"\\u2266\",lEg:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",lambda:\"\\u03BB\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",laqu:\"\\xAB\",laquo:\"\\xAB\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leftarrow:\"\\u2190\",leftarrowtail:\"\\u21A2\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",leftthreetimes:\"\\u22CB\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",lessgtr:\"\\u2276\",lesssim:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",lstrok:\"\\u0142\",l:\"<\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",mac:\"\\xAF\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",measuredangle:\"\\u2221\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micr:\"\\xB5\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middo:\"\\xB7\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nGtv:\"\\u226B\\u0338\",nLeftarrow:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nLtv:\"\\u226A\\u0338\",nRightarrow:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nabla:\"\\u2207\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbs:\"\\xA0\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",nexist:\"\\u2204\",nexists:\"\\u2204\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",ngsim:\"\\u2275\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlE:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nlsim:\"\\u2274\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nmid:\"\\u2224\",nopf:\"\\u{1D55F}\",no:\"\\xAC\",not:\"\\xAC\",notin:\"\\u2209\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",ntild:\"\\xF1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",oS:\"\\u24C8\",oacut:\"\\xF3\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\xF4\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odash:\"\\u229D\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograv:\"\\xF2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",oplus:\"\\u2295\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\xBA\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oscr:\"\\u2134\",oslas:\"\\xF8\",oslash:\"\\xF8\",osol:\"\\u2298\",otild:\"\\xF5\",otilde:\"\\xF5\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",oum:\"\\xF6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",par:\"\\xB6\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plusm:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",poun:\"\\xA3\",pound:\"\\xA3\",pr:\"\\u227A\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",prcue:\"\\u227C\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",prime:\"\\u2032\",primes:\"\\u2119\",prnE:\"\\u2AB5\",prnap:\"\\u2AB9\",prnsim:\"\\u22E8\",prod:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quo:'\"',quot:'\"',rAarr:\"\\u21DB\",rArr:\"\\u21D2\",rAtail:\"\\u291C\",rBarr:\"\\u290F\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raqu:\"\\xBB\",raquo:\"\\xBB\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",re:\"\\xAE\",reg:\"\\xAE\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",rightarrow:\"\\u2192\",rightarrowtail:\"\\u21A3\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",rightthreetimes:\"\\u22CC\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",sbquo:\"\\u201A\",sc:\"\\u227B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",scaron:\"\\u0161\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",scnap:\"\\u2ABA\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",searhk:\"\\u2925\",searr:\"\\u2198\",searrow:\"\\u2198\",sec:\"\\xA7\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",sh:\"\\xAD\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",square:\"\\u25A1\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",subE:\"\\u2AC5\",subdot:\"\\u2ABD\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",sum:\"\\u2211\",sung:\"\\u266A\",sup:\"\\u2283\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supE:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supe:\"\\u2287\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szli:\"\\xDF\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",thor:\"\\xFE\",thorn:\"\\xFE\",tilde:\"\\u02DC\",time:\"\\xD7\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",uArr:\"\\u21D1\",uHar:\"\\u2963\",uacut:\"\\xFA\",uacute:\"\\xFA\",uarr:\"\\u2191\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucir:\"\\xFB\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udarr:\"\\u21C5\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrav:\"\\xF9\",ugrave:\"\\xF9\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",um:\"\\xA8\",uml:\"\\xA8\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",uparrow:\"\\u2191\",updownarrow:\"\\u2195\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",uum:\"\\xFC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vArr:\"\\u21D5\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vDash:\"\\u22A8\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",vert:\"|\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",yacut:\"\\xFD\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",ye:\"\\xA5\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yum:\"\\xFF\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"}});var wu=C((Mv,xu)=>{\"use strict\";var Au=yu();xu.exports=fD;var lD={}.hasOwnProperty;function fD(e){return lD.call(Au,e)?Au[e]:!1}});var dr=C((zv,Uu)=>{\"use strict\";var ku=du(),Bu=mu(),DD=Ne(),pD=vu(),Su=bu(),hD=wu();Uu.exports=kD;var dD={}.hasOwnProperty,He=String.fromCharCode,mD=Function.prototype,Tu={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},FD=9,qu=10,gD=12,vD=32,_u=38,ED=59,CD=60,bD=61,yD=35,AD=88,xD=120,wD=65533,Ke=\"named\",Rt=\"hexadecimal\",Ut=\"decimal\",Mt={};Mt[Rt]=16;Mt[Ut]=10;var Vr={};Vr[Ke]=Su;Vr[Ut]=DD;Vr[Rt]=pD;var Ou=1,Lu=2,Pu=3,Iu=4,Nu=5,Nt=6,Ru=7,xe={};xe[Ou]=\"Named character references must be terminated by a semicolon\";xe[Lu]=\"Numeric character references must be terminated by a semicolon\";xe[Pu]=\"Named character references cannot be empty\";xe[Iu]=\"Numeric character references cannot be empty\";xe[Nu]=\"Named character references must be known\";xe[Nt]=\"Numeric character references cannot be disallowed\";xe[Ru]=\"Numeric character references cannot be outside the permissible Unicode range\";function kD(e,r){var t={},n,a;r||(r={});for(a in Tu)n=r[a],t[a]=n??Tu[a];return(t.position.indent||t.position.start)&&(t.indent=t.position.indent||[],t.position=t.position.start),BD(e,t)}function BD(e,r){var t=r.additional,n=r.nonTerminated,a=r.text,u=r.reference,i=r.warning,o=r.textContext,s=r.referenceContext,l=r.warningContext,c=r.position,f=r.indent||[],p=e.length,d=0,D=-1,h=c.column||1,m=c.line||1,F=\"\",y=[],E,B,b,g,A,x,v,w,k,T,q,R,O,S,_,L,Be,j,I;for(typeof t==\"string\"&&(t=t.charCodeAt(0)),L=ee(),w=i?Z:mD,d--,p++;++d65535&&(x-=65536,T+=He(x>>>10|55296),x=56320|x&1023),x=T+He(x))):S!==Ke&&w(Iu,j)),x?(ve(),L=ee(),d=I-1,h+=I-O+1,y.push(x),Be=ee(),Be.offset++,u&&u.call(s,x,{start:L,end:Be},e.slice(O-1,I)),L=Be):(g=e.slice(O-1,I),F+=g,h+=g.length,d=I-1)}else A===10&&(m++,D++,h=0),A===A?(F+=He(A),h++):ve();return y.join(\"\");function ee(){return{line:m,column:h,offset:d+(c.offset||0)}}function Z(Ee,M){var Dt=ee();Dt.column+=M,Dt.offset+=M,i.call(l,xe[Ee],Dt,Ee)}function ve(){F&&(y.push(F),a&&a.call(o,F,{start:L,end:ee()}),F=\"\")}}function TD(e){return e>=55296&&e<=57343||e>1114111}function qD(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}});var Yu=C((Yv,zu)=>{\"use strict\";var _D=Ie(),Mu=dr();zu.exports=SD;function SD(e){return t.raw=n,t;function r(u){for(var i=e.offset,o=u.line,s=[];++o&&o in i;)s.push((i[o]||0)+1);return{start:u,indent:s}}function t(u,i,o){Mu(u,{position:r(i),warning:a,text:o,reference:o,textContext:e,referenceContext:e})}function n(u,i,o){return Mu(u,_D(o,{position:r(i),warning:a}))}function a(u,i,o){o!==3&&e.file.message(u,i)}}});var ju=C((Gv,Vu)=>{\"use strict\";Vu.exports=OD;function OD(e){return r;function r(t,n){var a=this,u=a.offset,i=[],o=a[e+\"Methods\"],s=a[e+\"Tokenizers\"],l=n.line,c=n.column,f,p,d,D,h,m;if(!t)return i;for(x.now=E,x.file=a.file,F(\"\");t;){for(f=-1,p=o.length,h=!1;++f{\"use strict\";Wu.exports=jr;var zt=[\"\\\\\",\"`\",\"*\",\"{\",\"}\",\"[\",\"]\",\"(\",\")\",\"#\",\"+\",\"-\",\".\",\"!\",\"_\",\">\"],Yt=zt.concat([\"~\",\"|\"]),$u=Yt.concat([`\n`,'\"',\"$\",\"%\",\"&\",\"'\",\",\",\"/\",\":\",\";\",\"<\",\"=\",\"?\",\"@\",\"^\"]);jr.default=zt;jr.gfm=Yt;jr.commonmark=$u;function jr(e){var r=e||{};return r.commonmark?$u:r.gfm?Yt:zt}});var Ju=C((jv,Ku)=>{\"use strict\";Ku.exports=[\"address\",\"article\",\"aside\",\"base\",\"basefont\",\"blockquote\",\"body\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"legend\",\"li\",\"link\",\"main\",\"menu\",\"menuitem\",\"meta\",\"nav\",\"noframes\",\"ol\",\"optgroup\",\"option\",\"p\",\"param\",\"pre\",\"section\",\"source\",\"title\",\"summary\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\"]});var Gt=C(($v,Xu)=>{\"use strict\";Xu.exports={position:!0,gfm:!0,commonmark:!1,pedantic:!1,blocks:Ju()}});var Zu=C((Wv,Qu)=>{\"use strict\";var ID=Ie(),ND=Hu(),RD=Gt();Qu.exports=UD;function UD(e){var r=this,t=r.options,n,a;if(e==null)e={};else if(typeof e==\"object\")e=ID(e);else throw new Error(\"Invalid value `\"+e+\"` for setting `options`\");for(n in RD){if(a=e[n],a==null&&(a=t[n]),n!==\"blocks\"&&typeof a!=\"boolean\"||n===\"blocks\"&&typeof a!=\"object\")throw new Error(\"Invalid value `\"+a+\"` for setting `options.\"+n+\"`\");e[n]=a}return r.options=e,r.escape=ND(e),r}});var ta=C((Hv,ra)=>{\"use strict\";ra.exports=ea;function ea(e){if(e==null)return GD;if(typeof e==\"string\")return YD(e);if(typeof e==\"object\")return\"length\"in e?zD(e):MD(e);if(typeof e==\"function\")return e;throw new Error(\"Expected function, string, or object as test\")}function MD(e){return r;function r(t){var n;for(n in e)if(t[n]!==e[n])return!1;return!0}}function zD(e){for(var r=[],t=-1;++t{na.exports=VD;function VD(e){return e}});var sa=C((Jv,oa)=>{\"use strict\";oa.exports=$r;var jD=ta(),$D=ia(),ua=!0,aa=\"skip\",Vt=!1;$r.CONTINUE=ua;$r.SKIP=aa;$r.EXIT=Vt;function $r(e,r,t,n){var a,u;typeof r==\"function\"&&typeof t!=\"function\"&&(n=t,t=r,r=null),u=jD(r),a=n?-1:1,i(e,null,[])();function i(o,s,l){var c=typeof o==\"object\"&&o!==null?o:{},f;return typeof c.type==\"string\"&&(f=typeof c.tagName==\"string\"?c.tagName:typeof c.name==\"string\"?c.name:void 0,p.displayName=\"node (\"+$D(c.type+(f?\"<\"+f+\">\":\"\"))+\")\"),p;function p(){var d=l.concat(o),D=[],h,m;if((!r||u(o,s,l[l.length-1]||null))&&(D=WD(t(o,l)),D[0]===Vt))return D;if(o.children&&D[0]!==aa)for(m=(n?o.children.length:-1)+a;m>-1&&m{\"use strict\";ca.exports=Hr;var Wr=sa(),HD=Wr.CONTINUE,KD=Wr.SKIP,JD=Wr.EXIT;Hr.CONTINUE=HD;Hr.SKIP=KD;Hr.EXIT=JD;function Hr(e,r,t,n){typeof r==\"function\"&&typeof t!=\"function\"&&(n=t,t=r,r=null),Wr(e,r,a,n);function a(u,i){var o=i[i.length-1],s=o?o.children.indexOf(u):null;return t(u,s,o)}}});var Da=C((Qv,fa)=>{\"use strict\";var XD=la();fa.exports=QD;function QD(e,r){return XD(e,r?ZD:ep),e}function ZD(e){delete e.position}function ep(e){e.position=void 0}});var da=C((Zv,ha)=>{\"use strict\";var pa=Ie(),rp=Da();ha.exports=ip;var tp=`\n`,np=/\\r\\n|\\r/g;function ip(){var e=this,r=String(e.file),t={line:1,column:1,offset:0},n=pa(t),a;return r=r.replace(np,tp),r.charCodeAt(0)===65279&&(r=r.slice(1),n.column++,n.offset++),a={type:\"root\",children:e.tokenizeBlock(r,n),position:{start:t,end:e.eof||pa(t)}},e.options.position||rp(a,!0),a}});var Fa=C((eE,ma)=>{\"use strict\";var up=/^[ \\t]*(\\n|$)/;ma.exports=ap;function ap(e,r,t){for(var n,a=\"\",u=0,i=r.length;u{\"use strict\";var me=\"\",jt;ga.exports=op;function op(e,r){if(typeof e!=\"string\")throw new TypeError(\"expected a string\");if(r===1)return e;if(r===2)return e+e;var t=e.length*r;if(jt!==e||typeof jt>\"u\")jt=e,me=\"\";else if(me.length>=t)return me.substr(0,t);for(;t>me.length&&r>1;)r&1&&(me+=e),r>>=1,e+=e;return me+=e,me=me.substr(0,t),me}});var $t=C((tE,va)=>{\"use strict\";va.exports=sp;function sp(e){return String(e).replace(/\\n+$/,\"\")}});var ba=C((nE,Ca)=>{\"use strict\";var cp=Kr(),lp=$t();Ca.exports=pp;var Wt=`\n`,Ea=\"\t\",Ht=\" \",fp=4,Dp=cp(Ht,fp);function pp(e,r,t){for(var n=-1,a=r.length,u=\"\",i=\"\",o=\"\",s=\"\",l,c,f;++n{\"use strict\";Aa.exports=Fp;var Jr=`\n`,mr=\"\t\",Je=\" \",hp=\"~\",ya=\"`\",dp=3,mp=4;function Fp(e,r,t){var n=this,a=n.options.gfm,u=r.length+1,i=0,o=\"\",s,l,c,f,p,d,D,h,m,F,y,E,B;if(a){for(;i=mp)){for(D=\"\";i{Xe=wa.exports=gp;function gp(e){return e.trim?e.trim():Xe.right(Xe.left(e))}Xe.left=function(e){return e.trimLeft?e.trimLeft():e.replace(/^\\s\\s*/,\"\")};Xe.right=function(e){if(e.trimRight)return e.trimRight();for(var r=/\\s/,t=e.length;r.test(e.charAt(--t)););return e.slice(0,t+1)}});var Xr=C((uE,ka)=>{\"use strict\";ka.exports=vp;function vp(e,r,t,n){for(var a=e.length,u=-1,i,o;++u{\"use strict\";var Ep=Re(),Cp=Xr();qa.exports=bp;var Kt=`\n`,Ba=\"\t\",Jt=\" \",Ta=\">\";function bp(e,r,t){for(var n=this,a=n.offset,u=n.blockTokenizers,i=n.interruptBlockquote,o=e.now(),s=o.line,l=r.length,c=[],f=[],p=[],d,D=0,h,m,F,y,E,B,b,g;D{\"use strict\";Oa.exports=Ap;var Sa=`\n`,Fr=\"\t\",gr=\" \",vr=\"#\",yp=6;function Ap(e,r,t){for(var n=this,a=n.options.pedantic,u=r.length+1,i=-1,o=e.now(),s=\"\",l=\"\",c,f,p;++iyp)&&!(!p||!a&&r.charAt(i+1)===vr)){for(u=r.length+1,f=\"\";++i{\"use strict\";Ia.exports=_p;var xp=\"\t\",wp=`\n`,Pa=\" \",kp=\"*\",Bp=\"-\",Tp=\"_\",qp=3;function _p(e,r,t){for(var n=-1,a=r.length+1,u=\"\",i,o,s,l;++n=qp&&(!i||i===wp)?(u+=l,t?!0:e(u)({type:\"thematicBreak\"})):void 0}});var Xt=C((cE,Ua)=>{\"use strict\";Ua.exports=Pp;var Ra=\"\t\",Sp=\" \",Op=1,Lp=4;function Pp(e){for(var r=0,t=0,n=e.charAt(r),a={},u,i=0;n===Ra||n===Sp;){for(u=n===Ra?Lp:Op,t+=u,u>1&&(t=Math.floor(t/u)*u);i{\"use strict\";var Ip=Re(),Np=Kr(),Rp=Xt();za.exports=zp;var Ma=`\n`,Up=\" \",Mp=\"!\";function zp(e,r){var t=e.split(Ma),n=t.length+1,a=1/0,u=[],i,o,s;for(t.unshift(Np(Up,r)+Mp);n--;)if(o=Rp(t[n]),u[n]=o.stops,Ip(t[n]).length!==0)if(o.indent)o.indent>0&&o.indent{\"use strict\";var Yp=Re(),Gp=Kr(),Ga=Ne(),Vp=Xt(),jp=Ya(),$p=Xr();Wa.exports=eh;var Qt=\"*\",Wp=\"_\",Va=\"+\",Zt=\"-\",ja=\".\",Fe=\" \",ae=`\n`,Qr=\"\t\",$a=\")\",Hp=\"x\",we=4,Kp=/\\n\\n(?!\\s*$)/,Jp=/^\\[([ X\\tx])][ \\t]/,Xp=/^([ \\t]*)([*+-]|\\d+[.)])( {1,4}(?! )| |\\t|$|(?=\\n))([^\\n]*)/,Qp=/^([ \\t]*)([*+-]|\\d+[.)])([ \\t]+)/,Zp=/^( {1,4}|\\t)?/gm;function eh(e,r,t){for(var n=this,a=n.options.commonmark,u=n.options.pedantic,i=n.blockTokenizers,o=n.interruptList,s=0,l=r.length,c=null,f,p,d,D,h,m,F,y,E,B,b,g,A,x,v,w,k,T,q,R=!1,O,S,_,L;s=k.indent&&(L=!0),D=r.charAt(s),E=null,!L){if(D===Qt||D===Va||D===Zt)E=D,s++,f++;else{for(p=\"\";s=k.indent||f>we),y=!1,s=F;if(b=r.slice(F,m),B=F===s?b:r.slice(s,m),(E===Qt||E===Wp||E===Zt)&&i.thematicBreak.call(n,e,b,!0))break;if(g=A,A=!y&&!Yp(B).length,L&&k)k.value=k.value.concat(w,b),v=v.concat(w,b),w=[];else if(y)w.length!==0&&(R=!0,k.value.push(\"\"),k.trail=w.concat()),k={value:[b],indent:f,trail:[]},x.push(k),v=v.concat(w,b),w=[];else if(A){if(g&&!a)break;w.push(b)}else{if(g||$p(o,i,n,[e,b,!0]))break;k.value=k.value.concat(w,b),v=v.concat(w,b),w=[]}s=m+1}for(O=e(v.join(ae)).reset({type:\"list\",ordered:d,start:c,spread:R,children:[]}),T=n.enterList(),q=n.enterBlock(),s=-1,l=x.length;++s{\"use strict\";Xa.exports=ch;var en=`\n`,ih=\"\t\",Ka=\" \",Ja=\"=\",uh=\"-\",ah=3,oh=1,sh=2;function ch(e,r,t){for(var n=this,a=e.now(),u=r.length,i=-1,o=\"\",s,l,c,f,p;++i=ah){i--;break}o+=c}for(s=\"\",l=\"\";++i{\"use strict\";var lh=\"[a-zA-Z_:][a-zA-Z0-9:._-]*\",fh=\"[^\\\"'=<>`\\\\u0000-\\\\u0020]+\",Dh=\"'[^']*'\",ph='\"[^\"]*\"',hh=\"(?:\"+fh+\"|\"+Dh+\"|\"+ph+\")\",dh=\"(?:\\\\s+\"+lh+\"(?:\\\\s*=\\\\s*\"+hh+\")?)\",Za=\"<[A-Za-z][A-Za-z0-9\\\\-]*\"+dh+\"*\\\\s*\\\\/?>\",eo=\"<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>\",mh=\"|\",Fh=\"<[?].*?[?]>\",gh=\"]*>\",vh=\"\";rn.openCloseTag=new RegExp(\"^(?:\"+Za+\"|\"+eo+\")\");rn.tag=new RegExp(\"^(?:\"+Za+\"|\"+eo+\"|\"+mh+\"|\"+Fh+\"|\"+gh+\"|\"+vh+\")\")});var io=C((hE,no)=>{\"use strict\";var Eh=tn().openCloseTag;no.exports=Ph;var Ch=\"\t\",bh=\" \",ro=`\n`,yh=\"<\",Ah=/^<(script|pre|style)(?=(\\s|>|$))/i,xh=/<\\/(script|pre|style)>/i,wh=/^/,Bh=/^<\\?/,Th=/\\?>/,qh=/^/,Sh=/^/,to=/^$/,Lh=new RegExp(Eh.source+\"\\\\s*$\");function Ph(e,r,t){for(var n=this,a=n.options.blocks.join(\"|\"),u=new RegExp(\"^|$))\",\"i\"),i=r.length,o=0,s,l,c,f,p,d,D,h=[[Ah,xh,!0],[wh,kh,!0],[Bh,Th,!0],[qh,_h,!0],[Sh,Oh,!0],[u,to,!0],[Lh,to,!1]];o{\"use strict\";uo.exports=Rh;var Ih=String.fromCharCode,Nh=/\\s/;function Rh(e){return Nh.test(typeof e==\"number\"?Ih(e):e.charAt(0))}});var nn=C((mE,ao)=>{\"use strict\";var Uh=kr();ao.exports=Mh;function Mh(e){return Uh(e).toLowerCase()}});var po=C((FE,Do)=>{\"use strict\";var zh=oe(),Yh=nn();Do.exports=$h;var oo='\"',so=\"'\",Gh=\"\\\\\",Qe=`\n`,Zr=\"\t\",et=\" \",an=\"[\",Er=\"]\",Vh=\"(\",jh=\")\",co=\":\",lo=\"<\",fo=\">\";function $h(e,r,t){for(var n=this,a=n.options.commonmark,u=0,i=r.length,o=\"\",s,l,c,f,p,d,D,h;u{\"use strict\";var Hh=oe();mo.exports=id;var Kh=\"\t\",rt=`\n`,Jh=\" \",Xh=\"-\",Qh=\":\",Zh=\"\\\\\",on=\"|\",ed=1,rd=2,ho=\"left\",td=\"center\",nd=\"right\";function id(e,r,t){var n=this,a,u,i,o,s,l,c,f,p,d,D,h,m,F,y,E,B,b,g,A,x,v;if(n.options.gfm){for(a=0,E=0,l=r.length+1,c=[];aA){if(E1&&(p?(o+=f.slice(0,-1),f=f.charAt(f.length-1)):(o+=f,f=\"\")),F=e.now(),e(o)({type:\"tableCell\",children:n.tokenizeInline(h,F)},s)),e(f+p),f=\"\",h=\"\"):(f&&(h+=f,f=\"\"),h+=p,p===Zh&&a!==l-2&&(h+=B.charAt(a+1),a++)),m=!1,a++}y||e(rt+u)}return g}}}});var Eo=C((vE,vo)=>{\"use strict\";var ud=Re(),ad=$t(),od=Xr();vo.exports=ld;var sd=\"\t\",Cr=`\n`,cd=\" \",go=4;function ld(e,r,t){for(var n=this,a=n.options,u=a.commonmark,i=n.blockTokenizers,o=n.interruptParagraph,s=r.indexOf(Cr),l=r.length,c,f,p,d,D;s=go&&p!==Cr){s=r.indexOf(Cr,s+1);continue}}if(f=r.slice(s+1),od(o,i,n,[e,f,!0]))break;if(c=s,s=r.indexOf(Cr,s+1),s!==-1&&ud(r.slice(c,s))===\"\"){s=c;break}}return f=r.slice(0,s),t?!0:(D=e.now(),f=ad(f),e(f)({type:\"paragraph\",children:n.tokenizeInline(f,D)}))}});var bo=C((EE,Co)=>{\"use strict\";Co.exports=fd;function fd(e,r){return e.indexOf(\"\\\\\",r)}});var wo=C((CE,xo)=>{\"use strict\";var Dd=bo();xo.exports=Ao;Ao.locator=Dd;var pd=`\n`,yo=\"\\\\\";function Ao(e,r,t){var n=this,a,u;if(r.charAt(0)===yo&&(a=r.charAt(1),n.escape.indexOf(a)!==-1))return t?!0:(a===pd?u={type:\"break\"}:u={type:\"text\",value:a},e(yo+a)(u))}});var sn=C((bE,ko)=>{\"use strict\";ko.exports=hd;function hd(e,r){return e.indexOf(\"<\",r)}});var So=C((yE,_o)=>{\"use strict\";var Bo=oe(),dd=dr(),md=sn();_o.exports=Dn;Dn.locator=md;Dn.notInLink=!0;var To=\"<\",cn=\">\",qo=\"@\",ln=\"/\",fn=\"mailto:\",tt=fn.length;function Dn(e,r,t){var n=this,a=\"\",u=r.length,i=0,o=\"\",s=!1,l=\"\",c,f,p,d,D;if(r.charAt(0)===To){for(i++,a=To;i{\"use strict\";Oo.exports=Fd;function Fd(e,r){var t=String(e),n=0,a;if(typeof r!=\"string\")throw new Error(\"Expected character\");for(a=t.indexOf(r);a!==-1;)n++,a=t.indexOf(r,a+r.length);return n}});var No=C((xE,Io)=>{\"use strict\";Io.exports=gd;var Po=[\"www.\",\"http://\",\"https://\"];function gd(e,r){var t=-1,n,a,u;if(!this.options.gfm)return t;for(a=Po.length,n=-1;++n{\"use strict\";var Ro=Lo(),vd=dr(),Ed=Ne(),pn=We(),Cd=oe(),bd=No();zo.exports=dn;dn.locator=bd;dn.notInLink=!0;var yd=33,Ad=38,xd=41,wd=42,kd=44,Bd=45,hn=46,Td=58,qd=59,_d=63,Sd=60,Uo=95,Od=126,Ld=\"(\",Mo=\")\";function dn(e,r,t){var n=this,a=n.options.gfm,u=n.inlineTokenizers,i=r.length,o=-1,s=!1,l,c,f,p,d,D,h,m,F,y,E,B,b,g;if(a){if(r.slice(0,4)===\"www.\")s=!0,p=4;else if(r.slice(0,7).toLowerCase()===\"http://\")p=7;else if(r.slice(0,8).toLowerCase()===\"https://\")p=8;else return;for(o=p-1,f=p,l=[];pF;)p=d+D.lastIndexOf(Mo),D=r.slice(d,p),y--;if(r.charCodeAt(p-1)===qd&&(p--,pn(r.charCodeAt(p-1)))){for(m=p-2;pn(r.charCodeAt(m));)m--;r.charCodeAt(m)===Ad&&(p=m)}return E=r.slice(0,p),b=vd(E,{nonTerminated:!1}),s&&(b=\"http://\"+b),g=n.enterLink(),n.inlineTokenizers={text:u.text},B=n.tokenizeInline(E,e.now()),n.inlineTokenizers=u,g(),e(E)({type:\"link\",title:null,url:b,children:B})}}}});var $o=C((kE,jo)=>{\"use strict\";var Pd=Ne(),Id=We(),Nd=43,Rd=45,Ud=46,Md=95;jo.exports=Vo;function Vo(e,r){var t=this,n,a;if(!this.options.gfm||(n=e.indexOf(\"@\",r),n===-1))return-1;if(a=n,a===r||!Go(e.charCodeAt(a-1)))return Vo.call(t,e,n+1);for(;a>r&&Go(e.charCodeAt(a-1));)a--;return a}function Go(e){return Pd(e)||Id(e)||e===Nd||e===Rd||e===Ud||e===Md}});var Jo=C((BE,Ko)=>{\"use strict\";var zd=dr(),Wo=Ne(),Ho=We(),Yd=$o();Ko.exports=gn;gn.locator=Yd;gn.notInLink=!0;var Gd=43,mn=45,nt=46,Vd=64,Fn=95;function gn(e,r,t){var n=this,a=n.options.gfm,u=n.inlineTokenizers,i=0,o=r.length,s=-1,l,c,f,p;if(a){for(l=r.charCodeAt(i);Wo(l)||Ho(l)||l===Gd||l===mn||l===nt||l===Fn;)l=r.charCodeAt(++i);if(i!==0&&l===Vd){for(i++;i{\"use strict\";var jd=We(),$d=sn(),Wd=tn().tag;Qo.exports=Xo;Xo.locator=$d;var Hd=\"<\",Kd=\"?\",Jd=\"!\",Xd=\"/\",Qd=/^/i;function Xo(e,r,t){var n=this,a=r.length,u,i;if(!(r.charAt(0)!==Hd||a<3)&&(u=r.charAt(1),!(!jd(u)&&u!==Kd&&u!==Jd&&u!==Xd)&&(i=r.match(Wd),!!i)))return t?!0:(i=i[0],!n.inLink&&Qd.test(i)?n.inLink=!0:n.inLink&&Zd.test(i)&&(n.inLink=!1),e(i)({type:\"html\",value:i}))}});var vn=C((qE,es)=>{\"use strict\";es.exports=e0;function e0(e,r){var t=e.indexOf(\"[\",r),n=e.indexOf(\"![\",r);return n===-1||t{\"use strict\";var br=oe(),r0=vn();as.exports=us;us.locator=r0;var t0=`\n`,n0=\"!\",rs='\"',ts=\"'\",Ze=\"(\",yr=\")\",En=\"<\",Cn=\">\",ns=\"[\",Ar=\"\\\\\",i0=\"]\",is=\"`\";function us(e,r,t){var n=this,a=\"\",u=0,i=r.charAt(0),o=n.options.pedantic,s=n.options.commonmark,l=n.options.gfm,c,f,p,d,D,h,m,F,y,E,B,b,g,A,x,v,w,k;if(i===n0&&(F=!0,a=i,i=r.charAt(++u)),i===ns&&!(!F&&n.inLink)){for(a+=i,A=\"\",u++,B=r.length,v=e.now(),g=0,v.column+=u,v.offset+=u;u=p&&(p=0):p=f}else if(i===Ar)u++,h+=r.charAt(u);else if((!p||l)&&i===ns)g++;else if((!p||l)&&i===i0)if(g)g--;else{if(r.charAt(u+1)!==Ze)return;h+=Ze,c=!0,u++;break}A+=h,h=\"\",u++}if(c){for(y=A,a+=A+h,u++;u{\"use strict\";var u0=oe(),a0=vn(),o0=nn();cs.exports=ss;ss.locator=a0;var bn=\"link\",s0=\"image\",c0=\"shortcut\",l0=\"collapsed\",yn=\"full\",f0=\"!\",it=\"[\",ut=\"\\\\\",at=\"]\";function ss(e,r,t){var n=this,a=n.options.commonmark,u=r.charAt(0),i=0,o=r.length,s=\"\",l=\"\",c=bn,f=c0,p,d,D,h,m,F,y,E;if(u===f0&&(c=s0,l=u,u=r.charAt(++i)),u===it){for(i++,l+=u,F=\"\",E=0;i{\"use strict\";fs.exports=D0;function D0(e,r){var t=e.indexOf(\"**\",r),n=e.indexOf(\"__\",r);return n===-1?t:t===-1||n{\"use strict\";var p0=Re(),ps=oe(),h0=Ds();ds.exports=hs;hs.locator=h0;var d0=\"\\\\\",m0=\"*\",F0=\"_\";function hs(e,r,t){var n=this,a=0,u=r.charAt(a),i,o,s,l,c,f,p;if(!(u!==m0&&u!==F0||r.charAt(++a)!==u)&&(o=n.options.pedantic,s=u,c=s+s,f=r.length,a++,l=\"\",u=\"\",!(o&&ps(r.charAt(a)))))for(;a{\"use strict\";Fs.exports=E0;var g0=String.fromCharCode,v0=/\\w/;function E0(e){return v0.test(typeof e==\"number\"?g0(e):e.charAt(0))}});var Es=C((IE,vs)=>{\"use strict\";vs.exports=C0;function C0(e,r){var t=e.indexOf(\"*\",r),n=e.indexOf(\"_\",r);return n===-1?t:t===-1||n{\"use strict\";var b0=Re(),y0=gs(),Cs=oe(),A0=Es();As.exports=ys;ys.locator=A0;var x0=\"*\",bs=\"_\",w0=\"\\\\\";function ys(e,r,t){var n=this,a=0,u=r.charAt(a),i,o,s,l,c,f,p;if(!(u!==x0&&u!==bs)&&(o=n.options.pedantic,c=u,s=u,f=r.length,a++,l=\"\",u=\"\",!(o&&Cs(r.charAt(a)))))for(;a{\"use strict\";ws.exports=k0;function k0(e,r){return e.indexOf(\"~~\",r)}});var Ss=C((UE,_s)=>{\"use strict\";var Bs=oe(),B0=ks();_s.exports=qs;qs.locator=B0;var ot=\"~\",Ts=\"~~\";function qs(e,r,t){var n=this,a=\"\",u=\"\",i=\"\",o=\"\",s,l,c;if(!(!n.options.gfm||r.charAt(0)!==ot||r.charAt(1)!==ot||Bs(r.charAt(2))))for(s=1,l=r.length,c=e.now(),c.column+=2,c.offset+=2;++s{\"use strict\";Os.exports=T0;function T0(e,r){return e.indexOf(\"`\",r)}});var Ns=C((zE,Is)=>{\"use strict\";var q0=Ls();Is.exports=Ps;Ps.locator=q0;var An=10,xn=32,wn=96;function Ps(e,r,t){for(var n=r.length,a=0,u,i,o,s,l,c;a2&&(s===xn||s===An)&&(l===xn||l===An)){for(a++,n--;a{\"use strict\";Rs.exports=_0;function _0(e,r){for(var t=e.indexOf(`\n`,r);t>r&&e.charAt(t-1)===\" \";)t--;return t}});var Ys=C((GE,zs)=>{\"use strict\";var S0=Us();zs.exports=Ms;Ms.locator=S0;var O0=\" \",L0=`\n`,P0=2;function Ms(e,r,t){for(var n=r.length,a=-1,u=\"\",i;++a{\"use strict\";Gs.exports=I0;function I0(e,r,t){var n=this,a,u,i,o,s,l,c,f,p,d;if(t)return!0;for(a=n.inlineMethods,o=a.length,u=n.inlineTokenizers,i=-1,p=r.length;++i{\"use strict\";var N0=Ie(),st=lu(),R0=Du(),U0=hu(),M0=Yu(),kn=ju();Ws.exports=js;function js(e,r){this.file=r,this.offset={},this.options=N0(this.options),this.setOptions({}),this.inList=!1,this.inBlock=!1,this.inLink=!1,this.atStart=!0,this.toOffset=R0(r).toOffset,this.unescape=U0(this,\"escape\"),this.decode=M0(this)}var U=js.prototype;U.setOptions=Zu();U.parse=da();U.options=Gt();U.exitStart=st(\"atStart\",!0);U.enterList=st(\"inList\",!1);U.enterLink=st(\"inLink\",!1);U.enterBlock=st(\"inBlock\",!1);U.interruptParagraph=[[\"thematicBreak\"],[\"list\"],[\"atxHeading\"],[\"fencedCode\"],[\"blockquote\"],[\"html\"],[\"setextHeading\",{commonmark:!1}],[\"definition\",{commonmark:!1}]];U.interruptList=[[\"atxHeading\",{pedantic:!1}],[\"fencedCode\",{pedantic:!1}],[\"thematicBreak\",{pedantic:!1}],[\"definition\",{commonmark:!1}]];U.interruptBlockquote=[[\"indentedCode\",{commonmark:!0}],[\"fencedCode\",{commonmark:!0}],[\"atxHeading\",{commonmark:!0}],[\"setextHeading\",{commonmark:!0}],[\"thematicBreak\",{commonmark:!0}],[\"html\",{commonmark:!0}],[\"list\",{commonmark:!0}],[\"definition\",{commonmark:!1}]];U.blockTokenizers={blankLine:Fa(),indentedCode:ba(),fencedCode:xa(),blockquote:_a(),atxHeading:La(),thematicBreak:Na(),list:Ha(),setextHeading:Qa(),html:io(),definition:po(),table:Fo(),paragraph:Eo()};U.inlineTokenizers={escape:wo(),autoLink:So(),url:Yo(),email:Jo(),html:Zo(),link:os(),reference:ls(),strong:ms(),emphasis:xs(),deletion:Ss(),code:Ns(),break:Ys(),text:Vs()};U.blockMethods=$s(U.blockTokenizers);U.inlineMethods=$s(U.inlineTokenizers);U.tokenizeBlock=kn(\"block\");U.tokenizeInline=kn(\"inline\");U.tokenizeFactory=kn;function $s(e){var r=[],t;for(t in e)r.push(t);return r}});var Qs=C(($E,Xs)=>{\"use strict\";var z0=su(),Y0=Ie(),Ks=Hs();Xs.exports=Js;Js.Parser=Ks;function Js(e){var r=this.data(\"settings\"),t=z0(Ks);t.prototype.options=Y0(t.prototype.options,r,e),this.Parser=t}});var ec=C((WE,Zs)=>{\"use strict\";Zs.exports=G0;function G0(e){if(e)throw e}});var Bn=C((HE,rc)=>{rc.exports=function(r){return r!=null&&r.constructor!=null&&typeof r.constructor.isBuffer==\"function\"&&r.constructor.isBuffer(r)}});var lc=C((KE,cc)=>{\"use strict\";var ct=Object.prototype.hasOwnProperty,sc=Object.prototype.toString,tc=Object.defineProperty,nc=Object.getOwnPropertyDescriptor,ic=function(r){return typeof Array.isArray==\"function\"?Array.isArray(r):sc.call(r)===\"[object Array]\"},uc=function(r){if(!r||sc.call(r)!==\"[object Object]\")return!1;var t=ct.call(r,\"constructor\"),n=r.constructor&&r.constructor.prototype&&ct.call(r.constructor.prototype,\"isPrototypeOf\");if(r.constructor&&!t&&!n)return!1;var a;for(a in r);return typeof a>\"u\"||ct.call(r,a)},ac=function(r,t){tc&&t.name===\"__proto__\"?tc(r,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):r[t.name]=t.newValue},oc=function(r,t){if(t===\"__proto__\")if(ct.call(r,t)){if(nc)return nc(r,t).value}else return;return r[t]};cc.exports=function e(){var r,t,n,a,u,i,o=arguments[0],s=1,l=arguments.length,c=!1;for(typeof o==\"boolean\"&&(c=o,o=arguments[1]||{},s=2),(o==null||typeof o!=\"object\"&&typeof o!=\"function\")&&(o={});s{\"use strict\";fc.exports=e=>{if(Object.prototype.toString.call(e)!==\"[object Object]\")return!1;let r=Object.getPrototypeOf(e);return r===null||r===Object.prototype}});var hc=C((XE,pc)=>{\"use strict\";var V0=[].slice;pc.exports=j0;function j0(e,r){var t;return n;function n(){var i=V0.call(arguments,0),o=e.length>i.length,s;o&&i.push(a);try{s=e.apply(null,i)}catch(l){if(o&&t)throw l;return a(l)}o||(s&&typeof s.then==\"function\"?s.then(u,a):s instanceof Error?a(s):u(s))}function a(){t||(t=!0,r.apply(null,arguments))}function u(i){a(null,i)}}});var vc=C((QE,gc)=>{\"use strict\";var mc=hc();gc.exports=Fc;Fc.wrap=mc;var dc=[].slice;function Fc(){var e=[],r={};return r.run=t,r.use=n,r;function t(){var a=-1,u=dc.call(arguments,0,-1),i=arguments[arguments.length-1];if(typeof i!=\"function\")throw new Error(\"Expected function as last argument, not \"+i);o.apply(null,[null].concat(u));function o(s){var l=e[++a],c=dc.call(arguments,0),f=c.slice(1),p=u.length,d=-1;if(s){i(s);return}for(;++d{\"use strict\";var er={}.hasOwnProperty;bc.exports=$0;function $0(e){return!e||typeof e!=\"object\"?\"\":er.call(e,\"position\")||er.call(e,\"type\")?Ec(e.position):er.call(e,\"start\")||er.call(e,\"end\")?Ec(e):er.call(e,\"line\")||er.call(e,\"column\")?Tn(e):\"\"}function Tn(e){return(!e||typeof e!=\"object\")&&(e={}),Cc(e.line)+\":\"+Cc(e.column)}function Ec(e){return(!e||typeof e!=\"object\")&&(e={}),Tn(e.start)+\"-\"+Tn(e.end)}function Cc(e){return e&&typeof e==\"number\"?e:1}});var wc=C((eC,xc)=>{\"use strict\";var W0=yc();xc.exports=qn;function Ac(){}Ac.prototype=Error.prototype;qn.prototype=new Ac;var ke=qn.prototype;ke.file=\"\";ke.name=\"\";ke.reason=\"\";ke.message=\"\";ke.stack=\"\";ke.fatal=null;ke.column=null;ke.line=null;function qn(e,r,t){var n,a,u;typeof r==\"string\"&&(t=r,r=null),n=H0(t),a=W0(r)||\"1:1\",u={start:{line:null,column:null},end:{line:null,column:null}},r&&r.position&&(r=r.position),r&&(r.start?(u=r,r=r.start):u.start=r),e.stack&&(this.stack=e.stack,e=e.message),this.message=e,this.name=a,this.reason=e,this.line=r?r.line:null,this.column=r?r.column:null,this.location=u,this.source=n[0],this.ruleId=n[1]}function H0(e){var r=[null,null],t;return typeof e==\"string\"&&(t=e.indexOf(\":\"),t===-1?r[1]=e:(r[0]=e.slice(0,t),r[1]=e.slice(t+1))),r}});var kc=C(rr=>{\"use strict\";rr.basename=K0;rr.dirname=J0;rr.extname=X0;rr.join=Q0;rr.sep=\"/\";function K0(e,r){var t=0,n=-1,a,u,i,o;if(r!==void 0&&typeof r!=\"string\")throw new TypeError('\"ext\" argument must be a string');if(xr(e),a=e.length,r===void 0||!r.length||r.length>e.length){for(;a--;)if(e.charCodeAt(a)===47){if(i){t=a+1;break}}else n<0&&(i=!0,n=a+1);return n<0?\"\":e.slice(t,n)}if(r===e)return\"\";for(u=-1,o=r.length-1;a--;)if(e.charCodeAt(a)===47){if(i){t=a+1;break}}else u<0&&(i=!0,u=a+1),o>-1&&(e.charCodeAt(a)===r.charCodeAt(o--)?o<0&&(n=a):(o=-1,n=u));return t===n?n=u:n<0&&(n=e.length),e.slice(t,n)}function J0(e){var r,t,n;if(xr(e),!e.length)return\".\";for(r=-1,n=e.length;--n;)if(e.charCodeAt(n)===47){if(t){r=n;break}}else t||(t=!0);return r<0?e.charCodeAt(0)===47?\"/\":\".\":r===1&&e.charCodeAt(0)===47?\"//\":e.slice(0,r)}function X0(e){var r=-1,t=0,n=-1,a=0,u,i,o;for(xr(e),o=e.length;o--;){if(i=e.charCodeAt(o),i===47){if(u){t=o+1;break}continue}n<0&&(u=!0,n=o+1),i===46?r<0?r=o:a!==1&&(a=1):r>-1&&(a=-1)}return r<0||n<0||a===0||a===1&&r===n-1&&r===t+1?\"\":e.slice(r,n)}function Q0(){for(var e=-1,r;++e2){if(s=t.lastIndexOf(\"/\"),s!==t.length-1){s<0?(t=\"\",n=0):(t=t.slice(0,s),n=t.length-1-t.lastIndexOf(\"/\")),a=i,u=0;continue}}else if(t.length){t=\"\",n=0,a=i,u=0;continue}}r&&(t=t.length?t+\"/..\":\"..\",n=2)}else t.length?t+=\"/\"+e.slice(a+1,i):t=e.slice(a+1,i),n=i-a-1;a=i,u=0}else o===46&&u>-1?u++:u=-1}return t}function xr(e){if(typeof e!=\"string\")throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(e))}});var Tc=C(Bc=>{\"use strict\";Bc.cwd=rm;function rm(){return\"/\"}});var Sc=C((nC,_c)=>{\"use strict\";var se=kc(),tm=Tc(),nm=Bn();_c.exports=ge;var im={}.hasOwnProperty,_n=[\"history\",\"path\",\"basename\",\"stem\",\"extname\",\"dirname\"];ge.prototype.toString=dm;Object.defineProperty(ge.prototype,\"path\",{get:um,set:am});Object.defineProperty(ge.prototype,\"dirname\",{get:om,set:sm});Object.defineProperty(ge.prototype,\"basename\",{get:cm,set:lm});Object.defineProperty(ge.prototype,\"extname\",{get:fm,set:Dm});Object.defineProperty(ge.prototype,\"stem\",{get:pm,set:hm});function ge(e){var r,t;if(!e)e={};else if(typeof e==\"string\"||nm(e))e={contents:e};else if(\"message\"in e&&\"messages\"in e)return e;if(!(this instanceof ge))return new ge(e);for(this.data={},this.messages=[],this.history=[],this.cwd=tm.cwd(),t=-1;++t<_n.length;)r=_n[t],im.call(e,r)&&(this[r]=e[r]);for(r in e)_n.indexOf(r)<0&&(this[r]=e[r])}function um(){return this.history[this.history.length-1]}function am(e){On(e,\"path\"),this.path!==e&&this.history.push(e)}function om(){return typeof this.path==\"string\"?se.dirname(this.path):void 0}function sm(e){qc(this.path,\"dirname\"),this.path=se.join(e||\"\",this.basename)}function cm(){return typeof this.path==\"string\"?se.basename(this.path):void 0}function lm(e){On(e,\"basename\"),Sn(e,\"basename\"),this.path=se.join(this.dirname||\"\",e)}function fm(){return typeof this.path==\"string\"?se.extname(this.path):void 0}function Dm(e){if(Sn(e,\"extname\"),qc(this.path,\"extname\"),e){if(e.charCodeAt(0)!==46)throw new Error(\"`extname` must start with `.`\");if(e.indexOf(\".\",1)>-1)throw new Error(\"`extname` cannot contain multiple dots\")}this.path=se.join(this.dirname,this.stem+(e||\"\"))}function pm(){return typeof this.path==\"string\"?se.basename(this.path,this.extname):void 0}function hm(e){On(e,\"stem\"),Sn(e,\"stem\"),this.path=se.join(this.dirname||\"\",e+(this.extname||\"\"))}function dm(e){return(this.contents||\"\").toString(e)}function Sn(e,r){if(e&&e.indexOf(se.sep)>-1)throw new Error(\"`\"+r+\"` cannot be a path: did not expect `\"+se.sep+\"`\")}function On(e,r){if(!e)throw new Error(\"`\"+r+\"` cannot be empty\")}function qc(e,r){if(!e)throw new Error(\"Setting `\"+r+\"` requires `path` to be set too\")}});var Lc=C((iC,Oc)=>{\"use strict\";var mm=wc(),lt=Sc();Oc.exports=lt;lt.prototype.message=Fm;lt.prototype.info=vm;lt.prototype.fail=gm;function Fm(e,r,t){var n=new mm(e,r,t);return this.path&&(n.name=this.path+\":\"+n.name,n.file=this.path),n.fatal=!1,this.messages.push(n),n}function gm(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e}function vm(){var e=this.message.apply(this,arguments);return e.fatal=null,e}});var Ic=C((uC,Pc)=>{\"use strict\";Pc.exports=Lc()});var jc=C((aC,Vc)=>{\"use strict\";var Nc=ec(),Em=Bn(),ft=lc(),Rc=Dc(),Yc=vc(),wr=Ic();Vc.exports=Gc().freeze();var Cm=[].slice,bm={}.hasOwnProperty,ym=Yc().use(Am).use(xm).use(wm);function Am(e,r){r.tree=e.parse(r.file)}function xm(e,r,t){e.run(r.tree,r.file,n);function n(a,u,i){a?t(a):(r.tree=u,r.file=i,t())}}function wm(e,r){var t=e.stringify(r.tree,r.file);t==null||(typeof t==\"string\"||Em(t)?(\"value\"in r.file&&(r.file.value=t),r.file.contents=t):r.file.result=t)}function Gc(){var e=[],r=Yc(),t={},n=-1,a;return u.data=o,u.freeze=i,u.attachers=e,u.use=s,u.parse=c,u.stringify=d,u.run=f,u.runSync=p,u.process=D,u.processSync=h,u;function u(){for(var m=Gc(),F=-1;++FMi,options:()=>zi,parsers:()=>Rn,printers:()=>Rm});var dl=(e,r,t,n)=>{if(!(e&&r==null))return r.replaceAll?r.replaceAll(t,n):t.global?r.replace(t,n):r.split(t).join(n)},N=dl;var ml=(e,r,t)=>{if(!(e&&r==null))return Array.isArray(r)||typeof r==\"string\"?r[t<0?r.length+t:t]:r.at(t)},z=ml;var Ri=Ue(kr(),1);function le(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var $=\"string\",W=\"array\",Ce=\"cursor\",re=\"indent\",te=\"align\",fe=\"trim\",K=\"group\",J=\"fill\",X=\"if-break\",De=\"indent-if-break\",pe=\"line-suffix\",he=\"line-suffix-boundary\",H=\"line\",de=\"label\",ne=\"break-parent\",Br=new Set([Ce,re,te,fe,K,J,X,De,pe,he,H,de,ne]);function gl(e){if(typeof e==\"string\")return $;if(Array.isArray(e))return W;if(!e)return;let{type:r}=e;if(Br.has(r))return r}var Y=gl;var vl=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function El(e){let r=e===null?\"null\":typeof e;if(r!==\"string\"&&r!==\"object\")return`Unexpected doc '${r}', \nExpected it to be 'string' or 'object'.`;if(Y(e))throw new Error(\"doc is valid.\");let t=Object.prototype.toString.call(e);if(t!==\"[object Object]\")return`Unexpected doc '${t}'.`;let n=vl([...Br].map(a=>`'${a}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var ht=class extends Error{name=\"InvalidDocError\";constructor(r){super(El(r)),this.doc=r}},Te=ht;var $n={};function Cl(e,r,t,n){let a=[e];for(;a.length>0;){let u=a.pop();if(u===$n){t(a.pop());continue}t&&a.push(u,$n);let i=Y(u);if(!i)throw new Te(u);if((r==null?void 0:r(u))!==!1)switch(i){case W:case J:{let o=i===W?u:u.parts;for(let s=o.length,l=s-1;l>=0;--l)a.push(o[l]);break}case X:a.push(u.flatContents,u.breakContents);break;case K:if(n&&u.expandedStates)for(let o=u.expandedStates.length,s=o-1;s>=0;--s)a.push(u.expandedStates[s]);else a.push(u.contents);break;case te:case re:case De:case de:case pe:a.push(u.contents);break;case $:case Ce:case fe:case he:case H:case ne:break;default:throw new Te(u)}}}var Wn=Cl;var Hn=()=>{},qe=Hn,Tr=Hn;function tr(e){return qe(e),{type:re,contents:e}}function be(e,r){return qe(r),{type:te,contents:r,n:e}}function Me(e,r={}){return qe(e),Tr(r.expandedStates,!0),{type:K,id:r.id,contents:e,break:!!r.shouldBreak,expandedStates:r.expandedStates}}function _e(e){return be({type:\"root\"},e)}function ze(e){return Tr(e),{type:J,parts:e}}function Kn(e,r=\"\",t={}){return qe(e),r!==\"\"&&qe(r),{type:X,breakContents:e,flatContents:r,groupId:t.groupId}}var nr={type:ne};var ir={type:H,hard:!0},bl={type:H,hard:!0,literal:!0},qr={type:H},_r={type:H,soft:!0},P=[ir,nr],ur=[bl,nr];function Sr(e,r){qe(e),Tr(r);let t=[];for(let n=0;n0){let r=z(!1,e,-1);!r.expandedStates&&!r.break&&(r.break=\"propagated\")}return null}function Xn(e){let r=new Set,t=[];function n(u){if(u.type===ne&&Jn(t),u.type===K){if(t.push(u),r.has(u))return!1;r.add(u)}}function a(u){u.type===K&&t.pop().break&&Jn(t)}Wn(e,n,a,!0)}function ye(e,r=ur){return yl(e,t=>typeof t==\"string\"?Sr(r,t.split(`\n`)):t)}function Al(e,r){let t=e.match(new RegExp(`(${le(r)})+`,\"gu\"));return t===null?0:t.reduce((n,a)=>Math.max(n,a.length/r.length),0)}var Or=Al;function xl(e,r){let t=e.match(new RegExp(`(${le(r)})+`,\"gu\"));if(t===null)return 0;let n=new Map,a=0;for(let u of t){let i=u.length/r.length;n.set(i,!0),i>a&&(a=i)}for(let u=1;uu?n:t}var ei=wl;var dt=class extends Error{name=\"UnexpectedNodeError\";constructor(r,t,n=\"type\"){super(`Unexpected ${t} node ${n}: ${JSON.stringify(r[n])}.`),this.node=r}},ri=dt;var ai=Ue(kr(),1);function kl(e){return(e==null?void 0:e.type)===\"front-matter\"}var ti=kl;var ar=3;function Bl(e){let r=e.slice(0,ar);if(r!==\"---\"&&r!==\"+++\")return;let t=e.indexOf(`\n`,ar);if(t===-1)return;let n=e.slice(ar,t).trim(),a=e.indexOf(`\n${r}`,t),u=n;if(u||(u=r===\"+++\"?\"toml\":\"yaml\"),a===-1&&r===\"---\"&&u===\"yaml\"&&(a=e.indexOf(`\n...`,t)),a===-1)return;let i=a+1+ar,o=e.charAt(i+1);if(!/\\s?/u.test(o))return;let s=e.slice(0,i);return{type:\"front-matter\",language:u,explicitLanguage:n,value:e.slice(t+1,a),startDelimiter:r,endDelimiter:s.slice(-ar),raw:s}}function Tl(e){let r=Bl(e);if(!r)return{content:e};let{raw:t}=r;return{frontMatter:r,content:N(!1,t,/[^\\n]/gu,\" \")+e.slice(t.length)}}var or=Tl;var ni=[\"format\",\"prettier\"];function mt(e){let r=`@(${ni.join(\"|\")})`,t=new RegExp([``,`\\\\{\\\\s*\\\\/\\\\*\\\\s*${r}\\\\s*\\\\*\\\\/\\\\s*\\\\}`,``].join(\"|\"),\"mu\"),n=e.match(t);return(n==null?void 0:n.index)===0}var ii=e=>mt(or(e).content.trimStart()),ui=e=>{let r=or(e),t=``;return r.frontMatter?`${r.frontMatter.raw}\n\n${t}\n\n${r.content}`:`${t}\n\n${r.content}`};var ql=new Set([\"position\",\"raw\"]);function oi(e,r,t){if((e.type===\"front-matter\"||e.type===\"code\"||e.type===\"yaml\"||e.type===\"import\"||e.type===\"export\"||e.type===\"jsx\")&&delete r.value,e.type===\"list\"&&delete r.isAligned,(e.type===\"list\"||e.type===\"listItem\")&&delete r.spread,e.type===\"text\")return null;if(e.type===\"inlineCode\"&&(r.value=N(!1,e.value,`\n`,\" \")),e.type===\"wikiLink\"&&(r.value=N(!1,e.value.trim(),/[\\t\\n]+/gu,\" \")),(e.type===\"definition\"||e.type===\"linkReference\"||e.type===\"imageReference\")&&(r.label=(0,ai.default)(e.label)),(e.type===\"link\"||e.type===\"image\")&&e.url&&e.url.includes(\"(\"))for(let n of\"<>\")r.url=N(!1,e.url,n,encodeURIComponent(n));if((e.type===\"definition\"||e.type===\"link\"||e.type===\"image\")&&e.title&&(r.title=N(!1,e.title,/\\\\(?=[\"')])/gu,\"\")),(t==null?void 0:t.type)===\"root\"&&t.children.length>0&&(t.children[0]===e||ti(t.children[0])&&t.children[1]===e)&&e.type===\"html\"&&mt(e.value))return null}oi.ignoredProperties=ql;var si=oi;var ci=/(?:[\\u{2ea}-\\u{2eb}\\u{1100}-\\u{11ff}\\u{2e80}-\\u{2e99}\\u{2e9b}-\\u{2ef3}\\u{2f00}-\\u{2fd5}\\u{2ff0}-\\u{303f}\\u{3041}-\\u{3096}\\u{3099}-\\u{30ff}\\u{3105}-\\u{312f}\\u{3131}-\\u{318e}\\u{3190}-\\u{4dbf}\\u{4e00}-\\u{9fff}\\u{a700}-\\u{a707}\\u{a960}-\\u{a97c}\\u{ac00}-\\u{d7a3}\\u{d7b0}-\\u{d7c6}\\u{d7cb}-\\u{d7fb}\\u{f900}-\\u{fa6d}\\u{fa70}-\\u{fad9}\\u{fe10}-\\u{fe1f}\\u{fe30}-\\u{fe6f}\\u{ff00}-\\u{ffef}\\u{16fe3}\\u{1aff0}-\\u{1aff3}\\u{1aff5}-\\u{1affb}\\u{1affd}-\\u{1affe}\\u{1b000}-\\u{1b122}\\u{1b132}\\u{1b150}-\\u{1b152}\\u{1b155}\\u{1b164}-\\u{1b167}\\u{1f200}\\u{1f250}-\\u{1f251}\\u{20000}-\\u{2a6df}\\u{2a700}-\\u{2b739}\\u{2b740}-\\u{2b81d}\\u{2b820}-\\u{2cea1}\\u{2ceb0}-\\u{2ebe0}\\u{2f800}-\\u{2fa1d}\\u{30000}-\\u{3134a}\\u{31350}-\\u{323af}])(?:[\\u{fe00}-\\u{fe0f}\\u{e0100}-\\u{e01ef}])?/u,Se=/(?:[\\u{21}-\\u{2f}\\u{3a}-\\u{40}\\u{5b}-\\u{60}\\u{7b}-\\u{7e}]|\\p{General_Category=Connector_Punctuation}|\\p{General_Category=Dash_Punctuation}|\\p{General_Category=Close_Punctuation}|\\p{General_Category=Final_Punctuation}|\\p{General_Category=Initial_Punctuation}|\\p{General_Category=Other_Punctuation}|\\p{General_Category=Open_Punctuation})/u;async function _l(e,r){if(e.language===\"yaml\"){let t=e.value.trim(),n=t?await r(t,{parser:\"yaml\"}):\"\";return _e([e.startDelimiter,e.explicitLanguage,P,n,n?P:\"\",e.endDelimiter])}}var li=_l;var Sl=e=>String(e).split(/[/\\\\]/u).pop();function fi(e,r){if(!r)return;let t=Sl(r).toLowerCase();return e.find(({filenames:n})=>n==null?void 0:n.some(a=>a.toLowerCase()===t))??e.find(({extensions:n})=>n==null?void 0:n.some(a=>t.endsWith(a)))}function Ol(e,r){if(r)return e.find(({name:t})=>t.toLowerCase()===r)??e.find(({aliases:t})=>t==null?void 0:t.includes(r))??e.find(({extensions:t})=>t==null?void 0:t.includes(`.${r}`))}function Ll(e,r){let t=e.plugins.flatMap(a=>a.languages??[]),n=Ol(t,r.language)??fi(t,r.physicalFile)??fi(t,r.file)??(r.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var Di=Ll;var Pl=new Proxy(()=>{},{get:()=>Pl});function Oe(e){return e.position.start.offset}function Le(e){return e.position.end.offset}var Ft=new Set([\"liquidNode\",\"inlineCode\",\"emphasis\",\"esComment\",\"strong\",\"delete\",\"wikiLink\",\"link\",\"linkReference\",\"image\",\"imageReference\",\"footnote\",\"footnoteReference\",\"sentence\",\"whitespace\",\"word\",\"break\",\"inlineMath\"]),Pr=new Set([...Ft,\"tableCell\",\"paragraph\",\"heading\"]),Ge=\"non-cjk\",ie=\"cj-letter\",Pe=\"k-letter\",sr=\"cjk-punctuation\",Il=/\\p{Script_Extensions=Hangul}/u;function Ir(e){let r=[],t=e.split(/([\\t\\n ]+)/u);for(let[a,u]of t.entries()){if(a%2===1){r.push({type:\"whitespace\",value:/\\n/u.test(u)?`\n`:\" \"});continue}if((a===0||a===t.length-1)&&u===\"\")continue;let i=u.split(new RegExp(`(${ci.source})`,\"u\"));for(let[o,s]of i.entries())if(!((o===0||o===i.length-1)&&s===\"\")){if(o%2===0){s!==\"\"&&n({type:\"word\",value:s,kind:Ge,isCJ:!1,hasLeadingPunctuation:Se.test(s[0]),hasTrailingPunctuation:Se.test(z(!1,s,-1))});continue}if(Se.test(s)){n({type:\"word\",value:s,kind:sr,isCJ:!0,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0});continue}if(Il.test(s)){n({type:\"word\",value:s,kind:Pe,isCJ:!1,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1});continue}n({type:\"word\",value:s,kind:ie,isCJ:!0,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return r;function n(a){let u=z(!1,r,-1);(u==null?void 0:u.type)===\"word\"&&!i(Ge,sr)&&![u.value,a.value].some(o=>/\\u3000/u.test(o))&&r.push({type:\"whitespace\",value:\"\"}),r.push(a);function i(o,s){return u.kind===o&&a.kind===s||u.kind===s&&a.kind===o}}}function Ye(e,r){let t=r.originalText.slice(e.position.start.offset,e.position.end.offset),{numberText:n,leadingSpaces:a}=t.match(/^\\s*(?\\d+)(\\.|\\))(?\\s*)/u).groups;return{number:Number(n),leadingSpaces:a}}function pi(e,r){return!e.ordered||e.children.length<2||Ye(e.children[1],r).number!==1?!1:Ye(e.children[0],r).number!==0?!0:e.children.length>2&&Ye(e.children[2],r).number===1}function Nr(e,r){let{value:t}=e;return e.position.end.offset===r.length&&t.endsWith(`\n`)&&r.endsWith(`\n`)?t.slice(0,-1):t}function Ae(e,r){return function t(n,a,u){let i={...r(n,a,u)};return i.children&&(i.children=i.children.map((o,s)=>t(o,s,[i,...u]))),i}(e,null,[])}function gt(e){if((e==null?void 0:e.type)!==\"link\"||e.children.length!==1)return!1;let[r]=e.children;return Oe(e)===Oe(r)&&Le(e)===Le(r)}function Nl(e,r){let{node:t}=e;if(t.type===\"code\"&&t.lang!==null){let n=Di(r,{language:t.lang});if(n)return async a=>{let u=r.__inJsTemplate?\"~\":\"`\",i=u.repeat(Math.max(3,Or(t.value,u)+1)),o={parser:n};t.lang===\"ts\"||t.lang===\"typescript\"?o.filepath=\"dummy.ts\":t.lang===\"tsx\"&&(o.filepath=\"dummy.tsx\");let s=await a(Nr(t,r.originalText),o);return _e([i,t.lang,t.meta?\" \"+t.meta:\"\",P,ye(s),P,i])}}switch(t.type){case\"front-matter\":return n=>li(t,n);case\"import\":case\"export\":return n=>n(t.value,{parser:\"babel\"});case\"jsx\":return n=>n(`<$>${t.value}`,{parser:\"__js_expression\",rootMarker:\"mdx\"})}return null}var hi=Nl;var cr=null;function lr(e){if(cr!==null&&typeof cr.property){let r=cr;return cr=lr.prototype=null,r}return cr=lr.prototype=e??Object.create(null),new lr}var Rl=10;for(let e=0;e<=Rl;e++)lr();function vt(e){return lr(e)}function Ul(e,r=\"type\"){vt(e);function t(n){let a=n[r],u=e[a];if(!Array.isArray(u))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return u}return t}var di=Ul;var Ml={\"front-matter\":[],root:[\"children\"],paragraph:[\"children\"],sentence:[\"children\"],word:[],whitespace:[],emphasis:[\"children\"],strong:[\"children\"],delete:[\"children\"],inlineCode:[],wikiLink:[],link:[\"children\"],image:[],blockquote:[\"children\"],heading:[\"children\"],code:[],html:[],list:[\"children\"],thematicBreak:[],linkReference:[\"children\"],imageReference:[],definition:[],footnote:[\"children\"],footnoteReference:[],footnoteDefinition:[\"children\"],table:[\"children\"],tableCell:[\"children\"],break:[],liquidNode:[],import:[],export:[],esComment:[],jsx:[],math:[],inlineMath:[],tableRow:[\"children\"],listItem:[\"children\"],text:[]},mi=Ml;var zl=di(mi),Fi=zl;function gi(e){switch(e){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}var vi=()=>/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Ei(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Ci(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var bi=e=>!(Ei(e)||Ci(e));var Yl=/[^\\x20-\\x7F]/u;function Gl(e){if(!e)return 0;if(!Yl.test(e))return e.length;e=e.replace(vi(),\" \");let r=0;for(let t of e){let n=t.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(r+=bi(n)?1:2)}return r}var fr=Gl;var G=Symbol(\"MODE_BREAK\"),ue=Symbol(\"MODE_FLAT\"),Ve=Symbol(\"cursor\"),Et=Symbol(\"DOC_FILL_PRINTED_LENGTH\");function yi(){return{value:\"\",length:0,queue:[]}}function Vl(e,r){return Ct(e,{type:\"indent\"},r)}function jl(e,r,t){return r===Number.NEGATIVE_INFINITY?e.root||yi():r<0?Ct(e,{type:\"dedent\"},t):r?r.type===\"root\"?{...e,root:e}:Ct(e,{type:typeof r==\"string\"?\"stringAlign\":\"numberAlign\",n:r},t):e}function Ct(e,r,t){let n=r.type===\"dedent\"?e.queue.slice(0,-1):[...e.queue,r],a=\"\",u=0,i=0,o=0;for(let D of n)switch(D.type){case\"indent\":c(),t.useTabs?s(1):l(t.tabWidth);break;case\"stringAlign\":c(),a+=D.n,u+=D.n.length;break;case\"numberAlign\":i+=1,o+=D.n;break;default:throw new Error(`Unexpected type '${D.type}'`)}return p(),{...e,value:a,length:u,queue:n};function s(D){a+=\"\t\".repeat(D),u+=t.tabWidth*D}function l(D){a+=\" \".repeat(D),u+=D}function c(){t.useTabs?f():p()}function f(){i>0&&s(i),d()}function p(){o>0&&l(o),d()}function d(){i=0,o=0}}function bt(e){let r=0,t=0,n=e.length;e:for(;n--;){let a=e[n];if(a===Ve){t++;continue}for(let u=a.length-1;u>=0;u--){let i=a[u];if(i===\" \"||i===\"\t\")r++;else{e[n]=a.slice(0,u+1);break e}}}if(r>0||t>0)for(e.length=n+1;t-- >0;)e.push(Ve);return r}function Rr(e,r,t,n,a,u){if(t===Number.POSITIVE_INFINITY)return!0;let i=r.length,o=[e],s=[];for(;t>=0;){if(o.length===0){if(i===0)return!0;o.push(r[--i]);continue}let{mode:l,doc:c}=o.pop(),f=Y(c);switch(f){case $:s.push(c),t-=fr(c);break;case W:case J:{let p=f===W?c:c.parts,d=c[Et]??0;for(let D=p.length-1;D>=d;D--)o.push({mode:l,doc:p[D]});break}case re:case te:case De:case de:o.push({mode:l,doc:c.contents});break;case fe:t+=bt(s);break;case K:{if(u&&c.break)return!1;let p=c.break?G:l,d=c.expandedStates&&p===G?z(!1,c.expandedStates,-1):c.contents;o.push({mode:p,doc:d});break}case X:{let d=(c.groupId?a[c.groupId]||ue:l)===G?c.breakContents:c.flatContents;d&&o.push({mode:l,doc:d});break}case H:if(l===G||c.hard)return!0;c.soft||(s.push(\" \"),t--);break;case pe:n=!0;break;case he:if(n)return!1;break}}return!1}function Ai(e,r){let t={},n=r.printWidth,a=gi(r.endOfLine),u=0,i=[{ind:yi(),mode:G,doc:e}],o=[],s=!1,l=[],c=0;for(Xn(e);i.length>0;){let{ind:p,mode:d,doc:D}=i.pop();switch(Y(D)){case $:{let h=a!==`\n`?N(!1,D,`\n`,a):D;o.push(h),i.length>0&&(u+=fr(h));break}case W:for(let h=D.length-1;h>=0;h--)i.push({ind:p,mode:d,doc:D[h]});break;case Ce:if(c>=2)throw new Error(\"There are too many 'cursor' in doc.\");o.push(Ve),c++;break;case re:i.push({ind:Vl(p,r),mode:d,doc:D.contents});break;case te:i.push({ind:jl(p,D.n,r),mode:d,doc:D.contents});break;case fe:u-=bt(o);break;case K:switch(d){case ue:if(!s){i.push({ind:p,mode:D.break?G:ue,doc:D.contents});break}case G:{s=!1;let h={ind:p,mode:ue,doc:D.contents},m=n-u,F=l.length>0;if(!D.break&&Rr(h,i,m,F,t))i.push(h);else if(D.expandedStates){let y=z(!1,D.expandedStates,-1);if(D.break){i.push({ind:p,mode:G,doc:y});break}else for(let E=1;E=D.expandedStates.length){i.push({ind:p,mode:G,doc:y});break}else{let B=D.expandedStates[E],b={ind:p,mode:ue,doc:B};if(Rr(b,i,m,F,t)){i.push(b);break}}}else i.push({ind:p,mode:G,doc:D.contents});break}}D.id&&(t[D.id]=z(!1,i,-1).mode);break;case J:{let h=n-u,m=D[Et]??0,{parts:F}=D,y=F.length-m;if(y===0)break;let E=F[m+0],B=F[m+1],b={ind:p,mode:ue,doc:E},g={ind:p,mode:G,doc:E},A=Rr(b,[],h,l.length>0,t,!0);if(y===1){A?i.push(b):i.push(g);break}let x={ind:p,mode:ue,doc:B},v={ind:p,mode:G,doc:B};if(y===2){A?i.push(x,b):i.push(v,g);break}let w=F[m+2],k={ind:p,mode:d,doc:{...D,[Et]:m+2}};Rr({ind:p,mode:ue,doc:[E,B,w]},[],h,l.length>0,t,!0)?i.push(k,x,b):A?i.push(k,v,b):i.push(k,v,g);break}case X:case De:{let h=D.groupId?t[D.groupId]:d;if(h===G){let m=D.type===X?D.breakContents:D.negate?D.contents:tr(D.contents);m&&i.push({ind:p,mode:d,doc:m})}if(h===ue){let m=D.type===X?D.flatContents:D.negate?tr(D.contents):D.contents;m&&i.push({ind:p,mode:d,doc:m})}break}case pe:l.push({ind:p,mode:d,doc:D.contents});break;case he:l.length>0&&i.push({ind:p,mode:d,doc:ir});break;case H:switch(d){case ue:if(D.hard)s=!0;else{D.soft||(o.push(\" \"),u+=1);break}case G:if(l.length>0){i.push({ind:p,mode:d,doc:D},...l.reverse()),l.length=0;break}D.literal?p.root?(o.push(a,p.root.value),u=p.root.length):(o.push(a),u=0):(u-=bt(o),o.push(a+p.value),u=p.length);break}break;case de:i.push({ind:p,mode:d,doc:D.contents});break;case ne:break;default:throw new Te(D)}i.length===0&&l.length>0&&(i.push(...l.reverse()),l.length=0)}let f=o.indexOf(Ve);if(f!==-1){let p=o.indexOf(Ve,f+1);if(p===-1)return{formatted:o.filter(m=>m!==Ve).join(\"\")};let d=o.slice(0,f).join(\"\"),D=o.slice(f+1,p).join(\"\"),h=o.slice(p+1).join(\"\");return{formatted:d+D+h,cursorNodeStart:d.length,cursorNodeText:D}}return{formatted:o.join(\"\")}}function xi(e,r,t){let{node:n}=e,a=[],u=e.map(()=>e.map(({index:f})=>{let p=Ai(t(),r).formatted,d=fr(p);return a[f]=Math.max(a[f]??3,d),{text:p,width:d}},\"children\"),\"children\"),i=s(!1);if(r.proseWrap!==\"never\")return[nr,i];let o=s(!0);return[nr,Me(Kn(o,i))];function s(f){return Sr(ir,[c(u[0],f),l(f),...u.slice(1).map(p=>c(p,f))].map(p=>`| ${p.join(\" | \")} |`))}function l(f){return a.map((p,d)=>{let D=n.align[d],h=D===\"center\"||D===\"left\"?\":\":\"-\",m=D===\"center\"||D===\"right\"?\":\":\"-\",F=f?\"-\":\"-\".repeat(p-2);return`${h}${F}${m}`})}function c(f,p){return f.map(({text:d,width:D},h)=>{if(p)return d;let m=a[h]-D,F=n.align[h],y=0;F===\"right\"?y=m:F===\"center\"&&(y=Math.floor(m/2));let E=m-y;return`${\" \".repeat(y)}${d}${\" \".repeat(E)}`})}}function wi(e,r,t){let n=e.map(t,\"children\");return $l(n)}function $l(e){let r=[\"\"];return function t(n){for(let a of n){let u=Y(a);if(u===W){t(a);continue}let i=a,o=[];u===J&&([i,...o]=a.parts),r.push([r.pop(),i],...o)}}(e),ze(r)}var Q,yt=class{constructor(r){Gn(this,Q);Vn(this,Q,new Set(r))}getLeadingWhitespaceCount(r){let t=ce(this,Q),n=0;for(let a=0;a=0&&t.has(r.charAt(a));a--)n++;return n}getLeadingWhitespace(r){let t=this.getLeadingWhitespaceCount(r);return r.slice(0,t)}getTrailingWhitespace(r){let t=this.getTrailingWhitespaceCount(r);return r.slice(r.length-t)}hasLeadingWhitespace(r){return ce(this,Q).has(r.charAt(0))}hasTrailingWhitespace(r){return ce(this,Q).has(z(!1,r,-1))}trimStart(r){let t=this.getLeadingWhitespaceCount(r);return r.slice(t)}trimEnd(r){let t=this.getTrailingWhitespaceCount(r);return r.slice(0,r.length-t)}trim(r){return this.trimEnd(this.trimStart(r))}split(r,t=!1){let n=`[${le([...ce(this,Q)].join(\"\"))}]+`,a=new RegExp(t?`(${n})`:n,\"u\");return r.split(a)}hasWhitespaceCharacter(r){let t=ce(this,Q);return Array.prototype.some.call(r,n=>t.has(n))}hasNonWhitespaceCharacter(r){let t=ce(this,Q);return Array.prototype.some.call(r,n=>!t.has(n))}isWhitespaceOnly(r){let t=ce(this,Q);return Array.prototype.every.call(r,n=>t.has(n))}};Q=new WeakMap;var ki=yt;var Wl=[\"\t\",`\n`,\"\\f\",\"\\r\",\" \"],Hl=new ki(Wl),At=Hl;var Kl=/^.$/su;function Jl(e,r){return e=Xl(e,r),e=Zl(e),e=rf(e,r),e=tf(e,r),e=ef(e),e}function Xl(e,r){return Ae(e,t=>t.type!==\"text\"||t.value===\"*\"||t.value===\"_\"||!Kl.test(t.value)||t.position.end.offset-t.position.start.offset===t.value.length?t:{...t,value:r.originalText.slice(t.position.start.offset,t.position.end.offset)})}function Ql(e,r,t){return Ae(e,n=>{if(!n.children)return n;let a=n.children.reduce((u,i)=>{let o=z(!1,u,-1);return o&&r(o,i)?u.splice(-1,1,t(o,i)):u.push(i),u},[]);return{...n,children:a}})}function Zl(e){return Ql(e,(r,t)=>r.type===\"text\"&&t.type===\"text\",(r,t)=>({type:\"text\",value:r.value+t.value,position:{start:r.position.start,end:t.position.end}}))}function ef(e){return Ae(e,(r,t,[n])=>{if(r.type!==\"text\")return r;let{value:a}=r;return n.type===\"paragraph\"&&(t===0&&(a=At.trimStart(a)),t===n.children.length-1&&(a=At.trimEnd(a))),{type:\"sentence\",position:r.position,children:Ir(a)}})}function rf(e,r){return Ae(e,(t,n,a)=>{if(t.type===\"code\"){let u=/^\\n?(?: {4,}|\\t)/u.test(r.originalText.slice(t.position.start.offset,t.position.end.offset));if(t.isIndented=u,u)for(let i=0;i{if(a.type===\"list\"&&a.children.length>0){for(let o=0;o1)return!0;let s=t(u);if(s===-1)return!1;if(a.children.length===1)return s%r.tabWidth===0;let l=t(i);return s!==l?!1:s%r.tabWidth===0?!0:Ye(i,r).leadingSpaces.length>1}}var Bi=Jl;function Ti(e,r){let t=[\"\"];return e.each(()=>{let{node:n}=e,a=r();switch(n.type){case\"whitespace\":if(Y(a)!==$){t.push(a,\"\");break}default:t.push([t.pop(),a])}},\"children\"),ze(t)}var nf=new Set([\"heading\",\"tableCell\",\"link\",\"wikiLink\"]),qi=new Set(\"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~\");function uf({parent:e}){if(e.usesCJSpaces===void 0){let r={\" \":0,\"\":0},{children:t}=e;for(let n=1;nr[\"\"]}return e.usesCJSpaces}function af(e,r){if(r)return!0;let{previous:t,next:n}=e;if(!t||!n)return!0;let a=t.kind,u=n.kind;return _i(a)&&_i(u)||a===Pe&&u===ie||u===Pe&&a===ie?!0:a===sr||u===sr||a===ie&&u===ie?!1:qi.has(n.value[0])||qi.has(z(!1,t.value,-1))?!0:t.hasTrailingPunctuation||n.hasLeadingPunctuation?!1:uf(e)}function _i(e){return e===Ge||e===Pe}function of(e,r,t,n){if(t!==\"always\"||e.hasAncestor(i=>nf.has(i.type)))return!1;if(n)return r!==\"\";let{previous:a,next:u}=e;return!a||!u?!0:r===\"\"?!1:a.kind===Pe&&u.kind===ie||u.kind===Pe&&a.kind===ie?!0:!(a.isCJ||u.isCJ)}function xt(e,r,t,n){if(t===\"preserve\"&&r===`\n`)return P;let a=r===\" \"||r===`\n`&&af(e,n);return of(e,r,t,n)?a?qr:_r:a?\" \":\"\"}var sf=new Set([\"listItem\",\"definition\"]);function cf(e,r,t){var a,u;let{node:n}=e;if(df(e)){let i=[\"\"],o=Ir(r.originalText.slice(n.position.start.offset,n.position.end.offset));for(let s of o){if(s.type===\"word\"){i.push([i.pop(),s.value]);continue}let l=xt(e,s.value,r.proseWrap,!0);if(Y(l)===$){i.push([i.pop(),l]);continue}i.push(l,\"\")}return ze(i)}switch(n.type){case\"front-matter\":return r.originalText.slice(n.position.start.offset,n.position.end.offset);case\"root\":return n.children.length===0?\"\":[Df(e,r,t),P];case\"paragraph\":return wi(e,r,t);case\"sentence\":return Ti(e,t);case\"word\":{let i=N(!1,N(!1,n.value,\"*\",String.raw`\\*`),new RegExp([`(^|${Se.source})(_+)`,`(_+)(${Se.source}|$)`].join(\"|\"),\"gu\"),(l,c,f,p,d)=>N(!1,f?`${c}${f}`:`${p}${d}`,\"_\",String.raw`\\_`)),o=(l,c,f)=>l.type===\"sentence\"&&f===0,s=(l,c,f)=>gt(l.children[f-1]);return i!==n.value&&(e.match(void 0,o,s)||e.match(void 0,o,(l,c,f)=>l.type===\"emphasis\"&&f===0,s))&&(i=i.replace(/^(\\\\?[*_])+/u,l=>N(!1,l,\"\\\\\",\"\"))),i}case\"whitespace\":{let{next:i}=e,o=i&&/^>|^(?:[*+-]|#{1,6}|\\d+[).])$/u.test(i.value)?\"never\":r.proseWrap;return xt(e,n.value,o)}case\"emphasis\":{let i;if(gt(n.children[0]))i=r.originalText[n.position.start.offset];else{let{previous:o,next:s}=e;i=(o==null?void 0:o.type)===\"sentence\"&&((a=z(!1,o.children,-1))==null?void 0:a.type)===\"word\"&&!z(!1,o.children,-1).hasTrailingPunctuation||(s==null?void 0:s.type)===\"sentence\"&&((u=s.children[0])==null?void 0:u.type)===\"word\"&&!s.children[0].hasLeadingPunctuation||e.hasAncestor(c=>c.type===\"emphasis\")?\"*\":\"_\"}return[i,V(e,r,t),i]}case\"strong\":return[\"**\",V(e,r,t),\"**\"];case\"delete\":return[\"~~\",V(e,r,t),\"~~\"];case\"inlineCode\":{let i=r.proseWrap===\"preserve\"?n.value:N(!1,n.value,`\n`,\" \"),o=Qn(i,\"`\"),s=\"`\".repeat(o||1),l=i.startsWith(\"`\")||i.endsWith(\"`\")||/^[\\n ]/u.test(i)&&/[\\n ]$/u.test(i)&&/[^\\n ]/u.test(i)?\" \":\"\";return[s,l,i,l,s]}case\"wikiLink\":{let i=\"\";return r.proseWrap===\"preserve\"?i=n.value:i=N(!1,n.value,/[\\t\\n]+/gu,\" \"),[\"[[\",i,\"]]\"]}case\"link\":switch(r.originalText[n.position.start.offset]){case\"<\":{let i=\"mailto:\";return[\"<\",n.url.startsWith(i)&&r.originalText.slice(n.position.start.offset+1,n.position.start.offset+1+i.length)!==i?n.url.slice(i.length):n.url,\">\"]}case\"[\":return[\"[\",V(e,r,t),\"](\",wt(n.url,\")\"),Ur(n.title,r),\")\"];default:return r.originalText.slice(n.position.start.offset,n.position.end.offset)}case\"image\":return[\"![\",n.alt||\"\",\"](\",wt(n.url,\")\"),Ur(n.title,r),\")\"];case\"blockquote\":return[\"> \",be(\"> \",V(e,r,t))];case\"heading\":return[\"#\".repeat(n.depth)+\" \",V(e,r,t)];case\"code\":{if(n.isIndented){let s=\" \".repeat(4);return be(s,[s,ye(n.value,P)])}let i=r.__inJsTemplate?\"~\":\"`\",o=i.repeat(Math.max(3,Or(n.value,i)+1));return[o,n.lang||\"\",n.meta?\" \"+n.meta:\"\",P,ye(Nr(n,r.originalText),P),P,o]}case\"html\":{let{parent:i,isLast:o}=e,s=i.type===\"root\"&&o?n.value.trimEnd():n.value,l=/^$/su.test(s);return ye(s,l?P:_e(ur))}case\"list\":{let i=Oi(n,e.parent),o=pi(n,r);return V(e,r,t,{processor(s){let l=f(),c=s.node;if(c.children.length===2&&c.children[1].type===\"html\"&&c.children[0].position.start.column!==c.children[1].position.start.column)return[l,Si(s,r,t,l)];return[l,be(\" \".repeat(l.length),Si(s,r,t,l))];function f(){let p=n.ordered?(s.isFirst?n.start:o?1:n.start+s.index)+(i%2===0?\". \":\") \"):i%2===0?\"- \":\"* \";return(n.isAligned||n.hasIndentedCodeblock)&&n.ordered?lf(p,r):p}}})}case\"thematicBreak\":{let{ancestors:i}=e,o=i.findIndex(l=>l.type===\"list\");return o===-1?\"---\":Oi(i[o],i[o+1])%2===0?\"***\":\"---\"}case\"linkReference\":return[\"[\",V(e,r,t),\"]\",n.referenceType===\"full\"?kt(n):n.referenceType===\"collapsed\"?\"[]\":\"\"];case\"imageReference\":switch(n.referenceType){case\"full\":return[\"![\",n.alt||\"\",\"]\",kt(n)];default:return[\"![\",n.alt,\"]\",n.referenceType===\"collapsed\"?\"[]\":\"\"]}case\"definition\":{let i=r.proseWrap===\"always\"?qr:\" \";return Me([kt(n),\":\",tr([i,wt(n.url),n.title===null?\"\":[i,Ur(n.title,r,!1)]])])}case\"footnote\":return[\"[^\",V(e,r,t),\"]\"];case\"footnoteReference\":return Ni(n);case\"footnoteDefinition\":{let i=n.children.length===1&&n.children[0].type===\"paragraph\"&&(r.proseWrap===\"never\"||r.proseWrap===\"preserve\"&&n.children[0].position.start.line===n.children[0].position.end.line);return[Ni(n),\": \",i?V(e,r,t):Me([be(\" \".repeat(4),V(e,r,t,{processor:({isFirst:o})=>o?Me([_r,t()]):t()}))])]}case\"table\":return xi(e,r,t);case\"tableCell\":return V(e,r,t);case\"break\":return/\\s/u.test(r.originalText[n.position.start.offset])?[\" \",_e(ur)]:[\"\\\\\",P];case\"liquidNode\":return ye(n.value,P);case\"import\":case\"export\":case\"jsx\":return n.value;case\"esComment\":return[\"{/* \",n.value,\" */}\"];case\"math\":return[\"$$\",P,n.value?[ye(n.value,P),P]:\"\",\"$$\"];case\"inlineMath\":return r.originalText.slice(Oe(n),Le(n));case\"tableRow\":case\"listItem\":case\"text\":default:throw new ri(n,\"Markdown\")}}function Si(e,r,t,n){let{node:a}=e,u=a.checked===null?\"\":a.checked?\"[x] \":\"[ ] \";return[u,V(e,r,t,{processor({node:i,isFirst:o}){if(o&&i.type!==\"list\")return be(\" \".repeat(u.length),t());let s=\" \".repeat(Ff(r.tabWidth-n.length,0,3));return[s,be(s,t())]}})]}function lf(e,r){let t=n();return e+\" \".repeat(t>=4?0:t);function n(){let a=e.length%r.tabWidth;return a===0?0:r.tabWidth-a}}function Oi(e,r){return ff(e,r,t=>t.ordered===e.ordered)}function ff(e,r,t){let n=-1;for(let a of r.children)if(a.type===e.type&&t(a)?n++:n=-1,a===e)return n}function Df(e,r,t){let n=[],a=null,{children:u}=e.node;for(let[i,o]of u.entries())switch(Bt(o)){case\"start\":a===null&&(a={index:i,offset:o.position.end.offset});break;case\"end\":a!==null&&(n.push({start:a,end:{index:i,offset:o.position.start.offset}}),a=null);break;default:break}return V(e,r,t,{processor({index:i}){if(n.length>0){let o=n[0];if(i===o.start.index)return[Li(u[o.start.index]),r.originalText.slice(o.start.offset,o.end.offset),Li(u[o.end.index])];if(o.start.index{let i=a(e);i!==!1&&(u.length>0&&pf(e)&&(u.push(P),(hf(e,r)||Ii(e))&&u.push(P),Ii(e)&&u.push(P)),u.push(i))},\"children\"),u}function Li(e){if(e.type===\"html\")return e.value;if(e.type===\"paragraph\"&&Array.isArray(e.children)&&e.children.length===1&&e.children[0].type===\"esComment\")return[\"{/* \",e.children[0].value,\" */}\"]}function Bt(e){let r;if(e.type===\"html\")r=e.value.match(/^$/u);else{let t;e.type===\"esComment\"?t=e:e.type===\"paragraph\"&&e.children.length===1&&e.children[0].type===\"esComment\"&&(t=e.children[0]),t&&(r=t.value.match(/^prettier-ignore(?:-(start|end))?$/u))}return r?r[1]||\"next\":!1}function pf({node:e,parent:r}){let t=Ft.has(e.type),n=e.type===\"html\"&&Pr.has(r.type);return!t&&!n}function Pi(e,r){return e.type===\"listItem\"&&(e.spread||r.originalText.charAt(e.position.end.offset-1)===`\n`)}function hf({node:e,previous:r,parent:t},n){if(Pi(r,n))return!0;let i=r.type===e.type&&sf.has(e.type),o=t.type===\"listItem\"&&!Pi(t,n),s=Bt(r)===\"next\",l=e.type===\"html\"&&r.type===\"html\"&&r.position.end.line+1===e.position.start.line,c=e.type===\"html\"&&t.type===\"listItem\"&&r.type===\"paragraph\"&&r.position.end.line+1===e.position.start.line;return!(i||o||s||l||c)}function Ii({node:e,previous:r}){let t=r.type===\"list\",n=e.type===\"code\"&&e.isIndented;return t&&n}function df(e){let r=e.findAncestor(t=>t.type===\"linkReference\"||t.type===\"imageReference\");return r&&(r.type!==\"linkReference\"||r.referenceType!==\"full\")}var mf=(e,r)=>{for(let t of r)e=N(!1,e,t,encodeURIComponent(t));return e};function wt(e,r=[]){let t=[\" \",...Array.isArray(r)?r:[r]];return new RegExp(t.map(n=>le(n)).join(\"|\"),\"u\").test(e)?`<${mf(e,\"<>\")}>`:e}function Ur(e,r,t=!0){if(!e)return\"\";if(t)return\" \"+Ur(e,r,!1);if(e=N(!1,e,/\\\\(?=[\"')])/gu,\"\"),e.includes('\"')&&e.includes(\"'\")&&!e.includes(\")\"))return`(${e})`;let n=ei(e,r.singleQuote);return e=N(!1,e,\"\\\\\",\"\\\\\\\\\"),e=N(!1,e,n,`\\\\${n}`),`${n}${e}${n}`}function Ff(e,r,t){return Math.max(r,Math.min(e,t))}function gf(e){return e.index>0&&Bt(e.previous)===\"next\"}function kt(e){return`[${(0,Ri.default)(e.label)}]`}function Ni(e){return`[^${e.label}]`}var vf={preprocess:Bi,print:cf,embed:hi,massageAstNode:si,hasPrettierIgnore:gf,insertPragma:ui,getVisitorKeys:Fi},Ui=vf;var Mi=[{linguistLanguageId:222,name:\"Markdown\",type:\"prose\",color:\"#083fa1\",aliases:[\"md\",\"pandoc\"],aceMode:\"markdown\",codemirrorMode:\"gfm\",codemirrorMimeType:\"text/x-gfm\",wrap:!0,extensions:[\".md\",\".livemd\",\".markdown\",\".mdown\",\".mdwn\",\".mkd\",\".mkdn\",\".mkdown\",\".ronn\",\".scd\",\".workbook\"],filenames:[\"contents.lr\",\"README\"],tmScope:\"text.md\",parsers:[\"markdown\"],vscodeLanguageIds:[\"markdown\"]},{linguistLanguageId:222,name:\"MDX\",type:\"prose\",color:\"#083fa1\",aliases:[\"md\",\"pandoc\"],aceMode:\"markdown\",codemirrorMode:\"gfm\",codemirrorMimeType:\"text/x-gfm\",wrap:!0,extensions:[\".mdx\"],filenames:[],tmScope:\"text.md\",parsers:[\"mdx\"],vscodeLanguageIds:[\"mdx\"]}];var Tt={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var Ef={proseWrap:Tt.proseWrap,singleQuote:Tt.singleQuote},zi=Ef;var Rn={};zn(Rn,{markdown:()=>Im,mdx:()=>Nm,remark:()=>Im});var nl=Ue(Gi(),1),il=Ue(nu(),1),ul=Ue(Qs(),1),al=Ue(jc(),1);var Bm=/^import\\s/u,Tm=/^export\\s/u,$c=String.raw`[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)*|`,Wc=/|/u,qm=/^\\{\\s*\\/\\*(.*)\\*\\/\\s*\\}/u,_m=`\n\n`,Hc=e=>Bm.test(e),Nn=e=>Tm.test(e),Kc=(e,r)=>{let t=r.indexOf(_m),n=r.slice(0,t);if(Nn(n)||Hc(n))return e(n)({type:Nn(n)?\"export\":\"import\",value:n})},Jc=(e,r)=>{let t=qm.exec(r);if(t)return e(t[0])({type:\"esComment\",value:t[1].trim()})};Kc.locator=e=>Nn(e)||Hc(e)?-1:1;Jc.locator=(e,r)=>e.indexOf(\"{\",r);var Xc=function(){let{Parser:e}=this,{blockTokenizers:r,blockMethods:t,inlineTokenizers:n,inlineMethods:a}=e.prototype;r.esSyntax=Kc,n.esComment=Jc,t.splice(t.indexOf(\"paragraph\"),0,\"esSyntax\"),a.splice(a.indexOf(\"text\"),0,\"esComment\")};var Sm=function(){let e=this.Parser.prototype;e.blockMethods=[\"frontMatter\",...e.blockMethods],e.blockTokenizers.frontMatter=r;function r(t,n){let a=or(n);if(a.frontMatter)return t(a.frontMatter.raw)(a.frontMatter)}r.onlyAtStart=!0},Qc=Sm;function Om(){return e=>Ae(e,(r,t,[n])=>r.type!==\"html\"||Wc.test(r.value)||Pr.has(n.type)?r:{...r,type:\"jsx\"})}var Zc=Om;var Lm=function(){let e=this.Parser.prototype,r=e.inlineMethods;r.splice(r.indexOf(\"text\"),0,\"liquid\"),e.inlineTokenizers.liquid=t;function t(n,a){let u=a.match(/^(\\{%.*?%\\}|\\{\\{.*?\\}\\})/su);if(u)return n(u[0])({type:\"liquidNode\",value:u[0]})}t.locator=function(n,a){return n.indexOf(\"{\",a)}},el=Lm;var Pm=function(){let e=\"wikiLink\",r=/^\\[\\[(?.+?)\\]\\]/su,t=this.Parser.prototype,n=t.inlineMethods;n.splice(n.indexOf(\"link\"),0,e),t.inlineTokenizers.wikiLink=a;function a(u,i){let o=r.exec(i);if(o){let s=o.groups.linkContents.trim();return u(o[0])({type:e,value:s})}}a.locator=function(u,i){return u.indexOf(\"[\",i)}},rl=Pm;function ol({isMDX:e}){return r=>{let t=(0,al.default)().use(ul.default,{commonmark:!0,...e&&{blocks:[$c]}}).use(nl.default).use(Qc).use(il.default).use(e?Xc:tl).use(el).use(e?Zc:tl).use(rl);return t.run(t.parse(r))}}function tl(){}var sl={astFormat:\"mdast\",hasPragma:ii,locStart:Oe,locEnd:Le},Im={...sl,parse:ol({isMDX:!1})},Nm={...sl,parse:ol({isMDX:!0})};var Rm={mdast:Ui};var kC=Un;export{kC as default,Mi as languages,zi as options,Rn as parsers,Rm as printers};\n", "var Ne=Object.defineProperty;var In=(n,e)=>{for(var u in e)Ne(n,u,{get:e[u],enumerable:!0})};var Bn={};In(Bn,{parsers:()=>wn});var wn={};In(wn,{meriyah:()=>K1});var Ve=(n,e,u,t)=>{if(!(n&&e==null))return e.replaceAll?e.replaceAll(u,t):u.global?e.replace(u,t):e.split(u).join(t)},i2=Ve;var Oe={0:\"Unexpected token\",30:\"Unexpected token: '%0'\",1:\"Octal escape sequences are not allowed in strict mode\",2:\"Octal escape sequences are not allowed in template strings\",3:\"\\\\8 and \\\\9 are not allowed in template strings\",4:\"Private identifier #%0 is not defined\",5:\"Illegal Unicode escape sequence\",6:\"Invalid code point %0\",7:\"Invalid hexadecimal escape sequence\",9:\"Octal literals are not allowed in strict mode\",8:\"Decimal integer literals with a leading zero are forbidden in strict mode\",10:\"Expected number in radix %0\",151:\"Invalid left-hand side assignment to a destructible right-hand side\",11:\"Non-number found after exponent indicator\",12:\"Invalid BigIntLiteral\",13:\"No identifiers allowed directly after numeric literal\",14:\"Escapes \\\\8 or \\\\9 are not syntactically valid escapes\",15:\"Escapes \\\\8 or \\\\9 are not allowed in strict mode\",16:\"Unterminated string literal\",17:\"Unterminated template literal\",18:\"Multiline comment was not closed properly\",19:\"The identifier contained dynamic unicode escape that was not closed\",20:\"Illegal character '%0'\",21:\"Missing hexadecimal digits\",22:\"Invalid implicit octal\",23:\"Invalid line break in string literal\",24:\"Only unicode escapes are legal in identifier names\",25:\"Expected '%0'\",26:\"Invalid left-hand side in assignment\",27:\"Invalid left-hand side in async arrow\",28:'Calls to super must be in the \"constructor\" method of a class expression or class declaration that has a superclass',29:\"Member access on super must be in a method\",31:\"Await expression not allowed in formal parameter\",32:\"Yield expression not allowed in formal parameter\",95:\"Unexpected token: 'escaped keyword'\",33:\"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses\",123:\"Async functions can only be declared at the top level or inside a block\",34:\"Unterminated regular expression\",35:\"Unexpected regular expression flag\",36:\"Duplicate regular expression flag '%0'\",37:\"%0 functions must have exactly %1 argument%2\",38:\"Setter function argument must not be a rest parameter\",39:\"%0 declaration must have a name in this context\",40:\"Function name may not contain any reserved words or be eval or arguments in strict mode\",41:\"The rest operator is missing an argument\",42:\"A getter cannot be a generator\",43:\"A setter cannot be a generator\",44:\"A computed property name must be followed by a colon or paren\",134:\"Object literal keys that are strings or numbers must be a method or have a colon\",46:\"Found `* async x(){}` but this should be `async * x(){}`\",45:\"Getters and setters can not be generators\",47:\"'%0' can not be generator method\",48:\"No line break is allowed after '=>'\",49:\"The left-hand side of the arrow can only be destructed through assignment\",50:\"The binding declaration is not destructible\",51:\"Async arrow can not be followed by new expression\",52:\"Classes may not have a static property named 'prototype'\",53:\"Class constructor may not be a %0\",54:\"Duplicate constructor method in class\",55:\"Invalid increment/decrement operand\",56:\"Invalid use of `new` keyword on an increment/decrement expression\",57:\"`=>` is an invalid assignment target\",58:\"Rest element may not have a trailing comma\",59:\"Missing initializer in %0 declaration\",60:\"'for-%0' loop head declarations can not have an initializer\",61:\"Invalid left-hand side in for-%0 loop: Must have a single binding\",62:\"Invalid shorthand property initializer\",63:\"Property name __proto__ appears more than once in object literal\",64:\"Let is disallowed as a lexically bound name\",65:\"Invalid use of '%0' inside new expression\",66:\"Illegal 'use strict' directive in function with non-simple parameter list\",67:'Identifier \"let\" disallowed as left-hand side expression in strict mode',68:\"Illegal continue statement\",69:\"Illegal break statement\",70:\"Cannot have `let[...]` as a var name in strict mode\",71:\"Invalid destructuring assignment target\",72:\"Rest parameter may not have a default initializer\",73:\"The rest argument must the be last parameter\",74:\"Invalid rest argument\",76:\"In strict mode code, functions can only be declared at top level or inside a block\",77:\"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",78:\"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement\",79:\"Class declaration can't appear in single-statement context\",80:\"Invalid left-hand side in for-%0\",81:\"Invalid assignment in for-%0\",82:\"for await (... of ...) is only valid in async functions and async generators\",83:\"The first token after the template expression should be a continuation of the template\",85:\"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode\",84:\"`let \\n [` is a restricted production at the start of a statement\",86:\"Catch clause requires exactly one parameter, not more (and no trailing comma)\",87:\"Catch clause parameter does not support default values\",88:\"Missing catch or finally after try\",89:\"More than one default clause in switch statement\",90:\"Illegal newline after throw\",91:\"Strict mode code may not include a with statement\",92:\"Illegal return statement\",93:\"The left hand side of the for-header binding declaration is not destructible\",94:\"new.target only allowed within functions or static blocks\",96:\"'#' not followed by identifier\",102:\"Invalid keyword\",101:\"Can not use 'let' as a class name\",100:\"'A lexical declaration can't define a 'let' binding\",99:\"Can not use `let` as variable name in strict mode\",97:\"'%0' may not be used as an identifier in this context\",98:\"Await is only valid in async functions\",103:\"The %0 keyword can only be used with the module goal\",104:\"Unicode codepoint must not be greater than 0x10FFFF\",105:\"%0 source must be string\",106:\"Only a identifier or string can be used to indicate alias\",107:\"Only '*' or '{...}' can be imported after default\",108:\"Trailing decorator may be followed by method\",109:\"Decorators can't be used with a constructor\",110:\"Can not use `await` as identifier in module or async func\",111:\"Can not use `await` as identifier in module\",112:\"HTML comments are only allowed with web compatibility (Annex B)\",113:\"The identifier 'let' must not be in expression position in strict mode\",114:\"Cannot assign to `eval` and `arguments` in strict mode\",115:\"The left-hand side of a for-of loop may not start with 'let'\",116:\"Block body arrows can not be immediately invoked without a group\",117:\"Block body arrows can not be immediately accessed without a group\",118:\"Unexpected strict mode reserved word\",119:\"Unexpected eval or arguments in strict mode\",120:\"Decorators must not be followed by a semicolon\",121:\"Calling delete on expression not allowed in strict mode\",122:\"Pattern can not have a tail\",124:\"Can not have a `yield` expression on the left side of a ternary\",125:\"An arrow function can not have a postfix update operator\",126:\"Invalid object literal key character after generator star\",127:\"Private fields can not be deleted\",129:\"Classes may not have a field called constructor\",128:\"Classes may not have a private element named constructor\",130:\"A class field initializer or static block may not contain arguments\",131:\"Generators can only be declared at the top level or inside a block\",132:\"Async methods are a restricted production and cannot have a newline following it\",133:\"Unexpected character after object literal property name\",135:\"Invalid key token\",136:\"Label '%0' has already been declared\",137:\"continue statement must be nested within an iteration statement\",138:\"Undefined label '%0'\",139:\"Trailing comma is disallowed inside import(...) arguments\",140:\"Invalid binding in JSON import\",141:\"import() requires exactly one argument\",142:\"Cannot use new with import(...)\",143:\"... is not allowed in import()\",144:\"Expected '=>'\",145:\"Duplicate binding '%0'\",146:\"Duplicate private identifier #%0\",147:\"Cannot export a duplicate name '%0'\",150:\"Duplicate %0 for-binding\",148:\"Exported binding '%0' needs to refer to a top-level declared variable\",149:\"Unexpected private field\",153:\"Numeric separators are not allowed at the end of numeric literals\",152:\"Only one underscore is allowed as numeric separator\",154:\"JSX value should be either an expression or a quoted JSX text\",155:\"Expected corresponding JSX closing tag for %0\",156:\"Adjacent JSX elements must be wrapped in an enclosing tag\",157:\"JSX attributes must only be assigned a non-empty 'expression'\",158:\"'%0' has already been declared\",159:\"'%0' shadowed a catch clause binding\",160:\"Dot property must be an identifier\",161:\"Encountered invalid input after spread/rest argument\",162:\"Catch without try\",163:\"Finally without try\",164:\"Expected corresponding closing tag for JSX fragment\",165:\"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses\",166:\"Invalid tagged template on optional chain\",167:\"Invalid optional chain from super property\",168:\"Invalid optional chain from new expression\",169:'Cannot use \"import.meta\" outside a module',170:\"Leading decorators must be attached to a class declaration\",171:\"An export name cannot include a lone surrogate, found %0\",172:\"A string literal cannot be used as an exported binding without `from`\",173:\"Private fields can't be accessed on super\",174:\"The only valid meta property for import is 'import.meta'\",175:\"'import.meta' must not contain escaped characters\",176:'cannot use \"await\" as identifier inside an async function',177:'cannot use \"await\" in static blocks'},m2=class extends SyntaxError{constructor(e,u,t,o,i,l,f,...d){let g=\"[\"+u+\":\"+t+\"-\"+i+\":\"+l+\"]: \"+Oe[f].replace(/%(\\d+)/g,(m,y)=>d[y]);super(`${g}`),this.start=e,this.end=o,this.range=[e,o],this.loc={start:{line:u,column:t},end:{line:i,column:l}},this.description=g}};function c(n,e,...u){throw new m2(n.tokenIndex,n.tokenLine,n.tokenColumn,n.index,n.line,n.column,e,...u)}function z2(n){throw new m2(n.tokenIndex,n.tokenLine,n.tokenColumn,n.index,n.line,n.column,n.type,...n.params)}function $(n,e,u,t,o,i,l,...f){throw new m2(n,e,u,t,o,i,l,...f)}function h2(n,e,u,t,o,i,l){throw new m2(n,e,u,t,o,i,l)}function Re(n){return(On[(n>>>5)+0]>>>n&31&1)!==0}function Vn(n){return(On[(n>>>5)+34816]>>>n&31&1)!==0}var On=((n,e)=>{let u=new Uint32Array(104448),t=0,o=0;for(;t<3822;){let i=n[t++];if(i<0)o-=i;else{let l=n[t++];i&2&&(l=e[l]),i&1?u.fill(l,o,o+=n[t++]):u[o++]=l}}return u})([-1,2,26,2,27,2,5,-1,0,77595648,3,44,2,3,0,14,2,63,2,64,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,41,3,0,4,0,4294966523,3,0,4,2,16,2,65,2,0,0,4294836735,0,3221225471,0,4294901942,2,66,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,18,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,60,2,7,2,6,0,4286611199,3,0,2,2,1,3,0,3,0,4294901711,2,40,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,203,2,3,0,4093640191,0,660618719,0,65487,0,4294828015,0,4092591615,0,1616920031,0,982991,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,71,0,4284449919,0,851904,2,4,2,12,0,67076095,-1,2,72,0,1073741743,0,4093607775,-1,0,50331649,0,3265266687,2,33,0,4294844415,0,4278190047,2,20,2,137,-1,3,0,2,2,23,2,0,2,10,2,0,2,15,2,22,3,0,10,2,74,2,0,2,75,2,76,2,77,2,0,2,78,2,0,2,11,0,261632,2,25,3,0,2,2,13,2,4,3,0,18,2,79,2,5,3,0,2,2,80,0,2151677951,2,29,2,9,0,909311,3,0,2,0,814743551,2,49,0,67090432,3,0,2,2,42,2,0,2,6,2,0,2,30,2,8,0,268374015,2,110,2,51,2,0,2,81,0,134153215,-1,2,7,2,0,2,8,0,2684354559,0,67044351,0,3221160064,2,17,-1,3,0,2,2,53,0,1046528,3,0,3,2,9,2,0,2,54,0,4294960127,2,10,2,6,2,11,0,4294377472,2,12,3,0,16,2,13,2,0,2,82,2,10,2,0,2,83,2,84,2,85,2,210,2,55,0,1048577,2,86,2,14,-1,2,14,0,131042,2,87,2,88,2,89,2,0,2,34,-83,3,0,7,0,1046559,2,0,2,15,2,0,0,2147516671,2,21,3,90,2,2,0,-16,2,91,0,524222462,2,4,2,0,0,4269801471,2,4,3,0,2,2,28,2,16,3,0,2,2,17,2,0,-1,2,18,-16,3,0,206,-2,3,0,692,2,73,-1,2,18,2,10,3,0,8,2,93,2,133,2,0,0,3220242431,3,0,3,2,19,2,94,2,95,3,0,2,2,96,2,0,2,97,2,46,2,0,0,4351,2,0,2,9,3,0,2,0,67043391,0,3909091327,2,0,2,24,2,9,2,20,3,0,2,0,67076097,2,8,2,0,2,21,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,101,2,102,2,22,2,23,3,0,3,0,67057663,3,0,349,2,103,2,104,2,7,-264,3,0,11,2,24,3,0,2,2,32,-1,0,3774349439,2,105,2,106,3,0,2,2,19,2,107,3,0,10,2,10,2,18,2,0,2,47,2,0,2,31,2,108,2,25,0,1638399,2,183,2,109,3,0,3,2,20,2,26,2,27,2,5,2,28,2,0,2,8,2,111,-1,2,112,2,113,2,114,-1,3,0,3,2,12,-2,2,0,2,29,-3,2,163,-4,2,20,2,0,2,36,0,1,2,0,2,67,2,6,2,12,2,10,2,0,2,115,-1,3,0,4,2,10,2,23,2,116,2,7,2,0,2,117,2,0,2,118,2,119,2,120,2,0,2,9,3,0,9,2,21,2,30,2,31,2,121,2,122,-2,2,123,2,124,2,30,2,21,2,8,-2,2,125,2,30,2,32,-2,2,0,2,39,-2,0,4277137519,0,2269118463,-1,3,20,2,-1,2,33,2,38,2,0,3,30,2,2,35,2,19,-3,3,0,2,2,34,-1,2,0,2,35,2,0,2,35,2,0,2,48,2,0,0,4294950463,2,37,-7,2,0,0,203775,2,57,2,167,2,20,2,43,2,36,2,18,2,37,2,18,2,126,2,21,3,0,2,2,38,0,2151677888,2,0,2,12,0,4294901764,2,144,2,0,2,58,2,56,0,5242879,3,0,2,0,402644511,-1,2,128,2,39,0,3,-1,2,129,2,130,2,0,0,67045375,2,40,0,4226678271,0,3766565279,0,2039759,2,132,2,41,0,1046437,0,6,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,42,2,23,2,50,2,11,2,61,2,38,-5,2,0,2,12,-3,3,0,2,0,2147484671,2,134,0,4190109695,2,52,-2,2,135,0,4244635647,0,27,2,0,2,8,2,43,2,0,2,68,2,18,2,0,2,42,-6,2,0,2,45,2,59,2,44,2,45,2,46,2,47,0,8388351,-2,2,136,0,3028287487,2,48,2,138,0,33259519,2,49,-9,2,21,0,4294836223,0,3355443199,0,134152199,-2,2,69,-2,3,0,28,2,32,-3,3,0,3,2,17,3,0,6,2,50,-81,2,18,3,0,2,2,36,3,0,33,2,25,2,30,3,0,124,2,12,3,0,18,2,38,-213,2,0,2,32,-54,3,0,17,2,42,2,8,2,23,2,0,2,8,2,23,2,51,2,0,2,21,2,52,2,139,2,25,-13,2,0,2,53,-6,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,54,3,0,38,2,30,2,55,2,34,-278,2,140,3,0,9,2,141,2,142,2,56,3,0,11,2,7,-72,3,0,3,2,143,0,1677656575,-130,2,26,-16,2,0,2,24,2,38,-16,0,4161266656,0,4071,2,205,-4,2,57,-13,3,0,2,2,58,2,0,2,145,2,146,2,62,2,0,2,147,2,148,2,149,3,0,10,2,150,2,151,2,22,3,58,2,3,152,2,3,59,2,0,4294954999,2,0,-16,2,0,2,92,2,0,0,2105343,0,4160749584,2,177,-34,2,8,2,154,-6,0,4194303871,0,4294903771,2,0,2,60,2,100,-3,2,0,0,1073684479,0,17407,-9,2,18,2,17,2,0,2,32,-14,2,18,2,32,-6,2,18,2,12,-15,2,155,3,0,6,0,8323103,-1,3,0,2,2,61,-37,2,62,2,156,2,157,2,158,2,159,2,160,-105,2,26,-32,3,0,1335,-1,3,0,129,2,32,3,0,6,2,10,3,0,180,2,161,3,0,233,2,162,3,0,18,2,10,-77,3,0,16,2,10,-47,3,0,154,2,6,3,0,130,2,25,-22250,3,0,7,2,25,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,63,2,64,-3,0,3168731136,0,4294956864,2,1,2,0,2,41,3,0,4,0,4294966275,3,0,4,2,16,2,65,2,0,2,34,-1,2,18,2,66,-1,2,0,0,2047,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,25,2,67,3,0,2,0,131135,2,98,0,70256639,0,71303167,0,272,2,42,2,6,0,32511,2,0,2,49,-1,2,99,2,68,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,70,2,69,0,33554435,2,131,2,70,2,164,0,131075,0,3594373096,0,67094296,2,69,-1,0,4294828e3,0,603979263,0,654311424,0,3,0,4294828001,0,602930687,2,171,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,71,2,38,-1,2,4,0,917503,2,38,-1,2,72,0,537788335,0,4026531935,-1,0,1,-1,2,33,2,73,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,15,2,22,3,0,10,2,74,2,0,2,75,2,76,2,77,2,0,2,78,2,0,2,12,-1,2,25,3,0,2,2,13,2,4,3,0,18,2,79,2,5,3,0,2,2,80,0,2147745791,3,19,2,0,122879,2,0,2,9,0,276824064,-2,3,0,2,2,42,2,0,0,4294903295,2,0,2,30,2,8,-1,2,18,2,51,2,0,2,81,2,49,-1,2,21,2,0,2,29,-2,0,128,-2,2,28,2,9,0,8160,-1,2,127,0,4227907585,2,0,2,37,2,0,2,50,2,184,2,10,2,6,2,11,-1,0,74440192,3,0,6,-2,3,0,8,2,13,2,0,2,82,2,10,2,0,2,83,2,84,2,85,-3,2,86,2,14,-3,2,87,2,88,2,89,2,0,2,34,-83,3,0,7,0,817183,2,0,2,15,2,0,0,33023,2,21,3,90,2,-17,2,91,0,524157950,2,4,2,0,2,92,2,4,2,0,2,22,2,28,2,16,3,0,2,2,17,2,0,-1,2,18,-16,3,0,206,-2,3,0,692,2,73,-1,2,18,2,10,3,0,8,2,93,0,3072,2,0,0,2147516415,2,10,3,0,2,2,25,2,94,2,95,3,0,2,2,96,2,0,2,97,2,46,0,4294965179,0,7,2,0,2,9,2,95,2,9,-1,0,1761345536,2,98,0,4294901823,2,38,2,20,2,99,2,35,2,100,0,2080440287,2,0,2,34,2,153,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,101,2,102,2,22,2,23,3,0,3,0,7,3,0,349,2,103,2,104,2,7,-264,3,0,11,2,24,3,0,2,2,32,-1,0,2700607615,2,105,2,106,3,0,2,2,19,2,107,3,0,10,2,10,2,18,2,0,2,47,2,0,2,31,2,108,-3,2,109,3,0,3,2,20,-1,3,5,2,2,110,2,0,2,8,2,111,-1,2,112,2,113,2,114,-1,3,0,3,2,12,-2,2,0,2,29,-8,2,20,2,0,2,36,-1,2,0,2,67,2,6,2,30,2,10,2,0,2,115,-1,3,0,4,2,10,2,18,2,116,2,7,2,0,2,117,2,0,2,118,2,119,2,120,2,0,2,9,3,0,9,2,21,2,30,2,31,2,121,2,122,-2,2,123,2,124,2,30,2,21,2,8,-2,2,125,2,30,2,32,-2,2,0,2,39,-2,0,4277075969,2,30,-1,3,20,2,-1,2,33,2,126,2,0,3,30,2,2,35,2,19,-3,3,0,2,2,34,-1,2,0,2,35,2,0,2,35,2,0,2,50,2,98,0,4294934591,2,37,-7,2,0,0,197631,2,57,-1,2,20,2,43,2,37,2,18,0,3,2,18,2,126,2,21,2,127,2,54,-1,0,2490368,2,127,2,25,2,18,2,34,2,127,2,38,0,4294901904,0,4718591,2,127,2,35,0,335544350,-1,2,128,0,2147487743,0,1,-1,2,129,2,130,2,8,-1,2,131,2,70,0,3758161920,0,3,2,132,0,12582911,0,655360,-1,2,0,2,29,0,2147485568,0,3,2,0,2,25,0,176,-5,2,0,2,17,2,192,-1,2,0,2,25,2,209,-1,2,0,0,16779263,-2,2,12,-1,2,38,-5,2,0,2,133,-3,3,0,2,2,55,2,134,0,2147549183,0,2,-2,2,135,2,36,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,2,18,2,0,2,42,-6,2,0,0,1,2,59,2,17,0,1,2,46,2,25,-3,2,136,2,36,2,137,2,138,0,16778239,-10,2,35,0,4294836212,2,9,-3,2,69,-2,3,0,28,2,32,-3,3,0,3,2,17,3,0,6,2,50,-81,2,18,3,0,2,2,36,3,0,33,2,25,0,126,3,0,124,2,12,3,0,18,2,38,-213,2,10,-55,3,0,17,2,42,2,8,2,18,2,0,2,8,2,18,2,60,2,0,2,25,2,50,2,139,2,25,-13,2,0,2,73,-6,3,0,2,-4,3,0,2,0,67583,-1,2,107,-2,0,11,3,0,191,2,54,3,0,38,2,30,2,55,2,34,-278,2,140,3,0,9,2,141,2,142,2,56,3,0,11,2,7,-72,3,0,3,2,143,2,144,-187,3,0,2,2,58,2,0,2,145,2,146,2,62,2,0,2,147,2,148,2,149,3,0,10,2,150,2,151,2,22,3,58,2,3,152,2,3,59,2,2,153,-57,2,8,2,154,-7,2,18,2,0,2,60,-4,2,0,0,1065361407,0,16384,-9,2,18,2,60,2,0,2,133,-14,2,18,2,133,-6,2,18,0,81919,-15,2,155,3,0,6,2,126,-1,3,0,2,0,2063,-37,2,62,2,156,2,157,2,158,2,159,2,160,-138,3,0,1335,-1,3,0,129,2,32,3,0,6,2,10,3,0,180,2,161,3,0,233,2,162,3,0,18,2,10,-77,3,0,16,2,10,-47,3,0,154,2,6,3,0,130,2,25,-28386,2,0,0,1,-1,2,55,2,0,0,8193,-21,2,201,0,10255,0,4,-11,2,69,2,182,-1,0,71680,-1,2,174,0,4292900864,0,268435519,-5,2,163,-1,2,173,-1,0,6144,-2,2,46,-1,2,168,-1,0,2147532800,2,164,2,170,0,8355840,-2,0,4,-4,2,198,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,165,0,4294886464,0,33292336,0,417809,2,165,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,166,0,201327104,0,3634348576,0,8323120,2,166,0,202375680,0,2678047264,0,4293984304,2,166,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,2,213,2,167,2,0,0,2089,0,3221225552,0,201359520,2,0,-2,0,256,0,122880,0,16777216,2,163,0,4160757760,2,0,-6,2,179,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,168,2,186,2,187,-2,2,175,-20,0,3758096385,-2,2,169,2,195,2,94,2,180,0,4294057984,-2,2,176,2,172,0,4227874816,-2,2,169,-1,2,170,-1,2,181,2,55,0,4026593280,0,14,0,4292919296,-1,2,178,0,939588608,-1,0,805306368,-1,2,55,2,171,2,172,2,173,2,211,2,0,-2,0,8192,-4,0,267386880,-1,0,117440512,0,7168,-1,2,170,2,168,2,174,2,188,-16,2,175,-1,0,1426112704,2,176,-1,2,196,0,271581216,0,2149777408,2,25,2,174,2,55,0,851967,2,189,-1,2,177,2,190,-4,2,178,-20,2,98,2,208,-56,0,3145728,2,191,-10,0,32505856,-1,2,179,-1,0,2147385088,2,94,1,2155905152,2,-3,2,176,2,0,0,67108864,-2,2,180,-6,2,181,2,25,0,1,-1,0,1,-1,2,182,-3,2,126,2,69,-2,2,100,-2,0,32704,2,55,-915,2,183,-1,2,207,-10,2,194,-5,2,185,-6,0,3759456256,2,19,-1,2,184,-1,2,185,-2,0,4227874752,-3,0,2146435072,2,186,-2,0,1006649344,2,55,-1,2,94,0,201375744,-3,0,134217720,2,94,0,4286677377,0,32896,-1,2,178,-3,0,4227907584,-349,0,65520,0,1920,2,167,3,0,264,-11,2,173,-2,2,187,2,0,0,520617856,0,2692743168,0,36,-3,0,524280,-13,2,193,-1,0,4294934272,2,25,2,187,-1,2,215,0,2158720,-3,2,186,0,1,-4,2,55,0,3808625411,0,3489628288,0,4096,0,1207959680,0,3221274624,2,0,-3,2,188,0,120,0,7340032,-2,2,189,2,4,2,25,2,176,3,0,4,2,186,-1,2,190,2,167,-1,0,8176,2,170,2,188,0,1073741824,-1,0,4290773232,2,0,-4,2,176,2,197,0,15728640,2,167,-1,2,174,-1,0,134250480,0,4720640,0,3825467396,-1,2,180,-9,2,94,2,181,0,4294967040,2,137,0,4160880640,3,0,2,0,704,0,1849688064,2,191,-1,2,55,0,4294901887,2,0,0,130547712,0,1879048192,2,212,3,0,2,-1,2,192,2,193,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,200,0,16252928,0,3791388672,2,130,3,0,2,-2,2,206,2,0,-1,2,107,-1,0,66584576,-1,2,199,-1,0,448,0,4294918080,3,0,6,2,55,-1,0,4294755328,0,4294967267,2,7,-1,2,174,2,187,2,25,2,98,2,25,2,194,2,94,-2,0,245760,2,195,-1,2,163,2,202,0,4227923456,-1,2,196,2,174,2,94,-3,0,4292870145,0,262144,-1,2,95,2,0,0,1073758848,2,197,-1,0,4227921920,2,198,0,68289024,0,528402016,0,4292927536,0,46080,2,191,0,4265609306,0,4294967289,-2,0,268435456,2,95,-2,2,199,3,0,5,-1,2,200,2,176,2,0,-2,0,4227923936,2,67,-1,2,187,2,197,2,99,2,168,2,178,2,204,3,0,5,-1,2,167,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,201,2,28,-2,2,174,-2,2,202,-1,2,169,2,98,3,0,5,-1,0,4227923964,0,512,0,8388608,2,203,2,183,2,193,0,4286578944,3,0,2,0,1152,0,1266679808,2,199,0,576,0,4261707776,2,98,3,0,9,2,169,0,131072,0,939524096,2,188,3,0,2,2,16,-1,0,2147221504,-28,2,187,3,0,3,-3,0,4292902912,-6,2,99,3,0,81,2,25,-2,2,107,-33,2,18,2,181,-124,2,188,-18,2,204,3,0,213,-1,2,187,3,0,54,-17,2,169,2,55,2,205,-1,2,55,2,197,0,4290822144,-2,0,67174336,0,520093700,2,18,3,0,13,-1,2,187,3,0,6,-2,2,188,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,185,-38,2,181,2,8,2,206,3,0,278,0,2417033215,-9,0,4294705144,0,4292411391,0,65295,-11,2,167,3,0,72,-3,0,3758159872,0,201391616,3,0,123,-7,2,187,-13,2,180,3,0,2,-1,2,173,2,207,-3,2,99,2,0,-7,2,181,-1,0,384,-1,0,133693440,-3,2,208,-2,2,110,3,0,3,3,180,2,-2,2,94,2,169,3,0,4,-2,2,196,-1,2,163,0,335552923,2,209,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,2,210,-21,0,134213632,2,162,3,0,34,2,55,0,4294965279,3,0,6,0,100663424,0,63524,-1,2,214,2,152,3,0,3,-1,0,3221282816,0,4294917120,3,0,9,2,25,2,211,-1,2,212,3,0,14,2,25,2,187,3,0,6,2,25,2,213,3,0,15,0,2147520640,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,36,-1,0,4292870144,3,0,2,0,1,2,176,3,0,6,2,209,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,47,3,0,8,-1,2,178,-2,2,180,0,98304,0,65537,2,181,-5,2,214,2,0,2,37,2,202,2,167,0,4294770176,2,110,3,0,4,-30,2,192,0,3758153728,-3,0,125829120,-2,2,187,0,4294897664,2,178,-1,2,199,-1,2,174,0,4026580992,2,95,2,0,-10,2,180,0,3758145536,0,31744,-1,0,1610628992,0,4261477376,-4,2,215,-2,2,187,3,0,32,-1335,2,0,-129,2,187,-6,2,176,-180,0,65532,-233,2,177,-18,2,176,3,0,77,-16,2,176,3,0,47,-154,2,170,-130,2,18,3,0,22250,-7,2,18,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,4294903807,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4294901759,32767,4294901760,262143,536870911,8388607,4160749567,4294902783,4294918143,65535,67043328,2281701374,4294967264,2097151,4194303,255,67108863,4294967039,511,524287,131071,63,127,3238002687,4294549487,4290772991,33554431,4294901888,4286578687,67043329,4294705152,4294770687,67043583,1023,15,2047999,67043343,67051519,16777215,2147483648,4294902e3,28,4292870143,4294966783,16383,67047423,4294967279,262083,20511,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,535511039,4294966272,4294967280,32768,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,4294967232,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4160684047,4290246655,469499899,4294967231,134086655,4294966591,2445279231,3670015,31,4294967288,4294705151,3221208447,4294902271,4294549472,4294921215,4095,4285526655,4294966527,4294966143,64,4294966719,3774873592,1877934080,262151,2555904,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4294934527,4087,2016,2147446655,184024726,2862017156,1593309078,268434431,268434414,4294901763,4294901761,536870912,2952790016,202506752,139264,4026531840,402653184,4261412864,63488,1610612736,4227922944,49152,65280,3233808384,3221225472,65534,61440,57152,4293918720,4290772992,25165824,57344,4227915776,4278190080,3758096384,4227858432,4160749568,3758129152,4294836224,4194304,251658240,196608,4294963200,2143289344,2097152,64512,417808,4227923712,12582912,50331648,65528,65472,4294967168,15360,4294966784,65408,4294965248,16,12288,4294934528,2080374784,2013265920,4294950912,524288]);function A(n){return n.column++,n.currentChar=n.source.charCodeAt(++n.index)}function un(n){let e=n.currentChar;if((e&64512)!==55296)return 0;let u=n.source.charCodeAt(n.index+1);return(u&64512)!==56320?0:65536+((e&1023)<<10)+(u&1023)}function tn(n,e){n.currentChar=n.source.charCodeAt(++n.index),n.flags|=1,e&4||(n.column=0,n.line++)}function k2(n){n.flags|=1,n.currentChar=n.source.charCodeAt(++n.index),n.column=0,n.line++}function Ue(n){return n===160||n===65279||n===133||n===5760||n>=8192&&n<=8203||n===8239||n===8287||n===12288||n===8201||n===65519}function W(n){return n<65?n-48:n-65+10&15}function Me(n){switch(n){case 134283266:return\"NumericLiteral\";case 134283267:return\"StringLiteral\";case 86021:case 86022:return\"BooleanLiteral\";case 86023:return\"NullLiteral\";case 65540:return\"RegularExpression\";case 67174408:case 67174409:case 131:return\"TemplateLiteral\";default:return(n&143360)===143360?\"Identifier\":(n&4096)===4096?\"Keyword\":\"Punctuator\"}}var N=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],Je=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],Rn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function M2(n){return n<=127?Je[n]>0:Vn(n)}function V2(n){return n<=127?Rn[n]>0:Re(n)||n===8204||n===8205}var Un=[\"SingleLine\",\"MultiLine\",\"HTMLOpen\",\"HTMLClose\",\"HashbangComment\"];function je(n){let{source:e}=n;n.currentChar===35&&e.charCodeAt(n.index+1)===33&&(A(n),A(n),on(n,e,0,4,n.tokenIndex,n.tokenLine,n.tokenColumn))}function Ln(n,e,u,t,o,i,l,f){return t&512&&c(n,0),on(n,e,u,o,i,l,f)}function on(n,e,u,t,o,i,l){let{index:f}=n;for(n.tokenIndex=n.index,n.tokenLine=n.line,n.tokenColumn=n.column;n.index=n.source.length)return c(n,34)}let o=n.index-1,i=X.Empty,l=n.currentChar,{index:f}=n;for(;V2(l);){switch(l){case 103:i&X.Global&&c(n,36,\"g\"),i|=X.Global;break;case 105:i&X.IgnoreCase&&c(n,36,\"i\"),i|=X.IgnoreCase;break;case 109:i&X.Multiline&&c(n,36,\"m\"),i|=X.Multiline;break;case 117:i&X.Unicode&&c(n,36,\"u\"),i&X.UnicodeSets&&c(n,36,\"vu\"),i|=X.Unicode;break;case 118:i&X.Unicode&&c(n,36,\"uv\"),i&X.UnicodeSets&&c(n,36,\"v\"),i|=X.UnicodeSets;break;case 121:i&X.Sticky&&c(n,36,\"y\"),i|=X.Sticky;break;case 115:i&X.DotAll&&c(n,36,\"s\"),i|=X.DotAll;break;case 100:i&X.Indices&&c(n,36,\"d\"),i|=X.Indices;break;default:c(n,35)}l=A(n)}let d=n.source.slice(f,n.index),g=n.source.slice(u,o);return n.tokenRegExp={pattern:g,flags:d},e&128&&(n.tokenRaw=n.source.slice(n.tokenIndex,n.index)),n.tokenValue=ze(n,g,d),65540}function ze(n,e,u){try{return new RegExp(e,u)}catch{try{return new RegExp(e,u),null}catch{c(n,34)}}}function Ke(n,e,u){let{index:t}=n,o=\"\",i=A(n),l=n.index;for(;!(N[i]&8);){if(i===u)return o+=n.source.slice(l,n.index),A(n),e&128&&(n.tokenRaw=n.source.slice(t,n.index)),n.tokenValue=o,134283267;if((i&8)===8&&i===92){if(o+=n.source.slice(l,n.index),i=A(n),i<127||i===8232||i===8233){let f=Mn(n,e,i);f>=0?o+=String.fromCodePoint(f):Jn(n,f,0)}else o+=String.fromCodePoint(i);l=n.index+1}n.index>=n.end&&c(n,16),i=A(n)}c(n,16)}function Mn(n,e,u,t=0){switch(u){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(n.index1114111)return-5;return n.currentChar<1||n.currentChar!==125?-4:i}else{if(!(N[o]&64))return-4;let i=n.source.charCodeAt(n.index+1);if(!(N[i]&64))return-4;let l=n.source.charCodeAt(n.index+2);if(!(N[l]&64))return-4;let f=n.source.charCodeAt(n.index+3);return N[f]&64?(n.index+=3,n.column+=3,n.currentChar=n.source.charCodeAt(n.index),W(o)<<12|W(i)<<8|W(l)<<4|W(f)):-4}}case 56:case 57:if(t||!(e&64)||e&256)return-3;n.flags|=4096;default:return u}}function Jn(n,e,u){switch(e){case-1:return;case-2:c(n,u?2:1);case-3:c(n,u?3:14);case-4:c(n,7);case-5:c(n,104)}}function jn(n,e){let{index:u}=n,t=67174409,o=\"\",i=A(n);for(;i!==96;){if(i===36&&n.source.charCodeAt(n.index+1)===123){A(n),t=67174408;break}else if(i===92)if(i=A(n),i>126)o+=String.fromCodePoint(i);else{let{index:l,line:f,column:d}=n,g=Mn(n,e|256,i,1);if(g>=0)o+=String.fromCodePoint(g);else if(g!==-1&&e&16384){n.index=l,n.line=f,n.column=d,o=null,i=$e(n,i),i<0&&(t=67174408);break}else Jn(n,g,1)}else n.index=n.end&&c(n,17),i=A(n)}return A(n),n.tokenValue=o,n.tokenRaw=n.source.slice(u+1,n.index-(t===67174409?1:2)),t}function $e(n,e){for(;e!==96;){switch(e){case 36:{let u=n.index+1;if(u=n.end&&c(n,17),e=A(n)}return e}function We(n,e){return n.index>=n.end&&c(n,0),n.index--,n.column--,jn(n,e)}function Fn(n,e,u){let t=n.currentChar,o=0,i=9,l=u&64?0:1,f=0,d=0;if(u&64)o=\".\"+v2(n,t),t=n.currentChar,t===110&&c(n,12);else{if(t===48)if(t=A(n),(t|32)===120){for(u=136,t=A(n);N[t]&4160;){if(t===95){d||c(n,152),d=0,t=A(n);continue}d=1,o=o*16+W(t),f++,t=A(n)}(f===0||!d)&&c(n,f===0?21:153)}else if((t|32)===111){for(u=132,t=A(n);N[t]&4128;){if(t===95){d||c(n,152),d=0,t=A(n);continue}d=1,o=o*8+(t-48),f++,t=A(n)}(f===0||!d)&&c(n,f===0?0:153)}else if((t|32)===98){for(u=130,t=A(n);N[t]&4224;){if(t===95){d||c(n,152),d=0,t=A(n);continue}d=1,o=o*2+(t-48),f++,t=A(n)}(f===0||!d)&&c(n,f===0?0:153)}else if(N[t]&32)for(e&256&&c(n,1),u=1;N[t]&16;){if(N[t]&512){u=32,l=0;break}o=o*8+(t-48),t=A(n)}else N[t]&512?(e&256&&c(n,1),n.flags|=64,u=32):t===95&&c(n,0);if(u&48){if(l){for(;i>=0&&N[t]&4112;){if(t===95){t=A(n),(t===95||u&32)&&h2(n.index,n.line,n.column,n.index+1,n.line,n.column,152),d=1;continue}d=0,o=10*o+(t-48),t=A(n),--i}if(d&&h2(n.index,n.line,n.column,n.index+1,n.line,n.column,153),i>=0&&!M2(t)&&t!==46)return n.tokenValue=o,e&128&&(n.tokenRaw=n.source.slice(n.tokenIndex,n.index)),134283266}o+=v2(n,t),t=n.currentChar,t===46&&(A(n)===95&&c(n,0),u=64,o+=\".\"+v2(n,n.currentChar),t=n.currentChar)}}let g=n.index,m=0;if(t===110&&u&128)m=1,t=A(n);else if((t|32)===101){t=A(n),N[t]&256&&(t=A(n));let{index:y}=n;N[t]&16||c(n,11),o+=n.source.substring(g,y)+v2(n,t),t=n.currentChar}return(n.index\",\"(\",\"{\",\".\",\"...\",\"}\",\")\",\";\",\",\",\"[\",\"]\",\":\",\"?\",\"'\",'\"',\"++\",\"--\",\"=\",\"<<=\",\">>=\",\">>>=\",\"**=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"^=\",\"|=\",\"&=\",\"||=\",\"&&=\",\"??=\",\"typeof\",\"delete\",\"void\",\"!\",\"~\",\"+\",\"-\",\"in\",\"instanceof\",\"*\",\"%\",\"/\",\"**\",\"&&\",\"||\",\"===\",\"!==\",\"==\",\"!=\",\"<=\",\">=\",\"<\",\">\",\"<<\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"var\",\"let\",\"const\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"export\",\"extends\",\"finally\",\"for\",\"function\",\"if\",\"import\",\"new\",\"return\",\"super\",\"switch\",\"this\",\"throw\",\"try\",\"while\",\"with\",\"implements\",\"interface\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\",\"as\",\"async\",\"await\",\"constructor\",\"get\",\"set\",\"accessor\",\"from\",\"of\",\"enum\",\"eval\",\"arguments\",\"escaped keyword\",\"escaped future reserved keyword\",\"reserved if strict\",\"#\",\"BigIntLiteral\",\"??\",\"?.\",\"WhiteSpace\",\"Illegal\",\"LineTerminator\",\"PrivateField\",\"Template\",\"@\",\"target\",\"meta\",\"LineFeed\",\"Escaped\",\"JSXText\"],Xn=Object.create(null,{this:{value:86111},function:{value:86104},if:{value:20569},return:{value:20572},var:{value:86088},else:{value:20563},for:{value:20567},new:{value:86107},in:{value:8673330},typeof:{value:16863275},while:{value:20578},case:{value:20556},break:{value:20555},try:{value:20577},catch:{value:20557},delete:{value:16863276},throw:{value:86112},switch:{value:86110},continue:{value:20559},default:{value:20561},instanceof:{value:8411187},do:{value:20562},void:{value:16863277},finally:{value:20566},async:{value:209005},await:{value:209006},class:{value:86094},const:{value:86090},constructor:{value:12399},debugger:{value:20560},export:{value:20564},extends:{value:20565},false:{value:86021},from:{value:12403},get:{value:12400},implements:{value:36964},import:{value:86106},interface:{value:36965},let:{value:241737},null:{value:86023},of:{value:274548},package:{value:36966},private:{value:36967},protected:{value:36968},public:{value:36969},set:{value:12401},static:{value:36970},super:{value:86109},true:{value:86022},with:{value:20579},yield:{value:241771},enum:{value:86133},eval:{value:537079926},as:{value:77932},arguments:{value:537079927},target:{value:209029},meta:{value:209030},accessor:{value:12402}});function qn(n,e,u){for(;Rn[A(n)];);return n.tokenValue=n.source.slice(n.tokenIndex,n.index),n.currentChar!==92&&n.currentChar<=126?Xn[n.tokenValue]||208897:ln(n,e,0,u)}function _e(n,e){let u=Hn(n);return M2(u)||c(n,5),n.tokenValue=String.fromCodePoint(u),ln(n,e,1,N[u]&4)}function ln(n,e,u,t){let o=n.index;for(;n.index0)V2(l)||c(n,20,String.fromCodePoint(l)),n.currentChar=l,n.index++,n.column++;else if(!V2(n.currentChar))break;A(n)}n.index<=n.end&&(n.tokenValue+=n.source.slice(o,n.index));let{length:i}=n.tokenValue;if(t&&i>=2&&i<=11){let l=Xn[n.tokenValue];return l===void 0?208897|(u?-2147483648:0):u?l===209006?e&524800?-2147483528:l|-2147483648:e&256?l===36970||(l&36864)===36864?-2147483527:(l&20480)===20480?e&67108864&&!(e&2048)?l|-2147483648:-2147483528:-2147274630:e&67108864&&!(e&2048)&&(l&20480)===20480?l|-2147483648:l===241771?e&67108864?-2147274630:e&262144?-2147483528:l|-2147483648:l===209005?-2147274630:(l&36864)===36864?l|12288|-2147483648:-2147483528:l}return 208897|(u?-2147483648:0)}function Ye(n){let e=A(n);if(e===92)return 130;let u=un(n);return u&&(e=u),M2(e)||c(n,96),130}function Hn(n){return n.source.charCodeAt(n.index+1)!==117&&c(n,5),n.currentChar=n.source.charCodeAt(n.index+=2),Qe(n)}function Qe(n){let e=0,u=n.currentChar;if(u===123){let l=n.index-2;for(;N[A(n)]&64;)e=e<<4|W(n.currentChar),e>1114111&&h2(l,n.line,n.column,n.index,n.line,n.column,104);return n.currentChar!==125&&h2(l,n.line,n.column,n.index,n.line,n.column,7),A(n),e}N[u]&64||c(n,7);let t=n.source.charCodeAt(n.index+1);N[t]&64||c(n,7);let o=n.source.charCodeAt(n.index+2);N[o]&64||c(n,7);let i=n.source.charCodeAt(n.index+3);return N[i]&64||c(n,7),e=W(u)<<12|W(t)<<8|W(o)<<4|W(i),n.currentChar=n.source.charCodeAt(n.index+=4),e}var Ze=[128,128,128,128,128,128,128,128,128,127,135,127,127,129,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,127,16842798,134283267,130,208897,8391477,8390213,134283267,67174411,16,8391476,25233968,18,25233969,67108877,8457014,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456256,1077936155,8390721,22,132,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,136,20,8389959,208897,131,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8389702,1074790415,16842799,128];function b(n,e){n.flags=(n.flags|1)^1,n.startIndex=n.index,n.startColumn=n.column,n.startLine=n.line,n.setToken(zn(n,e,0))}function zn(n,e,u){let t=n.index===0,{source:o}=n,i=n.index,l=n.line,f=n.column;for(;n.index=n.end)return 8391476;let m=n.currentChar;return m===61?(A(n),4194338):m!==42?8391476:A(n)!==61?8391735:(A(n),4194335)}case 8389959:return A(n)!==61?8389959:(A(n),4194341);case 25233968:{A(n);let m=n.currentChar;return m===43?(A(n),33619993):m===61?(A(n),4194336):25233968}case 25233969:{A(n);let m=n.currentChar;if(m===45){if(A(n),(u&1||t)&&n.currentChar===62){e&64||c(n,112),A(n),u=Ln(n,o,u,e,3,i,l,f),i=n.tokenIndex,l=n.tokenLine,f=n.tokenColumn;continue}return 33619994}return m===61?(A(n),4194337):25233969}case 8457014:{if(A(n),n.index=48&&m<=57)return Fn(n,e,80);if(m===46){let y=n.index+1;if(y=48&&m<=57)))return A(n),67108990}return 22}}}else{if((d^8232)<=1){u=u&-5|1,k2(n);continue}let g=un(n);if(g>0&&(d=g),Vn(d))return n.tokenValue=\"\",ln(n,e,0,0);if(Ue(d)){A(n);continue}c(n,20,String.fromCodePoint(d))}}return 1048576}function Ge(n,e){return n.startIndex=n.tokenIndex=n.index,n.startColumn=n.tokenColumn=n.column,n.startLine=n.tokenLine=n.line,n.setToken(N[n.currentChar]&8192?xe(n,e):zn(n,e,0)),n.getToken()}function xe(n,e){let u=n.currentChar,t=A(n),o=n.index;for(;t!==u;)n.index>=n.end&&c(n,16),t=A(n);return t!==u&&c(n,16),n.tokenValue=n.source.slice(o,n.index),A(n),e&128&&(n.tokenRaw=n.source.slice(n.tokenIndex,n.index)),134283267}function w2(n,e){if(n.startIndex=n.tokenIndex=n.index,n.startColumn=n.tokenColumn=n.column,n.startLine=n.tokenLine=n.line,n.index>=n.end){n.setToken(1048576);return}if(n.currentChar===60){A(n),n.setToken(8456256);return}if(n.currentChar===123){A(n),n.setToken(2162700);return}let u=0;for(;n.index1&&i&32&&n.getToken()&262144&&c(n,61,V[n.getToken()&255]),f}function Pn(n,e,u,t,o,i){let{tokenIndex:l,tokenLine:f,tokenColumn:d}=n,g=n.getToken(),m=null,y=ge(n,e,u,t,o,i,l,f,d);return n.getToken()===1077936155?(b(n,e|8192),m=M(n,e,t,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn),(i&32||!(g&2097152))&&(n.getToken()===274548||n.getToken()===8673330&&(g&2097152||!(o&4)||e&256))&&$(l,f,d,n.index,n.line,n.column,60,n.getToken()===274548?\"of\":\"in\")):(o&16||(g&2097152)>0)&&(n.getToken()&262144)!==262144&&c(n,59,o&16?\"const\":\"destructuring\"),s(n,e,l,f,d,{type:\"VariableDeclarator\",id:y,init:m})}function qu(n,e,u,t,o,i,l,f){b(n,e);let d=((e&524288)>0||(e&512)>0&&(e&2048)>0)&&P(n,e,209006);C(n,e|8192,67174411),u&&(u=j(u,1));let g=null,m=null,y=0,a=null,k=n.getToken()===86088||n.getToken()===241737||n.getToken()===86090,h,{tokenIndex:T,tokenLine:E,tokenColumn:w}=n,I=n.getToken();if(k?I===241737?(a=R(n,e),n.getToken()&2240512?(n.getToken()===8673330?e&256&&c(n,67):a=s(n,e,T,E,w,{type:\"VariableDeclaration\",kind:\"let\",declarations:s2(n,e|33554432,u,t,8,32)}),n.assignable=1):e&256?c(n,67):(k=!1,n.assignable=1,a=O(n,e,t,a,0,0,T,E,w),n.getToken()===274548&&c(n,115))):(b(n,e),a=s(n,e,T,E,w,I===86088?{type:\"VariableDeclaration\",kind:\"var\",declarations:s2(n,e|33554432,u,t,4,32)}:{type:\"VariableDeclaration\",kind:\"const\",declarations:s2(n,e|33554432,u,t,16,32)}),n.assignable=1):I===1074790417?d&&c(n,82):(I&2097152)===2097152?(a=I===2162700?Z(n,e,void 0,t,1,0,0,2,32,T,E,w):Q(n,e,void 0,t,1,0,0,2,32,T,E,w),y=n.destructible,y&64&&c(n,63),n.assignable=y&16?2:1,a=O(n,e|33554432,t,a,0,0,n.tokenIndex,n.tokenLine,n.tokenColumn)):a=Y(n,e|33554432,t,1,0,1,T,E,w),(n.getToken()&262144)===262144){if(n.getToken()===274548){n.assignable&2&&c(n,80,d?\"await\":\"of\"),r(n,a),b(n,e|8192),h=M(n,e,t,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn),C(n,e|8192,16);let q=C2(n,e,u,t,o);return s(n,e,i,l,f,{type:\"ForOfStatement\",left:a,right:h,body:q,await:d})}n.assignable&2&&c(n,80,\"in\"),r(n,a),b(n,e|8192),d&&c(n,82),h=z(n,e,t,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn),C(n,e|8192,16);let F=C2(n,e,u,t,o);return s(n,e,i,l,f,{type:\"ForInStatement\",body:F,left:a,right:h})}d&&c(n,82),k||(y&8&&n.getToken()!==1077936155&&c(n,80,\"loop\"),a=J(n,e|33554432,t,0,0,T,E,w,a)),n.getToken()===18&&(a=e2(n,e,t,0,n.tokenIndex,n.tokenLine,n.tokenColumn,a)),C(n,e|8192,1074790417),n.getToken()!==1074790417&&(g=z(n,e,t,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn)),C(n,e|8192,1074790417),n.getToken()!==16&&(m=z(n,e,t,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn)),C(n,e|8192,16);let v=C2(n,e,u,t,o);return s(n,e,i,l,f,{type:\"ForStatement\",init:a,test:g,update:m,body:v})}function xn(n,e,u){return B2(e,n.getToken())||c(n,118),(n.getToken()&537079808)===537079808&&c(n,119),u&&g2(n,e,u,n.tokenValue,8,0),R(n,e)}function Su(n,e,u){let t=n.tokenIndex,o=n.tokenLine,i=n.tokenColumn;b(n,e);let l=null,{tokenIndex:f,tokenLine:d,tokenColumn:g}=n,m=[];if(n.getToken()===134283267)l=H(n,e);else{if(n.getToken()&143360){let a=xn(n,e,u);if(m=[s(n,e,f,d,g,{type:\"ImportDefaultSpecifier\",local:a})],P(n,e,18))switch(n.getToken()){case 8391476:m.push(vn(n,e,u));break;case 2162700:Nn(n,e,u,m);break;default:c(n,107)}}else switch(n.getToken()){case 8391476:m=[vn(n,e,u)];break;case 2162700:Nn(n,e,u,m);break;case 67174411:return pn(n,e,void 0,t,o,i);case 67108877:return rn(n,e,t,o,i);default:c(n,30,V[n.getToken()&255])}l=Pu(n,e)}let y={type:\"ImportDeclaration\",specifiers:m,source:l};return e&1&&(y.attributes=nn(n,e,m)),K(n,e|8192),s(n,e,t,o,i,y)}function vn(n,e,u){let{tokenIndex:t,tokenLine:o,tokenColumn:i}=n;return b(n,e),C(n,e,77932),(n.getToken()&134217728)===134217728&&$(t,o,i,n.index,n.line,n.column,30,V[n.getToken()&255]),s(n,e,t,o,i,{type:\"ImportNamespaceSpecifier\",local:xn(n,e,u)})}function Pu(n,e){return C(n,e,12403),n.getToken()!==134283267&&c(n,105,\"Import\"),H(n,e)}function Nn(n,e,u,t){for(b(n,e);n.getToken()&143360||n.getToken()===134283267;){let{tokenValue:o,tokenIndex:i,tokenLine:l,tokenColumn:f}=n,d=n.getToken(),g=O2(n,e),m;P(n,e,77932)?((n.getToken()&134217728)===134217728||n.getToken()===18?c(n,106):J2(n,e,16,n.getToken(),0),o=n.tokenValue,m=R(n,e)):g.type===\"Identifier\"?(J2(n,e,16,d,0),m=g):c(n,25,V[108]),u&&g2(n,e,u,o,8,0),t.push(s(n,e,i,l,f,{type:\"ImportSpecifier\",local:m,imported:g})),n.getToken()!==1074790415&&C(n,e,18)}return C(n,e,1074790415),t}function rn(n,e,u,t,o){let i=ne(n,e,s(n,e,u,t,o,{type:\"Identifier\",name:\"import\"}),u,t,o);return i=O(n,e,void 0,i,0,0,u,t,o),i=J(n,e,void 0,0,0,u,t,o,i),n.getToken()===18&&(i=e2(n,e,void 0,0,u,t,o,i)),A2(n,e,i,u,t,o)}function pn(n,e,u,t,o,i){let l=ee(n,e,u,0,t,o,i);return l=O(n,e,u,l,0,0,t,o,i),n.getToken()===18&&(l=e2(n,e,u,0,t,o,i,l)),A2(n,e,l,t,o,i)}function vu(n,e,u){let t=n.tokenIndex,o=n.tokenLine,i=n.tokenColumn;b(n,e|8192);let l=[],f=null,d=null,g=null,m;if(P(n,e|8192,20561)){switch(n.getToken()){case 86104:{f=d2(n,e,u,void 0,4,1,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);break}case 132:case 86094:f=en(n,e,u,void 0,1,n.tokenIndex,n.tokenLine,n.tokenColumn);break;case 209005:{let{tokenIndex:a,tokenLine:k,tokenColumn:h}=n;f=R(n,e);let{flags:T}=n;T&1||(n.getToken()===86104?f=d2(n,e,u,void 0,4,1,1,1,a,k,h):n.getToken()===67174411?(f=sn(n,e,void 0,f,1,1,0,T,a,k,h),f=O(n,e,void 0,f,0,0,a,k,h),f=J(n,e,void 0,0,0,a,k,h,f)):n.getToken()&143360&&(u&&(u=K2(n,e,n.tokenValue)),f=R(n,e),f=F2(n,e,u,void 0,[f],1,a,k,h)));break}default:f=M(n,e,void 0,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn),K(n,e|8192)}return u&&l2(n,\"default\"),s(n,e,t,o,i,{type:\"ExportDefaultDeclaration\",declaration:f})}switch(n.getToken()){case 8391476:{b(n,e);let a=null;P(n,e,77932)&&(u&&l2(n,n.tokenValue),a=O2(n,e)),C(n,e,12403),n.getToken()!==134283267&&c(n,105,\"Export\"),d=H(n,e);let h={type:\"ExportAllDeclaration\",source:d,exported:a};return e&1&&(h.attributes=nn(n,e)),K(n,e|8192),s(n,e,t,o,i,h)}case 2162700:{b(n,e);let a=[],k=[],h=0;for(;n.getToken()&143360||n.getToken()===134283267;){let{tokenIndex:T,tokenValue:E,tokenLine:w,tokenColumn:I}=n,v=O2(n,e);v.type===\"Literal\"&&(h=1);let F;n.getToken()===77932?(b(n,e),!(n.getToken()&143360)&&n.getToken()!==134283267&&c(n,106),u&&(a.push(n.tokenValue),k.push(E)),F=O2(n,e)):(u&&(a.push(n.tokenValue),k.push(n.tokenValue)),F=v),l.push(s(n,e,T,w,I,{type:\"ExportSpecifier\",local:v,exported:F})),n.getToken()!==1074790415&&C(n,e,18)}C(n,e,1074790415),P(n,e,12403)?(n.getToken()!==134283267&&c(n,105,\"Export\"),d=H(n,e),e&1&&(g=nn(n,e,l)),u&&a.forEach(T=>l2(n,T))):(h&&c(n,172),u&&(a.forEach(T=>l2(n,T)),k.forEach(T=>iu(n,T)))),K(n,e|8192);break}case 86094:f=en(n,e,u,void 0,2,n.tokenIndex,n.tokenLine,n.tokenColumn);break;case 86104:f=d2(n,e,u,void 0,4,1,2,0,n.tokenIndex,n.tokenLine,n.tokenColumn);break;case 241737:f=p2(n,e,u,void 0,8,64,n.tokenIndex,n.tokenLine,n.tokenColumn);break;case 86090:f=p2(n,e,u,void 0,16,64,n.tokenIndex,n.tokenLine,n.tokenColumn);break;case 86088:f=Gn(n,e,u,void 0,64,n.tokenIndex,n.tokenLine,n.tokenColumn);break;case 209005:{let{tokenIndex:a,tokenLine:k,tokenColumn:h}=n;if(b(n,e),!(n.flags&1)&&n.getToken()===86104){f=d2(n,e,u,void 0,4,1,2,1,a,k,h),u&&(m=f.id?f.id.name:\"\",l2(n,m));break}}default:c(n,30,V[n.getToken()&255])}let y={type:\"ExportNamedDeclaration\",declaration:f,specifiers:l,source:d};return g&&(y.attributes=g),s(n,e,t,o,i,y)}function M(n,e,u,t,o,i,l,f){let d=_(n,e,u,2,0,t,o,1,i,l,f);return d=O(n,e,u,d,o,0,i,l,f),J(n,e,u,o,0,i,l,f,d)}function e2(n,e,u,t,o,i,l,f){let d=[f];for(;P(n,e|8192,18);)d.push(M(n,e,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn));return s(n,e,o,i,l,{type:\"SequenceExpression\",expressions:d})}function z(n,e,u,t,o,i,l,f){let d=M(n,e,u,o,t,i,l,f);return n.getToken()===18?e2(n,e,u,t,i,l,f,d):d}function J(n,e,u,t,o,i,l,f,d){let g=n.getToken();if((g&4194304)===4194304){n.assignable&2&&c(n,26),(!o&&g===1077936155&&d.type===\"ArrayExpression\"||d.type===\"ObjectExpression\")&&r(n,d),b(n,e|8192);let m=M(n,e,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.assignable=2,s(n,e,i,l,f,o?{type:\"AssignmentPattern\",left:d,right:m}:{type:\"AssignmentExpression\",left:d,operator:V[g&255],right:m})}return(g&8388608)===8388608&&(d=f2(n,e,u,t,i,l,f,4,g,d)),P(n,e|8192,22)&&(d=c2(n,e,u,d,i,l,f)),d}function N2(n,e,u,t,o,i,l,f,d){let g=n.getToken();b(n,e|8192);let m=M(n,e,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn);return d=s(n,e,i,l,f,o?{type:\"AssignmentPattern\",left:d,right:m}:{type:\"AssignmentExpression\",left:d,operator:V[g&255],right:m}),n.assignable=2,d}function c2(n,e,u,t,o,i,l){let f=M(n,(e|33554432)^33554432,u,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);C(n,e|8192,21),n.assignable=1;let d=M(n,e,u,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.assignable=2,s(n,e,o,i,l,{type:\"ConditionalExpression\",test:t,consequent:f,alternate:d})}function f2(n,e,u,t,o,i,l,f,d,g){let m=-((e&33554432)>0)&8673330,y,a;for(n.assignable=2;n.getToken()&8388608&&(y=n.getToken(),a=y&3840,(y&524288&&d&268435456||d&524288&&y&268435456)&&c(n,165),!(a+((y===8391735)<<8)-((m===y)<<12)<=f));)b(n,e|8192),g=s(n,e,o,i,l,{type:y&524288||y&268435456?\"LogicalExpression\":\"BinaryExpression\",left:g,right:f2(n,e,u,t,n.tokenIndex,n.tokenLine,n.tokenColumn,a,y,Y(n,e,u,0,t,1,n.tokenIndex,n.tokenLine,n.tokenColumn)),operator:V[y&255]});return n.getToken()===1077936155&&c(n,26),g}function Nu(n,e,u,t,o,i,l,f){t||c(n,0);let d=n.getToken();b(n,e|8192);let g=Y(n,e,u,0,f,1,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.getToken()===8391735&&c(n,33),e&256&&d===16863276&&(g.type===\"Identifier\"?c(n,121):re(g)&&c(n,127)),n.assignable=2,s(n,e,o,i,l,{type:\"UnaryExpression\",operator:V[d&255],argument:g,prefix:!0})}function Vu(n,e,u,t,o,i,l,f,d,g){let m=n.getToken(),y=R(n,e),{flags:a}=n;if(!(a&1)){if(n.getToken()===86104)return te(n,e,u,1,t,f,d,g);if(B2(e,n.getToken()))return o||c(n,0),(n.getToken()&36864)===36864&&(n.flags|=256),le(n,e,u,i,f,d,g)}return!l&&n.getToken()===67174411?sn(n,e,u,y,i,1,0,a,f,d,g):n.getToken()===10?($2(n,e,m),l&&c(n,51),(m&36864)===36864&&(n.flags|=256),_2(n,e,u,n.tokenValue,y,l,i,0,f,d,g)):(n.assignable=1,y)}function Ou(n,e,u,t,o,i,l,f){if(t&&(n.destructible|=256),e&262144){b(n,e|8192),e&2097152&&c(n,32),o||c(n,26),n.getToken()===22&&c(n,124);let d=null,g=!1;return n.flags&1?n.getToken()===8391476&&c(n,30,V[n.getToken()&255]):(g=P(n,e|8192,8391476),(n.getToken()&77824||g)&&(d=M(n,e,u,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn))),n.assignable=2,s(n,e,i,l,f,{type:\"YieldExpression\",argument:d,delegate:g})}return e&256&&c(n,97,\"yield\"),yn(n,e,u,i,l,f)}function Ru(n,e,u,t,o,i,l,f){o&&(n.destructible|=128),e&268435456&&c(n,177);let d=yn(n,e,u,i,l,f);if(d.type===\"ArrowFunctionExpression\"||(n.getToken()&65536)===0)return e&524288&&$(i,l,f,n.startIndex,n.startLine,n.startColumn,176),e&512&&$(i,l,f,n.startIndex,n.startLine,n.startColumn,110),e&2097152&&e&524288&&$(i,l,f,n.startIndex,n.startLine,n.startColumn,110),d;if(e&2097152&&$(i,l,f,n.startIndex,n.startLine,n.startColumn,31),e&524288||e&512&&e&2048){t&&$(i,l,f,n.startIndex,n.startLine,n.startColumn,0);let m=Y(n,e,u,0,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.getToken()===8391735&&c(n,33),n.assignable=2,s(n,e,i,l,f,{type:\"AwaitExpression\",argument:m})}return e&512&&$(i,l,f,n.startIndex,n.startLine,n.startColumn,98),d}function W2(n,e,u,t,o,i,l){let{tokenIndex:f,tokenLine:d,tokenColumn:g}=n;C(n,e|8192,2162700);let m=[];if(n.getToken()!==1074790415){for(;n.getToken()===134283267;){let{index:y,tokenIndex:a,tokenValue:k}=n,h=n.getToken(),T=H(n,e);Kn(n,y,a,k)&&(e|=256,n.flags&128&&$(a,d,g,n.index,n.line,n.column,66),n.flags&64&&$(a,d,g,n.index,n.line,n.column,9),n.flags&4096&&$(a,d,g,n.index,n.line,n.column,15),l&&z2(l)),m.push(gn(n,e,T,h,a,n.tokenLine,n.tokenColumn))}e&256&&(i&&((i&537079808)===537079808&&c(n,119),(i&36864)===36864&&c(n,40)),n.flags&512&&c(n,119),n.flags&256&&c(n,118))}for(n.flags=(n.flags|512|256|64|4096)^4928,n.destructible=(n.destructible|256)^256;n.getToken()!==1074790415;)m.push(I2(n,e,u,t,4,{}));return C(n,o&24?e|8192:e,1074790415),n.flags&=-4289,n.getToken()===1077936155&&c(n,26),s(n,e,f,d,g,{type:\"BlockStatement\",body:m})}function Uu(n,e,u,t,o){switch(b(n,e),n.getToken()){case 67108990:c(n,167);case 67174411:{e&131072||c(n,28),n.assignable=2;break}case 69271571:case 67108877:{e&65536||c(n,29),n.assignable=1;break}default:c(n,30,\"super\")}return s(n,e,u,t,o,{type:\"Super\"})}function Y(n,e,u,t,o,i,l,f,d){let g=_(n,e,u,2,0,t,o,i,l,f,d);return O(n,e,u,g,o,0,l,f,d)}function Mu(n,e,u,t,o,i){n.assignable&2&&c(n,55);let l=n.getToken();return b(n,e),n.assignable=2,s(n,e,t,o,i,{type:\"UpdateExpression\",argument:u,operator:V[l&255],prefix:!1})}function O(n,e,u,t,o,i,l,f,d){if((n.getToken()&33619968)===33619968&&!(n.flags&1))t=Mu(n,e,t,l,f,d);else if((n.getToken()&67108864)===67108864){switch(e=(e|33554432)^33554432,n.getToken()){case 67108877:{b(n,(e|67108864|2048)^2048),e&4096&&n.getToken()===130&&n.tokenValue===\"super\"&&c(n,173),n.assignable=1;let g=cn(n,e|16384,u);t=s(n,e,l,f,d,{type:\"MemberExpression\",object:t,computed:!1,property:g});break}case 69271571:{let g=!1;(n.flags&2048)===2048&&(g=!0,n.flags=(n.flags|2048)^2048),b(n,e|8192);let{tokenIndex:m,tokenLine:y,tokenColumn:a}=n,k=z(n,e,u,o,1,m,y,a);C(n,e,20),n.assignable=1,t=s(n,e,l,f,d,{type:\"MemberExpression\",object:t,computed:!0,property:k}),g&&(n.flags|=2048);break}case 67174411:{if((n.flags&1024)===1024)return n.flags=(n.flags|1024)^1024,t;let g=!1;(n.flags&2048)===2048&&(g=!0,n.flags=(n.flags|2048)^2048);let m=an(n,e,u,o);n.assignable=2,t=s(n,e,l,f,d,{type:\"CallExpression\",callee:t,arguments:m}),g&&(n.flags|=2048);break}case 67108990:{b(n,(e|67108864|2048)^2048),n.flags|=2048,n.assignable=2,t=Ju(n,e,u,t,l,f,d);break}default:(n.flags&2048)===2048&&c(n,166),n.assignable=2,t=s(n,e,l,f,d,{type:\"TaggedTemplateExpression\",tag:t,quasi:n.getToken()===67174408?kn(n,e|16384,u):mn(n,e,n.tokenIndex,n.tokenLine,n.tokenColumn)})}t=O(n,e,u,t,0,1,l,f,d)}return i===0&&(n.flags&2048)===2048&&(n.flags=(n.flags|2048)^2048,t=s(n,e,l,f,d,{type:\"ChainExpression\",expression:t})),t}function Ju(n,e,u,t,o,i,l){let f=!1,d;if((n.getToken()===69271571||n.getToken()===67174411)&&(n.flags&2048)===2048&&(f=!0,n.flags=(n.flags|2048)^2048),n.getToken()===69271571){b(n,e|8192);let{tokenIndex:g,tokenLine:m,tokenColumn:y}=n,a=z(n,e,u,0,1,g,m,y);C(n,e,20),n.assignable=2,d=s(n,e,o,i,l,{type:\"MemberExpression\",object:t,computed:!0,optional:!0,property:a})}else if(n.getToken()===67174411){let g=an(n,e,u,0);n.assignable=2,d=s(n,e,o,i,l,{type:\"CallExpression\",callee:t,arguments:g,optional:!0})}else{let g=cn(n,e,u);n.assignable=2,d=s(n,e,o,i,l,{type:\"MemberExpression\",object:t,computed:!1,optional:!0,property:g})}return f&&(n.flags|=2048),d}function cn(n,e,u){return!(n.getToken()&143360)&&n.getToken()!==-2147483528&&n.getToken()!==-2147483527&&n.getToken()!==130&&c(n,160),n.getToken()===130?H2(n,e,u,0,n.tokenIndex,n.tokenLine,n.tokenColumn):R(n,e)}function ju(n,e,u,t,o,i,l,f){t&&c(n,56),o||c(n,0);let d=n.getToken();b(n,e|8192);let g=Y(n,e,u,0,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.assignable&2&&c(n,55),n.assignable=2,s(n,e,i,l,f,{type:\"UpdateExpression\",argument:g,operator:V[d&255],prefix:!0})}function _(n,e,u,t,o,i,l,f,d,g,m){if((n.getToken()&143360)===143360){switch(n.getToken()){case 209006:return Ru(n,e,u,o,l,d,g,m);case 241771:return Ou(n,e,u,l,i,d,g,m);case 209005:return Vu(n,e,u,l,f,i,o,d,g,m)}let{tokenValue:y}=n,a=n.getToken(),k=R(n,e|16384);return n.getToken()===10?(f||c(n,0),$2(n,e,a),(a&36864)===36864&&(n.flags|=256),_2(n,e,u,y,k,o,i,0,d,g,m)):(e&4096&&!(e&8388608)&&!(e&2097152)&&n.tokenValue===\"arguments\"&&c(n,130),(a&255)===73&&(e&256&&c(n,113),t&24&&c(n,100)),n.assignable=e&256&&(a&537079808)===537079808?2:1,k)}if((n.getToken()&134217728)===134217728)return H(n,e);switch(n.getToken()){case 33619993:case 33619994:return ju(n,e,u,o,f,d,g,m);case 16863276:case 16842798:case 16842799:case 25233968:case 25233969:case 16863275:case 16863277:return Nu(n,e,u,f,d,g,m,l);case 86104:return te(n,e,u,0,l,d,g,m);case 2162700:return Qu(n,e,u,i?0:1,l,d,g,m);case 69271571:return Yu(n,e,u,i?0:1,l,d,g,m);case 67174411:return Gu(n,e|16384,u,i,1,0,d,g,m);case 86021:case 86022:case 86023:return Wu(n,e,d,g,m);case 86111:return _u(n,e);case 65540:return pu(n,e,d,g,m);case 132:case 86094:return n1(n,e,u,l,d,g,m);case 86109:return Uu(n,e,d,g,m);case 67174409:return mn(n,e,d,g,m);case 67174408:return kn(n,e,u);case 86107:return xu(n,e,u,l,d,g,m);case 134283388:return ue(n,e,d,g,m);case 130:return H2(n,e,u,0,d,g,m);case 86106:return Xu(n,e,u,o,l,d,g,m);case 8456256:if(e&8)return Q2(n,e,u,0,d,g,m);default:if(B2(e,n.getToken()))return yn(n,e,u,d,g,m);c(n,30,V[n.getToken()&255])}}function Xu(n,e,u,t,o,i,l,f){let d=R(n,e);return n.getToken()===67108877?ne(n,e,d,i,l,f):(t&&c(n,142),d=ee(n,e,u,o,i,l,f),n.assignable=2,O(n,e,u,d,o,0,i,l,f))}function ne(n,e,u,t,o,i){e&512||c(n,169),b(n,e);let l=n.getToken();return l!==209030&&n.tokenValue!==\"meta\"?c(n,174):l&-2147483648&&c(n,175),n.assignable=2,s(n,e,t,o,i,{type:\"MetaProperty\",meta:u,property:R(n,e)})}function ee(n,e,u,t,o,i,l){C(n,e|8192,67174411),n.getToken()===14&&c(n,143);let d={type:\"ImportExpression\",source:M(n,e,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn)};if(e&1){let g=null;if(n.getToken()===18&&(C(n,e,18),n.getToken()!==16)){let m=(e|33554432)^33554432;g=M(n,m,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn)}d.options=g,P(n,e,18)}return C(n,e,16),s(n,e,o,i,l,d)}function nn(n,e,u=null){if(!P(n,e,20579))return[];C(n,e,2162700);let t=[],o=new Set;for(;n.getToken()!==1074790415;){let i=n.tokenIndex,l=n.tokenLine,f=n.tokenColumn,d=zu(n,e);C(n,e,21);let g=Hu(n,e),m=d.type===\"Literal\"?d.value:d.name;m===\"type\"&&g.value===\"json\"&&(u===null||u.length===1&&(u[0].type===\"ImportDefaultSpecifier\"||u[0].type===\"ImportNamespaceSpecifier\"||u[0].type===\"ImportSpecifier\"&&u[0].imported.type===\"Identifier\"&&u[0].imported.name===\"default\"||u[0].type===\"ExportSpecifier\"&&u[0].local.type===\"Identifier\"&&u[0].local.name===\"default\")||c(n,140)),o.has(m)&&c(n,145,`${m}`),o.add(m),t.push(s(n,e,i,l,f,{type:\"ImportAttribute\",key:d,value:g})),n.getToken()!==1074790415&&C(n,e,18)}return C(n,e,1074790415),t}function Hu(n,e){if(n.getToken()===134283267)return H(n,e);c(n,30,V[n.getToken()&255])}function zu(n,e){if(n.getToken()===134283267)return H(n,e);if(n.getToken()&143360)return R(n,e);c(n,30,V[n.getToken()&255])}function Ku(n,e){let u=e.length;for(let t=0;t56319||++t>=u||(e.charCodeAt(t)&64512)!==56320)&&c(n,171,JSON.stringify(e.charAt(t--)))}}function O2(n,e){if(n.getToken()===134283267)return Ku(n,n.tokenValue),H(n,e);if(n.getToken()&143360)return R(n,e);c(n,30,V[n.getToken()&255])}function ue(n,e,u,t,o){let{tokenRaw:i,tokenValue:l}=n;return b(n,e),n.assignable=2,s(n,e,u,t,o,e&128?{type:\"Literal\",value:l,bigint:i.slice(0,-1),raw:i}:{type:\"Literal\",value:l,bigint:i.slice(0,-1)})}function mn(n,e,u,t,o){n.assignable=2;let{tokenValue:i,tokenRaw:l,tokenIndex:f,tokenLine:d,tokenColumn:g}=n;C(n,e,67174409);let m=[R2(n,e,i,l,f,d,g,!0)];return s(n,e,u,t,o,{type:\"TemplateLiteral\",expressions:[],quasis:m})}function kn(n,e,u){e=(e|33554432)^33554432;let{tokenValue:t,tokenRaw:o,tokenIndex:i,tokenLine:l,tokenColumn:f}=n;C(n,e&-16385|8192,67174408);let d=[R2(n,e,t,o,i,l,f,!1)],g=[z(n,e&-16385,u,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn)];for(n.getToken()!==1074790415&&c(n,83);n.setToken(We(n,e),!0)!==67174409;){let{tokenValue:m,tokenRaw:y,tokenIndex:a,tokenLine:k,tokenColumn:h}=n;C(n,e&-16385|8192,67174408),d.push(R2(n,e,m,y,a,k,h,!1)),g.push(z(n,e,u,0,1,n.tokenIndex,n.tokenLine,n.tokenColumn)),n.getToken()!==1074790415&&c(n,83)}{let{tokenValue:m,tokenRaw:y,tokenIndex:a,tokenLine:k,tokenColumn:h}=n;C(n,e,67174409),d.push(R2(n,e,m,y,a,k,h,!0))}return s(n,e,i,l,f,{type:\"TemplateLiteral\",expressions:g,quasis:d})}function R2(n,e,u,t,o,i,l,f){let d=s(n,e,o,i,l,{type:\"TemplateElement\",value:{cooked:u,raw:t},tail:f}),g=f?1:2;return e&2&&(d.start+=1,d.range[0]+=1,d.end-=g,d.range[1]-=g),e&4&&(d.loc.start.column+=1,d.loc.end.column-=g),d}function $u(n,e,u,t,o,i){e=(e|33554432)^33554432,C(n,e|8192,14);let l=M(n,e,u,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.assignable=1,s(n,e,t,o,i,{type:\"SpreadElement\",argument:l})}function an(n,e,u,t){b(n,e|8192);let o=[];if(n.getToken()===16)return b(n,e|16384),o;for(;n.getToken()!==16&&(n.getToken()===14?o.push($u(n,e,u,n.tokenIndex,n.tokenLine,n.tokenColumn)):o.push(M(n,e,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn)),!(n.getToken()!==18||(b(n,e|8192),n.getToken()===16))););return C(n,e|16384,16),o}function R(n,e){let{tokenValue:u,tokenIndex:t,tokenLine:o,tokenColumn:i}=n,l=u===\"await\"&&(n.getToken()&-2147483648)===0;return b(n,e|(l?8192:0)),s(n,e,t,o,i,{type:\"Identifier\",name:u})}function H(n,e){let{tokenValue:u,tokenRaw:t,tokenIndex:o,tokenLine:i,tokenColumn:l}=n;return n.getToken()===134283388?ue(n,e,o,i,l):(b(n,e),n.assignable=2,s(n,e,o,i,l,e&128?{type:\"Literal\",value:u,raw:t}:{type:\"Literal\",value:u}))}function Wu(n,e,u,t,o){let i=V[n.getToken()&255],l=n.getToken()===86023?null:i===\"true\";return b(n,e),n.assignable=2,s(n,e,u,t,o,e&128?{type:\"Literal\",value:l,raw:i}:{type:\"Literal\",value:l})}function _u(n,e){let{tokenIndex:u,tokenLine:t,tokenColumn:o}=n;return b(n,e),n.assignable=2,s(n,e,u,t,o,{type:\"ThisExpression\"})}function d2(n,e,u,t,o,i,l,f,d,g,m){b(n,e|8192);let y=i?fn(n,e,8391476):0,a=null,k,h=u?a2():void 0;if(n.getToken()===67174411)l&1||c(n,39,\"Function\");else{let v=o&4&&(!(e&2048)||!(e&512))?4:64|(f?1024:0)|(y?1024:0);$n(n,e,n.getToken()),u&&(v&4?Yn(n,e,u,n.tokenValue,v):g2(n,e,u,n.tokenValue,v,o),h=j(h,256),l&&l&2&&l2(n,n.tokenValue)),k=n.getToken(),n.getToken()&143360?a=R(n,e):c(n,30,V[n.getToken()&255])}let T=7274496;e=(e|T)^T|16777216|(f?524288:0)|(y?262144:0)|(y?0:67108864),u&&(h=j(h,512));let E=oe(n,(e|2097152)&-268435457,h,t,0,1),w=268471296,I=W2(n,(e|w)^w|8388608|1048576,u?j(h,128):h,t,8,k,h==null?void 0:h.scopeError);return s(n,e,d,g,m,{type:\"FunctionDeclaration\",id:a,params:E,body:I,async:f===1,generator:y===1})}function te(n,e,u,t,o,i,l,f){b(n,e|8192);let d=fn(n,e,8391476),g=(t?524288:0)|(d?262144:0),m=null,y,a=e&16?a2():void 0,k=275709952;n.getToken()&143360&&($n(n,(e|k)^k|g,n.getToken()),a&&(a=j(a,256)),y=n.getToken(),m=R(n,e)),e=(e|k)^k|16777216|g|(d?0:67108864),a&&(a=j(a,512));let h=oe(n,(e|2097152)&-268435457,a,u,o,1),T=W2(n,e&-33594369|8388608|1048576,a&&j(a,128),u,0,y,a==null?void 0:a.scopeError);return n.assignable=2,s(n,e,i,l,f,{type:\"FunctionExpression\",id:m,params:h,body:T,async:t===1,generator:d===1})}function Yu(n,e,u,t,o,i,l,f){let d=Q(n,e,void 0,u,t,o,0,2,0,i,l,f);return n.destructible&64&&c(n,63),n.destructible&8&&c(n,62),d}function Q(n,e,u,t,o,i,l,f,d,g,m,y){b(n,e|8192);let a=[],k=0;for(e=(e|33554432)^33554432;n.getToken()!==20;)if(P(n,e|8192,18))a.push(null);else{let T,{tokenIndex:E,tokenLine:w,tokenColumn:I,tokenValue:v}=n,F=n.getToken();if(F&143360)if(T=_(n,e,t,f,0,1,i,1,E,w,I),n.getToken()===1077936155){n.assignable&2&&c(n,26),b(n,e|8192),u&&n2(n,e,u,v,f,d);let q=M(n,e,t,1,i,n.tokenIndex,n.tokenLine,n.tokenColumn);T=s(n,e,E,w,I,l?{type:\"AssignmentPattern\",left:T,right:q}:{type:\"AssignmentExpression\",operator:\"=\",left:T,right:q}),k|=n.destructible&256?256:0|n.destructible&128?128:0}else n.getToken()===18||n.getToken()===20?(n.assignable&2?k|=16:u&&n2(n,e,u,v,f,d),k|=n.destructible&256?256:0|n.destructible&128?128:0):(k|=f&1?32:f&2?0:16,T=O(n,e,t,T,i,0,E,w,I),n.getToken()!==18&&n.getToken()!==20?(n.getToken()!==1077936155&&(k|=16),T=J(n,e,t,i,l,E,w,I,T)):n.getToken()!==1077936155&&(k|=n.assignable&2?16:32));else F&2097152?(T=n.getToken()===2162700?Z(n,e,u,t,0,i,l,f,d,E,w,I):Q(n,e,u,t,0,i,l,f,d,E,w,I),k|=n.destructible,n.assignable=n.destructible&16?2:1,n.getToken()===18||n.getToken()===20?n.assignable&2&&(k|=16):n.destructible&8?c(n,71):(T=O(n,e,t,T,i,0,E,w,I),k=n.assignable&2?16:0,n.getToken()!==18&&n.getToken()!==20?T=J(n,e,t,i,l,E,w,I,T):n.getToken()!==1077936155&&(k|=n.assignable&2?16:32))):F===14?(T=b2(n,e,u,t,20,f,d,0,i,l,E,w,I),k|=n.destructible,n.getToken()!==18&&n.getToken()!==20&&c(n,30,V[n.getToken()&255])):(T=Y(n,e,t,1,0,1,E,w,I),n.getToken()!==18&&n.getToken()!==20?(T=J(n,e,t,i,l,E,w,I,T),!(f&3)&&F===67174411&&(k|=16)):n.assignable&2?k|=16:F===67174411&&(k|=n.assignable&1&&f&3?32:16));if(a.push(T),P(n,e|8192,18)){if(n.getToken()===20)break}else break}C(n,e,20);let h=s(n,e,g,m,y,{type:l?\"ArrayPattern\":\"ArrayExpression\",elements:a});return!o&&n.getToken()&4194304?ie(n,e,t,k,i,l,g,m,y,h):(n.destructible=k,h)}function ie(n,e,u,t,o,i,l,f,d,g){n.getToken()!==1077936155&&c(n,26),b(n,e|8192),t&16&&c(n,26),i||r(n,g);let{tokenIndex:m,tokenLine:y,tokenColumn:a}=n,k=M(n,e,u,1,o,m,y,a);return n.destructible=(t|64|8)^72|(n.destructible&128?128:0)|(n.destructible&256?256:0),s(n,e,l,f,d,i?{type:\"AssignmentPattern\",left:g,right:k}:{type:\"AssignmentExpression\",left:g,operator:\"=\",right:k})}function b2(n,e,u,t,o,i,l,f,d,g,m,y,a){b(n,e|8192);let k=null,h=0,{tokenValue:T,tokenIndex:E,tokenLine:w,tokenColumn:I}=n,v=n.getToken();if(v&143360)n.assignable=1,k=_(n,e,t,i,0,1,d,1,E,w,I),v=n.getToken(),k=O(n,e,t,k,d,0,E,w,I),n.getToken()!==18&&n.getToken()!==o&&(n.assignable&2&&n.getToken()===1077936155&&c(n,71),h|=16,k=J(n,e,t,d,g,E,w,I,k)),n.assignable&2?h|=16:v===o||v===18?u&&n2(n,e,u,T,i,l):h|=32,h|=n.destructible&128?128:0;else if(v===o)c(n,41);else if(v&2097152)k=n.getToken()===2162700?Z(n,e,u,t,1,d,g,i,l,E,w,I):Q(n,e,u,t,1,d,g,i,l,E,w,I),v=n.getToken(),v!==1077936155&&v!==o&&v!==18?(n.destructible&8&&c(n,71),k=O(n,e,t,k,d,0,E,w,I),h|=n.assignable&2?16:0,(n.getToken()&4194304)===4194304?(n.getToken()!==1077936155&&(h|=16),k=J(n,e,t,d,g,E,w,I,k)):((n.getToken()&8388608)===8388608&&(k=f2(n,e,t,1,E,w,I,4,v,k)),P(n,e|8192,22)&&(k=c2(n,e,t,k,E,w,I)),h|=n.assignable&2?16:32)):h|=o===1074790415&&v!==1077936155?16:n.destructible;else{h|=32,k=Y(n,e,t,1,d,1,n.tokenIndex,n.tokenLine,n.tokenColumn);let{tokenIndex:F,tokenLine:q,tokenColumn:U}=n,D=n.getToken();return D===1077936155?(n.assignable&2&&c(n,26),k=J(n,e,t,d,g,F,q,U,k),h|=16):(D===18?h|=16:D!==o&&(k=J(n,e,t,d,g,F,q,U,k)),h|=n.assignable&1?32:16),n.destructible=h,n.getToken()!==o&&n.getToken()!==18&&c(n,161),s(n,e,m,y,a,{type:g?\"RestElement\":\"SpreadElement\",argument:k})}if(n.getToken()!==o)if(i&1&&(h|=f?16:32),P(n,e|8192,1077936155)){h&16&&c(n,26),r(n,k);let F=M(n,e,t,1,d,n.tokenIndex,n.tokenLine,n.tokenColumn);k=s(n,e,E,w,I,g?{type:\"AssignmentPattern\",left:k,right:F}:{type:\"AssignmentExpression\",left:k,operator:\"=\",right:F}),h=16}else h|=16;return n.destructible=h,s(n,e,m,y,a,{type:g?\"RestElement\":\"SpreadElement\",argument:k})}function x(n,e,u,t,o,i,l,f){var a;let d=2883584|(t&64?0:4325376);e=(e|d)^d|(t&8?262144:0)|(t&16?524288:0)|(t&64?4194304:0)|65536|8388608|16777216;let g=e&16?j(a2(),512):void 0,m=Zu(n,(e|2097152)&-268435457,g,u,t,1,o);g&&(g=j(g,128));let y=W2(n,e&-301992961|8388608|1048576,g,u,0,void 0,(a=g==null?void 0:g.parent)==null?void 0:a.scopeError);return s(n,e,i,l,f,{type:\"FunctionExpression\",params:m,body:y,async:(t&16)>0,generator:(t&8)>0,id:null})}function Qu(n,e,u,t,o,i,l,f){let d=Z(n,e,void 0,u,t,o,0,2,0,i,l,f);return n.destructible&64&&c(n,63),n.destructible&8&&c(n,62),d}function Z(n,e,u,t,o,i,l,f,d,g,m,y){b(n,e);let a=[],k=0,h=0;for(e=(e|33554432)^33554432;n.getToken()!==1074790415;){let{tokenValue:E,tokenLine:w,tokenColumn:I,tokenIndex:v}=n,F=n.getToken();if(F===14)a.push(b2(n,e,u,t,1074790415,f,d,0,i,l,v,w,I));else{let q=0,U=null,D;if(n.getToken()&143360||n.getToken()===-2147483528||n.getToken()===-2147483527)if(n.getToken()===-2147483527&&(k|=16),U=R(n,e),n.getToken()===18||n.getToken()===1074790415||n.getToken()===1077936155)if(q|=4,e&256&&(F&537079808)===537079808?k|=16:J2(n,e,f,F,0),u&&n2(n,e,u,E,f,d),P(n,e|8192,1077936155)){k|=8;let B=M(n,e,t,1,i,n.tokenIndex,n.tokenLine,n.tokenColumn);k|=n.destructible&256?256:0|n.destructible&128?128:0,D=s(n,e,v,w,I,{type:\"AssignmentPattern\",left:e&134217728?Object.assign({},U):U,right:B})}else k|=(F===209006?128:0)|(F===-2147483528?16:0),D=e&134217728?Object.assign({},U):U;else if(P(n,e|8192,21)){let{tokenIndex:B,tokenLine:L,tokenColumn:S}=n;if(E===\"__proto__\"&&h++,n.getToken()&143360){let D2=n.getToken(),t2=n.tokenValue;D=_(n,e,t,f,0,1,i,1,B,L,S);let p=n.getToken();D=O(n,e,t,D,i,0,B,L,S),n.getToken()===18||n.getToken()===1074790415?p===1077936155||p===1074790415||p===18?(k|=n.destructible&128?128:0,n.assignable&2?k|=16:u&&(D2&143360)===143360&&n2(n,e,u,t2,f,d)):k|=n.assignable&1?32:16:(n.getToken()&4194304)===4194304?(n.assignable&2?k|=16:p!==1077936155?k|=32:u&&n2(n,e,u,t2,f,d),D=J(n,e,t,i,l,B,L,S,D)):(k|=16,(n.getToken()&8388608)===8388608&&(D=f2(n,e,t,1,B,L,S,4,p,D)),P(n,e|8192,22)&&(D=c2(n,e,t,D,B,L,S)))}else(n.getToken()&2097152)===2097152?(D=n.getToken()===69271571?Q(n,e,u,t,0,i,l,f,d,B,L,S):Z(n,e,u,t,0,i,l,f,d,B,L,S),k=n.destructible,n.assignable=k&16?2:1,n.getToken()===18||n.getToken()===1074790415?n.assignable&2&&(k|=16):n.destructible&8?c(n,71):(D=O(n,e,t,D,i,0,B,L,S),k=n.assignable&2?16:0,(n.getToken()&4194304)===4194304?D=N2(n,e,t,i,l,B,L,S,D):((n.getToken()&8388608)===8388608&&(D=f2(n,e,t,1,B,L,S,4,F,D)),P(n,e|8192,22)&&(D=c2(n,e,t,D,B,L,S)),k|=n.assignable&2?16:32))):(D=Y(n,e,t,1,i,1,B,L,S),k|=n.assignable&1?32:16,n.getToken()===18||n.getToken()===1074790415?n.assignable&2&&(k|=16):(D=O(n,e,t,D,i,0,B,L,S),k=n.assignable&2?16:0,n.getToken()!==18&&F!==1074790415&&(n.getToken()!==1077936155&&(k|=16),D=J(n,e,t,i,l,B,L,S,D))))}else n.getToken()===69271571?(k|=16,F===209005&&(q|=16),q|=(F===12400?256:F===12401?512:1)|2,U=y2(n,e,t,i),k|=n.assignable,D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):n.getToken()&143360?(k|=16,F===-2147483528&&c(n,95),F===209005?(n.flags&1&&c(n,132),q|=17):F===12400?q|=256:F===12401?q|=512:c(n,0),U=R(n,e),D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):n.getToken()===67174411?(k|=16,q|=1,D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):n.getToken()===8391476?(k|=16,F===12400?c(n,42):F===12401?c(n,43):F!==209005&&c(n,30,V[52]),b(n,e),q|=9|(F===209005?16:0),n.getToken()&143360?U=R(n,e):(n.getToken()&134217728)===134217728?U=H(n,e):n.getToken()===69271571?(q|=2,U=y2(n,e,t,i),k|=n.assignable):c(n,30,V[n.getToken()&255]),D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):(n.getToken()&134217728)===134217728?(F===209005&&(q|=16),q|=F===12400?256:F===12401?512:1,k|=16,U=H(n,e),D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):c(n,133);else if((n.getToken()&134217728)===134217728)if(U=H(n,e),n.getToken()===21){C(n,e|8192,21);let{tokenIndex:B,tokenLine:L,tokenColumn:S}=n;if(E===\"__proto__\"&&h++,n.getToken()&143360){D=_(n,e,t,f,0,1,i,1,B,L,S);let{tokenValue:D2}=n,t2=n.getToken();D=O(n,e,t,D,i,0,B,L,S),n.getToken()===18||n.getToken()===1074790415?t2===1077936155||t2===1074790415||t2===18?n.assignable&2?k|=16:u&&n2(n,e,u,D2,f,d):k|=n.assignable&1?32:16:n.getToken()===1077936155?(n.assignable&2&&(k|=16),D=J(n,e,t,i,l,B,L,S,D)):(k|=16,D=J(n,e,t,i,l,B,L,S,D))}else(n.getToken()&2097152)===2097152?(D=n.getToken()===69271571?Q(n,e,u,t,0,i,l,f,d,B,L,S):Z(n,e,u,t,0,i,l,f,d,B,L,S),k=n.destructible,n.assignable=k&16?2:1,n.getToken()===18||n.getToken()===1074790415?n.assignable&2&&(k|=16):(n.destructible&8)!==8&&(D=O(n,e,t,D,i,0,B,L,S),k=n.assignable&2?16:0,(n.getToken()&4194304)===4194304?D=N2(n,e,t,i,l,B,L,S,D):((n.getToken()&8388608)===8388608&&(D=f2(n,e,t,1,B,L,S,4,F,D)),P(n,e|8192,22)&&(D=c2(n,e,t,D,B,L,S)),k|=n.assignable&2?16:32))):(D=Y(n,e,t,1,0,1,B,L,S),k|=n.assignable&1?32:16,n.getToken()===18||n.getToken()===1074790415?n.assignable&2&&(k|=16):(D=O(n,e,t,D,i,0,B,L,S),k=n.assignable&1?0:16,n.getToken()!==18&&n.getToken()!==1074790415&&(n.getToken()!==1077936155&&(k|=16),D=J(n,e,t,i,l,B,L,S,D))))}else n.getToken()===67174411?(q|=1,D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn),k=n.assignable|16):c(n,134);else if(n.getToken()===69271571)if(U=y2(n,e,t,i),k|=n.destructible&256?256:0,q|=2,n.getToken()===21){b(n,e|8192);let{tokenIndex:B,tokenLine:L,tokenColumn:S,tokenValue:D2}=n,t2=n.getToken();if(n.getToken()&143360){D=_(n,e,t,f,0,1,i,1,B,L,S);let p=n.getToken();D=O(n,e,t,D,i,0,B,L,S),(n.getToken()&4194304)===4194304?(k|=n.assignable&2?16:p===1077936155?0:32,D=N2(n,e,t,i,l,B,L,S,D)):n.getToken()===18||n.getToken()===1074790415?p===1077936155||p===1074790415||p===18?n.assignable&2?k|=16:u&&(t2&143360)===143360&&n2(n,e,u,D2,f,d):k|=n.assignable&1?32:16:(k|=16,D=J(n,e,t,i,l,B,L,S,D))}else(n.getToken()&2097152)===2097152?(D=n.getToken()===69271571?Q(n,e,u,t,0,i,l,f,d,B,L,S):Z(n,e,u,t,0,i,l,f,d,B,L,S),k=n.destructible,n.assignable=k&16?2:1,n.getToken()===18||n.getToken()===1074790415?n.assignable&2&&(k|=16):k&8?c(n,62):(D=O(n,e,t,D,i,0,B,L,S),k=n.assignable&2?k|16:0,(n.getToken()&4194304)===4194304?(n.getToken()!==1077936155&&(k|=16),D=N2(n,e,t,i,l,B,L,S,D)):((n.getToken()&8388608)===8388608&&(D=f2(n,e,t,1,B,L,S,4,F,D)),P(n,e|8192,22)&&(D=c2(n,e,t,D,B,L,S)),k|=n.assignable&2?16:32))):(D=Y(n,e,t,1,0,1,B,L,S),k|=n.assignable&1?32:16,n.getToken()===18||n.getToken()===1074790415?n.assignable&2&&(k|=16):(D=O(n,e,t,D,i,0,B,L,S),k=n.assignable&1?0:16,n.getToken()!==18&&n.getToken()!==1074790415&&(n.getToken()!==1077936155&&(k|=16),D=J(n,e,t,i,l,B,L,S,D))))}else n.getToken()===67174411?(q|=1,D=x(n,e,t,q,i,n.tokenIndex,w,I),k=16):c(n,44);else if(F===8391476)if(C(n,e|8192,8391476),q|=8,n.getToken()&143360){let B=n.getToken();U=R(n,e),q|=1,n.getToken()===67174411?(k|=16,D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):$(n.tokenIndex,n.tokenLine,n.tokenColumn,n.index,n.line,n.column,B===209005?46:B===12400||n.getToken()===12401?45:47,V[B&255])}else(n.getToken()&134217728)===134217728?(k|=16,U=H(n,e),q|=1,D=x(n,e,t,q,i,v,w,I)):n.getToken()===69271571?(k|=16,q|=3,U=y2(n,e,t,i),D=x(n,e,t,q,i,n.tokenIndex,n.tokenLine,n.tokenColumn)):c(n,126);else c(n,30,V[F&255]);k|=n.destructible&128?128:0,n.destructible=k,a.push(s(n,e,v,w,I,{type:\"Property\",key:U,value:D,kind:q&768?q&512?\"set\":\"get\":\"init\",computed:(q&2)>0,method:(q&1)>0,shorthand:(q&4)>0}))}if(k|=n.destructible,n.getToken()!==18)break;b(n,e)}C(n,e,1074790415),h>1&&(k|=64);let T=s(n,e,g,m,y,{type:l?\"ObjectPattern\":\"ObjectExpression\",properties:a});return!o&&n.getToken()&4194304?ie(n,e,t,k,i,l,g,m,y,T):(n.destructible=k,T)}function Zu(n,e,u,t,o,i,l){C(n,e,67174411);let f=[];if(n.flags=(n.flags|128)^128,n.getToken()===16)return o&512&&c(n,37,\"Setter\",\"one\",\"\"),b(n,e),f;o&256&&c(n,37,\"Getter\",\"no\",\"s\"),o&512&&n.getToken()===14&&c(n,38),e=(e|33554432)^33554432;let d=0,g=0;for(;n.getToken()!==18;){let m=null,{tokenIndex:y,tokenLine:a,tokenColumn:k}=n;if(n.getToken()&143360?(e&256||((n.getToken()&36864)===36864&&(n.flags|=256),(n.getToken()&537079808)===537079808&&(n.flags|=512)),m=hn(n,e,u,o|1,0,y,a,k)):(n.getToken()===2162700?m=Z(n,e,u,t,1,l,1,i,0,y,a,k):n.getToken()===69271571?m=Q(n,e,u,t,1,l,1,i,0,y,a,k):n.getToken()===14&&(m=b2(n,e,u,t,16,i,0,0,l,1,y,a,k)),g=1,n.destructible&48&&c(n,50)),n.getToken()===1077936155){b(n,e|8192),g=1;let h=M(n,e,t,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);m=s(n,e,y,a,k,{type:\"AssignmentPattern\",left:m,right:h})}if(d++,f.push(m),!P(n,e,18)||n.getToken()===16)break}return o&512&&d!==1&&c(n,37,\"Setter\",\"one\",\"\"),u&&u.scopeError&&z2(u.scopeError),g&&(n.flags|=128),C(n,e,16),f}function y2(n,e,u,t){b(n,e|8192);let o=M(n,(e|33554432)^33554432,u,1,t,n.tokenIndex,n.tokenLine,n.tokenColumn);return C(n,e,20),o}function Gu(n,e,u,t,o,i,l,f,d){n.flags=(n.flags|128)^128;let{tokenIndex:g,tokenLine:m,tokenColumn:y}=n;b(n,e|8192|67108864);let a=e&16?j(a2(),1024):void 0;if(e=(e|33554432)^33554432,P(n,e,16))return X2(n,e,a,u,[],t,0,l,f,d);let k=0;n.destructible&=-385;let h,T=[],E=0,w=0,I=0,{tokenIndex:v,tokenLine:F,tokenColumn:q}=n;for(n.assignable=1;n.getToken()!==16;){let{tokenIndex:U,tokenLine:D,tokenColumn:B}=n,L=n.getToken();if(L&143360)a&&g2(n,e,a,n.tokenValue,1,0),(L&537079808)===537079808?w=1:(L&36864)===36864&&(I=1),h=_(n,e,u,o,0,1,1,1,U,D,B),n.getToken()===16||n.getToken()===18?n.assignable&2&&(k|=16,w=1):(n.getToken()===1077936155?w=1:k|=16,h=O(n,e,u,h,1,0,U,D,B),n.getToken()!==16&&n.getToken()!==18&&(h=J(n,e,u,1,0,U,D,B,h)));else if((L&2097152)===2097152)h=L===2162700?Z(n,e|67108864,a,u,0,1,0,o,i,U,D,B):Q(n,e|67108864,a,u,0,1,0,o,i,U,D,B),k|=n.destructible,w=1,n.assignable=2,n.getToken()!==16&&n.getToken()!==18&&(k&8&&c(n,122),h=O(n,e,u,h,0,0,U,D,B),k|=16,n.getToken()!==16&&n.getToken()!==18&&(h=J(n,e,u,0,0,U,D,B,h)));else if(L===14){h=b2(n,e,a,u,16,o,i,0,1,0,U,D,B),n.destructible&16&&c(n,74),w=1,E&&(n.getToken()===16||n.getToken()===18)&&T.push(h),k|=8;break}else{if(k|=16,h=M(n,e,u,1,1,U,D,B),E&&(n.getToken()===16||n.getToken()===18)&&T.push(h),n.getToken()===18&&(E||(E=1,T=[h])),E){for(;P(n,e|8192,18);)T.push(M(n,e,u,1,1,n.tokenIndex,n.tokenLine,n.tokenColumn));n.assignable=2,h=s(n,e,v,F,q,{type:\"SequenceExpression\",expressions:T})}return C(n,e,16),n.destructible=k,h}if(E&&(n.getToken()===16||n.getToken()===18)&&T.push(h),!P(n,e|8192,18))break;if(E||(E=1,T=[h]),n.getToken()===16){k|=8;break}}return E&&(n.assignable=2,h=s(n,e,v,F,q,{type:\"SequenceExpression\",expressions:T})),C(n,e,16),k&16&&k&8&&c(n,151),k|=n.destructible&256?256:0|n.destructible&128?128:0,n.getToken()===10?(k&48&&c(n,49),e&524800&&k&128&&c(n,31),e&262400&&k&256&&c(n,32),w&&(n.flags|=128),I&&(n.flags|=256),X2(n,e,a,u,E?T:[h],t,0,l,f,d)):(k&64&&c(n,63),k&8&&c(n,144),n.destructible=(n.destructible|256)^256|k,e&32?s(n,e,g,m,y,{type:\"ParenthesizedExpression\",expression:h}):h)}function yn(n,e,u,t,o,i){let{tokenValue:l}=n,f=0,d=0;(n.getToken()&537079808)===537079808?f=1:(n.getToken()&36864)===36864&&(d=1);let g=R(n,e);if(n.assignable=1,n.getToken()===10){let m;return e&16&&(m=K2(n,e,l)),f&&(n.flags|=128),d&&(n.flags|=256),F2(n,e,m,u,[g],0,t,o,i)}return g}function _2(n,e,u,t,o,i,l,f,d,g,m){l||c(n,57),i&&c(n,51),n.flags&=-129;let y=e&16?K2(n,e,t):void 0;return F2(n,e,y,u,[o],f,d,g,m)}function X2(n,e,u,t,o,i,l,f,d,g){i||c(n,57);for(let m=0;m0&&n.tokenValue===\"constructor\"&&c(n,109),n.getToken()===1074790415&&c(n,108),P(n,e,1074790417)){E>0&&c(n,120);continue}h.push(de(n,e,t,y,u,i,T,0,f,n.tokenIndex,n.tokenLine,n.tokenColumn))}return C(n,l&8?e|8192:e,1074790415),y&&tu(y),n.flags=n.flags&-33|k,s(n,e,d,g,m,{type:\"ClassBody\",body:h})}function de(n,e,u,t,o,i,l,f,d,g,m,y){let a=f?32:0,k=null,{tokenIndex:h,tokenLine:T,tokenColumn:E}=n,w=n.getToken();if(w&176128||w===-2147483528)switch(k=R(n,e),w){case 36970:if(!f&&n.getToken()!==67174411&&(n.getToken()&1048576)!==1048576&&n.getToken()!==1077936155)return de(n,e,u,t,o,i,l,1,d,g,m,y);break;case 209005:if(n.getToken()!==67174411&&!(n.flags&1)){if((n.getToken()&1073741824)===1073741824)return T2(n,e,t,k,a,l,h,T,E);a|=16|(fn(n,e,8391476)?8:0)}break;case 12400:if(n.getToken()!==67174411){if((n.getToken()&1073741824)===1073741824)return T2(n,e,t,k,a,l,h,T,E);a|=256}break;case 12401:if(n.getToken()!==67174411){if((n.getToken()&1073741824)===1073741824)return T2(n,e,t,k,a,l,h,T,E);a|=512}break;case 12402:if(n.getToken()!==67174411&&!(n.flags&1)){if((n.getToken()&1073741824)===1073741824)return T2(n,e,t,k,a,l,h,T,E);e&1&&(a|=1024)}break}else if(w===69271571)a|=2,k=y2(n,o,t,d);else if((w&134217728)===134217728)k=H(n,e);else if(w===8391476)a|=8,b(n,e);else if(n.getToken()===130)a|=8192,k=H2(n,e|4096,t,768,h,T,E);else if((n.getToken()&1073741824)===1073741824)a|=128;else{if(f&&w===2162700)return Iu(n,e|4096,u,t,h,T,E);w===-2147483527?(k=R(n,e),n.getToken()!==67174411&&c(n,30,V[n.getToken()&255])):c(n,30,V[n.getToken()&255])}if(a&1816&&(n.getToken()&143360||n.getToken()===-2147483528||n.getToken()===-2147483527?k=R(n,e):(n.getToken()&134217728)===134217728?k=H(n,e):n.getToken()===69271571?(a|=2,k=y2(n,e,t,0)):n.getToken()===130?(a|=8192,k=H2(n,e,t,a,h,T,E)):c(n,135)),a&2||(n.tokenValue===\"constructor\"?((n.getToken()&1073741824)===1073741824?c(n,129):!(a&32)&&n.getToken()===67174411&&(a&920?c(n,53,\"accessor\"):e&131072||(n.flags&32?c(n,54):n.flags|=32)),a|=64):!(a&8192)&&a&32&&n.tokenValue===\"prototype\"&&c(n,52)),a&1024||n.getToken()!==67174411&&!(a&768))return T2(n,e,t,k,a,l,h,T,E);let I=x(n,e|4096,t,a,d,n.tokenIndex,n.tokenLine,n.tokenColumn);return s(n,e,g,m,y,{type:\"MethodDefinition\",kind:!(a&32)&&a&64?\"constructor\":a&256?\"get\":a&512?\"set\":\"method\",static:(a&32)>0,computed:(a&2)>0,key:k,value:I,...e&1?{decorators:l}:null})}function H2(n,e,u,t,o,i,l){b(n,e);let{tokenValue:f}=n;return f===\"constructor\"&&c(n,128),e&16&&(u||c(n,4,f),t?eu(n,u,f,t):uu(n,u,f)),b(n,e),s(n,e,o,i,l,{type:\"PrivateIdentifier\",name:f})}function T2(n,e,u,t,o,i,l,f,d){let g=null;if(o&8&&c(n,0),n.getToken()===1077936155){b(n,e|8192);let{tokenIndex:m,tokenLine:y,tokenColumn:a}=n;n.getToken()===537079927&&c(n,119);let k=2883584|(o&64?0:4325376);e=(e|k)^k|(o&8?262144:0)|(o&16?524288:0)|(o&64?4194304:0)|65536|16777216,g=_(n,e|4096,u,2,0,1,0,1,m,y,a),((n.getToken()&1073741824)!==1073741824||(n.getToken()&4194304)===4194304)&&(g=O(n,e|4096,u,g,0,0,m,y,a),g=J(n,e|4096,u,0,0,m,y,a,g))}return K(n,e),s(n,e,l,f,d,{type:o&1024?\"AccessorProperty\":\"PropertyDefinition\",key:t,value:g,static:(o&32)>0,computed:(o&2)>0,...e&1?{decorators:i}:null})}function ge(n,e,u,t,o,i,l,f,d){if(n.getToken()&143360||!(e&256)&&n.getToken()===-2147483527)return hn(n,e,u,o,i,l,f,d);(n.getToken()&2097152)!==2097152&&c(n,30,V[n.getToken()&255]);let g=n.getToken()===69271571?Q(n,e,u,t,1,0,1,o,i,l,f,d):Z(n,e,u,t,1,0,1,o,i,l,f,d);return n.destructible&16&&c(n,50),n.destructible&32&&c(n,50),g}function hn(n,e,u,t,o,i,l,f){let{tokenValue:d}=n,g=n.getToken();return e&256&&((g&537079808)===537079808?c(n,119):((g&36864)===36864||g===-2147483527)&&c(n,118)),(g&20480)===20480&&c(n,102),g===241771&&(e&262144&&c(n,32),e&512&&c(n,111)),(g&255)===73&&t&24&&c(n,100),g===209006&&(e&524288&&c(n,176),e&512&&c(n,110)),b(n,e),u&&n2(n,e,u,d,t,o),s(n,e,i,l,f,{type:\"Identifier\",name:d})}function Q2(n,e,u,t,o,i,l){if(t||C(n,e,8456256),n.getToken()===8390721){let m=u1(n,e,o,i,l),[y,a]=l1(n,e,u,t);return s(n,e,o,i,l,{type:\"JSXFragment\",openingFragment:m,children:y,closingFragment:a})}n.getToken()===8457014&&c(n,30,V[n.getToken()&255]);let f=null,d=[],g=g1(n,e,u,t,o,i,l);if(!g.selfClosing){[d,f]=o1(n,e,u,t);let m=j2(f.name);j2(g.name)!==m&&c(n,155,m)}return s(n,e,o,i,l,{type:\"JSXElement\",children:d,openingElement:g,closingElement:f})}function u1(n,e,u,t,o){return w2(n,e),s(n,e,u,t,o,{type:\"JSXOpeningFragment\"})}function t1(n,e,u,t,o,i){C(n,e,8457014);let l=me(n,e,n.tokenIndex,n.tokenLine,n.tokenColumn);return n.getToken()!==8390721&&c(n,25,V[65]),u?w2(n,e):b(n,e),s(n,e,t,o,i,{type:\"JSXClosingElement\",name:l})}function i1(n,e,u,t,o,i){return C(n,e,8457014),n.getToken()!==8390721&&c(n,25,V[65]),u?w2(n,e):b(n,e),s(n,e,t,o,i,{type:\"JSXClosingFragment\"})}function o1(n,e,u,t){let o=[];for(;;){let i=f1(n,e,u,t,n.tokenIndex,n.tokenLine,n.tokenColumn);if(i.type===\"JSXClosingElement\")return[o,i];o.push(i)}}function l1(n,e,u,t){let o=[];for(;;){let i=d1(n,e,u,t,n.tokenIndex,n.tokenLine,n.tokenColumn);if(i.type===\"JSXClosingFragment\")return[o,i];o.push(i)}}function f1(n,e,u,t,o,i,l){if(n.getToken()===137)return ce(n,e,o,i,l);if(n.getToken()===2162700)return An(n,e,u,1,0,o,i,l);if(n.getToken()===8456256)return b(n,e),n.getToken()===8457014?t1(n,e,t,o,i,l):Q2(n,e,u,1,o,i,l);c(n,0)}function d1(n,e,u,t,o,i,l){if(n.getToken()===137)return ce(n,e,o,i,l);if(n.getToken()===2162700)return An(n,e,u,1,0,o,i,l);if(n.getToken()===8456256)return b(n,e),n.getToken()===8457014?i1(n,e,t,o,i,l):Q2(n,e,u,1,o,i,l);c(n,0)}function ce(n,e,u,t,o){b(n,e);let i={type:\"JSXText\",value:n.tokenValue};return e&128&&(i.raw=n.tokenRaw),s(n,e,u,t,o,i)}function g1(n,e,u,t,o,i,l){(n.getToken()&143360)!==143360&&(n.getToken()&4096)!==4096&&c(n,0);let f=me(n,e,n.tokenIndex,n.tokenLine,n.tokenColumn),d=m1(n,e,u),g=n.getToken()===8457014;return g&&C(n,e,8457014),n.getToken()!==8390721&&c(n,25,V[65]),t||!g?w2(n,e):b(n,e),s(n,e,o,i,l,{type:\"JSXOpeningElement\",name:f,attributes:d,selfClosing:g})}function me(n,e,u,t,o){x2(n);let i=Z2(n,e,u,t,o);if(n.getToken()===21)return ke(n,e,i,u,t,o);for(;P(n,e,67108877);)x2(n),i=c1(n,e,i,u,t,o);return i}function c1(n,e,u,t,o,i){let l=Z2(n,e,n.tokenIndex,n.tokenLine,n.tokenColumn);return s(n,e,t,o,i,{type:\"JSXMemberExpression\",object:u,property:l})}function m1(n,e,u){let t=[];for(;n.getToken()!==8457014&&n.getToken()!==8390721&&n.getToken()!==1048576;)t.push(a1(n,e,u,n.tokenIndex,n.tokenLine,n.tokenColumn));return t}function k1(n,e,u,t,o,i){b(n,e),C(n,e,14);let l=M(n,e,u,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);return C(n,e,1074790415),s(n,e,t,o,i,{type:\"JSXSpreadAttribute\",argument:l})}function a1(n,e,u,t,o,i){if(n.getToken()===2162700)return k1(n,e,u,t,o,i);x2(n);let l=null,f=Z2(n,e,t,o,i);if(n.getToken()===21&&(f=ke(n,e,f,t,o,i)),n.getToken()===1077936155){let d=Ge(n,e),{tokenIndex:g,tokenLine:m,tokenColumn:y}=n;switch(d){case 134283267:l=H(n,e);break;case 8456256:l=Q2(n,e,u,0,g,m,y);break;case 2162700:l=An(n,e,u,0,1,g,m,y);break;default:c(n,154)}}return s(n,e,t,o,i,{type:\"JSXAttribute\",value:l,name:f})}function ke(n,e,u,t,o,i){C(n,e,21);let l=Z2(n,e,n.tokenIndex,n.tokenLine,n.tokenColumn);return s(n,e,t,o,i,{type:\"JSXNamespacedName\",namespace:u,name:l})}function An(n,e,u,t,o,i,l,f){b(n,e|8192);let{tokenIndex:d,tokenLine:g,tokenColumn:m}=n;if(n.getToken()===14)return y1(n,e,u,i,l,f);let y=null;return n.getToken()===1074790415?(o&&c(n,157),y=s1(n,e,n.startIndex,n.startLine,n.startColumn)):y=M(n,e,u,1,0,d,g,m),n.getToken()!==1074790415&&c(n,25,V[15]),t?w2(n,e):b(n,e),s(n,e,i,l,f,{type:\"JSXExpressionContainer\",expression:y})}function y1(n,e,u,t,o,i){C(n,e,14);let l=M(n,e,u,1,0,n.tokenIndex,n.tokenLine,n.tokenColumn);return C(n,e,1074790415),s(n,e,t,o,i,{type:\"JSXSpreadChild\",expression:l})}function s1(n,e,u,t,o){return n.startIndex=n.tokenIndex,n.startLine=n.tokenLine,n.startColumn=n.tokenColumn,s(n,e,u,t,o,{type:\"JSXEmptyExpression\"})}function Z2(n,e,u,t,o){let{tokenValue:i}=n;return b(n,e),s(n,e,u,t,o,{type:\"JSXIdentifier\",name:i})}function ae(n,e){return du(n,e,0)}function h1(n,e){let u=new SyntaxError(n+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(u,e)}var ye=h1;function A1(n){let e=[];for(let u of n)try{return u()}catch(t){e.push(t)}throw Object.assign(new Error(\"All combinations failed\"),{errors:e})}var se=A1;var b1=(n,e,u)=>{if(!(n&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[u<0?e.length+u:u]:e.at(u)},bn=b1;function D1(n){return Array.isArray(n)&&n.length>0}var he=D1;function G(n){var t,o,i;let e=((t=n.range)==null?void 0:t[0])??n.start,u=(i=((o=n.declaration)==null?void 0:o.decorators)??n.decorators)==null?void 0:i[0];return u?Math.min(G(u),e):e}function u2(n){var e;return((e=n.range)==null?void 0:e[1])??n.end}function T1(n){let e=new Set(n);return u=>e.has(u==null?void 0:u.type)}var Ae=T1;var C1=Ae([\"Block\",\"CommentBlock\",\"MultiLine\"]),q2=C1;function E1(n){let e=`*${n.value}*`.split(`\n`);return e.length>1&&e.every(u=>u.trimStart()[0]===\"*\")}var Dn=E1;function w1(n){return q2(n)&&n.value[0]===\"*\"&&/@(?:type|satisfies)\\b/u.test(n.value)}var be=w1;var S2=null;function P2(n){if(S2!==null&&typeof S2.property){let e=S2;return S2=P2.prototype=null,e}return S2=P2.prototype=n??Object.create(null),new P2}var B1=10;for(let n=0;n<=B1;n++)P2();function Tn(n){return P2(n)}function I1(n,e=\"type\"){Tn(n);function u(t){let o=t[e],i=n[o];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${o}'.`),{node:t});return i}return u}var De=I1;var Te={ArrayExpression:[\"elements\"],AssignmentExpression:[\"left\",\"right\"],BinaryExpression:[\"left\",\"right\"],InterpreterDirective:[],Directive:[\"value\"],DirectiveLiteral:[],BlockStatement:[\"directives\",\"body\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],CatchClause:[\"param\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExpressionStatement:[\"expression\"],File:[\"program\"],ForInStatement:[\"left\",\"right\",\"body\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"typeAnnotation\",\"decorators\"],IfStatement:[\"test\",\"consequent\",\"alternate\"],LabeledStatement:[\"label\",\"body\"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],NewExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],Program:[\"directives\",\"body\"],ObjectExpression:[\"properties\"],ObjectMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectProperty:[\"key\",\"value\",\"decorators\"],RestElement:[\"argument\",\"typeAnnotation\",\"decorators\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],ParenthesizedExpression:[\"expression\"],SwitchCase:[\"test\",\"consequent\"],SwitchStatement:[\"discriminant\",\"cases\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],AssignmentPattern:[\"left\",\"right\",\"decorators\",\"typeAnnotation\"],ArrayPattern:[\"elements\",\"typeAnnotation\",\"decorators\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],ClassBody:[\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ExportAllDeclaration:[\"source\",\"attributes\",\"exported\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],ExportSpecifier:[\"local\",\"exported\"],ForOfStatement:[\"left\",\"right\",\"body\"],ImportDeclaration:[\"specifiers\",\"source\",\"attributes\"],ImportDefaultSpecifier:[\"local\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],ImportExpression:[\"source\",\"options\"],MetaProperty:[\"meta\",\"property\"],ClassMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectPattern:[\"properties\",\"typeAnnotation\",\"decorators\"],SpreadElement:[\"argument\"],Super:[],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\",\"typeArguments\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],YieldExpression:[\"argument\"],AwaitExpression:[\"argument\"],BigIntLiteral:[],ExportNamespaceSpecifier:[\"exported\"],OptionalMemberExpression:[\"object\",\"property\"],OptionalCallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],ClassProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],ClassPrivateProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassPrivateMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],PrivateName:[\"id\"],StaticBlock:[\"body\"],AnyTypeAnnotation:[],ArrayTypeAnnotation:[\"elementType\"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:[\"id\",\"typeParameters\"],DeclareClass:[\"id\",\"typeParameters\",\"extends\",\"mixins\",\"implements\",\"body\"],DeclareFunction:[\"id\",\"predicate\"],DeclareInterface:[\"id\",\"typeParameters\",\"extends\",\"body\"],DeclareModule:[\"id\",\"body\"],DeclareModuleExports:[\"typeAnnotation\"],DeclareTypeAlias:[\"id\",\"typeParameters\",\"right\"],DeclareOpaqueType:[\"id\",\"typeParameters\",\"supertype\"],DeclareVariable:[\"id\"],DeclareExportDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],DeclareExportAllDeclaration:[\"source\",\"attributes\"],DeclaredPredicate:[\"value\"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:[\"typeParameters\",\"params\",\"rest\",\"returnType\",\"this\"],FunctionTypeParam:[\"name\",\"typeAnnotation\"],GenericTypeAnnotation:[\"id\",\"typeParameters\"],InferredPredicate:[],InterfaceExtends:[\"id\",\"typeParameters\"],InterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],InterfaceTypeAnnotation:[\"extends\",\"body\"],IntersectionTypeAnnotation:[\"types\"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:[\"typeAnnotation\"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:[\"properties\",\"indexers\",\"callProperties\",\"internalSlots\"],ObjectTypeInternalSlot:[\"id\",\"value\"],ObjectTypeCallProperty:[\"value\"],ObjectTypeIndexer:[\"variance\",\"id\",\"key\",\"value\"],ObjectTypeProperty:[\"key\",\"value\",\"variance\"],ObjectTypeSpreadProperty:[\"argument\"],OpaqueType:[\"id\",\"typeParameters\",\"supertype\",\"impltype\"],QualifiedTypeIdentifier:[\"qualification\",\"id\"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:[\"types\",\"elementTypes\"],TypeofTypeAnnotation:[\"argument\",\"typeArguments\"],TypeAlias:[\"id\",\"typeParameters\",\"right\"],TypeAnnotation:[\"typeAnnotation\"],TypeCastExpression:[\"expression\",\"typeAnnotation\"],TypeParameter:[\"bound\",\"default\",\"variance\"],TypeParameterDeclaration:[\"params\"],TypeParameterInstantiation:[\"params\"],UnionTypeAnnotation:[\"types\"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:[\"id\",\"body\"],EnumBooleanBody:[\"members\"],EnumNumberBody:[\"members\"],EnumStringBody:[\"members\"],EnumSymbolBody:[\"members\"],EnumBooleanMember:[\"id\",\"init\"],EnumNumberMember:[\"id\",\"init\"],EnumStringMember:[\"id\",\"init\"],EnumDefaultedMember:[\"id\"],IndexedAccessType:[\"objectType\",\"indexType\"],OptionalIndexedAccessType:[\"objectType\",\"indexType\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXSpreadChild:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\",\"typeArguments\",\"typeParameters\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:[\"object\",\"callee\"],ImportAttribute:[\"key\",\"value\"],Decorator:[\"expression\"],DoExpression:[\"body\"],ExportDefaultSpecifier:[\"exported\"],RecordExpression:[\"properties\"],TupleExpression:[\"elements\"],ModuleExpression:[\"body\"],TopicReference:[],PipelineTopicExpression:[\"expression\"],PipelineBareFunction:[\"callee\"],PipelinePrimaryTopicReference:[],TSParameterProperty:[\"parameter\",\"decorators\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\"],TSQualifiedName:[\"left\",\"right\"],TSCallSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSPropertySignature:[\"key\",\"typeAnnotation\"],TSMethodSignature:[\"key\",\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructorType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSTypeReference:[\"typeName\",\"typeParameters\",\"typeArguments\"],TSTypePredicate:[\"parameterName\",\"typeAnnotation\"],TSTypeQuery:[\"exprName\",\"typeParameters\",\"typeArguments\"],TSTypeLiteral:[\"members\"],TSArrayType:[\"elementType\"],TSTupleType:[\"elementTypes\"],TSOptionalType:[\"typeAnnotation\"],TSRestType:[\"typeAnnotation\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSUnionType:[\"types\"],TSIntersectionType:[\"types\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSInferType:[\"typeParameter\"],TSParenthesizedType:[\"typeAnnotation\"],TSTypeOperator:[\"typeAnnotation\"],TSIndexedAccessType:[\"objectType\",\"indexType\"],TSMappedType:[\"typeParameter\",\"nameType\",\"typeAnnotation\"],TSLiteralType:[\"literal\"],TSExpressionWithTypeArguments:[\"expression\",\"typeParameters\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceBody:[\"body\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSInstantiationExpression:[\"expression\",\"typeParameters\",\"typeArguments\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSSatisfiesExpression:[\"expression\",\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSModuleDeclaration:[\"id\",\"body\"],TSModuleBlock:[\"body\"],TSImportType:[\"argument\",\"qualifier\",\"typeParameters\",\"typeArguments\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSExternalModuleReference:[\"expression\"],TSNonNullExpression:[\"expression\"],TSExportAssignment:[\"expression\"],TSNamespaceExportDeclaration:[\"id\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeParameterInstantiation:[\"params\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameter:[\"constraint\",\"default\",\"name\"],ChainExpression:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],Literal:[],MethodDefinition:[\"decorators\",\"key\",\"value\"],PrivateIdentifier:[],Property:[\"key\",\"value\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],AccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],TSAbstractAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAsyncKeyword:[],TSClassImplements:[\"expression\",\"typeArguments\",\"typeParameters\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumBody:[\"members\"],TSExportKeyword:[],TSInterfaceHeritage:[\"expression\",\"typeArguments\",\"typeParameters\"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],AsConstExpression:[\"expression\"],AsExpression:[\"expression\",\"typeAnnotation\"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"rendersType\"],ComponentParameter:[\"name\",\"local\"],ComponentTypeAnnotation:[\"params\",\"rest\",\"typeParameters\",\"rendersType\"],ComponentTypeParameter:[\"name\",\"typeAnnotation\"],ConditionalTypeAnnotation:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],DeclareComponent:[\"id\",\"params\",\"rest\",\"typeParameters\",\"rendersType\"],DeclareEnum:[\"id\",\"body\"],DeclareHook:[\"id\"],DeclareNamespace:[\"id\",\"body\"],EnumBigIntBody:[\"members\"],EnumBigIntMember:[\"id\",\"init\"],HookDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"returnType\"],HookTypeAnnotation:[\"params\",\"returnType\",\"rest\",\"typeParameters\"],InferTypeAnnotation:[\"typeParameter\"],KeyofTypeAnnotation:[\"argument\"],ObjectTypeMappedTypeProperty:[\"keyTparam\",\"propType\",\"sourceType\",\"variance\"],QualifiedTypeofIdentifier:[\"qualification\",\"id\"],TupleTypeLabeledElement:[\"label\",\"elementType\",\"variance\"],TupleTypeSpreadElement:[\"label\",\"typeAnnotation\"],TypeOperator:[\"typeAnnotation\"],TypePredicate:[\"parameterName\",\"typeAnnotation\",\"asserts\"],NGRoot:[\"node\"],NGPipeExpression:[\"left\",\"right\",\"arguments\"],NGChainedExpression:[\"expressions\"],NGEmptyExpression:[],NGMicrosyntax:[\"body\"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:[\"expression\",\"alias\"],NGMicrosyntaxKeyedExpression:[\"key\",\"expression\"],NGMicrosyntaxLet:[\"key\",\"value\"],NGMicrosyntaxAs:[\"key\",\"alias\"],JsExpressionRoot:[\"node\"],JsonRoot:[\"node\"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:[\"typeAnnotation\"],TSJSDocNonNullableType:[\"typeAnnotation\"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:[\"expression\",\"typeAnnotation\"]};var L1=De(Te),Ce=L1;function Cn(n,e){if(!(n!==null&&typeof n==\"object\"))return n;if(Array.isArray(n)){for(let t=0;t{var l;(l=i.leadingComments)!=null&&l.some(be)&&o.add(G(i))}),n=G2(n,i=>{if(i.type===\"ParenthesizedExpression\"){let{expression:l}=i;if(l.type===\"TypeCastExpression\")return l.range=[...i.range],l;let f=G(i);if(!o.has(f))return l.extra={...l.extra,parenthesized:!0},l}})}if(n=G2(n,o=>{switch(o.type){case\"LogicalExpression\":if(Ee(o))return En(o);break;case\"VariableDeclaration\":{let i=bn(!1,o.declarations,-1);i!=null&&i.init&&t[u2(i)]!==\";\"&&(o.range=[G(o),u2(i)]);break}case\"TSParenthesizedType\":return o.typeAnnotation;case\"TSTypeParameter\":if(typeof o.name==\"string\"){let i=G(o);o.name={type:\"Identifier\",name:o.name,range:[i,i+o.name.length]}}break;case\"TopicReference\":n.extra={...n.extra,__isUsingHackPipeline:!0};break;case\"TSUnionType\":case\"TSIntersectionType\":if(o.types.length===1)return o.types[0];break}}),he(n.comments)){let o=bn(!1,n.comments,-1);for(let i=n.comments.length-2;i>=0;i--){let l=n.comments[i];u2(l)===G(o)&&q2(l)&&q2(o)&&Dn(l)&&Dn(o)&&(n.comments.splice(i+1,1),l.value+=\"*//*\"+o.value,l.range=[G(l),u2(o)]),o=l}}return n.type===\"Program\"&&(n.range=[0,t.length]),n}function Ee(n){return n.type===\"LogicalExpression\"&&n.right.type===\"LogicalExpression\"&&n.operator===n.right.operator}function En(n){return Ee(n)?En({type:\"LogicalExpression\",operator:n.operator,left:En({type:\"LogicalExpression\",operator:n.operator,left:n.left,right:n.right.left,range:[G(n.left),u2(n.right.left)]}),right:n.right.right,range:[G(n),u2(n)]}):n}var we=F1;var q1=/\\*\\/$/,S1=/^\\/\\*\\*?/,P1=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,v1=/(^|\\s+)\\/\\/([^\\n\\r]*)/g,Be=/^(\\r?\\n)+/,N1=/(?:^|\\r?\\n) *(@[^\\n\\r]*?) *\\r?\\n *(?![^\\n\\r@]*\\/\\/[^]*)([^\\s@][^\\n\\r@]+?) *\\r?\\n/g,Ie=/(?:^|\\r?\\n) *@(\\S+) *([^\\n\\r]*)/g,V1=/(\\r?\\n|^) *\\* ?/g,O1=[];function Le(n){let e=n.match(P1);return e?e[0].trimStart():\"\"}function Fe(n){let e=`\n`;n=i2(!1,n.replace(S1,\"\").replace(q1,\"\"),V1,\"$1\");let u=\"\";for(;u!==n;)u=n,n=i2(!1,n,N1,`${e}$1 $2${e}`);n=n.replace(Be,\"\").trimEnd();let t=Object.create(null),o=i2(!1,n,Ie,\"\").replace(Be,\"\").trimEnd(),i;for(;i=Ie.exec(n);){let l=i2(!1,i[2],v1,\"\");if(typeof t[i[1]]==\"string\"||Array.isArray(t[i[1]])){let f=t[i[1]];t[i[1]]=[...O1,...Array.isArray(f)?f:[f],l]}else t[i[1]]=l}return{comments:o,pragmas:t}}function R1(n){if(!n.startsWith(\"#!\"))return\"\";let e=n.indexOf(`\n`);return e===-1?n:n.slice(0,e)}var qe=R1;function U1(n){let e=qe(n);e&&(n=n.slice(e.length+1));let u=Le(n),{pragmas:t,comments:o}=Fe(u);return{shebang:e,text:n,pragmas:t,comments:o}}function Se(n){let{pragmas:e}=U1(n);return Object.prototype.hasOwnProperty.call(e,\"prettier\")||Object.prototype.hasOwnProperty.call(e,\"format\")}function M1(n){return n=typeof n==\"function\"?{parse:n}:n,{astFormat:\"estree\",hasPragma:Se,locStart:G,locEnd:u2,...n}}var Pe=M1;function J1(n){let{filepath:e}=n;if(e){if(e=e.toLowerCase(),e.endsWith(\".cjs\")||e.endsWith(\".cts\"))return\"script\";if(e.endsWith(\".mjs\")||e.endsWith(\".mts\"))return\"module\"}}var ve=J1;var j1={next:!0,ranges:!0,webcompat:!0,loc:!0,raw:!0,directives:!0,globalReturn:!0,impliedStrict:!1,preserveParens:!1,lexical:!1,jsx:!0,uniqueKeyInPattern:!1};function X1(n,e){let u=[],t=[],o=ae(n,{...j1,module:e===\"module\",onComment:u,onToken:t});return o.comments=u,o.tokens=t,o}function H1(n){let{message:e,loc:u}=n;if(!u)return n;let t=`[${[u.start,u.end].map(({line:o,column:i})=>[o,i].join(\":\")).join(\"-\")}]: `;return e.startsWith(t)&&(e=e.slice(t.length)),ye(e,{loc:{start:{line:u.start.line,column:u.start.column+1},end:{line:u.end.line,column:u.end.column+1}},cause:n})}function z1(n,e={}){let u=ve(e),t=(u?[u]:[\"module\",\"script\"]).map(i=>()=>X1(n,i)),o;try{o=se(t)}catch({errors:[i]}){throw H1(i)}return we(o,{parser:\"meriyah\",text:n})}var K1=Pe(z1);var $0=Bn;export{$0 as default,wn as parsers};\n", "var pl=Object.create;var $r=Object.defineProperty;var hl=Object.getOwnPropertyDescriptor;var dl=Object.getOwnPropertyNames;var ml=Object.getPrototypeOf,yl=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Zs=(t,e)=>{for(var s in e)$r(t,s,{get:e[s],enumerable:!0})},gl=(t,e,s,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of dl(e))!yl.call(t,n)&&n!==s&&$r(t,n,{get:()=>e[n],enumerable:!(r=hl(e,n))||r.enumerable});return t};var xe=(t,e,s)=>(s=t!=null?pl(ml(t)):{},gl(e||!t||!t.__esModule?$r(s,\"default\",{value:t,enumerable:!0}):s,t));var xi=g((hv,rs)=>{var _=String,vi=function(){return{isColorSupported:!1,reset:_,bold:_,dim:_,italic:_,underline:_,inverse:_,hidden:_,strikethrough:_,black:_,red:_,green:_,yellow:_,blue:_,magenta:_,cyan:_,white:_,gray:_,bgBlack:_,bgRed:_,bgGreen:_,bgYellow:_,bgBlue:_,bgMagenta:_,bgCyan:_,bgWhite:_,blackBright:_,redBright:_,greenBright:_,yellowBright:_,blueBright:_,magentaBright:_,cyanBright:_,whiteBright:_,bgBlackBright:_,bgRedBright:_,bgGreenBright:_,bgYellowBright:_,bgBlueBright:_,bgMagentaBright:_,bgCyanBright:_,bgWhiteBright:_}};rs.exports=vi();rs.exports.createColors=vi});var ss=g(()=>{});var Wt=g((yv,ki)=>{\"use strict\";var bi=xi(),_i=ss(),ot=class t extends Error{constructor(e,s,r,n,i,o){super(e),this.name=\"CssSyntaxError\",this.reason=e,i&&(this.file=i),n&&(this.source=n),o&&(this.plugin=o),typeof s<\"u\"&&typeof r<\"u\"&&(typeof s==\"number\"?(this.line=s,this.column=r):(this.line=s.line,this.column=s.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+\": \":\"\",this.message+=this.file?this.file:\"\",typeof this.line<\"u\"&&(this.message+=\":\"+this.line+\":\"+this.column),this.message+=\": \"+this.reason}showSourceCode(e){if(!this.source)return\"\";let s=this.source;e==null&&(e=bi.isColorSupported);let r=f=>f,n=f=>f,i=f=>f;if(e){let{bold:f,gray:p,red:l}=bi.createColors(!0);n=y=>f(l(y)),r=y=>p(y),_i&&(i=y=>_i(y))}let o=s.split(/\\r?\\n/),u=Math.max(this.line-3,0),a=Math.min(this.line+2,o.length),c=String(a).length;return o.slice(u,a).map((f,p)=>{let l=u+1+p,y=\" \"+(\" \"+l).slice(-c)+\" | \";if(l===this.line){if(f.length>160){let h=20,d=Math.max(0,this.column-h),m=Math.max(this.column+h,this.endColumn+h),b=f.slice(d,m),w=r(y.replace(/\\d/g,\" \"))+f.slice(0,Math.min(this.column-1,h-1)).replace(/[^\\t]/g,\" \");return n(\">\")+r(y)+i(b)+`\n `+w+n(\"^\")}let x=r(y.replace(/\\d/g,\" \"))+f.slice(0,this.column-1).replace(/[^\\t]/g,\" \");return n(\">\")+r(y)+i(f)+`\n `+x+n(\"^\")}return\" \"+r(y)+i(f)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+\": \"+this.message+e}};ki.exports=ot;ot.default=ot});var Yt=g((gv,Si)=>{\"use strict\";var Ei={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:\" \",beforeRule:`\n`,colon:\": \",commentLeft:\" \",commentRight:\" \",emptyBody:\"\",indent:\" \",semicolon:!1};function mc(t){return t[0].toUpperCase()+t.slice(1)}var at=class{constructor(e){this.builder=e}atrule(e,s){let r=\"@\"+e.name,n=e.params?this.rawValue(e,\"params\"):\"\";if(typeof e.raws.afterName<\"u\"?r+=e.raws.afterName:n&&(r+=\" \"),e.nodes)this.block(e,r+n);else{let i=(e.raws.between||\"\")+(s?\";\":\"\");this.builder(r+n+i,e)}}beforeAfter(e,s){let r;e.type===\"decl\"?r=this.raw(e,null,\"beforeDecl\"):e.type===\"comment\"?r=this.raw(e,null,\"beforeComment\"):s===\"before\"?r=this.raw(e,null,\"beforeRule\"):r=this.raw(e,null,\"beforeClose\");let n=e.parent,i=0;for(;n&&n.type!==\"root\";)i+=1,n=n.parent;if(r.includes(`\n`)){let o=this.raw(e,null,\"indent\");if(o.length)for(let u=0;u0&&e.nodes[s].type===\"comment\";)s-=1;let r=this.raw(e,\"semicolon\");for(let n=0;n{if(n=a.raws[s],typeof n<\"u\")return!1})}return typeof n>\"u\"&&(n=Ei[r]),o.rawCache[r]=n,n}rawBeforeClose(e){let s;return e.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<\"u\")return s=r.raws.after,s.includes(`\n`)&&(s=s.replace(/[^\\n]+$/,\"\")),!1}),s&&(s=s.replace(/\\S/g,\"\")),s}rawBeforeComment(e,s){let r;return e.walkComments(n=>{if(typeof n.raws.before<\"u\")return r=n.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(s,null,\"beforeDecl\"):r&&(r=r.replace(/\\S/g,\"\")),r}rawBeforeDecl(e,s){let r;return e.walkDecls(n=>{if(typeof n.raws.before<\"u\")return r=n.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(s,null,\"beforeRule\"):r&&(r=r.replace(/\\S/g,\"\")),r}rawBeforeOpen(e){let s;return e.walk(r=>{if(r.type!==\"decl\"&&(s=r.raws.between,typeof s<\"u\"))return!1}),s}rawBeforeRule(e){let s;return e.walk(r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&typeof r.raws.before<\"u\")return s=r.raws.before,s.includes(`\n`)&&(s=s.replace(/[^\\n]+$/,\"\")),!1}),s&&(s=s.replace(/\\S/g,\"\")),s}rawColon(e){let s;return e.walkDecls(r=>{if(typeof r.raws.between<\"u\")return s=r.raws.between.replace(/[^\\s:]/g,\"\"),!1}),s}rawEmptyBody(e){let s;return e.walk(r=>{if(r.nodes&&r.nodes.length===0&&(s=r.raws.after,typeof s<\"u\"))return!1}),s}rawIndent(e){if(e.raws.indent)return e.raws.indent;let s;return e.walk(r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof r.raws.before<\"u\"){let i=r.raws.before.split(`\n`);return s=i[i.length-1],s=s.replace(/\\S/g,\"\"),!1}}),s}rawSemicolon(e){let s;return e.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type===\"decl\"&&(s=r.raws.semicolon,typeof s<\"u\"))return!1}),s}rawValue(e,s){let r=e[s],n=e.raws[s];return n&&n.value===r?n.raw:r}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,\"selector\")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,\"end\")}stringify(e,s){if(!this[e.type])throw new Error(\"Unknown AST node type \"+e.type+\". Maybe you need to change PostCSS stringifier.\");this[e.type](e,s)}};Si.exports=at;at.default=at});var ut=g((wv,Ti)=>{\"use strict\";var yc=Yt();function ns(t,e){new yc(e).stringify(t)}Ti.exports=ns;ns.default=ns});var zt=g((vv,is)=>{\"use strict\";is.exports.isClean=Symbol(\"isClean\");is.exports.my=Symbol(\"my\")});var pt=g((xv,Ci)=>{\"use strict\";var gc=Wt(),wc=Yt(),vc=ut(),{isClean:lt,my:xc}=zt();function os(t,e){let s=new t.constructor;for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||r===\"proxyCache\")continue;let n=t[r],i=typeof n;r===\"parent\"&&i===\"object\"?e&&(s[r]=e):r===\"source\"?s[r]=n:Array.isArray(n)?s[r]=n.map(o=>os(o,s)):(i===\"object\"&&n!==null&&(n=os(n)),s[r]=n)}return s}function ct(t,e){if(e&&typeof e.offset<\"u\")return e.offset;let s=1,r=1,n=0;for(let i=0;ie.root().toProxy():e[s]},set(e,s,r){return e[s]===r||(e[s]=r,(s===\"prop\"||s===\"value\"||s===\"name\"||s===\"params\"||s===\"important\"||s===\"text\")&&e.markDirty()),!0}}}markClean(){this[lt]=!0}markDirty(){if(this[lt]){this[lt]=!1;let e=this;for(;e=e.parent;)e[lt]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e){let s=this.source.start;if(e.index)s=this.positionInside(e.index);else if(e.word){let n=this.source.input.css.slice(ct(this.source.input.css,this.source.start),ct(this.source.input.css,this.source.end)).indexOf(e.word);n!==-1&&(s=this.positionInside(n))}return s}positionInside(e){let s=this.source.start.column,r=this.source.start.line,n=ct(this.source.input.css,this.source.start),i=n+e;for(let o=n;otypeof a==\"object\"&&a.toJSON?a.toJSON(null,s):a);else if(typeof u==\"object\"&&u.toJSON)r[o]=u.toJSON(null,s);else if(o===\"source\"){let a=s.get(u.input);a==null&&(a=i,s.set(u.input,i),i++),r[o]={end:u.end,inputId:a,start:u.start}}else r[o]=u}return n&&(r.inputs=[...s.keys()].map(o=>o.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=vc){e.stringify&&(e=e.stringify);let s=\"\";return e(this,r=>{s+=r}),s}warn(e,s,r){let n={node:this};for(let i in r)n[i]=r[i];return e.warn(s,n)}get proxyOf(){return this}};Ci.exports=ft;ft.default=ft});var Re=g((bv,Oi)=>{\"use strict\";var bc=pt(),ht=class extends bc{constructor(e){super(e),this.type=\"comment\"}};Oi.exports=ht;ht.default=ht});var mt=g((_v,Ai)=>{\"use strict\";var _c=pt(),dt=class extends _c{constructor(e){e&&typeof e.value<\"u\"&&typeof e.value!=\"string\"&&(e={...e,value:String(e.value)}),super(e),this.type=\"decl\"}get variable(){return this.prop.startsWith(\"--\")||this.prop[0]===\"$\"}};Ai.exports=dt;dt.default=dt});var ue=g((kv,Mi)=>{\"use strict\";var Ni=Re(),Pi=mt(),kc=pt(),{isClean:Ri,my:Ii}=zt(),as,qi,Li,us;function Di(t){return t.map(e=>(e.nodes&&(e.nodes=Di(e.nodes)),delete e.source,e))}function Bi(t){if(t[Ri]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)Bi(e)}var V=class t extends kc{append(...e){for(let s of e){let r=this.normalize(s,this.last);for(let n of r)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let s of this.nodes)s.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let s=this.getIterator(),r,n;for(;this.indexes[s]e[s](...r.map(n=>typeof n==\"function\"?(i,o)=>n(i.toProxy(),o):n)):s===\"every\"||s===\"some\"?r=>e[s]((n,...i)=>r(n.toProxy(),...i)):s===\"root\"?()=>e.root().toProxy():s===\"nodes\"?e.nodes.map(r=>r.toProxy()):s===\"first\"||s===\"last\"?e[s].toProxy():e[s]:e[s]},set(e,s,r){return e[s]===r||(e[s]=r,(s===\"name\"||s===\"params\"||s===\"selector\")&&e.markDirty()),!0}}}index(e){return typeof e==\"number\"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,s){let r=this.index(e),n=this.normalize(s,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let o of n)this.proxyOf.nodes.splice(r+1,0,o);let i;for(let o in this.indexes)i=this.indexes[o],r\"u\")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,\"ignore\")}else if(e.type===\"root\"&&this.type!==\"document\"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,\"ignore\")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>\"u\")throw new Error(\"Value field is missed in node creation\");typeof e.value!=\"string\"&&(e.value=String(e.value)),e=[new Pi(e)]}else if(e.selector||e.selectors)e=[new us(e)];else if(e.name)e=[new as(e)];else if(e.text)e=[new Ni(e)];else throw new Error(\"Unknown node type in node creation\");return e.map(n=>(n[Ii]||t.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[Ri]&&Bi(n),n.raws||(n.raws={}),typeof n.raws.before>\"u\"&&s&&typeof s.raws.before<\"u\"&&(n.raws.before=s.raws.before.replace(/\\S/g,\"\")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let s of e){let r=this.normalize(s,this.first,\"prepend\").reverse();for(let n of r)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+r.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let s;for(let r in this.indexes)s=this.indexes[r],s>=e&&(this.indexes[r]=s-1);return this.markDirty(),this}replaceValues(e,s,r){return r||(r=s,s={}),this.walkDecls(n=>{s.props&&!s.props.includes(n.prop)||s.fast&&!n.value.includes(s.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((s,r)=>{let n;try{n=e(s,r)}catch(i){throw s.addToError(i)}return n!==!1&&s.walk&&(n=s.walk(e)),n})}walkAtRules(e,s){return s?e instanceof RegExp?this.walk((r,n)=>{if(r.type===\"atrule\"&&e.test(r.name))return s(r,n)}):this.walk((r,n)=>{if(r.type===\"atrule\"&&r.name===e)return s(r,n)}):(s=e,this.walk((r,n)=>{if(r.type===\"atrule\")return s(r,n)}))}walkComments(e){return this.walk((s,r)=>{if(s.type===\"comment\")return e(s,r)})}walkDecls(e,s){return s?e instanceof RegExp?this.walk((r,n)=>{if(r.type===\"decl\"&&e.test(r.prop))return s(r,n)}):this.walk((r,n)=>{if(r.type===\"decl\"&&r.prop===e)return s(r,n)}):(s=e,this.walk((r,n)=>{if(r.type===\"decl\")return s(r,n)}))}walkRules(e,s){return s?e instanceof RegExp?this.walk((r,n)=>{if(r.type===\"rule\"&&e.test(r.selector))return s(r,n)}):this.walk((r,n)=>{if(r.type===\"rule\"&&r.selector===e)return s(r,n)}):(s=e,this.walk((r,n)=>{if(r.type===\"rule\")return s(r,n)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};V.registerParse=t=>{qi=t};V.registerRule=t=>{us=t};V.registerAtRule=t=>{as=t};V.registerRoot=t=>{Li=t};Mi.exports=V;V.default=V;V.rebuild=t=>{t.type===\"atrule\"?Object.setPrototypeOf(t,as.prototype):t.type===\"rule\"?Object.setPrototypeOf(t,us.prototype):t.type===\"decl\"?Object.setPrototypeOf(t,Pi.prototype):t.type===\"comment\"?Object.setPrototypeOf(t,Ni.prototype):t.type===\"root\"&&Object.setPrototypeOf(t,Li.prototype),t[Ii]=!0,t.nodes&&t.nodes.forEach(e=>{V.rebuild(e)})}});var Fi=g((Ev,Ui)=>{var Ec=\"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\",Sc=(t,e=21)=>(s=e)=>{let r=\"\",n=s;for(;n--;)r+=t[Math.random()*t.length|0];return r},Tc=(t=21)=>{let e=\"\",s=t;for(;s--;)e+=Ec[Math.random()*64|0];return e};Ui.exports={nanoid:Tc,customAlphabet:Sc}});var $i=g(()=>{});var ls=g((Cv,Wi)=>{Wi.exports=class{}});var qe=g((Av,Gi)=>{\"use strict\";var{nanoid:Cc}=Fi(),{isAbsolute:ps,resolve:hs}={},{SourceMapConsumer:Oc,SourceMapGenerator:Ac}=$i(),{fileURLToPath:Yi,pathToFileURL:Vt}={},zi=Wt(),Nc=ls(),cs=ss(),fs=Symbol(\"fromOffsetCache\"),Pc=!!(Oc&&Ac),Vi=!!(hs&&ps),Ie=class{constructor(e,s={}){if(e===null||typeof e>\"u\"||typeof e==\"object\"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]===\"\\uFEFF\"||this.css[0]===\"\\uFFFE\"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,s.from&&(!Vi||/^\\w+:\\/\\//.test(s.from)||ps(s.from)?this.file=s.from:this.file=hs(s.from)),Vi&&Pc){let r=new Nc(this.css,s);if(r.text){this.map=r;let n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=\"\"),this.map&&(this.map.file=this.from)}error(e,s,r,n={}){let i,o,u;if(s&&typeof s==\"object\"){let c=s,f=r;if(typeof c.offset==\"number\"){let p=this.fromOffset(c.offset);s=p.line,r=p.col}else s=c.line,r=c.column;if(typeof f.offset==\"number\"){let p=this.fromOffset(f.offset);o=p.line,i=p.col}else o=f.line,i=f.column}else if(!r){let c=this.fromOffset(s);s=c.line,r=c.col}let a=this.origin(s,r,o,i);return a?u=new zi(e,a.endLine===void 0?a.line:{column:a.column,line:a.line},a.endLine===void 0?a.column:{column:a.endColumn,line:a.endLine},a.source,a.file,n.plugin):u=new zi(e,o===void 0?s:{column:r,line:s},o===void 0?r:{column:i,line:o},this.css,this.file,n.plugin),u.input={column:r,endColumn:i,endLine:o,line:s,source:this.css},this.file&&(Vt&&(u.input.url=Vt(this.file).toString()),u.input.file=this.file),u}fromOffset(e){let s,r;if(this[fs])r=this[fs];else{let i=this.css.split(`\n`);r=new Array(i.length);let o=0;for(let u=0,a=i.length;u=s)n=r.length-1;else{let i=r.length-2,o;for(;n>1),e=r[o+1])n=o+1;else{n=o;break}}return{col:e-r[n]+1,line:n+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:hs(this.map.consumer().sourceRoot||this.map.root||\".\",e)}origin(e,s,r,n){if(!this.map)return!1;let i=this.map.consumer(),o=i.originalPositionFor({column:s,line:e});if(!o.source)return!1;let u;typeof r==\"number\"&&(u=i.originalPositionFor({column:n,line:r}));let a;ps(o.source)?a=Vt(o.source):a=new URL(o.source,this.map.consumer().sourceRoot||Vt(this.map.mapFile));let c={column:o.column,endColumn:u&&u.column,endLine:u&&u.line,line:o.line,url:a.toString()};if(a.protocol===\"file:\")if(Yi)c.file=Yi(a);else throw new Error(\"file: protocol is not available in this PostCSS build\");let f=i.sourceContentFor(o.source);return f&&(c.source=f),c}toJSON(){let e={};for(let s of[\"hasBOM\",\"css\",\"file\",\"id\"])this[s]!=null&&(e[s]=this[s]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};Gi.exports=Ie;Ie.default=Ie;cs&&cs.registerInput&&cs.registerInput(Ie)});var Gt=g((Nv,Hi)=>{\"use strict\";var ji=ue(),Le=class extends ji{constructor(e){super(e),this.type=\"atrule\"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Hi.exports=Le;Le.default=Le;ji.registerAtRule(Le)});var De=g((Pv,Xi)=>{\"use strict\";var Ki=ue(),Qi,Ji,le=class extends Ki{constructor(e){super(e),this.type=\"root\",this.nodes||(this.nodes=[])}normalize(e,s,r){let n=super.normalize(e);if(s){if(r===\"prepend\")this.nodes.length>1?s.raws.before=this.nodes[1].raws.before:delete s.raws.before;else if(this.first!==s)for(let i of n)i.raws.before=s.raws.before}return n}removeChild(e,s){let r=this.index(e);return!s&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}toResult(e={}){return new Qi(new Ji,this,e).stringify()}};le.registerLazyResult=t=>{Qi=t};le.registerProcessor=t=>{Ji=t};Xi.exports=le;le.default=le;Ki.registerRoot(le)});var ds=g((Rv,Zi)=>{\"use strict\";var yt={comma(t){return yt.split(t,[\",\"],!0)},space(t){let e=[\" \",`\n`,\"\t\"];return yt.split(t,e)},split(t,e,s){let r=[],n=\"\",i=!1,o=0,u=!1,a=\"\",c=!1;for(let f of t)c?c=!1:f===\"\\\\\"?c=!0:u?f===a&&(u=!1):f==='\"'||f===\"'\"?(u=!0,a=f):f===\"(\"?o+=1:f===\")\"?o>0&&(o-=1):o===0&&e.includes(f)&&(i=!0),i?(n!==\"\"&&r.push(n.trim()),n=\"\",i=!1):n+=f;return(s||n!==\"\")&&r.push(n.trim()),r}};Zi.exports=yt;yt.default=yt});var jt=g((Iv,to)=>{\"use strict\";var eo=ue(),Rc=ds(),Be=class extends eo{constructor(e){super(e),this.type=\"rule\",this.nodes||(this.nodes=[])}get selectors(){return Rc.comma(this.selector)}set selectors(e){let s=this.selector?this.selector.match(/,\\s*/):null,r=s?s[0]:\",\"+this.raw(\"between\",\"beforeOpen\");this.selector=e.join(r)}};to.exports=Be;Be.default=Be;eo.registerRule(Be)});var Qt=g((qv,so)=>{\"use strict\";var Ht=/[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g,Kt=/[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Ic=/.[\\r\\n\"'(/\\\\]/,ro=/[\\da-f]/i;so.exports=function(e,s={}){let r=e.css.valueOf(),n=s.ignoreErrors,i,o,u,a,c,f,p,l,y,x,h=r.length,d=0,m=[],b=[];function w(){return d}function v(W){throw e.error(\"Unclosed \"+W,d)}function N(){return b.length===0&&d>=h}function F(W){if(b.length)return b.pop();if(d>=h)return;let T=W?W.ignoreUnclosed:!1;switch(i=r.charCodeAt(d),i){case 10:case 32:case 9:case 13:case 12:{a=d;do a+=1,i=r.charCodeAt(a);while(i===32||i===10||i===9||i===13||i===12);f=[\"space\",r.slice(d,a)],d=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let C=String.fromCharCode(i);f=[C,C,d];break}case 40:{if(x=m.length?m.pop()[1]:\"\",y=r.charCodeAt(d+1),x===\"url\"&&y!==39&&y!==34&&y!==32&&y!==10&&y!==9&&y!==12&&y!==13){a=d;do{if(p=!1,a=r.indexOf(\")\",a+1),a===-1)if(n||T){a=d;break}else v(\"bracket\");for(l=a;r.charCodeAt(l-1)===92;)l-=1,p=!p}while(p);f=[\"brackets\",r.slice(d,a+1),d,a],d=a}else a=r.indexOf(\")\",d+1),o=r.slice(d,a+1),a===-1||Ic.test(o)?f=[\"(\",\"(\",d]:(f=[\"brackets\",o,d,a],d=a);break}case 39:case 34:{c=i===39?\"'\":'\"',a=d;do{if(p=!1,a=r.indexOf(c,a+1),a===-1)if(n||T){a=d+1;break}else v(\"string\");for(l=a;r.charCodeAt(l-1)===92;)l-=1,p=!p}while(p);f=[\"string\",r.slice(d,a+1),d,a],d=a;break}case 64:{Ht.lastIndex=d+1,Ht.test(r),Ht.lastIndex===0?a=r.length-1:a=Ht.lastIndex-2,f=[\"at-word\",r.slice(d,a+1),d,a],d=a;break}case 92:{for(a=d,u=!0;r.charCodeAt(a+1)===92;)a+=1,u=!u;if(i=r.charCodeAt(a+1),u&&i!==47&&i!==32&&i!==10&&i!==9&&i!==13&&i!==12&&(a+=1,ro.test(r.charAt(a)))){for(;ro.test(r.charAt(a+1));)a+=1;r.charCodeAt(a+1)===32&&(a+=1)}f=[\"word\",r.slice(d,a+1),d,a],d=a;break}default:{i===47&&r.charCodeAt(d+1)===42?(a=r.indexOf(\"*/\",d+2)+1,a===0&&(n||T?a=r.length:v(\"comment\")),f=[\"comment\",r.slice(d,a+1),d,a],d=a):(Kt.lastIndex=d+1,Kt.test(r),Kt.lastIndex===0?a=r.length-1:a=Kt.lastIndex-2,f=[\"word\",r.slice(d,a+1),d,a],m.push(f),d=a);break}}return d++,f}function H(W){b.push(W)}return{back:H,endOfFile:N,nextToken:F,position:w}}});var Jt=g((Lv,oo)=>{\"use strict\";var qc=Gt(),Lc=Re(),Dc=mt(),Bc=De(),no=jt(),Mc=Qt(),io={empty:!0,space:!0};function Uc(t){for(let e=t.length-1;e>=0;e--){let s=t[e],r=s[3]||s[2];if(r)return r}}var ms=class{constructor(e){this.input=e,this.root=new Bc,this.current=this.root,this.spaces=\"\",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let s=new qc;s.name=e[1].slice(1),s.name===\"\"&&this.unnamedAtrule(s,e),this.init(s,e[2]);let r,n,i,o=!1,u=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),r=e[0],r===\"(\"||r===\"[\"?c.push(r===\"(\"?\")\":\"]\"):r===\"{\"&&c.length>0?c.push(\"}\"):r===c[c.length-1]&&c.pop(),c.length===0)if(r===\";\"){s.source.end=this.getPosition(e[2]),s.source.end.offset++,this.semicolon=!0;break}else if(r===\"{\"){u=!0;break}else if(r===\"}\"){if(a.length>0){for(i=a.length-1,n=a[i];n&&n[0]===\"space\";)n=a[--i];n&&(s.source.end=this.getPosition(n[3]||n[2]),s.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}s.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(s.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(s,\"params\",a),o&&(e=a[a.length-1],s.source.end=this.getPosition(e[3]||e[2]),s.source.end.offset++,this.spaces=s.raws.between,s.raws.between=\"\")):(s.raws.afterName=\"\",s.params=\"\"),u&&(s.nodes=[],this.current=s)}checkMissedSemicolon(e){let s=this.colon(e);if(s===!1)return;let r=0,n;for(let i=s-1;i>=0&&(n=e[i],!(n[0]!==\"space\"&&(r+=1,r===2)));i--);throw this.input.error(\"Missed semicolon\",n[0]===\"word\"?n[3]+1:n[2])}colon(e){let s=0,r,n,i;for(let[o,u]of e.entries()){if(n=u,i=n[0],i===\"(\"&&(s+=1),i===\")\"&&(s-=1),s===0&&i===\":\")if(!r)this.doubleColon(n);else{if(r[0]===\"word\"&&r[1]===\"progid\")continue;return o}r=n}return!1}comment(e){let s=new Lc;this.init(s,e[2]),s.source.end=this.getPosition(e[3]||e[2]),s.source.end.offset++;let r=e[1].slice(2,-2);if(/^\\s*$/.test(r))s.text=\"\",s.raws.left=r,s.raws.right=\"\";else{let n=r.match(/^(\\s*)([^]*\\S)(\\s*)$/);s.text=n[2],s.raws.left=n[1],s.raws.right=n[3]}}createTokenizer(){this.tokenizer=Mc(this.input)}decl(e,s){let r=new Dc;this.init(r,e[0][2]);let n=e[e.length-1];for(n[0]===\";\"&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(n[3]||n[2]||Uc(e)),r.source.end.offset++;e[0][0]!==\"word\";)e.length===1&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop=\"\";e.length;){let c=e[0][0];if(c===\":\"||c===\"space\"||c===\"comment\")break;r.prop+=e.shift()[1]}r.raws.between=\"\";let i;for(;e.length;)if(i=e.shift(),i[0]===\":\"){r.raws.between+=i[1];break}else i[0]===\"word\"&&/\\w/.test(i[1])&&this.unknownWord([i]),r.raws.between+=i[1];(r.prop[0]===\"_\"||r.prop[0]===\"*\")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o=[],u;for(;e.length&&(u=e[0][0],!(u!==\"space\"&&u!==\"comment\"));)o.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(i=e[c],i[1].toLowerCase()===\"!important\"){r.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==\" !important\"&&(r.raws.important=f);break}else if(i[1].toLowerCase()===\"important\"){let f=e.slice(0),p=\"\";for(let l=c;l>0;l--){let y=f[l][0];if(p.trim().startsWith(\"!\")&&y!==\"space\")break;p=f.pop()[1]+p}p.trim().startsWith(\"!\")&&(r.important=!0,r.raws.important=p,e=f)}if(i[0]!==\"space\"&&i[0]!==\"comment\")break}e.some(c=>c[0]!==\"space\"&&c[0]!==\"comment\")&&(r.raws.between+=o.map(c=>c[1]).join(\"\"),o=[]),this.raw(r,\"value\",o.concat(e),s),r.value.includes(\":\")&&!s&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error(\"Double colon\",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let s=new no;this.init(s,e[2]),s.selector=\"\",s.raws.between=\"\",this.current=s}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||\"\")+this.spaces,this.spaces=\"\",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||\"\")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let s=this.current.nodes[this.current.nodes.length-1];s&&s.type===\"rule\"&&!s.raws.ownSemicolon&&(s.raws.ownSemicolon=this.spaces,this.spaces=\"\")}}getPosition(e){let s=this.input.fromOffset(e);return{column:s.col,line:s.line,offset:e}}init(e,s){this.current.push(e),e.source={input:this.input,start:this.getPosition(s)},e.raws.before=this.spaces,this.spaces=\"\",e.type!==\"comment\"&&(this.semicolon=!1)}other(e){let s=!1,r=null,n=!1,i=null,o=[],u=e[1].startsWith(\"--\"),a=[],c=e;for(;c;){if(r=c[0],a.push(c),r===\"(\"||r===\"[\")i||(i=c),o.push(r===\"(\"?\")\":\"]\");else if(u&&n&&r===\"{\")i||(i=c),o.push(\"}\");else if(o.length===0)if(r===\";\")if(n){this.decl(a,u);return}else break;else if(r===\"{\"){this.rule(a);return}else if(r===\"}\"){this.tokenizer.back(a.pop()),s=!0;break}else r===\":\"&&(n=!0);else r===o[o.length-1]&&(o.pop(),o.length===0&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(s=!0),o.length>0&&this.unclosedBracket(i),s&&n){if(!u)for(;a.length&&(c=a[a.length-1][0],!(c!==\"space\"&&c!==\"comment\"));)this.tokenizer.back(a.pop());this.decl(a,u)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case\"space\":this.spaces+=e[1];break;case\";\":this.freeSemicolon(e);break;case\"}\":this.end(e);break;case\"comment\":this.comment(e);break;case\"at-word\":this.atrule(e);break;case\"{\":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,s,r,n){let i,o,u=r.length,a=\"\",c=!0,f,p;for(let l=0;ly+x[1],\"\");e.raws[s]={raw:l,value:a}}e[s]=a}rule(e){e.pop();let s=new no;this.init(s,e[0][2]),s.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(s,\"selector\",e),this.current=s}spacesAndCommentsFromEnd(e){let s,r=\"\";for(;e.length&&(s=e[e.length-1][0],!(s!==\"space\"&&s!==\"comment\"));)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let s,r=\"\";for(;e.length&&(s=e[0][0],!(s!==\"space\"&&s!==\"comment\"));)r+=e.shift()[1];return r}spacesFromEnd(e){let s,r=\"\";for(;e.length&&(s=e[e.length-1][0],s===\"space\");)r=e.pop()[1]+r;return r}stringFrom(e,s){let r=\"\";for(let n=s;n{\"use strict\";var Fc=ue(),$c=qe(),Wc=Jt();function Xt(t,e){let s=new $c(t,e),r=new Wc(s);try{r.parse()}catch(n){throw n}return r.root}ao.exports=Xt;Xt.default=Xt;Fc.registerParse(Xt)});var uo=g((Bv,ys)=>{var Yc=Qt(),zc=qe();ys.exports={isInlineComment(t){if(t[0]===\"word\"&&t[1].slice(0,2)===\"//\"){let e=t,s=[],r,n;for(;t;){if(/\\r?\\n/.test(t[1])){if(/['\"].*\\r?\\n/.test(t[1])){s.push(t[1].substring(0,t[1].indexOf(`\n`))),n=t[1].substring(t[1].indexOf(`\n`));let o=this.input.css.valueOf().substring(this.tokenizer.position());n+=o,r=t[3]+o.length-n.length}else this.tokenizer.back(t);break}s.push(t[1]),r=t[2],t=this.tokenizer.nextToken({ignoreUnclosed:!0})}let i=[\"comment\",s.join(\"\"),e[2],r];return this.inlineComment(i),n&&(this.input=new zc(n),this.tokenizer=Yc(this.input)),!0}else if(t[1]===\"/\"){let e=this.tokenizer.nextToken({ignoreUnclosed:!0});if(e[0]===\"comment\"&&/^\\/\\*/.test(e[1]))return e[0]=\"word\",e[1]=e[1].slice(1),t[1]=\"//\",this.tokenizer.back(e),ys.exports.isInlineComment.bind(this)(t)}return!1}}});var co=g((Mv,lo)=>{lo.exports={interpolation(t){let e=[t,this.tokenizer.nextToken()],s=[\"word\",\"}\"];if(e[0][1].length>1||e[1][0]!==\"{\")return this.tokenizer.back(e[1]),!1;for(t=this.tokenizer.nextToken();t&&s.includes(t[0]);)e.push(t),t=this.tokenizer.nextToken();let r=e.map(u=>u[1]),[n]=e,i=e.pop(),o=[\"word\",r.join(\"\"),n[2],i[2]];return this.tokenizer.back(t),this.tokenizer.back(o),!0}}});var po=g((Uv,fo)=>{var Vc=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,Gc=/\\.[0-9]/,jc=t=>{let[,e]=t,[s]=e;return(s===\".\"||s===\"#\")&&Vc.test(e)===!1&&Gc.test(e)===!1};fo.exports={isMixinToken:jc}});var mo=g((Fv,ho)=>{var Hc=Qt(),Kc=/^url\\((.+)\\)/;ho.exports=t=>{let{name:e,params:s=\"\"}=t;if(e===\"import\"&&s.length){t.import=!0;let r=Hc({css:s});for(t.filename=s.replace(Kc,\"$1\");!r.endOfFile();){let[n,i]=r.nextToken();if(n===\"word\"&&i===\"url\")return;if(n===\"brackets\"){t.options=i,t.filename=s.replace(i,\"\").trim();break}}}}});var vo=g(($v,wo)=>{var yo=/:$/,go=/^:(\\s+)?/;wo.exports=t=>{let{name:e,params:s=\"\"}=t;if(t.name.slice(-1)===\":\"){if(yo.test(e)){let[r]=e.match(yo);t.name=e.replace(r,\"\"),t.raws.afterName=r+(t.raws.afterName||\"\"),t.variable=!0,t.value=t.params}if(go.test(s)){let[r]=s.match(go);t.value=s.replace(r,\"\"),t.raws.afterName=(t.raws.afterName||\"\")+r,t.variable=!0}}}});var _o=g((Yv,bo)=>{var Qc=Re(),Jc=Jt(),{isInlineComment:Xc}=uo(),{interpolation:xo}=co(),{isMixinToken:Zc}=po(),ef=mo(),tf=vo(),rf=/(!\\s*important)$/i;bo.exports=class extends Jc{constructor(...e){super(...e),this.lastNode=null}atrule(e){xo.bind(this)(e)||(super.atrule(e),ef(this.lastNode),tf(this.lastNode))}decl(...e){super.decl(...e),/extend\\(.+\\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(e){e[0][1]=` ${e[0][1]}`;let s=e.findIndex(u=>u[0]===\"(\"),r=e.reverse().find(u=>u[0]===\")\"),n=e.reverse().indexOf(r),o=e.splice(s,n).map(u=>u[1]).join(\"\");for(let u of e.reverse())this.tokenizer.back(u);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=o}init(e,s,r){super.init(e,s,r),this.lastNode=e}inlineComment(e){let s=new Qc,r=e[1].slice(2);if(this.init(s,e[2]),s.source.end=this.getPosition(e[3]||e[2]),s.inline=!0,s.raws.begin=\"//\",/^\\s*$/.test(r))s.text=\"\",s.raws.left=r,s.raws.right=\"\";else{let n=r.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);[,s.raws.left,s.text,s.raws.right]=n}}mixin(e){let[s]=e,r=s[1].slice(0,1),n=e.findIndex(c=>c[0]===\"brackets\"),i=e.findIndex(c=>c[0]===\"(\"),o=\"\";if((n<0||n>3)&&i>0){let c=e.reduce((w,v,N)=>v[0]===\")\"?N:w),p=e.slice(i,c+i).map(w=>w[1]).join(\"\"),[l]=e.slice(i),y=[l[2],l[3]],[x]=e.slice(c,c+1),h=[x[2],x[3]],d=[\"brackets\",p].concat(y,h),m=e.slice(0,i),b=e.slice(c+1);e=m,e.push(d),e=e.concat(b)}let u=[];for(let c of e)if((c[1]===\"!\"||u.length)&&u.push(c),c[1]===\"important\")break;if(u.length){let[c]=u,f=e.indexOf(c),p=u[u.length-1],l=[c[2],c[3]],y=[p[4],p[5]],h=[\"word\",u.map(d=>d[1]).join(\"\")].concat(l,y);e.splice(f,u.length,h)}let a=e.findIndex(c=>rf.test(c[1]));a>0&&([,o]=e[a],e.splice(a,1));for(let c of e.reverse())this.tokenizer.back(c);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=r,o&&(this.lastNode.important=!0,this.lastNode.raws.important=o)}other(e){Xc.bind(this)(e)||super.other(e)}rule(e){let s=e[e.length-1],r=e[e.length-2];if(r[0]===\"at-word\"&&s[0]===\"{\"&&(this.tokenizer.back(s),xo.bind(this)(r))){let i=this.tokenizer.nextToken();e=e.slice(0,e.length-2).concat([i]);for(let o of e.reverse())this.tokenizer.back(o);return}super.rule(e),/:extend\\(.+\\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(e){let[s]=e;if(e[0][1]===\"each\"&&e[1][0]===\"(\"){this.each(e);return}if(Zc(s)){this.mixin(e);return}super.unknownWord(e)}}});var Eo=g((Vv,ko)=>{var sf=Yt();ko.exports=class extends sf{atrule(e,s){if(!e.mixin&&!e.variable&&!e.function){super.atrule(e,s);return}let n=`${e.function?\"\":e.raws.identifier||\"@\"}${e.name}`,i=e.params?this.rawValue(e,\"params\"):\"\",o=e.raws.important||\"\";if(e.variable&&(i=e.value),typeof e.raws.afterName<\"u\"?n+=e.raws.afterName:i&&(n+=\" \"),e.nodes)this.block(e,n+i+o);else{let u=(e.raws.between||\"\")+o+(s?\";\":\"\");this.builder(n+i+u,e)}}comment(e){if(e.inline){let s=this.raw(e,\"left\",\"commentLeft\"),r=this.raw(e,\"right\",\"commentRight\");this.builder(`//${s}${e.text}${r}`,e)}else super.comment(e)}}});var So=g((Gv,gs)=>{var nf=qe(),of=_o(),af=Eo();gs.exports={parse(t,e){let s=new nf(t,e),r=new of(s);return r.parse(),r.root.walk(n=>{let i=s.css.lastIndexOf(n.source.input.css);if(i===0)return;if(i+n.source.input.css.length!==s.css.length)throw new Error(\"Invalid state detected in postcss-less\");let o=i+n.source.start.offset,u=s.fromOffset(i+n.source.start.offset);if(n.source.start={offset:o,line:u.line,column:u.col},n.source.end){let a=i+n.source.end.offset,c=s.fromOffset(i+n.source.end.offset);n.source.end={offset:a,line:c.line,column:c.col}}}),r.root},stringify(t,e){new af(e).stringify(t)},nodeToString(t){let e=\"\";return gs.exports.stringify(t,s=>{e+=s}),e}}});var Zt=g((jv,Oo)=>{\"use strict\";var uf=ue(),To,Co,ye=class extends uf{constructor(e){super({type:\"document\",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new To(new Co,this,e).stringify()}};ye.registerLazyResult=t=>{To=t};ye.registerProcessor=t=>{Co=t};Oo.exports=ye;ye.default=ye});var No=g((Hv,Ao)=>{\"use strict\";var lf=Gt(),cf=Re(),ff=mt(),pf=qe(),hf=ls(),df=De(),mf=jt();function wt(t,e){if(Array.isArray(t))return t.map(n=>wt(n));let{inputs:s,...r}=t;if(s){e=[];for(let n of s){let i={...n,__proto__:pf.prototype};i.map&&(i.map={...i.map,__proto__:hf.prototype}),e.push(i)}}if(r.nodes&&(r.nodes=t.nodes.map(n=>wt(n,e))),r.source){let{inputId:n,...i}=r.source;r.source=i,n!=null&&(r.source.input=e[n])}if(r.type===\"root\")return new df(r);if(r.type===\"decl\")return new ff(r);if(r.type===\"rule\")return new mf(r);if(r.type===\"comment\")return new cf(r);if(r.type===\"atrule\")return new lf(r);throw new Error(\"Unknown node type: \"+t.type)}Ao.exports=wt;wt.default=wt});var ws=g((Kv,Po)=>{Po.exports=class{generate(){}}});var vs=g((Jv,Ro)=>{\"use strict\";var vt=class{constructor(e,s={}){if(this.type=\"warning\",this.text=e,s.node&&s.node.source){let r=s.node.rangeBy(s);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in s)this[r]=s[r]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+\": \"+this.text:this.text}};Ro.exports=vt;vt.default=vt});var er=g((Xv,Io)=>{\"use strict\";var yf=vs(),xt=class{constructor(e,s,r){this.processor=e,this.messages=[],this.root=s,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,s={}){s.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(s.plugin=this.lastPlugin.postcssPlugin);let r=new yf(e,s);return this.messages.push(r),r}warnings(){return this.messages.filter(e=>e.type===\"warning\")}get content(){return this.css}};Io.exports=xt;xt.default=xt});var xs=g((Zv,Lo)=>{\"use strict\";var qo={};Lo.exports=function(e){qo[e]||(qo[e]=!0,typeof console<\"u\"&&console.warn&&console.warn(e))}});var ks=g((tx,Uo)=>{\"use strict\";var gf=ue(),wf=Zt(),vf=ws(),xf=gt(),Do=er(),bf=De(),_f=ut(),{isClean:j,my:kf}=zt(),ex=xs(),Ef={atrule:\"AtRule\",comment:\"Comment\",decl:\"Declaration\",document:\"Document\",root:\"Root\",rule:\"Rule\"},Sf={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Tf={Once:!0,postcssPlugin:!0,prepare:!0},Me=0;function bt(t){return typeof t==\"object\"&&typeof t.then==\"function\"}function Mo(t){let e=!1,s=Ef[t.type];return t.type===\"decl\"?e=t.prop.toLowerCase():t.type===\"atrule\"&&(e=t.name.toLowerCase()),e&&t.append?[s,s+\"-\"+e,Me,s+\"Exit\",s+\"Exit-\"+e]:e?[s,s+\"-\"+e,s+\"Exit\",s+\"Exit-\"+e]:t.append?[s,Me,s+\"Exit\"]:[s,s+\"Exit\"]}function Bo(t){let e;return t.type===\"document\"?e=[\"Document\",Me,\"DocumentExit\"]:t.type===\"root\"?e=[\"Root\",Me,\"RootExit\"]:e=Mo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function bs(t){return t[j]=!1,t.nodes&&t.nodes.forEach(e=>bs(e)),t}var _s={},ce=class t{constructor(e,s,r){this.stringified=!1,this.processed=!1;let n;if(typeof s==\"object\"&&s!==null&&(s.type===\"root\"||s.type===\"document\"))n=bs(s);else if(s instanceof t||s instanceof Do)n=bs(s.root),s.map&&(typeof r.map>\"u\"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=s.map);else{let i=xf;r.syntax&&(i=r.syntax.parse),r.parser&&(i=r.parser),i.parse&&(i=i.parse);try{n=i(s,r)}catch(o){this.processed=!0,this.error=o}n&&!n[kf]&&gf.rebuild(n)}this.result=new Do(e,n,r),this.helpers={..._s,postcss:_s,result:this.result},this.plugins=this.processor.plugins.map(i=>typeof i==\"object\"&&i.prepare?{...i,...i.prepare(this.result)}:i)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error(\"Use process(css).then(cb) to work with async plugins\")}handleError(e,s){let r=this.result.lastPlugin;try{s&&s.addToError(e),this.error=e,e.name===\"CssSyntaxError\"&&!e.plugin?(e.plugin=r.postcssPlugin,e.setMessage()):r.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}prepareVisitors(){this.listeners={};let e=(s,r,n)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([s,n])};for(let s of this.plugins)if(typeof s==\"object\")for(let r in s){if(!Sf[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${s.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Tf[r])if(typeof s[r]==\"object\")for(let n in s[r])n===\"*\"?e(s,r,s[r][n]):e(s,r+\"-\"+n.toLowerCase(),s[r][n]);else typeof s[r]==\"function\"&&e(s,r,s[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let r=this.visitTick(s);if(bt(r))try{await r}catch(n){let i=s[s.length-1].node;throw this.handleError(n,i)}}}if(this.listeners.OnceExit)for(let[s,r]of this.listeners.OnceExit){this.result.lastPlugin=s;try{if(e.type===\"document\"){let n=e.nodes.map(i=>r(i,this.helpers));await Promise.all(n)}else await r(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e==\"object\"&&e.Once){if(this.result.root.type===\"document\"){let s=this.result.root.nodes.map(r=>e.Once(r,this.helpers));return bt(s[0])?Promise.all(s):s}return e.Once(this.result.root,this.helpers)}else if(typeof e==\"function\")return e(this.result.root,this.result)}catch(s){throw this.handleError(s)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,s=_f;e.syntax&&(s=e.syntax.stringify),e.stringifier&&(s=e.stringifier),s.stringify&&(s=s.stringify);let n=new vf(s,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let s=this.runOnRoot(e);if(bt(s))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[j];)e[j]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type===\"document\")for(let s of e.nodes)this.visitSync(this.listeners.OnceExit,s);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,s){return this.async().then(e,s)}toString(){return this.css}visitSync(e,s){for(let[r,n]of e){this.result.lastPlugin=r;let i;try{i=n(s,this.helpers)}catch(o){throw this.handleError(o,s.proxyOf)}if(s.type!==\"root\"&&s.type!==\"document\"&&!s.parent)return!0;if(bt(i))throw this.getAsyncError()}}visitTick(e){let s=e[e.length-1],{node:r,visitors:n}=s;if(r.type!==\"root\"&&r.type!==\"document\"&&!r.parent){e.pop();return}if(n.length>0&&s.visitorIndex{n[j]||this.walkSync(n)});else{let n=this.listeners[r];if(n&&this.visitSync(n,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return\"LazyResult\"}};ce.registerPostcss=t=>{_s=t};Uo.exports=ce;ce.default=ce;bf.registerLazyResult(ce);wf.registerLazyResult(ce)});var $o=g((sx,Fo)=>{\"use strict\";var Cf=ws(),Of=gt(),Af=er(),Nf=ut(),rx=xs(),_t=class{constructor(e,s,r){s=s.toString(),this.stringified=!1,this._processor=e,this._css=s,this._opts=r,this._map=void 0;let n,i=Nf;this.result=new Af(this._processor,n,this._opts),this.result.css=s;let o=this;Object.defineProperty(this.result,\"root\",{get(){return o.root}});let u=new Cf(i,n,this._opts,s);if(u.isMap()){let[a,c]=u.generate();a&&(this.result.css=a),c&&(this.result.map=c)}else u.clearAnnotation(),this.result.css=u.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,s){return this.async().then(e,s)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,s=Of;try{e=s(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return\"NoWorkResult\"}};Fo.exports=_t;_t.default=_t});var Yo=g((nx,Wo)=>{\"use strict\";var Pf=Zt(),Rf=ks(),If=$o(),qf=De(),ge=class{constructor(e=[]){this.version=\"8.4.49\",this.plugins=this.normalize(e)}normalize(e){let s=[];for(let r of e)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r==\"object\"&&Array.isArray(r.plugins))s=s.concat(r.plugins);else if(typeof r==\"object\"&&r.postcssPlugin)s.push(r);else if(typeof r==\"function\")s.push(r);else if(!(typeof r==\"object\"&&(r.parse||r.stringify)))throw new Error(r+\" is not a PostCSS plugin\");return s}process(e,s={}){return!this.plugins.length&&!s.parser&&!s.stringifier&&!s.syntax?new If(this,e,s):new Rf(this,e,s)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};Wo.exports=ge;ge.default=ge;qf.registerProcessor(ge);Pf.registerProcessor(ge)});var tr=g((ix,Qo)=>{\"use strict\";var zo=Gt(),Vo=Re(),Lf=ue(),Df=Wt(),Go=mt(),jo=Zt(),Bf=No(),Mf=qe(),Uf=ks(),Ff=ds(),$f=pt(),Wf=gt(),Es=Yo(),Yf=er(),Ho=De(),Ko=jt(),zf=ut(),Vf=vs();function E(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Es(t)}E.plugin=function(e,s){let r=!1;function n(...o){console&&console.warn&&!r&&(r=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`));let u=s(...o);return u.postcssPlugin=e,u.postcssVersion=new Es().version,u}let i;return Object.defineProperty(n,\"postcss\",{get(){return i||(i=n()),i}}),n.process=function(o,u,a){return E([n(a)]).process(o,u)},n};E.stringify=zf;E.parse=Wf;E.fromJSON=Bf;E.list=Ff;E.comment=t=>new Vo(t);E.atRule=t=>new zo(t);E.decl=t=>new Go(t);E.rule=t=>new Ko(t);E.root=t=>new Ho(t);E.document=t=>new jo(t);E.CssSyntaxError=Df;E.Declaration=Go;E.Container=Lf;E.Processor=Es;E.Document=jo;E.Comment=Vo;E.Warning=Vf;E.AtRule=zo;E.Result=Yf;E.Input=Mf;E.Rule=Ko;E.Root=Ho;E.Node=$f;Uf.registerPostcss(E);Qo.exports=E;E.default=E});var Xo=g((ox,Jo)=>{var{Container:Gf}=tr(),Ss=class extends Gf{constructor(e){super(e),this.type=\"decl\",this.isNested=!0,this.nodes||(this.nodes=[])}};Jo.exports=Ss});var ta=g((ax,ea)=>{\"use strict\";var rr=/[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g,sr=/[,\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g,jf=/.[\\r\\n\"'(/\\\\]/,Zo=/[\\da-f]/i,nr=/[\\n\\f\\r]/g;ea.exports=function(e,s={}){let r=e.css.valueOf(),n=s.ignoreErrors,i,o,u,a,c,f,p,l,y,x=r.length,h=0,d=[],m=[],b;function w(){return h}function v(T){throw e.error(\"Unclosed \"+T,h)}function N(){return m.length===0&&h>=x}function F(){let T=1,C=!1,O=!1;for(;T>0;)o+=1,r.length<=o&&v(\"interpolation\"),i=r.charCodeAt(o),l=r.charCodeAt(o+1),C?!O&&i===C?(C=!1,O=!1):i===92?O=!O:O&&(O=!1):i===39||i===34?C=i:i===125?T-=1:i===35&&l===123&&(T+=1)}function H(T){if(m.length)return m.pop();if(h>=x)return;let C=T?T.ignoreUnclosed:!1;switch(i=r.charCodeAt(h),i){case 10:case 32:case 9:case 13:case 12:{o=h;do o+=1,i=r.charCodeAt(o);while(i===32||i===10||i===9||i===13||i===12);y=[\"space\",r.slice(h,o)],h=o-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let O=String.fromCharCode(i);y=[O,O,h];break}case 44:{y=[\"word\",\",\",h,h+1];break}case 40:{if(p=d.length?d.pop()[1]:\"\",l=r.charCodeAt(h+1),p===\"url\"&&l!==39&&l!==34){for(b=1,f=!1,o=h+1;o<=r.length-1;){if(l=r.charCodeAt(o),l===92)f=!f;else if(l===40)b+=1;else if(l===41&&(b-=1,b===0))break;o+=1}a=r.slice(h,o+1),y=[\"brackets\",a,h,o],h=o}else o=r.indexOf(\")\",h+1),a=r.slice(h,o+1),o===-1||jf.test(a)?y=[\"(\",\"(\",h]:(y=[\"brackets\",a,h,o],h=o);break}case 39:case 34:{for(u=i,o=h,f=!1;o{var{Comment:Hf}=tr(),Kf=Jt(),Qf=Xo(),Jf=ta(),Ts=class extends Kf{atrule(e){let s=e[1],r=e;for(;!this.tokenizer.endOfFile();){let n=this.tokenizer.nextToken();if(n[0]===\"word\"&&n[2]===r[3]+1)s+=n[1],r=n;else{this.tokenizer.back(n);break}}super.atrule([\"at-word\",s,e[2],r[3]])}comment(e){if(e[4]===\"inline\"){let s=new Hf;this.init(s,e[2]),s.raws.inline=!0;let r=this.input.fromOffset(e[3]);s.source.end={column:r.col,line:r.line,offset:e[3]+1};let n=e[1].slice(2);if(/^\\s*$/.test(n))s.text=\"\",s.raws.left=n,s.raws.right=\"\";else{let i=n.match(/^(\\s*)([^]*\\S)(\\s*)$/),o=i[2].replace(/(\\*\\/|\\/\\*)/g,\"*//*\");s.text=o,s.raws.left=i[1],s.raws.right=i[3],s.raws.text=i[2]}}else super.comment(e)}createTokenizer(){this.tokenizer=Jf(this.input)}raw(e,s,r,n){if(super.raw(e,s,r,n),e.raws[s]){let i=e.raws[s].raw;e.raws[s].raw=r.reduce((o,u)=>{if(u[0]===\"comment\"&&u[4]===\"inline\"){let a=u[1].slice(2).replace(/(\\*\\/|\\/\\*)/g,\"*//*\");return o+\"/*\"+a+\"*/\"}else return o+u[1]},\"\"),i!==e.raws[s].raw&&(e.raws[s].scss=i)}}rule(e){let s=!1,r=0,n=\"\";for(let i of e)if(s)i[0]!==\"comment\"&&i[0]!==\"{\"&&(n+=i[1]);else{if(i[0]===\"space\"&&i[1].includes(`\n`))break;i[0]===\"(\"?r+=1:i[0]===\")\"?r-=1:r===0&&i[0]===\":\"&&(s=!0)}if(!s||n.trim()===\"\"||/^[#:A-Za-z-]/.test(n))super.rule(e);else{e.pop();let i=new Qf;this.init(i,e[0][2]);let o;for(let a=e.length-1;a>=0;a--)if(e[a][0]!==\"space\"){o=e[a];break}if(o[3]){let a=this.input.fromOffset(o[3]);i.source.end={column:a.col,line:a.line,offset:o[3]+1}}else{let a=this.input.fromOffset(o[2]);i.source.end={column:a.col,line:a.line,offset:o[2]+1}}for(;e[0][0]!==\"word\";)i.raws.before+=e.shift()[1];if(e[0][2]){let a=this.input.fromOffset(e[0][2]);i.source.start={column:a.col,line:a.line,offset:e[0][2]}}for(i.prop=\"\";e.length;){let a=e[0][0];if(a===\":\"||a===\"space\"||a===\"comment\")break;i.prop+=e.shift()[1]}i.raws.between=\"\";let u;for(;e.length;)if(u=e.shift(),u[0]===\":\"){i.raws.between+=u[1];break}else i.raws.between+=u[1];(i.prop[0]===\"_\"||i.prop[0]===\"*\")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1)),i.raws.between+=this.spacesAndCommentsFromStart(e),this.precheckMissedSemicolon(e);for(let a=e.length-1;a>0;a--){if(u=e[a],u[1]===\"!important\"){i.important=!0;let c=this.stringFrom(e,a);c=this.spacesFromEnd(e)+c,c!==\" !important\"&&(i.raws.important=c);break}else if(u[1]===\"important\"){let c=e.slice(0),f=\"\";for(let p=a;p>0;p--){let l=c[p][0];if(f.trim().indexOf(\"!\")===0&&l!==\"space\")break;f=c.pop()[1]+f}f.trim().indexOf(\"!\")===0&&(i.important=!0,i.raws.important=f,e=c)}if(u[0]!==\"space\"&&u[0]!==\"comment\")break}this.raw(i,\"value\",e),i.value.includes(\":\")&&this.checkMissedSemicolon(e),this.current=i}}};ra.exports=Ts});var ia=g((lx,na)=>{var{Input:Xf}=tr(),Zf=sa();na.exports=function(e,s){let r=new Xf(e,s),n=new Zf(r);return n.parse(),n.root}});var Os=g(Cs=>{\"use strict\";Object.defineProperty(Cs,\"__esModule\",{value:!0});function tp(t){this.after=t.after,this.before=t.before,this.type=t.type,this.value=t.value,this.sourceIndex=t.sourceIndex}Cs.default=tp});var Ns=g(As=>{\"use strict\";Object.defineProperty(As,\"__esModule\",{value:!0});var rp=Os(),aa=sp(rp);function sp(t){return t&&t.__esModule?t:{default:t}}function kt(t){var e=this;this.constructor(t),this.nodes=t.nodes,this.after===void 0&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:\"\"),this.before===void 0&&(this.before=this.nodes.length>0?this.nodes[0].before:\"\"),this.sourceIndex===void 0&&(this.sourceIndex=this.before.length),this.nodes.forEach(function(s){s.parent=e})}kt.prototype=Object.create(aa.default.prototype);kt.constructor=aa.default;kt.prototype.walk=function(e,s){for(var r=typeof e==\"string\"||e instanceof RegExp,n=r?s:e,i=typeof e==\"string\"?new RegExp(e):e,o=0;o{\"use strict\";Object.defineProperty(Et,\"__esModule\",{value:!0});Et.parseMediaFeature=ca;Et.parseMediaQuery=Rs;Et.parseMediaList=op;var np=Os(),ua=la(np),ip=Ns(),Ps=la(ip);function la(t){return t&&t.__esModule?t:{default:t}}function ca(t){var e=arguments.length<=1||arguments[1]===void 0?0:arguments[1],s=[{mode:\"normal\",character:null}],r=[],n=0,i=\"\",o=null,u=null,a=e,c=t;t[0]===\"(\"&&t[t.length-1]===\")\"&&(c=t.substring(1,t.length-1),a++);for(var f=0;f0&&(s[c-1].after=i.before),i.type===void 0){if(c>0){if(s[c-1].type===\"media-feature-expression\"){i.type=\"keyword\";continue}if(s[c-1].value===\"not\"||s[c-1].value===\"only\"){i.type=\"media-type\";continue}if(s[c-1].value===\"and\"){i.type=\"media-feature-expression\";continue}s[c-1].type===\"media-type\"&&(s[c+1]?i.type=s[c+1].type===\"media-feature-expression\"?\"keyword\":\"media-feature-expression\":i.type=\"media-feature-expression\")}if(c===0){if(!s[c+1]){i.type=\"media-type\";continue}if(s[c+1]&&(s[c+1].type===\"media-feature-expression\"||s[c+1].type===\"keyword\")){i.type=\"media-type\";continue}if(s[c+2]){if(s[c+2].type===\"media-feature-expression\"){i.type=\"media-type\",s[c+1].type=\"keyword\";continue}if(s[c+2].type===\"keyword\"){i.type=\"keyword\",s[c+1].type=\"media-type\";continue}}if(s[c+3]&&s[c+3].type===\"media-feature-expression\"){i.type=\"keyword\",s[c+1].type=\"media-type\",s[c+2].type=\"keyword\";continue}}}return s}function op(t){var e=[],s=0,r=0,n=/^(\\s*)url\\s*\\(/.exec(t);if(n!==null){for(var i=n[0].length,o=1;o>0;){var u=t[i];u===\"(\"&&o++,u===\")\"&&o--,i++}e.unshift(new ua.default({type:\"url\",value:t.substring(0,i).trim(),sourceIndex:n[1].length,before:n[1],after:/^(\\s*)/.exec(t.substring(i))[1]})),s=i}for(var a=s;a{\"use strict\";Object.defineProperty(Is,\"__esModule\",{value:!0});Is.default=fp;var ap=Ns(),up=cp(ap),lp=fa();function cp(t){return t&&t.__esModule?t:{default:t}}function fp(t){return new up.default({nodes:(0,lp.parseMediaList)(t),type:\"media-query-list\",value:t.trim()})}});var Ls=g((wx,ma)=>{ma.exports=function(e,s){if(s=typeof s==\"number\"?s:1/0,!s)return Array.isArray(e)?e.map(function(n){return n}):e;return r(e,1);function r(n,i){return n.reduce(function(o,u){return Array.isArray(u)&&i{ya.exports=function(t,e){for(var s=-1,r=[];(s=t.indexOf(e,s+1))!==-1;)r.push(s);return r}});var Bs=g((xx,ga)=>{\"use strict\";function dp(t,e){for(var s=1,r=t.length,n=t[0],i=t[0],o=1;o{\"use strict\";ir.__esModule=!0;var wa=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};function gp(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var wp=function t(e,s){if((typeof e>\"u\"?\"undefined\":wa(e))!==\"object\")return e;var r=new e.constructor;for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],o=typeof i>\"u\"?\"undefined\":wa(i);n===\"parent\"&&o===\"object\"?s&&(r[n]=s):i instanceof Array?r[n]=i.map(function(u){return t(u,r)}):r[n]=t(i,r)}return r},vp=function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gp(this,t);for(var s in e)this[s]=e[s];var r=e.spaces;r=r===void 0?{}:r;var n=r.before,i=n===void 0?\"\":n,o=r.after,u=o===void 0?\"\":o;this.spaces={before:i,after:u}}return t.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},t.prototype.replaceWith=function(){if(this.parent){for(var s in arguments)this.parent.insertBefore(this,arguments[s]);this.remove()}return this},t.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},t.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},t.prototype.clone=function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=wp(this);for(var n in s)r[n]=s[n];return r},t.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join(\"\")},t}();ir.default=vp;va.exports=ir.default});var D=g(M=>{\"use strict\";M.__esModule=!0;var bx=M.TAG=\"tag\",_x=M.STRING=\"string\",kx=M.SELECTOR=\"selector\",Ex=M.ROOT=\"root\",Sx=M.PSEUDO=\"pseudo\",Tx=M.NESTING=\"nesting\",Cx=M.ID=\"id\",Ox=M.COMMENT=\"comment\",Ax=M.COMBINATOR=\"combinator\",Nx=M.CLASS=\"class\",Px=M.ATTRIBUTE=\"attribute\",Rx=M.UNIVERSAL=\"universal\"});var ar=g((or,xa)=>{\"use strict\";or.__esModule=!0;var xp=function(){function t(e,s){for(var r=0;r=r&&(this.indexes[i]=n-1);return this},e.prototype.removeAll=function(){for(var i=this.nodes,r=Array.isArray(i),n=0,i=r?i:i[Symbol.iterator]();;){var o;if(r){if(n>=i.length)break;o=i[n++]}else{if(n=i.next(),n.done)break;o=n.value}var u=o;u.parent=void 0}return this.nodes=[],this},e.prototype.empty=function(){return this.removeAll()},e.prototype.insertAfter=function(r,n){var i=this.index(r);this.nodes.splice(i+1,0,n);var o=void 0;for(var u in this.indexes)o=this.indexes[u],i<=o&&(this.indexes[u]=o+this.nodes.length);return this},e.prototype.insertBefore=function(r,n){var i=this.index(r);this.nodes.splice(i,0,n);var o=void 0;for(var u in this.indexes)o=this.indexes[u],i<=o&&(this.indexes[u]=o+this.nodes.length);return this},e.prototype.each=function(r){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var n=this.lastEach;if(this.indexes[n]=0,!!this.length){for(var i=void 0,o=void 0;this.indexes[n]{\"use strict\";ur.__esModule=!0;var Np=ar(),Pp=Ip(Np),Rp=D();function Ip(t){return t&&t.__esModule?t:{default:t}}function qp(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Lp(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Dp(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Bp=function(t){Dp(e,t);function e(s){qp(this,e);var r=Lp(this,t.call(this,s));return r.type=Rp.ROOT,r}return e.prototype.toString=function(){var r=this.reduce(function(n,i){var o=String(i);return o?n+o+\",\":\"\"},\"\").slice(0,-1);return this.trailingComma?r+\",\":r},e}(Pp.default);ur.default=Bp;ba.exports=ur.default});var Ea=g((lr,ka)=>{\"use strict\";lr.__esModule=!0;var Mp=ar(),Up=$p(Mp),Fp=D();function $p(t){return t&&t.__esModule?t:{default:t}}function Wp(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Yp(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function zp(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Vp=function(t){zp(e,t);function e(s){Wp(this,e);var r=Yp(this,t.call(this,s));return r.type=Fp.SELECTOR,r}return e}(Up.default);lr.default=Vp;ka.exports=lr.default});var Ue=g((cr,Sa)=>{\"use strict\";cr.__esModule=!0;var Gp=function(){function t(e,s){for(var r=0;r{\"use strict\";fr.__esModule=!0;var eh=Ue(),th=sh(eh),rh=D();function sh(t){return t&&t.__esModule?t:{default:t}}function nh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function ih(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function oh(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var ah=function(t){oh(e,t);function e(s){nh(this,e);var r=ih(this,t.call(this,s));return r.type=rh.CLASS,r}return e.prototype.toString=function(){return[this.spaces.before,this.ns,\".\"+this.value,this.spaces.after].join(\"\")},e}(th.default);fr.default=ah;Ta.exports=fr.default});var Aa=g((pr,Oa)=>{\"use strict\";pr.__esModule=!0;var uh=we(),lh=fh(uh),ch=D();function fh(t){return t&&t.__esModule?t:{default:t}}function ph(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function hh(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function dh(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var mh=function(t){dh(e,t);function e(s){ph(this,e);var r=hh(this,t.call(this,s));return r.type=ch.COMMENT,r}return e}(lh.default);pr.default=mh;Oa.exports=pr.default});var Pa=g((hr,Na)=>{\"use strict\";hr.__esModule=!0;var yh=Ue(),gh=vh(yh),wh=D();function vh(t){return t&&t.__esModule?t:{default:t}}function xh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function bh(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function _h(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var kh=function(t){_h(e,t);function e(s){xh(this,e);var r=bh(this,t.call(this,s));return r.type=wh.ID,r}return e.prototype.toString=function(){return[this.spaces.before,this.ns,\"#\"+this.value,this.spaces.after].join(\"\")},e}(gh.default);hr.default=kh;Na.exports=hr.default});var Ia=g((dr,Ra)=>{\"use strict\";dr.__esModule=!0;var Eh=Ue(),Sh=Ch(Eh),Th=D();function Ch(t){return t&&t.__esModule?t:{default:t}}function Oh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Ah(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Nh(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Ph=function(t){Nh(e,t);function e(s){Oh(this,e);var r=Ah(this,t.call(this,s));return r.type=Th.TAG,r}return e}(Sh.default);dr.default=Ph;Ra.exports=dr.default});var La=g((mr,qa)=>{\"use strict\";mr.__esModule=!0;var Rh=we(),Ih=Lh(Rh),qh=D();function Lh(t){return t&&t.__esModule?t:{default:t}}function Dh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Bh(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Mh(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Uh=function(t){Mh(e,t);function e(s){Dh(this,e);var r=Bh(this,t.call(this,s));return r.type=qh.STRING,r}return e}(Ih.default);mr.default=Uh;qa.exports=mr.default});var Ba=g((yr,Da)=>{\"use strict\";yr.__esModule=!0;var Fh=ar(),$h=Yh(Fh),Wh=D();function Yh(t){return t&&t.__esModule?t:{default:t}}function zh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Vh(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Gh(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var jh=function(t){Gh(e,t);function e(s){zh(this,e);var r=Vh(this,t.call(this,s));return r.type=Wh.PSEUDO,r}return e.prototype.toString=function(){var r=this.length?\"(\"+this.map(String).join(\",\")+\")\":\"\";return[this.spaces.before,String(this.value),r,this.spaces.after].join(\"\")},e}($h.default);yr.default=jh;Da.exports=yr.default});var Ua=g((gr,Ma)=>{\"use strict\";gr.__esModule=!0;var Hh=Ue(),Kh=Jh(Hh),Qh=D();function Jh(t){return t&&t.__esModule?t:{default:t}}function Xh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Zh(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function ed(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var td=function(t){ed(e,t);function e(s){Xh(this,e);var r=Zh(this,t.call(this,s));return r.type=Qh.ATTRIBUTE,r.raws={},r}return e.prototype.toString=function(){var r=[this.spaces.before,\"[\",this.ns,this.attribute];return this.operator&&r.push(this.operator),this.value&&r.push(this.value),this.raws.insensitive?r.push(this.raws.insensitive):this.insensitive&&r.push(\" i\"),r.push(\"]\"),r.concat(this.spaces.after).join(\"\")},e}(Kh.default);gr.default=td;Ma.exports=gr.default});var $a=g((wr,Fa)=>{\"use strict\";wr.__esModule=!0;var rd=Ue(),sd=id(rd),nd=D();function id(t){return t&&t.__esModule?t:{default:t}}function od(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function ad(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function ud(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var ld=function(t){ud(e,t);function e(s){od(this,e);var r=ad(this,t.call(this,s));return r.type=nd.UNIVERSAL,r.value=\"*\",r}return e}(sd.default);wr.default=ld;Fa.exports=wr.default});var Ya=g((vr,Wa)=>{\"use strict\";vr.__esModule=!0;var cd=we(),fd=hd(cd),pd=D();function hd(t){return t&&t.__esModule?t:{default:t}}function dd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function md(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function yd(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var gd=function(t){yd(e,t);function e(s){dd(this,e);var r=md(this,t.call(this,s));return r.type=pd.COMBINATOR,r}return e}(fd.default);vr.default=gd;Wa.exports=vr.default});var Va=g((xr,za)=>{\"use strict\";xr.__esModule=!0;var wd=we(),vd=bd(wd),xd=D();function bd(t){return t&&t.__esModule?t:{default:t}}function _d(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function kd(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Ed(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Sd=function(t){Ed(e,t);function e(s){_d(this,e);var r=kd(this,t.call(this,s));return r.type=xd.NESTING,r.value=\"&\",r}return e}(vd.default);xr.default=Sd;za.exports=xr.default});var ja=g((br,Ga)=>{\"use strict\";br.__esModule=!0;br.default=Td;function Td(t){return t.sort(function(e,s){return e-s})}Ga.exports=br.default});var ru=g((Er,tu)=>{\"use strict\";Er.__esModule=!0;Er.default=Bd;var Ha=39,Cd=34,Ms=92,Ka=47,St=10,Us=32,Fs=12,$s=9,Ws=13,Qa=43,Ja=62,Xa=126,Za=124,Od=44,Ad=40,Nd=41,Pd=91,Rd=93,Id=59,eu=42,qd=58,Ld=38,Dd=64,_r=/[ \\n\\t\\r\\{\\(\\)'\"\\\\;/]/g,kr=/[ \\n\\t\\r\\(\\)\\*:;@!&'\"\\+\\|~>,\\[\\]\\\\]|\\/(?=\\*)/g;function Bd(t){for(var e=[],s=t.css.valueOf(),r=void 0,n=void 0,i=void 0,o=void 0,u=void 0,a=void 0,c=void 0,f=void 0,p=void 0,l=void 0,y=void 0,x=s.length,h=-1,d=1,m=0,b=function(v,N){if(t.safe)s+=N,n=s.length-1;else throw t.error(\"Unclosed \"+v,d,m-h,m)};m0?(f=d+u,p=n-o[u].length):(f=d,p=h),e.push([\"comment\",a,d,m-h,f,n-p,m]),h=p,d=f,m=n):(kr.lastIndex=m+1,kr.test(s),kr.lastIndex===0?n=s.length-1:n=kr.lastIndex-2,e.push([\"word\",s.slice(m,n+1),d,m-h,d,n-h,m]),m=n);break}m++}return e}tu.exports=Er.default});var iu=g((Sr,nu)=>{\"use strict\";Sr.__esModule=!0;var Md=function(){function t(e,s){for(var r=0;r1?(o[0]===\"\"&&(o[0]=!0),u.attribute=this.parseValue(o[2]),u.namespace=this.parseNamespace(o[0])):u.attribute=this.parseValue(i[0]),r=new om.default(u),i[2]){var a=i[2].split(/(\\s+i\\s*?)$/),c=a[0].trim();r.value=this.lossy?c:a[0],a[1]&&(r.insensitive=!0,this.lossy||(r.raws.insensitive=a[1])),r.quoted=c[0]===\"'\"||c[0]==='\"',r.raws.unquoted=r.quoted?c.slice(1,-1):c}this.newNode(r),this.position++},t.prototype.combinator=function(){if(this.currToken[1]===\"|\")return this.namespace();for(var s=new cm.default({value:\"\",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position1&&s.nextToken&&s.nextToken[0]===\"(\"&&s.error(\"Misplaced parenthesis.\")})}else this.error('Unexpected \"'+this.currToken[0]+'\" found.')},t.prototype.space=function(){var s=this.currToken;this.position===0||this.prevToken[0]===\",\"||this.prevToken[0]===\"(\"?(this.spaces=this.parseSpace(s[1]),this.position++):this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.spaces.after=this.parseSpace(s[1]),this.position++):this.combinator()},t.prototype.string=function(){var s=this.currToken;this.newNode(new rm.default({value:this.currToken[1],source:{start:{line:s[2],column:s[3]},end:{line:s[4],column:s[5]}},sourceIndex:s[6]})),this.position++},t.prototype.universal=function(s){var r=this.nextToken;if(r&&r[1]===\"|\")return this.position++,this.namespace();this.newNode(new um.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),s),this.position++},t.prototype.splitWord=function(s,r){for(var n=this,i=this.nextToken,o=this.currToken[1];i&&i[0]===\"word\";){this.position++;var u=this.currToken[1];if(o+=u,u.lastIndexOf(\"\\\\\")===u.length-1){var a=this.nextToken;a&&a[0]===\"space\"&&(o+=this.parseSpace(a[1],\" \"),this.position++)}i=this.nextToken}var c=(0,Ys.default)(o,\".\"),f=(0,Ys.default)(o,\"#\"),p=(0,Ys.default)(o,\"#{\");p.length&&(f=f.filter(function(y){return!~p.indexOf(y)}));var l=(0,dm.default)((0,Yd.default)((0,Fd.default)([[0],c,f])));l.forEach(function(y,x){var h=l[x+1]||o.length,d=o.slice(y,h);if(x===0&&r)return r.call(n,d,l.length);var m=void 0;~c.indexOf(y)?m=new Hd.default({value:d.slice(1),source:{start:{line:n.currToken[2],column:n.currToken[3]+y},end:{line:n.currToken[4],column:n.currToken[3]+(h-1)}},sourceIndex:n.currToken[6]+l[x]}):~f.indexOf(y)?m=new Xd.default({value:d.slice(1),source:{start:{line:n.currToken[2],column:n.currToken[3]+y},end:{line:n.currToken[4],column:n.currToken[3]+(h-1)}},sourceIndex:n.currToken[6]+l[x]}):m=new em.default({value:d,source:{start:{line:n.currToken[2],column:n.currToken[3]+y},end:{line:n.currToken[4],column:n.currToken[3]+(h-1)}},sourceIndex:n.currToken[6]+l[x]}),n.newNode(m,s)}),this.position++},t.prototype.word=function(s){var r=this.nextToken;return r&&r[1]===\"|\"?(this.position++,this.namespace()):this.splitWord(s)},t.prototype.loop=function(){for(;this.position{\"use strict\";Tr.__esModule=!0;var bm=function(){function t(e,s){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:{},n=new km.default({css:s,error:function(o){throw new Error(o)},options:r});return this.res=n,this.func(n),this},bm(t,[{key:\"result\",get:function(){return String(this.res)}}]),t}();Tr.default=Tm;ou.exports=Tr.default});var G=g((Bx,lu)=>{\"use strict\";var Vs=function(t,e){let s=new t.constructor;for(let r in t){if(!t.hasOwnProperty(r))continue;let n=t[r],i=typeof n;r===\"parent\"&&i===\"object\"?e&&(s[r]=e):r===\"source\"?s[r]=n:n instanceof Array?s[r]=n.map(o=>Vs(o,s)):r!==\"before\"&&r!==\"after\"&&r!==\"between\"&&r!==\"semicolon\"&&(i===\"object\"&&n!==null&&(n=Vs(n)),s[r]=n)}return s};lu.exports=class{constructor(e){e=e||{},this.raws={before:\"\",after:\"\"};for(let s in e)this[s]=e[s]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join(\"\")}clone(e){e=e||{};let s=Vs(this);for(let r in e)s[r]=e[r];return s}cloneBefore(e){e=e||{};let s=this.clone(e);return this.parent.insertBefore(this,s),s}cloneAfter(e){e=e||{};let s=this.clone(e);return this.parent.insertAfter(this,s),s}replaceWith(){let e=Array.prototype.slice.call(arguments);if(this.parent){for(let s of e)this.parent.insertBefore(this,s);this.remove()}return this}moveTo(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.append(this),this}moveBefore(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.parent.insertBefore(e,this),this}moveAfter(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.parent.insertAfter(e,this),this}next(){let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){let e=this.parent.index(this);return this.parent.nodes[e-1]}toJSON(){let e={};for(let s in this){if(!this.hasOwnProperty(s)||s===\"parent\")continue;let r=this[s];r instanceof Array?e[s]=r.map(n=>typeof n==\"object\"&&n.toJSON?n.toJSON():n):typeof r==\"object\"&&r.toJSON?e[s]=r.toJSON():e[s]=r}return e}root(){let e=this;for(;e.parent;)e=e.parent;return e}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}positionInside(e){let s=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let i=0;i{\"use strict\";var Om=G(),Fe=class extends Om{constructor(e){super(e),this.nodes||(this.nodes=[])}push(e){return e.parent=this,this.nodes.push(e),this}each(e){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let s=this.lastEach,r,n;if(this.indexes[s]=0,!!this.nodes){for(;this.indexes[s]{let n=e(s,r);return n!==!1&&s.walk&&(n=s.walk(e)),n})}walkType(e,s){if(!e||!s)throw new Error(\"Parameters {type} and {callback} are required.\");let r=typeof e==\"function\";return this.walk((n,i)=>{if(r&&n instanceof e||!r&&n.type===e)return s.call(this,n,i)})}append(e){return e.parent=this,this.nodes.push(e),this}prepend(e){return e.parent=this,this.nodes.unshift(e),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let s of this.nodes)s.cleanRaws(e)}insertAfter(e,s){let r=this.index(e),n;this.nodes.splice(r+1,0,s);for(let i in this.indexes)n=this.indexes[i],r<=n&&(this.indexes[i]=n+this.nodes.length);return this}insertBefore(e,s){let r=this.index(e),n;this.nodes.splice(r,0,s);for(let i in this.indexes)n=this.indexes[i],r<=n&&(this.indexes[i]=n+this.nodes.length);return this}removeChild(e){e=this.index(e),this.nodes[e].parent=void 0,this.nodes.splice(e,1);let s;for(let r in this.indexes)s=this.indexes[r],s>=e&&(this.indexes[r]=s-1);return this}removeAll(){for(let e of this.nodes)e.parent=void 0;return this.nodes=[],this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return typeof e==\"number\"?e:this.nodes.indexOf(e)}get first(){if(this.nodes)return this.nodes[0]}get last(){if(this.nodes)return this.nodes[this.nodes.length-1]}toString(){let e=this.nodes.map(String).join(\"\");return this.value&&(e=this.value+e),this.raws.before&&(e=this.raws.before+e),this.raws.after&&(e+=this.raws.after),e}};Fe.registerWalker=t=>{let e=\"walk\"+t.name;e.lastIndexOf(\"s\")!==e.length-1&&(e+=\"s\"),!Fe.prototype[e]&&(Fe.prototype[e]=function(s){return this.walkType(t,s)})};cu.exports=Fe});var pu=g((Fx,fu)=>{\"use strict\";var Am=U();fu.exports=class extends Am{constructor(e){super(e),this.type=\"root\"}}});var du=g((Wx,hu)=>{\"use strict\";var Nm=U();hu.exports=class extends Nm{constructor(e){super(e),this.type=\"value\",this.unbalanced=0}}});var gu=g((Yx,yu)=>{\"use strict\";var mu=U(),Cr=class extends mu{constructor(e){super(e),this.type=\"atword\"}toString(){let e=this.quoted?this.raws.quote:\"\";return[this.raws.before,\"@\",String.prototype.toString.call(this.value),this.raws.after].join(\"\")}};mu.registerWalker(Cr);yu.exports=Cr});var vu=g((zx,wu)=>{\"use strict\";var Pm=U(),Rm=G(),Or=class extends Rm{constructor(e){super(e),this.type=\"colon\"}};Pm.registerWalker(Or);wu.exports=Or});var bu=g((Vx,xu)=>{\"use strict\";var Im=U(),qm=G(),Ar=class extends qm{constructor(e){super(e),this.type=\"comma\"}};Im.registerWalker(Ar);xu.exports=Ar});var ku=g((Gx,_u)=>{\"use strict\";var Lm=U(),Dm=G(),Nr=class extends Dm{constructor(e){super(e),this.type=\"comment\",this.inline=Object(e).inline||!1}toString(){return[this.raws.before,this.inline?\"//\":\"/*\",String(this.value),this.inline?\"\":\"*/\",this.raws.after].join(\"\")}};Lm.registerWalker(Nr);_u.exports=Nr});var Tu=g((jx,Su)=>{\"use strict\";var Eu=U(),Pr=class extends Eu{constructor(e){super(e),this.type=\"func\",this.unbalanced=-1}};Eu.registerWalker(Pr);Su.exports=Pr});var Ou=g((Hx,Cu)=>{\"use strict\";var Bm=U(),Mm=G(),Rr=class extends Mm{constructor(e){super(e),this.type=\"number\",this.unit=Object(e).unit||\"\"}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join(\"\")}};Bm.registerWalker(Rr);Cu.exports=Rr});var Nu=g((Kx,Au)=>{\"use strict\";var Um=U(),Fm=G(),Ir=class extends Fm{constructor(e){super(e),this.type=\"operator\"}};Um.registerWalker(Ir);Au.exports=Ir});var Ru=g((Qx,Pu)=>{\"use strict\";var $m=U(),Wm=G(),qr=class extends Wm{constructor(e){super(e),this.type=\"paren\",this.parenType=\"\"}};$m.registerWalker(qr);Pu.exports=qr});var qu=g((Jx,Iu)=>{\"use strict\";var Ym=U(),zm=G(),Lr=class extends zm{constructor(e){super(e),this.type=\"string\"}toString(){let e=this.quoted?this.raws.quote:\"\";return[this.raws.before,e,this.value+\"\",e,this.raws.after].join(\"\")}};Ym.registerWalker(Lr);Iu.exports=Lr});var Du=g((Xx,Lu)=>{\"use strict\";var Vm=U(),Gm=G(),Dr=class extends Gm{constructor(e){super(e),this.type=\"word\"}};Vm.registerWalker(Dr);Lu.exports=Dr});var Mu=g((Zx,Bu)=>{\"use strict\";var jm=U(),Hm=G(),Br=class extends Hm{constructor(e){super(e),this.type=\"unicode-range\"}};jm.registerWalker(Br);Bu.exports=Br});var Fu=g((eb,Uu)=>{\"use strict\";var Gs=class extends Error{constructor(e){super(e),this.name=this.constructor.name,this.message=e||\"An error ocurred while tokzenizing.\",typeof Error.captureStackTrace==\"function\"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}};Uu.exports=Gs});var Yu=g((tb,Wu)=>{\"use strict\";var Mr=/[ \\n\\t\\r\\{\\(\\)'\"\\\\;,/]/g,Km=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\+\\|~>,\\[\\]\\\\]|\\/(?=\\*)/g,$e=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\-\\+\\|~>,\\[\\]\\\\]|\\//g,Qm=/^[a-z0-9]/i,Jm=/^[a-f0-9?\\-]/i,$u=Fu();Wu.exports=function(e,s){s=s||{};let r=[],n=e.valueOf(),i=n.length,o=-1,u=1,a=0,c=0,f=null,p,l,y,x,h,d,m,b,w,v,N,F;function H(T){let C=`Unclosed ${T} at line: ${u}, column: ${a-o}, token: ${a}`;throw new $u(C)}function W(){let T=`Syntax error at line: ${u}, column: ${a-o}, token: ${a}`;throw new $u(T)}for(;a0&&r[r.length-1][0]===\"word\"&&r[r.length-1][1]===\"url\",r.push([\"(\",\"(\",u,a-o,u,l-o,a]);break;case 41:c--,f=f&&c>0,r.push([\")\",\")\",u,a-o,u,l-o,a]);break;case 39:case 34:y=p===39?\"'\":'\"',l=a;do for(v=!1,l=n.indexOf(y,l+1),l===-1&&H(\"quote\",y),N=l;n.charCodeAt(N-1)===92;)N-=1,v=!v;while(v);r.push([\"string\",n.slice(a,l+1),u,a-o,u,l-o,a]),a=l;break;case 64:Mr.lastIndex=a+1,Mr.test(n),Mr.lastIndex===0?l=n.length-1:l=Mr.lastIndex-2,r.push([\"atword\",n.slice(a,l+1),u,a-o,u,l-o,a]),a=l;break;case 92:l=a,p=n.charCodeAt(l+1),m&&p!==47&&p!==32&&p!==10&&p!==9&&p!==13&&p!==12&&(l+=1),r.push([\"word\",n.slice(a,l+1),u,a-o,u,l-o,a]),a=l;break;case 43:case 45:case 42:l=a+1,F=n.slice(a+1,l+1);let T=n.slice(a-1,a);if(p===45&&F.charCodeAt(0)===45){l++,r.push([\"word\",n.slice(a,l),u,a-o,u,l-o,a]),a=l-1;break}r.push([\"operator\",n.slice(a,l),u,a-o,u,l-o,a]),a=l-1;break;default:if(p===47&&(n.charCodeAt(a+1)===42||s.loose&&!f&&n.charCodeAt(a+1)===47)){if(n.charCodeAt(a+1)===42)l=n.indexOf(\"*/\",a+2)+1,l===0&&H(\"comment\",\"*/\");else{let O=n.indexOf(`\n`,a+2);l=O!==-1?O-1:i}d=n.slice(a,l+1),x=d.split(`\n`),h=x.length-1,h>0?(b=u+h,w=l-x[h].length):(b=u,w=o),r.push([\"comment\",d,u,a-o,b,l-w,a]),o=w,u=b,a=l}else if(p===35&&!Qm.test(n.slice(a+1,a+2)))l=a+1,r.push([\"#\",n.slice(a,l),u,a-o,u,l-o,a]),a=l-1;else if((p===117||p===85)&&n.charCodeAt(a+1)===43){l=a+2;do l+=1,p=n.charCodeAt(l);while(l=48&&p<=57&&(C=$e),C.lastIndex=a+1,C.test(n),C.lastIndex===0?l=n.length-1:l=C.lastIndex-2,C===$e||p===46){let O=n.charCodeAt(l),ve=n.charCodeAt(l+1),Xs=n.charCodeAt(l+2);(O===101||O===69)&&(ve===45||ve===43)&&Xs>=48&&Xs<=57&&($e.lastIndex=l+2,$e.test(n),$e.lastIndex===0?l=n.length-1:l=$e.lastIndex-2)}r.push([\"word\",n.slice(a,l+1),u,a-o,u,l-o,a]),a=l}break}a++}return r}});var Vu=g((rb,zu)=>{\"use strict\";var js=class extends Error{constructor(e){super(e),this.name=this.constructor.name,this.message=e||\"An error ocurred while parsing.\",typeof Error.captureStackTrace==\"function\"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}};zu.exports=js});var Ku=g((nb,Hu)=>{\"use strict\";var Xm=pu(),Zm=du(),ey=gu(),ty=vu(),ry=bu(),sy=ku(),ny=Tu(),iy=Ou(),oy=Nu(),Gu=Ru(),ay=qu(),ju=Du(),uy=Mu(),ly=Yu(),cy=Ls(),fy=Ds(),py=Bs(),hy=Vu();function dy(t){return t.sort((e,s)=>e-s)}Hu.exports=class{constructor(e,s){let r={loose:!1};this.cache=[],this.input=e,this.options=Object.assign({},r,s),this.position=0,this.unbalanced=0,this.root=new Xm;let n=new Zm;this.root.append(n),this.current=n,this.tokens=ly(e,this.options)}parse(){return this.loop()}colon(){let e=this.currToken;this.newNode(new ty({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}comma(){let e=this.currToken;this.newNode(new ry({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}comment(){let e=!1,s=this.currToken[1].replace(/\\/\\*|\\*\\//g,\"\"),r;this.options.loose&&s.startsWith(\"//\")&&(s=s.substring(2),e=!0),r=new sy({value:s,inline:e,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(r),this.position++}error(e,s){throw new hy(e+` at line: ${s[2]}, column ${s[3]}`)}loop(){for(;this.position0&&(this.current.type===\"func\"&&this.current.value===\"calc\"?this.prevToken[0]!==\"space\"&&this.prevToken[0]!==\"(\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]!==\"space\"&&this.nextToken[0]!==\"word\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]===\"word\"&&this.current.last.type!==\"operator\"&&this.current.last.value!==\"(\"&&this.error(\"Syntax Error\",this.currToken):(this.nextToken[0]===\"space\"||this.nextToken[0]===\"operator\"||this.prevToken[0]===\"operator\")&&this.error(\"Syntax Error\",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&this.current.last.type===\"operator\")&&this.nextToken[0]===\"word\")return this.word()}else if(this.nextToken[0]===\"word\")return this.word()}return s=new oy({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(s)}parseTokens(){switch(this.currToken[0]){case\"space\":this.space();break;case\"colon\":this.colon();break;case\"comma\":this.comma();break;case\"comment\":this.comment();break;case\"(\":this.parenOpen();break;case\")\":this.parenClose();break;case\"atword\":case\"word\":this.word();break;case\"operator\":this.operator();break;case\"string\":this.string();break;case\"unicoderange\":this.unicodeRange();break;default:this.word();break}}parenOpen(){let e=1,s=this.position+1,r=this.currToken,n;for(;s=this.tokens.length-1&&!this.current.unbalanced)&&(this.current.unbalanced--,this.current.unbalanced<0&&this.error(\"Expected opening parenthesis\",e),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let e=this.currToken;this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.raws.after+=e[1],this.position++):(this.spaces=e[1],this.position++)}unicodeRange(){let e=this.currToken;this.newNode(new uy({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}splitWord(){let e=this.nextToken,s=this.currToken[1],r=/^[\\+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\+\\-]?\\d+)?/,n=/^(?!\\#([a-z0-9]+))[\\#\\{\\}]/gi,i,o;if(!n.test(s))for(;e&&e[0]===\"word\";){this.position++;let u=this.currToken[1];s+=u,e=this.nextToken}i=fy(s,\"@\"),o=dy(py(cy([[0],i]))),o.forEach((u,a)=>{let c=o[a+1]||s.length,f=s.slice(u,c),p;if(~i.indexOf(u))p=new ey({value:f.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+u},end:{line:this.currToken[4],column:this.currToken[3]+(c-1)}},sourceIndex:this.currToken[6]+o[a]});else if(r.test(this.currToken[1])){let l=f.replace(r,\"\");p=new iy({value:f.replace(l,\"\"),source:{start:{line:this.currToken[2],column:this.currToken[3]+u},end:{line:this.currToken[4],column:this.currToken[3]+(c-1)}},sourceIndex:this.currToken[6]+o[a],unit:l})}else p=new(e&&e[0]===\"(\"?ny:ju)({value:f,source:{start:{line:this.currToken[2],column:this.currToken[3]+u},end:{line:this.currToken[4],column:this.currToken[3]+(c-1)}},sourceIndex:this.currToken[6]+o[a]}),p.type===\"word\"?(p.isHex=/^#(.+)/.test(f),p.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(f)):this.cache.push(this.current);this.newNode(p)}),this.position++}string(){let e=this.currToken,s=this.currToken[1],r=/^(\\\"|\\')/,n=r.test(s),i=\"\",o;n&&(i=s.match(r)[0],s=s.slice(1,s.length-1)),o=new ay({value:s,source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6],quoted:n}),o.raws.quote=i,this.newNode(o),this.position++}word(){return this.splitWord()}newNode(e){return this.spaces&&(e.raws.before+=this.spaces,this.spaces=\"\"),this.current.append(e)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}});var Js={};Zs(Js,{languages:()=>yi,options:()=>wi,parsers:()=>Qs,printers:()=>Ny});var wl=(t,e,s,r)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(s,r):s.global?e.replace(s,r):e.split(s).join(r)},k=wl;var We=\"string\",Ye=\"array\",ze=\"cursor\",te=\"indent\",be=\"align\",Ve=\"trim\",re=\"group\",se=\"fill\",pe=\"if-break\",Ge=\"indent-if-break\",_e=\"line-suffix\",je=\"line-suffix-boundary\",K=\"line\",He=\"label\",ke=\"break-parent\",Tt=new Set([ze,te,be,Ve,re,se,pe,Ge,_e,je,K,He,ke]);function vl(t){if(typeof t==\"string\")return We;if(Array.isArray(t))return Ye;if(!t)return;let{type:e}=t;if(Tt.has(e))return e}var Q=vl;var xl=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function bl(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(Q(t))throw new Error(\"doc is valid.\");let s=Object.prototype.toString.call(t);if(s!==\"[object Object]\")return`Unexpected doc '${s}'.`;let r=xl([...Tt].map(n=>`'${n}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${r}.`}var Wr=class extends Error{name=\"InvalidDocError\";constructor(e){super(bl(e)),this.doc=e}},Yr=Wr;var en=()=>{},ne=en,Ee=en;function q(t){return ne(t),{type:te,contents:t}}function tn(t,e){return ne(e),{type:be,contents:e,n:t}}function L(t,e={}){return ne(t),Ee(e.expandedStates,!0),{type:re,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function rn(t){return tn({type:\"root\"},t)}function ie(t){return tn(-1,t)}function Se(t){return Ee(t),{type:se,parts:t}}function Ct(t,e=\"\",s={}){return ne(t),e!==\"\"&&ne(e),{type:pe,breakContents:t,flatContents:e,groupId:s.groupId}}function sn(t){return ne(t),{type:_e,contents:t}}var Ke={type:ke};var _l={type:K,hard:!0};var A={type:K},B={type:K,soft:!0},S=[_l,Ke];function Y(t,e){ne(t),Ee(e);let s=[];for(let r=0;r{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[s<0?e.length+s:s]:e.at(s)},$=kl;function El(t,e){if(typeof t==\"string\")return e(t);let s=new Map;return r(t);function r(i){if(s.has(i))return s.get(i);let o=n(i);return s.set(i,o),o}function n(i){switch(Q(i)){case Ye:return e(i.map(r));case se:return e({...i,parts:i.parts.map(r)});case pe:return e({...i,breakContents:r(i.breakContents),flatContents:r(i.flatContents)});case re:{let{expandedStates:o,contents:u}=i;return o?(o=o.map(r),u=o[0]):u=r(u),e({...i,contents:u,expandedStates:o})}case be:case te:case Ge:case He:case _e:return e({...i,contents:r(i.contents)});case We:case ze:case Ve:case je:case K:case ke:return e(i);default:throw new Yr(i)}}}function Sl(t){return t.type===K&&!t.hard?t.soft?\"\":\" \":t.type===pe?t.flatContents:t}function nn(t){return El(t,Sl)}function Tl(t){return Array.isArray(t)&&t.length>0}var oe=Tl;var on=new Proxy(()=>{},{get:()=>on}),an=on;var Ot=\"'\",un='\"';function Cl(t,e){let s=e===!0||e===Ot?Ot:un,r=s===Ot?un:Ot,n=0,i=0;for(let o of t)o===s?n++:o===r&&i++;return n>i?r:s}var ln=Cl;function Ol(t,e,s){let r=e==='\"'?\"'\":'\"',i=k(!1,t,/\\\\(.)|([\"'])/gsu,(o,u,a)=>u===r?u:a===e?\"\\\\\"+a:a||(s&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(u)?u:\"\\\\\"+u));return e+i+e}var cn=Ol;function Al(t,e){an(/^(?[\"']).*\\k$/su.test(t));let s=t.slice(1,-1),r=e.parser===\"json\"||e.parser===\"jsonc\"||e.parser===\"json5\"&&e.quoteProps===\"preserve\"&&!e.singleQuote?'\"':e.__isInHtmlAttribute?\"'\":ln(s,e.singleQuote);return t.charAt(0)===r?t:cn(s,r,!1)}var At=Al;var zr=class extends Error{name=\"UnexpectedNodeError\";constructor(e,s,r=\"type\"){super(`Unexpected ${s} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},fn=zr;function Nl(t){return(t==null?void 0:t.type)===\"front-matter\"}var Te=Nl;var Pl=new Set([\"raw\",\"raws\",\"sourceIndex\",\"source\",\"before\",\"after\",\"trailingComma\",\"spaces\"]);function pn(t,e,s){if(Te(t)&&t.language===\"yaml\"&&delete e.value,t.type===\"css-comment\"&&s.type===\"css-root\"&&s.nodes.length>0&&((s.nodes[0]===t||Te(s.nodes[0])&&s.nodes[1]===t)&&(delete e.text,/^\\*\\s*@(?:format|prettier)\\s*$/u.test(t.text))||s.type===\"css-root\"&&$(!1,s.nodes,-1)===t))return null;if(t.type===\"value-root\"&&delete e.text,(t.type===\"media-query\"||t.type===\"media-query-list\"||t.type===\"media-feature-expression\")&&delete e.value,t.type===\"css-rule\"&&delete e.params,(t.type===\"media-feature\"||t.type===\"media-keyword\"||t.type===\"media-type\"||t.type===\"media-unknown\"||t.type===\"media-url\"||t.type===\"media-value\"||t.type===\"selector-attribute\"||t.type===\"selector-string\"||t.type===\"selector-class\"||t.type===\"selector-combinator\"||t.type===\"value-string\")&&t.value&&(e.value=Rl(t.value)),t.type===\"selector-combinator\"&&(e.value=k(!1,e.value,/\\s+/gu,\" \")),t.type===\"media-feature\"&&(e.value=k(!1,e.value,\" \",\"\")),(t.type===\"value-word\"&&(t.isColor&&t.isHex||[\"initial\",\"inherit\",\"unset\",\"revert\"].includes(t.value.toLowerCase()))||t.type===\"media-feature\"||t.type===\"selector-root-invalid\"||t.type===\"selector-pseudo\")&&(e.value=e.value.toLowerCase()),t.type===\"css-decl\"&&(e.prop=t.prop.toLowerCase()),(t.type===\"css-atrule\"||t.type===\"css-import\")&&(e.name=t.name.toLowerCase()),t.type===\"value-number\"&&(e.unit=t.unit.toLowerCase()),t.type===\"value-unknown\"&&(e.value=k(!1,e.value,/;$/gu,\"\")),t.type===\"selector-attribute\"&&(e.attribute=t.attribute.trim(),t.namespace&&typeof t.namespace==\"string\"&&(e.namespace=t.namespace.trim()||!0),t.value&&(e.value=k(!1,e.value.trim(),/^[\"']|[\"']$/gu,\"\"),delete e.quoted)),(t.type===\"media-value\"||t.type===\"media-type\"||t.type===\"value-number\"||t.type===\"selector-root-invalid\"||t.type===\"selector-class\"||t.type===\"selector-combinator\"||t.type===\"selector-tag\")&&t.value&&(e.value=k(!1,e.value,/([\\d+.e-]+)([a-z]*)/giu,(r,n,i)=>{let o=Number(n);return Number.isNaN(o)?r:o+i.toLowerCase()})),t.type===\"selector-tag\"){let r=e.value.toLowerCase();[\"from\",\"to\"].includes(r)&&(e.value=r)}if(t.type===\"css-atrule\"&&t.name.toLowerCase()===\"supports\"&&delete e.value,t.type===\"selector-unknown\"&&delete e.value,t.type===\"value-comma_group\"){let r=t.groups.findIndex(n=>n.type===\"value-number\"&&n.unit===\"...\");r!==-1&&(e.groups[r].unit=\"\",e.groups.splice(r+1,0,{type:\"value-word\",value:\"...\",isColor:!1,isHex:!1}))}if(t.type===\"value-comma_group\"&&t.groups.some(r=>r.type===\"value-atword\"&&r.value.endsWith(\"[\")||r.type===\"value-word\"&&r.value.startsWith(\"]\")))return{type:\"value-atword\",value:t.groups.map(r=>r.value).join(\"\"),group:{open:null,close:null,groups:[],type:\"value-paren_group\"}}}pn.ignoredProperties=Pl;function Rl(t){return k(!1,k(!1,t,\"'\",'\"'),/\\\\([^\\da-f])/giu,\"$1\")}var hn=pn;async function Il(t,e){if(t.language===\"yaml\"){let s=t.value.trim(),r=s?await e(s,{parser:\"yaml\"}):\"\";return rn([t.startDelimiter,t.explicitLanguage,S,r,r?S:\"\",t.endDelimiter])}}var dn=Il;function mn(t){let{node:e}=t;if(e.type===\"front-matter\")return async s=>{let r=await dn(e,s);return r?[r,S]:void 0}}mn.getVisitorKeys=t=>t.type===\"css-root\"?[\"frontMatter\"]:[];var yn=mn;var Qe=null;function Je(t){if(Qe!==null&&typeof Qe.property){let e=Qe;return Qe=Je.prototype=null,e}return Qe=Je.prototype=t??Object.create(null),new Je}var ql=10;for(let t=0;t<=ql;t++)Je();function Vr(t){return Je(t)}function Ll(t,e=\"type\"){Vr(t);function s(r){let n=r[e],i=t[n];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${n}'.`),{node:r});return i}return s}var gn=Ll;var Dl={\"front-matter\":[],\"css-root\":[\"frontMatter\",\"nodes\"],\"css-comment\":[],\"css-rule\":[\"selector\",\"nodes\"],\"css-decl\":[\"value\",\"selector\",\"nodes\"],\"css-atrule\":[\"selector\",\"params\",\"value\",\"nodes\"],\"media-query-list\":[\"nodes\"],\"media-query\":[\"nodes\"],\"media-type\":[],\"media-feature-expression\":[\"nodes\"],\"media-feature\":[],\"media-colon\":[],\"media-value\":[],\"media-keyword\":[],\"media-url\":[],\"media-unknown\":[],\"selector-root\":[\"nodes\"],\"selector-selector\":[\"nodes\"],\"selector-comment\":[],\"selector-string\":[],\"selector-tag\":[],\"selector-id\":[],\"selector-class\":[],\"selector-attribute\":[],\"selector-combinator\":[\"nodes\"],\"selector-universal\":[],\"selector-pseudo\":[\"nodes\"],\"selector-nesting\":[],\"selector-unknown\":[],\"value-value\":[\"group\"],\"value-root\":[\"group\"],\"value-comment\":[],\"value-comma_group\":[\"groups\"],\"value-paren_group\":[\"open\",\"groups\",\"close\"],\"value-func\":[\"group\"],\"value-paren\":[],\"value-number\":[],\"value-operator\":[],\"value-word\":[],\"value-colon\":[],\"value-comma\":[],\"value-string\":[],\"value-atword\":[],\"value-unicode-range\":[],\"value-unknown\":[]},wn=Dl;var Bl=gn(wn),vn=Bl;function Ml(t,e){let s=0;for(let r=0;r{let n=!!(r!=null&&r.backwards);if(s===!1)return!1;let{length:i}=e,o=s;for(;o>=0&&oTn(c,e[c])).map(c=>`${n} ${c}${s}`).join(\"\");if(!t){if(o.length===0)return\"\";if(o.length===1&&!Array.isArray(e[o[0]])){let c=e[o[0]];return`${r} ${Tn(o[0],c)[0]}${i}`}}let a=t.split(s).map(c=>`${n} ${c}`).join(s)+s;return r+s+(t?a:\"\")+(t&&o.length>0?n+s:\"\")+u+i}function Tn(t,e){return[...On,...Array.isArray(e)?e:[e]].map(s=>`@${t} ${s}`.trim())}function Vl(t){if(!t.startsWith(\"#!\"))return\"\";let e=t.indexOf(`\n`);return e===-1?t:t.slice(0,e)}var In=Vl;function qn(t){let e=In(t);e&&(t=t.slice(e.length+1));let s=An(t),{pragmas:r,comments:n}=Pn(s);return{shebang:e,text:t,pragmas:r,comments:n}}function Ln(t){let{pragmas:e}=qn(t);return Object.prototype.hasOwnProperty.call(e,\"prettier\")||Object.prototype.hasOwnProperty.call(e,\"format\")}function Dn(t){let{shebang:e,text:s,pragmas:r,comments:n}=qn(t),i=Nn(s),o=Rn({pragmas:{format:\"\",...r},comments:n.trimStart()});return(e?`${e}\n`:\"\")+o+(i.startsWith(`\n`)?`\n`:`\n\n`)+i}var Xe=3;function Gl(t){let e=t.slice(0,Xe);if(e!==\"---\"&&e!==\"+++\")return;let s=t.indexOf(`\n`,Xe);if(s===-1)return;let r=t.slice(Xe,s).trim(),n=t.indexOf(`\n${e}`,s),i=r;if(i||(i=e===\"+++\"?\"toml\":\"yaml\"),n===-1&&e===\"---\"&&i===\"yaml\"&&(n=t.indexOf(`\n...`,s)),n===-1)return;let o=n+1+Xe,u=t.charAt(o+1);if(!/\\s?/u.test(u))return;let a=t.slice(0,o);return{type:\"front-matter\",language:i,explicitLanguage:r,value:t.slice(s+1,n),startDelimiter:e,endDelimiter:a.slice(-Xe),raw:a}}function jl(t){let e=Gl(t);if(!e)return{content:t};let{raw:s}=e;return{frontMatter:e,content:k(!1,s,/[^\\n]/gu,\" \")+t.slice(s.length)}}var Ze=jl;function Bn(t){return Ln(Ze(t).content)}function Mn(t){let{frontMatter:e,content:s}=Ze(t);return(e?e.raw+`\n\n`:\"\")+Dn(s)}var Hl=new Set([\"red\",\"green\",\"blue\",\"alpha\",\"a\",\"rgb\",\"hue\",\"h\",\"saturation\",\"s\",\"lightness\",\"l\",\"whiteness\",\"w\",\"blackness\",\"b\",\"tint\",\"shade\",\"blend\",\"blenda\",\"contrast\",\"hsl\",\"hsla\",\"hwb\",\"hwba\"]);function Un(t){var e,s;return(s=(e=t.findAncestor(r=>r.type===\"css-decl\"))==null?void 0:e.prop)==null?void 0:s.toLowerCase()}var Kl=new Set([\"initial\",\"inherit\",\"unset\",\"revert\"]);function Fn(t){return Kl.has(t.toLowerCase())}function $n(t,e){var r;let s=t.findAncestor(n=>n.type===\"css-atrule\");return((r=s==null?void 0:s.name)==null?void 0:r.toLowerCase().endsWith(\"keyframes\"))&&[\"from\",\"to\"].includes(e.toLowerCase())}function ae(t){return t.includes(\"$\")||t.includes(\"@\")||t.includes(\"#\")||t.startsWith(\"%\")||t.startsWith(\"--\")||t.startsWith(\":--\")||t.includes(\"(\")&&t.includes(\")\")?t:t.toLowerCase()}function Ce(t,e){var r;let s=t.findAncestor(n=>n.type===\"value-func\");return((r=s==null?void 0:s.value)==null?void 0:r.toLowerCase())===e}function Wn(t){var r;let e=t.findAncestor(n=>n.type===\"css-rule\"),s=(r=e==null?void 0:e.raws)==null?void 0:r.selector;return s&&(s.startsWith(\":import\")||s.startsWith(\":export\"))}function Oe(t,e){let s=Array.isArray(e)?e:[e],r=t.findAncestor(n=>n.type===\"css-atrule\");return r&&s.includes(r.name.toLowerCase())}function Yn(t){var s;let{node:e}=t;return e.groups[0].value===\"url\"&&e.groups.length===2&&((s=t.findAncestor(r=>r.type===\"css-atrule\"))==null?void 0:s.name)===\"import\"}function zn(t){return t.type===\"value-func\"&&t.value.toLowerCase()===\"url\"}function Vn(t){return t.type===\"value-func\"&&t.value.toLowerCase()===\"var\"}function Gn(t){let{selector:e}=t;return e?typeof e==\"string\"&&/^@.+:.*$/u.test(e)||e.value&&/^@.+:.*$/u.test(e.value):!1}function jn(t){return t.type===\"value-word\"&&[\"from\",\"through\",\"end\"].includes(t.value)}function Hn(t){return t.type===\"value-word\"&&[\"and\",\"or\",\"not\"].includes(t.value)}function Kn(t){return t.type===\"value-word\"&&t.value===\"in\"}function It(t){return t.type===\"value-operator\"&&t.value===\"*\"}function et(t){return t.type===\"value-operator\"&&t.value===\"/\"}function J(t){return t.type===\"value-operator\"&&t.value===\"+\"}function he(t){return t.type===\"value-operator\"&&t.value===\"-\"}function Ql(t){return t.type===\"value-operator\"&&t.value===\"%\"}function qt(t){return It(t)||et(t)||J(t)||he(t)||Ql(t)}function Qn(t){return t.type===\"value-word\"&&[\"==\",\"!=\"].includes(t.value)}function Jn(t){return t.type===\"value-word\"&&[\"<\",\">\",\"<=\",\">=\"].includes(t.value)}function tt(t,e){return e.parser===\"scss\"&&t.type===\"css-atrule\"&&[\"if\",\"else\",\"for\",\"each\",\"while\"].includes(t.name)}function Qr(t){var e;return((e=t.raws)==null?void 0:e.params)&&/^\\(\\s*\\)$/u.test(t.raws.params)}function Lt(t){return t.name.startsWith(\"prettier-placeholder\")}function Xn(t){return t.prop.startsWith(\"@prettier-placeholder\")}function Zn(t,e){return t.value===\"$$\"&&t.type===\"value-func\"&&(e==null?void 0:e.type)===\"value-word\"&&!e.raws.before}function ei(t){var e,s;return((e=t.value)==null?void 0:e.type)===\"value-root\"&&((s=t.value.group)==null?void 0:s.type)===\"value-value\"&&t.prop.toLowerCase()===\"composes\"}function ti(t){var e,s,r;return((r=(s=(e=t.value)==null?void 0:e.group)==null?void 0:s.group)==null?void 0:r.type)===\"value-paren_group\"&&t.value.group.group.open!==null&&t.value.group.group.close!==null}function de(t){var e;return((e=t.raws)==null?void 0:e.before)===\"\"}function Dt(t){var e,s;return t.type===\"value-comma_group\"&&((s=(e=t.groups)==null?void 0:e[1])==null?void 0:s.type)===\"value-colon\"}function Kr(t){var e;return t.type===\"value-paren_group\"&&((e=t.groups)==null?void 0:e[0])&&Dt(t.groups[0])}function Jr(t,e){var i;if(e.parser!==\"scss\")return!1;let{node:s}=t;if(s.groups.length===0)return!1;let r=t.grandparent;if(!Kr(s)&&!(r&&Kr(r)))return!1;let n=t.findAncestor(o=>o.type===\"css-decl\");return!!((i=n==null?void 0:n.prop)!=null&&i.startsWith(\"$\")||Kr(r)||r.type===\"value-func\")}function Ae(t){return t.type===\"value-comment\"&&t.inline}function Bt(t){return t.type===\"value-word\"&&t.value===\"#\"}function Xr(t){return t.type===\"value-word\"&&t.value===\"{\"}function Mt(t){return t.type===\"value-word\"&&t.value===\"}\"}function rt(t){return[\"value-word\",\"value-atword\"].includes(t.type)}function st(t){return(t==null?void 0:t.type)===\"value-colon\"}function ri(t,e){if(!Dt(e))return!1;let{groups:s}=e,r=s.indexOf(t);return r===-1?!1:st(s[r+1])}function si(t){return t.value&&[\"not\",\"and\",\"or\"].includes(t.value.toLowerCase())}function ni(t){return t.type!==\"value-func\"?!1:Hl.has(t.value.toLowerCase())}function Ne(t){return/\\/\\//u.test(t.split(/[\\n\\r]/u).pop())}function nt(t){return(t==null?void 0:t.type)===\"value-atword\"&&t.value.startsWith(\"prettier-placeholder-\")}function ii(t,e){var s,r;if(((s=t.open)==null?void 0:s.value)!==\"(\"||((r=t.close)==null?void 0:r.value)!==\")\"||t.groups.some(n=>n.type!==\"value-comma_group\"))return!1;if(e.type===\"value-comma_group\"){let n=e.groups.indexOf(t)-1,i=e.groups[n];if((i==null?void 0:i.type)===\"value-word\"&&i.value===\"with\")return!0}return!1}function it(t){var e,s;return t.type===\"value-paren_group\"&&((e=t.open)==null?void 0:e.value)===\"(\"&&((s=t.close)==null?void 0:s.value)===\")\"}function Jl(t,e,s){var d;let{node:r}=t,n=t.parent,i=t.grandparent,o=Un(t),u=o&&n.type===\"value-value\"&&(o===\"grid\"||o.startsWith(\"grid-template\")),a=t.findAncestor(m=>m.type===\"css-atrule\"),c=a&&tt(a,e),f=r.groups.some(m=>Ae(m)),p=t.map(s,\"groups\"),l=[\"\"],y=Ce(t,\"url\"),x=!1,h=!1;for(let m=0;m2&&r.groups.slice(0,m).every(O=>O.type===\"value-comment\")&&!Ae(b)&&(l[l.length-2]=ie($(!1,l,-2))),Oe(t,\"forward\")&&w.type===\"value-word\"&&w.value&&b!==void 0&&b.type===\"value-word\"&&b.value===\"as\"&&v.type===\"value-operator\"&&v.value===\"*\"||!v||w.type===\"value-word\"&&w.value.endsWith(\"-\")&&nt(v))continue;if(w.type===\"value-string\"&&w.quoted){let O=w.value.lastIndexOf(\"#{\"),ve=w.value.lastIndexOf(\"}\");O!==-1&&ve!==-1?x=O>ve:O!==-1?x=!0:ve!==-1&&(x=!1)}if(x||st(w)||st(v)||w.type===\"value-atword\"&&(w.value===\"\"||w.value.endsWith(\"[\"))||v.type===\"value-word\"&&v.value.startsWith(\"]\")||w.value===\"~\"||w.type!==\"value-string\"&&w.value&&w.value.includes(\"\\\\\")&&v&&v.type!==\"value-comment\"||b!=null&&b.value&&b.value.indexOf(\"\\\\\")===b.value.length-1&&w.type===\"value-operator\"&&w.value===\"/\"||w.value===\"\\\\\"||Zn(w,v)||Bt(w)||Xr(w)||Mt(v)||Xr(v)&&de(v)||Mt(w)&&de(v)||w.value===\"--\"&&Bt(v))continue;let F=qt(w),H=qt(v);if((F&&Bt(v)||H&&Mt(w))&&de(v)||!b&&et(w)||Ce(t,\"calc\")&&(J(w)||J(v)||he(w)||he(v))&&de(v))continue;let W=(J(w)||he(w))&&m===0&&(v.type===\"value-number\"||v.isHex)&&i&&ni(i)&&!de(v),T=(N==null?void 0:N.type)===\"value-func\"||N&&rt(N)||w.type===\"value-func\"||rt(w),C=v.type===\"value-func\"||rt(v)||(b==null?void 0:b.type)===\"value-func\"||b&&rt(b);if(e.parser===\"scss\"&&F&&w.value===\"-\"&&v.type===\"value-func\"&&R(w)!==P(v)){l.push([l.pop(),\" \"]);continue}if(!(!(It(v)||It(w))&&!Ce(t,\"calc\")&&!W&&(et(v)&&!T||et(w)&&!C||J(v)&&!T||J(w)&&!C||he(v)||he(w))&&(de(v)||F&&(!b||b&&qt(b))))&&!((e.parser===\"scss\"||e.parser===\"less\")&&F&&w.value===\"-\"&&it(v)&&R(w)===P(v.open)&&v.open.value===\"(\")){if(Ae(w)){if(n.type===\"value-paren_group\"){l.push(ie(S),\"\");continue}l.push(S,\"\");continue}if(c&&(Qn(v)||Jn(v)||Hn(v)||Kn(w)||jn(w))){l.push([l.pop(),\" \"]);continue}if(a&&a.name.toLowerCase()===\"namespace\"){l.push([l.pop(),\" \"]);continue}if(u){w.source&&v.source&&w.source.start.line!==v.source.start.line?(l.push(S,\"\"),h=!0):l.push([l.pop(),\" \"]);continue}if(H){l.push([l.pop(),\" \"]);continue}if((v==null?void 0:v.value)!==\"...\"&&!(nt(w)&&nt(v)&&R(w)===P(v))){if(nt(w)&&it(v)&&R(w)===P(v.open)){l.push(B,\"\");continue}if(w.value===\"with\"&&it(v)){l=[[Se(l),\" \"]];continue}(d=w.value)!=null&&d.endsWith(\"#\")&&v.value===\"{\"&&it(v.group)||Ae(v)&&!N||l.push(A,\"\")}}}return f&&l.push([l.pop(),Ke]),h&&l.unshift(\"\",S),c?L(q(l)):Yn(t)?L(Se(l)):L(q(Se(l)))}var oi=Jl;function Xl(t){return t.length===1?t:t.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(?=\\d)/u,\"$1$2\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/u,\"$1\").replace(/^([+-])?\\./u,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/u,\"$1\").replace(/\\.(?=e|$)/u,\"\")}var ai=Xl;var Zr=new Map([[\"em\",\"em\"],[\"rem\",\"rem\"],[\"ex\",\"ex\"],[\"rex\",\"rex\"],[\"cap\",\"cap\"],[\"rcap\",\"rcap\"],[\"ch\",\"ch\"],[\"rch\",\"rch\"],[\"ic\",\"ic\"],[\"ric\",\"ric\"],[\"lh\",\"lh\"],[\"rlh\",\"rlh\"],[\"vw\",\"vw\"],[\"svw\",\"svw\"],[\"lvw\",\"lvw\"],[\"dvw\",\"dvw\"],[\"vh\",\"vh\"],[\"svh\",\"svh\"],[\"lvh\",\"lvh\"],[\"dvh\",\"dvh\"],[\"vi\",\"vi\"],[\"svi\",\"svi\"],[\"lvi\",\"lvi\"],[\"dvi\",\"dvi\"],[\"vb\",\"vb\"],[\"svb\",\"svb\"],[\"lvb\",\"lvb\"],[\"dvb\",\"dvb\"],[\"vmin\",\"vmin\"],[\"svmin\",\"svmin\"],[\"lvmin\",\"lvmin\"],[\"dvmin\",\"dvmin\"],[\"vmax\",\"vmax\"],[\"svmax\",\"svmax\"],[\"lvmax\",\"lvmax\"],[\"dvmax\",\"dvmax\"],[\"cm\",\"cm\"],[\"mm\",\"mm\"],[\"q\",\"Q\"],[\"in\",\"in\"],[\"pt\",\"pt\"],[\"pc\",\"pc\"],[\"px\",\"px\"],[\"deg\",\"deg\"],[\"grad\",\"grad\"],[\"rad\",\"rad\"],[\"turn\",\"turn\"],[\"s\",\"s\"],[\"ms\",\"ms\"],[\"hz\",\"Hz\"],[\"khz\",\"kHz\"],[\"dpi\",\"dpi\"],[\"dpcm\",\"dpcm\"],[\"dppx\",\"dppx\"],[\"x\",\"x\"],[\"cqw\",\"cqw\"],[\"cqh\",\"cqh\"],[\"cqi\",\"cqi\"],[\"cqb\",\"cqb\"],[\"cqmin\",\"cqmin\"],[\"cqmax\",\"cqmax\"],[\"fr\",\"fr\"]]);function ui(t){let e=t.toLowerCase();return Zr.has(e)?Zr.get(e):t}var li=/([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/gsu,Zl=/(?:\\d*\\.\\d+|\\d+\\.?)(?:e[+-]?\\d+)?/giu,ec=/[a-z]+/giu,tc=/[$@]?[_a-z\\u0080-\\uFFFF][\\w\\u0080-\\uFFFF-]*/giu,rc=new RegExp(li.source+`|(${tc.source})?(${Zl.source})(${ec.source})?`,\"giu\");function z(t,e){return k(!1,t,li,s=>At(s,e))}function ci(t,e){let s=e.singleQuote?\"'\":'\"';return t.includes('\"')||t.includes(\"'\")?t:s+t+s}function me(t){return k(!1,t,rc,(e,s,r,n,i)=>!r&&n?es(n)+ae(i||\"\"):e)}function es(t){return ai(t).replace(/\\.0(?=$|e)/u,\"\")}function fi(t){return t.trailingComma===\"es5\"||t.trailingComma===\"all\"}function sc(t,e,s){let r=!!(s!=null&&s.backwards);if(e===!1)return!1;let n=t.charAt(e);if(r){if(t.charAt(e-1)===\"\\r\"&&n===`\n`)return e-2;if(n===`\n`||n===\"\\r\"||n===\"\\u2028\"||n===\"\\u2029\")return e-1}else{if(n===\"\\r\"&&t.charAt(e+1)===`\n`)return e+2;if(n===`\n`||n===\"\\r\"||n===\"\\u2028\"||n===\"\\u2029\")return e+1}return e}var Ut=sc;function nc(t,e,s={}){let r=Pt(t,s.backwards?e-1:e,s),n=Ut(t,r,s);return r!==n}var Ft=nc;function ic(t,e){if(e===!1)return!1;if(t.charAt(e)===\"/\"&&t.charAt(e+1)===\"*\"){for(let s=e+2;ss.type===\"value-comment\"))&&fi(e)&&t.callParent(()=>Jr(t,e))?Ct(\",\"):\"\"}function di(t,e,s){let{node:r,parent:n}=t,i=t.map(({node:y})=>typeof y==\"string\"?y:s(),\"groups\");if(n&&zn(n)&&(r.groups.length===1||r.groups.length>0&&r.groups[0].type===\"value-comma_group\"&&r.groups[0].groups.length>0&&r.groups[0].groups[0].type===\"value-word\"&&r.groups[0].groups[0].value.startsWith(\"data:\")))return[r.open?s(\"open\"):\"\",Y(\",\",i),r.close?s(\"close\"):\"\"];if(!r.open){let y=ts(t);Ee(i);let x=cc(Y(\",\",i),2),h=Y(y?S:A,x);return q(y?[S,h]:L(Se(h)))}let o=t.map(({node:y,isLast:x,index:h})=>{var b;let d=i[h];Dt(y)&&y.type===\"value-comma_group\"&&y.groups&&y.groups[0].type!==\"value-paren_group\"&&((b=y.groups[2])==null?void 0:b.type)===\"value-paren_group\"&&Q(d)===re&&Q(d.contents)===te&&Q(d.contents.contents)===se&&(d=L(ie(d)));let m=[d,x?lc(t,e):\",\"];if(!x&&y.type===\"value-comma_group\"&&oe(y.groups)){let w=$(!1,y.groups,-1);!w.source&&w.close&&(w=w.close),w.source&&$t(e.originalText,R(w))&&m.push(S)}return m},\"groups\"),u=ri(r,n),a=ii(r,n),c=Jr(t,e),f=a||c&&!u,p=a||u,l=L([r.open?s(\"open\"):\"\",q([B,Y(A,o)]),B,r.close?s(\"close\"):\"\"],{shouldBreak:f});return p?ie(l):l}function ts(t){return t.match(e=>e.type===\"value-paren_group\"&&!e.open&&e.groups.some(s=>s.type===\"value-comma_group\"),(e,s)=>s===\"group\"&&e.type===\"value-value\",(e,s)=>s===\"group\"&&e.type===\"value-root\",(e,s)=>s===\"value\"&&(e.type===\"css-decl\"&&!e.prop.startsWith(\"--\")||e.type===\"css-atrule\"&&e.variable))}function cc(t,e){let s=[];for(let r=0;r{let{node:n,previous:i}=t;if((i==null?void 0:i.type)===\"css-comment\"&&i.text.trim()===\"prettier-ignore\"?r.push(e.originalText.slice(P(n),R(n))):r.push(s()),t.isLast)return;let{next:o}=t;o.type===\"css-comment\"&&!Ft(e.originalText,P(o),{backwards:!0})&&!Te(n)||o.type===\"css-atrule\"&&o.name===\"else\"&&n.type!==\"css-comment\"?r.push(\" \"):(r.push(e.__isHTMLStyleAttribute?A:S),$t(e.originalText,R(n))&&!Te(n)&&r.push(S))},\"nodes\"),r}var Pe=fc;function pc(t,e,s){var n,i,o,u,a,c;let{node:r}=t;switch(r.type){case\"front-matter\":return[r.raw,S];case\"css-root\":{let f=Pe(t,e,s),p=r.raws.after.trim();return p.startsWith(\";\")&&(p=p.slice(1).trim()),[r.frontMatter?[s(\"frontMatter\"),S]:\"\",f,p?` ${p}`:\"\",r.nodes.length>0?S:\"\"]}case\"css-comment\":{let f=r.inline||r.raws.inline,p=e.originalText.slice(P(r),R(r));return f?p.trimEnd():p}case\"css-rule\":return[s(\"selector\"),r.important?\" !important\":\"\",r.nodes?[((n=r.selector)==null?void 0:n.type)===\"selector-unknown\"&&Ne(r.selector.value)?A:r.selector?\" \":\"\",\"{\",r.nodes.length>0?q([S,Pe(t,e,s)]):\"\",S,\"}\",Gn(r)?\";\":\"\"]:\";\"];case\"css-decl\":{let f=t.parent,{between:p}=r.raws,l=p.trim(),y=l===\":\",x=typeof r.value==\"string\"&&/^ *$/u.test(r.value),h=typeof r.value==\"string\"?r.value:s(\"value\");return h=ei(r)?nn(h):h,!y&&Ne(l)&&!((o=(i=r.value)==null?void 0:i.group)!=null&&o.group&&t.call(()=>ts(t),\"value\",\"group\",\"group\"))&&(h=q([S,ie(h)])),[k(!1,r.raws.before,/[\\s;]/gu,\"\"),f.type===\"css-atrule\"&&f.variable||Wn(t)?r.prop:ae(r.prop),l.startsWith(\"//\")?\" \":\"\",l,r.extend||x?\"\":\" \",e.parser===\"less\"&&r.extend&&r.selector?[\"extend(\",s(\"selector\"),\")\"]:\"\",h,r.raws.important?r.raws.important.replace(/\\s*!\\s*important/iu,\" !important\"):r.important?\" !important\":\"\",r.raws.scssDefault?r.raws.scssDefault.replace(/\\s*!default/iu,\" !default\"):r.scssDefault?\" !default\":\"\",r.raws.scssGlobal?r.raws.scssGlobal.replace(/\\s*!global/iu,\" !global\"):r.scssGlobal?\" !global\":\"\",r.nodes?[\" {\",q([B,Pe(t,e,s)]),B,\"}\"]:Xn(r)&&!f.raws.semicolon&&e.originalText[R(r)-1]!==\";\"?\"\":e.__isHTMLStyleAttribute&&t.isLast?Ct(\";\"):\";\"]}case\"css-atrule\":{let f=t.parent,p=Lt(r)&&!f.raws.semicolon&&e.originalText[R(r)-1]!==\";\";if(e.parser===\"less\"){if(r.mixin)return[s(\"selector\"),r.important?\" !important\":\"\",p?\"\":\";\"];if(r.function)return[r.name,typeof r.params==\"string\"?r.params:s(\"params\"),p?\"\":\";\"];if(r.variable)return[\"@\",r.name,\": \",r.value?s(\"value\"):\"\",r.raws.between.trim()?r.raws.between.trim()+\" \":\"\",r.nodes?[\"{\",q([r.nodes.length>0?B:\"\",Pe(t,e,s)]),B,\"}\"]:\"\",p?\"\":\";\"]}let l=r.name===\"import\"&&((u=r.params)==null?void 0:u.type)===\"value-unknown\"&&r.params.value.endsWith(\";\");return[\"@\",Qr(r)||r.name.endsWith(\":\")||Lt(r)?r.name:ae(r.name),r.params?[Qr(r)?\"\":Lt(r)?r.raws.afterName===\"\"?\"\":r.name.endsWith(\":\")?\" \":/^\\s*\\n\\s*\\n/u.test(r.raws.afterName)?[S,S]:/^\\s*\\n/u.test(r.raws.afterName)?S:\" \":\" \",typeof r.params==\"string\"?r.params:s(\"params\")]:\"\",r.selector?q([\" \",s(\"selector\")]):\"\",r.value?L([\" \",s(\"value\"),tt(r,e)?ti(r)?\" \":A:\"\"]):r.name===\"else\"?\" \":\"\",r.nodes?[tt(r,e)?\"\":r.selector&&!r.selector.nodes&&typeof r.selector.value==\"string\"&&Ne(r.selector.value)||!r.selector&&typeof r.params==\"string\"&&Ne(r.params)?A:\" \",\"{\",q([r.nodes.length>0?B:\"\",Pe(t,e,s)]),B,\"}\"]:p||l?\"\":\";\"]}case\"media-query-list\":{let f=[];return t.each(({node:p})=>{p.type===\"media-query\"&&p.value===\"\"||f.push(s())},\"nodes\"),L(q(Y(A,f)))}case\"media-query\":return[Y(\" \",t.map(s,\"nodes\")),t.isLast?\"\":\",\"];case\"media-type\":return me(z(r.value,e));case\"media-feature-expression\":return r.nodes?[\"(\",...t.map(s,\"nodes\"),\")\"]:r.value;case\"media-feature\":return ae(z(k(!1,r.value,/ +/gu,\" \"),e));case\"media-colon\":return[r.value,\" \"];case\"media-value\":return me(z(r.value,e));case\"media-keyword\":return z(r.value,e);case\"media-url\":return z(k(!1,k(!1,r.value,/^url\\(\\s+/giu,\"url(\"),/\\s+\\)$/gu,\")\"),e);case\"media-unknown\":return r.value;case\"selector-root\":return L([Oe(t,\"custom-selector\")?[t.findAncestor(f=>f.type===\"css-atrule\").customSelector,A]:\"\",Y([\",\",Oe(t,[\"extend\",\"custom-selector\",\"nest\"])?A:S],t.map(s,\"nodes\"))]);case\"selector-selector\":{let f=r.nodes.length>1;return L((f?q:p=>p)(t.map(s,\"nodes\")))}case\"selector-comment\":return r.value;case\"selector-string\":return z(r.value,e);case\"selector-tag\":return[r.namespace?[r.namespace===!0?\"\":r.namespace.trim(),\"|\"]:\"\",((a=t.previous)==null?void 0:a.type)===\"selector-nesting\"?r.value:me($n(t,r.value)?r.value.toLowerCase():r.value)];case\"selector-id\":return[\"#\",r.value];case\"selector-class\":return[\".\",me(z(r.value,e))];case\"selector-attribute\":return[\"[\",r.namespace?[r.namespace===!0?\"\":r.namespace.trim(),\"|\"]:\"\",r.attribute.trim(),r.operator??\"\",r.value?ci(z(r.value.trim(),e),e):\"\",r.insensitive?\" i\":\"\",\"]\"];case\"selector-combinator\":{if(r.value===\"+\"||r.value===\">\"||r.value===\"~\"||r.value===\">>>\"){let l=t.parent;return[l.type===\"selector-selector\"&&l.nodes[0]===r?\"\":A,r.value,t.isLast?\"\":\" \"]}let f=r.value.trim().startsWith(\"(\")?A:\"\",p=me(z(r.value.trim(),e))||A;return[f,p]}case\"selector-universal\":return[r.namespace?[r.namespace===!0?\"\":r.namespace.trim(),\"|\"]:\"\",r.value];case\"selector-pseudo\":return[ae(r.value),oe(r.nodes)?L([\"(\",q([B,Y([\",\",A],t.map(s,\"nodes\"))]),B,\")\"]):\"\"];case\"selector-nesting\":return r.value;case\"selector-unknown\":{let f=t.findAncestor(y=>y.type===\"css-rule\");if(f!=null&&f.isSCSSNesterProperty)return me(z(ae(r.value),e));let p=t.parent;if((c=p.raws)!=null&&c.selector){let y=P(p),x=y+p.raws.selector.length;return e.originalText.slice(y,x).trim()}let l=t.grandparent;if(p.type===\"value-paren_group\"&&(l==null?void 0:l.type)===\"value-func\"&&l.value===\"selector\"){let y=R(p.open)+1,x=P(p.close),h=e.originalText.slice(y,x).trim();return Ne(h)?[Ke,h]:h}return r.value}case\"value-value\":case\"value-root\":return s(\"group\");case\"value-comment\":return e.originalText.slice(P(r),R(r));case\"value-comma_group\":return oi(t,e,s);case\"value-paren_group\":return di(t,e,s);case\"value-func\":return[r.value,Oe(t,\"supports\")&&si(r)?\" \":\"\",s(\"group\")];case\"value-paren\":return r.value;case\"value-number\":return[es(r.value),ui(r.unit)];case\"value-operator\":return r.value;case\"value-word\":return r.isColor&&r.isHex||Fn(r.value)?r.value.toLowerCase():r.value;case\"value-colon\":{let{previous:f}=t;return L([r.value,typeof(f==null?void 0:f.value)==\"string\"&&f.value.endsWith(\"\\\\\")||Ce(t,\"url\")?\"\":A])}case\"value-string\":return At(r.raws.quote+r.value+r.raws.quote,e);case\"value-atword\":return[\"@\",r.value];case\"value-unicode-range\":return r.value;case\"value-unknown\":return r.value;case\"value-comma\":default:throw new fn(r,\"PostCSS\")}}var hc={print:pc,embed:yn,insertPragma:Mn,massageAstNode:hn,getVisitorKeys:vn},mi=hc;var yi=[{linguistLanguageId:50,name:\"CSS\",type:\"markup\",tmScope:\"source.css\",aceMode:\"css\",codemirrorMode:\"css\",codemirrorMimeType:\"text/css\",color:\"#563d7c\",extensions:[\".css\",\".wxss\"],parsers:[\"css\"],vscodeLanguageIds:[\"css\"]},{linguistLanguageId:262764437,name:\"PostCSS\",type:\"markup\",color:\"#dc3a0c\",tmScope:\"source.postcss\",group:\"CSS\",extensions:[\".pcss\",\".postcss\"],aceMode:\"text\",parsers:[\"css\"],vscodeLanguageIds:[\"postcss\"]},{linguistLanguageId:198,name:\"Less\",type:\"markup\",color:\"#1d365d\",aliases:[\"less-css\"],extensions:[\".less\"],tmScope:\"source.css.less\",aceMode:\"less\",codemirrorMode:\"css\",codemirrorMimeType:\"text/css\",parsers:[\"less\"],vscodeLanguageIds:[\"less\"]},{linguistLanguageId:329,name:\"SCSS\",type:\"markup\",color:\"#c6538c\",tmScope:\"source.css.scss\",aceMode:\"scss\",codemirrorMode:\"css\",codemirrorMimeType:\"text/x-scss\",extensions:[\".scss\"],parsers:[\"scss\"],vscodeLanguageIds:[\"scss\"]}];var gi={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var dc={singleQuote:gi.singleQuote},wi=dc;var Qs={};Zs(Qs,{css:()=>Cy,less:()=>Oy,scss:()=>Ay});var il=xe(gt(),1),ol=xe(So(),1),al=xe(ia(),1);function ep(t,e){let s=new SyntaxError(t+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(s,e)}var oa=ep;var ha=xe(pa(),1);function X(t,e,s){if(t&&typeof t==\"object\"){delete t.parent;for(let r in t)X(t[r],e,s),r===\"type\"&&typeof t[r]==\"string\"&&!t[r].startsWith(e)&&(!s||!s.test(t[r]))&&(t[r]=e+t[r])}return t}function qs(t){if(t&&typeof t==\"object\"){delete t.parent;for(let e in t)qs(t[e]);!Array.isArray(t)&&t.value&&!t.type&&(t.type=\"unknown\")}return t}var pp=ha.default.default;function hp(t){let e;try{e=pp(t)}catch{return{type:\"selector-unknown\",value:t}}return X(qs(e),\"media-\")}var da=hp;var uu=xe(au(),1);function Cm(t){if(/\\/\\/|\\/\\*/u.test(t))return{type:\"selector-unknown\",value:t.trim()};let e;try{new uu.default(s=>{e=s}).process(t)}catch{return{type:\"selector-unknown\",value:t}}return X(e,\"selector-\")}var ee=Cm;var tl=xe(Ku(),1);var my=t=>{for(;t.parent;)t=t.parent;return t},Ur=my;function yy(t){return Ur(t).text.slice(t.group.open.sourceIndex+1,t.group.close.sourceIndex).trim()}var Qu=yy;function gy(t){if(oe(t)){for(let e=t.length-1;e>0;e--)if(t[e].type===\"word\"&&t[e].value===\"{\"&&t[e-1].type===\"word\"&&t[e-1].value.endsWith(\"#\"))return!0}return!1}var Ju=gy;function wy(t){return t.some(e=>e.type===\"string\"||e.type===\"func\"&&!e.value.endsWith(\"\\\\\"))}var Xu=wy;function vy(t,e){return!!(e.parser===\"scss\"&&(t==null?void 0:t.type)===\"word\"&&t.value.startsWith(\"$\"))}var Zu=vy;var el=t=>t.type===\"paren\"&&t.value===\")\";function xy(t,e){var a;let{nodes:s}=t,r={open:null,close:null,groups:[],type:\"paren_group\"},n=[r],i=r,o={groups:[],type:\"comma_group\"},u=[o];for(let c=0;c0&&r.groups.push(o),r.close=f,u.length===1)throw new Error(\"Unbalanced parenthesis\");u.pop(),o=$(!1,u,-1),o.groups.push(r),n.pop(),r=$(!1,n,-1)}else if(f.type===\"comma\"){if(c===s.length-3&&s[c+1].type===\"comment\"&&el(s[c+2]))continue;r.groups.push(o),o={groups:[],type:\"comma_group\"},u[u.length-1]=o}else o.groups.push(f)}return o.groups.length>0&&r.groups.push(o),i}function Fr(t){return t.type===\"paren_group\"&&!t.open&&!t.close&&t.groups.length===1||t.type===\"comma_group\"&&t.groups.length===1?Fr(t.groups[0]):t.type===\"paren_group\"||t.type===\"comma_group\"?{...t,groups:t.groups.map(Fr)}:t}function rl(t,e){if(t&&typeof t==\"object\")for(let s in t)s!==\"parent\"&&(rl(t[s],e),s===\"nodes\"&&(t.group=Fr(xy(t,e)),delete t[s]));return t}function by(t,e){if(e.parser===\"less\"&&t.startsWith(\"~`\"))return{type:\"value-unknown\",value:t};let s=null;try{s=new tl.default(t,{loose:!0}).parse()}catch{return{type:\"value-unknown\",value:t}}s.text=t;let r=rl(s,e);return X(r,\"value-\",/^selector-/u)}var fe=by;var _y=new Set([\"import\",\"use\",\"forward\"]);function ky(t){return _y.has(t)}var sl=ky;function Ey(t,e){return e.parser!==\"scss\"||!t.selector?!1:t.selector.replace(/\\/\\*.*?\\*\\//u,\"\").replace(/\\/\\/.*\\n/u,\"\").trim().endsWith(\":\")}var nl=Ey;var Sy=/(\\s*)(!default).*$/u,Ty=/(\\s*)(!global).*$/u;function ul(t,e){var s,r;if(t&&typeof t==\"object\"){delete t.parent;for(let u in t)ul(t[u],e);if(!t.type)return t;if(t.raws??(t.raws={}),t.type===\"css-decl\"&&typeof t.prop==\"string\"&&t.prop.startsWith(\"--\")&&typeof t.value==\"string\"&&t.value.startsWith(\"{\")){let u;if(t.value.trimEnd().endsWith(\"}\")){let a=e.originalText.slice(0,t.source.start.offset),c=\"a\".repeat(t.prop.length)+e.originalText.slice(t.source.start.offset+t.prop.length,t.source.end.offset),f=k(!1,a,/[^\\n]/gu,\" \")+c,p;e.parser===\"scss\"?p=fl:e.parser===\"less\"?p=cl:p=ll;let l;try{l=p(f,{...e})}catch{}((s=l==null?void 0:l.nodes)==null?void 0:s.length)===1&&l.nodes[0].type===\"css-rule\"&&(u=l.nodes[0].nodes)}return u?t.value={type:\"css-rule\",nodes:u}:t.value={type:\"value-unknown\",value:t.raws.value.raw},t}let n=\"\";typeof t.selector==\"string\"&&(n=t.raws.selector?t.raws.selector.scss??t.raws.selector.raw:t.selector,t.raws.between&&t.raws.between.trim().length>0&&(n+=t.raws.between),t.raws.selector=n);let i=\"\";typeof t.value==\"string\"&&(i=t.raws.value?t.raws.value.scss??t.raws.value.raw:t.value,t.raws.value=i.trim());let o=\"\";if(typeof t.params==\"string\"&&(o=t.raws.params?t.raws.params.scss??t.raws.params.raw:t.params,t.raws.afterName&&t.raws.afterName.trim().length>0&&(o=t.raws.afterName+o),t.raws.between&&t.raws.between.trim().length>0&&(o=o+t.raws.between),o=o.trim(),t.raws.params=o),n.trim().length>0)return n.startsWith(\"@\")&&n.endsWith(\":\")?t:t.mixin?(t.selector=fe(n,e),t):(nl(t,e)&&(t.isSCSSNesterProperty=!0),t.selector=ee(n),t);if(i.trim().length>0){let u=i.match(Sy);u&&(i=i.slice(0,u.index),t.scssDefault=!0,u[0].trim()!==\"!default\"&&(t.raws.scssDefault=u[0]));let a=i.match(Ty);if(a&&(i=i.slice(0,a.index),t.scssGlobal=!0,a[0].trim()!==\"!global\"&&(t.raws.scssGlobal=a[0])),i.startsWith(\"progid:\"))return{type:\"value-unknown\",value:i};t.value=fe(i,e)}if(e.parser===\"less\"&&t.type===\"css-decl\"&&i.startsWith(\"extend(\")&&(t.extend||(t.extend=t.raws.between===\":\"),t.extend&&!t.selector&&(delete t.value,t.selector=ee(i.slice(7,-1)))),t.type===\"css-atrule\"){if(e.parser===\"less\"){if(t.mixin){let u=t.raws.identifier+t.name+t.raws.afterName+t.raws.params;return t.selector=ee(u),delete t.params,t}if(t.function)return t}if(e.parser===\"css\"&&t.name===\"custom-selector\"){let u=t.params.match(/:--\\S+\\s+/u)[0].trim();return t.customSelector=u,t.selector=ee(t.params.slice(u.length).trim()),delete t.params,t}if(e.parser===\"less\"){if(t.name.includes(\":\")&&!t.params){t.variable=!0;let u=t.name.split(\":\");t.name=u[0],t.value=fe(u.slice(1).join(\":\"),e)}if(![\"page\",\"nest\",\"keyframes\"].includes(t.name)&&((r=t.params)==null?void 0:r[0])===\":\"){t.variable=!0;let u=t.params.slice(1);u&&(t.value=fe(u,e)),t.raws.afterName+=\":\"}if(t.variable)return delete t.params,t.value||delete t.value,t}}if(t.type===\"css-atrule\"&&o.length>0){let{name:u}=t,a=t.name.toLowerCase();return u===\"warn\"||u===\"error\"?(t.params={type:\"media-unknown\",value:o},t):u===\"extend\"||u===\"nest\"?(t.selector=ee(o),delete t.params,t):u===\"at-root\"?(/^\\(\\s*(?:without|with)\\s*:.+\\)$/su.test(o)?t.params=fe(o,e):(t.selector=ee(o),delete t.params),t):sl(a)?(t.import=!0,delete t.filename,t.params=fe(o,e),t):[\"namespace\",\"supports\",\"if\",\"else\",\"for\",\"each\",\"while\",\"debug\",\"mixin\",\"include\",\"function\",\"return\",\"define-mixin\",\"add-mixin\"].includes(u)?(o=o.replace(/(\\$\\S+?)(\\s+)?\\.{3}/u,\"$1...$2\"),o=o.replace(/^(?!if)(\\S+)(\\s+)\\(/u,\"$1($2\"),t.value=fe(o,e),delete t.params,t):[\"media\",\"custom-media\"].includes(a)?o.includes(\"#{\")?{type:\"media-unknown\",value:o}:(t.params=da(o),t):(t.params=o,t)}}return t}function Hs(t,e,s){let r=Ze(e),{frontMatter:n}=r;e=r.content;let i;try{i=t(e,{map:!1})}catch(o){let{name:u,reason:a,line:c,column:f}=o;throw typeof c!=\"number\"?o:oa(`${u}: ${a}`,{loc:{start:{line:c,column:f}},cause:o})}return s.originalText=e,i=ul(X(i,\"css-\"),s),Hr(i,e),n&&(n.source={startOffset:0,endOffset:n.raw.length},i.frontMatter=n),i}function ll(t,e={}){return Hs(il.default.default,t,e)}function cl(t,e={}){return Hs(s=>ol.default.parse(kn(s)),t,e)}function fl(t,e={}){return Hs(al.default,t,e)}var Ks={astFormat:\"postcss\",hasPragma:Bn,locStart:P,locEnd:R},Cy={...Ks,parse:ll},Oy={...Ks,parse:cl},Ay={...Ks,parse:fl};var Ny={postcss:mi};var Ub=Js;export{Ub as default,yi as languages,wi as options,Qs as parsers,Ny as printers};\n", "var vd=Object.defineProperty;var Td=e=>{throw TypeError(e)};var Q0=(e,t,a)=>t in e?vd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var xd=(e,t)=>{for(var a in t)vd(e,a,{get:t[a],enumerable:!0})};var Na=(e,t,a)=>Q0(e,typeof t!=\"symbol\"?t+\"\":t,a),K0=(e,t,a)=>t.has(e)||Td(\"Cannot \"+a);var yp=(e,t,a)=>t.has(e)?Td(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,a);var ge=(e,t,a)=>(K0(e,t,\"access private method\"),a);var dd={};xd(dd,{parsers:()=>fd});var fd={};xd(fd,{typescript:()=>L4});var Z0=()=>()=>{},Ia=Z0;var ey=(e,t,a,o)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(a,o):a.global?t.replace(a,o):t.split(a).join(o)},Sr=ey;var wm=\"5.7\";var bt=[],ty=new Map;function ts(e){return e!==void 0?e.length:0}function Un(e,t){if(e!==void 0)for(let a=0;a0;return!1}function Yp(e,t){return t===void 0||t.length===0?e:e===void 0||e.length===0?t:[...e,...t]}function _y(e,t,a=Xp){if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let o=0;oe==null?void 0:e.at(t):(e,t)=>{if(e!==void 0&&(t=Np(e,t),t>1),l=a(e[P],P);switch(o(l,t)){case-1:v=P+1;break;case 0:return P;case 1:A=P-1;break}}return~v}function dy(e,t,a,o,m){if(e&&e.length>0){let v=e.length;if(v>0){let A=o===void 0||o<0?0:o,P=m===void 0||A+m>v-1?v-1:A+m,l;for(arguments.length<=2?(l=e[A],A++):l=a;A<=P;)l=t(l,e[A],A),A++;return l}}return a}var Cm=Object.prototype.hasOwnProperty;function Cr(e,t){return Cm.call(e,t)}function my(e){let t=[];for(let a in e)Cm.call(e,a)&&t.push(a);return t}function hy(){let e=new Map;return e.add=yy,e.remove=gy,e}function yy(e,t){let a=this.get(e);return a!==void 0?a.push(t):this.set(e,a=[t]),a}function gy(e,t){let a=this.get(e);a!==void 0&&(Ay(a,t),a.length||this.delete(e))}function Yr(e){return Array.isArray(e)}function bp(e){return Yr(e)?e:[e]}function by(e,t){return e!==void 0&&t(e)?e:void 0}function kr(e,t){return e!==void 0&&t(e)?e:B.fail(`Invalid cast. The supplied value ${e} did not pass the test '${B.getFunctionName(t)}'.`)}function Fa(e){}function vy(){return!0}function gt(e){return e}function wd(e){let t;return()=>(e&&(t=e(),e=void 0),t)}function Kn(e){let t=new Map;return a=>{let o=`${typeof a}:${a}`,m=t.get(o);return m===void 0&&!t.has(o)&&(m=e(a),t.set(o,m)),m}}function Xp(e,t){return e===t}function $p(e,t){return e===t||e!==void 0&&t!==void 0&&e.toUpperCase()===t.toUpperCase()}function Ty(e,t){return Xp(e,t)}function xy(e,t){return e===t?0:e===void 0?-1:t===void 0?1:ea?P-a:1),h=Math.floor(t.length>a+P?a+P:t.length);m[0]=P;let y=P;for(let x=1;xa)return;let g=o;o=m,m=g}let A=o[t.length];return A>a?void 0:A}function ky(e,t,a){let o=e.length-t.length;return o>=0&&(a?$p(e.slice(o),t):e.indexOf(t,o)===o)}function Ey(e,t){e[t]=e[e.length-1],e.pop()}function Ay(e,t){return Cy(e,a=>a===t)}function Cy(e,t){for(let a=0;a{let t=0;e.currentLogLevel=2,e.isDebugging=!1;function a(L){return e.currentLogLevel<=L}e.shouldLog=a;function o(L,se){e.loggingHost&&a(L)&&e.loggingHost.log(L,se)}function m(L){o(3,L)}e.log=m,(L=>{function se(Ke){o(1,Ke)}L.error=se;function fe(Ke){o(2,Ke)}L.warn=fe;function Te(Ke){o(3,Ke)}L.log=Te;function Xe(Ke){o(4,Ke)}L.trace=Xe})(m=e.log||(e.log={}));let v={};function A(){return t}e.getAssertionLevel=A;function P(L){let se=t;if(t=L,L>se)for(let fe of my(v)){let Te=v[fe];Te!==void 0&&e[fe]!==Te.assertion&&L>=Te.level&&(e[fe]=Te,v[fe]=void 0)}}e.setAssertionLevel=P;function l(L){return t>=L}e.shouldAssert=l;function Q(L,se){return l(L)?!0:(v[se]={level:L,assertion:e[se]},e[se]=Fa,!1)}function h(L,se){debugger;let fe=new Error(L?`Debug Failure. ${L}`:\"Debug Failure.\");throw Error.captureStackTrace&&Error.captureStackTrace(fe,se||h),fe}e.fail=h;function y(L,se,fe){return h(`${se||\"Unexpected node.\"}\\r\nNode ${Ot(L.kind)} was unexpected.`,fe||y)}e.failBadSyntaxKind=y;function g(L,se,fe,Te){L||(se=se?`False expression: ${se}`:\"False expression.\",fe&&(se+=`\\r\nVerbose Debug Information: `+(typeof fe==\"string\"?fe:fe())),h(se,Te||g))}e.assert=g;function x(L,se,fe,Te,Xe){if(L!==se){let Ke=fe?Te?`${fe} ${Te}`:fe:\"\";h(`Expected ${L} === ${se}. ${Ke}`,Xe||x)}}e.assertEqual=x;function I(L,se,fe,Te){L>=se&&h(`Expected ${L} < ${se}. ${fe||\"\"}`,Te||I)}e.assertLessThan=I;function re(L,se,fe){L>se&&h(`Expected ${L} <= ${se}`,fe||re)}e.assertLessThanOrEqual=re;function he(L,se,fe){L= ${se}`,fe||he)}e.assertGreaterThanOrEqual=he;function ye(L,se,fe){L==null&&h(se,fe||ye)}e.assertIsDefined=ye;function de(L,se,fe){return ye(L,se,fe||de),L}e.checkDefined=de;function M(L,se,fe){for(let Te of L)ye(Te,se,fe||M)}e.assertEachIsDefined=M;function ae(L,se,fe){return M(L,se,fe||ae),L}e.checkEachDefined=ae;function Oe(L,se=\"Illegal value:\",fe){let Te=typeof L==\"object\"&&Cr(L,\"kind\")&&Cr(L,\"pos\")?\"SyntaxKind: \"+Ot(L.kind):JSON.stringify(L);return h(`${se} ${Te}`,fe||Oe)}e.assertNever=Oe;function V(L,se,fe,Te){Q(1,\"assertEachNode\")&&g(se===void 0||Gp(L,se),fe||\"Unexpected node.\",()=>`Node array did not pass test '${bn(se)}'.`,Te||V)}e.assertEachNode=V;function oe(L,se,fe,Te){Q(1,\"assertNode\")&&g(L!==void 0&&(se===void 0||se(L)),fe||\"Unexpected node.\",()=>`Node ${Ot(L==null?void 0:L.kind)} did not pass test '${bn(se)}'.`,Te||oe)}e.assertNode=oe;function W(L,se,fe,Te){Q(1,\"assertNotNode\")&&g(L===void 0||se===void 0||!se(L),fe||\"Unexpected node.\",()=>`Node ${Ot(L.kind)} should not have passed test '${bn(se)}'.`,Te||W)}e.assertNotNode=W;function dt(L,se,fe,Te){Q(1,\"assertOptionalNode\")&&g(se===void 0||L===void 0||se(L),fe||\"Unexpected node.\",()=>`Node ${Ot(L==null?void 0:L.kind)} did not pass test '${bn(se)}'.`,Te||dt)}e.assertOptionalNode=dt;function nr(L,se,fe,Te){Q(1,\"assertOptionalToken\")&&g(se===void 0||L===void 0||L.kind===se,fe||\"Unexpected node.\",()=>`Node ${Ot(L==null?void 0:L.kind)} was not a '${Ot(se)}' token.`,Te||nr)}e.assertOptionalToken=nr;function gn(L,se,fe){Q(1,\"assertMissingNode\")&&g(L===void 0,se||\"Unexpected node.\",()=>`Node ${Ot(L.kind)} was unexpected'.`,fe||gn)}e.assertMissingNode=gn;function rr(L){}e.type=rr;function bn(L){if(typeof L!=\"function\")return\"\";if(Cr(L,\"name\"))return L.name;{let se=Function.prototype.toString.call(L),fe=/^function\\s+([\\w$]+)\\s*\\(/.exec(se);return fe?fe[1]:\"\"}}e.getFunctionName=bn;function In(L){return`{ name: ${cs(L.escapedName)}; flags: ${ct(L.flags)}; declarations: ${Pp(L.declarations,se=>Ot(se.kind))} }`}e.formatSymbol=In;function Ge(L=0,se,fe){let Te=Pr(se);if(L===0)return Te.length>0&&Te[0][0]===0?Te[0][1]:\"0\";if(fe){let Xe=[],Ke=L;for(let[st,Dt]of Te){if(st>L)break;st!==0&&st&L&&(Xe.push(Dt),Ke&=~st)}if(Ke===0)return Xe.join(\"|\")}else for(let[Xe,Ke]of Te)if(Xe===L)return Ke;return L.toString()}e.formatEnum=Ge;let ir=new Map;function Pr(L){let se=ir.get(L);if(se)return se;let fe=[];for(let Xe in L){let Ke=L[Xe];typeof Ke==\"number\"&&fe.push([Ke,Xe])}let Te=cy(fe,(Xe,Ke)=>Dm(Xe[0],Ke[0]));return ir.set(L,Te),Te}function Ot(L){return Ge(L,Ne,!1)}e.formatSyntaxKind=Ot;function Bn(L){return Ge(L,Mm,!1)}e.formatSnippetKind=Bn;function On(L){return Ge(L,Dr,!1)}e.formatScriptKind=On;function Mt(L){return Ge(L,on,!0)}e.formatNodeFlags=Mt;function vt(L){return Ge(L,Nm,!0)}e.formatNodeCheckFlags=vt;function Qe(L){return Ge(L,Qp,!0)}e.formatModifierFlags=Qe;function qn(L){return Ge(L,Om,!0)}e.formatTransformFlags=qn;function $t(L){return Ge(L,Jm,!0)}e.formatEmitFlags=$t;function ct(L){return Ge(L,Kp,!0)}e.formatSymbolFlags=ct;function _t(L){return Ge(L,nn,!0)}e.formatTypeFlags=_t;function Ut(L){return Ge(L,Im,!0)}e.formatSignatureFlags=Ut;function Jt(L){return Ge(L,Zp,!0)}e.formatObjectFlags=Jt;function lt(L){return Ge(L,Op,!0)}e.formatFlowFlags=lt;function ar(L){return Ge(L,Pm,!0)}e.formatRelationComparisonResult=ar;function mt(L){return Ge(L,CheckMode,!0)}e.formatCheckMode=mt;function vn(L){return Ge(L,SignatureCheckMode,!0)}e.formatSignatureCheckMode=vn;function yt(L){return Ge(L,TypeFacts,!0)}e.formatTypeFacts=yt;let cn=!1,nt;function Bt(L){\"__debugFlowFlags\"in L||Object.defineProperties(L,{__tsDebuggerDisplay:{value(){let se=this.flags&2?\"FlowStart\":this.flags&4?\"FlowBranchLabel\":this.flags&8?\"FlowLoopLabel\":this.flags&16?\"FlowAssignment\":this.flags&32?\"FlowTrueCondition\":this.flags&64?\"FlowFalseCondition\":this.flags&128?\"FlowSwitchClause\":this.flags&256?\"FlowArrayMutation\":this.flags&512?\"FlowCall\":this.flags&1024?\"FlowReduceLabel\":this.flags&1?\"FlowUnreachable\":\"UnknownFlow\",fe=this.flags&-2048;return`${se}${fe?` (${lt(fe)})`:\"\"}`}},__debugFlowFlags:{get(){return Ge(this.flags,Op,!0)}},__debugToString:{value(){return mr(this)}}})}function rn(L){return cn&&(typeof Object.setPrototypeOf==\"function\"?(nt||(nt=Object.create(Object.prototype),Bt(nt)),Object.setPrototypeOf(L,nt)):Bt(L)),L}e.attachFlowNodeDebugInfo=rn;let _r;function fr(L){\"__tsDebuggerDisplay\"in L||Object.defineProperties(L,{__tsDebuggerDisplay:{value(se){return se=String(se).replace(/(?:,[\\s\\w]+:[^,]+)+\\]$/,\"]\"),`NodeArray ${se}`}}})}function dr(L){cn&&(typeof Object.setPrototypeOf==\"function\"?(_r||(_r=Object.create(Array.prototype),fr(_r)),Object.setPrototypeOf(L,_r)):fr(L))}e.attachNodeArrayDebugInfo=dr;function zn(){if(cn)return;let L=new WeakMap,se=new WeakMap;Object.defineProperties(At.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value(){let Te=this.flags&33554432?\"TransientSymbol\":\"Symbol\",Xe=this.flags&-33554433;return`${Te} '${Lp(this)}'${Xe?` (${ct(Xe)})`:\"\"}`}},__debugFlags:{get(){return ct(this.flags)}}}),Object.defineProperties(At.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value(){let Te=this.flags&67359327?`IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName?` (${this.debugIntrinsicName})`:\"\"}`:this.flags&98304?\"NullableType\":this.flags&384?`LiteralType ${JSON.stringify(this.value)}`:this.flags&2048?`LiteralType ${this.value.negative?\"-\":\"\"}${this.value.base10Value}n`:this.flags&8192?\"UniqueESSymbolType\":this.flags&32?\"EnumType\":this.flags&1048576?\"UnionType\":this.flags&2097152?\"IntersectionType\":this.flags&4194304?\"IndexType\":this.flags&8388608?\"IndexedAccessType\":this.flags&16777216?\"ConditionalType\":this.flags&33554432?\"SubstitutionType\":this.flags&262144?\"TypeParameter\":this.flags&524288?this.objectFlags&3?\"InterfaceType\":this.objectFlags&4?\"TypeReference\":this.objectFlags&8?\"TupleType\":this.objectFlags&16?\"AnonymousType\":this.objectFlags&32?\"MappedType\":this.objectFlags&1024?\"ReverseMappedType\":this.objectFlags&256?\"EvolvingArrayType\":\"ObjectType\":\"Type\",Xe=this.flags&524288?this.objectFlags&-1344:0;return`${Te}${this.symbol?` '${Lp(this.symbol)}'`:\"\"}${Xe?` (${Jt(Xe)})`:\"\"}`}},__debugFlags:{get(){return _t(this.flags)}},__debugObjectFlags:{get(){return this.flags&524288?Jt(this.objectFlags):\"\"}},__debugTypeToString:{value(){let Te=L.get(this);return Te===void 0&&(Te=this.checker.typeToString(this),L.set(this,Te)),Te}}}),Object.defineProperties(At.getSignatureConstructor().prototype,{__debugFlags:{get(){return Ut(this.flags)}},__debugSignatureToString:{value(){var Te;return(Te=this.checker)==null?void 0:Te.signatureToString(this)}}});let fe=[At.getNodeConstructor(),At.getIdentifierConstructor(),At.getTokenConstructor(),At.getSourceFileConstructor()];for(let Te of fe)Cr(Te.prototype,\"__debugKind\")||Object.defineProperties(Te.prototype,{__tsDebuggerDisplay:{value(){return`${Ua(this)?\"GeneratedIdentifier\":tt(this)?`Identifier '${Pn(this)}'`:gi(this)?`PrivateIdentifier '${Pn(this)}'`:Ya(this)?`StringLiteral ${JSON.stringify(this.text.length<10?this.text:this.text.slice(10)+\"...\")}`:ea(this)?`NumericLiteral ${this.text}`:D1(this)?`BigIntLiteral ${this.text}n`:Ef(this)?\"TypeParameterDeclaration\":ds(this)?\"ParameterDeclaration\":Af(this)?\"ConstructorDeclaration\":gl(this)?\"GetAccessorDeclaration\":hs(this)?\"SetAccessorDeclaration\":M1(this)?\"CallSignatureDeclaration\":J1(this)?\"ConstructSignatureDeclaration\":Cf(this)?\"IndexSignatureDeclaration\":L1(this)?\"TypePredicateNode\":Df(this)?\"TypeReferenceNode\":Pf(this)?\"FunctionTypeNode\":Nf(this)?\"ConstructorTypeNode\":Bb(this)?\"TypeQueryNode\":j1(this)?\"TypeLiteralNode\":qb(this)?\"ArrayTypeNode\":zb(this)?\"TupleTypeNode\":Fb(this)?\"OptionalTypeNode\":Vb(this)?\"RestTypeNode\":U1(this)?\"UnionTypeNode\":B1(this)?\"IntersectionTypeNode\":Wb(this)?\"ConditionalTypeNode\":Gb(this)?\"InferTypeNode\":q1(this)?\"ParenthesizedTypeNode\":Yb(this)?\"ThisTypeNode\":z1(this)?\"TypeOperatorNode\":Hb(this)?\"IndexedAccessTypeNode\":F1(this)?\"MappedTypeNode\":Xb(this)?\"LiteralTypeNode\":R1(this)?\"NamedTupleMember\":$b(this)?\"ImportTypeNode\":Ot(this.kind)}${this.flags?` (${Mt(this.flags)})`:\"\"}`}},__debugKind:{get(){return Ot(this.kind)}},__debugNodeFlags:{get(){return Mt(this.flags)}},__debugModifierFlags:{get(){return Qe(Y2(this))}},__debugTransformFlags:{get(){return qn(this.transformFlags)}},__debugIsParseTreeNode:{get(){return ml(this)}},__debugEmitFlags:{get(){return $t(za(this))}},__debugGetText:{value(Xe){if(La(this))return\"\";let Ke=se.get(this);if(Ke===void 0){let st=dg(this),Dt=st&&hi(st);Ke=Dt?Ud(Dt,st,Xe):\"\",se.set(this,Ke)}return Ke}}});cn=!0}e.enableDebugInfo=zn;function Fn(L){let se=L&7,fe=se===0?\"in out\":se===3?\"[bivariant]\":se===2?\"in\":se===1?\"out\":se===4?\"[independent]\":\"\";return L&8?fe+=\" (unmeasurable)\":L&16&&(fe+=\" (unreliable)\"),fe}e.formatVariance=Fn;class Nr{__debugToString(){var se;switch(this.kind){case 3:return((se=this.debugInfo)==null?void 0:se.call(this))||\"(function mapper)\";case 0:return`${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;case 1:return Sd(this.sources,this.targets||Pp(this.sources,()=>\"any\"),(fe,Te)=>`${fe.__debugTypeToString()} -> ${typeof Te==\"string\"?Te:Te.__debugTypeToString()}`).join(\", \");case 2:return Sd(this.sources,this.targets,(fe,Te)=>`${fe.__debugTypeToString()} -> ${Te().__debugTypeToString()}`).join(\", \");case 5:case 4:return`m1: ${this.mapper1.__debugToString().split(`\n`).join(`\n `)}\nm2: ${this.mapper2.__debugToString().split(`\n`).join(`\n `)}`;default:return Oe(this)}}}e.DebugTypeMapper=Nr;function Vn(L){return e.isDebugging?Object.setPrototypeOf(L,Nr.prototype):L}e.attachDebugPrototypeIfDebug=Vn;function Ce(L){return console.log(mr(L))}e.printControlFlowGraph=Ce;function mr(L){let se=-1;function fe(u){return u.id||(u.id=se,se--),u.id}let Te;(u=>{u.lr=\"\\u2500\",u.ud=\"\\u2502\",u.dr=\"\\u256D\",u.dl=\"\\u256E\",u.ul=\"\\u256F\",u.ur=\"\\u2570\",u.udr=\"\\u251C\",u.udl=\"\\u2524\",u.dlr=\"\\u252C\",u.ulr=\"\\u2534\",u.udlr=\"\\u256B\"})(Te||(Te={}));let Xe;(u=>{u[u.None=0]=\"None\",u[u.Up=1]=\"Up\",u[u.Down=2]=\"Down\",u[u.Left=4]=\"Left\",u[u.Right=8]=\"Right\",u[u.UpDown=3]=\"UpDown\",u[u.LeftRight=12]=\"LeftRight\",u[u.UpLeft=5]=\"UpLeft\",u[u.UpRight=9]=\"UpRight\",u[u.DownLeft=6]=\"DownLeft\",u[u.DownRight=10]=\"DownRight\",u[u.UpDownLeft=7]=\"UpDownLeft\",u[u.UpDownRight=11]=\"UpDownRight\",u[u.UpLeftRight=13]=\"UpLeftRight\",u[u.DownLeftRight=14]=\"DownLeftRight\",u[u.UpDownLeftRight=15]=\"UpDownLeftRight\",u[u.NoChildren=16]=\"NoChildren\"})(Xe||(Xe={}));let Ke=2032,st=882,Dt=Object.create(null),Tt=[],ut=[],Ir=Se(L,new Set);for(let u of Tt)u.text=rt(u.flowNode,u.circular),be(u);let hr=We(Ir),Mn=Ze(hr);return Ye(Ir,0),ln();function Wn(u){return!!(u.flags&128)}function Si(u){return!!(u.flags&12)&&!!u.antecedent}function R(u){return!!(u.flags&Ke)}function $(u){return!!(u.flags&st)}function K(u){let Ie=[];for(let Me of u.edges)Me.source===u&&Ie.push(Me.target);return Ie}function xe(u){let Ie=[];for(let Me of u.edges)Me.target===u&&Ie.push(Me.source);return Ie}function Se(u,Ie){let Me=fe(u),U=Dt[Me];if(U&&Ie.has(u))return U.circular=!0,U={id:-1,flowNode:u,edges:[],text:\"\",lane:-1,endLane:-1,level:-1,circular:\"circularity\"},Tt.push(U),U;if(Ie.add(u),!U)if(Dt[Me]=U={id:Me,flowNode:u,edges:[],text:\"\",lane:-1,endLane:-1,level:-1,circular:!1},Tt.push(U),Si(u))for(let ze of u.antecedent)we(U,ze,Ie);else R(u)&&we(U,u.antecedent,Ie);return Ie.delete(u),U}function we(u,Ie,Me){let U=Se(Ie,Me),ze={source:u,target:U};ut.push(ze),u.edges.push(ze),U.edges.push(ze)}function be(u){if(u.level!==-1)return u.level;let Ie=0;for(let Me of xe(u))Ie=Math.max(Ie,be(Me)+1);return u.level=Ie}function We(u){let Ie=0;for(let Me of K(u))Ie=Math.max(Ie,We(Me));return Ie+1}function Ze(u){let Ie=J(Array(u),0);for(let Me of Tt)Ie[Me.level]=Math.max(Ie[Me.level],Me.text.length);return Ie}function Ye(u,Ie){if(u.lane===-1){u.lane=Ie,u.endLane=Ie;let Me=K(u);for(let U=0;U0&&Ie++;let ze=Me[U];Ye(ze,Ie),ze.endLane>u.endLane&&(Ie=ze.endLane)}u.endLane=Ie}}function Ee(u){if(u&2)return\"Start\";if(u&4)return\"Branch\";if(u&8)return\"Loop\";if(u&16)return\"Assignment\";if(u&32)return\"True\";if(u&64)return\"False\";if(u&128)return\"SwitchClause\";if(u&256)return\"ArrayMutation\";if(u&512)return\"Call\";if(u&1024)return\"ReduceLabel\";if(u&1)return\"Unreachable\";throw new Error}function Tn(u){let Ie=hi(u);return Ud(Ie,u,!1)}function rt(u,Ie){let Me=Ee(u.flags);if(Ie&&(Me=`${Me}#${fe(u)}`),Wn(u)){let U=[],{switchStatement:ze,clauseStart:an,clauseEnd:Ve}=u.node;for(let $e=an;$eVe.lane)+1,Me=J(Array(Ie),\"\"),U=Mn.map(()=>Array(Ie)),ze=Mn.map(()=>J(Array(Ie),0));for(let Ve of Tt){U[Ve.level][Ve.lane]=Ve;let $e=K(Ve);for(let kt=0;kt<$e.length;kt++){let Nt=$e[kt],qt=8;Nt.lane===Ve.lane&&(qt|=4),kt>0&&(qt|=1),kt<$e.length-1&&(qt|=2),ze[Ve.level][Nt.lane]|=qt}$e.length===0&&(ze[Ve.level][Ve.lane]|=16);let Pt=xe(Ve);for(let kt=0;kt0&&(qt|=1),kt0?ze[Ve-1][$e]:0,kt=$e>0?ze[Ve][$e-1]:0,Nt=ze[Ve][$e];Nt||(Pt&8&&(Nt|=12),kt&2&&(Nt|=3),ze[Ve][$e]=Nt)}for(let Ve=0;Ve0?u.repeat(Ie):\"\";let Me=\"\";for(;Me.length{},Dy=()=>{},_l,Ne=(e=>(e[e.Unknown=0]=\"Unknown\",e[e.EndOfFileToken=1]=\"EndOfFileToken\",e[e.SingleLineCommentTrivia=2]=\"SingleLineCommentTrivia\",e[e.MultiLineCommentTrivia=3]=\"MultiLineCommentTrivia\",e[e.NewLineTrivia=4]=\"NewLineTrivia\",e[e.WhitespaceTrivia=5]=\"WhitespaceTrivia\",e[e.ShebangTrivia=6]=\"ShebangTrivia\",e[e.ConflictMarkerTrivia=7]=\"ConflictMarkerTrivia\",e[e.NonTextFileMarkerTrivia=8]=\"NonTextFileMarkerTrivia\",e[e.NumericLiteral=9]=\"NumericLiteral\",e[e.BigIntLiteral=10]=\"BigIntLiteral\",e[e.StringLiteral=11]=\"StringLiteral\",e[e.JsxText=12]=\"JsxText\",e[e.JsxTextAllWhiteSpaces=13]=\"JsxTextAllWhiteSpaces\",e[e.RegularExpressionLiteral=14]=\"RegularExpressionLiteral\",e[e.NoSubstitutionTemplateLiteral=15]=\"NoSubstitutionTemplateLiteral\",e[e.TemplateHead=16]=\"TemplateHead\",e[e.TemplateMiddle=17]=\"TemplateMiddle\",e[e.TemplateTail=18]=\"TemplateTail\",e[e.OpenBraceToken=19]=\"OpenBraceToken\",e[e.CloseBraceToken=20]=\"CloseBraceToken\",e[e.OpenParenToken=21]=\"OpenParenToken\",e[e.CloseParenToken=22]=\"CloseParenToken\",e[e.OpenBracketToken=23]=\"OpenBracketToken\",e[e.CloseBracketToken=24]=\"CloseBracketToken\",e[e.DotToken=25]=\"DotToken\",e[e.DotDotDotToken=26]=\"DotDotDotToken\",e[e.SemicolonToken=27]=\"SemicolonToken\",e[e.CommaToken=28]=\"CommaToken\",e[e.QuestionDotToken=29]=\"QuestionDotToken\",e[e.LessThanToken=30]=\"LessThanToken\",e[e.LessThanSlashToken=31]=\"LessThanSlashToken\",e[e.GreaterThanToken=32]=\"GreaterThanToken\",e[e.LessThanEqualsToken=33]=\"LessThanEqualsToken\",e[e.GreaterThanEqualsToken=34]=\"GreaterThanEqualsToken\",e[e.EqualsEqualsToken=35]=\"EqualsEqualsToken\",e[e.ExclamationEqualsToken=36]=\"ExclamationEqualsToken\",e[e.EqualsEqualsEqualsToken=37]=\"EqualsEqualsEqualsToken\",e[e.ExclamationEqualsEqualsToken=38]=\"ExclamationEqualsEqualsToken\",e[e.EqualsGreaterThanToken=39]=\"EqualsGreaterThanToken\",e[e.PlusToken=40]=\"PlusToken\",e[e.MinusToken=41]=\"MinusToken\",e[e.AsteriskToken=42]=\"AsteriskToken\",e[e.AsteriskAsteriskToken=43]=\"AsteriskAsteriskToken\",e[e.SlashToken=44]=\"SlashToken\",e[e.PercentToken=45]=\"PercentToken\",e[e.PlusPlusToken=46]=\"PlusPlusToken\",e[e.MinusMinusToken=47]=\"MinusMinusToken\",e[e.LessThanLessThanToken=48]=\"LessThanLessThanToken\",e[e.GreaterThanGreaterThanToken=49]=\"GreaterThanGreaterThanToken\",e[e.GreaterThanGreaterThanGreaterThanToken=50]=\"GreaterThanGreaterThanGreaterThanToken\",e[e.AmpersandToken=51]=\"AmpersandToken\",e[e.BarToken=52]=\"BarToken\",e[e.CaretToken=53]=\"CaretToken\",e[e.ExclamationToken=54]=\"ExclamationToken\",e[e.TildeToken=55]=\"TildeToken\",e[e.AmpersandAmpersandToken=56]=\"AmpersandAmpersandToken\",e[e.BarBarToken=57]=\"BarBarToken\",e[e.QuestionToken=58]=\"QuestionToken\",e[e.ColonToken=59]=\"ColonToken\",e[e.AtToken=60]=\"AtToken\",e[e.QuestionQuestionToken=61]=\"QuestionQuestionToken\",e[e.BacktickToken=62]=\"BacktickToken\",e[e.HashToken=63]=\"HashToken\",e[e.EqualsToken=64]=\"EqualsToken\",e[e.PlusEqualsToken=65]=\"PlusEqualsToken\",e[e.MinusEqualsToken=66]=\"MinusEqualsToken\",e[e.AsteriskEqualsToken=67]=\"AsteriskEqualsToken\",e[e.AsteriskAsteriskEqualsToken=68]=\"AsteriskAsteriskEqualsToken\",e[e.SlashEqualsToken=69]=\"SlashEqualsToken\",e[e.PercentEqualsToken=70]=\"PercentEqualsToken\",e[e.LessThanLessThanEqualsToken=71]=\"LessThanLessThanEqualsToken\",e[e.GreaterThanGreaterThanEqualsToken=72]=\"GreaterThanGreaterThanEqualsToken\",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=73]=\"GreaterThanGreaterThanGreaterThanEqualsToken\",e[e.AmpersandEqualsToken=74]=\"AmpersandEqualsToken\",e[e.BarEqualsToken=75]=\"BarEqualsToken\",e[e.BarBarEqualsToken=76]=\"BarBarEqualsToken\",e[e.AmpersandAmpersandEqualsToken=77]=\"AmpersandAmpersandEqualsToken\",e[e.QuestionQuestionEqualsToken=78]=\"QuestionQuestionEqualsToken\",e[e.CaretEqualsToken=79]=\"CaretEqualsToken\",e[e.Identifier=80]=\"Identifier\",e[e.PrivateIdentifier=81]=\"PrivateIdentifier\",e[e.JSDocCommentTextToken=82]=\"JSDocCommentTextToken\",e[e.BreakKeyword=83]=\"BreakKeyword\",e[e.CaseKeyword=84]=\"CaseKeyword\",e[e.CatchKeyword=85]=\"CatchKeyword\",e[e.ClassKeyword=86]=\"ClassKeyword\",e[e.ConstKeyword=87]=\"ConstKeyword\",e[e.ContinueKeyword=88]=\"ContinueKeyword\",e[e.DebuggerKeyword=89]=\"DebuggerKeyword\",e[e.DefaultKeyword=90]=\"DefaultKeyword\",e[e.DeleteKeyword=91]=\"DeleteKeyword\",e[e.DoKeyword=92]=\"DoKeyword\",e[e.ElseKeyword=93]=\"ElseKeyword\",e[e.EnumKeyword=94]=\"EnumKeyword\",e[e.ExportKeyword=95]=\"ExportKeyword\",e[e.ExtendsKeyword=96]=\"ExtendsKeyword\",e[e.FalseKeyword=97]=\"FalseKeyword\",e[e.FinallyKeyword=98]=\"FinallyKeyword\",e[e.ForKeyword=99]=\"ForKeyword\",e[e.FunctionKeyword=100]=\"FunctionKeyword\",e[e.IfKeyword=101]=\"IfKeyword\",e[e.ImportKeyword=102]=\"ImportKeyword\",e[e.InKeyword=103]=\"InKeyword\",e[e.InstanceOfKeyword=104]=\"InstanceOfKeyword\",e[e.NewKeyword=105]=\"NewKeyword\",e[e.NullKeyword=106]=\"NullKeyword\",e[e.ReturnKeyword=107]=\"ReturnKeyword\",e[e.SuperKeyword=108]=\"SuperKeyword\",e[e.SwitchKeyword=109]=\"SwitchKeyword\",e[e.ThisKeyword=110]=\"ThisKeyword\",e[e.ThrowKeyword=111]=\"ThrowKeyword\",e[e.TrueKeyword=112]=\"TrueKeyword\",e[e.TryKeyword=113]=\"TryKeyword\",e[e.TypeOfKeyword=114]=\"TypeOfKeyword\",e[e.VarKeyword=115]=\"VarKeyword\",e[e.VoidKeyword=116]=\"VoidKeyword\",e[e.WhileKeyword=117]=\"WhileKeyword\",e[e.WithKeyword=118]=\"WithKeyword\",e[e.ImplementsKeyword=119]=\"ImplementsKeyword\",e[e.InterfaceKeyword=120]=\"InterfaceKeyword\",e[e.LetKeyword=121]=\"LetKeyword\",e[e.PackageKeyword=122]=\"PackageKeyword\",e[e.PrivateKeyword=123]=\"PrivateKeyword\",e[e.ProtectedKeyword=124]=\"ProtectedKeyword\",e[e.PublicKeyword=125]=\"PublicKeyword\",e[e.StaticKeyword=126]=\"StaticKeyword\",e[e.YieldKeyword=127]=\"YieldKeyword\",e[e.AbstractKeyword=128]=\"AbstractKeyword\",e[e.AccessorKeyword=129]=\"AccessorKeyword\",e[e.AsKeyword=130]=\"AsKeyword\",e[e.AssertsKeyword=131]=\"AssertsKeyword\",e[e.AssertKeyword=132]=\"AssertKeyword\",e[e.AnyKeyword=133]=\"AnyKeyword\",e[e.AsyncKeyword=134]=\"AsyncKeyword\",e[e.AwaitKeyword=135]=\"AwaitKeyword\",e[e.BooleanKeyword=136]=\"BooleanKeyword\",e[e.ConstructorKeyword=137]=\"ConstructorKeyword\",e[e.DeclareKeyword=138]=\"DeclareKeyword\",e[e.GetKeyword=139]=\"GetKeyword\",e[e.InferKeyword=140]=\"InferKeyword\",e[e.IntrinsicKeyword=141]=\"IntrinsicKeyword\",e[e.IsKeyword=142]=\"IsKeyword\",e[e.KeyOfKeyword=143]=\"KeyOfKeyword\",e[e.ModuleKeyword=144]=\"ModuleKeyword\",e[e.NamespaceKeyword=145]=\"NamespaceKeyword\",e[e.NeverKeyword=146]=\"NeverKeyword\",e[e.OutKeyword=147]=\"OutKeyword\",e[e.ReadonlyKeyword=148]=\"ReadonlyKeyword\",e[e.RequireKeyword=149]=\"RequireKeyword\",e[e.NumberKeyword=150]=\"NumberKeyword\",e[e.ObjectKeyword=151]=\"ObjectKeyword\",e[e.SatisfiesKeyword=152]=\"SatisfiesKeyword\",e[e.SetKeyword=153]=\"SetKeyword\",e[e.StringKeyword=154]=\"StringKeyword\",e[e.SymbolKeyword=155]=\"SymbolKeyword\",e[e.TypeKeyword=156]=\"TypeKeyword\",e[e.UndefinedKeyword=157]=\"UndefinedKeyword\",e[e.UniqueKeyword=158]=\"UniqueKeyword\",e[e.UnknownKeyword=159]=\"UnknownKeyword\",e[e.UsingKeyword=160]=\"UsingKeyword\",e[e.FromKeyword=161]=\"FromKeyword\",e[e.GlobalKeyword=162]=\"GlobalKeyword\",e[e.BigIntKeyword=163]=\"BigIntKeyword\",e[e.OverrideKeyword=164]=\"OverrideKeyword\",e[e.OfKeyword=165]=\"OfKeyword\",e[e.QualifiedName=166]=\"QualifiedName\",e[e.ComputedPropertyName=167]=\"ComputedPropertyName\",e[e.TypeParameter=168]=\"TypeParameter\",e[e.Parameter=169]=\"Parameter\",e[e.Decorator=170]=\"Decorator\",e[e.PropertySignature=171]=\"PropertySignature\",e[e.PropertyDeclaration=172]=\"PropertyDeclaration\",e[e.MethodSignature=173]=\"MethodSignature\",e[e.MethodDeclaration=174]=\"MethodDeclaration\",e[e.ClassStaticBlockDeclaration=175]=\"ClassStaticBlockDeclaration\",e[e.Constructor=176]=\"Constructor\",e[e.GetAccessor=177]=\"GetAccessor\",e[e.SetAccessor=178]=\"SetAccessor\",e[e.CallSignature=179]=\"CallSignature\",e[e.ConstructSignature=180]=\"ConstructSignature\",e[e.IndexSignature=181]=\"IndexSignature\",e[e.TypePredicate=182]=\"TypePredicate\",e[e.TypeReference=183]=\"TypeReference\",e[e.FunctionType=184]=\"FunctionType\",e[e.ConstructorType=185]=\"ConstructorType\",e[e.TypeQuery=186]=\"TypeQuery\",e[e.TypeLiteral=187]=\"TypeLiteral\",e[e.ArrayType=188]=\"ArrayType\",e[e.TupleType=189]=\"TupleType\",e[e.OptionalType=190]=\"OptionalType\",e[e.RestType=191]=\"RestType\",e[e.UnionType=192]=\"UnionType\",e[e.IntersectionType=193]=\"IntersectionType\",e[e.ConditionalType=194]=\"ConditionalType\",e[e.InferType=195]=\"InferType\",e[e.ParenthesizedType=196]=\"ParenthesizedType\",e[e.ThisType=197]=\"ThisType\",e[e.TypeOperator=198]=\"TypeOperator\",e[e.IndexedAccessType=199]=\"IndexedAccessType\",e[e.MappedType=200]=\"MappedType\",e[e.LiteralType=201]=\"LiteralType\",e[e.NamedTupleMember=202]=\"NamedTupleMember\",e[e.TemplateLiteralType=203]=\"TemplateLiteralType\",e[e.TemplateLiteralTypeSpan=204]=\"TemplateLiteralTypeSpan\",e[e.ImportType=205]=\"ImportType\",e[e.ObjectBindingPattern=206]=\"ObjectBindingPattern\",e[e.ArrayBindingPattern=207]=\"ArrayBindingPattern\",e[e.BindingElement=208]=\"BindingElement\",e[e.ArrayLiteralExpression=209]=\"ArrayLiteralExpression\",e[e.ObjectLiteralExpression=210]=\"ObjectLiteralExpression\",e[e.PropertyAccessExpression=211]=\"PropertyAccessExpression\",e[e.ElementAccessExpression=212]=\"ElementAccessExpression\",e[e.CallExpression=213]=\"CallExpression\",e[e.NewExpression=214]=\"NewExpression\",e[e.TaggedTemplateExpression=215]=\"TaggedTemplateExpression\",e[e.TypeAssertionExpression=216]=\"TypeAssertionExpression\",e[e.ParenthesizedExpression=217]=\"ParenthesizedExpression\",e[e.FunctionExpression=218]=\"FunctionExpression\",e[e.ArrowFunction=219]=\"ArrowFunction\",e[e.DeleteExpression=220]=\"DeleteExpression\",e[e.TypeOfExpression=221]=\"TypeOfExpression\",e[e.VoidExpression=222]=\"VoidExpression\",e[e.AwaitExpression=223]=\"AwaitExpression\",e[e.PrefixUnaryExpression=224]=\"PrefixUnaryExpression\",e[e.PostfixUnaryExpression=225]=\"PostfixUnaryExpression\",e[e.BinaryExpression=226]=\"BinaryExpression\",e[e.ConditionalExpression=227]=\"ConditionalExpression\",e[e.TemplateExpression=228]=\"TemplateExpression\",e[e.YieldExpression=229]=\"YieldExpression\",e[e.SpreadElement=230]=\"SpreadElement\",e[e.ClassExpression=231]=\"ClassExpression\",e[e.OmittedExpression=232]=\"OmittedExpression\",e[e.ExpressionWithTypeArguments=233]=\"ExpressionWithTypeArguments\",e[e.AsExpression=234]=\"AsExpression\",e[e.NonNullExpression=235]=\"NonNullExpression\",e[e.MetaProperty=236]=\"MetaProperty\",e[e.SyntheticExpression=237]=\"SyntheticExpression\",e[e.SatisfiesExpression=238]=\"SatisfiesExpression\",e[e.TemplateSpan=239]=\"TemplateSpan\",e[e.SemicolonClassElement=240]=\"SemicolonClassElement\",e[e.Block=241]=\"Block\",e[e.EmptyStatement=242]=\"EmptyStatement\",e[e.VariableStatement=243]=\"VariableStatement\",e[e.ExpressionStatement=244]=\"ExpressionStatement\",e[e.IfStatement=245]=\"IfStatement\",e[e.DoStatement=246]=\"DoStatement\",e[e.WhileStatement=247]=\"WhileStatement\",e[e.ForStatement=248]=\"ForStatement\",e[e.ForInStatement=249]=\"ForInStatement\",e[e.ForOfStatement=250]=\"ForOfStatement\",e[e.ContinueStatement=251]=\"ContinueStatement\",e[e.BreakStatement=252]=\"BreakStatement\",e[e.ReturnStatement=253]=\"ReturnStatement\",e[e.WithStatement=254]=\"WithStatement\",e[e.SwitchStatement=255]=\"SwitchStatement\",e[e.LabeledStatement=256]=\"LabeledStatement\",e[e.ThrowStatement=257]=\"ThrowStatement\",e[e.TryStatement=258]=\"TryStatement\",e[e.DebuggerStatement=259]=\"DebuggerStatement\",e[e.VariableDeclaration=260]=\"VariableDeclaration\",e[e.VariableDeclarationList=261]=\"VariableDeclarationList\",e[e.FunctionDeclaration=262]=\"FunctionDeclaration\",e[e.ClassDeclaration=263]=\"ClassDeclaration\",e[e.InterfaceDeclaration=264]=\"InterfaceDeclaration\",e[e.TypeAliasDeclaration=265]=\"TypeAliasDeclaration\",e[e.EnumDeclaration=266]=\"EnumDeclaration\",e[e.ModuleDeclaration=267]=\"ModuleDeclaration\",e[e.ModuleBlock=268]=\"ModuleBlock\",e[e.CaseBlock=269]=\"CaseBlock\",e[e.NamespaceExportDeclaration=270]=\"NamespaceExportDeclaration\",e[e.ImportEqualsDeclaration=271]=\"ImportEqualsDeclaration\",e[e.ImportDeclaration=272]=\"ImportDeclaration\",e[e.ImportClause=273]=\"ImportClause\",e[e.NamespaceImport=274]=\"NamespaceImport\",e[e.NamedImports=275]=\"NamedImports\",e[e.ImportSpecifier=276]=\"ImportSpecifier\",e[e.ExportAssignment=277]=\"ExportAssignment\",e[e.ExportDeclaration=278]=\"ExportDeclaration\",e[e.NamedExports=279]=\"NamedExports\",e[e.NamespaceExport=280]=\"NamespaceExport\",e[e.ExportSpecifier=281]=\"ExportSpecifier\",e[e.MissingDeclaration=282]=\"MissingDeclaration\",e[e.ExternalModuleReference=283]=\"ExternalModuleReference\",e[e.JsxElement=284]=\"JsxElement\",e[e.JsxSelfClosingElement=285]=\"JsxSelfClosingElement\",e[e.JsxOpeningElement=286]=\"JsxOpeningElement\",e[e.JsxClosingElement=287]=\"JsxClosingElement\",e[e.JsxFragment=288]=\"JsxFragment\",e[e.JsxOpeningFragment=289]=\"JsxOpeningFragment\",e[e.JsxClosingFragment=290]=\"JsxClosingFragment\",e[e.JsxAttribute=291]=\"JsxAttribute\",e[e.JsxAttributes=292]=\"JsxAttributes\",e[e.JsxSpreadAttribute=293]=\"JsxSpreadAttribute\",e[e.JsxExpression=294]=\"JsxExpression\",e[e.JsxNamespacedName=295]=\"JsxNamespacedName\",e[e.CaseClause=296]=\"CaseClause\",e[e.DefaultClause=297]=\"DefaultClause\",e[e.HeritageClause=298]=\"HeritageClause\",e[e.CatchClause=299]=\"CatchClause\",e[e.ImportAttributes=300]=\"ImportAttributes\",e[e.ImportAttribute=301]=\"ImportAttribute\",e[e.AssertClause=300]=\"AssertClause\",e[e.AssertEntry=301]=\"AssertEntry\",e[e.ImportTypeAssertionContainer=302]=\"ImportTypeAssertionContainer\",e[e.PropertyAssignment=303]=\"PropertyAssignment\",e[e.ShorthandPropertyAssignment=304]=\"ShorthandPropertyAssignment\",e[e.SpreadAssignment=305]=\"SpreadAssignment\",e[e.EnumMember=306]=\"EnumMember\",e[e.SourceFile=307]=\"SourceFile\",e[e.Bundle=308]=\"Bundle\",e[e.JSDocTypeExpression=309]=\"JSDocTypeExpression\",e[e.JSDocNameReference=310]=\"JSDocNameReference\",e[e.JSDocMemberName=311]=\"JSDocMemberName\",e[e.JSDocAllType=312]=\"JSDocAllType\",e[e.JSDocUnknownType=313]=\"JSDocUnknownType\",e[e.JSDocNullableType=314]=\"JSDocNullableType\",e[e.JSDocNonNullableType=315]=\"JSDocNonNullableType\",e[e.JSDocOptionalType=316]=\"JSDocOptionalType\",e[e.JSDocFunctionType=317]=\"JSDocFunctionType\",e[e.JSDocVariadicType=318]=\"JSDocVariadicType\",e[e.JSDocNamepathType=319]=\"JSDocNamepathType\",e[e.JSDoc=320]=\"JSDoc\",e[e.JSDocComment=320]=\"JSDocComment\",e[e.JSDocText=321]=\"JSDocText\",e[e.JSDocTypeLiteral=322]=\"JSDocTypeLiteral\",e[e.JSDocSignature=323]=\"JSDocSignature\",e[e.JSDocLink=324]=\"JSDocLink\",e[e.JSDocLinkCode=325]=\"JSDocLinkCode\",e[e.JSDocLinkPlain=326]=\"JSDocLinkPlain\",e[e.JSDocTag=327]=\"JSDocTag\",e[e.JSDocAugmentsTag=328]=\"JSDocAugmentsTag\",e[e.JSDocImplementsTag=329]=\"JSDocImplementsTag\",e[e.JSDocAuthorTag=330]=\"JSDocAuthorTag\",e[e.JSDocDeprecatedTag=331]=\"JSDocDeprecatedTag\",e[e.JSDocClassTag=332]=\"JSDocClassTag\",e[e.JSDocPublicTag=333]=\"JSDocPublicTag\",e[e.JSDocPrivateTag=334]=\"JSDocPrivateTag\",e[e.JSDocProtectedTag=335]=\"JSDocProtectedTag\",e[e.JSDocReadonlyTag=336]=\"JSDocReadonlyTag\",e[e.JSDocOverrideTag=337]=\"JSDocOverrideTag\",e[e.JSDocCallbackTag=338]=\"JSDocCallbackTag\",e[e.JSDocOverloadTag=339]=\"JSDocOverloadTag\",e[e.JSDocEnumTag=340]=\"JSDocEnumTag\",e[e.JSDocParameterTag=341]=\"JSDocParameterTag\",e[e.JSDocReturnTag=342]=\"JSDocReturnTag\",e[e.JSDocThisTag=343]=\"JSDocThisTag\",e[e.JSDocTypeTag=344]=\"JSDocTypeTag\",e[e.JSDocTemplateTag=345]=\"JSDocTemplateTag\",e[e.JSDocTypedefTag=346]=\"JSDocTypedefTag\",e[e.JSDocSeeTag=347]=\"JSDocSeeTag\",e[e.JSDocPropertyTag=348]=\"JSDocPropertyTag\",e[e.JSDocThrowsTag=349]=\"JSDocThrowsTag\",e[e.JSDocSatisfiesTag=350]=\"JSDocSatisfiesTag\",e[e.JSDocImportTag=351]=\"JSDocImportTag\",e[e.SyntaxList=352]=\"SyntaxList\",e[e.NotEmittedStatement=353]=\"NotEmittedStatement\",e[e.NotEmittedTypeElement=354]=\"NotEmittedTypeElement\",e[e.PartiallyEmittedExpression=355]=\"PartiallyEmittedExpression\",e[e.CommaListExpression=356]=\"CommaListExpression\",e[e.SyntheticReferenceExpression=357]=\"SyntheticReferenceExpression\",e[e.Count=358]=\"Count\",e[e.FirstAssignment=64]=\"FirstAssignment\",e[e.LastAssignment=79]=\"LastAssignment\",e[e.FirstCompoundAssignment=65]=\"FirstCompoundAssignment\",e[e.LastCompoundAssignment=79]=\"LastCompoundAssignment\",e[e.FirstReservedWord=83]=\"FirstReservedWord\",e[e.LastReservedWord=118]=\"LastReservedWord\",e[e.FirstKeyword=83]=\"FirstKeyword\",e[e.LastKeyword=165]=\"LastKeyword\",e[e.FirstFutureReservedWord=119]=\"FirstFutureReservedWord\",e[e.LastFutureReservedWord=127]=\"LastFutureReservedWord\",e[e.FirstTypeNode=182]=\"FirstTypeNode\",e[e.LastTypeNode=205]=\"LastTypeNode\",e[e.FirstPunctuation=19]=\"FirstPunctuation\",e[e.LastPunctuation=79]=\"LastPunctuation\",e[e.FirstToken=0]=\"FirstToken\",e[e.LastToken=165]=\"LastToken\",e[e.FirstTriviaToken=2]=\"FirstTriviaToken\",e[e.LastTriviaToken=7]=\"LastTriviaToken\",e[e.FirstLiteralToken=9]=\"FirstLiteralToken\",e[e.LastLiteralToken=15]=\"LastLiteralToken\",e[e.FirstTemplateToken=15]=\"FirstTemplateToken\",e[e.LastTemplateToken=18]=\"LastTemplateToken\",e[e.FirstBinaryOperator=30]=\"FirstBinaryOperator\",e[e.LastBinaryOperator=79]=\"LastBinaryOperator\",e[e.FirstStatement=243]=\"FirstStatement\",e[e.LastStatement=259]=\"LastStatement\",e[e.FirstNode=166]=\"FirstNode\",e[e.FirstJSDocNode=309]=\"FirstJSDocNode\",e[e.LastJSDocNode=351]=\"LastJSDocNode\",e[e.FirstJSDocTagNode=327]=\"FirstJSDocTagNode\",e[e.LastJSDocTagNode=351]=\"LastJSDocTagNode\",e[e.FirstContextualKeyword=128]=\"FirstContextualKeyword\",e[e.LastContextualKeyword=165]=\"LastContextualKeyword\",e))(Ne||{}),on=(e=>(e[e.None=0]=\"None\",e[e.Let=1]=\"Let\",e[e.Const=2]=\"Const\",e[e.Using=4]=\"Using\",e[e.AwaitUsing=6]=\"AwaitUsing\",e[e.NestedNamespace=8]=\"NestedNamespace\",e[e.Synthesized=16]=\"Synthesized\",e[e.Namespace=32]=\"Namespace\",e[e.OptionalChain=64]=\"OptionalChain\",e[e.ExportContext=128]=\"ExportContext\",e[e.ContainsThis=256]=\"ContainsThis\",e[e.HasImplicitReturn=512]=\"HasImplicitReturn\",e[e.HasExplicitReturn=1024]=\"HasExplicitReturn\",e[e.GlobalAugmentation=2048]=\"GlobalAugmentation\",e[e.HasAsyncFunctions=4096]=\"HasAsyncFunctions\",e[e.DisallowInContext=8192]=\"DisallowInContext\",e[e.YieldContext=16384]=\"YieldContext\",e[e.DecoratorContext=32768]=\"DecoratorContext\",e[e.AwaitContext=65536]=\"AwaitContext\",e[e.DisallowConditionalTypesContext=131072]=\"DisallowConditionalTypesContext\",e[e.ThisNodeHasError=262144]=\"ThisNodeHasError\",e[e.JavaScriptFile=524288]=\"JavaScriptFile\",e[e.ThisNodeOrAnySubNodesHasError=1048576]=\"ThisNodeOrAnySubNodesHasError\",e[e.HasAggregatedChildData=2097152]=\"HasAggregatedChildData\",e[e.PossiblyContainsDynamicImport=4194304]=\"PossiblyContainsDynamicImport\",e[e.PossiblyContainsImportMeta=8388608]=\"PossiblyContainsImportMeta\",e[e.JSDoc=16777216]=\"JSDoc\",e[e.Ambient=33554432]=\"Ambient\",e[e.InWithStatement=67108864]=\"InWithStatement\",e[e.JsonFile=134217728]=\"JsonFile\",e[e.TypeCached=268435456]=\"TypeCached\",e[e.Deprecated=536870912]=\"Deprecated\",e[e.BlockScoped=7]=\"BlockScoped\",e[e.Constant=6]=\"Constant\",e[e.ReachabilityCheckFlags=1536]=\"ReachabilityCheckFlags\",e[e.ReachabilityAndEmitFlags=5632]=\"ReachabilityAndEmitFlags\",e[e.ContextFlags=101441536]=\"ContextFlags\",e[e.TypeExcludesFlags=81920]=\"TypeExcludesFlags\",e[e.PermanentlySetIncrementalFlags=12582912]=\"PermanentlySetIncrementalFlags\",e[e.IdentifierHasExtendedUnicodeEscape=256]=\"IdentifierHasExtendedUnicodeEscape\",e[e.IdentifierIsInJSDocNamespace=4096]=\"IdentifierIsInJSDocNamespace\",e))(on||{}),Qp=(e=>(e[e.None=0]=\"None\",e[e.Public=1]=\"Public\",e[e.Private=2]=\"Private\",e[e.Protected=4]=\"Protected\",e[e.Readonly=8]=\"Readonly\",e[e.Override=16]=\"Override\",e[e.Export=32]=\"Export\",e[e.Abstract=64]=\"Abstract\",e[e.Ambient=128]=\"Ambient\",e[e.Static=256]=\"Static\",e[e.Accessor=512]=\"Accessor\",e[e.Async=1024]=\"Async\",e[e.Default=2048]=\"Default\",e[e.Const=4096]=\"Const\",e[e.In=8192]=\"In\",e[e.Out=16384]=\"Out\",e[e.Decorator=32768]=\"Decorator\",e[e.Deprecated=65536]=\"Deprecated\",e[e.JSDocPublic=8388608]=\"JSDocPublic\",e[e.JSDocPrivate=16777216]=\"JSDocPrivate\",e[e.JSDocProtected=33554432]=\"JSDocProtected\",e[e.JSDocReadonly=67108864]=\"JSDocReadonly\",e[e.JSDocOverride=134217728]=\"JSDocOverride\",e[e.SyntacticOrJSDocModifiers=31]=\"SyntacticOrJSDocModifiers\",e[e.SyntacticOnlyModifiers=65504]=\"SyntacticOnlyModifiers\",e[e.SyntacticModifiers=65535]=\"SyntacticModifiers\",e[e.JSDocCacheOnlyModifiers=260046848]=\"JSDocCacheOnlyModifiers\",e[e.JSDocOnlyModifiers=65536]=\"JSDocOnlyModifiers\",e[e.NonCacheOnlyModifiers=131071]=\"NonCacheOnlyModifiers\",e[e.HasComputedJSDocModifiers=268435456]=\"HasComputedJSDocModifiers\",e[e.HasComputedFlags=536870912]=\"HasComputedFlags\",e[e.AccessibilityModifier=7]=\"AccessibilityModifier\",e[e.ParameterPropertyModifier=31]=\"ParameterPropertyModifier\",e[e.NonPublicAccessibilityModifier=6]=\"NonPublicAccessibilityModifier\",e[e.TypeScriptModifier=28895]=\"TypeScriptModifier\",e[e.ExportDefault=2080]=\"ExportDefault\",e[e.All=131071]=\"All\",e[e.Modifier=98303]=\"Modifier\",e))(Qp||{});var Pm=(e=>(e[e.None=0]=\"None\",e[e.Succeeded=1]=\"Succeeded\",e[e.Failed=2]=\"Failed\",e[e.ReportsUnmeasurable=8]=\"ReportsUnmeasurable\",e[e.ReportsUnreliable=16]=\"ReportsUnreliable\",e[e.ReportsMask=24]=\"ReportsMask\",e[e.ComplexityOverflow=32]=\"ComplexityOverflow\",e[e.StackDepthOverflow=64]=\"StackDepthOverflow\",e[e.Overflow=96]=\"Overflow\",e))(Pm||{});var Op=(e=>(e[e.Unreachable=1]=\"Unreachable\",e[e.Start=2]=\"Start\",e[e.BranchLabel=4]=\"BranchLabel\",e[e.LoopLabel=8]=\"LoopLabel\",e[e.Assignment=16]=\"Assignment\",e[e.TrueCondition=32]=\"TrueCondition\",e[e.FalseCondition=64]=\"FalseCondition\",e[e.SwitchClause=128]=\"SwitchClause\",e[e.ArrayMutation=256]=\"ArrayMutation\",e[e.Call=512]=\"Call\",e[e.ReduceLabel=1024]=\"ReduceLabel\",e[e.Referenced=2048]=\"Referenced\",e[e.Shared=4096]=\"Shared\",e[e.Label=12]=\"Label\",e[e.Condition=96]=\"Condition\",e))(Op||{});var Kp=(e=>(e[e.None=0]=\"None\",e[e.FunctionScopedVariable=1]=\"FunctionScopedVariable\",e[e.BlockScopedVariable=2]=\"BlockScopedVariable\",e[e.Property=4]=\"Property\",e[e.EnumMember=8]=\"EnumMember\",e[e.Function=16]=\"Function\",e[e.Class=32]=\"Class\",e[e.Interface=64]=\"Interface\",e[e.ConstEnum=128]=\"ConstEnum\",e[e.RegularEnum=256]=\"RegularEnum\",e[e.ValueModule=512]=\"ValueModule\",e[e.NamespaceModule=1024]=\"NamespaceModule\",e[e.TypeLiteral=2048]=\"TypeLiteral\",e[e.ObjectLiteral=4096]=\"ObjectLiteral\",e[e.Method=8192]=\"Method\",e[e.Constructor=16384]=\"Constructor\",e[e.GetAccessor=32768]=\"GetAccessor\",e[e.SetAccessor=65536]=\"SetAccessor\",e[e.Signature=131072]=\"Signature\",e[e.TypeParameter=262144]=\"TypeParameter\",e[e.TypeAlias=524288]=\"TypeAlias\",e[e.ExportValue=1048576]=\"ExportValue\",e[e.Alias=2097152]=\"Alias\",e[e.Prototype=4194304]=\"Prototype\",e[e.ExportStar=8388608]=\"ExportStar\",e[e.Optional=16777216]=\"Optional\",e[e.Transient=33554432]=\"Transient\",e[e.Assignment=67108864]=\"Assignment\",e[e.ModuleExports=134217728]=\"ModuleExports\",e[e.All=-1]=\"All\",e[e.Enum=384]=\"Enum\",e[e.Variable=3]=\"Variable\",e[e.Value=111551]=\"Value\",e[e.Type=788968]=\"Type\",e[e.Namespace=1920]=\"Namespace\",e[e.Module=1536]=\"Module\",e[e.Accessor=98304]=\"Accessor\",e[e.FunctionScopedVariableExcludes=111550]=\"FunctionScopedVariableExcludes\",e[e.BlockScopedVariableExcludes=111551]=\"BlockScopedVariableExcludes\",e[e.ParameterExcludes=111551]=\"ParameterExcludes\",e[e.PropertyExcludes=0]=\"PropertyExcludes\",e[e.EnumMemberExcludes=900095]=\"EnumMemberExcludes\",e[e.FunctionExcludes=110991]=\"FunctionExcludes\",e[e.ClassExcludes=899503]=\"ClassExcludes\",e[e.InterfaceExcludes=788872]=\"InterfaceExcludes\",e[e.RegularEnumExcludes=899327]=\"RegularEnumExcludes\",e[e.ConstEnumExcludes=899967]=\"ConstEnumExcludes\",e[e.ValueModuleExcludes=110735]=\"ValueModuleExcludes\",e[e.NamespaceModuleExcludes=0]=\"NamespaceModuleExcludes\",e[e.MethodExcludes=103359]=\"MethodExcludes\",e[e.GetAccessorExcludes=46015]=\"GetAccessorExcludes\",e[e.SetAccessorExcludes=78783]=\"SetAccessorExcludes\",e[e.AccessorExcludes=13247]=\"AccessorExcludes\",e[e.TypeParameterExcludes=526824]=\"TypeParameterExcludes\",e[e.TypeAliasExcludes=788968]=\"TypeAliasExcludes\",e[e.AliasExcludes=2097152]=\"AliasExcludes\",e[e.ModuleMember=2623475]=\"ModuleMember\",e[e.ExportHasLocal=944]=\"ExportHasLocal\",e[e.BlockScoped=418]=\"BlockScoped\",e[e.PropertyOrAccessor=98308]=\"PropertyOrAccessor\",e[e.ClassMember=106500]=\"ClassMember\",e[e.ExportSupportsDefaultModifier=112]=\"ExportSupportsDefaultModifier\",e[e.ExportDoesNotSupportDefaultModifier=-113]=\"ExportDoesNotSupportDefaultModifier\",e[e.Classifiable=2885600]=\"Classifiable\",e[e.LateBindingContainer=6256]=\"LateBindingContainer\",e))(Kp||{});var Nm=(e=>(e[e.None=0]=\"None\",e[e.TypeChecked=1]=\"TypeChecked\",e[e.LexicalThis=2]=\"LexicalThis\",e[e.CaptureThis=4]=\"CaptureThis\",e[e.CaptureNewTarget=8]=\"CaptureNewTarget\",e[e.SuperInstance=16]=\"SuperInstance\",e[e.SuperStatic=32]=\"SuperStatic\",e[e.ContextChecked=64]=\"ContextChecked\",e[e.MethodWithSuperPropertyAccessInAsync=128]=\"MethodWithSuperPropertyAccessInAsync\",e[e.MethodWithSuperPropertyAssignmentInAsync=256]=\"MethodWithSuperPropertyAssignmentInAsync\",e[e.CaptureArguments=512]=\"CaptureArguments\",e[e.EnumValuesComputed=1024]=\"EnumValuesComputed\",e[e.LexicalModuleMergesWithClass=2048]=\"LexicalModuleMergesWithClass\",e[e.LoopWithCapturedBlockScopedBinding=4096]=\"LoopWithCapturedBlockScopedBinding\",e[e.ContainsCapturedBlockScopeBinding=8192]=\"ContainsCapturedBlockScopeBinding\",e[e.CapturedBlockScopedBinding=16384]=\"CapturedBlockScopedBinding\",e[e.BlockScopedBindingInLoop=32768]=\"BlockScopedBindingInLoop\",e[e.NeedsLoopOutParameter=65536]=\"NeedsLoopOutParameter\",e[e.AssignmentsMarked=131072]=\"AssignmentsMarked\",e[e.ContainsConstructorReference=262144]=\"ContainsConstructorReference\",e[e.ConstructorReference=536870912]=\"ConstructorReference\",e[e.ContainsClassWithPrivateIdentifiers=1048576]=\"ContainsClassWithPrivateIdentifiers\",e[e.ContainsSuperPropertyInStaticInitializer=2097152]=\"ContainsSuperPropertyInStaticInitializer\",e[e.InCheckIdentifier=4194304]=\"InCheckIdentifier\",e[e.PartiallyTypeChecked=8388608]=\"PartiallyTypeChecked\",e[e.LazyFlags=539358128]=\"LazyFlags\",e))(Nm||{}),nn=(e=>(e[e.Any=1]=\"Any\",e[e.Unknown=2]=\"Unknown\",e[e.String=4]=\"String\",e[e.Number=8]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Enum=32]=\"Enum\",e[e.BigInt=64]=\"BigInt\",e[e.StringLiteral=128]=\"StringLiteral\",e[e.NumberLiteral=256]=\"NumberLiteral\",e[e.BooleanLiteral=512]=\"BooleanLiteral\",e[e.EnumLiteral=1024]=\"EnumLiteral\",e[e.BigIntLiteral=2048]=\"BigIntLiteral\",e[e.ESSymbol=4096]=\"ESSymbol\",e[e.UniqueESSymbol=8192]=\"UniqueESSymbol\",e[e.Void=16384]=\"Void\",e[e.Undefined=32768]=\"Undefined\",e[e.Null=65536]=\"Null\",e[e.Never=131072]=\"Never\",e[e.TypeParameter=262144]=\"TypeParameter\",e[e.Object=524288]=\"Object\",e[e.Union=1048576]=\"Union\",e[e.Intersection=2097152]=\"Intersection\",e[e.Index=4194304]=\"Index\",e[e.IndexedAccess=8388608]=\"IndexedAccess\",e[e.Conditional=16777216]=\"Conditional\",e[e.Substitution=33554432]=\"Substitution\",e[e.NonPrimitive=67108864]=\"NonPrimitive\",e[e.TemplateLiteral=134217728]=\"TemplateLiteral\",e[e.StringMapping=268435456]=\"StringMapping\",e[e.Reserved1=536870912]=\"Reserved1\",e[e.Reserved2=1073741824]=\"Reserved2\",e[e.AnyOrUnknown=3]=\"AnyOrUnknown\",e[e.Nullable=98304]=\"Nullable\",e[e.Literal=2944]=\"Literal\",e[e.Unit=109472]=\"Unit\",e[e.Freshable=2976]=\"Freshable\",e[e.StringOrNumberLiteral=384]=\"StringOrNumberLiteral\",e[e.StringOrNumberLiteralOrUnique=8576]=\"StringOrNumberLiteralOrUnique\",e[e.DefinitelyFalsy=117632]=\"DefinitelyFalsy\",e[e.PossiblyFalsy=117724]=\"PossiblyFalsy\",e[e.Intrinsic=67359327]=\"Intrinsic\",e[e.StringLike=402653316]=\"StringLike\",e[e.NumberLike=296]=\"NumberLike\",e[e.BigIntLike=2112]=\"BigIntLike\",e[e.BooleanLike=528]=\"BooleanLike\",e[e.EnumLike=1056]=\"EnumLike\",e[e.ESSymbolLike=12288]=\"ESSymbolLike\",e[e.VoidLike=49152]=\"VoidLike\",e[e.Primitive=402784252]=\"Primitive\",e[e.DefinitelyNonNullable=470302716]=\"DefinitelyNonNullable\",e[e.DisjointDomains=469892092]=\"DisjointDomains\",e[e.UnionOrIntersection=3145728]=\"UnionOrIntersection\",e[e.StructuredType=3670016]=\"StructuredType\",e[e.TypeVariable=8650752]=\"TypeVariable\",e[e.InstantiableNonPrimitive=58982400]=\"InstantiableNonPrimitive\",e[e.InstantiablePrimitive=406847488]=\"InstantiablePrimitive\",e[e.Instantiable=465829888]=\"Instantiable\",e[e.StructuredOrInstantiable=469499904]=\"StructuredOrInstantiable\",e[e.ObjectFlagsType=3899393]=\"ObjectFlagsType\",e[e.Simplifiable=25165824]=\"Simplifiable\",e[e.Singleton=67358815]=\"Singleton\",e[e.Narrowable=536624127]=\"Narrowable\",e[e.IncludesMask=473694207]=\"IncludesMask\",e[e.IncludesMissingType=262144]=\"IncludesMissingType\",e[e.IncludesNonWideningType=4194304]=\"IncludesNonWideningType\",e[e.IncludesWildcard=8388608]=\"IncludesWildcard\",e[e.IncludesEmptyObject=16777216]=\"IncludesEmptyObject\",e[e.IncludesInstantiable=33554432]=\"IncludesInstantiable\",e[e.IncludesConstrainedTypeVariable=536870912]=\"IncludesConstrainedTypeVariable\",e[e.IncludesError=1073741824]=\"IncludesError\",e[e.NotPrimitiveUnion=36323331]=\"NotPrimitiveUnion\",e))(nn||{}),Zp=(e=>(e[e.None=0]=\"None\",e[e.Class=1]=\"Class\",e[e.Interface=2]=\"Interface\",e[e.Reference=4]=\"Reference\",e[e.Tuple=8]=\"Tuple\",e[e.Anonymous=16]=\"Anonymous\",e[e.Mapped=32]=\"Mapped\",e[e.Instantiated=64]=\"Instantiated\",e[e.ObjectLiteral=128]=\"ObjectLiteral\",e[e.EvolvingArray=256]=\"EvolvingArray\",e[e.ObjectLiteralPatternWithComputedProperties=512]=\"ObjectLiteralPatternWithComputedProperties\",e[e.ReverseMapped=1024]=\"ReverseMapped\",e[e.JsxAttributes=2048]=\"JsxAttributes\",e[e.JSLiteral=4096]=\"JSLiteral\",e[e.FreshLiteral=8192]=\"FreshLiteral\",e[e.ArrayLiteral=16384]=\"ArrayLiteral\",e[e.PrimitiveUnion=32768]=\"PrimitiveUnion\",e[e.ContainsWideningType=65536]=\"ContainsWideningType\",e[e.ContainsObjectOrArrayLiteral=131072]=\"ContainsObjectOrArrayLiteral\",e[e.NonInferrableType=262144]=\"NonInferrableType\",e[e.CouldContainTypeVariablesComputed=524288]=\"CouldContainTypeVariablesComputed\",e[e.CouldContainTypeVariables=1048576]=\"CouldContainTypeVariables\",e[e.ClassOrInterface=3]=\"ClassOrInterface\",e[e.RequiresWidening=196608]=\"RequiresWidening\",e[e.PropagatingFlags=458752]=\"PropagatingFlags\",e[e.InstantiatedMapped=96]=\"InstantiatedMapped\",e[e.ObjectTypeKindMask=1343]=\"ObjectTypeKindMask\",e[e.ContainsSpread=2097152]=\"ContainsSpread\",e[e.ObjectRestType=4194304]=\"ObjectRestType\",e[e.InstantiationExpressionType=8388608]=\"InstantiationExpressionType\",e[e.SingleSignatureType=134217728]=\"SingleSignatureType\",e[e.IsClassInstanceClone=16777216]=\"IsClassInstanceClone\",e[e.IdenticalBaseTypeCalculated=33554432]=\"IdenticalBaseTypeCalculated\",e[e.IdenticalBaseTypeExists=67108864]=\"IdenticalBaseTypeExists\",e[e.IsGenericTypeComputed=2097152]=\"IsGenericTypeComputed\",e[e.IsGenericObjectType=4194304]=\"IsGenericObjectType\",e[e.IsGenericIndexType=8388608]=\"IsGenericIndexType\",e[e.IsGenericType=12582912]=\"IsGenericType\",e[e.ContainsIntersections=16777216]=\"ContainsIntersections\",e[e.IsUnknownLikeUnionComputed=33554432]=\"IsUnknownLikeUnionComputed\",e[e.IsUnknownLikeUnion=67108864]=\"IsUnknownLikeUnion\",e[e.IsNeverIntersectionComputed=16777216]=\"IsNeverIntersectionComputed\",e[e.IsNeverIntersection=33554432]=\"IsNeverIntersection\",e[e.IsConstrainedTypeVariable=67108864]=\"IsConstrainedTypeVariable\",e))(Zp||{});var Im=(e=>(e[e.None=0]=\"None\",e[e.HasRestParameter=1]=\"HasRestParameter\",e[e.HasLiteralTypes=2]=\"HasLiteralTypes\",e[e.Abstract=4]=\"Abstract\",e[e.IsInnerCallChain=8]=\"IsInnerCallChain\",e[e.IsOuterCallChain=16]=\"IsOuterCallChain\",e[e.IsUntypedSignatureInJSFile=32]=\"IsUntypedSignatureInJSFile\",e[e.IsNonInferrable=64]=\"IsNonInferrable\",e[e.IsSignatureCandidateForOverloadFailure=128]=\"IsSignatureCandidateForOverloadFailure\",e[e.PropagatingFlags=167]=\"PropagatingFlags\",e[e.CallChainFlags=24]=\"CallChainFlags\",e))(Im||{});var Dr=(e=>(e[e.Unknown=0]=\"Unknown\",e[e.JS=1]=\"JS\",e[e.JSX=2]=\"JSX\",e[e.TS=3]=\"TS\",e[e.TSX=4]=\"TSX\",e[e.External=5]=\"External\",e[e.JSON=6]=\"JSON\",e[e.Deferred=7]=\"Deferred\",e))(Dr||{}),ys=(e=>(e[e.ES3=0]=\"ES3\",e[e.ES5=1]=\"ES5\",e[e.ES2015=2]=\"ES2015\",e[e.ES2016=3]=\"ES2016\",e[e.ES2017=4]=\"ES2017\",e[e.ES2018=5]=\"ES2018\",e[e.ES2019=6]=\"ES2019\",e[e.ES2020=7]=\"ES2020\",e[e.ES2021=8]=\"ES2021\",e[e.ES2022=9]=\"ES2022\",e[e.ES2023=10]=\"ES2023\",e[e.ES2024=11]=\"ES2024\",e[e.ESNext=99]=\"ESNext\",e[e.JSON=100]=\"JSON\",e[e.Latest=99]=\"Latest\",e))(ys||{}),Tl=(e=>(e[e.Standard=0]=\"Standard\",e[e.JSX=1]=\"JSX\",e))(Tl||{});var Nn=(e=>(e.Ts=\".ts\",e.Tsx=\".tsx\",e.Dts=\".d.ts\",e.Js=\".js\",e.Jsx=\".jsx\",e.Json=\".json\",e.TsBuildInfo=\".tsbuildinfo\",e.Mjs=\".mjs\",e.Mts=\".mts\",e.Dmts=\".d.mts\",e.Cjs=\".cjs\",e.Cts=\".cts\",e.Dcts=\".d.cts\",e))(Nn||{}),Om=(e=>(e[e.None=0]=\"None\",e[e.ContainsTypeScript=1]=\"ContainsTypeScript\",e[e.ContainsJsx=2]=\"ContainsJsx\",e[e.ContainsESNext=4]=\"ContainsESNext\",e[e.ContainsES2022=8]=\"ContainsES2022\",e[e.ContainsES2021=16]=\"ContainsES2021\",e[e.ContainsES2020=32]=\"ContainsES2020\",e[e.ContainsES2019=64]=\"ContainsES2019\",e[e.ContainsES2018=128]=\"ContainsES2018\",e[e.ContainsES2017=256]=\"ContainsES2017\",e[e.ContainsES2016=512]=\"ContainsES2016\",e[e.ContainsES2015=1024]=\"ContainsES2015\",e[e.ContainsGenerator=2048]=\"ContainsGenerator\",e[e.ContainsDestructuringAssignment=4096]=\"ContainsDestructuringAssignment\",e[e.ContainsTypeScriptClassSyntax=8192]=\"ContainsTypeScriptClassSyntax\",e[e.ContainsLexicalThis=16384]=\"ContainsLexicalThis\",e[e.ContainsRestOrSpread=32768]=\"ContainsRestOrSpread\",e[e.ContainsObjectRestOrSpread=65536]=\"ContainsObjectRestOrSpread\",e[e.ContainsComputedPropertyName=131072]=\"ContainsComputedPropertyName\",e[e.ContainsBlockScopedBinding=262144]=\"ContainsBlockScopedBinding\",e[e.ContainsBindingPattern=524288]=\"ContainsBindingPattern\",e[e.ContainsYield=1048576]=\"ContainsYield\",e[e.ContainsAwait=2097152]=\"ContainsAwait\",e[e.ContainsHoistedDeclarationOrCompletion=4194304]=\"ContainsHoistedDeclarationOrCompletion\",e[e.ContainsDynamicImport=8388608]=\"ContainsDynamicImport\",e[e.ContainsClassFields=16777216]=\"ContainsClassFields\",e[e.ContainsDecorators=33554432]=\"ContainsDecorators\",e[e.ContainsPossibleTopLevelAwait=67108864]=\"ContainsPossibleTopLevelAwait\",e[e.ContainsLexicalSuper=134217728]=\"ContainsLexicalSuper\",e[e.ContainsUpdateExpressionForIdentifier=268435456]=\"ContainsUpdateExpressionForIdentifier\",e[e.ContainsPrivateIdentifierInExpression=536870912]=\"ContainsPrivateIdentifierInExpression\",e[e.HasComputedFlags=-2147483648]=\"HasComputedFlags\",e[e.AssertTypeScript=1]=\"AssertTypeScript\",e[e.AssertJsx=2]=\"AssertJsx\",e[e.AssertESNext=4]=\"AssertESNext\",e[e.AssertES2022=8]=\"AssertES2022\",e[e.AssertES2021=16]=\"AssertES2021\",e[e.AssertES2020=32]=\"AssertES2020\",e[e.AssertES2019=64]=\"AssertES2019\",e[e.AssertES2018=128]=\"AssertES2018\",e[e.AssertES2017=256]=\"AssertES2017\",e[e.AssertES2016=512]=\"AssertES2016\",e[e.AssertES2015=1024]=\"AssertES2015\",e[e.AssertGenerator=2048]=\"AssertGenerator\",e[e.AssertDestructuringAssignment=4096]=\"AssertDestructuringAssignment\",e[e.OuterExpressionExcludes=-2147483648]=\"OuterExpressionExcludes\",e[e.PropertyAccessExcludes=-2147483648]=\"PropertyAccessExcludes\",e[e.NodeExcludes=-2147483648]=\"NodeExcludes\",e[e.ArrowFunctionExcludes=-2072174592]=\"ArrowFunctionExcludes\",e[e.FunctionExcludes=-1937940480]=\"FunctionExcludes\",e[e.ConstructorExcludes=-1937948672]=\"ConstructorExcludes\",e[e.MethodOrAccessorExcludes=-2005057536]=\"MethodOrAccessorExcludes\",e[e.PropertyExcludes=-2013249536]=\"PropertyExcludes\",e[e.ClassExcludes=-2147344384]=\"ClassExcludes\",e[e.ModuleExcludes=-1941676032]=\"ModuleExcludes\",e[e.TypeExcludes=-2]=\"TypeExcludes\",e[e.ObjectLiteralExcludes=-2147278848]=\"ObjectLiteralExcludes\",e[e.ArrayLiteralOrCallOrNewExcludes=-2147450880]=\"ArrayLiteralOrCallOrNewExcludes\",e[e.VariableDeclarationListExcludes=-2146893824]=\"VariableDeclarationListExcludes\",e[e.ParameterExcludes=-2147483648]=\"ParameterExcludes\",e[e.CatchClauseExcludes=-2147418112]=\"CatchClauseExcludes\",e[e.BindingPatternExcludes=-2147450880]=\"BindingPatternExcludes\",e[e.ContainsLexicalThisOrSuper=134234112]=\"ContainsLexicalThisOrSuper\",e[e.PropertyNamePropagatingFlags=134234112]=\"PropertyNamePropagatingFlags\",e))(Om||{}),Mm=(e=>(e[e.TabStop=0]=\"TabStop\",e[e.Placeholder=1]=\"Placeholder\",e[e.Choice=2]=\"Choice\",e[e.Variable=3]=\"Variable\",e))(Mm||{}),Jm=(e=>(e[e.None=0]=\"None\",e[e.SingleLine=1]=\"SingleLine\",e[e.MultiLine=2]=\"MultiLine\",e[e.AdviseOnEmitNode=4]=\"AdviseOnEmitNode\",e[e.NoSubstitution=8]=\"NoSubstitution\",e[e.CapturesThis=16]=\"CapturesThis\",e[e.NoLeadingSourceMap=32]=\"NoLeadingSourceMap\",e[e.NoTrailingSourceMap=64]=\"NoTrailingSourceMap\",e[e.NoSourceMap=96]=\"NoSourceMap\",e[e.NoNestedSourceMaps=128]=\"NoNestedSourceMaps\",e[e.NoTokenLeadingSourceMaps=256]=\"NoTokenLeadingSourceMaps\",e[e.NoTokenTrailingSourceMaps=512]=\"NoTokenTrailingSourceMaps\",e[e.NoTokenSourceMaps=768]=\"NoTokenSourceMaps\",e[e.NoLeadingComments=1024]=\"NoLeadingComments\",e[e.NoTrailingComments=2048]=\"NoTrailingComments\",e[e.NoComments=3072]=\"NoComments\",e[e.NoNestedComments=4096]=\"NoNestedComments\",e[e.HelperName=8192]=\"HelperName\",e[e.ExportName=16384]=\"ExportName\",e[e.LocalName=32768]=\"LocalName\",e[e.InternalName=65536]=\"InternalName\",e[e.Indented=131072]=\"Indented\",e[e.NoIndentation=262144]=\"NoIndentation\",e[e.AsyncFunctionBody=524288]=\"AsyncFunctionBody\",e[e.ReuseTempVariableScope=1048576]=\"ReuseTempVariableScope\",e[e.CustomPrologue=2097152]=\"CustomPrologue\",e[e.NoHoisting=4194304]=\"NoHoisting\",e[e.Iterator=8388608]=\"Iterator\",e[e.NoAsciiEscaping=16777216]=\"NoAsciiEscaping\",e))(Jm||{});var Q_={Classes:2,ForOf:2,Generators:2,Iteration:2,SpreadElements:2,RestElements:2,TaggedTemplates:2,DestructuringAssignment:2,BindingPatterns:2,ArrowFunctions:2,BlockScopedVariables:2,ObjectAssign:2,RegularExpressionFlagsUnicode:2,RegularExpressionFlagsSticky:2,Exponentiation:3,AsyncFunctions:4,ForAwaitOf:5,AsyncGenerators:5,AsyncIteration:5,ObjectSpreadRest:5,RegularExpressionFlagsDotAll:5,BindinglessCatch:6,BigInt:7,NullishCoalesce:7,OptionalChaining:7,LogicalAssignment:8,TopLevelAwait:9,ClassFields:9,PrivateNamesAndClassStaticBlocks:9,RegularExpressionFlagsHasIndices:9,ShebangComments:10,RegularExpressionFlagsUnicodeSets:11,UsingAndAwaitUsing:99,ClassAndClassElementDecorators:99};var Lm={reference:{args:[{name:\"types\",optional:!0,captureSpan:!0},{name:\"lib\",optional:!0,captureSpan:!0},{name:\"path\",optional:!0,captureSpan:!0},{name:\"no-default-lib\",optional:!0},{name:\"resolution-mode\",optional:!0},{name:\"preserve\",optional:!0}],kind:1},\"amd-dependency\":{args:[{name:\"path\"},{name:\"name\",optional:!0}],kind:1},\"amd-module\":{args:[{name:\"name\"}],kind:1},\"ts-check\":{kind:2},\"ts-nocheck\":{kind:2},jsx:{args:[{name:\"factory\"}],kind:4},jsxfrag:{args:[{name:\"factory\"}],kind:4},jsximportsource:{args:[{name:\"factory\"}],kind:4},jsxruntime:{args:[{name:\"factory\"}],kind:4}},Ga=(e=>(e[e.ParseAll=0]=\"ParseAll\",e[e.ParseNone=1]=\"ParseNone\",e[e.ParseForTypeErrors=2]=\"ParseForTypeErrors\",e[e.ParseForTypeInfo=3]=\"ParseForTypeInfo\",e))(Ga||{});var Qi=\"/\",Py=\"\\\\\",Ed=\"://\",Ny=/\\\\/g;function Iy(e){return e===47||e===92}function Oy(e,t){return e.length>t.length&&ky(e,t)}function ef(e){return e.length>0&&Iy(e.charCodeAt(e.length-1))}function Ad(e){return e>=97&&e<=122||e>=65&&e<=90}function My(e,t){let a=e.charCodeAt(t);if(a===58)return t+1;if(a===37&&e.charCodeAt(t+1)===51){let o=e.charCodeAt(t+2);if(o===97||o===65)return t+3}return-1}function Jy(e){if(!e)return 0;let t=e.charCodeAt(0);if(t===47||t===92){if(e.charCodeAt(1)!==t)return 1;let o=e.indexOf(t===47?Qi:Py,2);return o<0?e.length:o+1}if(Ad(t)&&e.charCodeAt(1)===58){let o=e.charCodeAt(2);if(o===47||o===92)return 3;if(e.length===2)return 2}let a=e.indexOf(Ed);if(a!==-1){let o=a+Ed.length,m=e.indexOf(Qi,o);if(m!==-1){let v=e.slice(0,a),A=e.slice(o,m);if(v===\"file\"&&(A===\"\"||A===\"localhost\")&&Ad(e.charCodeAt(m+1))){let P=My(e,m+2);if(P!==-1){if(e.charCodeAt(P)===47)return~(P+1);if(P===e.length)return~P}}return~(m+1)}return~e.length}return 0}function pl(e){let t=Jy(e);return t<0?~t:t}function jm(e,t,a){if(e=fl(e),pl(e)===e.length)return\"\";e=Um(e);let m=e.slice(Math.max(pl(e),e.lastIndexOf(Qi)+1)),v=t!==void 0&&a!==void 0?Rm(m,t,a):void 0;return v?m.slice(0,m.length-v.length):m}function Cd(e,t,a){if(ul(t,\".\")||(t=\".\"+t),e.length>=t.length&&e.charCodeAt(e.length-t.length)===46){let o=e.slice(e.length-t.length);if(a(o,t))return o}}function Ly(e,t,a){if(typeof t==\"string\")return Cd(e,t,a)||\"\";for(let o of t){let m=Cd(e,o,a);if(m)return m}return\"\"}function Rm(e,t,a){if(t)return Ly(Um(e),t,a?$p:Ty);let o=jm(e),m=o.lastIndexOf(\".\");return m>=0?o.substring(m):\"\"}function jy(e,t){let a=e.substring(0,t),o=e.substring(t).split(Qi);return o.length&&!Gi(o)&&o.pop(),[a,...o]}function Ry(e,t=\"\"){return e=qy(t,e),jy(e,pl(e))}function Uy(e,t){return e.length===0?\"\":(e[0]&&tf(e[0]))+e.slice(1,t).join(Qi)}function fl(e){return e.includes(\"\\\\\")?e.replace(Ny,Qi):e}function By(e){if(!Ht(e))return[];let t=[e[0]];for(let a=1;a1){if(t[t.length-1]!==\"..\"){t.pop();continue}}else if(t[0])continue}t.push(o)}}return t}function qy(e,...t){e&&(e=fl(e));for(let a of t)a&&(a=fl(a),!e||pl(a)!==0?e=a:e=tf(e)+a);return e}function zy(e){if(e=fl(e),!Dd.test(e))return e;let t=e.replace(/\\/\\.\\//g,\"/\").replace(/^\\.\\//,\"\");if(t!==e&&(e=t,!Dd.test(e)))return e;let a=Uy(By(Ry(e)));return a&&ef(e)?tf(a):a}function Um(e){return ef(e)?e.substr(0,e.length-1):e}function tf(e){return ef(e)?e:e+Qi}var Dd=/\\/\\/|(?:^|\\/)\\.\\.?(?:$|\\/)/;function r(e,t,a,o,m,v,A){return{code:e,category:t,key:a,message:o,reportsUnnecessary:m,elidedInCompatabilityPyramid:v,reportsDeprecated:A}}var E={Unterminated_string_literal:r(1002,1,\"Unterminated_string_literal_1002\",\"Unterminated string literal.\"),Identifier_expected:r(1003,1,\"Identifier_expected_1003\",\"Identifier expected.\"),_0_expected:r(1005,1,\"_0_expected_1005\",\"'{0}' expected.\"),A_file_cannot_have_a_reference_to_itself:r(1006,1,\"A_file_cannot_have_a_reference_to_itself_1006\",\"A file cannot have a reference to itself.\"),The_parser_expected_to_find_a_1_to_match_the_0_token_here:r(1007,1,\"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007\",\"The parser expected to find a '{1}' to match the '{0}' token here.\"),Trailing_comma_not_allowed:r(1009,1,\"Trailing_comma_not_allowed_1009\",\"Trailing comma not allowed.\"),Asterisk_Slash_expected:r(1010,1,\"Asterisk_Slash_expected_1010\",\"'*/' expected.\"),An_element_access_expression_should_take_an_argument:r(1011,1,\"An_element_access_expression_should_take_an_argument_1011\",\"An element access expression should take an argument.\"),Unexpected_token:r(1012,1,\"Unexpected_token_1012\",\"Unexpected token.\"),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:r(1013,1,\"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\",\"A rest parameter or binding pattern may not have a trailing comma.\"),A_rest_parameter_must_be_last_in_a_parameter_list:r(1014,1,\"A_rest_parameter_must_be_last_in_a_parameter_list_1014\",\"A rest parameter must be last in a parameter list.\"),Parameter_cannot_have_question_mark_and_initializer:r(1015,1,\"Parameter_cannot_have_question_mark_and_initializer_1015\",\"Parameter cannot have question mark and initializer.\"),A_required_parameter_cannot_follow_an_optional_parameter:r(1016,1,\"A_required_parameter_cannot_follow_an_optional_parameter_1016\",\"A required parameter cannot follow an optional parameter.\"),An_index_signature_cannot_have_a_rest_parameter:r(1017,1,\"An_index_signature_cannot_have_a_rest_parameter_1017\",\"An index signature cannot have a rest parameter.\"),An_index_signature_parameter_cannot_have_an_accessibility_modifier:r(1018,1,\"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\",\"An index signature parameter cannot have an accessibility modifier.\"),An_index_signature_parameter_cannot_have_a_question_mark:r(1019,1,\"An_index_signature_parameter_cannot_have_a_question_mark_1019\",\"An index signature parameter cannot have a question mark.\"),An_index_signature_parameter_cannot_have_an_initializer:r(1020,1,\"An_index_signature_parameter_cannot_have_an_initializer_1020\",\"An index signature parameter cannot have an initializer.\"),An_index_signature_must_have_a_type_annotation:r(1021,1,\"An_index_signature_must_have_a_type_annotation_1021\",\"An index signature must have a type annotation.\"),An_index_signature_parameter_must_have_a_type_annotation:r(1022,1,\"An_index_signature_parameter_must_have_a_type_annotation_1022\",\"An index signature parameter must have a type annotation.\"),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:r(1024,1,\"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\",\"'readonly' modifier can only appear on a property declaration or index signature.\"),An_index_signature_cannot_have_a_trailing_comma:r(1025,1,\"An_index_signature_cannot_have_a_trailing_comma_1025\",\"An index signature cannot have a trailing comma.\"),Accessibility_modifier_already_seen:r(1028,1,\"Accessibility_modifier_already_seen_1028\",\"Accessibility modifier already seen.\"),_0_modifier_must_precede_1_modifier:r(1029,1,\"_0_modifier_must_precede_1_modifier_1029\",\"'{0}' modifier must precede '{1}' modifier.\"),_0_modifier_already_seen:r(1030,1,\"_0_modifier_already_seen_1030\",\"'{0}' modifier already seen.\"),_0_modifier_cannot_appear_on_class_elements_of_this_kind:r(1031,1,\"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031\",\"'{0}' modifier cannot appear on class elements of this kind.\"),super_must_be_followed_by_an_argument_list_or_member_access:r(1034,1,\"super_must_be_followed_by_an_argument_list_or_member_access_1034\",\"'super' must be followed by an argument list or member access.\"),Only_ambient_modules_can_use_quoted_names:r(1035,1,\"Only_ambient_modules_can_use_quoted_names_1035\",\"Only ambient modules can use quoted names.\"),Statements_are_not_allowed_in_ambient_contexts:r(1036,1,\"Statements_are_not_allowed_in_ambient_contexts_1036\",\"Statements are not allowed in ambient contexts.\"),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:r(1038,1,\"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\",\"A 'declare' modifier cannot be used in an already ambient context.\"),Initializers_are_not_allowed_in_ambient_contexts:r(1039,1,\"Initializers_are_not_allowed_in_ambient_contexts_1039\",\"Initializers are not allowed in ambient contexts.\"),_0_modifier_cannot_be_used_in_an_ambient_context:r(1040,1,\"_0_modifier_cannot_be_used_in_an_ambient_context_1040\",\"'{0}' modifier cannot be used in an ambient context.\"),_0_modifier_cannot_be_used_here:r(1042,1,\"_0_modifier_cannot_be_used_here_1042\",\"'{0}' modifier cannot be used here.\"),_0_modifier_cannot_appear_on_a_module_or_namespace_element:r(1044,1,\"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\",\"'{0}' modifier cannot appear on a module or namespace element.\"),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:r(1046,1,\"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\",\"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),A_rest_parameter_cannot_be_optional:r(1047,1,\"A_rest_parameter_cannot_be_optional_1047\",\"A rest parameter cannot be optional.\"),A_rest_parameter_cannot_have_an_initializer:r(1048,1,\"A_rest_parameter_cannot_have_an_initializer_1048\",\"A rest parameter cannot have an initializer.\"),A_set_accessor_must_have_exactly_one_parameter:r(1049,1,\"A_set_accessor_must_have_exactly_one_parameter_1049\",\"A 'set' accessor must have exactly one parameter.\"),A_set_accessor_cannot_have_an_optional_parameter:r(1051,1,\"A_set_accessor_cannot_have_an_optional_parameter_1051\",\"A 'set' accessor cannot have an optional parameter.\"),A_set_accessor_parameter_cannot_have_an_initializer:r(1052,1,\"A_set_accessor_parameter_cannot_have_an_initializer_1052\",\"A 'set' accessor parameter cannot have an initializer.\"),A_set_accessor_cannot_have_rest_parameter:r(1053,1,\"A_set_accessor_cannot_have_rest_parameter_1053\",\"A 'set' accessor cannot have rest parameter.\"),A_get_accessor_cannot_have_parameters:r(1054,1,\"A_get_accessor_cannot_have_parameters_1054\",\"A 'get' accessor cannot have parameters.\"),Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:r(1055,1,\"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055\",\"Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value.\"),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:r(1056,1,\"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\",\"Accessors are only available when targeting ECMAScript 5 and higher.\"),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:r(1058,1,\"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\",\"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),A_promise_must_have_a_then_method:r(1059,1,\"A_promise_must_have_a_then_method_1059\",\"A promise must have a 'then' method.\"),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:r(1060,1,\"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\",\"The first parameter of the 'then' method of a promise must be a callback.\"),Enum_member_must_have_initializer:r(1061,1,\"Enum_member_must_have_initializer_1061\",\"Enum member must have initializer.\"),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:r(1062,1,\"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\",\"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),An_export_assignment_cannot_be_used_in_a_namespace:r(1063,1,\"An_export_assignment_cannot_be_used_in_a_namespace_1063\",\"An export assignment cannot be used in a namespace.\"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:r(1064,1,\"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064\",\"The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?\"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:r(1065,1,\"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065\",\"The return type of an async function or method must be the global Promise type.\"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:r(1066,1,\"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\",\"In ambient enum declarations member initializer must be constant expression.\"),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:r(1068,1,\"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\",\"Unexpected token. A constructor, method, accessor, or property was expected.\"),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:r(1069,1,\"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\",\"Unexpected token. A type parameter name was expected without curly braces.\"),_0_modifier_cannot_appear_on_a_type_member:r(1070,1,\"_0_modifier_cannot_appear_on_a_type_member_1070\",\"'{0}' modifier cannot appear on a type member.\"),_0_modifier_cannot_appear_on_an_index_signature:r(1071,1,\"_0_modifier_cannot_appear_on_an_index_signature_1071\",\"'{0}' modifier cannot appear on an index signature.\"),A_0_modifier_cannot_be_used_with_an_import_declaration:r(1079,1,\"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\",\"A '{0}' modifier cannot be used with an import declaration.\"),Invalid_reference_directive_syntax:r(1084,1,\"Invalid_reference_directive_syntax_1084\",\"Invalid 'reference' directive syntax.\"),_0_modifier_cannot_appear_on_a_constructor_declaration:r(1089,1,\"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\",\"'{0}' modifier cannot appear on a constructor declaration.\"),_0_modifier_cannot_appear_on_a_parameter:r(1090,1,\"_0_modifier_cannot_appear_on_a_parameter_1090\",\"'{0}' modifier cannot appear on a parameter.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:r(1091,1,\"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\",\"Only a single variable declaration is allowed in a 'for...in' statement.\"),Type_parameters_cannot_appear_on_a_constructor_declaration:r(1092,1,\"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\",\"Type parameters cannot appear on a constructor declaration.\"),Type_annotation_cannot_appear_on_a_constructor_declaration:r(1093,1,\"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\",\"Type annotation cannot appear on a constructor declaration.\"),An_accessor_cannot_have_type_parameters:r(1094,1,\"An_accessor_cannot_have_type_parameters_1094\",\"An accessor cannot have type parameters.\"),A_set_accessor_cannot_have_a_return_type_annotation:r(1095,1,\"A_set_accessor_cannot_have_a_return_type_annotation_1095\",\"A 'set' accessor cannot have a return type annotation.\"),An_index_signature_must_have_exactly_one_parameter:r(1096,1,\"An_index_signature_must_have_exactly_one_parameter_1096\",\"An index signature must have exactly one parameter.\"),_0_list_cannot_be_empty:r(1097,1,\"_0_list_cannot_be_empty_1097\",\"'{0}' list cannot be empty.\"),Type_parameter_list_cannot_be_empty:r(1098,1,\"Type_parameter_list_cannot_be_empty_1098\",\"Type parameter list cannot be empty.\"),Type_argument_list_cannot_be_empty:r(1099,1,\"Type_argument_list_cannot_be_empty_1099\",\"Type argument list cannot be empty.\"),Invalid_use_of_0_in_strict_mode:r(1100,1,\"Invalid_use_of_0_in_strict_mode_1100\",\"Invalid use of '{0}' in strict mode.\"),with_statements_are_not_allowed_in_strict_mode:r(1101,1,\"with_statements_are_not_allowed_in_strict_mode_1101\",\"'with' statements are not allowed in strict mode.\"),delete_cannot_be_called_on_an_identifier_in_strict_mode:r(1102,1,\"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\",\"'delete' cannot be called on an identifier in strict mode.\"),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:r(1103,1,\"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103\",\"'for await' loops are only allowed within async functions and at the top levels of modules.\"),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:r(1104,1,\"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\",\"A 'continue' statement can only be used within an enclosing iteration statement.\"),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:r(1105,1,\"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\",\"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_async:r(1106,1,\"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106\",\"The left-hand side of a 'for...of' statement may not be 'async'.\"),Jump_target_cannot_cross_function_boundary:r(1107,1,\"Jump_target_cannot_cross_function_boundary_1107\",\"Jump target cannot cross function boundary.\"),A_return_statement_can_only_be_used_within_a_function_body:r(1108,1,\"A_return_statement_can_only_be_used_within_a_function_body_1108\",\"A 'return' statement can only be used within a function body.\"),Expression_expected:r(1109,1,\"Expression_expected_1109\",\"Expression expected.\"),Type_expected:r(1110,1,\"Type_expected_1110\",\"Type expected.\"),Private_field_0_must_be_declared_in_an_enclosing_class:r(1111,1,\"Private_field_0_must_be_declared_in_an_enclosing_class_1111\",\"Private field '{0}' must be declared in an enclosing class.\"),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:r(1113,1,\"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\",\"A 'default' clause cannot appear more than once in a 'switch' statement.\"),Duplicate_label_0:r(1114,1,\"Duplicate_label_0_1114\",\"Duplicate label '{0}'.\"),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:r(1115,1,\"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\",\"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:r(1116,1,\"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\",\"A 'break' statement can only jump to a label of an enclosing statement.\"),An_object_literal_cannot_have_multiple_properties_with_the_same_name:r(1117,1,\"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117\",\"An object literal cannot have multiple properties with the same name.\"),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:r(1118,1,\"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\",\"An object literal cannot have multiple get/set accessors with the same name.\"),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:r(1119,1,\"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\",\"An object literal cannot have property and accessor with the same name.\"),An_export_assignment_cannot_have_modifiers:r(1120,1,\"An_export_assignment_cannot_have_modifiers_1120\",\"An export assignment cannot have modifiers.\"),Octal_literals_are_not_allowed_Use_the_syntax_0:r(1121,1,\"Octal_literals_are_not_allowed_Use_the_syntax_0_1121\",\"Octal literals are not allowed. Use the syntax '{0}'.\"),Variable_declaration_list_cannot_be_empty:r(1123,1,\"Variable_declaration_list_cannot_be_empty_1123\",\"Variable declaration list cannot be empty.\"),Digit_expected:r(1124,1,\"Digit_expected_1124\",\"Digit expected.\"),Hexadecimal_digit_expected:r(1125,1,\"Hexadecimal_digit_expected_1125\",\"Hexadecimal digit expected.\"),Unexpected_end_of_text:r(1126,1,\"Unexpected_end_of_text_1126\",\"Unexpected end of text.\"),Invalid_character:r(1127,1,\"Invalid_character_1127\",\"Invalid character.\"),Declaration_or_statement_expected:r(1128,1,\"Declaration_or_statement_expected_1128\",\"Declaration or statement expected.\"),Statement_expected:r(1129,1,\"Statement_expected_1129\",\"Statement expected.\"),case_or_default_expected:r(1130,1,\"case_or_default_expected_1130\",\"'case' or 'default' expected.\"),Property_or_signature_expected:r(1131,1,\"Property_or_signature_expected_1131\",\"Property or signature expected.\"),Enum_member_expected:r(1132,1,\"Enum_member_expected_1132\",\"Enum member expected.\"),Variable_declaration_expected:r(1134,1,\"Variable_declaration_expected_1134\",\"Variable declaration expected.\"),Argument_expression_expected:r(1135,1,\"Argument_expression_expected_1135\",\"Argument expression expected.\"),Property_assignment_expected:r(1136,1,\"Property_assignment_expected_1136\",\"Property assignment expected.\"),Expression_or_comma_expected:r(1137,1,\"Expression_or_comma_expected_1137\",\"Expression or comma expected.\"),Parameter_declaration_expected:r(1138,1,\"Parameter_declaration_expected_1138\",\"Parameter declaration expected.\"),Type_parameter_declaration_expected:r(1139,1,\"Type_parameter_declaration_expected_1139\",\"Type parameter declaration expected.\"),Type_argument_expected:r(1140,1,\"Type_argument_expected_1140\",\"Type argument expected.\"),String_literal_expected:r(1141,1,\"String_literal_expected_1141\",\"String literal expected.\"),Line_break_not_permitted_here:r(1142,1,\"Line_break_not_permitted_here_1142\",\"Line break not permitted here.\"),or_expected:r(1144,1,\"or_expected_1144\",\"'{' or ';' expected.\"),or_JSX_element_expected:r(1145,1,\"or_JSX_element_expected_1145\",\"'{' or JSX element expected.\"),Declaration_expected:r(1146,1,\"Declaration_expected_1146\",\"Declaration expected.\"),Import_declarations_in_a_namespace_cannot_reference_a_module:r(1147,1,\"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\",\"Import declarations in a namespace cannot reference a module.\"),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:r(1148,1,\"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\",\"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),File_name_0_differs_from_already_included_file_name_1_only_in_casing:r(1149,1,\"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\",\"File name '{0}' differs from already included file name '{1}' only in casing.\"),_0_declarations_must_be_initialized:r(1155,1,\"_0_declarations_must_be_initialized_1155\",\"'{0}' declarations must be initialized.\"),_0_declarations_can_only_be_declared_inside_a_block:r(1156,1,\"_0_declarations_can_only_be_declared_inside_a_block_1156\",\"'{0}' declarations can only be declared inside a block.\"),Unterminated_template_literal:r(1160,1,\"Unterminated_template_literal_1160\",\"Unterminated template literal.\"),Unterminated_regular_expression_literal:r(1161,1,\"Unterminated_regular_expression_literal_1161\",\"Unterminated regular expression literal.\"),An_object_member_cannot_be_declared_optional:r(1162,1,\"An_object_member_cannot_be_declared_optional_1162\",\"An object member cannot be declared optional.\"),A_yield_expression_is_only_allowed_in_a_generator_body:r(1163,1,\"A_yield_expression_is_only_allowed_in_a_generator_body_1163\",\"A 'yield' expression is only allowed in a generator body.\"),Computed_property_names_are_not_allowed_in_enums:r(1164,1,\"Computed_property_names_are_not_allowed_in_enums_1164\",\"Computed property names are not allowed in enums.\"),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:r(1165,1,\"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\",\"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:r(1166,1,\"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166\",\"A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:r(1168,1,\"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\",\"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:r(1169,1,\"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\",\"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:r(1170,1,\"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\",\"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_comma_expression_is_not_allowed_in_a_computed_property_name:r(1171,1,\"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\",\"A comma expression is not allowed in a computed property name.\"),extends_clause_already_seen:r(1172,1,\"extends_clause_already_seen_1172\",\"'extends' clause already seen.\"),extends_clause_must_precede_implements_clause:r(1173,1,\"extends_clause_must_precede_implements_clause_1173\",\"'extends' clause must precede 'implements' clause.\"),Classes_can_only_extend_a_single_class:r(1174,1,\"Classes_can_only_extend_a_single_class_1174\",\"Classes can only extend a single class.\"),implements_clause_already_seen:r(1175,1,\"implements_clause_already_seen_1175\",\"'implements' clause already seen.\"),Interface_declaration_cannot_have_implements_clause:r(1176,1,\"Interface_declaration_cannot_have_implements_clause_1176\",\"Interface declaration cannot have 'implements' clause.\"),Binary_digit_expected:r(1177,1,\"Binary_digit_expected_1177\",\"Binary digit expected.\"),Octal_digit_expected:r(1178,1,\"Octal_digit_expected_1178\",\"Octal digit expected.\"),Unexpected_token_expected:r(1179,1,\"Unexpected_token_expected_1179\",\"Unexpected token. '{' expected.\"),Property_destructuring_pattern_expected:r(1180,1,\"Property_destructuring_pattern_expected_1180\",\"Property destructuring pattern expected.\"),Array_element_destructuring_pattern_expected:r(1181,1,\"Array_element_destructuring_pattern_expected_1181\",\"Array element destructuring pattern expected.\"),A_destructuring_declaration_must_have_an_initializer:r(1182,1,\"A_destructuring_declaration_must_have_an_initializer_1182\",\"A destructuring declaration must have an initializer.\"),An_implementation_cannot_be_declared_in_ambient_contexts:r(1183,1,\"An_implementation_cannot_be_declared_in_ambient_contexts_1183\",\"An implementation cannot be declared in ambient contexts.\"),Modifiers_cannot_appear_here:r(1184,1,\"Modifiers_cannot_appear_here_1184\",\"Modifiers cannot appear here.\"),Merge_conflict_marker_encountered:r(1185,1,\"Merge_conflict_marker_encountered_1185\",\"Merge conflict marker encountered.\"),A_rest_element_cannot_have_an_initializer:r(1186,1,\"A_rest_element_cannot_have_an_initializer_1186\",\"A rest element cannot have an initializer.\"),A_parameter_property_may_not_be_declared_using_a_binding_pattern:r(1187,1,\"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\",\"A parameter property may not be declared using a binding pattern.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:r(1188,1,\"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\",\"Only a single variable declaration is allowed in a 'for...of' statement.\"),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:r(1189,1,\"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\",\"The variable declaration of a 'for...in' statement cannot have an initializer.\"),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:r(1190,1,\"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\",\"The variable declaration of a 'for...of' statement cannot have an initializer.\"),An_import_declaration_cannot_have_modifiers:r(1191,1,\"An_import_declaration_cannot_have_modifiers_1191\",\"An import declaration cannot have modifiers.\"),Module_0_has_no_default_export:r(1192,1,\"Module_0_has_no_default_export_1192\",\"Module '{0}' has no default export.\"),An_export_declaration_cannot_have_modifiers:r(1193,1,\"An_export_declaration_cannot_have_modifiers_1193\",\"An export declaration cannot have modifiers.\"),Export_declarations_are_not_permitted_in_a_namespace:r(1194,1,\"Export_declarations_are_not_permitted_in_a_namespace_1194\",\"Export declarations are not permitted in a namespace.\"),export_Asterisk_does_not_re_export_a_default:r(1195,1,\"export_Asterisk_does_not_re_export_a_default_1195\",\"'export *' does not re-export a default.\"),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:r(1196,1,\"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196\",\"Catch clause variable type annotation must be 'any' or 'unknown' if specified.\"),Catch_clause_variable_cannot_have_an_initializer:r(1197,1,\"Catch_clause_variable_cannot_have_an_initializer_1197\",\"Catch clause variable cannot have an initializer.\"),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:r(1198,1,\"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\",\"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),Unterminated_Unicode_escape_sequence:r(1199,1,\"Unterminated_Unicode_escape_sequence_1199\",\"Unterminated Unicode escape sequence.\"),Line_terminator_not_permitted_before_arrow:r(1200,1,\"Line_terminator_not_permitted_before_arrow_1200\",\"Line terminator not permitted before arrow.\"),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:r(1202,1,\"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:r(1203,1,\"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\",\"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),Re_exporting_a_type_when_0_is_enabled_requires_using_export_type:r(1205,1,\"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205\",\"Re-exporting a type when '{0}' is enabled requires using 'export type'.\"),Decorators_are_not_valid_here:r(1206,1,\"Decorators_are_not_valid_here_1206\",\"Decorators are not valid here.\"),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:r(1207,1,\"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\",\"Decorators cannot be applied to multiple get/set accessors of the same name.\"),Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0:r(1209,1,\"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209\",\"Invalid optional chain from new expression. Did you mean to call '{0}()'?\"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:r(1210,1,\"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210\",\"Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.\"),A_class_declaration_without_the_default_modifier_must_have_a_name:r(1211,1,\"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\",\"A class declaration without the 'default' modifier must have a name.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode:r(1212,1,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\",\"Identifier expected. '{0}' is a reserved word in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:r(1213,1,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\",\"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:r(1214,1,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\",\"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:r(1215,1,\"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\",\"Invalid use of '{0}'. Modules are automatically in strict mode.\"),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:r(1216,1,\"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\",\"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),Export_assignment_is_not_supported_when_module_flag_is_system:r(1218,1,\"Export_assignment_is_not_supported_when_module_flag_is_system_1218\",\"Export assignment is not supported when '--module' flag is 'system'.\"),Generators_are_not_allowed_in_an_ambient_context:r(1221,1,\"Generators_are_not_allowed_in_an_ambient_context_1221\",\"Generators are not allowed in an ambient context.\"),An_overload_signature_cannot_be_declared_as_a_generator:r(1222,1,\"An_overload_signature_cannot_be_declared_as_a_generator_1222\",\"An overload signature cannot be declared as a generator.\"),_0_tag_already_specified:r(1223,1,\"_0_tag_already_specified_1223\",\"'{0}' tag already specified.\"),Signature_0_must_be_a_type_predicate:r(1224,1,\"Signature_0_must_be_a_type_predicate_1224\",\"Signature '{0}' must be a type predicate.\"),Cannot_find_parameter_0:r(1225,1,\"Cannot_find_parameter_0_1225\",\"Cannot find parameter '{0}'.\"),Type_predicate_0_is_not_assignable_to_1:r(1226,1,\"Type_predicate_0_is_not_assignable_to_1_1226\",\"Type predicate '{0}' is not assignable to '{1}'.\"),Parameter_0_is_not_in_the_same_position_as_parameter_1:r(1227,1,\"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\",\"Parameter '{0}' is not in the same position as parameter '{1}'.\"),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:r(1228,1,\"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\",\"A type predicate is only allowed in return type position for functions and methods.\"),A_type_predicate_cannot_reference_a_rest_parameter:r(1229,1,\"A_type_predicate_cannot_reference_a_rest_parameter_1229\",\"A type predicate cannot reference a rest parameter.\"),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:r(1230,1,\"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\",\"A type predicate cannot reference element '{0}' in a binding pattern.\"),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:r(1231,1,\"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231\",\"An export assignment must be at the top level of a file or module declaration.\"),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:r(1232,1,\"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232\",\"An import declaration can only be used at the top level of a namespace or module.\"),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:r(1233,1,\"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233\",\"An export declaration can only be used at the top level of a namespace or module.\"),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:r(1234,1,\"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\",\"An ambient module declaration is only allowed at the top level in a file.\"),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:r(1235,1,\"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235\",\"A namespace declaration is only allowed at the top level of a namespace or module.\"),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:r(1236,1,\"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\",\"The return type of a property decorator function must be either 'void' or 'any'.\"),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:r(1237,1,\"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\",\"The return type of a parameter decorator function must be either 'void' or 'any'.\"),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:r(1238,1,\"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\",\"Unable to resolve signature of class decorator when called as an expression.\"),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:r(1239,1,\"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\",\"Unable to resolve signature of parameter decorator when called as an expression.\"),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:r(1240,1,\"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\",\"Unable to resolve signature of property decorator when called as an expression.\"),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:r(1241,1,\"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\",\"Unable to resolve signature of method decorator when called as an expression.\"),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:r(1242,1,\"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\",\"'abstract' modifier can only appear on a class, method, or property declaration.\"),_0_modifier_cannot_be_used_with_1_modifier:r(1243,1,\"_0_modifier_cannot_be_used_with_1_modifier_1243\",\"'{0}' modifier cannot be used with '{1}' modifier.\"),Abstract_methods_can_only_appear_within_an_abstract_class:r(1244,1,\"Abstract_methods_can_only_appear_within_an_abstract_class_1244\",\"Abstract methods can only appear within an abstract class.\"),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:r(1245,1,\"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\",\"Method '{0}' cannot have an implementation because it is marked abstract.\"),An_interface_property_cannot_have_an_initializer:r(1246,1,\"An_interface_property_cannot_have_an_initializer_1246\",\"An interface property cannot have an initializer.\"),A_type_literal_property_cannot_have_an_initializer:r(1247,1,\"A_type_literal_property_cannot_have_an_initializer_1247\",\"A type literal property cannot have an initializer.\"),A_class_member_cannot_have_the_0_keyword:r(1248,1,\"A_class_member_cannot_have_the_0_keyword_1248\",\"A class member cannot have the '{0}' keyword.\"),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:r(1249,1,\"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\",\"A decorator can only decorate a method implementation, not an overload.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5:r(1250,1,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:r(1251,1,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:r(1252,1,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode.\"),Abstract_properties_can_only_appear_within_an_abstract_class:r(1253,1,\"Abstract_properties_can_only_appear_within_an_abstract_class_1253\",\"Abstract properties can only appear within an abstract class.\"),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:r(1254,1,\"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\",\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),A_definite_assignment_assertion_is_not_permitted_in_this_context:r(1255,1,\"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\",\"A definite assignment assertion '!' is not permitted in this context.\"),A_required_element_cannot_follow_an_optional_element:r(1257,1,\"A_required_element_cannot_follow_an_optional_element_1257\",\"A required element cannot follow an optional element.\"),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:r(1258,1,\"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258\",\"A default export must be at the top level of a file or module declaration.\"),Module_0_can_only_be_default_imported_using_the_1_flag:r(1259,1,\"Module_0_can_only_be_default_imported_using_the_1_flag_1259\",\"Module '{0}' can only be default-imported using the '{1}' flag\"),Keywords_cannot_contain_escape_characters:r(1260,1,\"Keywords_cannot_contain_escape_characters_1260\",\"Keywords cannot contain escape characters.\"),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:r(1261,1,\"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261\",\"Already included file name '{0}' differs from file name '{1}' only in casing.\"),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:r(1262,1,\"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262\",\"Identifier expected. '{0}' is a reserved word at the top-level of a module.\"),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r(1263,1,\"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263\",\"Declarations with initializers cannot also have definite assignment assertions.\"),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:r(1264,1,\"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264\",\"Declarations with definite assignment assertions must also have type annotations.\"),A_rest_element_cannot_follow_another_rest_element:r(1265,1,\"A_rest_element_cannot_follow_another_rest_element_1265\",\"A rest element cannot follow another rest element.\"),An_optional_element_cannot_follow_a_rest_element:r(1266,1,\"An_optional_element_cannot_follow_a_rest_element_1266\",\"An optional element cannot follow a rest element.\"),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:r(1267,1,\"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267\",\"Property '{0}' cannot have an initializer because it is marked abstract.\"),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:r(1268,1,\"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268\",\"An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.\"),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled:r(1269,1,\"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269\",\"Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled.\"),Decorator_function_return_type_0_is_not_assignable_to_type_1:r(1270,1,\"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270\",\"Decorator function return type '{0}' is not assignable to type '{1}'.\"),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:r(1271,1,\"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271\",\"Decorator function return type is '{0}' but is expected to be 'void' or 'any'.\"),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:r(1272,1,\"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272\",\"A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.\"),_0_modifier_cannot_appear_on_a_type_parameter:r(1273,1,\"_0_modifier_cannot_appear_on_a_type_parameter_1273\",\"'{0}' modifier cannot appear on a type parameter\"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:r(1274,1,\"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274\",\"'{0}' modifier can only appear on a type parameter of a class, interface or type alias\"),accessor_modifier_can_only_appear_on_a_property_declaration:r(1275,1,\"accessor_modifier_can_only_appear_on_a_property_declaration_1275\",\"'accessor' modifier can only appear on a property declaration.\"),An_accessor_property_cannot_be_declared_optional:r(1276,1,\"An_accessor_property_cannot_be_declared_optional_1276\",\"An 'accessor' property cannot be declared optional.\"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class:r(1277,1,\"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277\",\"'{0}' modifier can only appear on a type parameter of a function, method or class\"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0:r(1278,1,\"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278\",\"The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}.\"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0:r(1279,1,\"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279\",\"The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}.\"),Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement:r(1280,1,\"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280\",\"Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement.\"),Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead:r(1281,1,\"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281\",\"Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead.\"),An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:r(1282,1,\"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282\",\"An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.\"),An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:r(1283,1,\"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283\",\"An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.\"),An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:r(1284,1,\"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284\",\"An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.\"),An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:r(1285,1,\"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285\",\"An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.\"),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:r(1286,1,\"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286\",\"ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.\"),A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:r(1287,1,\"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287\",\"A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.\"),An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:r(1288,1,\"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288\",\"An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled.\"),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:r(1289,1,\"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289\",\"'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.\"),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:r(1290,1,\"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290\",\"'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.\"),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:r(1291,1,\"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291\",\"'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.\"),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:r(1292,1,\"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292\",\"'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.\"),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve:r(1293,1,\"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293\",\"ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.\"),with_statements_are_not_allowed_in_an_async_function_block:r(1300,1,\"with_statements_are_not_allowed_in_an_async_function_block_1300\",\"'with' statements are not allowed in an async function block.\"),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:r(1308,1,\"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308\",\"'await' expressions are only allowed within async functions and at the top levels of modules.\"),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:r(1309,1,\"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309\",\"The current file is a CommonJS module and cannot use 'await' at the top level.\"),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:r(1312,1,\"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312\",\"Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.\"),The_body_of_an_if_statement_cannot_be_the_empty_statement:r(1313,1,\"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\",\"The body of an 'if' statement cannot be the empty statement.\"),Global_module_exports_may_only_appear_in_module_files:r(1314,1,\"Global_module_exports_may_only_appear_in_module_files_1314\",\"Global module exports may only appear in module files.\"),Global_module_exports_may_only_appear_in_declaration_files:r(1315,1,\"Global_module_exports_may_only_appear_in_declaration_files_1315\",\"Global module exports may only appear in declaration files.\"),Global_module_exports_may_only_appear_at_top_level:r(1316,1,\"Global_module_exports_may_only_appear_at_top_level_1316\",\"Global module exports may only appear at top level.\"),A_parameter_property_cannot_be_declared_using_a_rest_parameter:r(1317,1,\"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\",\"A parameter property cannot be declared using a rest parameter.\"),An_abstract_accessor_cannot_have_an_implementation:r(1318,1,\"An_abstract_accessor_cannot_have_an_implementation_1318\",\"An abstract accessor cannot have an implementation.\"),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:r(1319,1,\"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\",\"A default export can only be used in an ECMAScript-style module.\"),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:r(1320,1,\"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\",\"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:r(1321,1,\"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\",\"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:r(1322,1,\"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\",\"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:r(1323,1,\"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323\",\"Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'.\"),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodenext_or_preserve:r(1324,1,\"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodene_1324\",\"Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'nodenext', or 'preserve'.\"),Argument_of_dynamic_import_cannot_be_spread_element:r(1325,1,\"Argument_of_dynamic_import_cannot_be_spread_element_1325\",\"Argument of dynamic import cannot be spread element.\"),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:r(1326,1,\"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326\",\"This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.\"),String_literal_with_double_quotes_expected:r(1327,1,\"String_literal_with_double_quotes_expected_1327\",\"String literal with double quotes expected.\"),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:r(1328,1,\"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\",\"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:r(1329,1,\"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\",\"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:r(1330,1,\"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\",\"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:r(1331,1,\"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\",\"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:r(1332,1,\"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\",\"A variable whose type is a 'unique symbol' type must be 'const'.\"),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:r(1333,1,\"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\",\"'unique symbol' types may not be used on a variable declaration with a binding name.\"),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:r(1334,1,\"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\",\"'unique symbol' types are only allowed on variables in a variable statement.\"),unique_symbol_types_are_not_allowed_here:r(1335,1,\"unique_symbol_types_are_not_allowed_here_1335\",\"'unique symbol' types are not allowed here.\"),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:r(1337,1,\"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337\",\"An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.\"),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:r(1338,1,\"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\",\"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:r(1339,1,\"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\",\"Module '{0}' does not refer to a value, but is used as a value here.\"),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:r(1340,1,\"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\",\"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),Class_constructor_may_not_be_an_accessor:r(1341,1,\"Class_constructor_may_not_be_an_accessor_1341\",\"Class constructor may not be an accessor.\"),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:r(1343,1,\"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343\",\"The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'.\"),A_label_is_not_allowed_here:r(1344,1,\"A_label_is_not_allowed_here_1344\",\"'A label is not allowed here.\"),An_expression_of_type_void_cannot_be_tested_for_truthiness:r(1345,1,\"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\",\"An expression of type 'void' cannot be tested for truthiness.\"),This_parameter_is_not_allowed_with_use_strict_directive:r(1346,1,\"This_parameter_is_not_allowed_with_use_strict_directive_1346\",\"This parameter is not allowed with 'use strict' directive.\"),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:r(1347,1,\"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\",\"'use strict' directive cannot be used with non-simple parameter list.\"),Non_simple_parameter_declared_here:r(1348,1,\"Non_simple_parameter_declared_here_1348\",\"Non-simple parameter declared here.\"),use_strict_directive_used_here:r(1349,1,\"use_strict_directive_used_here_1349\",\"'use strict' directive used here.\"),Print_the_final_configuration_instead_of_building:r(1350,3,\"Print_the_final_configuration_instead_of_building_1350\",\"Print the final configuration instead of building.\"),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:r(1351,1,\"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\",\"An identifier or keyword cannot immediately follow a numeric literal.\"),A_bigint_literal_cannot_use_exponential_notation:r(1352,1,\"A_bigint_literal_cannot_use_exponential_notation_1352\",\"A bigint literal cannot use exponential notation.\"),A_bigint_literal_must_be_an_integer:r(1353,1,\"A_bigint_literal_must_be_an_integer_1353\",\"A bigint literal must be an integer.\"),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:r(1354,1,\"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\",\"'readonly' type modifier is only permitted on array and tuple literal types.\"),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:r(1355,1,\"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\",\"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),Did_you_mean_to_mark_this_function_as_async:r(1356,1,\"Did_you_mean_to_mark_this_function_as_async_1356\",\"Did you mean to mark this function as 'async'?\"),An_enum_member_name_must_be_followed_by_a_or:r(1357,1,\"An_enum_member_name_must_be_followed_by_a_or_1357\",\"An enum member name must be followed by a ',', '=', or '}'.\"),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:r(1358,1,\"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\",\"Tagged template expressions are not permitted in an optional chain.\"),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:r(1359,1,\"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\",\"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),Type_0_does_not_satisfy_the_expected_type_1:r(1360,1,\"Type_0_does_not_satisfy_the_expected_type_1_1360\",\"Type '{0}' does not satisfy the expected type '{1}'.\"),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:r(1361,1,\"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361\",\"'{0}' cannot be used as a value because it was imported using 'import type'.\"),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:r(1362,1,\"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362\",\"'{0}' cannot be used as a value because it was exported using 'export type'.\"),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:r(1363,1,\"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363\",\"A type-only import can specify a default import or named bindings, but not both.\"),Convert_to_type_only_export:r(1364,3,\"Convert_to_type_only_export_1364\",\"Convert to type-only export\"),Convert_all_re_exported_types_to_type_only_exports:r(1365,3,\"Convert_all_re_exported_types_to_type_only_exports_1365\",\"Convert all re-exported types to type-only exports\"),Split_into_two_separate_import_declarations:r(1366,3,\"Split_into_two_separate_import_declarations_1366\",\"Split into two separate import declarations\"),Split_all_invalid_type_only_imports:r(1367,3,\"Split_all_invalid_type_only_imports_1367\",\"Split all invalid type-only imports\"),Class_constructor_may_not_be_a_generator:r(1368,1,\"Class_constructor_may_not_be_a_generator_1368\",\"Class constructor may not be a generator.\"),Did_you_mean_0:r(1369,3,\"Did_you_mean_0_1369\",\"Did you mean '{0}'?\"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:r(1375,1,\"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375\",\"'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),_0_was_imported_here:r(1376,3,\"_0_was_imported_here_1376\",\"'{0}' was imported here.\"),_0_was_exported_here:r(1377,3,\"_0_was_exported_here_1377\",\"'{0}' was exported here.\"),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:r(1378,1,\"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378\",\"Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:r(1379,1,\"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379\",\"An import alias cannot reference a declaration that was exported using 'export type'.\"),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:r(1380,1,\"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380\",\"An import alias cannot reference a declaration that was imported using 'import type'.\"),Unexpected_token_Did_you_mean_or_rbrace:r(1381,1,\"Unexpected_token_Did_you_mean_or_rbrace_1381\",\"Unexpected token. Did you mean `{'}'}` or `}`?\"),Unexpected_token_Did_you_mean_or_gt:r(1382,1,\"Unexpected_token_Did_you_mean_or_gt_1382\",\"Unexpected token. Did you mean `{'>'}` or `>`?\"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:r(1385,1,\"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385\",\"Function type notation must be parenthesized when used in a union type.\"),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:r(1386,1,\"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386\",\"Constructor type notation must be parenthesized when used in a union type.\"),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:r(1387,1,\"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387\",\"Function type notation must be parenthesized when used in an intersection type.\"),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:r(1388,1,\"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388\",\"Constructor type notation must be parenthesized when used in an intersection type.\"),_0_is_not_allowed_as_a_variable_declaration_name:r(1389,1,\"_0_is_not_allowed_as_a_variable_declaration_name_1389\",\"'{0}' is not allowed as a variable declaration name.\"),_0_is_not_allowed_as_a_parameter_name:r(1390,1,\"_0_is_not_allowed_as_a_parameter_name_1390\",\"'{0}' is not allowed as a parameter name.\"),An_import_alias_cannot_use_import_type:r(1392,1,\"An_import_alias_cannot_use_import_type_1392\",\"An import alias cannot use 'import type'\"),Imported_via_0_from_file_1:r(1393,3,\"Imported_via_0_from_file_1_1393\",\"Imported via {0} from file '{1}'\"),Imported_via_0_from_file_1_with_packageId_2:r(1394,3,\"Imported_via_0_from_file_1_with_packageId_2_1394\",\"Imported via {0} from file '{1}' with packageId '{2}'\"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:r(1395,3,\"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395\",\"Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions\"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:r(1396,3,\"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396\",\"Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions\"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:r(1397,3,\"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397\",\"Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions\"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:r(1398,3,\"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398\",\"Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions\"),File_is_included_via_import_here:r(1399,3,\"File_is_included_via_import_here_1399\",\"File is included via import here.\"),Referenced_via_0_from_file_1:r(1400,3,\"Referenced_via_0_from_file_1_1400\",\"Referenced via '{0}' from file '{1}'\"),File_is_included_via_reference_here:r(1401,3,\"File_is_included_via_reference_here_1401\",\"File is included via reference here.\"),Type_library_referenced_via_0_from_file_1:r(1402,3,\"Type_library_referenced_via_0_from_file_1_1402\",\"Type library referenced via '{0}' from file '{1}'\"),Type_library_referenced_via_0_from_file_1_with_packageId_2:r(1403,3,\"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403\",\"Type library referenced via '{0}' from file '{1}' with packageId '{2}'\"),File_is_included_via_type_library_reference_here:r(1404,3,\"File_is_included_via_type_library_reference_here_1404\",\"File is included via type library reference here.\"),Library_referenced_via_0_from_file_1:r(1405,3,\"Library_referenced_via_0_from_file_1_1405\",\"Library referenced via '{0}' from file '{1}'\"),File_is_included_via_library_reference_here:r(1406,3,\"File_is_included_via_library_reference_here_1406\",\"File is included via library reference here.\"),Matched_by_include_pattern_0_in_1:r(1407,3,\"Matched_by_include_pattern_0_in_1_1407\",\"Matched by include pattern '{0}' in '{1}'\"),File_is_matched_by_include_pattern_specified_here:r(1408,3,\"File_is_matched_by_include_pattern_specified_here_1408\",\"File is matched by include pattern specified here.\"),Part_of_files_list_in_tsconfig_json:r(1409,3,\"Part_of_files_list_in_tsconfig_json_1409\",\"Part of 'files' list in tsconfig.json\"),File_is_matched_by_files_list_specified_here:r(1410,3,\"File_is_matched_by_files_list_specified_here_1410\",\"File is matched by 'files' list specified here.\"),Output_from_referenced_project_0_included_because_1_specified:r(1411,3,\"Output_from_referenced_project_0_included_because_1_specified_1411\",\"Output from referenced project '{0}' included because '{1}' specified\"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:r(1412,3,\"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412\",\"Output from referenced project '{0}' included because '--module' is specified as 'none'\"),File_is_output_from_referenced_project_specified_here:r(1413,3,\"File_is_output_from_referenced_project_specified_here_1413\",\"File is output from referenced project specified here.\"),Source_from_referenced_project_0_included_because_1_specified:r(1414,3,\"Source_from_referenced_project_0_included_because_1_specified_1414\",\"Source from referenced project '{0}' included because '{1}' specified\"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:r(1415,3,\"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415\",\"Source from referenced project '{0}' included because '--module' is specified as 'none'\"),File_is_source_from_referenced_project_specified_here:r(1416,3,\"File_is_source_from_referenced_project_specified_here_1416\",\"File is source from referenced project specified here.\"),Entry_point_of_type_library_0_specified_in_compilerOptions:r(1417,3,\"Entry_point_of_type_library_0_specified_in_compilerOptions_1417\",\"Entry point of type library '{0}' specified in compilerOptions\"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:r(1418,3,\"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418\",\"Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'\"),File_is_entry_point_of_type_library_specified_here:r(1419,3,\"File_is_entry_point_of_type_library_specified_here_1419\",\"File is entry point of type library specified here.\"),Entry_point_for_implicit_type_library_0:r(1420,3,\"Entry_point_for_implicit_type_library_0_1420\",\"Entry point for implicit type library '{0}'\"),Entry_point_for_implicit_type_library_0_with_packageId_1:r(1421,3,\"Entry_point_for_implicit_type_library_0_with_packageId_1_1421\",\"Entry point for implicit type library '{0}' with packageId '{1}'\"),Library_0_specified_in_compilerOptions:r(1422,3,\"Library_0_specified_in_compilerOptions_1422\",\"Library '{0}' specified in compilerOptions\"),File_is_library_specified_here:r(1423,3,\"File_is_library_specified_here_1423\",\"File is library specified here.\"),Default_library:r(1424,3,\"Default_library_1424\",\"Default library\"),Default_library_for_target_0:r(1425,3,\"Default_library_for_target_0_1425\",\"Default library for target '{0}'\"),File_is_default_library_for_target_specified_here:r(1426,3,\"File_is_default_library_for_target_specified_here_1426\",\"File is default library for target specified here.\"),Root_file_specified_for_compilation:r(1427,3,\"Root_file_specified_for_compilation_1427\",\"Root file specified for compilation\"),File_is_output_of_project_reference_source_0:r(1428,3,\"File_is_output_of_project_reference_source_0_1428\",\"File is output of project reference source '{0}'\"),File_redirects_to_file_0:r(1429,3,\"File_redirects_to_file_0_1429\",\"File redirects to file '{0}'\"),The_file_is_in_the_program_because_Colon:r(1430,3,\"The_file_is_in_the_program_because_Colon_1430\",\"The file is in the program because:\"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:r(1431,1,\"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431\",\"'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:r(1432,1,\"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432\",\"Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters:r(1433,1,\"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433\",\"Neither decorators nor modifiers may be applied to 'this' parameters.\"),Unexpected_keyword_or_identifier:r(1434,1,\"Unexpected_keyword_or_identifier_1434\",\"Unexpected keyword or identifier.\"),Unknown_keyword_or_identifier_Did_you_mean_0:r(1435,1,\"Unknown_keyword_or_identifier_Did_you_mean_0_1435\",\"Unknown keyword or identifier. Did you mean '{0}'?\"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:r(1436,1,\"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436\",\"Decorators must precede the name and all keywords of property declarations.\"),Namespace_must_be_given_a_name:r(1437,1,\"Namespace_must_be_given_a_name_1437\",\"Namespace must be given a name.\"),Interface_must_be_given_a_name:r(1438,1,\"Interface_must_be_given_a_name_1438\",\"Interface must be given a name.\"),Type_alias_must_be_given_a_name:r(1439,1,\"Type_alias_must_be_given_a_name_1439\",\"Type alias must be given a name.\"),Variable_declaration_not_allowed_at_this_location:r(1440,1,\"Variable_declaration_not_allowed_at_this_location_1440\",\"Variable declaration not allowed at this location.\"),Cannot_start_a_function_call_in_a_type_annotation:r(1441,1,\"Cannot_start_a_function_call_in_a_type_annotation_1441\",\"Cannot start a function call in a type annotation.\"),Expected_for_property_initializer:r(1442,1,\"Expected_for_property_initializer_1442\",\"Expected '=' for property initializer.\"),Module_declaration_names_may_only_use_or_quoted_strings:r(1443,1,\"Module_declaration_names_may_only_use_or_quoted_strings_1443\",`Module declaration names may only use ' or \" quoted strings.`),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled:r(1448,1,\"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448\",\"'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled.\"),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:r(1449,3,\"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449\",\"Preserve unused imported values in the JavaScript output that would otherwise be removed.\"),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments:r(1450,3,\"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450\",\"Dynamic imports can only accept a module specifier and an optional set of attributes as arguments\"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:r(1451,1,\"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451\",\"Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression\"),resolution_mode_should_be_either_require_or_import:r(1453,1,\"resolution_mode_should_be_either_require_or_import_1453\",\"`resolution-mode` should be either `require` or `import`.\"),resolution_mode_can_only_be_set_for_type_only_imports:r(1454,1,\"resolution_mode_can_only_be_set_for_type_only_imports_1454\",\"`resolution-mode` can only be set for type-only imports.\"),resolution_mode_is_the_only_valid_key_for_type_import_assertions:r(1455,1,\"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455\",\"`resolution-mode` is the only valid key for type import assertions.\"),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:r(1456,1,\"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456\",\"Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.\"),Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:r(1457,3,\"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457\",\"Matched by default include pattern '**/*'\"),File_is_ECMAScript_module_because_0_has_field_type_with_value_module:r(1458,3,\"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458\",`File is ECMAScript module because '{0}' has field \"type\" with value \"module\"`),File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:r(1459,3,\"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459\",`File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\"`),File_is_CommonJS_module_because_0_does_not_have_field_type:r(1460,3,\"File_is_CommonJS_module_because_0_does_not_have_field_type_1460\",`File is CommonJS module because '{0}' does not have field \"type\"`),File_is_CommonJS_module_because_package_json_was_not_found:r(1461,3,\"File_is_CommonJS_module_because_package_json_was_not_found_1461\",\"File is CommonJS module because 'package.json' was not found\"),resolution_mode_is_the_only_valid_key_for_type_import_attributes:r(1463,1,\"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463\",\"'resolution-mode' is the only valid key for type import attributes.\"),Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:r(1464,1,\"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464\",\"Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'.\"),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:r(1470,1,\"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470\",\"The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.\"),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead:r(1471,1,\"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471\",\"Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead.\"),catch_or_finally_expected:r(1472,1,\"catch_or_finally_expected_1472\",\"'catch' or 'finally' expected.\"),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:r(1473,1,\"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473\",\"An import declaration can only be used at the top level of a module.\"),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:r(1474,1,\"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474\",\"An export declaration can only be used at the top level of a module.\"),Control_what_method_is_used_to_detect_module_format_JS_files:r(1475,3,\"Control_what_method_is_used_to_detect_module_format_JS_files_1475\",\"Control what method is used to detect module-format JS files.\"),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:r(1476,3,\"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476\",'\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),An_instantiation_expression_cannot_be_followed_by_a_property_access:r(1477,1,\"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477\",\"An instantiation expression cannot be followed by a property access.\"),Identifier_or_string_literal_expected:r(1478,1,\"Identifier_or_string_literal_expected_1478\",\"Identifier or string literal expected.\"),The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead:r(1479,1,\"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479\",`The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead.`),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module:r(1480,3,\"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480\",'To convert this file to an ECMAScript module, change its file extension to \\'{0}\\' or create a local package.json file with `{ \"type\": \"module\" }`.'),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1:r(1481,3,\"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481\",`To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \\`\"type\": \"module\"\\` to '{1}'.`),To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0:r(1482,3,\"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482\",'To convert this file to an ECMAScript module, add the field `\"type\": \"module\"` to \\'{0}\\'.'),To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module:r(1483,3,\"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483\",'To convert this file to an ECMAScript module, create a local package.json file with `{ \"type\": \"module\" }`.'),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:r(1484,1,\"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484\",\"'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.\"),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:r(1485,1,\"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485\",\"'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.\"),Decorator_used_before_export_here:r(1486,1,\"Decorator_used_before_export_here_1486\",\"Decorator used before 'export' here.\"),Octal_escape_sequences_are_not_allowed_Use_the_syntax_0:r(1487,1,\"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487\",\"Octal escape sequences are not allowed. Use the syntax '{0}'.\"),Escape_sequence_0_is_not_allowed:r(1488,1,\"Escape_sequence_0_is_not_allowed_1488\",\"Escape sequence '{0}' is not allowed.\"),Decimals_with_leading_zeros_are_not_allowed:r(1489,1,\"Decimals_with_leading_zeros_are_not_allowed_1489\",\"Decimals with leading zeros are not allowed.\"),File_appears_to_be_binary:r(1490,1,\"File_appears_to_be_binary_1490\",\"File appears to be binary.\"),_0_modifier_cannot_appear_on_a_using_declaration:r(1491,1,\"_0_modifier_cannot_appear_on_a_using_declaration_1491\",\"'{0}' modifier cannot appear on a 'using' declaration.\"),_0_declarations_may_not_have_binding_patterns:r(1492,1,\"_0_declarations_may_not_have_binding_patterns_1492\",\"'{0}' declarations may not have binding patterns.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:r(1493,1,\"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493\",\"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration:r(1494,1,\"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494\",\"The left-hand side of a 'for...in' statement cannot be an 'await using' declaration.\"),_0_modifier_cannot_appear_on_an_await_using_declaration:r(1495,1,\"_0_modifier_cannot_appear_on_an_await_using_declaration_1495\",\"'{0}' modifier cannot appear on an 'await using' declaration.\"),Identifier_string_literal_or_number_literal_expected:r(1496,1,\"Identifier_string_literal_or_number_literal_expected_1496\",\"Identifier, string literal, or number literal expected.\"),Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator:r(1497,1,\"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497\",\"Expression must be enclosed in parentheses to be used as a decorator.\"),Invalid_syntax_in_decorator:r(1498,1,\"Invalid_syntax_in_decorator_1498\",\"Invalid syntax in decorator.\"),Unknown_regular_expression_flag:r(1499,1,\"Unknown_regular_expression_flag_1499\",\"Unknown regular expression flag.\"),Duplicate_regular_expression_flag:r(1500,1,\"Duplicate_regular_expression_flag_1500\",\"Duplicate regular expression flag.\"),This_regular_expression_flag_is_only_available_when_targeting_0_or_later:r(1501,1,\"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501\",\"This regular expression flag is only available when targeting '{0}' or later.\"),The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously:r(1502,1,\"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502\",\"The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.\"),Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later:r(1503,1,\"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503\",\"Named capturing groups are only available when targeting 'ES2018' or later.\"),Subpattern_flags_must_be_present_when_there_is_a_minus_sign:r(1504,1,\"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504\",\"Subpattern flags must be present when there is a minus sign.\"),Incomplete_quantifier_Digit_expected:r(1505,1,\"Incomplete_quantifier_Digit_expected_1505\",\"Incomplete quantifier. Digit expected.\"),Numbers_out_of_order_in_quantifier:r(1506,1,\"Numbers_out_of_order_in_quantifier_1506\",\"Numbers out of order in quantifier.\"),There_is_nothing_available_for_repetition:r(1507,1,\"There_is_nothing_available_for_repetition_1507\",\"There is nothing available for repetition.\"),Unexpected_0_Did_you_mean_to_escape_it_with_backslash:r(1508,1,\"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508\",\"Unexpected '{0}'. Did you mean to escape it with backslash?\"),This_regular_expression_flag_cannot_be_toggled_within_a_subpattern:r(1509,1,\"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509\",\"This regular expression flag cannot be toggled within a subpattern.\"),k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets:r(1510,1,\"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510\",\"'\\\\k' must be followed by a capturing group name enclosed in angle brackets.\"),q_is_only_available_inside_character_class:r(1511,1,\"q_is_only_available_inside_character_class_1511\",\"'\\\\q' is only available inside character class.\"),c_must_be_followed_by_an_ASCII_letter:r(1512,1,\"c_must_be_followed_by_an_ASCII_letter_1512\",\"'\\\\c' must be followed by an ASCII letter.\"),Undetermined_character_escape:r(1513,1,\"Undetermined_character_escape_1513\",\"Undetermined character escape.\"),Expected_a_capturing_group_name:r(1514,1,\"Expected_a_capturing_group_name_1514\",\"Expected a capturing group name.\"),Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other:r(1515,1,\"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515\",\"Named capturing groups with the same name must be mutually exclusive to each other.\"),A_character_class_range_must_not_be_bounded_by_another_character_class:r(1516,1,\"A_character_class_range_must_not_be_bounded_by_another_character_class_1516\",\"A character class range must not be bounded by another character class.\"),Range_out_of_order_in_character_class:r(1517,1,\"Range_out_of_order_in_character_class_1517\",\"Range out of order in character class.\"),Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class:r(1518,1,\"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518\",\"Anything that would possibly match more than a single character is invalid inside a negated character class.\"),Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead:r(1519,1,\"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519\",\"Operators must not be mixed within a character class. Wrap it in a nested class instead.\"),Expected_a_class_set_operand:r(1520,1,\"Expected_a_class_set_operand_1520\",\"Expected a class set operand.\"),q_must_be_followed_by_string_alternatives_enclosed_in_braces:r(1521,1,\"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521\",\"'\\\\q' must be followed by string alternatives enclosed in braces.\"),A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash:r(1522,1,\"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522\",\"A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?\"),Expected_a_Unicode_property_name:r(1523,1,\"Expected_a_Unicode_property_name_1523\",\"Expected a Unicode property name.\"),Unknown_Unicode_property_name:r(1524,1,\"Unknown_Unicode_property_name_1524\",\"Unknown Unicode property name.\"),Expected_a_Unicode_property_value:r(1525,1,\"Expected_a_Unicode_property_value_1525\",\"Expected a Unicode property value.\"),Unknown_Unicode_property_value:r(1526,1,\"Unknown_Unicode_property_value_1526\",\"Unknown Unicode property value.\"),Expected_a_Unicode_property_name_or_value:r(1527,1,\"Expected_a_Unicode_property_name_or_value_1527\",\"Expected a Unicode property name or value.\"),Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set:r(1528,1,\"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528\",\"Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.\"),Unknown_Unicode_property_name_or_value:r(1529,1,\"Unknown_Unicode_property_name_or_value_1529\",\"Unknown Unicode property name or value.\"),Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:r(1530,1,\"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530\",\"Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.\"),_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces:r(1531,1,\"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531\",\"'\\\\{0}' must be followed by a Unicode property value expression enclosed in braces.\"),There_is_no_capturing_group_named_0_in_this_regular_expression:r(1532,1,\"There_is_no_capturing_group_named_0_in_this_regular_expression_1532\",\"There is no capturing group named '{0}' in this regular expression.\"),This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression:r(1533,1,\"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533\",\"This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression.\"),This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression:r(1534,1,\"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534\",\"This backreference refers to a group that does not exist. There are no capturing groups in this regular expression.\"),This_character_cannot_be_escaped_in_a_regular_expression:r(1535,1,\"This_character_cannot_be_escaped_in_a_regular_expression_1535\",\"This character cannot be escaped in a regular expression.\"),Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead:r(1536,1,\"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536\",\"Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead.\"),Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class:r(1537,1,\"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537\",\"Decimal escape sequences and backreferences are not allowed in a character class.\"),Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:r(1538,1,\"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538\",\"Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.\"),A_bigint_literal_cannot_be_used_as_a_property_name:r(1539,1,\"A_bigint_literal_cannot_be_used_as_a_property_name_1539\",\"A 'bigint' literal cannot be used as a property name.\"),A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead:r(1540,2,\"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540\",\"A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.\",void 0,void 0,!0),Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:r(1541,1,\"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541\",\"Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.\"),Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:r(1542,1,\"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542\",\"Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.\"),Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0:r(1543,1,\"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543\",`Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'.`),Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0:r(1544,1,\"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544\",\"Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'.\"),The_types_of_0_are_incompatible_between_these_types:r(2200,1,\"The_types_of_0_are_incompatible_between_these_types_2200\",\"The types of '{0}' are incompatible between these types.\"),The_types_returned_by_0_are_incompatible_between_these_types:r(2201,1,\"The_types_returned_by_0_are_incompatible_between_these_types_2201\",\"The types returned by '{0}' are incompatible between these types.\"),Call_signature_return_types_0_and_1_are_incompatible:r(2202,1,\"Call_signature_return_types_0_and_1_are_incompatible_2202\",\"Call signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:r(2203,1,\"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\"Construct signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:r(2204,1,\"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:r(2205,1,\"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:r(2206,1,\"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206\",\"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:r(2207,1,\"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207\",\"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),This_type_parameter_might_need_an_extends_0_constraint:r(2208,1,\"This_type_parameter_might_need_an_extends_0_constraint_2208\",\"This type parameter might need an `extends {0}` constraint.\"),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:r(2209,1,\"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209\",\"The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:r(2210,1,\"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210\",\"The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),Add_extends_constraint:r(2211,3,\"Add_extends_constraint_2211\",\"Add `extends` constraint.\"),Add_extends_constraint_to_all_type_parameters:r(2212,3,\"Add_extends_constraint_to_all_type_parameters_2212\",\"Add `extends` constraint to all type parameters\"),Duplicate_identifier_0:r(2300,1,\"Duplicate_identifier_0_2300\",\"Duplicate identifier '{0}'.\"),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:r(2301,1,\"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\",\"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),Static_members_cannot_reference_class_type_parameters:r(2302,1,\"Static_members_cannot_reference_class_type_parameters_2302\",\"Static members cannot reference class type parameters.\"),Circular_definition_of_import_alias_0:r(2303,1,\"Circular_definition_of_import_alias_0_2303\",\"Circular definition of import alias '{0}'.\"),Cannot_find_name_0:r(2304,1,\"Cannot_find_name_0_2304\",\"Cannot find name '{0}'.\"),Module_0_has_no_exported_member_1:r(2305,1,\"Module_0_has_no_exported_member_1_2305\",\"Module '{0}' has no exported member '{1}'.\"),File_0_is_not_a_module:r(2306,1,\"File_0_is_not_a_module_2306\",\"File '{0}' is not a module.\"),Cannot_find_module_0_or_its_corresponding_type_declarations:r(2307,1,\"Cannot_find_module_0_or_its_corresponding_type_declarations_2307\",\"Cannot find module '{0}' or its corresponding type declarations.\"),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:r(2308,1,\"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\",\"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:r(2309,1,\"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\",\"An export assignment cannot be used in a module with other exported elements.\"),Type_0_recursively_references_itself_as_a_base_type:r(2310,1,\"Type_0_recursively_references_itself_as_a_base_type_2310\",\"Type '{0}' recursively references itself as a base type.\"),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:r(2311,1,\"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311\",\"Cannot find name '{0}'. Did you mean to write this in an async function?\"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:r(2312,1,\"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\",\"An interface can only extend an object type or intersection of object types with statically known members.\"),Type_parameter_0_has_a_circular_constraint:r(2313,1,\"Type_parameter_0_has_a_circular_constraint_2313\",\"Type parameter '{0}' has a circular constraint.\"),Generic_type_0_requires_1_type_argument_s:r(2314,1,\"Generic_type_0_requires_1_type_argument_s_2314\",\"Generic type '{0}' requires {1} type argument(s).\"),Type_0_is_not_generic:r(2315,1,\"Type_0_is_not_generic_2315\",\"Type '{0}' is not generic.\"),Global_type_0_must_be_a_class_or_interface_type:r(2316,1,\"Global_type_0_must_be_a_class_or_interface_type_2316\",\"Global type '{0}' must be a class or interface type.\"),Global_type_0_must_have_1_type_parameter_s:r(2317,1,\"Global_type_0_must_have_1_type_parameter_s_2317\",\"Global type '{0}' must have {1} type parameter(s).\"),Cannot_find_global_type_0:r(2318,1,\"Cannot_find_global_type_0_2318\",\"Cannot find global type '{0}'.\"),Named_property_0_of_types_1_and_2_are_not_identical:r(2319,1,\"Named_property_0_of_types_1_and_2_are_not_identical_2319\",\"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),Interface_0_cannot_simultaneously_extend_types_1_and_2:r(2320,1,\"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\",\"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),Excessive_stack_depth_comparing_types_0_and_1:r(2321,1,\"Excessive_stack_depth_comparing_types_0_and_1_2321\",\"Excessive stack depth comparing types '{0}' and '{1}'.\"),Type_0_is_not_assignable_to_type_1:r(2322,1,\"Type_0_is_not_assignable_to_type_1_2322\",\"Type '{0}' is not assignable to type '{1}'.\"),Cannot_redeclare_exported_variable_0:r(2323,1,\"Cannot_redeclare_exported_variable_0_2323\",\"Cannot redeclare exported variable '{0}'.\"),Property_0_is_missing_in_type_1:r(2324,1,\"Property_0_is_missing_in_type_1_2324\",\"Property '{0}' is missing in type '{1}'.\"),Property_0_is_private_in_type_1_but_not_in_type_2:r(2325,1,\"Property_0_is_private_in_type_1_but_not_in_type_2_2325\",\"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),Types_of_property_0_are_incompatible:r(2326,1,\"Types_of_property_0_are_incompatible_2326\",\"Types of property '{0}' are incompatible.\"),Property_0_is_optional_in_type_1_but_required_in_type_2:r(2327,1,\"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\",\"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),Types_of_parameters_0_and_1_are_incompatible:r(2328,1,\"Types_of_parameters_0_and_1_are_incompatible_2328\",\"Types of parameters '{0}' and '{1}' are incompatible.\"),Index_signature_for_type_0_is_missing_in_type_1:r(2329,1,\"Index_signature_for_type_0_is_missing_in_type_1_2329\",\"Index signature for type '{0}' is missing in type '{1}'.\"),_0_and_1_index_signatures_are_incompatible:r(2330,1,\"_0_and_1_index_signatures_are_incompatible_2330\",\"'{0}' and '{1}' index signatures are incompatible.\"),this_cannot_be_referenced_in_a_module_or_namespace_body:r(2331,1,\"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\",\"'this' cannot be referenced in a module or namespace body.\"),this_cannot_be_referenced_in_current_location:r(2332,1,\"this_cannot_be_referenced_in_current_location_2332\",\"'this' cannot be referenced in current location.\"),this_cannot_be_referenced_in_a_static_property_initializer:r(2334,1,\"this_cannot_be_referenced_in_a_static_property_initializer_2334\",\"'this' cannot be referenced in a static property initializer.\"),super_can_only_be_referenced_in_a_derived_class:r(2335,1,\"super_can_only_be_referenced_in_a_derived_class_2335\",\"'super' can only be referenced in a derived class.\"),super_cannot_be_referenced_in_constructor_arguments:r(2336,1,\"super_cannot_be_referenced_in_constructor_arguments_2336\",\"'super' cannot be referenced in constructor arguments.\"),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:r(2337,1,\"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\",\"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:r(2338,1,\"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\",\"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),Property_0_does_not_exist_on_type_1:r(2339,1,\"Property_0_does_not_exist_on_type_1_2339\",\"Property '{0}' does not exist on type '{1}'.\"),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:r(2340,1,\"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\",\"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),Property_0_is_private_and_only_accessible_within_class_1:r(2341,1,\"Property_0_is_private_and_only_accessible_within_class_1_2341\",\"Property '{0}' is private and only accessible within class '{1}'.\"),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:r(2343,1,\"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\",\"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),Type_0_does_not_satisfy_the_constraint_1:r(2344,1,\"Type_0_does_not_satisfy_the_constraint_1_2344\",\"Type '{0}' does not satisfy the constraint '{1}'.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:r(2345,1,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\",\"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),Untyped_function_calls_may_not_accept_type_arguments:r(2347,1,\"Untyped_function_calls_may_not_accept_type_arguments_2347\",\"Untyped function calls may not accept type arguments.\"),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:r(2348,1,\"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\",\"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),This_expression_is_not_callable:r(2349,1,\"This_expression_is_not_callable_2349\",\"This expression is not callable.\"),Only_a_void_function_can_be_called_with_the_new_keyword:r(2350,1,\"Only_a_void_function_can_be_called_with_the_new_keyword_2350\",\"Only a void function can be called with the 'new' keyword.\"),This_expression_is_not_constructable:r(2351,1,\"This_expression_is_not_constructable_2351\",\"This expression is not constructable.\"),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:r(2352,1,\"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\",\"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:r(2353,1,\"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\",\"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:r(2354,1,\"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\",\"This syntax requires an imported helper but module '{0}' cannot be found.\"),A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value:r(2355,1,\"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355\",\"A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\"),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:r(2356,1,\"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\",\"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:r(2357,1,\"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\",\"The operand of an increment or decrement operator must be a variable or a property access.\"),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:r(2358,1,\"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\",\"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method:r(2359,1,\"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359\",\"The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method.\"),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:r(2362,1,\"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\",\"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:r(2363,1,\"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\",\"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:r(2364,1,\"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\",\"The left-hand side of an assignment expression must be a variable or a property access.\"),Operator_0_cannot_be_applied_to_types_1_and_2:r(2365,1,\"Operator_0_cannot_be_applied_to_types_1_and_2_2365\",\"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:r(2366,1,\"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\",\"Function lacks ending return statement and return type does not include 'undefined'.\"),This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap:r(2367,1,\"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367\",\"This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap.\"),Type_parameter_name_cannot_be_0:r(2368,1,\"Type_parameter_name_cannot_be_0_2368\",\"Type parameter name cannot be '{0}'.\"),A_parameter_property_is_only_allowed_in_a_constructor_implementation:r(2369,1,\"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\",\"A parameter property is only allowed in a constructor implementation.\"),A_rest_parameter_must_be_of_an_array_type:r(2370,1,\"A_rest_parameter_must_be_of_an_array_type_2370\",\"A rest parameter must be of an array type.\"),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:r(2371,1,\"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\",\"A parameter initializer is only allowed in a function or constructor implementation.\"),Parameter_0_cannot_reference_itself:r(2372,1,\"Parameter_0_cannot_reference_itself_2372\",\"Parameter '{0}' cannot reference itself.\"),Parameter_0_cannot_reference_identifier_1_declared_after_it:r(2373,1,\"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373\",\"Parameter '{0}' cannot reference identifier '{1}' declared after it.\"),Duplicate_index_signature_for_type_0:r(2374,1,\"Duplicate_index_signature_for_type_0_2374\",\"Duplicate index signature for type '{0}'.\"),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:r(2375,1,\"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375\",\"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:r(2376,1,\"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376\",\"A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.\"),Constructors_for_derived_classes_must_contain_a_super_call:r(2377,1,\"Constructors_for_derived_classes_must_contain_a_super_call_2377\",\"Constructors for derived classes must contain a 'super' call.\"),A_get_accessor_must_return_a_value:r(2378,1,\"A_get_accessor_must_return_a_value_2378\",\"A 'get' accessor must return a value.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:r(2379,1,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379\",\"Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),Overload_signatures_must_all_be_exported_or_non_exported:r(2383,1,\"Overload_signatures_must_all_be_exported_or_non_exported_2383\",\"Overload signatures must all be exported or non-exported.\"),Overload_signatures_must_all_be_ambient_or_non_ambient:r(2384,1,\"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\",\"Overload signatures must all be ambient or non-ambient.\"),Overload_signatures_must_all_be_public_private_or_protected:r(2385,1,\"Overload_signatures_must_all_be_public_private_or_protected_2385\",\"Overload signatures must all be public, private or protected.\"),Overload_signatures_must_all_be_optional_or_required:r(2386,1,\"Overload_signatures_must_all_be_optional_or_required_2386\",\"Overload signatures must all be optional or required.\"),Function_overload_must_be_static:r(2387,1,\"Function_overload_must_be_static_2387\",\"Function overload must be static.\"),Function_overload_must_not_be_static:r(2388,1,\"Function_overload_must_not_be_static_2388\",\"Function overload must not be static.\"),Function_implementation_name_must_be_0:r(2389,1,\"Function_implementation_name_must_be_0_2389\",\"Function implementation name must be '{0}'.\"),Constructor_implementation_is_missing:r(2390,1,\"Constructor_implementation_is_missing_2390\",\"Constructor implementation is missing.\"),Function_implementation_is_missing_or_not_immediately_following_the_declaration:r(2391,1,\"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\",\"Function implementation is missing or not immediately following the declaration.\"),Multiple_constructor_implementations_are_not_allowed:r(2392,1,\"Multiple_constructor_implementations_are_not_allowed_2392\",\"Multiple constructor implementations are not allowed.\"),Duplicate_function_implementation:r(2393,1,\"Duplicate_function_implementation_2393\",\"Duplicate function implementation.\"),This_overload_signature_is_not_compatible_with_its_implementation_signature:r(2394,1,\"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\",\"This overload signature is not compatible with its implementation signature.\"),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:r(2395,1,\"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\",\"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:r(2396,1,\"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\",\"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),Declaration_name_conflicts_with_built_in_global_identifier_0:r(2397,1,\"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\",\"Declaration name conflicts with built-in global identifier '{0}'.\"),constructor_cannot_be_used_as_a_parameter_property_name:r(2398,1,\"constructor_cannot_be_used_as_a_parameter_property_name_2398\",\"'constructor' cannot be used as a parameter property name.\"),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:r(2399,1,\"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\",\"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:r(2400,1,\"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\",\"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:r(2401,1,\"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401\",\"A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.\"),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:r(2402,1,\"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\",\"Expression resolves to '_super' that compiler uses to capture base class reference.\"),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:r(2403,1,\"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\",\"Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:r(2404,1,\"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\",\"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:r(2405,1,\"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\",\"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:r(2406,1,\"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\",\"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:r(2407,1,\"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\",\"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),Setters_cannot_return_a_value:r(2408,1,\"Setters_cannot_return_a_value_2408\",\"Setters cannot return a value.\"),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:r(2409,1,\"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\",\"Return type of constructor signature must be assignable to the instance type of the class.\"),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:r(2410,1,\"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\",\"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:r(2412,1,\"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412\",\"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.\"),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:r(2411,1,\"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411\",\"Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.\"),_0_index_type_1_is_not_assignable_to_2_index_type_3:r(2413,1,\"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413\",\"'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.\"),Class_name_cannot_be_0:r(2414,1,\"Class_name_cannot_be_0_2414\",\"Class name cannot be '{0}'.\"),Class_0_incorrectly_extends_base_class_1:r(2415,1,\"Class_0_incorrectly_extends_base_class_1_2415\",\"Class '{0}' incorrectly extends base class '{1}'.\"),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:r(2416,1,\"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\",\"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),Class_static_side_0_incorrectly_extends_base_class_static_side_1:r(2417,1,\"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\",\"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:r(2418,1,\"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\",\"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),Types_of_construct_signatures_are_incompatible:r(2419,1,\"Types_of_construct_signatures_are_incompatible_2419\",\"Types of construct signatures are incompatible.\"),Class_0_incorrectly_implements_interface_1:r(2420,1,\"Class_0_incorrectly_implements_interface_1_2420\",\"Class '{0}' incorrectly implements interface '{1}'.\"),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:r(2422,1,\"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\",\"A class can only implement an object type or intersection of object types with statically known members.\"),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:r(2423,1,\"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\",\"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:r(2425,1,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:r(2426,1,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),Interface_name_cannot_be_0:r(2427,1,\"Interface_name_cannot_be_0_2427\",\"Interface name cannot be '{0}'.\"),All_declarations_of_0_must_have_identical_type_parameters:r(2428,1,\"All_declarations_of_0_must_have_identical_type_parameters_2428\",\"All declarations of '{0}' must have identical type parameters.\"),Interface_0_incorrectly_extends_interface_1:r(2430,1,\"Interface_0_incorrectly_extends_interface_1_2430\",\"Interface '{0}' incorrectly extends interface '{1}'.\"),Enum_name_cannot_be_0:r(2431,1,\"Enum_name_cannot_be_0_2431\",\"Enum name cannot be '{0}'.\"),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:r(2432,1,\"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\",\"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:r(2433,1,\"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\",\"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:r(2434,1,\"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\",\"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:r(2435,1,\"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\",\"Ambient modules cannot be nested in other modules or namespaces.\"),Ambient_module_declaration_cannot_specify_relative_module_name:r(2436,1,\"Ambient_module_declaration_cannot_specify_relative_module_name_2436\",\"Ambient module declaration cannot specify relative module name.\"),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:r(2437,1,\"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\",\"Module '{0}' is hidden by a local declaration with the same name.\"),Import_name_cannot_be_0:r(2438,1,\"Import_name_cannot_be_0_2438\",\"Import name cannot be '{0}'.\"),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:r(2439,1,\"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\",\"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),Import_declaration_conflicts_with_local_declaration_of_0:r(2440,1,\"Import_declaration_conflicts_with_local_declaration_of_0_2440\",\"Import declaration conflicts with local declaration of '{0}'.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:r(2441,1,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),Types_have_separate_declarations_of_a_private_property_0:r(2442,1,\"Types_have_separate_declarations_of_a_private_property_0_2442\",\"Types have separate declarations of a private property '{0}'.\"),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:r(2443,1,\"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\",\"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),Property_0_is_protected_in_type_1_but_public_in_type_2:r(2444,1,\"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\",\"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:r(2445,1,\"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\",\"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:r(2446,1,\"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446\",\"Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.\"),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:r(2447,1,\"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\",\"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),Block_scoped_variable_0_used_before_its_declaration:r(2448,1,\"Block_scoped_variable_0_used_before_its_declaration_2448\",\"Block-scoped variable '{0}' used before its declaration.\"),Class_0_used_before_its_declaration:r(2449,1,\"Class_0_used_before_its_declaration_2449\",\"Class '{0}' used before its declaration.\"),Enum_0_used_before_its_declaration:r(2450,1,\"Enum_0_used_before_its_declaration_2450\",\"Enum '{0}' used before its declaration.\"),Cannot_redeclare_block_scoped_variable_0:r(2451,1,\"Cannot_redeclare_block_scoped_variable_0_2451\",\"Cannot redeclare block-scoped variable '{0}'.\"),An_enum_member_cannot_have_a_numeric_name:r(2452,1,\"An_enum_member_cannot_have_a_numeric_name_2452\",\"An enum member cannot have a numeric name.\"),Variable_0_is_used_before_being_assigned:r(2454,1,\"Variable_0_is_used_before_being_assigned_2454\",\"Variable '{0}' is used before being assigned.\"),Type_alias_0_circularly_references_itself:r(2456,1,\"Type_alias_0_circularly_references_itself_2456\",\"Type alias '{0}' circularly references itself.\"),Type_alias_name_cannot_be_0:r(2457,1,\"Type_alias_name_cannot_be_0_2457\",\"Type alias name cannot be '{0}'.\"),An_AMD_module_cannot_have_multiple_name_assignments:r(2458,1,\"An_AMD_module_cannot_have_multiple_name_assignments_2458\",\"An AMD module cannot have multiple name assignments.\"),Module_0_declares_1_locally_but_it_is_not_exported:r(2459,1,\"Module_0_declares_1_locally_but_it_is_not_exported_2459\",\"Module '{0}' declares '{1}' locally, but it is not exported.\"),Module_0_declares_1_locally_but_it_is_exported_as_2:r(2460,1,\"Module_0_declares_1_locally_but_it_is_exported_as_2_2460\",\"Module '{0}' declares '{1}' locally, but it is exported as '{2}'.\"),Type_0_is_not_an_array_type:r(2461,1,\"Type_0_is_not_an_array_type_2461\",\"Type '{0}' is not an array type.\"),A_rest_element_must_be_last_in_a_destructuring_pattern:r(2462,1,\"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\",\"A rest element must be last in a destructuring pattern.\"),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:r(2463,1,\"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\",\"A binding pattern parameter cannot be optional in an implementation signature.\"),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:r(2464,1,\"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\",\"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),this_cannot_be_referenced_in_a_computed_property_name:r(2465,1,\"this_cannot_be_referenced_in_a_computed_property_name_2465\",\"'this' cannot be referenced in a computed property name.\"),super_cannot_be_referenced_in_a_computed_property_name:r(2466,1,\"super_cannot_be_referenced_in_a_computed_property_name_2466\",\"'super' cannot be referenced in a computed property name.\"),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:r(2467,1,\"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\",\"A computed property name cannot reference a type parameter from its containing type.\"),Cannot_find_global_value_0:r(2468,1,\"Cannot_find_global_value_0_2468\",\"Cannot find global value '{0}'.\"),The_0_operator_cannot_be_applied_to_type_symbol:r(2469,1,\"The_0_operator_cannot_be_applied_to_type_symbol_2469\",\"The '{0}' operator cannot be applied to type 'symbol'.\"),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:r(2472,1,\"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\",\"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),Enum_declarations_must_all_be_const_or_non_const:r(2473,1,\"Enum_declarations_must_all_be_const_or_non_const_2473\",\"Enum declarations must all be const or non-const.\"),const_enum_member_initializers_must_be_constant_expressions:r(2474,1,\"const_enum_member_initializers_must_be_constant_expressions_2474\",\"const enum member initializers must be constant expressions.\"),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:r(2475,1,\"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\",\"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),A_const_enum_member_can_only_be_accessed_using_a_string_literal:r(2476,1,\"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\",\"A const enum member can only be accessed using a string literal.\"),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:r(2477,1,\"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\",\"'const' enum member initializer was evaluated to a non-finite value.\"),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:r(2478,1,\"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\",\"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:r(2480,1,\"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\",\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:r(2481,1,\"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\",\"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:r(2483,1,\"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\",\"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),Export_declaration_conflicts_with_exported_declaration_of_0:r(2484,1,\"Export_declaration_conflicts_with_exported_declaration_of_0_2484\",\"Export declaration conflicts with exported declaration of '{0}'.\"),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:r(2487,1,\"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\",\"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:r(2488,1,\"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\",\"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),An_iterator_must_have_a_next_method:r(2489,1,\"An_iterator_must_have_a_next_method_2489\",\"An iterator must have a 'next()' method.\"),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:r(2490,1,\"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\",\"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:r(2491,1,\"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\",\"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),Cannot_redeclare_identifier_0_in_catch_clause:r(2492,1,\"Cannot_redeclare_identifier_0_in_catch_clause_2492\",\"Cannot redeclare identifier '{0}' in catch clause.\"),Tuple_type_0_of_length_1_has_no_element_at_index_2:r(2493,1,\"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\",\"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:r(2494,1,\"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\",\"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),Type_0_is_not_an_array_type_or_a_string_type:r(2495,1,\"Type_0_is_not_an_array_type_or_a_string_type_2495\",\"Type '{0}' is not an array type or a string type.\"),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression:r(2496,1,\"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496\",\"The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression.\"),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:r(2497,1,\"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\",\"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:r(2498,1,\"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\",\"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:r(2499,1,\"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\",\"An interface can only extend an identifier/qualified-name with optional type arguments.\"),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:r(2500,1,\"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\",\"A class can only implement an identifier/qualified-name with optional type arguments.\"),A_rest_element_cannot_contain_a_binding_pattern:r(2501,1,\"A_rest_element_cannot_contain_a_binding_pattern_2501\",\"A rest element cannot contain a binding pattern.\"),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:r(2502,1,\"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\",\"'{0}' is referenced directly or indirectly in its own type annotation.\"),Cannot_find_namespace_0:r(2503,1,\"Cannot_find_namespace_0_2503\",\"Cannot find namespace '{0}'.\"),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:r(2504,1,\"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\",\"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),A_generator_cannot_have_a_void_type_annotation:r(2505,1,\"A_generator_cannot_have_a_void_type_annotation_2505\",\"A generator cannot have a 'void' type annotation.\"),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:r(2506,1,\"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\",\"'{0}' is referenced directly or indirectly in its own base expression.\"),Type_0_is_not_a_constructor_function_type:r(2507,1,\"Type_0_is_not_a_constructor_function_type_2507\",\"Type '{0}' is not a constructor function type.\"),No_base_constructor_has_the_specified_number_of_type_arguments:r(2508,1,\"No_base_constructor_has_the_specified_number_of_type_arguments_2508\",\"No base constructor has the specified number of type arguments.\"),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:r(2509,1,\"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\",\"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),Base_constructors_must_all_have_the_same_return_type:r(2510,1,\"Base_constructors_must_all_have_the_same_return_type_2510\",\"Base constructors must all have the same return type.\"),Cannot_create_an_instance_of_an_abstract_class:r(2511,1,\"Cannot_create_an_instance_of_an_abstract_class_2511\",\"Cannot create an instance of an abstract class.\"),Overload_signatures_must_all_be_abstract_or_non_abstract:r(2512,1,\"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\",\"Overload signatures must all be abstract or non-abstract.\"),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:r(2513,1,\"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\",\"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),A_tuple_type_cannot_be_indexed_with_a_negative_value:r(2514,1,\"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514\",\"A tuple type cannot be indexed with a negative value.\"),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:r(2515,1,\"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\",\"Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'.\"),All_declarations_of_an_abstract_method_must_be_consecutive:r(2516,1,\"All_declarations_of_an_abstract_method_must_be_consecutive_2516\",\"All declarations of an abstract method must be consecutive.\"),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:r(2517,1,\"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\",\"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:r(2518,1,\"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\",\"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),An_async_iterator_must_have_a_next_method:r(2519,1,\"An_async_iterator_must_have_a_next_method_2519\",\"An async iterator must have a 'next()' method.\"),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:r(2520,1,\"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\",\"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method:r(2522,1,\"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522\",\"The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method.\"),yield_expressions_cannot_be_used_in_a_parameter_initializer:r(2523,1,\"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\",\"'yield' expressions cannot be used in a parameter initializer.\"),await_expressions_cannot_be_used_in_a_parameter_initializer:r(2524,1,\"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\",\"'await' expressions cannot be used in a parameter initializer.\"),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:r(2526,1,\"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\",\"A 'this' type is available only in a non-static member of a class or interface.\"),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:r(2527,1,\"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\",\"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),A_module_cannot_have_multiple_default_exports:r(2528,1,\"A_module_cannot_have_multiple_default_exports_2528\",\"A module cannot have multiple default exports.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:r(2529,1,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),Property_0_is_incompatible_with_index_signature:r(2530,1,\"Property_0_is_incompatible_with_index_signature_2530\",\"Property '{0}' is incompatible with index signature.\"),Object_is_possibly_null:r(2531,1,\"Object_is_possibly_null_2531\",\"Object is possibly 'null'.\"),Object_is_possibly_undefined:r(2532,1,\"Object_is_possibly_undefined_2532\",\"Object is possibly 'undefined'.\"),Object_is_possibly_null_or_undefined:r(2533,1,\"Object_is_possibly_null_or_undefined_2533\",\"Object is possibly 'null' or 'undefined'.\"),A_function_returning_never_cannot_have_a_reachable_end_point:r(2534,1,\"A_function_returning_never_cannot_have_a_reachable_end_point_2534\",\"A function returning 'never' cannot have a reachable end point.\"),Type_0_cannot_be_used_to_index_type_1:r(2536,1,\"Type_0_cannot_be_used_to_index_type_1_2536\",\"Type '{0}' cannot be used to index type '{1}'.\"),Type_0_has_no_matching_index_signature_for_type_1:r(2537,1,\"Type_0_has_no_matching_index_signature_for_type_1_2537\",\"Type '{0}' has no matching index signature for type '{1}'.\"),Type_0_cannot_be_used_as_an_index_type:r(2538,1,\"Type_0_cannot_be_used_as_an_index_type_2538\",\"Type '{0}' cannot be used as an index type.\"),Cannot_assign_to_0_because_it_is_not_a_variable:r(2539,1,\"Cannot_assign_to_0_because_it_is_not_a_variable_2539\",\"Cannot assign to '{0}' because it is not a variable.\"),Cannot_assign_to_0_because_it_is_a_read_only_property:r(2540,1,\"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\",\"Cannot assign to '{0}' because it is a read-only property.\"),Index_signature_in_type_0_only_permits_reading:r(2542,1,\"Index_signature_in_type_0_only_permits_reading_2542\",\"Index signature in type '{0}' only permits reading.\"),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:r(2543,1,\"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\",\"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:r(2544,1,\"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\",\"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:r(2545,1,\"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\",\"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:r(2547,1,\"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\",\"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:r(2548,1,\"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\",\"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:r(2549,1,\"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\",\"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:r(2550,1,\"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550\",\"Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_2:r(2551,1,\"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\",\"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),Cannot_find_name_0_Did_you_mean_1:r(2552,1,\"Cannot_find_name_0_Did_you_mean_1_2552\",\"Cannot find name '{0}'. Did you mean '{1}'?\"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:r(2553,1,\"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\",\"Computed values are not permitted in an enum with string valued members.\"),Expected_0_arguments_but_got_1:r(2554,1,\"Expected_0_arguments_but_got_1_2554\",\"Expected {0} arguments, but got {1}.\"),Expected_at_least_0_arguments_but_got_1:r(2555,1,\"Expected_at_least_0_arguments_but_got_1_2555\",\"Expected at least {0} arguments, but got {1}.\"),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:r(2556,1,\"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556\",\"A spread argument must either have a tuple type or be passed to a rest parameter.\"),Expected_0_type_arguments_but_got_1:r(2558,1,\"Expected_0_type_arguments_but_got_1_2558\",\"Expected {0} type arguments, but got {1}.\"),Type_0_has_no_properties_in_common_with_type_1:r(2559,1,\"Type_0_has_no_properties_in_common_with_type_1_2559\",\"Type '{0}' has no properties in common with type '{1}'.\"),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:r(2560,1,\"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\",\"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:r(2561,1,\"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\",\"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),Base_class_expressions_cannot_reference_class_type_parameters:r(2562,1,\"Base_class_expressions_cannot_reference_class_type_parameters_2562\",\"Base class expressions cannot reference class type parameters.\"),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:r(2563,1,\"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\",\"The containing function or module body is too large for control flow analysis.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:r(2564,1,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\",\"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),Property_0_is_used_before_being_assigned:r(2565,1,\"Property_0_is_used_before_being_assigned_2565\",\"Property '{0}' is used before being assigned.\"),A_rest_element_cannot_have_a_property_name:r(2566,1,\"A_rest_element_cannot_have_a_property_name_2566\",\"A rest element cannot have a property name.\"),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:r(2567,1,\"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\",\"Enum declarations can only merge with namespace or other enum declarations.\"),Property_0_may_not_exist_on_type_1_Did_you_mean_2:r(2568,1,\"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568\",\"Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?\"),Could_not_find_name_0_Did_you_mean_1:r(2570,1,\"Could_not_find_name_0_Did_you_mean_1_2570\",\"Could not find name '{0}'. Did you mean '{1}'?\"),Object_is_of_type_unknown:r(2571,1,\"Object_is_of_type_unknown_2571\",\"Object is of type 'unknown'.\"),A_rest_element_type_must_be_an_array_type:r(2574,1,\"A_rest_element_type_must_be_an_array_type_2574\",\"A rest element type must be an array type.\"),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:r(2575,1,\"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\",\"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:r(2576,1,\"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576\",\"Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?\"),Return_type_annotation_circularly_references_itself:r(2577,1,\"Return_type_annotation_circularly_references_itself_2577\",\"Return type annotation circularly references itself.\"),Unused_ts_expect_error_directive:r(2578,1,\"Unused_ts_expect_error_directive_2578\",\"Unused '@ts-expect-error' directive.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:r(2580,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:r(2581,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:r(2582,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:r(2583,1,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:r(2584,1,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:r(2585,1,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\",\"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.\"),Cannot_assign_to_0_because_it_is_a_constant:r(2588,1,\"Cannot_assign_to_0_because_it_is_a_constant_2588\",\"Cannot assign to '{0}' because it is a constant.\"),Type_instantiation_is_excessively_deep_and_possibly_infinite:r(2589,1,\"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\",\"Type instantiation is excessively deep and possibly infinite.\"),Expression_produces_a_union_type_that_is_too_complex_to_represent:r(2590,1,\"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\",\"Expression produces a union type that is too complex to represent.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:r(2591,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:r(2592,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:r(2593,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.\"),This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:r(2594,1,\"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594\",\"This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag.\"),_0_can_only_be_imported_by_using_a_default_import:r(2595,1,\"_0_can_only_be_imported_by_using_a_default_import_2595\",\"'{0}' can only be imported by using a default import.\"),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:r(2596,1,\"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596\",\"'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.\"),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:r(2597,1,\"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597\",\"'{0}' can only be imported by using a 'require' call or by using a default import.\"),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:r(2598,1,\"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598\",\"'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.\"),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:r(2602,1,\"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\",\"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),Property_0_in_type_1_is_not_assignable_to_type_2:r(2603,1,\"Property_0_in_type_1_is_not_assignable_to_type_2_2603\",\"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:r(2604,1,\"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\",\"JSX element type '{0}' does not have any construct or call signatures.\"),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:r(2606,1,\"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\",\"Property '{0}' of JSX spread attribute is not assignable to target property.\"),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:r(2607,1,\"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\",\"JSX element class does not support attributes because it does not have a '{0}' property.\"),The_global_type_JSX_0_may_not_have_more_than_one_property:r(2608,1,\"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\",\"The global type 'JSX.{0}' may not have more than one property.\"),JSX_spread_child_must_be_an_array_type:r(2609,1,\"JSX_spread_child_must_be_an_array_type_2609\",\"JSX spread child must be an array type.\"),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:r(2610,1,\"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610\",\"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.\"),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:r(2611,1,\"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611\",\"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.\"),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:r(2612,1,\"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\",\"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:r(2613,1,\"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\",\"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:r(2614,1,\"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\",\"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:r(2615,1,\"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615\",\"Type of property '{0}' circularly references itself in mapped type '{1}'.\"),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:r(2616,1,\"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616\",\"'{0}' can only be imported by using 'import {1} = require({2})' or a default import.\"),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:r(2617,1,\"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617\",\"'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.\"),Source_has_0_element_s_but_target_requires_1:r(2618,1,\"Source_has_0_element_s_but_target_requires_1_2618\",\"Source has {0} element(s) but target requires {1}.\"),Source_has_0_element_s_but_target_allows_only_1:r(2619,1,\"Source_has_0_element_s_but_target_allows_only_1_2619\",\"Source has {0} element(s) but target allows only {1}.\"),Target_requires_0_element_s_but_source_may_have_fewer:r(2620,1,\"Target_requires_0_element_s_but_source_may_have_fewer_2620\",\"Target requires {0} element(s) but source may have fewer.\"),Target_allows_only_0_element_s_but_source_may_have_more:r(2621,1,\"Target_allows_only_0_element_s_but_source_may_have_more_2621\",\"Target allows only {0} element(s) but source may have more.\"),Source_provides_no_match_for_required_element_at_position_0_in_target:r(2623,1,\"Source_provides_no_match_for_required_element_at_position_0_in_target_2623\",\"Source provides no match for required element at position {0} in target.\"),Source_provides_no_match_for_variadic_element_at_position_0_in_target:r(2624,1,\"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624\",\"Source provides no match for variadic element at position {0} in target.\"),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:r(2625,1,\"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625\",\"Variadic element at position {0} in source does not match element at position {1} in target.\"),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:r(2626,1,\"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626\",\"Type at position {0} in source is not compatible with type at position {1} in target.\"),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:r(2627,1,\"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627\",\"Type at positions {0} through {1} in source is not compatible with type at position {2} in target.\"),Cannot_assign_to_0_because_it_is_an_enum:r(2628,1,\"Cannot_assign_to_0_because_it_is_an_enum_2628\",\"Cannot assign to '{0}' because it is an enum.\"),Cannot_assign_to_0_because_it_is_a_class:r(2629,1,\"Cannot_assign_to_0_because_it_is_a_class_2629\",\"Cannot assign to '{0}' because it is a class.\"),Cannot_assign_to_0_because_it_is_a_function:r(2630,1,\"Cannot_assign_to_0_because_it_is_a_function_2630\",\"Cannot assign to '{0}' because it is a function.\"),Cannot_assign_to_0_because_it_is_a_namespace:r(2631,1,\"Cannot_assign_to_0_because_it_is_a_namespace_2631\",\"Cannot assign to '{0}' because it is a namespace.\"),Cannot_assign_to_0_because_it_is_an_import:r(2632,1,\"Cannot_assign_to_0_because_it_is_an_import_2632\",\"Cannot assign to '{0}' because it is an import.\"),JSX_property_access_expressions_cannot_include_JSX_namespace_names:r(2633,1,\"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633\",\"JSX property access expressions cannot include JSX namespace names\"),_0_index_signatures_are_incompatible:r(2634,1,\"_0_index_signatures_are_incompatible_2634\",\"'{0}' index signatures are incompatible.\"),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:r(2635,1,\"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635\",\"Type '{0}' has no signatures for which the type argument list is applicable.\"),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:r(2636,1,\"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636\",\"Type '{0}' is not assignable to type '{1}' as implied by variance annotation.\"),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:r(2637,1,\"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637\",\"Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.\"),Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator:r(2638,1,\"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638\",\"Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.\"),React_components_cannot_include_JSX_namespace_names:r(2639,1,\"React_components_cannot_include_JSX_namespace_names_2639\",\"React components cannot include JSX namespace names\"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:r(2649,1,\"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\",\"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more:r(2650,1,\"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650\",\"Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more.\"),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:r(2651,1,\"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\",\"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:r(2652,1,\"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\",\"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:r(2653,1,\"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\",\"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2:r(2654,1,\"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654\",\"Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}.\"),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more:r(2655,1,\"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655\",\"Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more.\"),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1:r(2656,1,\"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656\",\"Non-abstract class expression is missing implementations for the following members of '{0}': {1}.\"),JSX_expressions_must_have_one_parent_element:r(2657,1,\"JSX_expressions_must_have_one_parent_element_2657\",\"JSX expressions must have one parent element.\"),Type_0_provides_no_match_for_the_signature_1:r(2658,1,\"Type_0_provides_no_match_for_the_signature_1_2658\",\"Type '{0}' provides no match for the signature '{1}'.\"),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:r(2659,1,\"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\",\"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:r(2660,1,\"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\",\"'super' can only be referenced in members of derived classes or object literal expressions.\"),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:r(2661,1,\"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\",\"Cannot export '{0}'. Only local declarations can be exported from a module.\"),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:r(2662,1,\"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\",\"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:r(2663,1,\"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\",\"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:r(2664,1,\"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\",\"Invalid module name in augmentation, module '{0}' cannot be found.\"),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:r(2665,1,\"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\",\"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:r(2666,1,\"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\",\"Exports and export assignments are not permitted in module augmentations.\"),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:r(2667,1,\"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\",\"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:r(2668,1,\"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\",\"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:r(2669,1,\"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\",\"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:r(2670,1,\"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\",\"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:r(2671,1,\"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\",\"Cannot augment module '{0}' because it resolves to a non-module entity.\"),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:r(2672,1,\"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\",\"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:r(2673,1,\"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\",\"Constructor of class '{0}' is private and only accessible within the class declaration.\"),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:r(2674,1,\"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\",\"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:r(2675,1,\"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\",\"Cannot extend a class '{0}'. Class constructor is marked as private.\"),Accessors_must_both_be_abstract_or_non_abstract:r(2676,1,\"Accessors_must_both_be_abstract_or_non_abstract_2676\",\"Accessors must both be abstract or non-abstract.\"),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:r(2677,1,\"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\",\"A type predicate's type must be assignable to its parameter's type.\"),Type_0_is_not_comparable_to_type_1:r(2678,1,\"Type_0_is_not_comparable_to_type_1_2678\",\"Type '{0}' is not comparable to type '{1}'.\"),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:r(2679,1,\"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\",\"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),A_0_parameter_must_be_the_first_parameter:r(2680,1,\"A_0_parameter_must_be_the_first_parameter_2680\",\"A '{0}' parameter must be the first parameter.\"),A_constructor_cannot_have_a_this_parameter:r(2681,1,\"A_constructor_cannot_have_a_this_parameter_2681\",\"A constructor cannot have a 'this' parameter.\"),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:r(2683,1,\"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\",\"'this' implicitly has type 'any' because it does not have a type annotation.\"),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:r(2684,1,\"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\",\"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),The_this_types_of_each_signature_are_incompatible:r(2685,1,\"The_this_types_of_each_signature_are_incompatible_2685\",\"The 'this' types of each signature are incompatible.\"),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:r(2686,1,\"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\",\"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),All_declarations_of_0_must_have_identical_modifiers:r(2687,1,\"All_declarations_of_0_must_have_identical_modifiers_2687\",\"All declarations of '{0}' must have identical modifiers.\"),Cannot_find_type_definition_file_for_0:r(2688,1,\"Cannot_find_type_definition_file_for_0_2688\",\"Cannot find type definition file for '{0}'.\"),Cannot_extend_an_interface_0_Did_you_mean_implements:r(2689,1,\"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\",\"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:r(2690,1,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690\",\"'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?\"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:r(2692,1,\"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\",\"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:r(2693,1,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\",\"'{0}' only refers to a type, but is being used as a value here.\"),Namespace_0_has_no_exported_member_1:r(2694,1,\"Namespace_0_has_no_exported_member_1_2694\",\"Namespace '{0}' has no exported member '{1}'.\"),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:r(2695,1,\"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\"Left side of comma operator is unused and has no side effects.\",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:r(2696,1,\"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\",\"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:r(2697,1,\"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\",\"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),Spread_types_may_only_be_created_from_object_types:r(2698,1,\"Spread_types_may_only_be_created_from_object_types_2698\",\"Spread types may only be created from object types.\"),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:r(2699,1,\"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\",\"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),Rest_types_may_only_be_created_from_object_types:r(2700,1,\"Rest_types_may_only_be_created_from_object_types_2700\",\"Rest types may only be created from object types.\"),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:r(2701,1,\"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\",\"The target of an object rest assignment must be a variable or a property access.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:r(2702,1,\"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\",\"'{0}' only refers to a type, but is being used as a namespace here.\"),The_operand_of_a_delete_operator_must_be_a_property_reference:r(2703,1,\"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\",\"The operand of a 'delete' operator must be a property reference.\"),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:r(2704,1,\"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\",\"The operand of a 'delete' operator cannot be a read-only property.\"),An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:r(2705,1,\"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705\",\"An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),Required_type_parameters_may_not_follow_optional_type_parameters:r(2706,1,\"Required_type_parameters_may_not_follow_optional_type_parameters_2706\",\"Required type parameters may not follow optional type parameters.\"),Generic_type_0_requires_between_1_and_2_type_arguments:r(2707,1,\"Generic_type_0_requires_between_1_and_2_type_arguments_2707\",\"Generic type '{0}' requires between {1} and {2} type arguments.\"),Cannot_use_namespace_0_as_a_value:r(2708,1,\"Cannot_use_namespace_0_as_a_value_2708\",\"Cannot use namespace '{0}' as a value.\"),Cannot_use_namespace_0_as_a_type:r(2709,1,\"Cannot_use_namespace_0_as_a_type_2709\",\"Cannot use namespace '{0}' as a type.\"),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:r(2710,1,\"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\",\"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:r(2711,1,\"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\",\"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:r(2712,1,\"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712\",\"A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:r(2713,1,\"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:r(2714,1,\"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\",\"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:r(2715,1,\"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\",\"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),Type_parameter_0_has_a_circular_default:r(2716,1,\"Type_parameter_0_has_a_circular_default_2716\",\"Type parameter '{0}' has a circular default.\"),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:r(2717,1,\"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\",\"Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.\"),Duplicate_property_0:r(2718,1,\"Duplicate_property_0_2718\",\"Duplicate property '{0}'.\"),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:r(2719,1,\"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\",\"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:r(2720,1,\"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\",\"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),Cannot_invoke_an_object_which_is_possibly_null:r(2721,1,\"Cannot_invoke_an_object_which_is_possibly_null_2721\",\"Cannot invoke an object which is possibly 'null'.\"),Cannot_invoke_an_object_which_is_possibly_undefined:r(2722,1,\"Cannot_invoke_an_object_which_is_possibly_undefined_2722\",\"Cannot invoke an object which is possibly 'undefined'.\"),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:r(2723,1,\"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\",\"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),_0_has_no_exported_member_named_1_Did_you_mean_2:r(2724,1,\"_0_has_no_exported_member_named_1_Did_you_mean_2_2724\",\"'{0}' has no exported member named '{1}'. Did you mean '{2}'?\"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:r(2725,1,\"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725\",\"Class name cannot be 'Object' when targeting ES5 with module {0}.\"),Cannot_find_lib_definition_for_0:r(2726,1,\"Cannot_find_lib_definition_for_0_2726\",\"Cannot find lib definition for '{0}'.\"),Cannot_find_lib_definition_for_0_Did_you_mean_1:r(2727,1,\"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\",\"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),_0_is_declared_here:r(2728,3,\"_0_is_declared_here_2728\",\"'{0}' is declared here.\"),Property_0_is_used_before_its_initialization:r(2729,1,\"Property_0_is_used_before_its_initialization_2729\",\"Property '{0}' is used before its initialization.\"),An_arrow_function_cannot_have_a_this_parameter:r(2730,1,\"An_arrow_function_cannot_have_a_this_parameter_2730\",\"An arrow function cannot have a 'this' parameter.\"),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:r(2731,1,\"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\",\"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:r(2732,1,\"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\",\"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.\"),Property_0_was_also_declared_here:r(2733,1,\"Property_0_was_also_declared_here_2733\",\"Property '{0}' was also declared here.\"),Are_you_missing_a_semicolon:r(2734,1,\"Are_you_missing_a_semicolon_2734\",\"Are you missing a semicolon?\"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:r(2735,1,\"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\",\"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),Operator_0_cannot_be_applied_to_type_1:r(2736,1,\"Operator_0_cannot_be_applied_to_type_1_2736\",\"Operator '{0}' cannot be applied to type '{1}'.\"),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:r(2737,1,\"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737\",\"BigInt literals are not available when targeting lower than ES2020.\"),An_outer_value_of_this_is_shadowed_by_this_container:r(2738,3,\"An_outer_value_of_this_is_shadowed_by_this_container_2738\",\"An outer value of 'this' is shadowed by this container.\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:r(2739,1,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\",\"Type '{0}' is missing the following properties from type '{1}': {2}\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:r(2740,1,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\",\"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),Property_0_is_missing_in_type_1_but_required_in_type_2:r(2741,1,\"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\",\"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:r(2742,1,\"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\",\"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:r(2743,1,\"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\",\"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:r(2744,1,\"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\",\"Type parameter defaults can only reference previously declared type parameters.\"),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:r(2745,1,\"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\",\"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:r(2746,1,\"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\",\"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:r(2747,1,\"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\",\"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),Cannot_access_ambient_const_enums_when_0_is_enabled:r(2748,1,\"Cannot_access_ambient_const_enums_when_0_is_enabled_2748\",\"Cannot access ambient const enums when '{0}' is enabled.\"),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:r(2749,1,\"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749\",\"'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?\"),The_implementation_signature_is_declared_here:r(2750,1,\"The_implementation_signature_is_declared_here_2750\",\"The implementation signature is declared here.\"),Circularity_originates_in_type_at_this_location:r(2751,1,\"Circularity_originates_in_type_at_this_location_2751\",\"Circularity originates in type at this location.\"),The_first_export_default_is_here:r(2752,1,\"The_first_export_default_is_here_2752\",\"The first export default is here.\"),Another_export_default_is_here:r(2753,1,\"Another_export_default_is_here_2753\",\"Another export default is here.\"),super_may_not_use_type_arguments:r(2754,1,\"super_may_not_use_type_arguments_2754\",\"'super' may not use type arguments.\"),No_constituent_of_type_0_is_callable:r(2755,1,\"No_constituent_of_type_0_is_callable_2755\",\"No constituent of type '{0}' is callable.\"),Not_all_constituents_of_type_0_are_callable:r(2756,1,\"Not_all_constituents_of_type_0_are_callable_2756\",\"Not all constituents of type '{0}' are callable.\"),Type_0_has_no_call_signatures:r(2757,1,\"Type_0_has_no_call_signatures_2757\",\"Type '{0}' has no call signatures.\"),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:r(2758,1,\"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\",\"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),No_constituent_of_type_0_is_constructable:r(2759,1,\"No_constituent_of_type_0_is_constructable_2759\",\"No constituent of type '{0}' is constructable.\"),Not_all_constituents_of_type_0_are_constructable:r(2760,1,\"Not_all_constituents_of_type_0_are_constructable_2760\",\"Not all constituents of type '{0}' are constructable.\"),Type_0_has_no_construct_signatures:r(2761,1,\"Type_0_has_no_construct_signatures_2761\",\"Type '{0}' has no construct signatures.\"),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:r(2762,1,\"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\",\"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:r(2763,1,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:r(2764,1,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:r(2765,1,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:r(2766,1,\"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\",\"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),The_0_property_of_an_iterator_must_be_a_method:r(2767,1,\"The_0_property_of_an_iterator_must_be_a_method_2767\",\"The '{0}' property of an iterator must be a method.\"),The_0_property_of_an_async_iterator_must_be_a_method:r(2768,1,\"The_0_property_of_an_async_iterator_must_be_a_method_2768\",\"The '{0}' property of an async iterator must be a method.\"),No_overload_matches_this_call:r(2769,1,\"No_overload_matches_this_call_2769\",\"No overload matches this call.\"),The_last_overload_gave_the_following_error:r(2770,1,\"The_last_overload_gave_the_following_error_2770\",\"The last overload gave the following error.\"),The_last_overload_is_declared_here:r(2771,1,\"The_last_overload_is_declared_here_2771\",\"The last overload is declared here.\"),Overload_0_of_1_2_gave_the_following_error:r(2772,1,\"Overload_0_of_1_2_gave_the_following_error_2772\",\"Overload {0} of {1}, '{2}', gave the following error.\"),Did_you_forget_to_use_await:r(2773,1,\"Did_you_forget_to_use_await_2773\",\"Did you forget to use 'await'?\"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:r(2774,1,\"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774\",\"This condition will always return true since this function is always defined. Did you mean to call it instead?\"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:r(2775,1,\"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\",\"Assertions require every name in the call target to be declared with an explicit type annotation.\"),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:r(2776,1,\"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\",\"Assertions require the call target to be an identifier or qualified name.\"),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:r(2777,1,\"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\",\"The operand of an increment or decrement operator may not be an optional property access.\"),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:r(2778,1,\"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\",\"The target of an object rest assignment may not be an optional property access.\"),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:r(2779,1,\"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\",\"The left-hand side of an assignment expression may not be an optional property access.\"),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:r(2780,1,\"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\",\"The left-hand side of a 'for...in' statement may not be an optional property access.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:r(2781,1,\"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\",\"The left-hand side of a 'for...of' statement may not be an optional property access.\"),_0_needs_an_explicit_type_annotation:r(2782,3,\"_0_needs_an_explicit_type_annotation_2782\",\"'{0}' needs an explicit type annotation.\"),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:r(2783,1,\"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783\",\"'{0}' is specified more than once, so this usage will be overwritten.\"),get_and_set_accessors_cannot_declare_this_parameters:r(2784,1,\"get_and_set_accessors_cannot_declare_this_parameters_2784\",\"'get' and 'set' accessors cannot declare 'this' parameters.\"),This_spread_always_overwrites_this_property:r(2785,1,\"This_spread_always_overwrites_this_property_2785\",\"This spread always overwrites this property.\"),_0_cannot_be_used_as_a_JSX_component:r(2786,1,\"_0_cannot_be_used_as_a_JSX_component_2786\",\"'{0}' cannot be used as a JSX component.\"),Its_return_type_0_is_not_a_valid_JSX_element:r(2787,1,\"Its_return_type_0_is_not_a_valid_JSX_element_2787\",\"Its return type '{0}' is not a valid JSX element.\"),Its_instance_type_0_is_not_a_valid_JSX_element:r(2788,1,\"Its_instance_type_0_is_not_a_valid_JSX_element_2788\",\"Its instance type '{0}' is not a valid JSX element.\"),Its_element_type_0_is_not_a_valid_JSX_element:r(2789,1,\"Its_element_type_0_is_not_a_valid_JSX_element_2789\",\"Its element type '{0}' is not a valid JSX element.\"),The_operand_of_a_delete_operator_must_be_optional:r(2790,1,\"The_operand_of_a_delete_operator_must_be_optional_2790\",\"The operand of a 'delete' operator must be optional.\"),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:r(2791,1,\"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791\",\"Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.\"),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:r(2792,1,\"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792\",\"Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?\"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:r(2793,1,\"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793\",\"The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.\"),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:r(2794,1,\"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794\",\"Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?\"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:r(2795,1,\"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795\",\"The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.\"),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:r(2796,1,\"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796\",\"It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.\"),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:r(2797,1,\"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797\",\"A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.\"),The_declaration_was_marked_as_deprecated_here:r(2798,1,\"The_declaration_was_marked_as_deprecated_here_2798\",\"The declaration was marked as deprecated here.\"),Type_produces_a_tuple_type_that_is_too_large_to_represent:r(2799,1,\"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799\",\"Type produces a tuple type that is too large to represent.\"),Expression_produces_a_tuple_type_that_is_too_large_to_represent:r(2800,1,\"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800\",\"Expression produces a tuple type that is too large to represent.\"),This_condition_will_always_return_true_since_this_0_is_always_defined:r(2801,1,\"This_condition_will_always_return_true_since_this_0_is_always_defined_2801\",\"This condition will always return true since this '{0}' is always defined.\"),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:r(2802,1,\"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802\",\"Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\"),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:r(2803,1,\"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803\",\"Cannot assign to private method '{0}'. Private methods are not writable.\"),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:r(2804,1,\"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804\",\"Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.\"),Private_accessor_was_defined_without_a_getter:r(2806,1,\"Private_accessor_was_defined_without_a_getter_2806\",\"Private accessor was defined without a getter.\"),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:r(2807,1,\"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807\",\"This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.\"),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:r(2808,1,\"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808\",\"A get accessor must be at least as accessible as the setter\"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses:r(2809,1,\"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809\",\"Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses.\"),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:r(2810,1,\"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810\",\"Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.\"),Initializer_for_property_0:r(2811,1,\"Initializer_for_property_0_2811\",\"Initializer for property '{0}'\"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:r(2812,1,\"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812\",\"Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.\"),Class_declaration_cannot_implement_overload_list_for_0:r(2813,1,\"Class_declaration_cannot_implement_overload_list_for_0_2813\",\"Class declaration cannot implement overload list for '{0}'.\"),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:r(2814,1,\"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814\",\"Function with bodies can only merge with classes that are ambient.\"),arguments_cannot_be_referenced_in_property_initializers:r(2815,1,\"arguments_cannot_be_referenced_in_property_initializers_2815\",\"'arguments' cannot be referenced in property initializers.\"),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:r(2816,1,\"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816\",\"Cannot use 'this' in a static property initializer of a decorated class.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:r(2817,1,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817\",\"Property '{0}' has no initializer and is not definitely assigned in a class static block.\"),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:r(2818,1,\"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.\"),Namespace_name_cannot_be_0:r(2819,1,\"Namespace_name_cannot_be_0_2819\",\"Namespace name cannot be '{0}'.\"),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:r(2820,1,\"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820\",\"Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?\"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:r(2821,1,\"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2821\",\"Import assertions are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.\"),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:r(2822,1,\"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822\",\"Import assertions cannot be used with type-only imports or exports.\"),Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:r(2823,1,\"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2823\",\"Import attributes are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.\"),Cannot_find_namespace_0_Did_you_mean_1:r(2833,1,\"Cannot_find_namespace_0_Did_you_mean_1_2833\",\"Cannot find namespace '{0}'. Did you mean '{1}'?\"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:r(2834,1,\"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834\",\"Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.\"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:r(2835,1,\"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835\",\"Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?\"),Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:r(2836,1,\"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836\",\"Import assertions are not allowed on statements that compile to CommonJS 'require' calls.\"),Import_assertion_values_must_be_string_literal_expressions:r(2837,1,\"Import_assertion_values_must_be_string_literal_expressions_2837\",\"Import assertion values must be string literal expressions.\"),All_declarations_of_0_must_have_identical_constraints:r(2838,1,\"All_declarations_of_0_must_have_identical_constraints_2838\",\"All declarations of '{0}' must have identical constraints.\"),This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value:r(2839,1,\"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839\",\"This condition will always return '{0}' since JavaScript compares objects by reference, not value.\"),An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types:r(2840,1,\"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840\",\"An interface cannot extend a primitive type like '{0}'. It can only extend other named object types.\"),_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation:r(2842,1,\"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842\",\"'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?\"),We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here:r(2843,1,\"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843\",\"We can only write a type for '{0}' by adding a type for the entire parameter here.\"),Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:r(2844,1,\"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844\",\"Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),This_condition_will_always_return_0:r(2845,1,\"This_condition_will_always_return_0_2845\",\"This condition will always return '{0}'.\"),A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead:r(2846,1,\"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846\",\"A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?\"),The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression:r(2848,1,\"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848\",\"The right-hand side of an 'instanceof' expression must not be an instantiation expression.\"),Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1:r(2849,1,\"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849\",\"Target signature provides too few arguments. Expected {0} or more, but got {1}.\"),The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined:r(2850,1,\"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850\",\"The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'.\"),The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined:r(2851,1,\"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851\",\"The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.\"),await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:r(2852,1,\"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852\",\"'await using' statements are only allowed within async functions and at the top levels of modules.\"),await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:r(2853,1,\"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853\",\"'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:r(2854,1,\"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854\",\"Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super:r(2855,1,\"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855\",\"Class field '{0}' defined by the parent class is not accessible in the child class via super.\"),Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:r(2856,1,\"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856\",\"Import attributes are not allowed on statements that compile to CommonJS 'require' calls.\"),Import_attributes_cannot_be_used_with_type_only_imports_or_exports:r(2857,1,\"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857\",\"Import attributes cannot be used with type-only imports or exports.\"),Import_attribute_values_must_be_string_literal_expressions:r(2858,1,\"Import_attribute_values_must_be_string_literal_expressions_2858\",\"Import attribute values must be string literal expressions.\"),Excessive_complexity_comparing_types_0_and_1:r(2859,1,\"Excessive_complexity_comparing_types_0_and_1_2859\",\"Excessive complexity comparing types '{0}' and '{1}'.\"),The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method:r(2860,1,\"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860\",\"The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method.\"),An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression:r(2861,1,\"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861\",\"An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression.\"),Type_0_is_generic_and_can_only_be_indexed_for_reading:r(2862,1,\"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862\",\"Type '{0}' is generic and can only be indexed for reading.\"),A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values:r(2863,1,\"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863\",\"A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values.\"),A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types:r(2864,1,\"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864\",\"A class cannot implement a primitive type like '{0}'. It can only implement other named object types.\"),Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:r(2865,1,\"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865\",\"Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled.\"),Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:r(2866,1,\"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866\",\"Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun:r(2867,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867\",\"Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig:r(2868,1,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868\",\"Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig.\"),Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish:r(2869,1,\"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869\",\"Right operand of ?? is unreachable because the left operand is never nullish.\"),This_binary_expression_is_never_nullish_Are_you_missing_parentheses:r(2870,1,\"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870\",\"This binary expression is never nullish. Are you missing parentheses?\"),This_expression_is_always_nullish:r(2871,1,\"This_expression_is_always_nullish_2871\",\"This expression is always nullish.\"),This_kind_of_expression_is_always_truthy:r(2872,1,\"This_kind_of_expression_is_always_truthy_2872\",\"This kind of expression is always truthy.\"),This_kind_of_expression_is_always_falsy:r(2873,1,\"This_kind_of_expression_is_always_falsy_2873\",\"This kind of expression is always falsy.\"),This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:r(2874,1,\"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874\",\"This JSX tag requires '{0}' to be in scope, but it could not be found.\"),This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed:r(2875,1,\"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875\",\"This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed.\"),This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0:r(2876,1,\"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876\",'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to \"{0}\".'),This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path:r(2877,1,\"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877\",\"This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.\"),This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files:r(2878,1,\"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878\",\"This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files.\"),Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found:r(2879,1,\"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879\",\"Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found.\"),Import_declaration_0_is_using_private_name_1:r(4e3,1,\"Import_declaration_0_is_using_private_name_1_4000\",\"Import declaration '{0}' is using private name '{1}'.\"),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:r(4002,1,\"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\",\"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:r(4004,1,\"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\",\"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:r(4006,1,\"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\",\"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:r(4008,1,\"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\",\"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:r(4010,1,\"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\",\"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:r(4012,1,\"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\",\"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:r(4014,1,\"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\",\"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:r(4016,1,\"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\",\"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:r(4019,1,\"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\",\"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:r(4020,1,\"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\",\"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_has_or_is_using_private_name_0:r(4021,1,\"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021\",\"'extends' clause of exported class has or is using private name '{0}'.\"),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:r(4022,1,\"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\",\"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4023,1,\"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\",\"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:r(4024,1,\"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\",\"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),Exported_variable_0_has_or_is_using_private_name_1:r(4025,1,\"Exported_variable_0_has_or_is_using_private_name_1_4025\",\"Exported variable '{0}' has or is using private name '{1}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4026,1,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\",\"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:r(4027,1,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\",\"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:r(4028,1,\"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\",\"Public static property '{0}' of exported class has or is using private name '{1}'.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4029,1,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\",\"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:r(4030,1,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\",\"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_property_0_of_exported_class_has_or_is_using_private_name_1:r(4031,1,\"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\",\"Public property '{0}' of exported class has or is using private name '{1}'.\"),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:r(4032,1,\"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\",\"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Property_0_of_exported_interface_has_or_is_using_private_name_1:r(4033,1,\"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\",\"Property '{0}' of exported interface has or is using private name '{1}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4034,1,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\",\"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:r(4035,1,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\",\"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4036,1,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\",\"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:r(4037,1,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\",\"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4038,1,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4039,1,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:r(4040,1,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\",\"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4041,1,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4042,1,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:r(4043,1,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\",\"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:r(4044,1,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\",\"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:r(4045,1,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\",\"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:r(4046,1,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\",\"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:r(4047,1,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\",\"Return type of call signature from exported interface has or is using private name '{0}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:r(4048,1,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\",\"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:r(4049,1,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\",\"Return type of index signature from exported interface has or is using private name '{0}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:r(4050,1,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\",\"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:r(4051,1,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\",\"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:r(4052,1,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\",\"Return type of public static method from exported class has or is using private name '{0}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:r(4053,1,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\",\"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:r(4054,1,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\",\"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:r(4055,1,\"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\",\"Return type of public method from exported class has or is using private name '{0}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:r(4056,1,\"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\",\"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:r(4057,1,\"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\",\"Return type of method from exported interface has or is using private name '{0}'.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:r(4058,1,\"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\",\"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:r(4059,1,\"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\",\"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),Return_type_of_exported_function_has_or_is_using_private_name_0:r(4060,1,\"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\",\"Return type of exported function has or is using private name '{0}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4061,1,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4062,1,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:r(4063,1,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\",\"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:r(4064,1,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\",\"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:r(4065,1,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\",\"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:r(4066,1,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\",\"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:r(4067,1,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\",\"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4068,1,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4069,1,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:r(4070,1,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\",\"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4071,1,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:r(4072,1,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:r(4073,1,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\",\"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:r(4074,1,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\",\"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:r(4075,1,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\",\"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4076,1,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\",\"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:r(4077,1,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\",\"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_exported_function_has_or_is_using_private_name_1:r(4078,1,\"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\",\"Parameter '{0}' of exported function has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1:r(4081,1,\"Exported_type_alias_0_has_or_is_using_private_name_1_4081\",\"Exported type alias '{0}' has or is using private name '{1}'.\"),Default_export_of_the_module_has_or_is_using_private_name_0:r(4082,1,\"Default_export_of_the_module_has_or_is_using_private_name_0_4082\",\"Default export of the module has or is using private name '{0}'.\"),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:r(4083,1,\"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\",\"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:r(4084,1,\"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084\",\"Exported type alias '{0}' has or is using private name '{1}' from module {2}.\"),Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1:r(4085,1,\"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085\",\"Extends clause for inferred type '{0}' has or is using private name '{1}'.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:r(4091,1,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\",\"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:r(4092,1,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\",\"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected:r(4094,1,\"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094\",\"Property '{0}' of exported anonymous class type may not be private or protected.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4095,1,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\",\"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:r(4096,1,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\",\"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:r(4097,1,\"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\",\"Public static method '{0}' of exported class has or is using private name '{1}'.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4098,1,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\",\"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:r(4099,1,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\",\"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_method_0_of_exported_class_has_or_is_using_private_name_1:r(4100,1,\"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\",\"Public method '{0}' of exported class has or is using private name '{1}'.\"),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:r(4101,1,\"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\",\"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Method_0_of_exported_interface_has_or_is_using_private_name_1:r(4102,1,\"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\",\"Method '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:r(4103,1,\"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\",\"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:r(4104,1,\"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\",\"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:r(4105,1,\"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\",\"Private or protected member '{0}' cannot be accessed on a type parameter.\"),Parameter_0_of_accessor_has_or_is_using_private_name_1:r(4106,1,\"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\",\"Parameter '{0}' of accessor has or is using private name '{1}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:r(4107,1,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\",\"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:r(4108,1,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\",\"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),Type_arguments_for_0_circularly_reference_themselves:r(4109,1,\"Type_arguments_for_0_circularly_reference_themselves_4109\",\"Type arguments for '{0}' circularly reference themselves.\"),Tuple_type_arguments_circularly_reference_themselves:r(4110,1,\"Tuple_type_arguments_circularly_reference_themselves_4110\",\"Tuple type arguments circularly reference themselves.\"),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:r(4111,1,\"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111\",\"Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].\"),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:r(4112,1,\"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112\",\"This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.\"),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:r(4113,1,\"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113\",\"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.\"),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:r(4114,1,\"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114\",\"This member must have an 'override' modifier because it overrides a member in the base class '{0}'.\"),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:r(4115,1,\"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115\",\"This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.\"),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:r(4116,1,\"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116\",\"This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.\"),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:r(4117,1,\"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117\",\"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:r(4118,1,\"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118\",\"The type of this node cannot be serialized because its property '{0}' cannot be serialized.\"),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:r(4119,1,\"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119\",\"This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:r(4120,1,\"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120\",\"This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:r(4121,1,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121\",\"This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:r(4122,1,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122\",\"This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:r(4123,1,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123\",\"This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:r(4124,1,\"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124\",\"Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given:r(4125,1,\"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125\",\"Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given.\"),One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value:r(4126,1,\"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126\",\"One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value.\"),The_current_host_does_not_support_the_0_option:r(5001,1,\"The_current_host_does_not_support_the_0_option_5001\",\"The current host does not support the '{0}' option.\"),Cannot_find_the_common_subdirectory_path_for_the_input_files:r(5009,1,\"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\",\"Cannot find the common subdirectory path for the input files.\"),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:r(5010,1,\"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\",\"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),Cannot_read_file_0_Colon_1:r(5012,1,\"Cannot_read_file_0_Colon_1_5012\",\"Cannot read file '{0}': {1}.\"),Unknown_compiler_option_0:r(5023,1,\"Unknown_compiler_option_0_5023\",\"Unknown compiler option '{0}'.\"),Compiler_option_0_requires_a_value_of_type_1:r(5024,1,\"Compiler_option_0_requires_a_value_of_type_1_5024\",\"Compiler option '{0}' requires a value of type {1}.\"),Unknown_compiler_option_0_Did_you_mean_1:r(5025,1,\"Unknown_compiler_option_0_Did_you_mean_1_5025\",\"Unknown compiler option '{0}'. Did you mean '{1}'?\"),Could_not_write_file_0_Colon_1:r(5033,1,\"Could_not_write_file_0_Colon_1_5033\",\"Could not write file '{0}': {1}.\"),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:r(5042,1,\"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\",\"Option 'project' cannot be mixed with source files on a command line.\"),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:r(5047,1,\"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\",\"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:r(5051,1,\"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\",\"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),Option_0_cannot_be_specified_without_specifying_option_1:r(5052,1,\"Option_0_cannot_be_specified_without_specifying_option_1_5052\",\"Option '{0}' cannot be specified without specifying option '{1}'.\"),Option_0_cannot_be_specified_with_option_1:r(5053,1,\"Option_0_cannot_be_specified_with_option_1_5053\",\"Option '{0}' cannot be specified with option '{1}'.\"),A_tsconfig_json_file_is_already_defined_at_Colon_0:r(5054,1,\"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\",\"A 'tsconfig.json' file is already defined at: '{0}'.\"),Cannot_write_file_0_because_it_would_overwrite_input_file:r(5055,1,\"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\",\"Cannot write file '{0}' because it would overwrite input file.\"),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:r(5056,1,\"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\",\"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:r(5057,1,\"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\",\"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),The_specified_path_does_not_exist_Colon_0:r(5058,1,\"The_specified_path_does_not_exist_Colon_0_5058\",\"The specified path does not exist: '{0}'.\"),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:r(5059,1,\"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\",\"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),Pattern_0_can_have_at_most_one_Asterisk_character:r(5061,1,\"Pattern_0_can_have_at_most_one_Asterisk_character_5061\",\"Pattern '{0}' can have at most one '*' character.\"),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:r(5062,1,\"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\",\"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),Substitutions_for_pattern_0_should_be_an_array:r(5063,1,\"Substitutions_for_pattern_0_should_be_an_array_5063\",\"Substitutions for pattern '{0}' should be an array.\"),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:r(5064,1,\"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\",\"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:r(5065,1,\"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\",\"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:r(5066,1,\"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\",\"Substitutions for pattern '{0}' shouldn't be an empty array.\"),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:r(5067,1,\"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\",\"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:r(5068,1,\"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\",\"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:r(5069,1,\"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\",\"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic:r(5070,1,\"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070\",\"Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'.\"),Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd:r(5071,1,\"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071\",\"Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'.\"),Unknown_build_option_0:r(5072,1,\"Unknown_build_option_0_5072\",\"Unknown build option '{0}'.\"),Build_option_0_requires_a_value_of_type_1:r(5073,1,\"Build_option_0_requires_a_value_of_type_1_5073\",\"Build option '{0}' requires a value of type {1}.\"),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:r(5074,1,\"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\",\"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.\"),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:r(5075,1,\"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\",\"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),_0_and_1_operations_cannot_be_mixed_without_parentheses:r(5076,1,\"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\",\"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),Unknown_build_option_0_Did_you_mean_1:r(5077,1,\"Unknown_build_option_0_Did_you_mean_1_5077\",\"Unknown build option '{0}'. Did you mean '{1}'?\"),Unknown_watch_option_0:r(5078,1,\"Unknown_watch_option_0_5078\",\"Unknown watch option '{0}'.\"),Unknown_watch_option_0_Did_you_mean_1:r(5079,1,\"Unknown_watch_option_0_Did_you_mean_1_5079\",\"Unknown watch option '{0}'. Did you mean '{1}'?\"),Watch_option_0_requires_a_value_of_type_1:r(5080,1,\"Watch_option_0_requires_a_value_of_type_1_5080\",\"Watch option '{0}' requires a value of type {1}.\"),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:r(5081,1,\"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081\",\"Cannot find a tsconfig.json file at the current directory: {0}.\"),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:r(5082,1,\"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082\",\"'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.\"),Cannot_read_file_0:r(5083,1,\"Cannot_read_file_0_5083\",\"Cannot read file '{0}'.\"),A_tuple_member_cannot_be_both_optional_and_rest:r(5085,1,\"A_tuple_member_cannot_be_both_optional_and_rest_5085\",\"A tuple member cannot be both optional and rest.\"),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:r(5086,1,\"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086\",\"A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.\"),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:r(5087,1,\"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087\",\"A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.\"),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:r(5088,1,\"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088\",\"The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.\"),Option_0_cannot_be_specified_when_option_jsx_is_1:r(5089,1,\"Option_0_cannot_be_specified_when_option_jsx_is_1_5089\",\"Option '{0}' cannot be specified when option 'jsx' is '{1}'.\"),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:r(5090,1,\"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090\",\"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\"),Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled:r(5091,1,\"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091\",\"Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled.\"),The_root_value_of_a_0_file_must_be_an_object:r(5092,1,\"The_root_value_of_a_0_file_must_be_an_object_5092\",\"The root value of a '{0}' file must be an object.\"),Compiler_option_0_may_only_be_used_with_build:r(5093,1,\"Compiler_option_0_may_only_be_used_with_build_5093\",\"Compiler option '--{0}' may only be used with '--build'.\"),Compiler_option_0_may_not_be_used_with_build:r(5094,1,\"Compiler_option_0_may_not_be_used_with_build_5094\",\"Compiler option '--{0}' may not be used with '--build'.\"),Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later:r(5095,1,\"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095\",\"Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later.\"),Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set:r(5096,1,\"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096\",\"Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set.\"),An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled:r(5097,1,\"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097\",\"An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled.\"),Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler:r(5098,1,\"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098\",\"Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.\"),Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error:r(5101,1,\"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101\",`Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error.`),Option_0_has_been_removed_Please_remove_it_from_your_configuration:r(5102,1,\"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102\",\"Option '{0}' has been removed. Please remove it from your configuration.\"),Invalid_value_for_ignoreDeprecations:r(5103,1,\"Invalid_value_for_ignoreDeprecations_5103\",\"Invalid value for '--ignoreDeprecations'.\"),Option_0_is_redundant_and_cannot_be_specified_with_option_1:r(5104,1,\"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104\",\"Option '{0}' is redundant and cannot be specified with option '{1}'.\"),Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System:r(5105,1,\"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105\",\"Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'.\"),Use_0_instead:r(5106,3,\"Use_0_instead_5106\",\"Use '{0}' instead.\"),Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error:r(5107,1,\"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107\",`Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error.`),Option_0_1_has_been_removed_Please_remove_it_from_your_configuration:r(5108,1,\"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108\",\"Option '{0}={1}' has been removed. Please remove it from your configuration.\"),Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1:r(5109,1,\"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109\",\"Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.\"),Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1:r(5110,1,\"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110\",\"Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.\"),Generates_a_sourcemap_for_each_corresponding_d_ts_file:r(6e3,3,\"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\",\"Generates a sourcemap for each corresponding '.d.ts' file.\"),Concatenate_and_emit_output_to_single_file:r(6001,3,\"Concatenate_and_emit_output_to_single_file_6001\",\"Concatenate and emit output to single file.\"),Generates_corresponding_d_ts_file:r(6002,3,\"Generates_corresponding_d_ts_file_6002\",\"Generates corresponding '.d.ts' file.\"),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:r(6004,3,\"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\",\"Specify the location where debugger should locate TypeScript files instead of source locations.\"),Watch_input_files:r(6005,3,\"Watch_input_files_6005\",\"Watch input files.\"),Redirect_output_structure_to_the_directory:r(6006,3,\"Redirect_output_structure_to_the_directory_6006\",\"Redirect output structure to the directory.\"),Do_not_erase_const_enum_declarations_in_generated_code:r(6007,3,\"Do_not_erase_const_enum_declarations_in_generated_code_6007\",\"Do not erase const enum declarations in generated code.\"),Do_not_emit_outputs_if_any_errors_were_reported:r(6008,3,\"Do_not_emit_outputs_if_any_errors_were_reported_6008\",\"Do not emit outputs if any errors were reported.\"),Do_not_emit_comments_to_output:r(6009,3,\"Do_not_emit_comments_to_output_6009\",\"Do not emit comments to output.\"),Do_not_emit_outputs:r(6010,3,\"Do_not_emit_outputs_6010\",\"Do not emit outputs.\"),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:r(6011,3,\"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\",\"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),Skip_type_checking_of_declaration_files:r(6012,3,\"Skip_type_checking_of_declaration_files_6012\",\"Skip type checking of declaration files.\"),Do_not_resolve_the_real_path_of_symlinks:r(6013,3,\"Do_not_resolve_the_real_path_of_symlinks_6013\",\"Do not resolve the real path of symlinks.\"),Only_emit_d_ts_declaration_files:r(6014,3,\"Only_emit_d_ts_declaration_files_6014\",\"Only emit '.d.ts' declaration files.\"),Specify_ECMAScript_target_version:r(6015,3,\"Specify_ECMAScript_target_version_6015\",\"Specify ECMAScript target version.\"),Specify_module_code_generation:r(6016,3,\"Specify_module_code_generation_6016\",\"Specify module code generation.\"),Print_this_message:r(6017,3,\"Print_this_message_6017\",\"Print this message.\"),Print_the_compiler_s_version:r(6019,3,\"Print_the_compiler_s_version_6019\",\"Print the compiler's version.\"),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:r(6020,3,\"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\",\"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),Syntax_Colon_0:r(6023,3,\"Syntax_Colon_0_6023\",\"Syntax: {0}\"),options:r(6024,3,\"options_6024\",\"options\"),file:r(6025,3,\"file_6025\",\"file\"),Examples_Colon_0:r(6026,3,\"Examples_Colon_0_6026\",\"Examples: {0}\"),Options_Colon:r(6027,3,\"Options_Colon_6027\",\"Options:\"),Version_0:r(6029,3,\"Version_0_6029\",\"Version {0}\"),Insert_command_line_options_and_files_from_a_file:r(6030,3,\"Insert_command_line_options_and_files_from_a_file_6030\",\"Insert command line options and files from a file.\"),Starting_compilation_in_watch_mode:r(6031,3,\"Starting_compilation_in_watch_mode_6031\",\"Starting compilation in watch mode...\"),File_change_detected_Starting_incremental_compilation:r(6032,3,\"File_change_detected_Starting_incremental_compilation_6032\",\"File change detected. Starting incremental compilation...\"),KIND:r(6034,3,\"KIND_6034\",\"KIND\"),FILE:r(6035,3,\"FILE_6035\",\"FILE\"),VERSION:r(6036,3,\"VERSION_6036\",\"VERSION\"),LOCATION:r(6037,3,\"LOCATION_6037\",\"LOCATION\"),DIRECTORY:r(6038,3,\"DIRECTORY_6038\",\"DIRECTORY\"),STRATEGY:r(6039,3,\"STRATEGY_6039\",\"STRATEGY\"),FILE_OR_DIRECTORY:r(6040,3,\"FILE_OR_DIRECTORY_6040\",\"FILE OR DIRECTORY\"),Errors_Files:r(6041,3,\"Errors_Files_6041\",\"Errors Files\"),Generates_corresponding_map_file:r(6043,3,\"Generates_corresponding_map_file_6043\",\"Generates corresponding '.map' file.\"),Compiler_option_0_expects_an_argument:r(6044,1,\"Compiler_option_0_expects_an_argument_6044\",\"Compiler option '{0}' expects an argument.\"),Unterminated_quoted_string_in_response_file_0:r(6045,1,\"Unterminated_quoted_string_in_response_file_0_6045\",\"Unterminated quoted string in response file '{0}'.\"),Argument_for_0_option_must_be_Colon_1:r(6046,1,\"Argument_for_0_option_must_be_Colon_1_6046\",\"Argument for '{0}' option must be: {1}.\"),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:r(6048,1,\"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\",\"Locale must be of the form or -. For example '{0}' or '{1}'.\"),Unable_to_open_file_0:r(6050,1,\"Unable_to_open_file_0_6050\",\"Unable to open file '{0}'.\"),Corrupted_locale_file_0:r(6051,1,\"Corrupted_locale_file_0_6051\",\"Corrupted locale file {0}.\"),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:r(6052,3,\"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\",\"Raise error on expressions and declarations with an implied 'any' type.\"),File_0_not_found:r(6053,1,\"File_0_not_found_6053\",\"File '{0}' not found.\"),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:r(6054,1,\"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054\",\"File '{0}' has an unsupported extension. The only supported extensions are {1}.\"),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:r(6055,3,\"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\",\"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:r(6056,3,\"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\",\"Do not emit declarations for code that has an '@internal' annotation.\"),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:r(6058,3,\"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\",\"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:r(6059,1,\"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\",\"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:r(6060,3,\"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\",\"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),NEWLINE:r(6061,3,\"NEWLINE_6061\",\"NEWLINE\"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:r(6064,1,\"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064\",\"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.\"),Enables_experimental_support_for_ES7_decorators:r(6065,3,\"Enables_experimental_support_for_ES7_decorators_6065\",\"Enables experimental support for ES7 decorators.\"),Enables_experimental_support_for_emitting_type_metadata_for_decorators:r(6066,3,\"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\",\"Enables experimental support for emitting type metadata for decorators.\"),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:r(6070,3,\"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\",\"Initializes a TypeScript project and creates a tsconfig.json file.\"),Successfully_created_a_tsconfig_json_file:r(6071,3,\"Successfully_created_a_tsconfig_json_file_6071\",\"Successfully created a tsconfig.json file.\"),Suppress_excess_property_checks_for_object_literals:r(6072,3,\"Suppress_excess_property_checks_for_object_literals_6072\",\"Suppress excess property checks for object literals.\"),Stylize_errors_and_messages_using_color_and_context_experimental:r(6073,3,\"Stylize_errors_and_messages_using_color_and_context_experimental_6073\",\"Stylize errors and messages using color and context (experimental).\"),Do_not_report_errors_on_unused_labels:r(6074,3,\"Do_not_report_errors_on_unused_labels_6074\",\"Do not report errors on unused labels.\"),Report_error_when_not_all_code_paths_in_function_return_a_value:r(6075,3,\"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\",\"Report error when not all code paths in function return a value.\"),Report_errors_for_fallthrough_cases_in_switch_statement:r(6076,3,\"Report_errors_for_fallthrough_cases_in_switch_statement_6076\",\"Report errors for fallthrough cases in switch statement.\"),Do_not_report_errors_on_unreachable_code:r(6077,3,\"Do_not_report_errors_on_unreachable_code_6077\",\"Do not report errors on unreachable code.\"),Disallow_inconsistently_cased_references_to_the_same_file:r(6078,3,\"Disallow_inconsistently_cased_references_to_the_same_file_6078\",\"Disallow inconsistently-cased references to the same file.\"),Specify_library_files_to_be_included_in_the_compilation:r(6079,3,\"Specify_library_files_to_be_included_in_the_compilation_6079\",\"Specify library files to be included in the compilation.\"),Specify_JSX_code_generation:r(6080,3,\"Specify_JSX_code_generation_6080\",\"Specify JSX code generation.\"),Only_amd_and_system_modules_are_supported_alongside_0:r(6082,1,\"Only_amd_and_system_modules_are_supported_alongside_0_6082\",\"Only 'amd' and 'system' modules are supported alongside --{0}.\"),Base_directory_to_resolve_non_absolute_module_names:r(6083,3,\"Base_directory_to_resolve_non_absolute_module_names_6083\",\"Base directory to resolve non-absolute module names.\"),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:r(6084,3,\"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\",\"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),Enable_tracing_of_the_name_resolution_process:r(6085,3,\"Enable_tracing_of_the_name_resolution_process_6085\",\"Enable tracing of the name resolution process.\"),Resolving_module_0_from_1:r(6086,3,\"Resolving_module_0_from_1_6086\",\"======== Resolving module '{0}' from '{1}'. ========\"),Explicitly_specified_module_resolution_kind_Colon_0:r(6087,3,\"Explicitly_specified_module_resolution_kind_Colon_0_6087\",\"Explicitly specified module resolution kind: '{0}'.\"),Module_resolution_kind_is_not_specified_using_0:r(6088,3,\"Module_resolution_kind_is_not_specified_using_0_6088\",\"Module resolution kind is not specified, using '{0}'.\"),Module_name_0_was_successfully_resolved_to_1:r(6089,3,\"Module_name_0_was_successfully_resolved_to_1_6089\",\"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),Module_name_0_was_not_resolved:r(6090,3,\"Module_name_0_was_not_resolved_6090\",\"======== Module name '{0}' was not resolved. ========\"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:r(6091,3,\"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\",\"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),Module_name_0_matched_pattern_1:r(6092,3,\"Module_name_0_matched_pattern_1_6092\",\"Module name '{0}', matched pattern '{1}'.\"),Trying_substitution_0_candidate_module_location_Colon_1:r(6093,3,\"Trying_substitution_0_candidate_module_location_Colon_1_6093\",\"Trying substitution '{0}', candidate module location: '{1}'.\"),Resolving_module_name_0_relative_to_base_url_1_2:r(6094,3,\"Resolving_module_name_0_relative_to_base_url_1_2_6094\",\"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1:r(6095,3,\"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095\",\"Loading module as file / folder, candidate module location '{0}', target file types: {1}.\"),File_0_does_not_exist:r(6096,3,\"File_0_does_not_exist_6096\",\"File '{0}' does not exist.\"),File_0_exists_use_it_as_a_name_resolution_result:r(6097,3,\"File_0_exists_use_it_as_a_name_resolution_result_6097\",\"File '{0}' exists - use it as a name resolution result.\"),Loading_module_0_from_node_modules_folder_target_file_types_Colon_1:r(6098,3,\"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098\",\"Loading module '{0}' from 'node_modules' folder, target file types: {1}.\"),Found_package_json_at_0:r(6099,3,\"Found_package_json_at_0_6099\",\"Found 'package.json' at '{0}'.\"),package_json_does_not_have_a_0_field:r(6100,3,\"package_json_does_not_have_a_0_field_6100\",\"'package.json' does not have a '{0}' field.\"),package_json_has_0_field_1_that_references_2:r(6101,3,\"package_json_has_0_field_1_that_references_2_6101\",\"'package.json' has '{0}' field '{1}' that references '{2}'.\"),Allow_javascript_files_to_be_compiled:r(6102,3,\"Allow_javascript_files_to_be_compiled_6102\",\"Allow javascript files to be compiled.\"),Checking_if_0_is_the_longest_matching_prefix_for_1_2:r(6104,3,\"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\",\"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),Expected_type_of_0_field_in_package_json_to_be_1_got_2:r(6105,3,\"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\",\"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:r(6106,3,\"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\",\"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:r(6107,3,\"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\",\"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),Longest_matching_prefix_for_0_is_1:r(6108,3,\"Longest_matching_prefix_for_0_is_1_6108\",\"Longest matching prefix for '{0}' is '{1}'.\"),Loading_0_from_the_root_dir_1_candidate_location_2:r(6109,3,\"Loading_0_from_the_root_dir_1_candidate_location_2_6109\",\"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),Trying_other_entries_in_rootDirs:r(6110,3,\"Trying_other_entries_in_rootDirs_6110\",\"Trying other entries in 'rootDirs'.\"),Module_resolution_using_rootDirs_has_failed:r(6111,3,\"Module_resolution_using_rootDirs_has_failed_6111\",\"Module resolution using 'rootDirs' has failed.\"),Do_not_emit_use_strict_directives_in_module_output:r(6112,3,\"Do_not_emit_use_strict_directives_in_module_output_6112\",\"Do not emit 'use strict' directives in module output.\"),Enable_strict_null_checks:r(6113,3,\"Enable_strict_null_checks_6113\",\"Enable strict null checks.\"),Unknown_option_excludes_Did_you_mean_exclude:r(6114,1,\"Unknown_option_excludes_Did_you_mean_exclude_6114\",\"Unknown option 'excludes'. Did you mean 'exclude'?\"),Raise_error_on_this_expressions_with_an_implied_any_type:r(6115,3,\"Raise_error_on_this_expressions_with_an_implied_any_type_6115\",\"Raise error on 'this' expressions with an implied 'any' type.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:r(6116,3,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:r(6119,3,\"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\",\"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),Type_reference_directive_0_was_not_resolved:r(6120,3,\"Type_reference_directive_0_was_not_resolved_6120\",\"======== Type reference directive '{0}' was not resolved. ========\"),Resolving_with_primary_search_path_0:r(6121,3,\"Resolving_with_primary_search_path_0_6121\",\"Resolving with primary search path '{0}'.\"),Root_directory_cannot_be_determined_skipping_primary_search_paths:r(6122,3,\"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\",\"Root directory cannot be determined, skipping primary search paths.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:r(6123,3,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),Type_declaration_files_to_be_included_in_compilation:r(6124,3,\"Type_declaration_files_to_be_included_in_compilation_6124\",\"Type declaration files to be included in compilation.\"),Looking_up_in_node_modules_folder_initial_location_0:r(6125,3,\"Looking_up_in_node_modules_folder_initial_location_0_6125\",\"Looking up in 'node_modules' folder, initial location '{0}'.\"),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:r(6126,3,\"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\",\"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:r(6127,3,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\",\"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:r(6128,3,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\",\"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),Resolving_real_path_for_0_result_1:r(6130,3,\"Resolving_real_path_for_0_result_1_6130\",\"Resolving real path for '{0}', result '{1}'.\"),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:r(6131,1,\"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\",\"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),File_name_0_has_a_1_extension_stripping_it:r(6132,3,\"File_name_0_has_a_1_extension_stripping_it_6132\",\"File name '{0}' has a '{1}' extension - stripping it.\"),_0_is_declared_but_its_value_is_never_read:r(6133,1,\"_0_is_declared_but_its_value_is_never_read_6133\",\"'{0}' is declared but its value is never read.\",!0),Report_errors_on_unused_locals:r(6134,3,\"Report_errors_on_unused_locals_6134\",\"Report errors on unused locals.\"),Report_errors_on_unused_parameters:r(6135,3,\"Report_errors_on_unused_parameters_6135\",\"Report errors on unused parameters.\"),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:r(6136,3,\"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\",\"The maximum dependency depth to search under node_modules and load JavaScript files.\"),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:r(6137,1,\"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\",\"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),Property_0_is_declared_but_its_value_is_never_read:r(6138,1,\"Property_0_is_declared_but_its_value_is_never_read_6138\",\"Property '{0}' is declared but its value is never read.\",!0),Import_emit_helpers_from_tslib:r(6139,3,\"Import_emit_helpers_from_tslib_6139\",\"Import emit helpers from 'tslib'.\"),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:r(6140,1,\"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\",\"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:r(6141,3,\"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\",'Parse in strict mode and emit \"use strict\" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:r(6142,1,\"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\",\"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:r(6144,3,\"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\",\"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:r(6146,3,\"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\",\"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),Resolution_for_module_0_was_found_in_cache_from_location_1:r(6147,3,\"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\",\"Resolution for module '{0}' was found in cache from location '{1}'.\"),Directory_0_does_not_exist_skipping_all_lookups_in_it:r(6148,3,\"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\",\"Directory '{0}' does not exist, skipping all lookups in it.\"),Show_diagnostic_information:r(6149,3,\"Show_diagnostic_information_6149\",\"Show diagnostic information.\"),Show_verbose_diagnostic_information:r(6150,3,\"Show_verbose_diagnostic_information_6150\",\"Show verbose diagnostic information.\"),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:r(6151,3,\"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\",\"Emit a single file with source maps instead of having a separate file.\"),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:r(6152,3,\"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\",\"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:r(6153,3,\"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\",\"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),Print_names_of_generated_files_part_of_the_compilation:r(6154,3,\"Print_names_of_generated_files_part_of_the_compilation_6154\",\"Print names of generated files part of the compilation.\"),Print_names_of_files_part_of_the_compilation:r(6155,3,\"Print_names_of_files_part_of_the_compilation_6155\",\"Print names of files part of the compilation.\"),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:r(6156,3,\"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\",\"The locale used when displaying messages to the user (e.g. 'en-us')\"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:r(6157,3,\"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\",\"Do not generate custom helper functions like '__extends' in compiled output.\"),Do_not_include_the_default_library_file_lib_d_ts:r(6158,3,\"Do_not_include_the_default_library_file_lib_d_ts_6158\",\"Do not include the default library file (lib.d.ts).\"),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:r(6159,3,\"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\",\"Do not add triple-slash references or imported modules to the list of compiled files.\"),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:r(6160,3,\"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\",\"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),List_of_folders_to_include_type_definitions_from:r(6161,3,\"List_of_folders_to_include_type_definitions_from_6161\",\"List of folders to include type definitions from.\"),Disable_size_limitations_on_JavaScript_projects:r(6162,3,\"Disable_size_limitations_on_JavaScript_projects_6162\",\"Disable size limitations on JavaScript projects.\"),The_character_set_of_the_input_files:r(6163,3,\"The_character_set_of_the_input_files_6163\",\"The character set of the input files.\"),Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1:r(6164,3,\"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164\",\"Skipping module '{0}' that looks like an absolute URI, target file types: {1}.\"),Do_not_truncate_error_messages:r(6165,3,\"Do_not_truncate_error_messages_6165\",\"Do not truncate error messages.\"),Output_directory_for_generated_declaration_files:r(6166,3,\"Output_directory_for_generated_declaration_files_6166\",\"Output directory for generated declaration files.\"),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:r(6167,3,\"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\",\"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:r(6168,3,\"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\",\"List of root folders whose combined content represents the structure of the project at runtime.\"),Show_all_compiler_options:r(6169,3,\"Show_all_compiler_options_6169\",\"Show all compiler options.\"),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:r(6170,3,\"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\",\"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),Command_line_Options:r(6171,3,\"Command_line_Options_6171\",\"Command-line Options\"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5:r(6179,3,\"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179\",\"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'.\"),Enable_all_strict_type_checking_options:r(6180,3,\"Enable_all_strict_type_checking_options_6180\",\"Enable all strict type-checking options.\"),Scoped_package_detected_looking_in_0:r(6182,3,\"Scoped_package_detected_looking_in_0_6182\",\"Scoped package detected, looking in '{0}'\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:r(6183,3,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:r(6184,3,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),Enable_strict_checking_of_function_types:r(6186,3,\"Enable_strict_checking_of_function_types_6186\",\"Enable strict checking of function types.\"),Enable_strict_checking_of_property_initialization_in_classes:r(6187,3,\"Enable_strict_checking_of_property_initialization_in_classes_6187\",\"Enable strict checking of property initialization in classes.\"),Numeric_separators_are_not_allowed_here:r(6188,1,\"Numeric_separators_are_not_allowed_here_6188\",\"Numeric separators are not allowed here.\"),Multiple_consecutive_numeric_separators_are_not_permitted:r(6189,1,\"Multiple_consecutive_numeric_separators_are_not_permitted_6189\",\"Multiple consecutive numeric separators are not permitted.\"),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:r(6191,3,\"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\",\"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),All_imports_in_import_declaration_are_unused:r(6192,1,\"All_imports_in_import_declaration_are_unused_6192\",\"All imports in import declaration are unused.\",!0),Found_1_error_Watching_for_file_changes:r(6193,3,\"Found_1_error_Watching_for_file_changes_6193\",\"Found 1 error. Watching for file changes.\"),Found_0_errors_Watching_for_file_changes:r(6194,3,\"Found_0_errors_Watching_for_file_changes_6194\",\"Found {0} errors. Watching for file changes.\"),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:r(6195,3,\"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\",\"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),_0_is_declared_but_never_used:r(6196,1,\"_0_is_declared_but_never_used_6196\",\"'{0}' is declared but never used.\",!0),Include_modules_imported_with_json_extension:r(6197,3,\"Include_modules_imported_with_json_extension_6197\",\"Include modules imported with '.json' extension\"),All_destructured_elements_are_unused:r(6198,1,\"All_destructured_elements_are_unused_6198\",\"All destructured elements are unused.\",!0),All_variables_are_unused:r(6199,1,\"All_variables_are_unused_6199\",\"All variables are unused.\",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:r(6200,1,\"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\",\"Definitions of the following identifiers conflict with those in another file: {0}\"),Conflicts_are_in_this_file:r(6201,3,\"Conflicts_are_in_this_file_6201\",\"Conflicts are in this file.\"),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:r(6202,1,\"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\",\"Project references may not form a circular graph. Cycle detected: {0}\"),_0_was_also_declared_here:r(6203,3,\"_0_was_also_declared_here_6203\",\"'{0}' was also declared here.\"),and_here:r(6204,3,\"and_here_6204\",\"and here.\"),All_type_parameters_are_unused:r(6205,1,\"All_type_parameters_are_unused_6205\",\"All type parameters are unused.\"),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:r(6206,3,\"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\",\"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:r(6207,3,\"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\",\"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:r(6208,3,\"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\",\"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:r(6209,3,\"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\",\"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),An_argument_for_0_was_not_provided:r(6210,3,\"An_argument_for_0_was_not_provided_6210\",\"An argument for '{0}' was not provided.\"),An_argument_matching_this_binding_pattern_was_not_provided:r(6211,3,\"An_argument_matching_this_binding_pattern_was_not_provided_6211\",\"An argument matching this binding pattern was not provided.\"),Did_you_mean_to_call_this_expression:r(6212,3,\"Did_you_mean_to_call_this_expression_6212\",\"Did you mean to call this expression?\"),Did_you_mean_to_use_new_with_this_expression:r(6213,3,\"Did_you_mean_to_use_new_with_this_expression_6213\",\"Did you mean to use 'new' with this expression?\"),Enable_strict_bind_call_and_apply_methods_on_functions:r(6214,3,\"Enable_strict_bind_call_and_apply_methods_on_functions_6214\",\"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),Using_compiler_options_of_project_reference_redirect_0:r(6215,3,\"Using_compiler_options_of_project_reference_redirect_0_6215\",\"Using compiler options of project reference redirect '{0}'.\"),Found_1_error:r(6216,3,\"Found_1_error_6216\",\"Found 1 error.\"),Found_0_errors:r(6217,3,\"Found_0_errors_6217\",\"Found {0} errors.\"),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:r(6218,3,\"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\",\"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:r(6219,3,\"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\",\"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),package_json_had_a_falsy_0_field:r(6220,3,\"package_json_had_a_falsy_0_field_6220\",\"'package.json' had a falsy '{0}' field.\"),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:r(6221,3,\"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\",\"Disable use of source files instead of declaration files from referenced projects.\"),Emit_class_fields_with_Define_instead_of_Set:r(6222,3,\"Emit_class_fields_with_Define_instead_of_Set_6222\",\"Emit class fields with Define instead of Set.\"),Generates_a_CPU_profile:r(6223,3,\"Generates_a_CPU_profile_6223\",\"Generates a CPU profile.\"),Disable_solution_searching_for_this_project:r(6224,3,\"Disable_solution_searching_for_this_project_6224\",\"Disable solution searching for this project.\"),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:r(6225,3,\"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225\",\"Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.\"),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:r(6226,3,\"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226\",\"Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.\"),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:r(6227,3,\"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227\",\"Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.\"),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:r(6229,1,\"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229\",\"Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.\"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:r(6230,1,\"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230\",\"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.\"),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:r(6231,1,\"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231\",\"Could not resolve the path '{0}' with the extensions: {1}.\"),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:r(6232,1,\"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232\",\"Declaration augments declaration in another file. This cannot be serialized.\"),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:r(6233,1,\"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233\",\"This is the declaration being augmented. Consider moving the augmenting declaration into the same file.\"),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:r(6234,1,\"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234\",\"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?\"),Disable_loading_referenced_projects:r(6235,3,\"Disable_loading_referenced_projects_6235\",\"Disable loading referenced projects.\"),Arguments_for_the_rest_parameter_0_were_not_provided:r(6236,1,\"Arguments_for_the_rest_parameter_0_were_not_provided_6236\",\"Arguments for the rest parameter '{0}' were not provided.\"),Generates_an_event_trace_and_a_list_of_types:r(6237,3,\"Generates_an_event_trace_and_a_list_of_types_6237\",\"Generates an event trace and a list of types.\"),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:r(6238,1,\"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238\",\"Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react\"),File_0_exists_according_to_earlier_cached_lookups:r(6239,3,\"File_0_exists_according_to_earlier_cached_lookups_6239\",\"File '{0}' exists according to earlier cached lookups.\"),File_0_does_not_exist_according_to_earlier_cached_lookups:r(6240,3,\"File_0_does_not_exist_according_to_earlier_cached_lookups_6240\",\"File '{0}' does not exist according to earlier cached lookups.\"),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:r(6241,3,\"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241\",\"Resolution for type reference directive '{0}' was found in cache from location '{1}'.\"),Resolving_type_reference_directive_0_containing_file_1:r(6242,3,\"Resolving_type_reference_directive_0_containing_file_1_6242\",\"======== Resolving type reference directive '{0}', containing file '{1}'. ========\"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:r(6243,3,\"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243\",\"Interpret optional property types as written, rather than adding 'undefined'.\"),Modules:r(6244,3,\"Modules_6244\",\"Modules\"),File_Management:r(6245,3,\"File_Management_6245\",\"File Management\"),Emit:r(6246,3,\"Emit_6246\",\"Emit\"),JavaScript_Support:r(6247,3,\"JavaScript_Support_6247\",\"JavaScript Support\"),Type_Checking:r(6248,3,\"Type_Checking_6248\",\"Type Checking\"),Editor_Support:r(6249,3,\"Editor_Support_6249\",\"Editor Support\"),Watch_and_Build_Modes:r(6250,3,\"Watch_and_Build_Modes_6250\",\"Watch and Build Modes\"),Compiler_Diagnostics:r(6251,3,\"Compiler_Diagnostics_6251\",\"Compiler Diagnostics\"),Interop_Constraints:r(6252,3,\"Interop_Constraints_6252\",\"Interop Constraints\"),Backwards_Compatibility:r(6253,3,\"Backwards_Compatibility_6253\",\"Backwards Compatibility\"),Language_and_Environment:r(6254,3,\"Language_and_Environment_6254\",\"Language and Environment\"),Projects:r(6255,3,\"Projects_6255\",\"Projects\"),Output_Formatting:r(6256,3,\"Output_Formatting_6256\",\"Output Formatting\"),Completeness:r(6257,3,\"Completeness_6257\",\"Completeness\"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:r(6258,1,\"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258\",\"'{0}' should be set inside the 'compilerOptions' object of the config json file\"),Found_1_error_in_0:r(6259,3,\"Found_1_error_in_0_6259\",\"Found 1 error in {0}\"),Found_0_errors_in_the_same_file_starting_at_Colon_1:r(6260,3,\"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260\",\"Found {0} errors in the same file, starting at: {1}\"),Found_0_errors_in_1_files:r(6261,3,\"Found_0_errors_in_1_files_6261\",\"Found {0} errors in {1} files.\"),File_name_0_has_a_1_extension_looking_up_2_instead:r(6262,3,\"File_name_0_has_a_1_extension_looking_up_2_instead_6262\",\"File name '{0}' has a '{1}' extension - looking up '{2}' instead.\"),Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set:r(6263,1,\"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263\",\"Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set.\"),Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present:r(6264,3,\"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264\",\"Enable importing files with any extension, provided a declaration file is present.\"),Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder:r(6265,3,\"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265\",\"Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder.\"),Option_0_can_only_be_specified_on_command_line:r(6266,1,\"Option_0_can_only_be_specified_on_command_line_6266\",\"Option '{0}' can only be specified on command line.\"),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:r(6270,3,\"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270\",\"Directory '{0}' has no containing package.json scope. Imports will not resolve.\"),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:r(6271,3,\"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271\",\"Import specifier '{0}' does not exist in package.json scope at path '{1}'.\"),Invalid_import_specifier_0_has_no_possible_resolutions:r(6272,3,\"Invalid_import_specifier_0_has_no_possible_resolutions_6272\",\"Invalid import specifier '{0}' has no possible resolutions.\"),package_json_scope_0_has_no_imports_defined:r(6273,3,\"package_json_scope_0_has_no_imports_defined_6273\",\"package.json scope '{0}' has no imports defined.\"),package_json_scope_0_explicitly_maps_specifier_1_to_null:r(6274,3,\"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274\",\"package.json scope '{0}' explicitly maps specifier '{1}' to null.\"),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:r(6275,3,\"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275\",\"package.json scope '{0}' has invalid type for target of specifier '{1}'\"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:r(6276,3,\"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276\",\"Export specifier '{0}' does not exist in package.json scope at path '{1}'.\"),Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update:r(6277,3,\"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277\",\"Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update.\"),There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings:r(6278,3,\"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278\",`There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings.`),Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update:r(6279,3,\"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279\",\"Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update.\"),There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler:r(6280,3,\"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280\",\"There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.\"),package_json_has_a_peerDependencies_field:r(6281,3,\"package_json_has_a_peerDependencies_field_6281\",\"'package.json' has a 'peerDependencies' field.\"),Found_peerDependency_0_with_1_version:r(6282,3,\"Found_peerDependency_0_with_1_version_6282\",\"Found peerDependency '{0}' with '{1}' version.\"),Failed_to_find_peerDependency_0:r(6283,3,\"Failed_to_find_peerDependency_0_6283\",\"Failed to find peerDependency '{0}'.\"),Enable_project_compilation:r(6302,3,\"Enable_project_compilation_6302\",\"Enable project compilation\"),Composite_projects_may_not_disable_declaration_emit:r(6304,1,\"Composite_projects_may_not_disable_declaration_emit_6304\",\"Composite projects may not disable declaration emit.\"),Output_file_0_has_not_been_built_from_source_file_1:r(6305,1,\"Output_file_0_has_not_been_built_from_source_file_1_6305\",\"Output file '{0}' has not been built from source file '{1}'.\"),Referenced_project_0_must_have_setting_composite_Colon_true:r(6306,1,\"Referenced_project_0_must_have_setting_composite_Colon_true_6306\",`Referenced project '{0}' must have setting \"composite\": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:r(6307,1,\"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\",\"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),Referenced_project_0_may_not_disable_emit:r(6310,1,\"Referenced_project_0_may_not_disable_emit_6310\",\"Referenced project '{0}' may not disable emit.\"),Project_0_is_out_of_date_because_output_1_is_older_than_input_2:r(6350,3,\"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350\",\"Project '{0}' is out of date because output '{1}' is older than input '{2}'\"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2:r(6351,3,\"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351\",\"Project '{0}' is up to date because newest input '{1}' is older than output '{2}'\"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:r(6352,3,\"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\",\"Project '{0}' is out of date because output file '{1}' does not exist\"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:r(6353,3,\"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\",\"Project '{0}' is out of date because its dependency '{1}' is out of date\"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:r(6354,3,\"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\",\"Project '{0}' is up to date with .d.ts files from its dependencies\"),Projects_in_this_build_Colon_0:r(6355,3,\"Projects_in_this_build_Colon_0_6355\",\"Projects in this build: {0}\"),A_non_dry_build_would_delete_the_following_files_Colon_0:r(6356,3,\"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\",\"A non-dry build would delete the following files: {0}\"),A_non_dry_build_would_build_project_0:r(6357,3,\"A_non_dry_build_would_build_project_0_6357\",\"A non-dry build would build project '{0}'\"),Building_project_0:r(6358,3,\"Building_project_0_6358\",\"Building project '{0}'...\"),Updating_output_timestamps_of_project_0:r(6359,3,\"Updating_output_timestamps_of_project_0_6359\",\"Updating output timestamps of project '{0}'...\"),Project_0_is_up_to_date:r(6361,3,\"Project_0_is_up_to_date_6361\",\"Project '{0}' is up to date\"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:r(6362,3,\"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\",\"Skipping build of project '{0}' because its dependency '{1}' has errors\"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:r(6363,3,\"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\",\"Project '{0}' can't be built because its dependency '{1}' has errors\"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:r(6364,3,\"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\",\"Build one or more projects and their dependencies, if out of date\"),Delete_the_outputs_of_all_projects:r(6365,3,\"Delete_the_outputs_of_all_projects_6365\",\"Delete the outputs of all projects.\"),Show_what_would_be_built_or_deleted_if_specified_with_clean:r(6367,3,\"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\",\"Show what would be built (or deleted, if specified with '--clean')\"),Option_build_must_be_the_first_command_line_argument:r(6369,1,\"Option_build_must_be_the_first_command_line_argument_6369\",\"Option '--build' must be the first command line argument.\"),Options_0_and_1_cannot_be_combined:r(6370,1,\"Options_0_and_1_cannot_be_combined_6370\",\"Options '{0}' and '{1}' cannot be combined.\"),Updating_unchanged_output_timestamps_of_project_0:r(6371,3,\"Updating_unchanged_output_timestamps_of_project_0_6371\",\"Updating unchanged output timestamps of project '{0}'...\"),A_non_dry_build_would_update_timestamps_for_output_of_project_0:r(6374,3,\"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\",\"A non-dry build would update timestamps for output of project '{0}'\"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:r(6377,1,\"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\",\"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),Composite_projects_may_not_disable_incremental_compilation:r(6379,1,\"Composite_projects_may_not_disable_incremental_compilation_6379\",\"Composite projects may not disable incremental compilation.\"),Specify_file_to_store_incremental_compilation_information:r(6380,3,\"Specify_file_to_store_incremental_compilation_information_6380\",\"Specify file to store incremental compilation information\"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:r(6381,3,\"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\",\"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:r(6382,3,\"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\",\"Skipping build of project '{0}' because its dependency '{1}' was not built\"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:r(6383,3,\"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\",\"Project '{0}' can't be built because its dependency '{1}' was not built\"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:r(6384,3,\"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384\",\"Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.\"),_0_is_deprecated:r(6385,2,\"_0_is_deprecated_6385\",\"'{0}' is deprecated.\",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:r(6386,3,\"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386\",\"Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.\"),The_signature_0_of_1_is_deprecated:r(6387,2,\"The_signature_0_of_1_is_deprecated_6387\",\"The signature '{0}' of '{1}' is deprecated.\",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:r(6388,3,\"Project_0_is_being_forcibly_rebuilt_6388\",\"Project '{0}' is being forcibly rebuilt\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:r(6389,3,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:r(6390,3,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:r(6391,3,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:r(6392,3,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:r(6393,3,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:r(6394,3,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:r(6395,3,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:r(6396,3,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:r(6397,3,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:r(6398,3,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted:r(6399,3,\"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399\",\"Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted\"),Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files:r(6400,3,\"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400\",\"Project '{0}' is up to date but needs to update timestamps of output files that are older than input files\"),Project_0_is_out_of_date_because_there_was_error_reading_file_1:r(6401,3,\"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401\",\"Project '{0}' is out of date because there was error reading file '{1}'\"),Resolving_in_0_mode_with_conditions_1:r(6402,3,\"Resolving_in_0_mode_with_conditions_1_6402\",\"Resolving in {0} mode with conditions {1}.\"),Matched_0_condition_1:r(6403,3,\"Matched_0_condition_1_6403\",\"Matched '{0}' condition '{1}'.\"),Using_0_subpath_1_with_target_2:r(6404,3,\"Using_0_subpath_1_with_target_2_6404\",\"Using '{0}' subpath '{1}' with target '{2}'.\"),Saw_non_matching_condition_0:r(6405,3,\"Saw_non_matching_condition_0_6405\",\"Saw non-matching condition '{0}'.\"),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions:r(6406,3,\"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406\",\"Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions\"),Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set:r(6407,3,\"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407\",\"Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set.\"),Use_the_package_json_exports_field_when_resolving_package_imports:r(6408,3,\"Use_the_package_json_exports_field_when_resolving_package_imports_6408\",\"Use the package.json 'exports' field when resolving package imports.\"),Use_the_package_json_imports_field_when_resolving_imports:r(6409,3,\"Use_the_package_json_imports_field_when_resolving_imports_6409\",\"Use the package.json 'imports' field when resolving imports.\"),Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports:r(6410,3,\"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410\",\"Conditions to set in addition to the resolver-specific defaults when resolving imports.\"),true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false:r(6411,3,\"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411\",\"`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`.\"),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more:r(6412,3,\"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412\",\"Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more.\"),Entering_conditional_exports:r(6413,3,\"Entering_conditional_exports_6413\",\"Entering conditional exports.\"),Resolved_under_condition_0:r(6414,3,\"Resolved_under_condition_0_6414\",\"Resolved under condition '{0}'.\"),Failed_to_resolve_under_condition_0:r(6415,3,\"Failed_to_resolve_under_condition_0_6415\",\"Failed to resolve under condition '{0}'.\"),Exiting_conditional_exports:r(6416,3,\"Exiting_conditional_exports_6416\",\"Exiting conditional exports.\"),Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0:r(6417,3,\"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417\",\"Searching all ancestor node_modules directories for preferred extensions: {0}.\"),Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0:r(6418,3,\"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418\",\"Searching all ancestor node_modules directories for fallback extensions: {0}.\"),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors:r(6419,3,\"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419\",\"Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors.\"),Project_0_is_out_of_date_because_1:r(6420,3,\"Project_0_is_out_of_date_because_1_6420\",\"Project '{0}' is out of date because {1}.\"),Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files:r(6421,3,\"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421\",\"Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.\"),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:r(6500,3,\"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\",\"The expected type comes from property '{0}' which is declared here on type '{1}'\"),The_expected_type_comes_from_this_index_signature:r(6501,3,\"The_expected_type_comes_from_this_index_signature_6501\",\"The expected type comes from this index signature.\"),The_expected_type_comes_from_the_return_type_of_this_signature:r(6502,3,\"The_expected_type_comes_from_the_return_type_of_this_signature_6502\",\"The expected type comes from the return type of this signature.\"),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:r(6503,3,\"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\",\"Print names of files that are part of the compilation and then stop processing.\"),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:r(6504,1,\"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504\",\"File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?\"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:r(6505,3,\"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505\",\"Print names of files and the reason they are part of the compilation.\"),Consider_adding_a_declare_modifier_to_this_class:r(6506,3,\"Consider_adding_a_declare_modifier_to_this_class_6506\",\"Consider adding a 'declare' modifier to this class.\"),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:r(6600,3,\"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600\",\"Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files.\"),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:r(6601,3,\"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601\",\"Allow 'import x from y' when a module doesn't have a default export.\"),Allow_accessing_UMD_globals_from_modules:r(6602,3,\"Allow_accessing_UMD_globals_from_modules_6602\",\"Allow accessing UMD globals from modules.\"),Disable_error_reporting_for_unreachable_code:r(6603,3,\"Disable_error_reporting_for_unreachable_code_6603\",\"Disable error reporting for unreachable code.\"),Disable_error_reporting_for_unused_labels:r(6604,3,\"Disable_error_reporting_for_unused_labels_6604\",\"Disable error reporting for unused labels.\"),Ensure_use_strict_is_always_emitted:r(6605,3,\"Ensure_use_strict_is_always_emitted_6605\",\"Ensure 'use strict' is always emitted.\"),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:r(6606,3,\"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606\",\"Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.\"),Specify_the_base_directory_to_resolve_non_relative_module_names:r(6607,3,\"Specify_the_base_directory_to_resolve_non_relative_module_names_6607\",\"Specify the base directory to resolve non-relative module names.\"),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:r(6608,3,\"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608\",\"No longer supported. In early versions, manually set the text encoding for reading files.\"),Enable_error_reporting_in_type_checked_JavaScript_files:r(6609,3,\"Enable_error_reporting_in_type_checked_JavaScript_files_6609\",\"Enable error reporting in type-checked JavaScript files.\"),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:r(6611,3,\"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611\",\"Enable constraints that allow a TypeScript project to be used with project references.\"),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:r(6612,3,\"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612\",\"Generate .d.ts files from TypeScript and JavaScript files in your project.\"),Specify_the_output_directory_for_generated_declaration_files:r(6613,3,\"Specify_the_output_directory_for_generated_declaration_files_6613\",\"Specify the output directory for generated declaration files.\"),Create_sourcemaps_for_d_ts_files:r(6614,3,\"Create_sourcemaps_for_d_ts_files_6614\",\"Create sourcemaps for d.ts files.\"),Output_compiler_performance_information_after_building:r(6615,3,\"Output_compiler_performance_information_after_building_6615\",\"Output compiler performance information after building.\"),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:r(6616,3,\"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616\",\"Disables inference for type acquisition by looking at filenames in a project.\"),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:r(6617,3,\"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617\",\"Reduce the number of projects loaded automatically by TypeScript.\"),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:r(6618,3,\"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618\",\"Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\"),Opt_a_project_out_of_multi_project_reference_checking_when_editing:r(6619,3,\"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619\",\"Opt a project out of multi-project reference checking when editing.\"),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:r(6620,3,\"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620\",\"Disable preferring source files instead of declaration files when referencing composite projects.\"),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:r(6621,3,\"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621\",\"Emit more compliant, but verbose and less performant JavaScript for iteration.\"),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:r(6622,3,\"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622\",\"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),Only_output_d_ts_files_and_not_JavaScript_files:r(6623,3,\"Only_output_d_ts_files_and_not_JavaScript_files_6623\",\"Only output d.ts files and not JavaScript files.\"),Emit_design_type_metadata_for_decorated_declarations_in_source_files:r(6624,3,\"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624\",\"Emit design-type metadata for decorated declarations in source files.\"),Disable_the_type_acquisition_for_JavaScript_projects:r(6625,3,\"Disable_the_type_acquisition_for_JavaScript_projects_6625\",\"Disable the type acquisition for JavaScript projects\"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:r(6626,3,\"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626\",\"Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.\"),Filters_results_from_the_include_option:r(6627,3,\"Filters_results_from_the_include_option_6627\",\"Filters results from the `include` option.\"),Remove_a_list_of_directories_from_the_watch_process:r(6628,3,\"Remove_a_list_of_directories_from_the_watch_process_6628\",\"Remove a list of directories from the watch process.\"),Remove_a_list_of_files_from_the_watch_mode_s_processing:r(6629,3,\"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629\",\"Remove a list of files from the watch mode's processing.\"),Enable_experimental_support_for_legacy_experimental_decorators:r(6630,3,\"Enable_experimental_support_for_legacy_experimental_decorators_6630\",\"Enable experimental support for legacy experimental decorators.\"),Print_files_read_during_the_compilation_including_why_it_was_included:r(6631,3,\"Print_files_read_during_the_compilation_including_why_it_was_included_6631\",\"Print files read during the compilation including why it was included.\"),Output_more_detailed_compiler_performance_information_after_building:r(6632,3,\"Output_more_detailed_compiler_performance_information_after_building_6632\",\"Output more detailed compiler performance information after building.\"),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:r(6633,3,\"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633\",\"Specify one or more path or node module references to base configuration files from which settings are inherited.\"),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:r(6634,3,\"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634\",\"Specify what approach the watcher should use if the system runs out of native file watchers.\"),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:r(6635,3,\"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635\",\"Include a list of files. This does not support glob patterns, as opposed to `include`.\"),Build_all_projects_including_those_that_appear_to_be_up_to_date:r(6636,3,\"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636\",\"Build all projects, including those that appear to be up to date.\"),Ensure_that_casing_is_correct_in_imports:r(6637,3,\"Ensure_that_casing_is_correct_in_imports_6637\",\"Ensure that casing is correct in imports.\"),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:r(6638,3,\"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638\",\"Emit a v8 CPU profile of the compiler run for debugging.\"),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:r(6639,3,\"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639\",\"Allow importing helper functions from tslib once per project, instead of including them per-file.\"),Skip_building_downstream_projects_on_error_in_upstream_project:r(6640,3,\"Skip_building_downstream_projects_on_error_in_upstream_project_6640\",\"Skip building downstream projects on error in upstream project.\"),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:r(6641,3,\"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641\",\"Specify a list of glob patterns that match files to be included in compilation.\"),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:r(6642,3,\"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642\",\"Save .tsbuildinfo files to allow for incremental compilation of projects.\"),Include_sourcemap_files_inside_the_emitted_JavaScript:r(6643,3,\"Include_sourcemap_files_inside_the_emitted_JavaScript_6643\",\"Include sourcemap files inside the emitted JavaScript.\"),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:r(6644,3,\"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644\",\"Include source code in the sourcemaps inside the emitted JavaScript.\"),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:r(6645,3,\"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645\",\"Ensure that each file can be safely transpiled without relying on other imports.\"),Specify_what_JSX_code_is_generated:r(6646,3,\"Specify_what_JSX_code_is_generated_6646\",\"Specify what JSX code is generated.\"),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:r(6647,3,\"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647\",\"Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.\"),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:r(6648,3,\"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648\",\"Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\"),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:r(6649,3,\"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649\",\"Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.\"),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:r(6650,3,\"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650\",\"Make keyof only return strings instead of string, numbers or symbols. Legacy option.\"),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:r(6651,3,\"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651\",\"Specify a set of bundled library declaration files that describe the target runtime environment.\"),Print_the_names_of_emitted_files_after_a_compilation:r(6652,3,\"Print_the_names_of_emitted_files_after_a_compilation_6652\",\"Print the names of emitted files after a compilation.\"),Print_all_of_the_files_read_during_the_compilation:r(6653,3,\"Print_all_of_the_files_read_during_the_compilation_6653\",\"Print all of the files read during the compilation.\"),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:r(6654,3,\"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654\",\"Set the language of the messaging from TypeScript. This does not affect emit.\"),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:r(6655,3,\"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655\",\"Specify the location where debugger should locate map files instead of generated locations.\"),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:r(6656,3,\"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656\",\"Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.\"),Specify_what_module_code_is_generated:r(6657,3,\"Specify_what_module_code_is_generated_6657\",\"Specify what module code is generated.\"),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:r(6658,3,\"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658\",\"Specify how TypeScript looks up a file from a given module specifier.\"),Set_the_newline_character_for_emitting_files:r(6659,3,\"Set_the_newline_character_for_emitting_files_6659\",\"Set the newline character for emitting files.\"),Disable_emitting_files_from_a_compilation:r(6660,3,\"Disable_emitting_files_from_a_compilation_6660\",\"Disable emitting files from a compilation.\"),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:r(6661,3,\"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661\",\"Disable generating custom helper functions like '__extends' in compiled output.\"),Disable_emitting_files_if_any_type_checking_errors_are_reported:r(6662,3,\"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662\",\"Disable emitting files if any type checking errors are reported.\"),Disable_truncating_types_in_error_messages:r(6663,3,\"Disable_truncating_types_in_error_messages_6663\",\"Disable truncating types in error messages.\"),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:r(6664,3,\"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664\",\"Enable error reporting for fallthrough cases in switch statements.\"),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:r(6665,3,\"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665\",\"Enable error reporting for expressions and declarations with an implied 'any' type.\"),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:r(6666,3,\"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666\",\"Ensure overriding members in derived classes are marked with an override modifier.\"),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:r(6667,3,\"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667\",\"Enable error reporting for codepaths that do not explicitly return in a function.\"),Enable_error_reporting_when_this_is_given_the_type_any:r(6668,3,\"Enable_error_reporting_when_this_is_given_the_type_any_6668\",\"Enable error reporting when 'this' is given the type 'any'.\"),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:r(6669,3,\"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669\",\"Disable adding 'use strict' directives in emitted JavaScript files.\"),Disable_including_any_library_files_including_the_default_lib_d_ts:r(6670,3,\"Disable_including_any_library_files_including_the_default_lib_d_ts_6670\",\"Disable including any library files, including the default lib.d.ts.\"),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:r(6671,3,\"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671\",\"Enforces using indexed accessors for keys declared using an indexed type.\"),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:r(6672,3,\"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672\",\"Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.\"),Disable_strict_checking_of_generic_signatures_in_function_types:r(6673,3,\"Disable_strict_checking_of_generic_signatures_in_function_types_6673\",\"Disable strict checking of generic signatures in function types.\"),Add_undefined_to_a_type_when_accessed_using_an_index:r(6674,3,\"Add_undefined_to_a_type_when_accessed_using_an_index_6674\",\"Add 'undefined' to a type when accessed using an index.\"),Enable_error_reporting_when_local_variables_aren_t_read:r(6675,3,\"Enable_error_reporting_when_local_variables_aren_t_read_6675\",\"Enable error reporting when local variables aren't read.\"),Raise_an_error_when_a_function_parameter_isn_t_read:r(6676,3,\"Raise_an_error_when_a_function_parameter_isn_t_read_6676\",\"Raise an error when a function parameter isn't read.\"),Deprecated_setting_Use_outFile_instead:r(6677,3,\"Deprecated_setting_Use_outFile_instead_6677\",\"Deprecated setting. Use 'outFile' instead.\"),Specify_an_output_folder_for_all_emitted_files:r(6678,3,\"Specify_an_output_folder_for_all_emitted_files_6678\",\"Specify an output folder for all emitted files.\"),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:r(6679,3,\"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679\",\"Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.\"),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:r(6680,3,\"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680\",\"Specify a set of entries that re-map imports to additional lookup locations.\"),Specify_a_list_of_language_service_plugins_to_include:r(6681,3,\"Specify_a_list_of_language_service_plugins_to_include_6681\",\"Specify a list of language service plugins to include.\"),Disable_erasing_const_enum_declarations_in_generated_code:r(6682,3,\"Disable_erasing_const_enum_declarations_in_generated_code_6682\",\"Disable erasing 'const enum' declarations in generated code.\"),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:r(6683,3,\"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683\",\"Disable resolving symlinks to their realpath. This correlates to the same flag in node.\"),Disable_wiping_the_console_in_watch_mode:r(6684,3,\"Disable_wiping_the_console_in_watch_mode_6684\",\"Disable wiping the console in watch mode.\"),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:r(6685,3,\"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685\",\"Enable color and formatting in TypeScript's output to make compiler errors easier to read.\"),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:r(6686,3,\"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686\",\"Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.\"),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:r(6687,3,\"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687\",\"Specify an array of objects that specify paths for projects. Used in project references.\"),Disable_emitting_comments:r(6688,3,\"Disable_emitting_comments_6688\",\"Disable emitting comments.\"),Enable_importing_json_files:r(6689,3,\"Enable_importing_json_files_6689\",\"Enable importing .json files.\"),Specify_the_root_folder_within_your_source_files:r(6690,3,\"Specify_the_root_folder_within_your_source_files_6690\",\"Specify the root folder within your source files.\"),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:r(6691,3,\"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691\",\"Allow multiple folders to be treated as one when resolving modules.\"),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:r(6692,3,\"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692\",\"Skip type checking .d.ts files that are included with TypeScript.\"),Skip_type_checking_all_d_ts_files:r(6693,3,\"Skip_type_checking_all_d_ts_files_6693\",\"Skip type checking all .d.ts files.\"),Create_source_map_files_for_emitted_JavaScript_files:r(6694,3,\"Create_source_map_files_for_emitted_JavaScript_files_6694\",\"Create source map files for emitted JavaScript files.\"),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:r(6695,3,\"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695\",\"Specify the root path for debuggers to find the reference source code.\"),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:r(6697,3,\"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697\",\"Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.\"),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:r(6698,3,\"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698\",\"When assigning functions, check to ensure parameters and the return values are subtype-compatible.\"),When_type_checking_take_into_account_null_and_undefined:r(6699,3,\"When_type_checking_take_into_account_null_and_undefined_6699\",\"When type checking, take into account 'null' and 'undefined'.\"),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:r(6700,3,\"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700\",\"Check for class properties that are declared but not set in the constructor.\"),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:r(6701,3,\"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701\",\"Disable emitting declarations that have '@internal' in their JSDoc comments.\"),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:r(6702,3,\"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702\",\"Disable reporting of excess property errors during the creation of object literals.\"),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:r(6703,3,\"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703\",\"Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.\"),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:r(6704,3,\"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704\",\"Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\"),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:r(6705,3,\"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705\",\"Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\"),Log_paths_used_during_the_moduleResolution_process:r(6706,3,\"Log_paths_used_during_the_moduleResolution_process_6706\",\"Log paths used during the 'moduleResolution' process.\"),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:r(6707,3,\"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707\",\"Specify the path to .tsbuildinfo incremental compilation file.\"),Specify_options_for_automatic_acquisition_of_declaration_files:r(6709,3,\"Specify_options_for_automatic_acquisition_of_declaration_files_6709\",\"Specify options for automatic acquisition of declaration files.\"),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:r(6710,3,\"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710\",\"Specify multiple folders that act like './node_modules/@types'.\"),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:r(6711,3,\"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711\",\"Specify type package names to be included without being referenced in a source file.\"),Emit_ECMAScript_standard_compliant_class_fields:r(6712,3,\"Emit_ECMAScript_standard_compliant_class_fields_6712\",\"Emit ECMAScript-standard-compliant class fields.\"),Enable_verbose_logging:r(6713,3,\"Enable_verbose_logging_6713\",\"Enable verbose logging.\"),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:r(6714,3,\"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714\",\"Specify how directories are watched on systems that lack recursive file-watching functionality.\"),Specify_how_the_TypeScript_watch_mode_works:r(6715,3,\"Specify_how_the_TypeScript_watch_mode_works_6715\",\"Specify how the TypeScript watch mode works.\"),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:r(6717,3,\"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717\",\"Require undeclared properties from index signatures to use element accesses.\"),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:r(6718,3,\"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718\",\"Specify emit/checking behavior for imports that are only used for types.\"),Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files:r(6719,3,\"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719\",\"Require sufficient annotation on exports so other tools can trivially generate declaration files.\"),Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any:r(6720,3,\"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720\",\"Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'.\"),Default_catch_clause_variables_as_unknown_instead_of_any:r(6803,3,\"Default_catch_clause_variables_as_unknown_instead_of_any_6803\",\"Default catch clause variables as 'unknown' instead of 'any'.\"),Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting:r(6804,3,\"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804\",\"Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.\"),Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported:r(6805,3,\"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805\",\"Disable full type checking (only critical parse and emit errors will be reported).\"),Check_side_effect_imports:r(6806,3,\"Check_side_effect_imports_6806\",\"Check side effect imports.\"),This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2:r(6807,1,\"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807\",\"This operation can be simplified. This shift is identical to `{0} {1} {2}`.\"),one_of_Colon:r(6900,3,\"one_of_Colon_6900\",\"one of:\"),one_or_more_Colon:r(6901,3,\"one_or_more_Colon_6901\",\"one or more:\"),type_Colon:r(6902,3,\"type_Colon_6902\",\"type:\"),default_Colon:r(6903,3,\"default_Colon_6903\",\"default:\"),module_system_or_esModuleInterop:r(6904,3,\"module_system_or_esModuleInterop_6904\",'module === \"system\" or esModuleInterop'),false_unless_strict_is_set:r(6905,3,\"false_unless_strict_is_set_6905\",\"`false`, unless `strict` is set\"),false_unless_composite_is_set:r(6906,3,\"false_unless_composite_is_set_6906\",\"`false`, unless `composite` is set\"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:r(6907,3,\"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907\",'`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:r(6908,3,\"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908\",'`[]` if `files` is specified, otherwise `[\"**/*\"]`'),true_if_composite_false_otherwise:r(6909,3,\"true_if_composite_false_otherwise_6909\",\"`true` if `composite`, `false` otherwise\"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:r(69010,3,\"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010\",\"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`\"),Computed_from_the_list_of_input_files:r(6911,3,\"Computed_from_the_list_of_input_files_6911\",\"Computed from the list of input files\"),Platform_specific:r(6912,3,\"Platform_specific_6912\",\"Platform specific\"),You_can_learn_about_all_of_the_compiler_options_at_0:r(6913,3,\"You_can_learn_about_all_of_the_compiler_options_at_0_6913\",\"You can learn about all of the compiler options at {0}\"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:r(6914,3,\"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914\",\"Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:\"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:r(6915,3,\"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915\",\"Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}\"),COMMON_COMMANDS:r(6916,3,\"COMMON_COMMANDS_6916\",\"COMMON COMMANDS\"),ALL_COMPILER_OPTIONS:r(6917,3,\"ALL_COMPILER_OPTIONS_6917\",\"ALL COMPILER OPTIONS\"),WATCH_OPTIONS:r(6918,3,\"WATCH_OPTIONS_6918\",\"WATCH OPTIONS\"),BUILD_OPTIONS:r(6919,3,\"BUILD_OPTIONS_6919\",\"BUILD OPTIONS\"),COMMON_COMPILER_OPTIONS:r(6920,3,\"COMMON_COMPILER_OPTIONS_6920\",\"COMMON COMPILER OPTIONS\"),COMMAND_LINE_FLAGS:r(6921,3,\"COMMAND_LINE_FLAGS_6921\",\"COMMAND LINE FLAGS\"),tsc_Colon_The_TypeScript_Compiler:r(6922,3,\"tsc_Colon_The_TypeScript_Compiler_6922\",\"tsc: The TypeScript Compiler\"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:r(6923,3,\"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923\",\"Compiles the current project (tsconfig.json in the working directory.)\"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:r(6924,3,\"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924\",\"Ignoring tsconfig.json, compiles the specified files with default compiler options.\"),Build_a_composite_project_in_the_working_directory:r(6925,3,\"Build_a_composite_project_in_the_working_directory_6925\",\"Build a composite project in the working directory.\"),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:r(6926,3,\"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926\",\"Creates a tsconfig.json with the recommended settings in the working directory.\"),Compiles_the_TypeScript_project_located_at_the_specified_path:r(6927,3,\"Compiles_the_TypeScript_project_located_at_the_specified_path_6927\",\"Compiles the TypeScript project located at the specified path.\"),An_expanded_version_of_this_information_showing_all_possible_compiler_options:r(6928,3,\"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928\",\"An expanded version of this information, showing all possible compiler options\"),Compiles_the_current_project_with_additional_settings:r(6929,3,\"Compiles_the_current_project_with_additional_settings_6929\",\"Compiles the current project, with additional settings.\"),true_for_ES2022_and_above_including_ESNext:r(6930,3,\"true_for_ES2022_and_above_including_ESNext_6930\",\"`true` for ES2022 and above, including ESNext.\"),List_of_file_name_suffixes_to_search_when_resolving_a_module:r(6931,1,\"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931\",\"List of file name suffixes to search when resolving a module.\"),Variable_0_implicitly_has_an_1_type:r(7005,1,\"Variable_0_implicitly_has_an_1_type_7005\",\"Variable '{0}' implicitly has an '{1}' type.\"),Parameter_0_implicitly_has_an_1_type:r(7006,1,\"Parameter_0_implicitly_has_an_1_type_7006\",\"Parameter '{0}' implicitly has an '{1}' type.\"),Member_0_implicitly_has_an_1_type:r(7008,1,\"Member_0_implicitly_has_an_1_type_7008\",\"Member '{0}' implicitly has an '{1}' type.\"),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:r(7009,1,\"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\",\"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:r(7010,1,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:r(7011,1,\"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\",\"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation:r(7012,1,\"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012\",\"This overload implicitly returns the type '{0}' because it lacks a return type annotation.\"),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:r(7013,1,\"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\",\"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:r(7014,1,\"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\",\"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:r(7015,1,\"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\",\"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:r(7016,1,\"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\",\"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:r(7017,1,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\",\"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),Object_literal_s_property_0_implicitly_has_an_1_type:r(7018,1,\"Object_literal_s_property_0_implicitly_has_an_1_type_7018\",\"Object literal's property '{0}' implicitly has an '{1}' type.\"),Rest_parameter_0_implicitly_has_an_any_type:r(7019,1,\"Rest_parameter_0_implicitly_has_an_any_type_7019\",\"Rest parameter '{0}' implicitly has an 'any[]' type.\"),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:r(7020,1,\"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\",\"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:r(7022,1,\"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\",\"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:r(7023,1,\"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\",\"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:r(7024,1,\"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\",\"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:r(7025,1,\"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025\",\"Generator implicitly has yield type '{0}'. Consider supplying a return type annotation.\"),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:r(7026,1,\"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\",\"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),Unreachable_code_detected:r(7027,1,\"Unreachable_code_detected_7027\",\"Unreachable code detected.\",!0),Unused_label:r(7028,1,\"Unused_label_7028\",\"Unused label.\",!0),Fallthrough_case_in_switch:r(7029,1,\"Fallthrough_case_in_switch_7029\",\"Fallthrough case in switch.\"),Not_all_code_paths_return_a_value:r(7030,1,\"Not_all_code_paths_return_a_value_7030\",\"Not all code paths return a value.\"),Binding_element_0_implicitly_has_an_1_type:r(7031,1,\"Binding_element_0_implicitly_has_an_1_type_7031\",\"Binding element '{0}' implicitly has an '{1}' type.\"),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:r(7032,1,\"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\",\"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:r(7033,1,\"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\",\"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:r(7034,1,\"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\",\"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:r(7035,1,\"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035\",\"Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:r(7036,1,\"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\",\"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:r(7037,3,\"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\",\"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:r(7038,3,\"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\",\"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),Mapped_object_type_implicitly_has_an_any_template_type:r(7039,1,\"Mapped_object_type_implicitly_has_an_any_template_type_7039\",\"Mapped object type implicitly has an 'any' template type.\"),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:r(7040,1,\"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\",\"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'\"),The_containing_arrow_function_captures_the_global_value_of_this:r(7041,1,\"The_containing_arrow_function_captures_the_global_value_of_this_7041\",\"The containing arrow function captures the global value of 'this'.\"),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:r(7042,1,\"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\",\"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:r(7043,2,\"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\",\"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:r(7044,2,\"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\",\"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:r(7045,2,\"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\",\"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:r(7046,2,\"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\",\"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:r(7047,2,\"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\",\"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:r(7048,2,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\",\"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:r(7049,2,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\",\"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:r(7050,2,\"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\",\"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:r(7051,1,\"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\",\"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:r(7052,1,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\",\"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?\"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:r(7053,1,\"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\",\"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:r(7054,1,\"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\",\"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:r(7055,1,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:r(7056,1,\"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056\",\"The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.\"),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:r(7057,1,\"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057\",\"'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.\"),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:r(7058,1,\"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058\",\"If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`\"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:r(7059,1,\"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059\",\"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:r(7060,1,\"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060\",\"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.\"),A_mapped_type_may_not_declare_properties_or_methods:r(7061,1,\"A_mapped_type_may_not_declare_properties_or_methods_7061\",\"A mapped type may not declare properties or methods.\"),You_cannot_rename_this_element:r(8e3,1,\"You_cannot_rename_this_element_8000\",\"You cannot rename this element.\"),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:r(8001,1,\"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\",\"You cannot rename elements that are defined in the standard TypeScript library.\"),import_can_only_be_used_in_TypeScript_files:r(8002,1,\"import_can_only_be_used_in_TypeScript_files_8002\",\"'import ... =' can only be used in TypeScript files.\"),export_can_only_be_used_in_TypeScript_files:r(8003,1,\"export_can_only_be_used_in_TypeScript_files_8003\",\"'export =' can only be used in TypeScript files.\"),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:r(8004,1,\"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004\",\"Type parameter declarations can only be used in TypeScript files.\"),implements_clauses_can_only_be_used_in_TypeScript_files:r(8005,1,\"implements_clauses_can_only_be_used_in_TypeScript_files_8005\",\"'implements' clauses can only be used in TypeScript files.\"),_0_declarations_can_only_be_used_in_TypeScript_files:r(8006,1,\"_0_declarations_can_only_be_used_in_TypeScript_files_8006\",\"'{0}' declarations can only be used in TypeScript files.\"),Type_aliases_can_only_be_used_in_TypeScript_files:r(8008,1,\"Type_aliases_can_only_be_used_in_TypeScript_files_8008\",\"Type aliases can only be used in TypeScript files.\"),The_0_modifier_can_only_be_used_in_TypeScript_files:r(8009,1,\"The_0_modifier_can_only_be_used_in_TypeScript_files_8009\",\"The '{0}' modifier can only be used in TypeScript files.\"),Type_annotations_can_only_be_used_in_TypeScript_files:r(8010,1,\"Type_annotations_can_only_be_used_in_TypeScript_files_8010\",\"Type annotations can only be used in TypeScript files.\"),Type_arguments_can_only_be_used_in_TypeScript_files:r(8011,1,\"Type_arguments_can_only_be_used_in_TypeScript_files_8011\",\"Type arguments can only be used in TypeScript files.\"),Parameter_modifiers_can_only_be_used_in_TypeScript_files:r(8012,1,\"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012\",\"Parameter modifiers can only be used in TypeScript files.\"),Non_null_assertions_can_only_be_used_in_TypeScript_files:r(8013,1,\"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013\",\"Non-null assertions can only be used in TypeScript files.\"),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:r(8016,1,\"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016\",\"Type assertion expressions can only be used in TypeScript files.\"),Signature_declarations_can_only_be_used_in_TypeScript_files:r(8017,1,\"Signature_declarations_can_only_be_used_in_TypeScript_files_8017\",\"Signature declarations can only be used in TypeScript files.\"),Report_errors_in_js_files:r(8019,3,\"Report_errors_in_js_files_8019\",\"Report errors in .js files.\"),JSDoc_types_can_only_be_used_inside_documentation_comments:r(8020,1,\"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\",\"JSDoc types can only be used inside documentation comments.\"),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:r(8021,1,\"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\",\"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),JSDoc_0_is_not_attached_to_a_class:r(8022,1,\"JSDoc_0_is_not_attached_to_a_class_8022\",\"JSDoc '@{0}' is not attached to a class.\"),JSDoc_0_1_does_not_match_the_extends_2_clause:r(8023,1,\"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\",\"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:r(8024,1,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:r(8025,1,\"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\",\"Class declarations cannot have more than one '@augments' or '@extends' tag.\"),Expected_0_type_arguments_provide_these_with_an_extends_tag:r(8026,1,\"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\",\"Expected {0} type arguments; provide these with an '@extends' tag.\"),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:r(8027,1,\"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\",\"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:r(8028,1,\"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\",\"JSDoc '...' may only appear in the last parameter of a signature.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:r(8029,1,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),The_type_of_a_function_declaration_must_match_the_function_s_signature:r(8030,1,\"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\",\"The type of a function declaration must match the function's signature.\"),You_cannot_rename_a_module_via_a_global_import:r(8031,1,\"You_cannot_rename_a_module_via_a_global_import_8031\",\"You cannot rename a module via a global import.\"),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:r(8032,1,\"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\",\"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:r(8033,1,\"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033\",\"A JSDoc '@typedef' comment may not contain multiple '@type' tags.\"),The_tag_was_first_specified_here:r(8034,1,\"The_tag_was_first_specified_here_8034\",\"The tag was first specified here.\"),You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:r(8035,1,\"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035\",\"You cannot rename elements that are defined in a 'node_modules' folder.\"),You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder:r(8036,1,\"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036\",\"You cannot rename elements that are defined in another 'node_modules' folder.\"),Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files:r(8037,1,\"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037\",\"Type satisfaction expressions can only be used in TypeScript files.\"),Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export:r(8038,1,\"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038\",\"Decorators may not appear after 'export' or 'export default' if they also appear before 'export'.\"),A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag:r(8039,1,\"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039\",\"A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag\"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:r(9005,1,\"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\",\"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:r(9006,1,\"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\",\"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:r(9007,1,\"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007\",\"Function must have an explicit return type annotation with --isolatedDeclarations.\"),Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:r(9008,1,\"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008\",\"Method must have an explicit return type annotation with --isolatedDeclarations.\"),At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations:r(9009,1,\"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009\",\"At least one accessor must have an explicit type annotation with --isolatedDeclarations.\"),Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations:r(9010,1,\"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010\",\"Variable must have an explicit type annotation with --isolatedDeclarations.\"),Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations:r(9011,1,\"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011\",\"Parameter must have an explicit type annotation with --isolatedDeclarations.\"),Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations:r(9012,1,\"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012\",\"Property must have an explicit type annotation with --isolatedDeclarations.\"),Expression_type_can_t_be_inferred_with_isolatedDeclarations:r(9013,1,\"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013\",\"Expression type can't be inferred with --isolatedDeclarations.\"),Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations:r(9014,1,\"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014\",\"Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations.\"),Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations:r(9015,1,\"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015\",\"Objects that contain spread assignments can't be inferred with --isolatedDeclarations.\"),Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations:r(9016,1,\"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016\",\"Objects that contain shorthand properties can't be inferred with --isolatedDeclarations.\"),Only_const_arrays_can_be_inferred_with_isolatedDeclarations:r(9017,1,\"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017\",\"Only const arrays can be inferred with --isolatedDeclarations.\"),Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations:r(9018,1,\"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018\",\"Arrays with spread elements can't inferred with --isolatedDeclarations.\"),Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations:r(9019,1,\"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019\",\"Binding elements can't be exported directly with --isolatedDeclarations.\"),Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations:r(9020,1,\"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020\",\"Enum member initializers must be computable without references to external symbols with --isolatedDeclarations.\"),Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations:r(9021,1,\"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021\",\"Extends clause can't contain an expression with --isolatedDeclarations.\"),Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations:r(9022,1,\"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022\",\"Inference from class expressions is not supported with --isolatedDeclarations.\"),Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function:r(9023,1,\"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023\",\"Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function.\"),Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:r(9025,1,\"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025\",\"Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.\"),Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations:r(9026,1,\"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026\",\"Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations.\"),Add_a_type_annotation_to_the_variable_0:r(9027,1,\"Add_a_type_annotation_to_the_variable_0_9027\",\"Add a type annotation to the variable {0}.\"),Add_a_type_annotation_to_the_parameter_0:r(9028,1,\"Add_a_type_annotation_to_the_parameter_0_9028\",\"Add a type annotation to the parameter {0}.\"),Add_a_type_annotation_to_the_property_0:r(9029,1,\"Add_a_type_annotation_to_the_property_0_9029\",\"Add a type annotation to the property {0}.\"),Add_a_return_type_to_the_function_expression:r(9030,1,\"Add_a_return_type_to_the_function_expression_9030\",\"Add a return type to the function expression.\"),Add_a_return_type_to_the_function_declaration:r(9031,1,\"Add_a_return_type_to_the_function_declaration_9031\",\"Add a return type to the function declaration.\"),Add_a_return_type_to_the_get_accessor_declaration:r(9032,1,\"Add_a_return_type_to_the_get_accessor_declaration_9032\",\"Add a return type to the get accessor declaration.\"),Add_a_type_to_parameter_of_the_set_accessor_declaration:r(9033,1,\"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033\",\"Add a type to parameter of the set accessor declaration.\"),Add_a_return_type_to_the_method:r(9034,1,\"Add_a_return_type_to_the_method_9034\",\"Add a return type to the method\"),Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit:r(9035,1,\"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035\",\"Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.\"),Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it:r(9036,1,\"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036\",\"Move the expression in default export to a variable and add a type annotation to it.\"),Default_exports_can_t_be_inferred_with_isolatedDeclarations:r(9037,1,\"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037\",\"Default exports can't be inferred with --isolatedDeclarations.\"),Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations:r(9038,1,\"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038\",\"Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.\"),Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations:r(9039,1,\"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039\",\"Type containing private name '{0}' can't be used with --isolatedDeclarations.\"),JSX_attributes_must_only_be_assigned_a_non_empty_expression:r(17e3,1,\"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\",\"JSX attributes must only be assigned a non-empty 'expression'.\"),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:r(17001,1,\"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\",\"JSX elements cannot have multiple attributes with the same name.\"),Expected_corresponding_JSX_closing_tag_for_0:r(17002,1,\"Expected_corresponding_JSX_closing_tag_for_0_17002\",\"Expected corresponding JSX closing tag for '{0}'.\"),Cannot_use_JSX_unless_the_jsx_flag_is_provided:r(17004,1,\"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\",\"Cannot use JSX unless the '--jsx' flag is provided.\"),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:r(17005,1,\"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\",\"A constructor cannot contain a 'super' call when its class extends 'null'.\"),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:r(17006,1,\"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\",\"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:r(17007,1,\"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\",\"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),JSX_element_0_has_no_corresponding_closing_tag:r(17008,1,\"JSX_element_0_has_no_corresponding_closing_tag_17008\",\"JSX element '{0}' has no corresponding closing tag.\"),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:r(17009,1,\"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\",\"'super' must be called before accessing 'this' in the constructor of a derived class.\"),Unknown_type_acquisition_option_0:r(17010,1,\"Unknown_type_acquisition_option_0_17010\",\"Unknown type acquisition option '{0}'.\"),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:r(17011,1,\"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\",\"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:r(17012,1,\"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\",\"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:r(17013,1,\"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\",\"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),JSX_fragment_has_no_corresponding_closing_tag:r(17014,1,\"JSX_fragment_has_no_corresponding_closing_tag_17014\",\"JSX fragment has no corresponding closing tag.\"),Expected_corresponding_closing_tag_for_JSX_fragment:r(17015,1,\"Expected_corresponding_closing_tag_for_JSX_fragment_17015\",\"Expected corresponding closing tag for JSX fragment.\"),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:r(17016,1,\"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016\",\"The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.\"),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:r(17017,1,\"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017\",\"An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.\"),Unknown_type_acquisition_option_0_Did_you_mean_1:r(17018,1,\"Unknown_type_acquisition_option_0_Did_you_mean_1_17018\",\"Unknown type acquisition option '{0}'. Did you mean '{1}'?\"),_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:r(17019,1,\"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019\",\"'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?\"),_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:r(17020,1,\"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020\",\"'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?\"),Unicode_escape_sequence_cannot_appear_here:r(17021,1,\"Unicode_escape_sequence_cannot_appear_here_17021\",\"Unicode escape sequence cannot appear here.\"),Circularity_detected_while_resolving_configuration_Colon_0:r(18e3,1,\"Circularity_detected_while_resolving_configuration_Colon_0_18000\",\"Circularity detected while resolving configuration: {0}\"),The_files_list_in_config_file_0_is_empty:r(18002,1,\"The_files_list_in_config_file_0_is_empty_18002\",\"The 'files' list in config file '{0}' is empty.\"),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:r(18003,1,\"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\",\"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:r(80001,2,\"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001\",\"File is a CommonJS module; it may be converted to an ES module.\"),This_constructor_function_may_be_converted_to_a_class_declaration:r(80002,2,\"This_constructor_function_may_be_converted_to_a_class_declaration_80002\",\"This constructor function may be converted to a class declaration.\"),Import_may_be_converted_to_a_default_import:r(80003,2,\"Import_may_be_converted_to_a_default_import_80003\",\"Import may be converted to a default import.\"),JSDoc_types_may_be_moved_to_TypeScript_types:r(80004,2,\"JSDoc_types_may_be_moved_to_TypeScript_types_80004\",\"JSDoc types may be moved to TypeScript types.\"),require_call_may_be_converted_to_an_import:r(80005,2,\"require_call_may_be_converted_to_an_import_80005\",\"'require' call may be converted to an import.\"),This_may_be_converted_to_an_async_function:r(80006,2,\"This_may_be_converted_to_an_async_function_80006\",\"This may be converted to an async function.\"),await_has_no_effect_on_the_type_of_this_expression:r(80007,2,\"await_has_no_effect_on_the_type_of_this_expression_80007\",\"'await' has no effect on the type of this expression.\"),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:r(80008,2,\"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\",\"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),JSDoc_typedef_may_be_converted_to_TypeScript_type:r(80009,2,\"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009\",\"JSDoc typedef may be converted to TypeScript type.\"),JSDoc_typedefs_may_be_converted_to_TypeScript_types:r(80010,2,\"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010\",\"JSDoc typedefs may be converted to TypeScript types.\"),Add_missing_super_call:r(90001,3,\"Add_missing_super_call_90001\",\"Add missing 'super()' call\"),Make_super_call_the_first_statement_in_the_constructor:r(90002,3,\"Make_super_call_the_first_statement_in_the_constructor_90002\",\"Make 'super()' call the first statement in the constructor\"),Change_extends_to_implements:r(90003,3,\"Change_extends_to_implements_90003\",\"Change 'extends' to 'implements'\"),Remove_unused_declaration_for_Colon_0:r(90004,3,\"Remove_unused_declaration_for_Colon_0_90004\",\"Remove unused declaration for: '{0}'\"),Remove_import_from_0:r(90005,3,\"Remove_import_from_0_90005\",\"Remove import from '{0}'\"),Implement_interface_0:r(90006,3,\"Implement_interface_0_90006\",\"Implement interface '{0}'\"),Implement_inherited_abstract_class:r(90007,3,\"Implement_inherited_abstract_class_90007\",\"Implement inherited abstract class\"),Add_0_to_unresolved_variable:r(90008,3,\"Add_0_to_unresolved_variable_90008\",\"Add '{0}.' to unresolved variable\"),Remove_variable_statement:r(90010,3,\"Remove_variable_statement_90010\",\"Remove variable statement\"),Remove_template_tag:r(90011,3,\"Remove_template_tag_90011\",\"Remove template tag\"),Remove_type_parameters:r(90012,3,\"Remove_type_parameters_90012\",\"Remove type parameters\"),Import_0_from_1:r(90013,3,\"Import_0_from_1_90013\",`Import '{0}' from \"{1}\"`),Change_0_to_1:r(90014,3,\"Change_0_to_1_90014\",\"Change '{0}' to '{1}'\"),Declare_property_0:r(90016,3,\"Declare_property_0_90016\",\"Declare property '{0}'\"),Add_index_signature_for_property_0:r(90017,3,\"Add_index_signature_for_property_0_90017\",\"Add index signature for property '{0}'\"),Disable_checking_for_this_file:r(90018,3,\"Disable_checking_for_this_file_90018\",\"Disable checking for this file\"),Ignore_this_error_message:r(90019,3,\"Ignore_this_error_message_90019\",\"Ignore this error message\"),Initialize_property_0_in_the_constructor:r(90020,3,\"Initialize_property_0_in_the_constructor_90020\",\"Initialize property '{0}' in the constructor\"),Initialize_static_property_0:r(90021,3,\"Initialize_static_property_0_90021\",\"Initialize static property '{0}'\"),Change_spelling_to_0:r(90022,3,\"Change_spelling_to_0_90022\",\"Change spelling to '{0}'\"),Declare_method_0:r(90023,3,\"Declare_method_0_90023\",\"Declare method '{0}'\"),Declare_static_method_0:r(90024,3,\"Declare_static_method_0_90024\",\"Declare static method '{0}'\"),Prefix_0_with_an_underscore:r(90025,3,\"Prefix_0_with_an_underscore_90025\",\"Prefix '{0}' with an underscore\"),Rewrite_as_the_indexed_access_type_0:r(90026,3,\"Rewrite_as_the_indexed_access_type_0_90026\",\"Rewrite as the indexed access type '{0}'\"),Declare_static_property_0:r(90027,3,\"Declare_static_property_0_90027\",\"Declare static property '{0}'\"),Call_decorator_expression:r(90028,3,\"Call_decorator_expression_90028\",\"Call decorator expression\"),Add_async_modifier_to_containing_function:r(90029,3,\"Add_async_modifier_to_containing_function_90029\",\"Add async modifier to containing function\"),Replace_infer_0_with_unknown:r(90030,3,\"Replace_infer_0_with_unknown_90030\",\"Replace 'infer {0}' with 'unknown'\"),Replace_all_unused_infer_with_unknown:r(90031,3,\"Replace_all_unused_infer_with_unknown_90031\",\"Replace all unused 'infer' with 'unknown'\"),Add_parameter_name:r(90034,3,\"Add_parameter_name_90034\",\"Add parameter name\"),Declare_private_property_0:r(90035,3,\"Declare_private_property_0_90035\",\"Declare private property '{0}'\"),Replace_0_with_Promise_1:r(90036,3,\"Replace_0_with_Promise_1_90036\",\"Replace '{0}' with 'Promise<{1}>'\"),Fix_all_incorrect_return_type_of_an_async_functions:r(90037,3,\"Fix_all_incorrect_return_type_of_an_async_functions_90037\",\"Fix all incorrect return type of an async functions\"),Declare_private_method_0:r(90038,3,\"Declare_private_method_0_90038\",\"Declare private method '{0}'\"),Remove_unused_destructuring_declaration:r(90039,3,\"Remove_unused_destructuring_declaration_90039\",\"Remove unused destructuring declaration\"),Remove_unused_declarations_for_Colon_0:r(90041,3,\"Remove_unused_declarations_for_Colon_0_90041\",\"Remove unused declarations for: '{0}'\"),Declare_a_private_field_named_0:r(90053,3,\"Declare_a_private_field_named_0_90053\",\"Declare a private field named '{0}'.\"),Includes_imports_of_types_referenced_by_0:r(90054,3,\"Includes_imports_of_types_referenced_by_0_90054\",\"Includes imports of types referenced by '{0}'\"),Remove_type_from_import_declaration_from_0:r(90055,3,\"Remove_type_from_import_declaration_from_0_90055\",`Remove 'type' from import declaration from \"{0}\"`),Remove_type_from_import_of_0_from_1:r(90056,3,\"Remove_type_from_import_of_0_from_1_90056\",`Remove 'type' from import of '{0}' from \"{1}\"`),Add_import_from_0:r(90057,3,\"Add_import_from_0_90057\",'Add import from \"{0}\"'),Update_import_from_0:r(90058,3,\"Update_import_from_0_90058\",'Update import from \"{0}\"'),Export_0_from_module_1:r(90059,3,\"Export_0_from_module_1_90059\",\"Export '{0}' from module '{1}'\"),Export_all_referenced_locals:r(90060,3,\"Export_all_referenced_locals_90060\",\"Export all referenced locals\"),Update_modifiers_of_0:r(90061,3,\"Update_modifiers_of_0_90061\",\"Update modifiers of '{0}'\"),Add_annotation_of_type_0:r(90062,3,\"Add_annotation_of_type_0_90062\",\"Add annotation of type '{0}'\"),Add_return_type_0:r(90063,3,\"Add_return_type_0_90063\",\"Add return type '{0}'\"),Extract_base_class_to_variable:r(90064,3,\"Extract_base_class_to_variable_90064\",\"Extract base class to variable\"),Extract_default_export_to_variable:r(90065,3,\"Extract_default_export_to_variable_90065\",\"Extract default export to variable\"),Extract_binding_expressions_to_variable:r(90066,3,\"Extract_binding_expressions_to_variable_90066\",\"Extract binding expressions to variable\"),Add_all_missing_type_annotations:r(90067,3,\"Add_all_missing_type_annotations_90067\",\"Add all missing type annotations\"),Add_satisfies_and_an_inline_type_assertion_with_0:r(90068,3,\"Add_satisfies_and_an_inline_type_assertion_with_0_90068\",\"Add satisfies and an inline type assertion with '{0}'\"),Extract_to_variable_and_replace_with_0_as_typeof_0:r(90069,3,\"Extract_to_variable_and_replace_with_0_as_typeof_0_90069\",\"Extract to variable and replace with '{0} as typeof {0}'\"),Mark_array_literal_as_const:r(90070,3,\"Mark_array_literal_as_const_90070\",\"Mark array literal as const\"),Annotate_types_of_properties_expando_function_in_a_namespace:r(90071,3,\"Annotate_types_of_properties_expando_function_in_a_namespace_90071\",\"Annotate types of properties expando function in a namespace\"),Convert_function_to_an_ES2015_class:r(95001,3,\"Convert_function_to_an_ES2015_class_95001\",\"Convert function to an ES2015 class\"),Convert_0_to_1_in_0:r(95003,3,\"Convert_0_to_1_in_0_95003\",\"Convert '{0}' to '{1} in {0}'\"),Extract_to_0_in_1:r(95004,3,\"Extract_to_0_in_1_95004\",\"Extract to {0} in {1}\"),Extract_function:r(95005,3,\"Extract_function_95005\",\"Extract function\"),Extract_constant:r(95006,3,\"Extract_constant_95006\",\"Extract constant\"),Extract_to_0_in_enclosing_scope:r(95007,3,\"Extract_to_0_in_enclosing_scope_95007\",\"Extract to {0} in enclosing scope\"),Extract_to_0_in_1_scope:r(95008,3,\"Extract_to_0_in_1_scope_95008\",\"Extract to {0} in {1} scope\"),Annotate_with_type_from_JSDoc:r(95009,3,\"Annotate_with_type_from_JSDoc_95009\",\"Annotate with type from JSDoc\"),Infer_type_of_0_from_usage:r(95011,3,\"Infer_type_of_0_from_usage_95011\",\"Infer type of '{0}' from usage\"),Infer_parameter_types_from_usage:r(95012,3,\"Infer_parameter_types_from_usage_95012\",\"Infer parameter types from usage\"),Convert_to_default_import:r(95013,3,\"Convert_to_default_import_95013\",\"Convert to default import\"),Install_0:r(95014,3,\"Install_0_95014\",\"Install '{0}'\"),Replace_import_with_0:r(95015,3,\"Replace_import_with_0_95015\",\"Replace import with '{0}'.\"),Use_synthetic_default_member:r(95016,3,\"Use_synthetic_default_member_95016\",\"Use synthetic 'default' member.\"),Convert_to_ES_module:r(95017,3,\"Convert_to_ES_module_95017\",\"Convert to ES module\"),Add_undefined_type_to_property_0:r(95018,3,\"Add_undefined_type_to_property_0_95018\",\"Add 'undefined' type to property '{0}'\"),Add_initializer_to_property_0:r(95019,3,\"Add_initializer_to_property_0_95019\",\"Add initializer to property '{0}'\"),Add_definite_assignment_assertion_to_property_0:r(95020,3,\"Add_definite_assignment_assertion_to_property_0_95020\",\"Add definite assignment assertion to property '{0}'\"),Convert_all_type_literals_to_mapped_type:r(95021,3,\"Convert_all_type_literals_to_mapped_type_95021\",\"Convert all type literals to mapped type\"),Add_all_missing_members:r(95022,3,\"Add_all_missing_members_95022\",\"Add all missing members\"),Infer_all_types_from_usage:r(95023,3,\"Infer_all_types_from_usage_95023\",\"Infer all types from usage\"),Delete_all_unused_declarations:r(95024,3,\"Delete_all_unused_declarations_95024\",\"Delete all unused declarations\"),Prefix_all_unused_declarations_with_where_possible:r(95025,3,\"Prefix_all_unused_declarations_with_where_possible_95025\",\"Prefix all unused declarations with '_' where possible\"),Fix_all_detected_spelling_errors:r(95026,3,\"Fix_all_detected_spelling_errors_95026\",\"Fix all detected spelling errors\"),Add_initializers_to_all_uninitialized_properties:r(95027,3,\"Add_initializers_to_all_uninitialized_properties_95027\",\"Add initializers to all uninitialized properties\"),Add_definite_assignment_assertions_to_all_uninitialized_properties:r(95028,3,\"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\",\"Add definite assignment assertions to all uninitialized properties\"),Add_undefined_type_to_all_uninitialized_properties:r(95029,3,\"Add_undefined_type_to_all_uninitialized_properties_95029\",\"Add undefined type to all uninitialized properties\"),Change_all_jsdoc_style_types_to_TypeScript:r(95030,3,\"Change_all_jsdoc_style_types_to_TypeScript_95030\",\"Change all jsdoc-style types to TypeScript\"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:r(95031,3,\"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\",\"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),Implement_all_unimplemented_interfaces:r(95032,3,\"Implement_all_unimplemented_interfaces_95032\",\"Implement all unimplemented interfaces\"),Install_all_missing_types_packages:r(95033,3,\"Install_all_missing_types_packages_95033\",\"Install all missing types packages\"),Rewrite_all_as_indexed_access_types:r(95034,3,\"Rewrite_all_as_indexed_access_types_95034\",\"Rewrite all as indexed access types\"),Convert_all_to_default_imports:r(95035,3,\"Convert_all_to_default_imports_95035\",\"Convert all to default imports\"),Make_all_super_calls_the_first_statement_in_their_constructor:r(95036,3,\"Make_all_super_calls_the_first_statement_in_their_constructor_95036\",\"Make all 'super()' calls the first statement in their constructor\"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:r(95037,3,\"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\",\"Add qualifier to all unresolved variables matching a member name\"),Change_all_extended_interfaces_to_implements:r(95038,3,\"Change_all_extended_interfaces_to_implements_95038\",\"Change all extended interfaces to 'implements'\"),Add_all_missing_super_calls:r(95039,3,\"Add_all_missing_super_calls_95039\",\"Add all missing super calls\"),Implement_all_inherited_abstract_classes:r(95040,3,\"Implement_all_inherited_abstract_classes_95040\",\"Implement all inherited abstract classes\"),Add_all_missing_async_modifiers:r(95041,3,\"Add_all_missing_async_modifiers_95041\",\"Add all missing 'async' modifiers\"),Add_ts_ignore_to_all_error_messages:r(95042,3,\"Add_ts_ignore_to_all_error_messages_95042\",\"Add '@ts-ignore' to all error messages\"),Annotate_everything_with_types_from_JSDoc:r(95043,3,\"Annotate_everything_with_types_from_JSDoc_95043\",\"Annotate everything with types from JSDoc\"),Add_to_all_uncalled_decorators:r(95044,3,\"Add_to_all_uncalled_decorators_95044\",\"Add '()' to all uncalled decorators\"),Convert_all_constructor_functions_to_classes:r(95045,3,\"Convert_all_constructor_functions_to_classes_95045\",\"Convert all constructor functions to classes\"),Generate_get_and_set_accessors:r(95046,3,\"Generate_get_and_set_accessors_95046\",\"Generate 'get' and 'set' accessors\"),Convert_require_to_import:r(95047,3,\"Convert_require_to_import_95047\",\"Convert 'require' to 'import'\"),Convert_all_require_to_import:r(95048,3,\"Convert_all_require_to_import_95048\",\"Convert all 'require' to 'import'\"),Move_to_a_new_file:r(95049,3,\"Move_to_a_new_file_95049\",\"Move to a new file\"),Remove_unreachable_code:r(95050,3,\"Remove_unreachable_code_95050\",\"Remove unreachable code\"),Remove_all_unreachable_code:r(95051,3,\"Remove_all_unreachable_code_95051\",\"Remove all unreachable code\"),Add_missing_typeof:r(95052,3,\"Add_missing_typeof_95052\",\"Add missing 'typeof'\"),Remove_unused_label:r(95053,3,\"Remove_unused_label_95053\",\"Remove unused label\"),Remove_all_unused_labels:r(95054,3,\"Remove_all_unused_labels_95054\",\"Remove all unused labels\"),Convert_0_to_mapped_object_type:r(95055,3,\"Convert_0_to_mapped_object_type_95055\",\"Convert '{0}' to mapped object type\"),Convert_namespace_import_to_named_imports:r(95056,3,\"Convert_namespace_import_to_named_imports_95056\",\"Convert namespace import to named imports\"),Convert_named_imports_to_namespace_import:r(95057,3,\"Convert_named_imports_to_namespace_import_95057\",\"Convert named imports to namespace import\"),Add_or_remove_braces_in_an_arrow_function:r(95058,3,\"Add_or_remove_braces_in_an_arrow_function_95058\",\"Add or remove braces in an arrow function\"),Add_braces_to_arrow_function:r(95059,3,\"Add_braces_to_arrow_function_95059\",\"Add braces to arrow function\"),Remove_braces_from_arrow_function:r(95060,3,\"Remove_braces_from_arrow_function_95060\",\"Remove braces from arrow function\"),Convert_default_export_to_named_export:r(95061,3,\"Convert_default_export_to_named_export_95061\",\"Convert default export to named export\"),Convert_named_export_to_default_export:r(95062,3,\"Convert_named_export_to_default_export_95062\",\"Convert named export to default export\"),Add_missing_enum_member_0:r(95063,3,\"Add_missing_enum_member_0_95063\",\"Add missing enum member '{0}'\"),Add_all_missing_imports:r(95064,3,\"Add_all_missing_imports_95064\",\"Add all missing imports\"),Convert_to_async_function:r(95065,3,\"Convert_to_async_function_95065\",\"Convert to async function\"),Convert_all_to_async_functions:r(95066,3,\"Convert_all_to_async_functions_95066\",\"Convert all to async functions\"),Add_missing_call_parentheses:r(95067,3,\"Add_missing_call_parentheses_95067\",\"Add missing call parentheses\"),Add_all_missing_call_parentheses:r(95068,3,\"Add_all_missing_call_parentheses_95068\",\"Add all missing call parentheses\"),Add_unknown_conversion_for_non_overlapping_types:r(95069,3,\"Add_unknown_conversion_for_non_overlapping_types_95069\",\"Add 'unknown' conversion for non-overlapping types\"),Add_unknown_to_all_conversions_of_non_overlapping_types:r(95070,3,\"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\",\"Add 'unknown' to all conversions of non-overlapping types\"),Add_missing_new_operator_to_call:r(95071,3,\"Add_missing_new_operator_to_call_95071\",\"Add missing 'new' operator to call\"),Add_missing_new_operator_to_all_calls:r(95072,3,\"Add_missing_new_operator_to_all_calls_95072\",\"Add missing 'new' operator to all calls\"),Add_names_to_all_parameters_without_names:r(95073,3,\"Add_names_to_all_parameters_without_names_95073\",\"Add names to all parameters without names\"),Enable_the_experimentalDecorators_option_in_your_configuration_file:r(95074,3,\"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\",\"Enable the 'experimentalDecorators' option in your configuration file\"),Convert_parameters_to_destructured_object:r(95075,3,\"Convert_parameters_to_destructured_object_95075\",\"Convert parameters to destructured object\"),Extract_type:r(95077,3,\"Extract_type_95077\",\"Extract type\"),Extract_to_type_alias:r(95078,3,\"Extract_to_type_alias_95078\",\"Extract to type alias\"),Extract_to_typedef:r(95079,3,\"Extract_to_typedef_95079\",\"Extract to typedef\"),Infer_this_type_of_0_from_usage:r(95080,3,\"Infer_this_type_of_0_from_usage_95080\",\"Infer 'this' type of '{0}' from usage\"),Add_const_to_unresolved_variable:r(95081,3,\"Add_const_to_unresolved_variable_95081\",\"Add 'const' to unresolved variable\"),Add_const_to_all_unresolved_variables:r(95082,3,\"Add_const_to_all_unresolved_variables_95082\",\"Add 'const' to all unresolved variables\"),Add_await:r(95083,3,\"Add_await_95083\",\"Add 'await'\"),Add_await_to_initializer_for_0:r(95084,3,\"Add_await_to_initializer_for_0_95084\",\"Add 'await' to initializer for '{0}'\"),Fix_all_expressions_possibly_missing_await:r(95085,3,\"Fix_all_expressions_possibly_missing_await_95085\",\"Fix all expressions possibly missing 'await'\"),Remove_unnecessary_await:r(95086,3,\"Remove_unnecessary_await_95086\",\"Remove unnecessary 'await'\"),Remove_all_unnecessary_uses_of_await:r(95087,3,\"Remove_all_unnecessary_uses_of_await_95087\",\"Remove all unnecessary uses of 'await'\"),Enable_the_jsx_flag_in_your_configuration_file:r(95088,3,\"Enable_the_jsx_flag_in_your_configuration_file_95088\",\"Enable the '--jsx' flag in your configuration file\"),Add_await_to_initializers:r(95089,3,\"Add_await_to_initializers_95089\",\"Add 'await' to initializers\"),Extract_to_interface:r(95090,3,\"Extract_to_interface_95090\",\"Extract to interface\"),Convert_to_a_bigint_numeric_literal:r(95091,3,\"Convert_to_a_bigint_numeric_literal_95091\",\"Convert to a bigint numeric literal\"),Convert_all_to_bigint_numeric_literals:r(95092,3,\"Convert_all_to_bigint_numeric_literals_95092\",\"Convert all to bigint numeric literals\"),Convert_const_to_let:r(95093,3,\"Convert_const_to_let_95093\",\"Convert 'const' to 'let'\"),Prefix_with_declare:r(95094,3,\"Prefix_with_declare_95094\",\"Prefix with 'declare'\"),Prefix_all_incorrect_property_declarations_with_declare:r(95095,3,\"Prefix_all_incorrect_property_declarations_with_declare_95095\",\"Prefix all incorrect property declarations with 'declare'\"),Convert_to_template_string:r(95096,3,\"Convert_to_template_string_95096\",\"Convert to template string\"),Add_export_to_make_this_file_into_a_module:r(95097,3,\"Add_export_to_make_this_file_into_a_module_95097\",\"Add 'export {}' to make this file into a module\"),Set_the_target_option_in_your_configuration_file_to_0:r(95098,3,\"Set_the_target_option_in_your_configuration_file_to_0_95098\",\"Set the 'target' option in your configuration file to '{0}'\"),Set_the_module_option_in_your_configuration_file_to_0:r(95099,3,\"Set_the_module_option_in_your_configuration_file_to_0_95099\",\"Set the 'module' option in your configuration file to '{0}'\"),Convert_invalid_character_to_its_html_entity_code:r(95100,3,\"Convert_invalid_character_to_its_html_entity_code_95100\",\"Convert invalid character to its html entity code\"),Convert_all_invalid_characters_to_HTML_entity_code:r(95101,3,\"Convert_all_invalid_characters_to_HTML_entity_code_95101\",\"Convert all invalid characters to HTML entity code\"),Convert_all_const_to_let:r(95102,3,\"Convert_all_const_to_let_95102\",\"Convert all 'const' to 'let'\"),Convert_function_expression_0_to_arrow_function:r(95105,3,\"Convert_function_expression_0_to_arrow_function_95105\",\"Convert function expression '{0}' to arrow function\"),Convert_function_declaration_0_to_arrow_function:r(95106,3,\"Convert_function_declaration_0_to_arrow_function_95106\",\"Convert function declaration '{0}' to arrow function\"),Fix_all_implicit_this_errors:r(95107,3,\"Fix_all_implicit_this_errors_95107\",\"Fix all implicit-'this' errors\"),Wrap_invalid_character_in_an_expression_container:r(95108,3,\"Wrap_invalid_character_in_an_expression_container_95108\",\"Wrap invalid character in an expression container\"),Wrap_all_invalid_characters_in_an_expression_container:r(95109,3,\"Wrap_all_invalid_characters_in_an_expression_container_95109\",\"Wrap all invalid characters in an expression container\"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:r(95110,3,\"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110\",\"Visit https://aka.ms/tsconfig to read more about this file\"),Add_a_return_statement:r(95111,3,\"Add_a_return_statement_95111\",\"Add a return statement\"),Remove_braces_from_arrow_function_body:r(95112,3,\"Remove_braces_from_arrow_function_body_95112\",\"Remove braces from arrow function body\"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:r(95113,3,\"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113\",\"Wrap the following body with parentheses which should be an object literal\"),Add_all_missing_return_statement:r(95114,3,\"Add_all_missing_return_statement_95114\",\"Add all missing return statement\"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:r(95115,3,\"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115\",\"Remove braces from all arrow function bodies with relevant issues\"),Wrap_all_object_literal_with_parentheses:r(95116,3,\"Wrap_all_object_literal_with_parentheses_95116\",\"Wrap all object literal with parentheses\"),Move_labeled_tuple_element_modifiers_to_labels:r(95117,3,\"Move_labeled_tuple_element_modifiers_to_labels_95117\",\"Move labeled tuple element modifiers to labels\"),Convert_overload_list_to_single_signature:r(95118,3,\"Convert_overload_list_to_single_signature_95118\",\"Convert overload list to single signature\"),Generate_get_and_set_accessors_for_all_overriding_properties:r(95119,3,\"Generate_get_and_set_accessors_for_all_overriding_properties_95119\",\"Generate 'get' and 'set' accessors for all overriding properties\"),Wrap_in_JSX_fragment:r(95120,3,\"Wrap_in_JSX_fragment_95120\",\"Wrap in JSX fragment\"),Wrap_all_unparented_JSX_in_JSX_fragment:r(95121,3,\"Wrap_all_unparented_JSX_in_JSX_fragment_95121\",\"Wrap all unparented JSX in JSX fragment\"),Convert_arrow_function_or_function_expression:r(95122,3,\"Convert_arrow_function_or_function_expression_95122\",\"Convert arrow function or function expression\"),Convert_to_anonymous_function:r(95123,3,\"Convert_to_anonymous_function_95123\",\"Convert to anonymous function\"),Convert_to_named_function:r(95124,3,\"Convert_to_named_function_95124\",\"Convert to named function\"),Convert_to_arrow_function:r(95125,3,\"Convert_to_arrow_function_95125\",\"Convert to arrow function\"),Remove_parentheses:r(95126,3,\"Remove_parentheses_95126\",\"Remove parentheses\"),Could_not_find_a_containing_arrow_function:r(95127,3,\"Could_not_find_a_containing_arrow_function_95127\",\"Could not find a containing arrow function\"),Containing_function_is_not_an_arrow_function:r(95128,3,\"Containing_function_is_not_an_arrow_function_95128\",\"Containing function is not an arrow function\"),Could_not_find_export_statement:r(95129,3,\"Could_not_find_export_statement_95129\",\"Could not find export statement\"),This_file_already_has_a_default_export:r(95130,3,\"This_file_already_has_a_default_export_95130\",\"This file already has a default export\"),Could_not_find_import_clause:r(95131,3,\"Could_not_find_import_clause_95131\",\"Could not find import clause\"),Could_not_find_namespace_import_or_named_imports:r(95132,3,\"Could_not_find_namespace_import_or_named_imports_95132\",\"Could not find namespace import or named imports\"),Selection_is_not_a_valid_type_node:r(95133,3,\"Selection_is_not_a_valid_type_node_95133\",\"Selection is not a valid type node\"),No_type_could_be_extracted_from_this_type_node:r(95134,3,\"No_type_could_be_extracted_from_this_type_node_95134\",\"No type could be extracted from this type node\"),Could_not_find_property_for_which_to_generate_accessor:r(95135,3,\"Could_not_find_property_for_which_to_generate_accessor_95135\",\"Could not find property for which to generate accessor\"),Name_is_not_valid:r(95136,3,\"Name_is_not_valid_95136\",\"Name is not valid\"),Can_only_convert_property_with_modifier:r(95137,3,\"Can_only_convert_property_with_modifier_95137\",\"Can only convert property with modifier\"),Switch_each_misused_0_to_1:r(95138,3,\"Switch_each_misused_0_to_1_95138\",\"Switch each misused '{0}' to '{1}'\"),Convert_to_optional_chain_expression:r(95139,3,\"Convert_to_optional_chain_expression_95139\",\"Convert to optional chain expression\"),Could_not_find_convertible_access_expression:r(95140,3,\"Could_not_find_convertible_access_expression_95140\",\"Could not find convertible access expression\"),Could_not_find_matching_access_expressions:r(95141,3,\"Could_not_find_matching_access_expressions_95141\",\"Could not find matching access expressions\"),Can_only_convert_logical_AND_access_chains:r(95142,3,\"Can_only_convert_logical_AND_access_chains_95142\",\"Can only convert logical AND access chains\"),Add_void_to_Promise_resolved_without_a_value:r(95143,3,\"Add_void_to_Promise_resolved_without_a_value_95143\",\"Add 'void' to Promise resolved without a value\"),Add_void_to_all_Promises_resolved_without_a_value:r(95144,3,\"Add_void_to_all_Promises_resolved_without_a_value_95144\",\"Add 'void' to all Promises resolved without a value\"),Use_element_access_for_0:r(95145,3,\"Use_element_access_for_0_95145\",\"Use element access for '{0}'\"),Use_element_access_for_all_undeclared_properties:r(95146,3,\"Use_element_access_for_all_undeclared_properties_95146\",\"Use element access for all undeclared properties.\"),Delete_all_unused_imports:r(95147,3,\"Delete_all_unused_imports_95147\",\"Delete all unused imports\"),Infer_function_return_type:r(95148,3,\"Infer_function_return_type_95148\",\"Infer function return type\"),Return_type_must_be_inferred_from_a_function:r(95149,3,\"Return_type_must_be_inferred_from_a_function_95149\",\"Return type must be inferred from a function\"),Could_not_determine_function_return_type:r(95150,3,\"Could_not_determine_function_return_type_95150\",\"Could not determine function return type\"),Could_not_convert_to_arrow_function:r(95151,3,\"Could_not_convert_to_arrow_function_95151\",\"Could not convert to arrow function\"),Could_not_convert_to_named_function:r(95152,3,\"Could_not_convert_to_named_function_95152\",\"Could not convert to named function\"),Could_not_convert_to_anonymous_function:r(95153,3,\"Could_not_convert_to_anonymous_function_95153\",\"Could not convert to anonymous function\"),Can_only_convert_string_concatenations_and_string_literals:r(95154,3,\"Can_only_convert_string_concatenations_and_string_literals_95154\",\"Can only convert string concatenations and string literals\"),Selection_is_not_a_valid_statement_or_statements:r(95155,3,\"Selection_is_not_a_valid_statement_or_statements_95155\",\"Selection is not a valid statement or statements\"),Add_missing_function_declaration_0:r(95156,3,\"Add_missing_function_declaration_0_95156\",\"Add missing function declaration '{0}'\"),Add_all_missing_function_declarations:r(95157,3,\"Add_all_missing_function_declarations_95157\",\"Add all missing function declarations\"),Method_not_implemented:r(95158,3,\"Method_not_implemented_95158\",\"Method not implemented.\"),Function_not_implemented:r(95159,3,\"Function_not_implemented_95159\",\"Function not implemented.\"),Add_override_modifier:r(95160,3,\"Add_override_modifier_95160\",\"Add 'override' modifier\"),Remove_override_modifier:r(95161,3,\"Remove_override_modifier_95161\",\"Remove 'override' modifier\"),Add_all_missing_override_modifiers:r(95162,3,\"Add_all_missing_override_modifiers_95162\",\"Add all missing 'override' modifiers\"),Remove_all_unnecessary_override_modifiers:r(95163,3,\"Remove_all_unnecessary_override_modifiers_95163\",\"Remove all unnecessary 'override' modifiers\"),Can_only_convert_named_export:r(95164,3,\"Can_only_convert_named_export_95164\",\"Can only convert named export\"),Add_missing_properties:r(95165,3,\"Add_missing_properties_95165\",\"Add missing properties\"),Add_all_missing_properties:r(95166,3,\"Add_all_missing_properties_95166\",\"Add all missing properties\"),Add_missing_attributes:r(95167,3,\"Add_missing_attributes_95167\",\"Add missing attributes\"),Add_all_missing_attributes:r(95168,3,\"Add_all_missing_attributes_95168\",\"Add all missing attributes\"),Add_undefined_to_optional_property_type:r(95169,3,\"Add_undefined_to_optional_property_type_95169\",\"Add 'undefined' to optional property type\"),Convert_named_imports_to_default_import:r(95170,3,\"Convert_named_imports_to_default_import_95170\",\"Convert named imports to default import\"),Delete_unused_param_tag_0:r(95171,3,\"Delete_unused_param_tag_0_95171\",\"Delete unused '@param' tag '{0}'\"),Delete_all_unused_param_tags:r(95172,3,\"Delete_all_unused_param_tags_95172\",\"Delete all unused '@param' tags\"),Rename_param_tag_name_0_to_1:r(95173,3,\"Rename_param_tag_name_0_to_1_95173\",\"Rename '@param' tag name '{0}' to '{1}'\"),Use_0:r(95174,3,\"Use_0_95174\",\"Use `{0}`.\"),Use_Number_isNaN_in_all_conditions:r(95175,3,\"Use_Number_isNaN_in_all_conditions_95175\",\"Use `Number.isNaN` in all conditions.\"),Convert_typedef_to_TypeScript_type:r(95176,3,\"Convert_typedef_to_TypeScript_type_95176\",\"Convert typedef to TypeScript type.\"),Convert_all_typedef_to_TypeScript_types:r(95177,3,\"Convert_all_typedef_to_TypeScript_types_95177\",\"Convert all typedef to TypeScript types.\"),Move_to_file:r(95178,3,\"Move_to_file_95178\",\"Move to file\"),Cannot_move_to_file_selected_file_is_invalid:r(95179,3,\"Cannot_move_to_file_selected_file_is_invalid_95179\",\"Cannot move to file, selected file is invalid\"),Use_import_type:r(95180,3,\"Use_import_type_95180\",\"Use 'import type'\"),Use_type_0:r(95181,3,\"Use_type_0_95181\",\"Use 'type {0}'\"),Fix_all_with_type_only_imports:r(95182,3,\"Fix_all_with_type_only_imports_95182\",\"Fix all with type-only imports\"),Cannot_move_statements_to_the_selected_file:r(95183,3,\"Cannot_move_statements_to_the_selected_file_95183\",\"Cannot move statements to the selected file\"),Inline_variable:r(95184,3,\"Inline_variable_95184\",\"Inline variable\"),Could_not_find_variable_to_inline:r(95185,3,\"Could_not_find_variable_to_inline_95185\",\"Could not find variable to inline.\"),Variables_with_multiple_declarations_cannot_be_inlined:r(95186,3,\"Variables_with_multiple_declarations_cannot_be_inlined_95186\",\"Variables with multiple declarations cannot be inlined.\"),Add_missing_comma_for_object_member_completion_0:r(95187,3,\"Add_missing_comma_for_object_member_completion_0_95187\",\"Add missing comma for object member completion '{0}'.\"),Add_missing_parameter_to_0:r(95188,3,\"Add_missing_parameter_to_0_95188\",\"Add missing parameter to '{0}'\"),Add_missing_parameters_to_0:r(95189,3,\"Add_missing_parameters_to_0_95189\",\"Add missing parameters to '{0}'\"),Add_all_missing_parameters:r(95190,3,\"Add_all_missing_parameters_95190\",\"Add all missing parameters\"),Add_optional_parameter_to_0:r(95191,3,\"Add_optional_parameter_to_0_95191\",\"Add optional parameter to '{0}'\"),Add_optional_parameters_to_0:r(95192,3,\"Add_optional_parameters_to_0_95192\",\"Add optional parameters to '{0}'\"),Add_all_optional_parameters:r(95193,3,\"Add_all_optional_parameters_95193\",\"Add all optional parameters\"),Wrap_in_parentheses:r(95194,3,\"Wrap_in_parentheses_95194\",\"Wrap in parentheses\"),Wrap_all_invalid_decorator_expressions_in_parentheses:r(95195,3,\"Wrap_all_invalid_decorator_expressions_in_parentheses_95195\",\"Wrap all invalid decorator expressions in parentheses\"),Add_resolution_mode_import_attribute:r(95196,3,\"Add_resolution_mode_import_attribute_95196\",\"Add 'resolution-mode' import attribute\"),Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it:r(95197,3,\"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197\",\"Add 'resolution-mode' import attribute to all type-only imports that need it\"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:r(18004,1,\"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\",\"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),Classes_may_not_have_a_field_named_constructor:r(18006,1,\"Classes_may_not_have_a_field_named_constructor_18006\",\"Classes may not have a field named 'constructor'.\"),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:r(18007,1,\"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\",\"JSX expressions may not use the comma operator. Did you mean to write an array?\"),Private_identifiers_cannot_be_used_as_parameters:r(18009,1,\"Private_identifiers_cannot_be_used_as_parameters_18009\",\"Private identifiers cannot be used as parameters.\"),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:r(18010,1,\"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010\",\"An accessibility modifier cannot be used with a private identifier.\"),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:r(18011,1,\"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011\",\"The operand of a 'delete' operator cannot be a private identifier.\"),constructor_is_a_reserved_word:r(18012,1,\"constructor_is_a_reserved_word_18012\",\"'#constructor' is a reserved word.\"),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:r(18013,1,\"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013\",\"Property '{0}' is not accessible outside class '{1}' because it has a private identifier.\"),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:r(18014,1,\"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014\",\"The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.\"),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:r(18015,1,\"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015\",\"Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.\"),Private_identifiers_are_not_allowed_outside_class_bodies:r(18016,1,\"Private_identifiers_are_not_allowed_outside_class_bodies_18016\",\"Private identifiers are not allowed outside class bodies.\"),The_shadowing_declaration_of_0_is_defined_here:r(18017,1,\"The_shadowing_declaration_of_0_is_defined_here_18017\",\"The shadowing declaration of '{0}' is defined here\"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:r(18018,1,\"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018\",\"The declaration of '{0}' that you probably intended to use is defined here\"),_0_modifier_cannot_be_used_with_a_private_identifier:r(18019,1,\"_0_modifier_cannot_be_used_with_a_private_identifier_18019\",\"'{0}' modifier cannot be used with a private identifier.\"),An_enum_member_cannot_be_named_with_a_private_identifier:r(18024,1,\"An_enum_member_cannot_be_named_with_a_private_identifier_18024\",\"An enum member cannot be named with a private identifier.\"),can_only_be_used_at_the_start_of_a_file:r(18026,1,\"can_only_be_used_at_the_start_of_a_file_18026\",\"'#!' can only be used at the start of a file.\"),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:r(18027,1,\"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027\",\"Compiler reserves name '{0}' when emitting private identifier downlevel.\"),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:r(18028,1,\"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028\",\"Private identifiers are only available when targeting ECMAScript 2015 and higher.\"),Private_identifiers_are_not_allowed_in_variable_declarations:r(18029,1,\"Private_identifiers_are_not_allowed_in_variable_declarations_18029\",\"Private identifiers are not allowed in variable declarations.\"),An_optional_chain_cannot_contain_private_identifiers:r(18030,1,\"An_optional_chain_cannot_contain_private_identifiers_18030\",\"An optional chain cannot contain private identifiers.\"),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:r(18031,1,\"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031\",\"The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.\"),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:r(18032,1,\"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032\",\"The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.\"),Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values:r(18033,1,\"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033\",\"Type '{0}' is not assignable to type '{1}' as required for computed enum member values.\"),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:r(18034,3,\"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034\",\"Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.\"),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:r(18035,1,\"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035\",\"Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.\"),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:r(18036,1,\"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036\",\"Class decorators can't be used with static private identifier. Consider removing the experimental decorator.\"),await_expression_cannot_be_used_inside_a_class_static_block:r(18037,1,\"await_expression_cannot_be_used_inside_a_class_static_block_18037\",\"'await' expression cannot be used inside a class static block.\"),for_await_loops_cannot_be_used_inside_a_class_static_block:r(18038,1,\"for_await_loops_cannot_be_used_inside_a_class_static_block_18038\",\"'for await' loops cannot be used inside a class static block.\"),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:r(18039,1,\"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039\",\"Invalid use of '{0}'. It cannot be used inside a class static block.\"),A_return_statement_cannot_be_used_inside_a_class_static_block:r(18041,1,\"A_return_statement_cannot_be_used_inside_a_class_static_block_18041\",\"A 'return' statement cannot be used inside a class static block.\"),_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation:r(18042,1,\"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042\",\"'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation.\"),Types_cannot_appear_in_export_declarations_in_JavaScript_files:r(18043,1,\"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043\",\"Types cannot appear in export declarations in JavaScript files.\"),_0_is_automatically_exported_here:r(18044,3,\"_0_is_automatically_exported_here_18044\",\"'{0}' is automatically exported here.\"),Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher:r(18045,1,\"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045\",\"Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher.\"),_0_is_of_type_unknown:r(18046,1,\"_0_is_of_type_unknown_18046\",\"'{0}' is of type 'unknown'.\"),_0_is_possibly_null:r(18047,1,\"_0_is_possibly_null_18047\",\"'{0}' is possibly 'null'.\"),_0_is_possibly_undefined:r(18048,1,\"_0_is_possibly_undefined_18048\",\"'{0}' is possibly 'undefined'.\"),_0_is_possibly_null_or_undefined:r(18049,1,\"_0_is_possibly_null_or_undefined_18049\",\"'{0}' is possibly 'null' or 'undefined'.\"),The_value_0_cannot_be_used_here:r(18050,1,\"The_value_0_cannot_be_used_here_18050\",\"The value '{0}' cannot be used here.\"),Compiler_option_0_cannot_be_given_an_empty_string:r(18051,1,\"Compiler_option_0_cannot_be_given_an_empty_string_18051\",\"Compiler option '{0}' cannot be given an empty string.\"),Its_type_0_is_not_a_valid_JSX_element_type:r(18053,1,\"Its_type_0_is_not_a_valid_JSX_element_type_18053\",\"Its type '{0}' is not a valid JSX element type.\"),await_using_statements_cannot_be_used_inside_a_class_static_block:r(18054,1,\"await_using_statements_cannot_be_used_inside_a_class_static_block_18054\",\"'await using' statements cannot be used inside a class static block.\"),_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled:r(18055,1,\"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055\",\"'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled.\"),Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled:r(18056,1,\"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056\",\"Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled.\"),String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020:r(18057,1,\"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057\",\"String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.\")};function wt(e){return e>=80}function Fy(e){return e===32||wt(e)}var nf={abstract:128,accessor:129,any:133,as:130,asserts:131,assert:132,bigint:163,boolean:136,break:83,case:84,catch:85,class:86,continue:88,const:87,constructor:137,debugger:89,declare:138,default:90,delete:91,do:92,else:93,enum:94,export:95,extends:96,false:97,finally:98,for:99,from:161,function:100,get:139,if:101,implements:119,import:102,in:103,infer:140,instanceof:104,interface:120,intrinsic:141,is:142,keyof:143,let:121,module:144,namespace:145,never:146,new:105,null:106,number:150,object:151,package:122,private:123,protected:124,public:125,override:164,out:147,readonly:148,require:149,global:162,return:107,satisfies:152,set:153,static:126,string:154,super:108,switch:109,symbol:155,this:110,throw:111,true:112,try:113,type:156,typeof:114,undefined:157,unique:158,unknown:159,using:160,var:115,void:116,while:117,with:118,yield:127,async:134,await:135,of:165},Vy=new Map(Object.entries(nf)),Bm=new Map(Object.entries({...nf,\"{\":19,\"}\":20,\"(\":21,\")\":22,\"[\":23,\"]\":24,\".\":25,\"...\":26,\";\":27,\",\":28,\"<\":30,\">\":32,\"<=\":33,\">=\":34,\"==\":35,\"!=\":36,\"===\":37,\"!==\":38,\"=>\":39,\"+\":40,\"-\":41,\"**\":43,\"*\":42,\"/\":44,\"%\":45,\"++\":46,\"--\":47,\"<<\":48,\">\":49,\">>>\":50,\"&\":51,\"|\":52,\"^\":53,\"!\":54,\"~\":55,\"&&\":56,\"||\":57,\"?\":58,\"??\":61,\"?.\":29,\":\":59,\"=\":64,\"+=\":65,\"-=\":66,\"*=\":67,\"**=\":68,\"/=\":69,\"%=\":70,\"<<=\":71,\">>=\":72,\">>>=\":73,\"&=\":74,\"|=\":75,\"^=\":79,\"||=\":76,\"&&=\":77,\"??=\":78,\"@\":60,\"#\":63,\"`\":62})),qm=new Map([[100,1],[103,2],[105,4],[109,8],[115,16],[117,32],[118,64],[121,128]]),Wy=new Map([[1,Q_.RegularExpressionFlagsHasIndices],[16,Q_.RegularExpressionFlagsDotAll],[32,Q_.RegularExpressionFlagsUnicode],[64,Q_.RegularExpressionFlagsUnicodeSets],[128,Q_.RegularExpressionFlagsSticky]]),Gy=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],Yy=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],Hy=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743],Xy=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2200,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743,917760,917999],$y=/^\\/\\/\\/?\\s*@(ts-expect-error|ts-ignore)/,Qy=/^(?:\\/|\\*)*\\s*@(ts-expect-error|ts-ignore)/,Ky=/@(?:see|link)/i;function dl(e,t){if(e=2?dl(e,Hy):dl(e,Gy)}function eg(e,t){return t>=2?dl(e,Xy):dl(e,Yy)}function zm(e){let t=[];return e.forEach((a,o)=>{t[a]=o}),t}var tg=zm(Bm);function it(e){return tg[e]}function Fm(e){return Bm.get(e)}var z4=zm(qm);function Pd(e){return qm.get(e)}function Vm(e){let t=[],a=0,o=0;for(;a127&&Cn(m)&&(t.push(o),o=a);break}}return t.push(o),t}function ng(e,t,a,o,m){(t<0||t>=e.length)&&(m?t=t<0?0:t>=e.length?e.length-1:t:B.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${o!==void 0?_y(e,Vm(o)):\"unknown\"}`));let v=e[t]+a;return m?v>e[t+1]?e[t+1]:typeof o==\"string\"&&v>o.length?o.length:v:(t=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function Cn(e){return e===10||e===13||e===8232||e===8233}function fi(e){return e>=48&&e<=57}function vp(e){return fi(e)||e>=65&&e<=70||e>=97&&e<=102}function rf(e){return e>=65&&e<=90||e>=97&&e<=122}function Gm(e){return rf(e)||fi(e)||e===95}function Tp(e){return e>=48&&e<=55}function Ar(e,t,a,o,m){if(fs(t))return t;let v=!1;for(;;){let A=e.charCodeAt(t);switch(A){case 13:e.charCodeAt(t+1)===10&&t++;case 10:if(t++,a)return t;v=!!m;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(o)break;if(e.charCodeAt(t+1)===47){for(t+=2;t127&&Ba(A)){t++;continue}break}return t}}var sl=7;function Vi(e,t){if(B.assert(t>=0),t===0||Cn(e.charCodeAt(t-1))){let a=e.charCodeAt(t);if(t+sl=0&&a127&&Ba(I)){y&&Cn(I)&&(h=!0),a++;continue}break e}}return y&&(x=m(P,l,Q,h,v,x)),x}function Xm(e,t,a,o){return xl(!1,e,t,!1,a,o)}function $m(e,t,a,o){return xl(!1,e,t,!0,a,o)}function ag(e,t,a,o,m){return xl(!0,e,t,!1,a,o,m)}function _g(e,t,a,o,m){return xl(!0,e,t,!0,a,o,m)}function Qm(e,t,a,o,m,v=[]){return v.push({kind:a,pos:e,end:t,hasTrailingNewLine:o}),v}function Jp(e,t){return ag(e,t,Qm,void 0,void 0)}function sg(e,t){return _g(e,t,Qm,void 0,void 0)}function _f(e){let t=af.exec(e);if(t)return t[0]}function Zn(e,t){return rf(e)||e===36||e===95||e>127&&Zy(e,t)}function Er(e,t,a){return Gm(e)||e===36||(a===1?e===45||e===58:!1)||e>127&&eg(e,t)}function og(e,t,a){let o=Wi(e,0);if(!Zn(o,t))return!1;for(let m=Ft(o);mh,getStartPos:()=>h,getTokenEnd:()=>l,getTextPos:()=>l,getToken:()=>g,getTokenStart:()=>y,getTokenPos:()=>y,getTokenText:()=>P.substring(y,l),getTokenValue:()=>x,hasUnicodeEscape:()=>(I&1024)!==0,hasExtendedUnicodeEscape:()=>(I&8)!==0,hasPrecedingLineBreak:()=>(I&1)!==0,hasPrecedingJSDocComment:()=>(I&2)!==0,hasPrecedingJSDocLeadingAsterisks:()=>(I&32768)!==0,isIdentifier:()=>g===80||g>118,isReservedWord:()=>g>=83&&g<=118,isUnterminated:()=>(I&4)!==0,getCommentDirectives:()=>re,getNumericLiteralFlags:()=>I&25584,getTokenFlags:()=>I,reScanGreaterToken:lt,reScanAsteriskEqualsToken:ar,reScanSlashToken:mt,reScanTemplateToken:Bt,reScanTemplateHeadOrNoSubstitutionTemplate:rn,scanJsxIdentifier:Nr,scanJsxAttributeValue:Vn,reScanJsxAttributeValue:Ce,reScanJsxToken:_r,reScanLessThanToken:fr,reScanHashToken:dr,reScanQuestionToken:zn,reScanInvalidIdentifier:Ut,scanJsxToken:Fn,scanJsDocToken:L,scanJSDocCommentTextToken:mr,scan:ct,getText:Ke,clearCommentDirectives:st,setText:Dt,setScriptTarget:ut,setLanguageVariant:Ir,setScriptKind:hr,setJSDocParsingMode:Mn,setOnError:Tt,resetTokenState:Wn,setTextPos:Wn,setSkipJsDocLeadingAsterisks:Si,tryScan:Xe,lookAhead:Te,scanRange:fe};return B.isDebugging&&Object.defineProperty(M,\"__debugShowCurrentPositionInText\",{get:()=>{let R=M.getText();return R.slice(0,M.getTokenFullStart())+\"\\u2551\"+R.slice(M.getTokenFullStart())}}),M;function ae(R){return Wi(P,R)}function Oe(R){return R>=0&&R=0&&R=65&&be<=70)be+=32;else if(!(be>=48&&be<=57||be>=97&&be<=102))break;xe.push(be),l++,we=!1}return xe.length=Q){K+=P.substring(xe,l),I|=4,W(E.Unterminated_string_literal);break}let Se=V(l);if(Se===$){K+=P.substring(xe,l),l++;break}if(Se===92&&!R){K+=P.substring(xe,l),K+=Ot(3),xe=l;continue}if((Se===10||Se===13)&&!R){K+=P.substring(xe,l),I|=4,W(E.Unterminated_string_literal);break}l++}return K}function Pr(R){let $=V(l)===96;l++;let K=l,xe=\"\",Se;for(;;){if(l>=Q){xe+=P.substring(K,l),I|=4,W(E.Unterminated_template_literal),Se=$?15:18;break}let we=V(l);if(we===96){xe+=P.substring(K,l),l++,Se=$?15:18;break}if(we===36&&l+1=Q)return W(E.Unexpected_end_of_text),\"\";let K=V(l);switch(l++,K){case 48:if(l>=Q||!fi(V(l)))return\"\\0\";case 49:case 50:case 51:l=55296&&xe<=56319&&l+6=56320&&We<=57343)return l=be,Se+String.fromCharCode(We)}return Se;case 120:for(;l<$+4;l++)if(!(l1114111&&(R&&W(E.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,K,l-K),we=!0),l>=Q?(R&&W(E.Unexpected_end_of_text),we=!0):V(l)===125?l++:(R&&W(E.Unterminated_Unicode_escape_sequence),we=!0),we?(I|=2048,P.substring($,l)):(I|=8,Nd(Se))}function On(){if(l+5=0&&Er(K,e)){R+=Bn(!0),$=l;continue}if(K=On(),!(K>=0&&Er(K,e)))break;I|=1024,R+=P.substring($,l),R+=Nd(K),l+=6,$=l}else break}return R+=P.substring($,l),R}function Qe(){let R=x.length;if(R>=2&&R<=12){let $=x.charCodeAt(0);if($>=97&&$<=122){let K=Vy.get(x);if(K!==void 0)return g=K}}return g=80}function qn(R){let $=\"\",K=!1,xe=!1;for(;;){let Se=V(l);if(Se===95){I|=512,K?(K=!1,xe=!0):W(xe?E.Multiple_consecutive_numeric_separators_are_not_permitted:E.Numeric_separators_are_not_allowed_here,l,1),l++;continue}if(K=!0,!fi(Se)||Se-48>=R)break;$+=P[l],l++,xe=!1}return V(l-1)===95&&W(E.Numeric_separators_are_not_allowed_here,l-1,1),$}function $t(){return V(l)===110?(x+=\"n\",I&384&&(x=bb(x)+\"n\"),l++,10):(x=\"\"+(I&128?parseInt(x.slice(2),2):I&256?parseInt(x.slice(2),8):+x),9)}function ct(){for(h=l,I=0;;){if(y=l,l>=Q)return g=1;let R=ae(l);if(l===0&&R===35&&Ym(P,l)){if(l=Hm(P,l),t)continue;return g=6}switch(R){case 10:case 13:if(I|=1,t){l++;continue}else return R===13&&l+1=0&&Zn($,e))return x=Bn(!0)+vt(),g=Qe();let K=On();return K>=0&&Zn(K,e)?(l+=6,I|=1024,x=String.fromCharCode(K)+vt(),g=Qe()):(W(E.Invalid_character),l++,g=0);case 35:if(l!==0&&P[l+1]===\"!\")return W(E.can_only_be_used_at_the_start_of_a_file,l,2),l++,g=0;let xe=ae(l+1);if(xe===92){l++;let be=Mt();if(be>=0&&Zn(be,e))return x=\"#\"+Bn(!0)+vt(),g=81;let We=On();if(We>=0&&Zn(We,e))return l+=6,I|=1024,x=\"#\"+String.fromCharCode(We)+vt(),g=81;l--}return Zn(xe,e)?(l++,Jt(xe,e)):(x=\"#\",W(E.Invalid_character,l++,Ft(R))),g=81;case 65533:return W(E.File_appears_to_be_binary,0,0),l=Q,g=8;default:let Se=Jt(R,e);if(Se)return g=Se;if(rs(R)){l+=Ft(R);continue}else if(Cn(R)){I|=1,l+=Ft(R);continue}let we=Ft(R);return W(E.Invalid_character,l,we),l+=we,g=0}}}function _t(){switch(de){case 0:return!0;case 1:return!1}return ye!==3&&ye!==4?!0:de===3?!1:Ky.test(P.slice(h,l))}function Ut(){B.assert(g===0,\"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'.\"),l=y=h,I=0;let R=ae(l),$=Jt(R,99);return $?g=$:(l+=Ft(R),g)}function Jt(R,$){let K=R;if(Zn(K,$)){for(l+=Ft(K);l=Q)return g=1;let $=V(l);if($===60)return V(l+1)===47?(l+=2,g=31):(l++,g=30);if($===123)return l++,g=19;let K=0;for(;l0)break;Ba($)||(K=l)}l++}return x=P.substring(h,l),K===-1?13:12}function Nr(){if(wt(g)){for(;l=Q)return g=1;for(let $=V(l);l=0&&rs(V(l-1))&&!(l+1=Q)return g=1;let R=ae(l);switch(l+=Ft(R),R){case 9:case 11:case 12:case 32:for(;l=0&&Zn($,e))return x=Bn(!0)+vt(),g=Qe();let K=On();return K>=0&&Zn(K,e)?(l+=6,I|=1024,x=String.fromCharCode(K)+vt(),g=Qe()):(l++,g=0)}if(Zn(R,e)){let $=R;for(;l=0),l=R,h=R,y=R,g=0,x=void 0,I=0}function Si(R){he+=R?1:-1}}function Wi(e,t){return e.codePointAt(t)}function Ft(e){return e>=65536?2:e===-1?0:1}function cg(e){if(B.assert(0<=e&&e<=1114111),e<=65535)return String.fromCharCode(e);let t=Math.floor((e-65536)/1024)+55296,a=(e-65536)%1024+56320;return String.fromCharCode(t,a)}var lg=String.fromCodePoint?e=>String.fromCodePoint(e):cg;function Nd(e){return lg(e)}var Id=new Map(Object.entries({General_Category:\"General_Category\",gc:\"General_Category\",Script:\"Script\",sc:\"Script\",Script_Extensions:\"Script_Extensions\",scx:\"Script_Extensions\"})),Od=new Set([\"ASCII\",\"ASCII_Hex_Digit\",\"AHex\",\"Alphabetic\",\"Alpha\",\"Any\",\"Assigned\",\"Bidi_Control\",\"Bidi_C\",\"Bidi_Mirrored\",\"Bidi_M\",\"Case_Ignorable\",\"CI\",\"Cased\",\"Changes_When_Casefolded\",\"CWCF\",\"Changes_When_Casemapped\",\"CWCM\",\"Changes_When_Lowercased\",\"CWL\",\"Changes_When_NFKC_Casefolded\",\"CWKCF\",\"Changes_When_Titlecased\",\"CWT\",\"Changes_When_Uppercased\",\"CWU\",\"Dash\",\"Default_Ignorable_Code_Point\",\"DI\",\"Deprecated\",\"Dep\",\"Diacritic\",\"Dia\",\"Emoji\",\"Emoji_Component\",\"EComp\",\"Emoji_Modifier\",\"EMod\",\"Emoji_Modifier_Base\",\"EBase\",\"Emoji_Presentation\",\"EPres\",\"Extended_Pictographic\",\"ExtPict\",\"Extender\",\"Ext\",\"Grapheme_Base\",\"Gr_Base\",\"Grapheme_Extend\",\"Gr_Ext\",\"Hex_Digit\",\"Hex\",\"IDS_Binary_Operator\",\"IDSB\",\"IDS_Trinary_Operator\",\"IDST\",\"ID_Continue\",\"IDC\",\"ID_Start\",\"IDS\",\"Ideographic\",\"Ideo\",\"Join_Control\",\"Join_C\",\"Logical_Order_Exception\",\"LOE\",\"Lowercase\",\"Lower\",\"Math\",\"Noncharacter_Code_Point\",\"NChar\",\"Pattern_Syntax\",\"Pat_Syn\",\"Pattern_White_Space\",\"Pat_WS\",\"Quotation_Mark\",\"QMark\",\"Radical\",\"Regional_Indicator\",\"RI\",\"Sentence_Terminal\",\"STerm\",\"Soft_Dotted\",\"SD\",\"Terminal_Punctuation\",\"Term\",\"Unified_Ideograph\",\"UIdeo\",\"Uppercase\",\"Upper\",\"Variation_Selector\",\"VS\",\"White_Space\",\"space\",\"XID_Continue\",\"XIDC\",\"XID_Start\",\"XIDS\"]),Md=new Set([\"Basic_Emoji\",\"Emoji_Keycap_Sequence\",\"RGI_Emoji_Modifier_Sequence\",\"RGI_Emoji_Flag_Sequence\",\"RGI_Emoji_Tag_Sequence\",\"RGI_Emoji_ZWJ_Sequence\",\"RGI_Emoji\"]),Ra={General_Category:new Set([\"C\",\"Other\",\"Cc\",\"Control\",\"cntrl\",\"Cf\",\"Format\",\"Cn\",\"Unassigned\",\"Co\",\"Private_Use\",\"Cs\",\"Surrogate\",\"L\",\"Letter\",\"LC\",\"Cased_Letter\",\"Ll\",\"Lowercase_Letter\",\"Lm\",\"Modifier_Letter\",\"Lo\",\"Other_Letter\",\"Lt\",\"Titlecase_Letter\",\"Lu\",\"Uppercase_Letter\",\"M\",\"Mark\",\"Combining_Mark\",\"Mc\",\"Spacing_Mark\",\"Me\",\"Enclosing_Mark\",\"Mn\",\"Nonspacing_Mark\",\"N\",\"Number\",\"Nd\",\"Decimal_Number\",\"digit\",\"Nl\",\"Letter_Number\",\"No\",\"Other_Number\",\"P\",\"Punctuation\",\"punct\",\"Pc\",\"Connector_Punctuation\",\"Pd\",\"Dash_Punctuation\",\"Pe\",\"Close_Punctuation\",\"Pf\",\"Final_Punctuation\",\"Pi\",\"Initial_Punctuation\",\"Po\",\"Other_Punctuation\",\"Ps\",\"Open_Punctuation\",\"S\",\"Symbol\",\"Sc\",\"Currency_Symbol\",\"Sk\",\"Modifier_Symbol\",\"Sm\",\"Math_Symbol\",\"So\",\"Other_Symbol\",\"Z\",\"Separator\",\"Zl\",\"Line_Separator\",\"Zp\",\"Paragraph_Separator\",\"Zs\",\"Space_Separator\"]),Script:new Set([\"Adlm\",\"Adlam\",\"Aghb\",\"Caucasian_Albanian\",\"Ahom\",\"Arab\",\"Arabic\",\"Armi\",\"Imperial_Aramaic\",\"Armn\",\"Armenian\",\"Avst\",\"Avestan\",\"Bali\",\"Balinese\",\"Bamu\",\"Bamum\",\"Bass\",\"Bassa_Vah\",\"Batk\",\"Batak\",\"Beng\",\"Bengali\",\"Bhks\",\"Bhaiksuki\",\"Bopo\",\"Bopomofo\",\"Brah\",\"Brahmi\",\"Brai\",\"Braille\",\"Bugi\",\"Buginese\",\"Buhd\",\"Buhid\",\"Cakm\",\"Chakma\",\"Cans\",\"Canadian_Aboriginal\",\"Cari\",\"Carian\",\"Cham\",\"Cher\",\"Cherokee\",\"Chrs\",\"Chorasmian\",\"Copt\",\"Coptic\",\"Qaac\",\"Cpmn\",\"Cypro_Minoan\",\"Cprt\",\"Cypriot\",\"Cyrl\",\"Cyrillic\",\"Deva\",\"Devanagari\",\"Diak\",\"Dives_Akuru\",\"Dogr\",\"Dogra\",\"Dsrt\",\"Deseret\",\"Dupl\",\"Duployan\",\"Egyp\",\"Egyptian_Hieroglyphs\",\"Elba\",\"Elbasan\",\"Elym\",\"Elymaic\",\"Ethi\",\"Ethiopic\",\"Geor\",\"Georgian\",\"Glag\",\"Glagolitic\",\"Gong\",\"Gunjala_Gondi\",\"Gonm\",\"Masaram_Gondi\",\"Goth\",\"Gothic\",\"Gran\",\"Grantha\",\"Grek\",\"Greek\",\"Gujr\",\"Gujarati\",\"Guru\",\"Gurmukhi\",\"Hang\",\"Hangul\",\"Hani\",\"Han\",\"Hano\",\"Hanunoo\",\"Hatr\",\"Hatran\",\"Hebr\",\"Hebrew\",\"Hira\",\"Hiragana\",\"Hluw\",\"Anatolian_Hieroglyphs\",\"Hmng\",\"Pahawh_Hmong\",\"Hmnp\",\"Nyiakeng_Puachue_Hmong\",\"Hrkt\",\"Katakana_Or_Hiragana\",\"Hung\",\"Old_Hungarian\",\"Ital\",\"Old_Italic\",\"Java\",\"Javanese\",\"Kali\",\"Kayah_Li\",\"Kana\",\"Katakana\",\"Kawi\",\"Khar\",\"Kharoshthi\",\"Khmr\",\"Khmer\",\"Khoj\",\"Khojki\",\"Kits\",\"Khitan_Small_Script\",\"Knda\",\"Kannada\",\"Kthi\",\"Kaithi\",\"Lana\",\"Tai_Tham\",\"Laoo\",\"Lao\",\"Latn\",\"Latin\",\"Lepc\",\"Lepcha\",\"Limb\",\"Limbu\",\"Lina\",\"Linear_A\",\"Linb\",\"Linear_B\",\"Lisu\",\"Lyci\",\"Lycian\",\"Lydi\",\"Lydian\",\"Mahj\",\"Mahajani\",\"Maka\",\"Makasar\",\"Mand\",\"Mandaic\",\"Mani\",\"Manichaean\",\"Marc\",\"Marchen\",\"Medf\",\"Medefaidrin\",\"Mend\",\"Mende_Kikakui\",\"Merc\",\"Meroitic_Cursive\",\"Mero\",\"Meroitic_Hieroglyphs\",\"Mlym\",\"Malayalam\",\"Modi\",\"Mong\",\"Mongolian\",\"Mroo\",\"Mro\",\"Mtei\",\"Meetei_Mayek\",\"Mult\",\"Multani\",\"Mymr\",\"Myanmar\",\"Nagm\",\"Nag_Mundari\",\"Nand\",\"Nandinagari\",\"Narb\",\"Old_North_Arabian\",\"Nbat\",\"Nabataean\",\"Newa\",\"Nkoo\",\"Nko\",\"Nshu\",\"Nushu\",\"Ogam\",\"Ogham\",\"Olck\",\"Ol_Chiki\",\"Orkh\",\"Old_Turkic\",\"Orya\",\"Oriya\",\"Osge\",\"Osage\",\"Osma\",\"Osmanya\",\"Ougr\",\"Old_Uyghur\",\"Palm\",\"Palmyrene\",\"Pauc\",\"Pau_Cin_Hau\",\"Perm\",\"Old_Permic\",\"Phag\",\"Phags_Pa\",\"Phli\",\"Inscriptional_Pahlavi\",\"Phlp\",\"Psalter_Pahlavi\",\"Phnx\",\"Phoenician\",\"Plrd\",\"Miao\",\"Prti\",\"Inscriptional_Parthian\",\"Rjng\",\"Rejang\",\"Rohg\",\"Hanifi_Rohingya\",\"Runr\",\"Runic\",\"Samr\",\"Samaritan\",\"Sarb\",\"Old_South_Arabian\",\"Saur\",\"Saurashtra\",\"Sgnw\",\"SignWriting\",\"Shaw\",\"Shavian\",\"Shrd\",\"Sharada\",\"Sidd\",\"Siddham\",\"Sind\",\"Khudawadi\",\"Sinh\",\"Sinhala\",\"Sogd\",\"Sogdian\",\"Sogo\",\"Old_Sogdian\",\"Sora\",\"Sora_Sompeng\",\"Soyo\",\"Soyombo\",\"Sund\",\"Sundanese\",\"Sylo\",\"Syloti_Nagri\",\"Syrc\",\"Syriac\",\"Tagb\",\"Tagbanwa\",\"Takr\",\"Takri\",\"Tale\",\"Tai_Le\",\"Talu\",\"New_Tai_Lue\",\"Taml\",\"Tamil\",\"Tang\",\"Tangut\",\"Tavt\",\"Tai_Viet\",\"Telu\",\"Telugu\",\"Tfng\",\"Tifinagh\",\"Tglg\",\"Tagalog\",\"Thaa\",\"Thaana\",\"Thai\",\"Tibt\",\"Tibetan\",\"Tirh\",\"Tirhuta\",\"Tnsa\",\"Tangsa\",\"Toto\",\"Ugar\",\"Ugaritic\",\"Vaii\",\"Vai\",\"Vith\",\"Vithkuqi\",\"Wara\",\"Warang_Citi\",\"Wcho\",\"Wancho\",\"Xpeo\",\"Old_Persian\",\"Xsux\",\"Cuneiform\",\"Yezi\",\"Yezidi\",\"Yiii\",\"Yi\",\"Zanb\",\"Zanabazar_Square\",\"Zinh\",\"Inherited\",\"Qaai\",\"Zyyy\",\"Common\",\"Zzzz\",\"Unknown\"]),Script_Extensions:void 0};Ra.Script_Extensions=Ra.Script;function wr(e){return e.start+e.length}function ug(e){return e.length===0}function of(e,t){if(e<0)throw new Error(\"start < 0\");if(t<0)throw new Error(\"length < 0\");return{start:e,length:t}}function pg(e,t){return of(e,t-e)}function K_(e){return of(e.span.start,e.newLength)}function fg(e){return ug(e.span)&&e.newLength===0}function Km(e,t){if(t<0)throw new Error(\"newLength < 0\");return{span:e,newLength:t}}var F4=Km(of(0,0),0);function cf(e,t){for(;e;){let a=t(e);if(a===\"quit\")return;if(a)return e;e=e.parent}}function ml(e){return(e.flags&16)===0}function dg(e,t){if(e===void 0||ml(e))return e;for(e=e.original;e;){if(ml(e))return!t||t(e)?e:void 0;e=e.original}}function Ja(e){return e.length>=2&&e.charCodeAt(0)===95&&e.charCodeAt(1)===95?\"_\"+e:e}function cs(e){let t=e;return t.length>=3&&t.charCodeAt(0)===95&&t.charCodeAt(1)===95&&t.charCodeAt(2)===95?t.substr(1):t}function Pn(e){return cs(e.escapedText)}function Sl(e){let t=Fm(e.escapedText);return t?by(t,di):void 0}function Lp(e){return e.valueDeclaration&&Lg(e.valueDeclaration)?Pn(e.valueDeclaration.name):cs(e.escapedName)}function Zm(e){let t=e.parent.parent;if(t){if(jd(t))return Zc(t);switch(t.kind){case 243:if(t.declarationList&&t.declarationList.declarations[0])return Zc(t.declarationList.declarations[0]);break;case 244:let a=t.expression;switch(a.kind===226&&a.operatorToken.kind===64&&(a=a.left),a.kind){case 211:return a.name;case 212:let o=a.argumentExpression;if(tt(o))return o}break;case 217:return Zc(t.expression);case 256:{if(jd(t.statement)||u1(t.statement))return Zc(t.statement);break}}}}function Zc(e){let t=e1(e);return t&&tt(t)?t:void 0}function mg(e){return e.name||Zm(e)}function hg(e){return!!e.name}function lf(e){switch(e.kind){case 80:return e;case 348:case 341:{let{name:a}=e;if(a.kind===166)return a.right;break}case 213:case 226:{let a=e;switch(yf(a)){case 1:case 4:case 5:case 3:return gf(a.left);case 7:case 8:case 9:return a.arguments[1];default:return}}case 346:return mg(e);case 340:return Zm(e);case 277:{let{expression:a}=e;return tt(a)?a:void 0}case 212:let t=e;if(g1(t))return t.argumentExpression}return e.name}function e1(e){if(e!==void 0)return lf(e)||(Mf(e)||Jf(e)||bl(e)?yg(e):void 0)}function yg(e){if(e.parent){if(nh(e.parent)||V1(e.parent))return e.parent.name;if(Ki(e.parent)&&e===e.parent.right){if(tt(e.parent.left))return e.parent.left;if(w1(e.parent.left))return gf(e.parent.left)}else if(Lf(e.parent)&&tt(e.parent.name))return e.parent.name}else return}function uf(e){if(q2(e))return Gr(e.modifiers,El)}function t1(e){if(bs(e,98303))return Gr(e.modifiers,Ug)}function n1(e,t){if(e.name)if(tt(e.name)){let a=e.name.escapedText;return ls(e.parent,t).filter(o=>Fp(o)&&tt(o.name)&&o.name.escapedText===a)}else{let a=e.parent.parameters.indexOf(e);B.assert(a>-1,\"Parameters should always be in their parents' parameter list\");let o=ls(e.parent,t).filter(Fp);if(aoh(o)&&o.typeParameters.some(m=>m.name.escapedText===a))}function vg(e){return r1(e,!1)}function Tg(e){return r1(e,!0)}function xg(e){return bi(e,i6)}function Sg(e){return Ng(e,f6)}function wg(e){return bi(e,a6,!0)}function kg(e){return bi(e,_6,!0)}function Eg(e){return bi(e,s6,!0)}function Ag(e){return bi(e,o6,!0)}function Cg(e){return bi(e,c6,!0)}function Dg(e){return bi(e,u6,!0)}function Pg(e){let t=bi(e,Ff);if(t&&t.typeExpression&&t.typeExpression.type)return t}function ls(e,t){var a;if(!bf(e))return bt;let o=(a=e.jsDoc)==null?void 0:a.jsDocCache;if(o===void 0||t){let m=k2(e,t);B.assert(m.length<2||m[0]!==m[1]),o=Am(m,v=>sh(v)?v.tags:v),t||(e.jsDoc??(e.jsDoc=[]),e.jsDoc.jsDocCache=o)}return o}function i1(e){return ls(e,!1)}function bi(e,t,a){return km(ls(e,a),t)}function Ng(e,t){return i1(e).filter(t)}function jp(e){return e.kind===80||e.kind===81}function Ig(e){return Hr(e)&&!!(e.flags&64)}function Og(e){return Ha(e)&&!!(e.flags&64)}function Jd(e){return Of(e)&&!!(e.flags&64)}function pf(e){return Vf(e,8)}function Mg(e){return cl(e)&&!!(e.flags&64)}function ff(e){return e>=166}function df(e){return e>=0&&e<=165}function a1(e){return df(e.kind)}function mi(e){return Cr(e,\"pos\")&&Cr(e,\"end\")}function Jg(e){return 9<=e&&e<=15}function Ld(e){return 15<=e&&e<=18}function Ua(e){var t;return tt(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function _1(e){var t;return gi(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function Lg(e){return(Va(e)||zg(e))&&gi(e.name)}function Wr(e){switch(e){case 128:case 129:case 134:case 87:case 138:case 90:case 95:case 103:case 125:case 123:case 124:case 148:case 126:case 147:case 164:return!0}return!1}function jg(e){return!!(x1(e)&31)}function Rg(e){return jg(e)||e===126||e===164||e===129}function Ug(e){return Wr(e.kind)}function s1(e){let t=e.kind;return t===80||t===81||t===11||t===9||t===167}function mf(e){return!!e&&qg(e.kind)}function Bg(e){switch(e){case 262:case 174:case 176:case 177:case 178:case 218:case 219:return!0;default:return!1}}function qg(e){switch(e){case 173:case 179:case 323:case 180:case 181:case 184:case 317:case 185:return!0;default:return Bg(e)}}function vi(e){return e&&(e.kind===263||e.kind===231)}function zg(e){switch(e.kind){case 174:case 177:case 178:return!0;default:return!1}}function Fg(e){let t=e.kind;return t===303||t===304||t===305||t===174||t===177||t===178}function o1(e){return K2(e.kind)}function Vg(e){if(e){let t=e.kind;return t===207||t===206}return!1}function Wg(e){let t=e.kind;return t===209||t===210}function Gg(e){switch(e.kind){case 260:case 169:case 208:return!0}return!1}function qa(e){return c1(pf(e).kind)}function c1(e){switch(e){case 211:case 212:case 214:case 213:case 284:case 285:case 288:case 215:case 209:case 217:case 210:case 231:case 218:case 80:case 81:case 14:case 9:case 10:case 11:case 15:case 228:case 97:case 106:case 110:case 112:case 108:case 235:case 233:case 236:case 102:case 282:return!0;default:return!1}}function Yg(e){return l1(pf(e).kind)}function l1(e){switch(e){case 224:case 225:case 220:case 221:case 222:case 223:case 216:return!0;default:return c1(e)}}function u1(e){return Hg(pf(e).kind)}function Hg(e){switch(e){case 227:case 229:case 219:case 226:case 230:case 234:case 232:case 356:case 355:case 238:return!0;default:return l1(e)}}function Xg(e){return e===219||e===208||e===263||e===231||e===175||e===176||e===266||e===306||e===281||e===262||e===218||e===177||e===273||e===271||e===276||e===264||e===291||e===174||e===173||e===267||e===270||e===274||e===280||e===169||e===303||e===172||e===171||e===178||e===304||e===265||e===168||e===260||e===346||e===338||e===348||e===202}function p1(e){return e===262||e===282||e===263||e===264||e===265||e===266||e===267||e===272||e===271||e===278||e===277||e===270}function f1(e){return e===252||e===251||e===259||e===246||e===244||e===242||e===249||e===250||e===248||e===245||e===256||e===253||e===255||e===257||e===258||e===243||e===247||e===254||e===353}function jd(e){return e.kind===168?e.parent&&e.parent.kind!==345||Zi(e):Xg(e.kind)}function $g(e){let t=e.kind;return f1(t)||p1(t)||Qg(e)}function Qg(e){return e.kind!==241||e.parent!==void 0&&(e.parent.kind===258||e.parent.kind===299)?!1:!p2(e)}function Kg(e){let t=e.kind;return f1(t)||p1(t)||t===241}function d1(e){return e.kind>=309&&e.kind<=351}function Zg(e){return e.kind===320||e.kind===319||e.kind===321||n2(e)||e2(e)||r6(e)||Pl(e)}function e2(e){return e.kind>=327&&e.kind<=351}function el(e){return e.kind===178}function tl(e){return e.kind===177}function Yi(e){if(!bf(e))return!1;let{jsDoc:t}=e;return!!t&&t.length>0}function t2(e){return!!e.initializer}function wl(e){return e.kind===11||e.kind===15}function n2(e){return e.kind===324||e.kind===325||e.kind===326}function Rd(e){return(e.flags&33554432)!==0}var V4=r2();function r2(){var e=\"\";let t=a=>e+=a;return{getText:()=>e,write:t,rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:(a,o)=>t(a),writeTrailingSemicolon:t,writeComment:t,getTextPos:()=>e.length,getLine:()=>0,getColumn:()=>0,getIndent:()=>0,isAtStartOfLine:()=>!1,hasTrailingComment:()=>!1,hasTrailingWhitespace:()=>!!e.length&&Ba(e.charCodeAt(e.length-1)),writeLine:()=>e+=\" \",increaseIndent:Fa,decreaseIndent:Fa,clear:()=>e=\"\"}}function i2(e,t){let a=e.entries();for(let[o,m]of a){let v=t(m,o);if(v)return v}}function a2(e){return e.end-e.pos}function m1(e){return _2(e),(e.flags&1048576)!==0}function _2(e){e.flags&2097152||((e.flags&262144||Xt(e,m1))&&(e.flags|=1048576),e.flags|=2097152)}function hi(e){for(;e&&e.kind!==307;)e=e.parent;return e}function Hi(e){return e===void 0?!0:e.pos===e.end&&e.pos>=0&&e.kind!==1}function Rp(e){return!Hi(e)}function hl(e,t,a){if(Hi(e))return e.pos;if(d1(e)||e.kind===12)return Ar((t??hi(e)).text,e.pos,!1,!0);if(a&&Yi(e))return hl(e.jsDoc[0],t);if(e.kind===352){t??(t=hi(e));let o=Hp(ch(e,t));if(o)return hl(o,t,a)}return Ar((t??hi(e)).text,e.pos,!1,!1,f2(e))}function Ud(e,t,a=!1){return is(e.text,t,a)}function s2(e){return!!cf(e,ih)}function is(e,t,a=!1){if(Hi(t))return\"\";let o=e.substring(a?t.pos:Ar(e,t.pos),t.end);return s2(t)&&(o=o.split(/\\r\\n|\\n|\\r/).map(m=>m.replace(/^\\s*\\*/,\"\").trimStart()).join(`\n`)),o}function za(e){let t=e.emitNode;return t&&t.flags||0}function o2(e,t,a){B.assertGreaterThanOrEqual(t,0),B.assertGreaterThanOrEqual(a,0),B.assertLessThanOrEqual(t,e.length),B.assertLessThanOrEqual(t+a,e.length)}function ol(e){return e.kind===244&&e.expression.kind===11}function hf(e){return!!(za(e)&2097152)}function Bd(e){return hf(e)&&jf(e)}function c2(e){return tt(e.name)&&!e.initializer}function qd(e){return hf(e)&&Xa(e)&&Gp(e.declarationList.declarations,c2)}function l2(e,t){let a=e.kind===169||e.kind===168||e.kind===218||e.kind===219||e.kind===217||e.kind===260||e.kind===281?Yp(sg(t,e.pos),Jp(t,e.pos)):Jp(t,e.pos);return Gr(a,o=>o.end<=e.end&&t.charCodeAt(o.pos+1)===42&&t.charCodeAt(o.pos+2)===42&&t.charCodeAt(o.pos+3)!==47)}function u2(e){if(e)switch(e.kind){case 208:case 306:case 169:case 303:case 172:case 171:case 304:case 260:return!0}return!1}function p2(e){return e&&e.kind===241&&mf(e.parent)}function zd(e){let t=e.kind;return(t===211||t===212)&&e.expression.kind===108}function Zi(e){return!!e&&!!(e.flags&524288)}function f2(e){return!!e&&!!(e.flags&16777216)}function d2(e){for(;yl(e,!0);)e=e.right;return e}function m2(e){return tt(e)&&e.escapedText===\"exports\"}function h2(e){return tt(e)&&e.escapedText===\"module\"}function h1(e){return(Hr(e)||y1(e))&&h2(e.expression)&&ps(e)===\"exports\"}function yf(e){let t=g2(e);return t===5||Zi(e)?t:0}function y2(e){return ts(e.arguments)===3&&Hr(e.expression)&&tt(e.expression.expression)&&Pn(e.expression.expression)===\"Object\"&&Pn(e.expression.name)===\"defineProperty\"&&kl(e.arguments[1])&&us(e.arguments[0],!0)}function y1(e){return Ha(e)&&kl(e.argumentExpression)}function gs(e,t){return Hr(e)&&(!t&&e.expression.kind===110||tt(e.name)&&us(e.expression,!0))||g1(e,t)}function g1(e,t){return y1(e)&&(!t&&e.expression.kind===110||xf(e.expression)||gs(e.expression,!0))}function us(e,t){return xf(e)||gs(e,t)}function g2(e){if(Of(e)){if(!y2(e))return 0;let t=e.arguments[0];return m2(t)||h1(t)?8:gs(t)&&ps(t)===\"prototype\"?9:7}return e.operatorToken.kind!==64||!w1(e.left)||b2(d2(e))?0:us(e.left.expression,!0)&&ps(e.left)===\"prototype\"&&If(T2(e))?6:v2(e.left)}function b2(e){return Qb(e)&&ea(e.expression)&&e.expression.text===\"0\"}function gf(e){if(Hr(e))return e.name;let t=vf(e.argumentExpression);return ea(t)||wl(t)?t:e}function ps(e){let t=gf(e);if(t){if(tt(t))return t.escapedText;if(wl(t)||ea(t))return Ja(t.text)}}function v2(e){if(e.expression.kind===110)return 4;if(h1(e))return 2;if(us(e.expression,!0)){if($2(e.expression))return 3;let t=e;for(;!tt(t.expression);)t=t.expression;let a=t.expression;if((a.escapedText===\"exports\"||a.escapedText===\"module\"&&ps(t)===\"exports\")&&gs(e))return 1;if(us(e,!0)||Ha(e)&&J2(e))return 5}return 0}function T2(e){for(;Ki(e.right);)e=e.right;return e.right}function x2(e){return Cl(e)&&Ki(e.expression)&&yf(e.expression)!==0&&Ki(e.expression.right)&&(e.expression.right.operatorToken.kind===57||e.expression.right.operatorToken.kind===61)?e.expression.right.right:void 0}function S2(e){switch(e.kind){case 243:let t=Up(e);return t&&t.initializer;case 172:return e.initializer;case 303:return e.initializer}}function Up(e){return Xa(e)?Hp(e.declarationList.declarations):void 0}function w2(e){return Ti(e)&&e.body&&e.body.kind===267?e.body:void 0}function bf(e){switch(e.kind){case 219:case 226:case 241:case 252:case 179:case 296:case 263:case 231:case 175:case 176:case 185:case 180:case 251:case 259:case 246:case 212:case 242:case 1:case 266:case 306:case 277:case 278:case 281:case 244:case 249:case 250:case 248:case 262:case 218:case 184:case 177:case 80:case 245:case 272:case 271:case 181:case 264:case 317:case 323:case 256:case 174:case 173:case 267:case 202:case 270:case 210:case 169:case 217:case 211:case 303:case 172:case 171:case 253:case 240:case 178:case 304:case 305:case 255:case 257:case 258:case 265:case 168:case 260:case 243:case 247:case 254:return!0;default:return!1}}function k2(e,t){let a;u2(e)&&t2(e)&&Yi(e.initializer)&&(a=Dn(a,Fd(e,e.initializer.jsDoc)));let o=e;for(;o&&o.parent;){if(Yi(o)&&(a=Dn(a,Fd(e,o.jsDoc))),o.kind===169){a=Dn(a,(t?bg:gg)(o));break}if(o.kind===168){a=Dn(a,(t?Tg:vg)(o));break}o=A2(o)}return a||bt}function Fd(e,t){let a=ly(t);return Am(t,o=>{if(o===a){let m=Gr(o.tags,v=>E2(e,v));return o.tags===m?[o]:m}else return Gr(o.tags,l6)})}function E2(e,t){return!(Ff(t)||d6(t))||!t.parent||!sh(t.parent)||!Al(t.parent.parent)||t.parent.parent===e}function A2(e){let t=e.parent;if(t.kind===303||t.kind===277||t.kind===172||t.kind===244&&e.kind===211||t.kind===253||w2(t)||yl(e))return t;if(t.parent&&(Up(t.parent)===e||yl(t)))return t.parent;if(t.parent&&t.parent.parent&&(Up(t.parent.parent)||S2(t.parent.parent)===e||x2(t.parent.parent)))return t.parent.parent}function vf(e,t){return Vf(e,t?-2147483647:1)}function C2(e){let t=D2(e);if(t&&Zi(e)){let a=xg(e);if(a)return a.class}return t}function D2(e){let t=Tf(e.heritageClauses,96);return t&&t.types.length>0?t.types[0]:void 0}function P2(e){if(Zi(e))return Sg(e).map(t=>t.class);{let t=Tf(e.heritageClauses,119);return t==null?void 0:t.types}}function N2(e){return vs(e)?I2(e)||bt:vi(e)&&Yp(Ip(C2(e)),P2(e))||bt}function I2(e){let t=Tf(e.heritageClauses,96);return t?t.types:void 0}function Tf(e,t){if(e){for(let a of e)if(a.token===t)return a}}function di(e){return 83<=e&&e<=165}function O2(e){return 19<=e&&e<=79}function xp(e){return di(e)||O2(e)}function kl(e){return wl(e)||ea(e)}function M2(e){return Y1(e)&&(e.operator===40||e.operator===41)&&ea(e.operand)}function J2(e){if(!(e.kind===167||e.kind===212))return!1;let t=Ha(e)?vf(e.argumentExpression):e.expression;return!kl(t)&&!M2(t)}function L2(e){return jp(e)?Pn(e):th(e)?kb(e):e.text}function La(e){return fs(e.pos)||fs(e.end)}function Sp(e){switch(e){case 61:return 4;case 57:return 5;case 56:return 6;case 52:return 7;case 53:return 8;case 51:return 9;case 35:case 36:case 37:case 38:return 10;case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:return 11;case 48:case 49:case 50:return 12;case 40:case 41:return 13;case 42:case 44:case 45:return 14;case 43:return 15}return-1}function wp(e){return!!((e.templateFlags||0)&2048)}function j2(e){return e&&!!(P1(e)?wp(e):wp(e.head)||Ht(e.templateSpans,t=>wp(t.literal)))}var W4=new Map(Object.entries({\"\t\":\"\\\\t\",\"\\v\":\"\\\\v\",\"\\f\":\"\\\\f\",\"\\b\":\"\\\\b\",\"\\r\":\"\\\\r\",\"\\n\":\"\\\\n\",\"\\\\\":\"\\\\\\\\\",'\"':'\\\\\"',\"'\":\"\\\\'\",\"`\":\"\\\\`\",\"\\u2028\":\"\\\\u2028\",\"\\u2029\":\"\\\\u2029\",\"\\x85\":\"\\\\u0085\",\"\\r\\n\":\"\\\\r\\\\n\"}));var G4=new Map(Object.entries({'\"':\""\",\"'\":\"'\"}));function R2(e){return!!e&&e.kind===80&&U2(e)}function U2(e){return e.escapedText===\"this\"}function bs(e,t){return!!z2(e,t)}function B2(e){return bs(e,256)}function q2(e){return bs(e,32768)}function z2(e,t){return V2(e)&t}function F2(e,t,a){return e.kind>=0&&e.kind<=165?0:(e.modifierFlagsCache&536870912||(e.modifierFlagsCache=T1(e)|536870912),a||t&&Zi(e)?(!(e.modifierFlagsCache&268435456)&&e.parent&&(e.modifierFlagsCache|=b1(e)|268435456),v1(e.modifierFlagsCache)):W2(e.modifierFlagsCache))}function V2(e){return F2(e,!1)}function b1(e){let t=0;return e.parent&&!ds(e)&&(Zi(e)&&(wg(e)&&(t|=8388608),kg(e)&&(t|=16777216),Eg(e)&&(t|=33554432),Ag(e)&&(t|=67108864),Cg(e)&&(t|=134217728)),Dg(e)&&(t|=65536)),t}function W2(e){return e&65535}function v1(e){return e&131071|(e&260046848)>>>23}function G2(e){return v1(b1(e))}function Y2(e){return T1(e)|G2(e)}function T1(e){let t=Nl(e)?Rn(e.modifiers):0;return(e.flags&8||e.kind===80&&e.flags&4096)&&(t|=32),t}function Rn(e){let t=0;if(e)for(let a of e)t|=x1(a.kind);return t}function x1(e){switch(e){case 126:return 256;case 125:return 1;case 124:return 4;case 123:return 2;case 128:return 64;case 129:return 512;case 95:return 32;case 138:return 128;case 87:return 4096;case 90:return 2048;case 134:return 1024;case 148:return 8;case 164:return 16;case 103:return 8192;case 147:return 16384;case 170:return 32768}return 0}function H2(e){return e===76||e===77||e===78}function S1(e){return e>=64&&e<=79}function yl(e,t){return Ki(e)&&(t?e.operatorToken.kind===64:S1(e.operatorToken.kind))&&qa(e.left)}function xf(e){return e.kind===80||X2(e)}function X2(e){return Hr(e)&&tt(e.name)&&xf(e.expression)}function $2(e){return gs(e)&&ps(e)===\"prototype\"}function kp(e){return e.flags&3899393?e.objectFlags:0}function Q2(e){let t;return Xt(e,a=>{Rp(a)&&(t=a)},a=>{for(let o=a.length-1;o>=0;o--)if(Rp(a[o])){t=a[o];break}}),t}function K2(e){return e>=182&&e<=205||e===133||e===159||e===150||e===163||e===151||e===136||e===154||e===155||e===116||e===157||e===146||e===141||e===233||e===312||e===313||e===314||e===315||e===316||e===317||e===318}function w1(e){return e.kind===211||e.kind===212}function Z2(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=0,this.mergeId=0,this.parent=void 0,this.members=void 0,this.exports=void 0,this.exportSymbol=void 0,this.constEnumOnlyModule=void 0,this.isReferenced=void 0,this.lastAssignmentPos=void 0,this.links=void 0}function eb(e,t){this.flags=t,(B.isDebugging||_l)&&(this.checker=e)}function tb(e,t){this.flags=t,B.isDebugging&&(this.checker=e)}function Ep(e,t,a){this.pos=t,this.end=a,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function nb(e,t,a){this.pos=t,this.end=a,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.emitNode=void 0}function rb(e,t,a){this.pos=t,this.end=a,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function ib(e,t,a){this.fileName=e,this.text=t,this.skipTrivia=a||(o=>o)}var At={getNodeConstructor:()=>Ep,getTokenConstructor:()=>nb,getIdentifierConstructor:()=>rb,getPrivateIdentifierConstructor:()=>Ep,getSourceFileConstructor:()=>Ep,getSymbolConstructor:()=>Z2,getTypeConstructor:()=>eb,getSignatureConstructor:()=>tb,getSourceMapSourceConstructor:()=>ib},ab=[];function _b(e){Object.assign(At,e),Un(ab,t=>t(At))}function sb(e,t){return e.replace(/\\{(\\d+)\\}/g,(a,o)=>\"\"+B.checkDefined(t[+o]))}var Vd;function ob(e){return Vd&&Vd[e.key]||e.message}function Oa(e,t,a,o,m,...v){a+o>t.length&&(o=t.length-a),o2(t,a,o);let A=ob(m);return Ht(v)&&(A=sb(A,v)),{file:void 0,start:a,length:o,messageText:A,category:m.category,code:m.code,reportsUnnecessary:m.reportsUnnecessary,fileName:e}}function cb(e){return e.file===void 0&&e.start!==void 0&&e.length!==void 0&&typeof e.fileName==\"string\"}function k1(e,t){let a=t.fileName||\"\",o=t.text.length;B.assertEqual(e.fileName,a),B.assertLessThanOrEqual(e.start,o),B.assertLessThanOrEqual(e.start+e.length,o);let m={file:t,start:e.start,length:e.length,messageText:e.messageText,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary};if(e.relatedInformation){m.relatedInformation=[];for(let v of e.relatedInformation)cb(v)&&v.fileName===a?(B.assertLessThanOrEqual(v.start,o),B.assertLessThanOrEqual(v.start+v.length,o),m.relatedInformation.push(k1(v,t))):m.relatedInformation.push(v)}return m}function qi(e,t){let a=[];for(let o of e)a.push(k1(o,t));return a}function Wd(e){return e===4||e===2||e===1||e===6?1:0}var at={allowImportingTsExtensions:{dependencies:[\"rewriteRelativeImportExtensions\"],computeValue:e=>!!(e.allowImportingTsExtensions||e.rewriteRelativeImportExtensions)},target:{dependencies:[\"module\"],computeValue:e=>(e.target===0?void 0:e.target)??(e.module===100&&9||e.module===199&&99||1)},module:{dependencies:[\"target\"],computeValue:e=>typeof e.module==\"number\"?e.module:at.target.computeValue(e)>=2?5:1},moduleResolution:{dependencies:[\"module\",\"target\"],computeValue:e=>{let t=e.moduleResolution;if(t===void 0)switch(at.module.computeValue(e)){case 1:t=2;break;case 100:t=3;break;case 199:t=99;break;case 200:t=100;break;default:t=1;break}return t}},moduleDetection:{dependencies:[\"module\",\"target\"],computeValue:e=>e.moduleDetection||(at.module.computeValue(e)===100||at.module.computeValue(e)===199?3:2)},isolatedModules:{dependencies:[\"verbatimModuleSyntax\"],computeValue:e=>!!(e.isolatedModules||e.verbatimModuleSyntax)},esModuleInterop:{dependencies:[\"module\",\"target\"],computeValue:e=>{if(e.esModuleInterop!==void 0)return e.esModuleInterop;switch(at.module.computeValue(e)){case 100:case 199:case 200:return!0}return!1}},allowSyntheticDefaultImports:{dependencies:[\"module\",\"target\",\"moduleResolution\"],computeValue:e=>e.allowSyntheticDefaultImports!==void 0?e.allowSyntheticDefaultImports:at.esModuleInterop.computeValue(e)||at.module.computeValue(e)===4||at.moduleResolution.computeValue(e)===100},resolvePackageJsonExports:{dependencies:[\"moduleResolution\"],computeValue:e=>{let t=at.moduleResolution.computeValue(e);if(!Gd(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolvePackageJsonImports:{dependencies:[\"moduleResolution\",\"resolvePackageJsonExports\"],computeValue:e=>{let t=at.moduleResolution.computeValue(e);if(!Gd(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolveJsonModule:{dependencies:[\"moduleResolution\",\"module\",\"target\"],computeValue:e=>e.resolveJsonModule!==void 0?e.resolveJsonModule:at.moduleResolution.computeValue(e)===100},declaration:{dependencies:[\"composite\"],computeValue:e=>!!(e.declaration||e.composite)},preserveConstEnums:{dependencies:[\"isolatedModules\",\"verbatimModuleSyntax\"],computeValue:e=>!!(e.preserveConstEnums||at.isolatedModules.computeValue(e))},incremental:{dependencies:[\"composite\"],computeValue:e=>!!(e.incremental||e.composite)},declarationMap:{dependencies:[\"declaration\",\"composite\"],computeValue:e=>!!(e.declarationMap&&at.declaration.computeValue(e))},allowJs:{dependencies:[\"checkJs\"],computeValue:e=>e.allowJs===void 0?!!e.checkJs:e.allowJs},useDefineForClassFields:{dependencies:[\"target\",\"module\"],computeValue:e=>e.useDefineForClassFields===void 0?at.target.computeValue(e)>=9:e.useDefineForClassFields},noImplicitAny:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"noImplicitAny\")},noImplicitThis:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"noImplicitThis\")},strictNullChecks:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"strictNullChecks\")},strictFunctionTypes:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"strictFunctionTypes\")},strictBindCallApply:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"strictBindCallApply\")},strictPropertyInitialization:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"strictPropertyInitialization\")},strictBuiltinIteratorReturn:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"strictBuiltinIteratorReturn\")},alwaysStrict:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"alwaysStrict\")},useUnknownInCatchVariables:{dependencies:[\"strict\"],computeValue:e=>Vr(e,\"useUnknownInCatchVariables\")}};var Y4=at.allowImportingTsExtensions.computeValue,H4=at.target.computeValue,X4=at.module.computeValue,$4=at.moduleResolution.computeValue,Q4=at.moduleDetection.computeValue,K4=at.isolatedModules.computeValue,Z4=at.esModuleInterop.computeValue,e3=at.allowSyntheticDefaultImports.computeValue,t3=at.resolvePackageJsonExports.computeValue,n3=at.resolvePackageJsonImports.computeValue,r3=at.resolveJsonModule.computeValue,i3=at.declaration.computeValue,a3=at.preserveConstEnums.computeValue,_3=at.incremental.computeValue,s3=at.declarationMap.computeValue,o3=at.allowJs.computeValue,c3=at.useDefineForClassFields.computeValue;function Gd(e){return e>=3&&e<=99||e===100}function Vr(e,t){return e[t]===void 0?!!e.strict:!!e[t]}function lb(e){return i2(targetOptionDeclaration.type,(t,a)=>t===e?a:void 0)}var ub=[\"node_modules\",\"bower_components\",\"jspm_packages\"],E1=`(?!(${ub.join(\"|\")})(/|$))`,pb={singleAsteriskRegexFragment:\"([^./]|(\\\\.(?!min\\\\.js$))?)*\",doubleAsteriskRegexFragment:`(/${E1}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>A1(e,pb.singleAsteriskRegexFragment)},fb={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:`(/${E1}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>A1(e,fb.singleAsteriskRegexFragment)};function A1(e,t){return e===\"*\"?t:e===\"?\"?\"[^/]\":\"\\\\\"+e}function db(e,t){return t||mb(e)||3}function mb(e){switch(e.substr(e.lastIndexOf(\".\")).toLowerCase()){case\".js\":case\".cjs\":case\".mjs\":return 1;case\".jsx\":return 2;case\".ts\":case\".cts\":case\".mts\":return 3;case\".tsx\":return 4;case\".json\":return 6;default:return 0}}var C1=[[\".ts\",\".tsx\",\".d.ts\"],[\".cts\",\".d.cts\"],[\".mts\",\".d.mts\"]],l3=Em(C1),u3=[...C1,[\".json\"]];var hb=[[\".js\",\".jsx\"],[\".mjs\"],[\".cjs\"]],p3=Em(hb),yb=[[\".ts\",\".tsx\",\".d.ts\",\".js\",\".jsx\"],[\".cts\",\".d.cts\",\".cjs\"],[\".mts\",\".d.mts\",\".mjs\"]],f3=[...yb,[\".json\"]],gb=[\".d.ts\",\".d.cts\",\".d.mts\"];function fs(e){return!(e>=0)}function nl(e,...t){return t.length&&(e.relatedInformation||(e.relatedInformation=[]),B.assert(e.relatedInformation!==bt,\"Diagnostic had empty array singleton for related info, but is still being constructed!\"),e.relatedInformation.push(...t)),e}function bb(e){let t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:let Q=e.length-1,h=0;for(;e.charCodeAt(h)===48;)h++;return e.slice(h,Q)||\"0\"}let a=2,o=e.length-1,m=(o-a)*t,v=new Uint16Array((m>>>4)+(m&15?1:0));for(let Q=o-1,h=0;Q>=a;Q--,h+=t){let y=h>>>4,g=e.charCodeAt(Q),I=(g<=57?g-48:10+g-(g<=70?65:97))<<(h&15);v[y]|=I;let re=I>>>16;re&&(v[y+1]|=re)}let A=\"\",P=v.length-1,l=!0;for(;l;){let Q=0;l=!1;for(let h=P;h>=0;h--){let y=Q<<16|v[h],g=y/10|0;v[h]=g,Q=y-g*10,g&&!l&&(P=h,l=!0)}A=Q+A}return A}function vb({negative:e,base10Value:t}){return(e&&t!==\"0\"?\"-\":\"\")+t}function Bp(e,t){return e.pos=t,e}function Tb(e,t){return e.end=t,e}function yi(e,t,a){return Tb(Bp(e,t),a)}function Yd(e,t,a){return yi(e,t,t+a)}function Sf(e,t){return e&&t&&(e.parent=t),e}function xb(e,t){if(!e)return e;return vm(e,d1(e)?a:m),e;function a(v,A){if(t&&v.parent===A)return\"skip\";Sf(v,A)}function o(v){if(Yi(v))for(let A of v.jsDoc)a(A,v),vm(A,a)}function m(v,A){return a(v,A)||o(v)}}function Sb(e){return!!(e.flags&262144&&e.isThisType)}function wb(e){var t;return((t=getSnippetElement(e))==null?void 0:t.kind)===0}function kb(e){return`${Pn(e.namespace)}:${Pn(e.name)}`}var d3=String.prototype.replace;var qp=[\"assert\",\"assert/strict\",\"async_hooks\",\"buffer\",\"child_process\",\"cluster\",\"console\",\"constants\",\"crypto\",\"dgram\",\"diagnostics_channel\",\"dns\",\"dns/promises\",\"domain\",\"events\",\"fs\",\"fs/promises\",\"http\",\"http2\",\"https\",\"inspector\",\"inspector/promises\",\"module\",\"net\",\"os\",\"path\",\"path/posix\",\"path/win32\",\"perf_hooks\",\"process\",\"punycode\",\"querystring\",\"readline\",\"readline/promises\",\"repl\",\"stream\",\"stream/consumers\",\"stream/promises\",\"stream/web\",\"string_decoder\",\"sys\",\"test/mock_loader\",\"timers\",\"timers/promises\",\"tls\",\"trace_events\",\"tty\",\"url\",\"util\",\"util/types\",\"v8\",\"vm\",\"wasi\",\"worker_threads\",\"zlib\"],m3=new Set(qp),Eb=new Set([\"node:sea\",\"node:sqlite\",\"node:test\",\"node:test/reporters\"]),h3=new Set([...qp,...qp.map(e=>`node:${e}`),...Eb]);function Ab(){let e,t,a,o,m;return{createBaseSourceFileNode:v,createBaseIdentifierNode:A,createBasePrivateIdentifierNode:P,createBaseTokenNode:l,createBaseNode:Q};function v(h){return new(m||(m=At.getSourceFileConstructor()))(h,-1,-1)}function A(h){return new(a||(a=At.getIdentifierConstructor()))(h,-1,-1)}function P(h){return new(o||(o=At.getPrivateIdentifierConstructor()))(h,-1,-1)}function l(h){return new(t||(t=At.getTokenConstructor()))(h,-1,-1)}function Q(h){return new(e||(e=At.getNodeConstructor()))(h,-1,-1)}}var Cb={getParenthesizeLeftSideOfBinaryForOperator:e=>gt,getParenthesizeRightSideOfBinaryForOperator:e=>gt,parenthesizeLeftSideOfBinary:(e,t)=>t,parenthesizeRightSideOfBinary:(e,t,a)=>a,parenthesizeExpressionOfComputedPropertyName:gt,parenthesizeConditionOfConditionalExpression:gt,parenthesizeBranchOfConditionalExpression:gt,parenthesizeExpressionOfExportDefault:gt,parenthesizeExpressionOfNew:e=>kr(e,qa),parenthesizeLeftSideOfAccess:e=>kr(e,qa),parenthesizeOperandOfPostfixUnary:e=>kr(e,qa),parenthesizeOperandOfPrefixUnary:e=>kr(e,Yg),parenthesizeExpressionsOfCommaDelimitedList:e=>kr(e,mi),parenthesizeExpressionForDisallowedComma:gt,parenthesizeExpressionOfExpressionStatement:gt,parenthesizeConciseBodyOfArrowFunction:gt,parenthesizeCheckTypeOfConditionalType:gt,parenthesizeExtendsTypeOfConditionalType:gt,parenthesizeConstituentTypesOfUnionType:e=>kr(e,mi),parenthesizeConstituentTypeOfUnionType:gt,parenthesizeConstituentTypesOfIntersectionType:e=>kr(e,mi),parenthesizeConstituentTypeOfIntersectionType:gt,parenthesizeOperandOfTypeOperator:gt,parenthesizeOperandOfReadonlyTypeOperator:gt,parenthesizeNonArrayTypeOfPostfixType:gt,parenthesizeElementTypesOfTupleType:e=>kr(e,mi),parenthesizeElementTypeOfTupleType:gt,parenthesizeTypeOfOptionalType:gt,parenthesizeTypeArguments:e=>e&&kr(e,mi),parenthesizeLeadingTypeArgument:gt},rl=0;var Db=[];function wf(e,t){let a=e&8?gt:Mb,o=wd(()=>e&1?Cb:createParenthesizerRules(ye)),m=wd(()=>e&2?nullNodeConverters:createNodeConverters(ye)),v=Kn(n=>(i,_)=>la(i,n,_)),A=Kn(n=>i=>jr(n,i)),P=Kn(n=>i=>ni(i,n)),l=Kn(n=>()=>Xo(n)),Q=Kn(n=>i=>C_(n,i)),h=Kn(n=>(i,_)=>xu(n,i,_)),y=Kn(n=>(i,_)=>$o(n,i,_)),g=Kn(n=>(i,_)=>Tu(n,i,_)),x=Kn(n=>(i,_)=>dc(n,i,_)),I=Kn(n=>(i,_,c)=>Ou(n,i,_,c)),re=Kn(n=>(i,_,c)=>mc(n,i,_,c)),he=Kn(n=>(i,_,c,f)=>Mu(n,i,_,c,f)),ye={get parenthesizer(){return o()},get converters(){return m()},baseFactory:t,flags:e,createNodeArray:de,createNumericLiteral:V,createBigIntLiteral:oe,createStringLiteral:dt,createStringLiteralFromNode:nr,createRegularExpressionLiteral:gn,createLiteralLikeNode:rr,createIdentifier:Ge,createTempVariable:ir,createLoopVariable:Pr,createUniqueName:Ot,getGeneratedNameForNode:Bn,createPrivateIdentifier:Mt,createUniquePrivateName:Qe,getGeneratedPrivateNameForNode:qn,createToken:ct,createSuper:_t,createThis:Ut,createNull:Jt,createTrue:lt,createFalse:ar,createModifier:mt,createModifiersFromModifierFlags:vn,createQualifiedName:yt,updateQualifiedName:cn,createComputedPropertyName:nt,updateComputedPropertyName:Bt,createTypeParameterDeclaration:rn,updateTypeParameterDeclaration:_r,createParameterDeclaration:fr,updateParameterDeclaration:dr,createDecorator:zn,updateDecorator:Fn,createPropertySignature:Nr,updatePropertySignature:Vn,createPropertyDeclaration:mr,updatePropertyDeclaration:L,createMethodSignature:se,updateMethodSignature:fe,createMethodDeclaration:Te,updateMethodDeclaration:Xe,createConstructorDeclaration:ut,updateConstructorDeclaration:Ir,createGetAccessorDeclaration:Mn,updateGetAccessorDeclaration:Wn,createSetAccessorDeclaration:R,updateSetAccessorDeclaration:$,createCallSignature:xe,updateCallSignature:Se,createConstructSignature:we,updateConstructSignature:be,createIndexSignature:We,updateIndexSignature:Ze,createClassStaticBlockDeclaration:st,updateClassStaticBlockDeclaration:Dt,createTemplateLiteralTypeSpan:Ye,updateTemplateLiteralTypeSpan:Ee,createKeywordTypeNode:Tn,createTypePredicateNode:rt,updateTypePredicateNode:ln,createTypeReferenceNode:Zr,updateTypeReferenceNode:J,createFunctionTypeNode:qe,updateFunctionTypeNode:u,createConstructorTypeNode:Me,updateConstructorTypeNode:an,createTypeQueryNode:Pt,updateTypeQueryNode:kt,createTypeLiteralNode:Nt,updateTypeLiteralNode:qt,createArrayTypeNode:Gn,updateArrayTypeNode:wi,createTupleTypeNode:un,updateTupleTypeNode:G,createNamedTupleMember:le,updateNamedTupleMember:Fe,createOptionalTypeNode:ve,updateOptionalTypeNode:j,createRestTypeNode:ht,updateRestTypeNode:xt,createUnionTypeNode:Ul,updateUnionTypeNode:Es,createIntersectionTypeNode:Or,updateIntersectionTypeNode:Je,createConditionalTypeNode:ft,updateConditionalTypeNode:Bl,createInferTypeNode:Yn,updateInferTypeNode:ql,createImportTypeNode:sr,updateImportTypeNode:ia,createParenthesizedType:Qt,updateParenthesizedType:Ct,createThisTypeNode:D,createTypeOperatorNode:Gt,updateTypeOperatorNode:Mr,createIndexedAccessTypeNode:or,updateIndexedAccessTypeNode:Ka,createMappedTypeNode:St,updateMappedTypeNode:jt,createLiteralTypeNode:ei,updateLiteralTypeNode:yr,createTemplateLiteralType:Wt,updateTemplateLiteralType:zl,createObjectBindingPattern:As,updateObjectBindingPattern:Fl,createArrayBindingPattern:Jr,updateArrayBindingPattern:Vl,createBindingElement:aa,updateBindingElement:ti,createArrayLiteralExpression:Za,updateArrayLiteralExpression:Cs,createObjectLiteralExpression:ki,updateObjectLiteralExpression:Wl,createPropertyAccessExpression:e&4?(n,i)=>setEmitFlags(cr(n,i),262144):cr,updatePropertyAccessExpression:Gl,createPropertyAccessChain:e&4?(n,i,_)=>setEmitFlags(Ei(n,i,_),262144):Ei,updatePropertyAccessChain:_a,createElementAccessExpression:Ai,updateElementAccessExpression:Yl,createElementAccessChain:Ns,updateElementAccessChain:e_,createCallExpression:Ci,updateCallExpression:sa,createCallChain:t_,updateCallChain:Os,createNewExpression:xn,updateNewExpression:n_,createTaggedTemplateExpression:oa,updateTaggedTemplateExpression:Ms,createTypeAssertion:Js,updateTypeAssertion:Ls,createParenthesizedExpression:r_,updateParenthesizedExpression:js,createFunctionExpression:i_,updateFunctionExpression:Rs,createArrowFunction:a_,updateArrowFunction:Us,createDeleteExpression:Bs,updateDeleteExpression:qs,createTypeOfExpression:ca,updateTypeOfExpression:fn,createVoidExpression:__,updateVoidExpression:lr,createAwaitExpression:zs,updateAwaitExpression:Lr,createPrefixUnaryExpression:jr,updatePrefixUnaryExpression:Hl,createPostfixUnaryExpression:ni,updatePostfixUnaryExpression:Xl,createBinaryExpression:la,updateBinaryExpression:$l,createConditionalExpression:Vs,updateConditionalExpression:Ws,createTemplateExpression:Gs,updateTemplateExpression:Hn,createTemplateHead:Hs,createTemplateMiddle:ua,createTemplateTail:s_,createNoSubstitutionTemplateLiteral:Kl,createTemplateLiteralLikeNode:ii,createYieldExpression:o_,updateYieldExpression:Zl,createSpreadElement:Xs,updateSpreadElement:eu,createClassExpression:$s,updateClassExpression:c_,createOmittedExpression:l_,createExpressionWithTypeArguments:Qs,updateExpressionWithTypeArguments:Ks,createAsExpression:dn,updateAsExpression:pa,createNonNullExpression:Zs,updateNonNullExpression:eo,createSatisfiesExpression:u_,updateSatisfiesExpression:to,createNonNullChain:p_,updateNonNullChain:Jn,createMetaProperty:no,updateMetaProperty:f_,createTemplateSpan:Xn,updateTemplateSpan:fa,createSemicolonClassElement:ro,createBlock:Rr,updateBlock:tu,createVariableStatement:d_,updateVariableStatement:io,createEmptyStatement:ao,createExpressionStatement:Pi,updateExpressionStatement:_o,createIfStatement:so,updateIfStatement:oo,createDoStatement:co,updateDoStatement:lo,createWhileStatement:uo,updateWhileStatement:nu,createForStatement:po,updateForStatement:fo,createForInStatement:m_,updateForInStatement:ru,createForOfStatement:mo,updateForOfStatement:iu,createContinueStatement:ho,updateContinueStatement:au,createBreakStatement:h_,updateBreakStatement:yo,createReturnStatement:y_,updateReturnStatement:_u,createWithStatement:g_,updateWithStatement:go,createSwitchStatement:b_,updateSwitchStatement:ai,createLabeledStatement:bo,updateLabeledStatement:vo,createThrowStatement:To,updateThrowStatement:su,createTryStatement:xo,updateTryStatement:ou,createDebuggerStatement:So,createVariableDeclaration:da,updateVariableDeclaration:wo,createVariableDeclarationList:v_,updateVariableDeclarationList:cu,createFunctionDeclaration:ko,updateFunctionDeclaration:T_,createClassDeclaration:Eo,updateClassDeclaration:ma,createInterfaceDeclaration:Ao,updateInterfaceDeclaration:Co,createTypeAliasDeclaration:ot,updateTypeAliasDeclaration:gr,createEnumDeclaration:x_,updateEnumDeclaration:br,createModuleDeclaration:Do,updateModuleDeclaration:Et,createModuleBlock:vr,updateModuleBlock:zt,createCaseBlock:Po,updateCaseBlock:uu,createNamespaceExportDeclaration:No,updateNamespaceExportDeclaration:Io,createImportEqualsDeclaration:Oo,updateImportEqualsDeclaration:Mo,createImportDeclaration:Jo,updateImportDeclaration:Lo,createImportClause:jo,updateImportClause:Ro,createAssertClause:S_,updateAssertClause:fu,createAssertEntry:Ni,updateAssertEntry:Uo,createImportTypeAssertionContainer:w_,updateImportTypeAssertionContainer:Bo,createImportAttributes:qo,updateImportAttributes:k_,createImportAttribute:zo,updateImportAttribute:Fo,createNamespaceImport:Vo,updateNamespaceImport:du,createNamespaceExport:Wo,updateNamespaceExport:mu,createNamedImports:Go,updateNamedImports:Yo,createImportSpecifier:Tr,updateImportSpecifier:hu,createExportAssignment:ha,updateExportAssignment:Ii,createExportDeclaration:ya,updateExportDeclaration:Ho,createNamedExports:E_,updateNamedExports:yu,createExportSpecifier:ga,updateExportSpecifier:gu,createMissingDeclaration:bu,createExternalModuleReference:A_,updateExternalModuleReference:vu,get createJSDocAllType(){return l(312)},get createJSDocUnknownType(){return l(313)},get createJSDocNonNullableType(){return y(315)},get updateJSDocNonNullableType(){return g(315)},get createJSDocNullableType(){return y(314)},get updateJSDocNullableType(){return g(314)},get createJSDocOptionalType(){return Q(316)},get updateJSDocOptionalType(){return h(316)},get createJSDocVariadicType(){return Q(318)},get updateJSDocVariadicType(){return h(318)},get createJSDocNamepathType(){return Q(319)},get updateJSDocNamepathType(){return h(319)},createJSDocFunctionType:Qo,updateJSDocFunctionType:Su,createJSDocTypeLiteral:Ko,updateJSDocTypeLiteral:wu,createJSDocTypeExpression:Zo,updateJSDocTypeExpression:D_,createJSDocSignature:ec,updateJSDocSignature:ku,createJSDocTemplateTag:P_,updateJSDocTemplateTag:tc,createJSDocTypedefTag:ba,updateJSDocTypedefTag:Eu,createJSDocParameterTag:N_,updateJSDocParameterTag:Au,createJSDocPropertyTag:nc,updateJSDocPropertyTag:rc,createJSDocCallbackTag:ic,updateJSDocCallbackTag:ac,createJSDocOverloadTag:_c,updateJSDocOverloadTag:I_,createJSDocAugmentsTag:O_,updateJSDocAugmentsTag:Mi,createJSDocImplementsTag:sc,updateJSDocImplementsTag:Iu,createJSDocSeeTag:Br,updateJSDocSeeTag:va,createJSDocImportTag:gc,updateJSDocImportTag:bc,createJSDocNameReference:oc,updateJSDocNameReference:Cu,createJSDocMemberName:cc,updateJSDocMemberName:Du,createJSDocLink:lc,updateJSDocLink:uc,createJSDocLinkCode:pc,updateJSDocLinkCode:Pu,createJSDocLinkPlain:fc,updateJSDocLinkPlain:Nu,get createJSDocTypeTag(){return re(344)},get updateJSDocTypeTag(){return he(344)},get createJSDocReturnTag(){return re(342)},get updateJSDocReturnTag(){return he(342)},get createJSDocThisTag(){return re(343)},get updateJSDocThisTag(){return he(343)},get createJSDocAuthorTag(){return x(330)},get updateJSDocAuthorTag(){return I(330)},get createJSDocClassTag(){return x(332)},get updateJSDocClassTag(){return I(332)},get createJSDocPublicTag(){return x(333)},get updateJSDocPublicTag(){return I(333)},get createJSDocPrivateTag(){return x(334)},get updateJSDocPrivateTag(){return I(334)},get createJSDocProtectedTag(){return x(335)},get updateJSDocProtectedTag(){return I(335)},get createJSDocReadonlyTag(){return x(336)},get updateJSDocReadonlyTag(){return I(336)},get createJSDocOverrideTag(){return x(337)},get updateJSDocOverrideTag(){return I(337)},get createJSDocDeprecatedTag(){return x(331)},get updateJSDocDeprecatedTag(){return I(331)},get createJSDocThrowsTag(){return re(349)},get updateJSDocThrowsTag(){return he(349)},get createJSDocSatisfiesTag(){return re(350)},get updateJSDocSatisfiesTag(){return he(350)},createJSDocEnumTag:yc,updateJSDocEnumTag:M_,createJSDocUnknownTag:hc,updateJSDocUnknownTag:Ju,createJSDocText:J_,updateJSDocText:Lu,createJSDocComment:Ji,updateJSDocComment:vc,createJsxElement:Tc,updateJsxElement:ju,createJsxSelfClosingElement:xc,updateJsxSelfClosingElement:L_,createJsxOpeningElement:j_,updateJsxOpeningElement:Sc,createJsxClosingElement:Ta,updateJsxClosingElement:Kt,createJsxFragment:R_,createJsxText:xa,updateJsxText:kc,createJsxOpeningFragment:Ru,createJsxJsxClosingFragment:Uu,updateJsxFragment:wc,createJsxAttribute:Ec,updateJsxAttribute:Sa,createJsxAttributes:Ac,updateJsxAttributes:Bu,createJsxSpreadAttribute:Cc,updateJsxSpreadAttribute:qu,createJsxExpression:wa,updateJsxExpression:Li,createJsxNamespacedName:Dc,updateJsxNamespacedName:U_,createCaseClause:B_,updateCaseClause:zu,createDefaultClause:_i,updateDefaultClause:Pc,createHeritageClause:Nc,updateHeritageClause:Fu,createCatchClause:q_,updateCatchClause:Ic,createPropertyAssignment:ka,updatePropertyAssignment:qr,createShorthandPropertyAssignment:Oc,updateShorthandPropertyAssignment:Wu,createSpreadAssignment:z_,updateSpreadAssignment:Mc,createEnumMember:wn,updateEnumMember:Jc,createSourceFile:Yu,updateSourceFile:$u,createRedirectedSourceFile:Lc,createBundle:F_,updateBundle:Qu,createSyntheticExpression:Ku,createSyntaxList:Aa,createNotEmittedStatement:Rc,createNotEmittedTypeElement:Zu,createPartiallyEmittedExpression:Uc,updatePartiallyEmittedExpression:Bc,createCommaListExpression:V_,updateCommaListExpression:qc,createSyntheticReferenceExpression:W_,updateSyntheticReferenceExpression:zc,cloneNode:G_,get createComma(){return v(28)},get createAssignment(){return v(64)},get createLogicalOr(){return v(57)},get createLogicalAnd(){return v(56)},get createBitwiseOr(){return v(52)},get createBitwiseXor(){return v(53)},get createBitwiseAnd(){return v(51)},get createStrictEquality(){return v(37)},get createStrictInequality(){return v(38)},get createEquality(){return v(35)},get createInequality(){return v(36)},get createLessThan(){return v(30)},get createLessThanEquals(){return v(33)},get createGreaterThan(){return v(32)},get createGreaterThanEquals(){return v(34)},get createLeftShift(){return v(48)},get createRightShift(){return v(49)},get createUnsignedRightShift(){return v(50)},get createAdd(){return v(40)},get createSubtract(){return v(41)},get createMultiply(){return v(42)},get createDivide(){return v(44)},get createModulo(){return v(45)},get createExponent(){return v(43)},get createPrefixPlus(){return A(40)},get createPrefixMinus(){return A(41)},get createPrefixIncrement(){return A(46)},get createPrefixDecrement(){return A(47)},get createBitwiseNot(){return A(55)},get createLogicalNot(){return A(54)},get createPostfixIncrement(){return P(46)},get createPostfixDecrement(){return P(47)},createImmediatelyInvokedFunctionExpression:rp,createImmediatelyInvokedArrowFunction:ip,createVoidZero:si,createExportDefault:Wc,createExternalModuleExport:ap,createTypeCheck:Y_,createIsNotTypeCheck:_p,createMethodCall:zr,createGlobalMethodCall:ji,createFunctionBindCall:sp,createFunctionCallCall:op,createFunctionApplyCall:cp,createArraySliceCall:Ri,createArrayConcatCall:lp,createObjectDefinePropertyCall:H_,createObjectGetOwnPropertyDescriptorCall:oi,createReflectGetCall:Gc,createReflectSetCall:up,createPropertyDescriptor:Yc,createCallBinding:Xc,createAssignmentTargetWrapper:s,inlineExpressions:p,getInternalName:b,getLocalName:S,getExportName:N,getDeclarationName:X,getNamespaceMemberName:_e,getExternalModuleOrNamespaceExportName:Z,restoreOuterExpressions:Hc,restoreEnclosingLabel:X_,createUseStrictPrologue:Le,copyPrologue:ee,copyStandardPrologue:je,copyCustomPrologue:Ae,ensureUseStrict:Yt,liftToBlock:mn,mergeLexicalEnvironment:ur,replaceModifiers:Ln,replaceDecoratorsAndModifiers:Fr,replacePropertyName:dp};return Un(Db,n=>n(ye)),ye;function de(n,i){if(n===void 0||n===bt)n=[];else if(mi(n)){if(i===void 0||n.hasTrailingComma===i)return n.transformFlags===void 0&&Xd(n),B.attachNodeArrayDebugInfo(n),n;let f=n.slice();return f.pos=n.pos,f.end=n.end,f.hasTrailingComma=i,f.transformFlags=n.transformFlags,B.attachNodeArrayDebugInfo(f),f}let _=n.length,c=_>=1&&_<=4?n.slice():n;return c.pos=-1,c.end=-1,c.hasTrailingComma=!!i,c.transformFlags=0,Xd(c),B.attachNodeArrayDebugInfo(c),c}function M(n){return t.createBaseNode(n)}function ae(n){let i=M(n);return i.symbol=void 0,i.localSymbol=void 0,i}function Oe(n,i){return n!==i&&(n.typeArguments=i.typeArguments),q(n,i)}function V(n,i=0){let _=typeof n==\"number\"?n+\"\":n;B.assert(_.charCodeAt(0)!==45,\"Negative numbers should be created in combination with createPrefixUnaryExpression\");let c=ae(9);return c.text=_,c.numericLiteralFlags=i,i&384&&(c.transformFlags|=1024),c}function oe(n){let i=$t(10);return i.text=typeof n==\"string\"?n:vb(n)+\"n\",i.transformFlags|=32,i}function W(n,i){let _=ae(11);return _.text=n,_.singleQuote=i,_}function dt(n,i,_){let c=W(n,i);return c.hasExtendedUnicodeEscape=_,_&&(c.transformFlags|=1024),c}function nr(n){let i=W(L2(n),void 0);return i.textSourceNode=n,i}function gn(n){let i=$t(14);return i.text=n,i}function rr(n,i){switch(n){case 9:return V(i,0);case 10:return oe(i);case 11:return dt(i,void 0);case 12:return xa(i,!1);case 13:return xa(i,!0);case 14:return gn(i);case 15:return ii(n,i,void 0,0)}}function bn(n){let i=t.createBaseIdentifierNode(80);return i.escapedText=n,i.jsDoc=void 0,i.flowNode=void 0,i.symbol=void 0,i}function In(n,i,_,c){let f=bn(Ja(n));return setIdentifierAutoGenerate(f,{flags:i,id:rl,prefix:_,suffix:c}),rl++,f}function Ge(n,i,_){i===void 0&&n&&(i=Fm(n)),i===80&&(i=void 0);let c=bn(Ja(n));return _&&(c.flags|=256),c.escapedText===\"await\"&&(c.transformFlags|=67108864),c.flags&256&&(c.transformFlags|=1024),c}function ir(n,i,_,c){let f=1;i&&(f|=8);let w=In(\"\",f,_,c);return n&&n(w),w}function Pr(n){let i=2;return n&&(i|=8),In(\"\",i,void 0,void 0)}function Ot(n,i=0,_,c){return B.assert(!(i&7),\"Argument out of range: flags\"),B.assert((i&48)!==32,\"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic\"),In(n,3|i,_,c)}function Bn(n,i=0,_,c){B.assert(!(i&7),\"Argument out of range: flags\");let f=n?jp(n)?Vp(!1,_,n,c,Pn):`generated@${getNodeId(n)}`:\"\";(_||c)&&(i|=16);let w=In(f,4|i,_,c);return w.original=n,w}function On(n){let i=t.createBasePrivateIdentifierNode(81);return i.escapedText=n,i.transformFlags|=16777216,i}function Mt(n){return ul(n,\"#\")||B.fail(\"First character of private identifier must be #: \"+n),On(Ja(n))}function vt(n,i,_,c){let f=On(Ja(n));return setIdentifierAutoGenerate(f,{flags:i,id:rl,prefix:_,suffix:c}),rl++,f}function Qe(n,i,_){n&&!ul(n,\"#\")&&B.fail(\"First character of private identifier must be #: \"+n);let c=8|(n?3:1);return vt(n??\"\",c,i,_)}function qn(n,i,_){let c=jp(n)?Vp(!0,i,n,_,Pn):`#generated@${getNodeId(n)}`,w=vt(c,4|(i||_?16:0),i,_);return w.original=n,w}function $t(n){return t.createBaseTokenNode(n)}function ct(n){B.assert(n>=0&&n<=165,\"Invalid token\"),B.assert(n<=15||n>=18,\"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals.\"),B.assert(n<=9||n>=15,\"Invalid token. Use 'createLiteralLikeNode' to create literals.\"),B.assert(n!==80,\"Invalid token. Use 'createIdentifier' to create identifiers\");let i=$t(n),_=0;switch(n){case 134:_=384;break;case 160:_=4;break;case 125:case 123:case 124:case 148:case 128:case 138:case 87:case 133:case 150:case 163:case 146:case 151:case 103:case 147:case 164:case 154:case 136:case 155:case 116:case 159:case 157:_=1;break;case 108:_=134218752,i.flowNode=void 0;break;case 126:_=1024;break;case 129:_=16777216;break;case 110:_=16384,i.flowNode=void 0;break}return _&&(i.transformFlags|=_),i}function _t(){return ct(108)}function Ut(){return ct(110)}function Jt(){return ct(106)}function lt(){return ct(112)}function ar(){return ct(97)}function mt(n){return ct(n)}function vn(n){let i=[];return n&32&&i.push(mt(95)),n&128&&i.push(mt(138)),n&2048&&i.push(mt(90)),n&4096&&i.push(mt(87)),n&1&&i.push(mt(125)),n&2&&i.push(mt(123)),n&4&&i.push(mt(124)),n&64&&i.push(mt(128)),n&256&&i.push(mt(126)),n&16&&i.push(mt(164)),n&8&&i.push(mt(148)),n&512&&i.push(mt(129)),n&1024&&i.push(mt(134)),n&8192&&i.push(mt(103)),n&16384&&i.push(mt(147)),i.length?i:void 0}function yt(n,i){let _=M(166);return _.left=n,_.right=et(i),_.transformFlags|=z(_.left)|ja(_.right),_.flowNode=void 0,_}function cn(n,i,_){return n.left!==i||n.right!==_?q(yt(i,_),n):n}function nt(n){let i=M(167);return i.expression=o().parenthesizeExpressionOfComputedPropertyName(n),i.transformFlags|=z(i.expression)|1024|131072,i}function Bt(n,i){return n.expression!==i?q(nt(i),n):n}function rn(n,i,_,c){let f=ae(168);return f.modifiers=De(n),f.name=et(i),f.constraint=_,f.default=c,f.transformFlags=1,f.expression=void 0,f.jsDoc=void 0,f}function _r(n,i,_,c,f){return n.modifiers!==i||n.name!==_||n.constraint!==c||n.default!==f?q(rn(i,_,c,f),n):n}function fr(n,i,_,c,f,w){let F=ae(169);return F.modifiers=De(n),F.dotDotDotToken=i,F.name=et(_),F.questionToken=c,F.type=f,F.initializer=Ca(w),R2(F.name)?F.transformFlags=1:F.transformFlags=ke(F.modifiers)|z(F.dotDotDotToken)|jn(F.name)|z(F.questionToken)|z(F.initializer)|(F.questionToken??F.type?1:0)|(F.dotDotDotToken??F.initializer?1024:0)|(Rn(F.modifiers)&31?8192:0),F.jsDoc=void 0,F}function dr(n,i,_,c,f,w,F){return n.modifiers!==i||n.dotDotDotToken!==_||n.name!==c||n.questionToken!==f||n.type!==w||n.initializer!==F?q(fr(i,_,c,f,w,F),n):n}function zn(n){let i=M(170);return i.expression=o().parenthesizeLeftSideOfAccess(n,!1),i.transformFlags|=z(i.expression)|1|8192|33554432,i}function Fn(n,i){return n.expression!==i?q(zn(i),n):n}function Nr(n,i,_,c){let f=ae(171);return f.modifiers=De(n),f.name=et(i),f.type=c,f.questionToken=_,f.transformFlags=1,f.initializer=void 0,f.jsDoc=void 0,f}function Vn(n,i,_,c,f){return n.modifiers!==i||n.name!==_||n.questionToken!==c||n.type!==f?Ce(Nr(i,_,c,f),n):n}function Ce(n,i){return n!==i&&(n.initializer=i.initializer),q(n,i)}function mr(n,i,_,c,f){let w=ae(172);w.modifiers=De(n),w.name=et(i),w.questionToken=_&&Qd(_)?_:void 0,w.exclamationToken=_&&$d(_)?_:void 0,w.type=c,w.initializer=Ca(f);let F=w.flags&33554432||Rn(w.modifiers)&128;return w.transformFlags=ke(w.modifiers)|jn(w.name)|z(w.initializer)|(F||w.questionToken||w.exclamationToken||w.type?1:0)|(kf(w.name)||Rn(w.modifiers)&256&&w.initializer?8192:0)|16777216,w.jsDoc=void 0,w}function L(n,i,_,c,f,w){return n.modifiers!==i||n.name!==_||n.questionToken!==(c!==void 0&&Qd(c)?c:void 0)||n.exclamationToken!==(c!==void 0&&$d(c)?c:void 0)||n.type!==f||n.initializer!==w?q(mr(i,_,c,f,w),n):n}function se(n,i,_,c,f,w){let F=ae(173);return F.modifiers=De(n),F.name=et(i),F.questionToken=_,F.typeParameters=De(c),F.parameters=De(f),F.type=w,F.transformFlags=1,F.jsDoc=void 0,F.locals=void 0,F.nextContainer=void 0,F.typeArguments=void 0,F}function fe(n,i,_,c,f,w,F){return n.modifiers!==i||n.name!==_||n.questionToken!==c||n.typeParameters!==f||n.parameters!==w||n.type!==F?Oe(se(i,_,c,f,w,F),n):n}function Te(n,i,_,c,f,w,F,pe){let Re=ae(174);if(Re.modifiers=De(n),Re.asteriskToken=i,Re.name=et(_),Re.questionToken=c,Re.exclamationToken=void 0,Re.typeParameters=De(f),Re.parameters=de(w),Re.type=F,Re.body=pe,!Re.body)Re.transformFlags=1;else{let en=Rn(Re.modifiers)&1024,kn=!!Re.asteriskToken,$n=en&&kn;Re.transformFlags=ke(Re.modifiers)|z(Re.asteriskToken)|jn(Re.name)|z(Re.questionToken)|ke(Re.typeParameters)|ke(Re.parameters)|z(Re.type)|z(Re.body)&-67108865|($n?128:en?256:kn?2048:0)|(Re.questionToken||Re.typeParameters||Re.type?1:0)|1024}return Re.typeArguments=void 0,Re.jsDoc=void 0,Re.locals=void 0,Re.nextContainer=void 0,Re.flowNode=void 0,Re.endFlowNode=void 0,Re.returnFlowNode=void 0,Re}function Xe(n,i,_,c,f,w,F,pe,Re){return n.modifiers!==i||n.asteriskToken!==_||n.name!==c||n.questionToken!==f||n.typeParameters!==w||n.parameters!==F||n.type!==pe||n.body!==Re?Ke(Te(i,_,c,f,w,F,pe,Re),n):n}function Ke(n,i){return n!==i&&(n.exclamationToken=i.exclamationToken),q(n,i)}function st(n){let i=ae(175);return i.body=n,i.transformFlags=z(n)|16777216,i.modifiers=void 0,i.jsDoc=void 0,i.locals=void 0,i.nextContainer=void 0,i.endFlowNode=void 0,i.returnFlowNode=void 0,i}function Dt(n,i){return n.body!==i?Tt(st(i),n):n}function Tt(n,i){return n!==i&&(n.modifiers=i.modifiers),q(n,i)}function ut(n,i,_){let c=ae(176);return c.modifiers=De(n),c.parameters=de(i),c.body=_,c.body?c.transformFlags=ke(c.modifiers)|ke(c.parameters)|z(c.body)&-67108865|1024:c.transformFlags=1,c.typeParameters=void 0,c.type=void 0,c.typeArguments=void 0,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.endFlowNode=void 0,c.returnFlowNode=void 0,c}function Ir(n,i,_,c){return n.modifiers!==i||n.parameters!==_||n.body!==c?hr(ut(i,_,c),n):n}function hr(n,i){return n!==i&&(n.typeParameters=i.typeParameters,n.type=i.type),Oe(n,i)}function Mn(n,i,_,c,f){let w=ae(177);return w.modifiers=De(n),w.name=et(i),w.parameters=de(_),w.type=c,w.body=f,w.body?w.transformFlags=ke(w.modifiers)|jn(w.name)|ke(w.parameters)|z(w.type)|z(w.body)&-67108865|(w.type?1:0):w.transformFlags=1,w.typeArguments=void 0,w.typeParameters=void 0,w.jsDoc=void 0,w.locals=void 0,w.nextContainer=void 0,w.flowNode=void 0,w.endFlowNode=void 0,w.returnFlowNode=void 0,w}function Wn(n,i,_,c,f,w){return n.modifiers!==i||n.name!==_||n.parameters!==c||n.type!==f||n.body!==w?Si(Mn(i,_,c,f,w),n):n}function Si(n,i){return n!==i&&(n.typeParameters=i.typeParameters),Oe(n,i)}function R(n,i,_,c){let f=ae(178);return f.modifiers=De(n),f.name=et(i),f.parameters=de(_),f.body=c,f.body?f.transformFlags=ke(f.modifiers)|jn(f.name)|ke(f.parameters)|z(f.body)&-67108865|(f.type?1:0):f.transformFlags=1,f.typeArguments=void 0,f.typeParameters=void 0,f.type=void 0,f.jsDoc=void 0,f.locals=void 0,f.nextContainer=void 0,f.flowNode=void 0,f.endFlowNode=void 0,f.returnFlowNode=void 0,f}function $(n,i,_,c,f){return n.modifiers!==i||n.name!==_||n.parameters!==c||n.body!==f?K(R(i,_,c,f),n):n}function K(n,i){return n!==i&&(n.typeParameters=i.typeParameters,n.type=i.type),Oe(n,i)}function xe(n,i,_){let c=ae(179);return c.typeParameters=De(n),c.parameters=De(i),c.type=_,c.transformFlags=1,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.typeArguments=void 0,c}function Se(n,i,_,c){return n.typeParameters!==i||n.parameters!==_||n.type!==c?Oe(xe(i,_,c),n):n}function we(n,i,_){let c=ae(180);return c.typeParameters=De(n),c.parameters=De(i),c.type=_,c.transformFlags=1,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.typeArguments=void 0,c}function be(n,i,_,c){return n.typeParameters!==i||n.parameters!==_||n.type!==c?Oe(we(i,_,c),n):n}function We(n,i,_){let c=ae(181);return c.modifiers=De(n),c.parameters=De(i),c.type=_,c.transformFlags=1,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.typeArguments=void 0,c}function Ze(n,i,_,c){return n.parameters!==_||n.type!==c||n.modifiers!==i?Oe(We(i,_,c),n):n}function Ye(n,i){let _=M(204);return _.type=n,_.literal=i,_.transformFlags=1,_}function Ee(n,i,_){return n.type!==i||n.literal!==_?q(Ye(i,_),n):n}function Tn(n){return ct(n)}function rt(n,i,_){let c=M(182);return c.assertsModifier=n,c.parameterName=et(i),c.type=_,c.transformFlags=1,c}function ln(n,i,_,c){return n.assertsModifier!==i||n.parameterName!==_||n.type!==c?q(rt(i,_,c),n):n}function Zr(n,i){let _=M(183);return _.typeName=et(n),_.typeArguments=i&&o().parenthesizeTypeArguments(de(i)),_.transformFlags=1,_}function J(n,i,_){return n.typeName!==i||n.typeArguments!==_?q(Zr(i,_),n):n}function qe(n,i,_){let c=ae(184);return c.typeParameters=De(n),c.parameters=De(i),c.type=_,c.transformFlags=1,c.modifiers=void 0,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.typeArguments=void 0,c}function u(n,i,_,c){return n.typeParameters!==i||n.parameters!==_||n.type!==c?Ie(qe(i,_,c),n):n}function Ie(n,i){return n!==i&&(n.modifiers=i.modifiers),Oe(n,i)}function Me(...n){return n.length===4?U(...n):n.length===3?ze(...n):B.fail(\"Incorrect number of arguments specified.\")}function U(n,i,_,c){let f=ae(185);return f.modifiers=De(n),f.typeParameters=De(i),f.parameters=De(_),f.type=c,f.transformFlags=1,f.jsDoc=void 0,f.locals=void 0,f.nextContainer=void 0,f.typeArguments=void 0,f}function ze(n,i,_){return U(void 0,n,i,_)}function an(...n){return n.length===5?Ve(...n):n.length===4?$e(...n):B.fail(\"Incorrect number of arguments specified.\")}function Ve(n,i,_,c,f){return n.modifiers!==i||n.typeParameters!==_||n.parameters!==c||n.type!==f?Oe(Me(i,_,c,f),n):n}function $e(n,i,_,c){return Ve(n,n.modifiers,i,_,c)}function Pt(n,i){let _=M(186);return _.exprName=n,_.typeArguments=i&&o().parenthesizeTypeArguments(i),_.transformFlags=1,_}function kt(n,i,_){return n.exprName!==i||n.typeArguments!==_?q(Pt(i,_),n):n}function Nt(n){let i=ae(187);return i.members=de(n),i.transformFlags=1,i}function qt(n,i){return n.members!==i?q(Nt(i),n):n}function Gn(n){let i=M(188);return i.elementType=o().parenthesizeNonArrayTypeOfPostfixType(n),i.transformFlags=1,i}function wi(n,i){return n.elementType!==i?q(Gn(i),n):n}function un(n){let i=M(189);return i.elements=de(o().parenthesizeElementTypesOfTupleType(n)),i.transformFlags=1,i}function G(n,i){return n.elements!==i?q(un(i),n):n}function le(n,i,_,c){let f=ae(202);return f.dotDotDotToken=n,f.name=i,f.questionToken=_,f.type=c,f.transformFlags=1,f.jsDoc=void 0,f}function Fe(n,i,_,c,f){return n.dotDotDotToken!==i||n.name!==_||n.questionToken!==c||n.type!==f?q(le(i,_,c,f),n):n}function ve(n){let i=M(190);return i.type=o().parenthesizeTypeOfOptionalType(n),i.transformFlags=1,i}function j(n,i){return n.type!==i?q(ve(i),n):n}function ht(n){let i=M(191);return i.type=n,i.transformFlags=1,i}function xt(n,i){return n.type!==i?q(ht(i),n):n}function Lt(n,i,_){let c=M(n);return c.types=ye.createNodeArray(_(i)),c.transformFlags=1,c}function pn(n,i,_){return n.types!==i?q(Lt(n.kind,i,_),n):n}function Ul(n){return Lt(192,n,o().parenthesizeConstituentTypesOfUnionType)}function Es(n,i){return pn(n,i,o().parenthesizeConstituentTypesOfUnionType)}function Or(n){return Lt(193,n,o().parenthesizeConstituentTypesOfIntersectionType)}function Je(n,i){return pn(n,i,o().parenthesizeConstituentTypesOfIntersectionType)}function ft(n,i,_,c){let f=M(194);return f.checkType=o().parenthesizeCheckTypeOfConditionalType(n),f.extendsType=o().parenthesizeExtendsTypeOfConditionalType(i),f.trueType=_,f.falseType=c,f.transformFlags=1,f.locals=void 0,f.nextContainer=void 0,f}function Bl(n,i,_,c,f){return n.checkType!==i||n.extendsType!==_||n.trueType!==c||n.falseType!==f?q(ft(i,_,c,f),n):n}function Yn(n){let i=M(195);return i.typeParameter=n,i.transformFlags=1,i}function ql(n,i){return n.typeParameter!==i?q(Yn(i),n):n}function Wt(n,i){let _=M(203);return _.head=n,_.templateSpans=de(i),_.transformFlags=1,_}function zl(n,i,_){return n.head!==i||n.templateSpans!==_?q(Wt(i,_),n):n}function sr(n,i,_,c,f=!1){let w=M(205);return w.argument=n,w.attributes=i,w.assertions&&w.assertions.assertClause&&w.attributes&&(w.assertions.assertClause=w.attributes),w.qualifier=_,w.typeArguments=c&&o().parenthesizeTypeArguments(c),w.isTypeOf=f,w.transformFlags=1,w}function ia(n,i,_,c,f,w=n.isTypeOf){return n.argument!==i||n.attributes!==_||n.qualifier!==c||n.typeArguments!==f||n.isTypeOf!==w?q(sr(i,_,c,f,w),n):n}function Qt(n){let i=M(196);return i.type=n,i.transformFlags=1,i}function Ct(n,i){return n.type!==i?q(Qt(i),n):n}function D(){let n=M(197);return n.transformFlags=1,n}function Gt(n,i){let _=M(198);return _.operator=n,_.type=n===148?o().parenthesizeOperandOfReadonlyTypeOperator(i):o().parenthesizeOperandOfTypeOperator(i),_.transformFlags=1,_}function Mr(n,i){return n.type!==i?q(Gt(n.operator,i),n):n}function or(n,i){let _=M(199);return _.objectType=o().parenthesizeNonArrayTypeOfPostfixType(n),_.indexType=i,_.transformFlags=1,_}function Ka(n,i,_){return n.objectType!==i||n.indexType!==_?q(or(i,_),n):n}function St(n,i,_,c,f,w){let F=ae(200);return F.readonlyToken=n,F.typeParameter=i,F.nameType=_,F.questionToken=c,F.type=f,F.members=w&&de(w),F.transformFlags=1,F.locals=void 0,F.nextContainer=void 0,F}function jt(n,i,_,c,f,w,F){return n.readonlyToken!==i||n.typeParameter!==_||n.nameType!==c||n.questionToken!==f||n.type!==w||n.members!==F?q(St(i,_,c,f,w,F),n):n}function ei(n){let i=M(201);return i.literal=n,i.transformFlags=1,i}function yr(n,i){return n.literal!==i?q(ei(i),n):n}function As(n){let i=M(206);return i.elements=de(n),i.transformFlags|=ke(i.elements)|1024|524288,i.transformFlags&32768&&(i.transformFlags|=65664),i}function Fl(n,i){return n.elements!==i?q(As(i),n):n}function Jr(n){let i=M(207);return i.elements=de(n),i.transformFlags|=ke(i.elements)|1024|524288,i}function Vl(n,i){return n.elements!==i?q(Jr(i),n):n}function aa(n,i,_,c){let f=ae(208);return f.dotDotDotToken=n,f.propertyName=et(i),f.name=et(_),f.initializer=Ca(c),f.transformFlags|=z(f.dotDotDotToken)|jn(f.propertyName)|jn(f.name)|z(f.initializer)|(f.dotDotDotToken?32768:0)|1024,f.flowNode=void 0,f}function ti(n,i,_,c,f){return n.propertyName!==_||n.dotDotDotToken!==i||n.name!==c||n.initializer!==f?q(aa(i,_,c,f),n):n}function Za(n,i){let _=M(209),c=n&&Gi(n),f=de(n,c&&X1(c)?!0:void 0);return _.elements=o().parenthesizeExpressionsOfCommaDelimitedList(f),_.multiLine=i,_.transformFlags|=ke(_.elements),_}function Cs(n,i){return n.elements!==i?q(Za(i,n.multiLine),n):n}function ki(n,i){let _=ae(210);return _.properties=de(n),_.multiLine=i,_.transformFlags|=ke(_.properties),_.jsDoc=void 0,_}function Wl(n,i){return n.properties!==i?q(ki(i,n.multiLine),n):n}function Ds(n,i,_){let c=ae(211);return c.expression=n,c.questionDotToken=i,c.name=_,c.transformFlags=z(c.expression)|z(c.questionDotToken)|(tt(c.name)?ja(c.name):z(c.name)|536870912),c.jsDoc=void 0,c.flowNode=void 0,c}function cr(n,i){let _=Ds(o().parenthesizeLeftSideOfAccess(n,!1),void 0,et(i));return Ap(n)&&(_.transformFlags|=384),_}function Gl(n,i,_){return Ig(n)?_a(n,i,n.questionDotToken,kr(_,tt)):n.expression!==i||n.name!==_?q(cr(i,_),n):n}function Ei(n,i,_){let c=Ds(o().parenthesizeLeftSideOfAccess(n,!0),i,et(_));return c.flags|=64,c.transformFlags|=32,c}function _a(n,i,_,c){return B.assert(!!(n.flags&64),\"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead.\"),n.expression!==i||n.questionDotToken!==_||n.name!==c?q(Ei(i,_,c),n):n}function Ps(n,i,_){let c=ae(212);return c.expression=n,c.questionDotToken=i,c.argumentExpression=_,c.transformFlags|=z(c.expression)|z(c.questionDotToken)|z(c.argumentExpression),c.jsDoc=void 0,c.flowNode=void 0,c}function Ai(n,i){let _=Ps(o().parenthesizeLeftSideOfAccess(n,!1),void 0,pr(i));return Ap(n)&&(_.transformFlags|=384),_}function Yl(n,i,_){return Og(n)?e_(n,i,n.questionDotToken,_):n.expression!==i||n.argumentExpression!==_?q(Ai(i,_),n):n}function Ns(n,i,_){let c=Ps(o().parenthesizeLeftSideOfAccess(n,!0),i,pr(_));return c.flags|=64,c.transformFlags|=32,c}function e_(n,i,_,c){return B.assert(!!(n.flags&64),\"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead.\"),n.expression!==i||n.questionDotToken!==_||n.argumentExpression!==c?q(Ns(i,_,c),n):n}function Is(n,i,_,c){let f=ae(213);return f.expression=n,f.questionDotToken=i,f.typeArguments=_,f.arguments=c,f.transformFlags|=z(f.expression)|z(f.questionDotToken)|ke(f.typeArguments)|ke(f.arguments),f.typeArguments&&(f.transformFlags|=1),zd(f.expression)&&(f.transformFlags|=16384),f}function Ci(n,i,_){let c=Is(o().parenthesizeLeftSideOfAccess(n,!1),void 0,De(i),o().parenthesizeExpressionsOfCommaDelimitedList(de(_)));return Ub(c.expression)&&(c.transformFlags|=8388608),c}function sa(n,i,_,c){return Jd(n)?Os(n,i,n.questionDotToken,_,c):n.expression!==i||n.typeArguments!==_||n.arguments!==c?q(Ci(i,_,c),n):n}function t_(n,i,_,c){let f=Is(o().parenthesizeLeftSideOfAccess(n,!0),i,De(_),o().parenthesizeExpressionsOfCommaDelimitedList(de(c)));return f.flags|=64,f.transformFlags|=32,f}function Os(n,i,_,c,f){return B.assert(!!(n.flags&64),\"Cannot update a CallExpression using updateCallChain. Use updateCall instead.\"),n.expression!==i||n.questionDotToken!==_||n.typeArguments!==c||n.arguments!==f?q(t_(i,_,c,f),n):n}function xn(n,i,_){let c=ae(214);return c.expression=o().parenthesizeExpressionOfNew(n),c.typeArguments=De(i),c.arguments=_?o().parenthesizeExpressionsOfCommaDelimitedList(_):void 0,c.transformFlags|=z(c.expression)|ke(c.typeArguments)|ke(c.arguments)|32,c.typeArguments&&(c.transformFlags|=1),c}function n_(n,i,_,c){return n.expression!==i||n.typeArguments!==_||n.arguments!==c?q(xn(i,_,c),n):n}function oa(n,i,_){let c=M(215);return c.tag=o().parenthesizeLeftSideOfAccess(n,!1),c.typeArguments=De(i),c.template=_,c.transformFlags|=z(c.tag)|ke(c.typeArguments)|z(c.template)|1024,c.typeArguments&&(c.transformFlags|=1),j2(c.template)&&(c.transformFlags|=128),c}function Ms(n,i,_,c){return n.tag!==i||n.typeArguments!==_||n.template!==c?q(oa(i,_,c),n):n}function Js(n,i){let _=M(216);return _.expression=o().parenthesizeOperandOfPrefixUnary(i),_.type=n,_.transformFlags|=z(_.expression)|z(_.type)|1,_}function Ls(n,i,_){return n.type!==i||n.expression!==_?q(Js(i,_),n):n}function r_(n){let i=M(217);return i.expression=n,i.transformFlags=z(i.expression),i.jsDoc=void 0,i}function js(n,i){return n.expression!==i?q(r_(i),n):n}function i_(n,i,_,c,f,w,F){let pe=ae(218);pe.modifiers=De(n),pe.asteriskToken=i,pe.name=et(_),pe.typeParameters=De(c),pe.parameters=de(f),pe.type=w,pe.body=F;let Re=Rn(pe.modifiers)&1024,en=!!pe.asteriskToken,kn=Re&&en;return pe.transformFlags=ke(pe.modifiers)|z(pe.asteriskToken)|jn(pe.name)|ke(pe.typeParameters)|ke(pe.parameters)|z(pe.type)|z(pe.body)&-67108865|(kn?128:Re?256:en?2048:0)|(pe.typeParameters||pe.type?1:0)|4194304,pe.typeArguments=void 0,pe.jsDoc=void 0,pe.locals=void 0,pe.nextContainer=void 0,pe.flowNode=void 0,pe.endFlowNode=void 0,pe.returnFlowNode=void 0,pe}function Rs(n,i,_,c,f,w,F,pe){return n.name!==c||n.modifiers!==i||n.asteriskToken!==_||n.typeParameters!==f||n.parameters!==w||n.type!==F||n.body!==pe?Oe(i_(i,_,c,f,w,F,pe),n):n}function a_(n,i,_,c,f,w){let F=ae(219);F.modifiers=De(n),F.typeParameters=De(i),F.parameters=de(_),F.type=c,F.equalsGreaterThanToken=f??ct(39),F.body=o().parenthesizeConciseBodyOfArrowFunction(w);let pe=Rn(F.modifiers)&1024;return F.transformFlags=ke(F.modifiers)|ke(F.typeParameters)|ke(F.parameters)|z(F.type)|z(F.equalsGreaterThanToken)|z(F.body)&-67108865|(F.typeParameters||F.type?1:0)|(pe?16640:0)|1024,F.typeArguments=void 0,F.jsDoc=void 0,F.locals=void 0,F.nextContainer=void 0,F.flowNode=void 0,F.endFlowNode=void 0,F.returnFlowNode=void 0,F}function Us(n,i,_,c,f,w,F){return n.modifiers!==i||n.typeParameters!==_||n.parameters!==c||n.type!==f||n.equalsGreaterThanToken!==w||n.body!==F?Oe(a_(i,_,c,f,w,F),n):n}function Bs(n){let i=M(220);return i.expression=o().parenthesizeOperandOfPrefixUnary(n),i.transformFlags|=z(i.expression),i}function qs(n,i){return n.expression!==i?q(Bs(i),n):n}function ca(n){let i=M(221);return i.expression=o().parenthesizeOperandOfPrefixUnary(n),i.transformFlags|=z(i.expression),i}function fn(n,i){return n.expression!==i?q(ca(i),n):n}function __(n){let i=M(222);return i.expression=o().parenthesizeOperandOfPrefixUnary(n),i.transformFlags|=z(i.expression),i}function lr(n,i){return n.expression!==i?q(__(i),n):n}function zs(n){let i=M(223);return i.expression=o().parenthesizeOperandOfPrefixUnary(n),i.transformFlags|=z(i.expression)|256|128|2097152,i}function Lr(n,i){return n.expression!==i?q(zs(i),n):n}function jr(n,i){let _=M(224);return _.operator=n,_.operand=o().parenthesizeOperandOfPrefixUnary(i),_.transformFlags|=z(_.operand),(n===46||n===47)&&tt(_.operand)&&!Ua(_.operand)&&!Zd(_.operand)&&(_.transformFlags|=268435456),_}function Hl(n,i){return n.operand!==i?q(jr(n.operator,i),n):n}function ni(n,i){let _=M(225);return _.operator=i,_.operand=o().parenthesizeOperandOfPostfixUnary(n),_.transformFlags|=z(_.operand),tt(_.operand)&&!Ua(_.operand)&&!Zd(_.operand)&&(_.transformFlags|=268435456),_}function Xl(n,i){return n.operand!==i?q(ni(i,n.operator),n):n}function la(n,i,_){let c=ae(226),f=$c(i),w=f.kind;return c.left=o().parenthesizeLeftSideOfBinary(w,n),c.operatorToken=f,c.right=o().parenthesizeRightSideOfBinary(w,c.left,_),c.transformFlags|=z(c.left)|z(c.operatorToken)|z(c.right),w===61?c.transformFlags|=32:w===64?If(c.left)?c.transformFlags|=5248|Fs(c.left):W1(c.left)&&(c.transformFlags|=5120|Fs(c.left)):w===43||w===68?c.transformFlags|=512:H2(w)&&(c.transformFlags|=16),w===103&&gi(c.left)&&(c.transformFlags|=536870912),c.jsDoc=void 0,c}function Fs(n){return uh(n)?65536:0}function $l(n,i,_,c){return n.left!==i||n.operatorToken!==_||n.right!==c?q(la(i,_,c),n):n}function Vs(n,i,_,c,f){let w=M(227);return w.condition=o().parenthesizeConditionOfConditionalExpression(n),w.questionToken=i??ct(58),w.whenTrue=o().parenthesizeBranchOfConditionalExpression(_),w.colonToken=c??ct(59),w.whenFalse=o().parenthesizeBranchOfConditionalExpression(f),w.transformFlags|=z(w.condition)|z(w.questionToken)|z(w.whenTrue)|z(w.colonToken)|z(w.whenFalse),w}function Ws(n,i,_,c,f,w){return n.condition!==i||n.questionToken!==_||n.whenTrue!==c||n.colonToken!==f||n.whenFalse!==w?q(Vs(i,_,c,f,w),n):n}function Gs(n,i){let _=M(228);return _.head=n,_.templateSpans=de(i),_.transformFlags|=z(_.head)|ke(_.templateSpans)|1024,_}function Hn(n,i,_){return n.head!==i||n.templateSpans!==_?q(Gs(i,_),n):n}function Di(n,i,_,c=0){B.assert(!(c&-7177),\"Unsupported template flags.\");let f;if(_!==void 0&&_!==i&&(f=Pb(n,_),typeof f==\"object\"))return B.fail(\"Invalid raw text\");if(i===void 0){if(f===void 0)return B.fail(\"Arguments 'text' and 'rawText' may not both be undefined.\");i=f}else f!==void 0&&B.assert(i===f,\"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.\");return i}function Ys(n){let i=1024;return n&&(i|=128),i}function Ql(n,i,_,c){let f=$t(n);return f.text=i,f.rawText=_,f.templateFlags=c&7176,f.transformFlags=Ys(f.templateFlags),f}function ri(n,i,_,c){let f=ae(n);return f.text=i,f.rawText=_,f.templateFlags=c&7176,f.transformFlags=Ys(f.templateFlags),f}function ii(n,i,_,c){return n===15?ri(n,i,_,c):Ql(n,i,_,c)}function Hs(n,i,_){return n=Di(16,n,i,_),ii(16,n,i,_)}function ua(n,i,_){return n=Di(16,n,i,_),ii(17,n,i,_)}function s_(n,i,_){return n=Di(16,n,i,_),ii(18,n,i,_)}function Kl(n,i,_){return n=Di(16,n,i,_),ri(15,n,i,_)}function o_(n,i){B.assert(!n||!!i,\"A `YieldExpression` with an asteriskToken must have an expression.\");let _=M(229);return _.expression=i&&o().parenthesizeExpressionForDisallowedComma(i),_.asteriskToken=n,_.transformFlags|=z(_.expression)|z(_.asteriskToken)|1024|128|1048576,_}function Zl(n,i,_){return n.expression!==_||n.asteriskToken!==i?q(o_(i,_),n):n}function Xs(n){let i=M(230);return i.expression=o().parenthesizeExpressionForDisallowedComma(n),i.transformFlags|=z(i.expression)|1024|32768,i}function eu(n,i){return n.expression!==i?q(Xs(i),n):n}function $s(n,i,_,c,f){let w=ae(231);return w.modifiers=De(n),w.name=et(i),w.typeParameters=De(_),w.heritageClauses=De(c),w.members=de(f),w.transformFlags|=ke(w.modifiers)|jn(w.name)|ke(w.typeParameters)|ke(w.heritageClauses)|ke(w.members)|(w.typeParameters?1:0)|1024,w.jsDoc=void 0,w}function c_(n,i,_,c,f,w){return n.modifiers!==i||n.name!==_||n.typeParameters!==c||n.heritageClauses!==f||n.members!==w?q($s(i,_,c,f,w),n):n}function l_(){return M(232)}function Qs(n,i){let _=M(233);return _.expression=o().parenthesizeLeftSideOfAccess(n,!1),_.typeArguments=i&&o().parenthesizeTypeArguments(i),_.transformFlags|=z(_.expression)|ke(_.typeArguments)|1024,_}function Ks(n,i,_){return n.expression!==i||n.typeArguments!==_?q(Qs(i,_),n):n}function dn(n,i){let _=M(234);return _.expression=n,_.type=i,_.transformFlags|=z(_.expression)|z(_.type)|1,_}function pa(n,i,_){return n.expression!==i||n.type!==_?q(dn(i,_),n):n}function Zs(n){let i=M(235);return i.expression=o().parenthesizeLeftSideOfAccess(n,!1),i.transformFlags|=z(i.expression)|1,i}function eo(n,i){return Mg(n)?Jn(n,i):n.expression!==i?q(Zs(i),n):n}function u_(n,i){let _=M(238);return _.expression=n,_.type=i,_.transformFlags|=z(_.expression)|z(_.type)|1,_}function to(n,i,_){return n.expression!==i||n.type!==_?q(u_(i,_),n):n}function p_(n){let i=M(235);return i.flags|=64,i.expression=o().parenthesizeLeftSideOfAccess(n,!0),i.transformFlags|=z(i.expression)|1,i}function Jn(n,i){return B.assert(!!(n.flags&64),\"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead.\"),n.expression!==i?q(p_(i),n):n}function no(n,i){let _=M(236);switch(_.keywordToken=n,_.name=i,_.transformFlags|=z(_.name),n){case 105:_.transformFlags|=1024;break;case 102:_.transformFlags|=32;break;default:return B.assertNever(n)}return _.flowNode=void 0,_}function f_(n,i){return n.name!==i?q(no(n.keywordToken,i),n):n}function Xn(n,i){let _=M(239);return _.expression=n,_.literal=i,_.transformFlags|=z(_.expression)|z(_.literal)|1024,_}function fa(n,i,_){return n.expression!==i||n.literal!==_?q(Xn(i,_),n):n}function ro(){let n=M(240);return n.transformFlags|=1024,n}function Rr(n,i){let _=M(241);return _.statements=de(n),_.multiLine=i,_.transformFlags|=ke(_.statements),_.jsDoc=void 0,_.locals=void 0,_.nextContainer=void 0,_}function tu(n,i){return n.statements!==i?q(Rr(i,n.multiLine),n):n}function d_(n,i){let _=M(243);return _.modifiers=De(n),_.declarationList=Yr(i)?v_(i):i,_.transformFlags|=ke(_.modifiers)|z(_.declarationList),Rn(_.modifiers)&128&&(_.transformFlags=1),_.jsDoc=void 0,_.flowNode=void 0,_}function io(n,i,_){return n.modifiers!==i||n.declarationList!==_?q(d_(i,_),n):n}function ao(){let n=M(242);return n.jsDoc=void 0,n}function Pi(n){let i=M(244);return i.expression=o().parenthesizeExpressionOfExpressionStatement(n),i.transformFlags|=z(i.expression),i.jsDoc=void 0,i.flowNode=void 0,i}function _o(n,i){return n.expression!==i?q(Pi(i),n):n}function so(n,i,_){let c=M(245);return c.expression=n,c.thenStatement=It(i),c.elseStatement=It(_),c.transformFlags|=z(c.expression)|z(c.thenStatement)|z(c.elseStatement),c.jsDoc=void 0,c.flowNode=void 0,c}function oo(n,i,_,c){return n.expression!==i||n.thenStatement!==_||n.elseStatement!==c?q(so(i,_,c),n):n}function co(n,i){let _=M(246);return _.statement=It(n),_.expression=i,_.transformFlags|=z(_.statement)|z(_.expression),_.jsDoc=void 0,_.flowNode=void 0,_}function lo(n,i,_){return n.statement!==i||n.expression!==_?q(co(i,_),n):n}function uo(n,i){let _=M(247);return _.expression=n,_.statement=It(i),_.transformFlags|=z(_.expression)|z(_.statement),_.jsDoc=void 0,_.flowNode=void 0,_}function nu(n,i,_){return n.expression!==i||n.statement!==_?q(uo(i,_),n):n}function po(n,i,_,c){let f=M(248);return f.initializer=n,f.condition=i,f.incrementor=_,f.statement=It(c),f.transformFlags|=z(f.initializer)|z(f.condition)|z(f.incrementor)|z(f.statement),f.jsDoc=void 0,f.locals=void 0,f.nextContainer=void 0,f.flowNode=void 0,f}function fo(n,i,_,c,f){return n.initializer!==i||n.condition!==_||n.incrementor!==c||n.statement!==f?q(po(i,_,c,f),n):n}function m_(n,i,_){let c=M(249);return c.initializer=n,c.expression=i,c.statement=It(_),c.transformFlags|=z(c.initializer)|z(c.expression)|z(c.statement),c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.flowNode=void 0,c}function ru(n,i,_,c){return n.initializer!==i||n.expression!==_||n.statement!==c?q(m_(i,_,c),n):n}function mo(n,i,_,c){let f=M(250);return f.awaitModifier=n,f.initializer=i,f.expression=o().parenthesizeExpressionForDisallowedComma(_),f.statement=It(c),f.transformFlags|=z(f.awaitModifier)|z(f.initializer)|z(f.expression)|z(f.statement)|1024,n&&(f.transformFlags|=128),f.jsDoc=void 0,f.locals=void 0,f.nextContainer=void 0,f.flowNode=void 0,f}function iu(n,i,_,c,f){return n.awaitModifier!==i||n.initializer!==_||n.expression!==c||n.statement!==f?q(mo(i,_,c,f),n):n}function ho(n){let i=M(251);return i.label=et(n),i.transformFlags|=z(i.label)|4194304,i.jsDoc=void 0,i.flowNode=void 0,i}function au(n,i){return n.label!==i?q(ho(i),n):n}function h_(n){let i=M(252);return i.label=et(n),i.transformFlags|=z(i.label)|4194304,i.jsDoc=void 0,i.flowNode=void 0,i}function yo(n,i){return n.label!==i?q(h_(i),n):n}function y_(n){let i=M(253);return i.expression=n,i.transformFlags|=z(i.expression)|128|4194304,i.jsDoc=void 0,i.flowNode=void 0,i}function _u(n,i){return n.expression!==i?q(y_(i),n):n}function g_(n,i){let _=M(254);return _.expression=n,_.statement=It(i),_.transformFlags|=z(_.expression)|z(_.statement),_.jsDoc=void 0,_.flowNode=void 0,_}function go(n,i,_){return n.expression!==i||n.statement!==_?q(g_(i,_),n):n}function b_(n,i){let _=M(255);return _.expression=o().parenthesizeExpressionForDisallowedComma(n),_.caseBlock=i,_.transformFlags|=z(_.expression)|z(_.caseBlock),_.jsDoc=void 0,_.flowNode=void 0,_.possiblyExhaustive=!1,_}function ai(n,i,_){return n.expression!==i||n.caseBlock!==_?q(b_(i,_),n):n}function bo(n,i){let _=M(256);return _.label=et(n),_.statement=It(i),_.transformFlags|=z(_.label)|z(_.statement),_.jsDoc=void 0,_.flowNode=void 0,_}function vo(n,i,_){return n.label!==i||n.statement!==_?q(bo(i,_),n):n}function To(n){let i=M(257);return i.expression=n,i.transformFlags|=z(i.expression),i.jsDoc=void 0,i.flowNode=void 0,i}function su(n,i){return n.expression!==i?q(To(i),n):n}function xo(n,i,_){let c=M(258);return c.tryBlock=n,c.catchClause=i,c.finallyBlock=_,c.transformFlags|=z(c.tryBlock)|z(c.catchClause)|z(c.finallyBlock),c.jsDoc=void 0,c.flowNode=void 0,c}function ou(n,i,_,c){return n.tryBlock!==i||n.catchClause!==_||n.finallyBlock!==c?q(xo(i,_,c),n):n}function So(){let n=M(259);return n.jsDoc=void 0,n.flowNode=void 0,n}function da(n,i,_,c){let f=ae(260);return f.name=et(n),f.exclamationToken=i,f.type=_,f.initializer=Ca(c),f.transformFlags|=jn(f.name)|z(f.initializer)|(f.exclamationToken??f.type?1:0),f.jsDoc=void 0,f}function wo(n,i,_,c,f){return n.name!==i||n.type!==c||n.exclamationToken!==_||n.initializer!==f?q(da(i,_,c,f),n):n}function v_(n,i=0){let _=M(261);return _.flags|=i&7,_.declarations=de(n),_.transformFlags|=ke(_.declarations)|4194304,i&7&&(_.transformFlags|=263168),i&4&&(_.transformFlags|=4),_}function cu(n,i){return n.declarations!==i?q(v_(i,n.flags),n):n}function ko(n,i,_,c,f,w,F){let pe=ae(262);if(pe.modifiers=De(n),pe.asteriskToken=i,pe.name=et(_),pe.typeParameters=De(c),pe.parameters=de(f),pe.type=w,pe.body=F,!pe.body||Rn(pe.modifiers)&128)pe.transformFlags=1;else{let Re=Rn(pe.modifiers)&1024,en=!!pe.asteriskToken,kn=Re&&en;pe.transformFlags=ke(pe.modifiers)|z(pe.asteriskToken)|jn(pe.name)|ke(pe.typeParameters)|ke(pe.parameters)|z(pe.type)|z(pe.body)&-67108865|(kn?128:Re?256:en?2048:0)|(pe.typeParameters||pe.type?1:0)|4194304}return pe.typeArguments=void 0,pe.jsDoc=void 0,pe.locals=void 0,pe.nextContainer=void 0,pe.endFlowNode=void 0,pe.returnFlowNode=void 0,pe}function T_(n,i,_,c,f,w,F,pe){return n.modifiers!==i||n.asteriskToken!==_||n.name!==c||n.typeParameters!==f||n.parameters!==w||n.type!==F||n.body!==pe?lu(ko(i,_,c,f,w,F,pe),n):n}function lu(n,i){return n!==i&&n.modifiers===i.modifiers&&(n.modifiers=i.modifiers),Oe(n,i)}function Eo(n,i,_,c,f){let w=ae(263);return w.modifiers=De(n),w.name=et(i),w.typeParameters=De(_),w.heritageClauses=De(c),w.members=de(f),Rn(w.modifiers)&128?w.transformFlags=1:(w.transformFlags|=ke(w.modifiers)|jn(w.name)|ke(w.typeParameters)|ke(w.heritageClauses)|ke(w.members)|(w.typeParameters?1:0)|1024,w.transformFlags&8192&&(w.transformFlags|=1)),w.jsDoc=void 0,w}function ma(n,i,_,c,f,w){return n.modifiers!==i||n.name!==_||n.typeParameters!==c||n.heritageClauses!==f||n.members!==w?q(Eo(i,_,c,f,w),n):n}function Ao(n,i,_,c,f){let w=ae(264);return w.modifiers=De(n),w.name=et(i),w.typeParameters=De(_),w.heritageClauses=De(c),w.members=de(f),w.transformFlags=1,w.jsDoc=void 0,w}function Co(n,i,_,c,f,w){return n.modifiers!==i||n.name!==_||n.typeParameters!==c||n.heritageClauses!==f||n.members!==w?q(Ao(i,_,c,f,w),n):n}function ot(n,i,_,c){let f=ae(265);return f.modifiers=De(n),f.name=et(i),f.typeParameters=De(_),f.type=c,f.transformFlags=1,f.jsDoc=void 0,f.locals=void 0,f.nextContainer=void 0,f}function gr(n,i,_,c,f){return n.modifiers!==i||n.name!==_||n.typeParameters!==c||n.type!==f?q(ot(i,_,c,f),n):n}function x_(n,i,_){let c=ae(266);return c.modifiers=De(n),c.name=et(i),c.members=de(_),c.transformFlags|=ke(c.modifiers)|z(c.name)|ke(c.members)|1,c.transformFlags&=-67108865,c.jsDoc=void 0,c}function br(n,i,_,c){return n.modifiers!==i||n.name!==_||n.members!==c?q(x_(i,_,c),n):n}function Do(n,i,_,c=0){let f=ae(267);return f.modifiers=De(n),f.flags|=c&2088,f.name=i,f.body=_,Rn(f.modifiers)&128?f.transformFlags=1:f.transformFlags|=ke(f.modifiers)|z(f.name)|z(f.body)|1,f.transformFlags&=-67108865,f.jsDoc=void 0,f.locals=void 0,f.nextContainer=void 0,f}function Et(n,i,_,c){return n.modifiers!==i||n.name!==_||n.body!==c?q(Do(i,_,c,n.flags),n):n}function vr(n){let i=M(268);return i.statements=de(n),i.transformFlags|=ke(i.statements),i.jsDoc=void 0,i}function zt(n,i){return n.statements!==i?q(vr(i),n):n}function Po(n){let i=M(269);return i.clauses=de(n),i.transformFlags|=ke(i.clauses),i.locals=void 0,i.nextContainer=void 0,i}function uu(n,i){return n.clauses!==i?q(Po(i),n):n}function No(n){let i=ae(270);return i.name=et(n),i.transformFlags|=ja(i.name)|1,i.modifiers=void 0,i.jsDoc=void 0,i}function Io(n,i){return n.name!==i?pu(No(i),n):n}function pu(n,i){return n!==i&&(n.modifiers=i.modifiers),q(n,i)}function Oo(n,i,_,c){let f=ae(271);return f.modifiers=De(n),f.name=et(_),f.isTypeOnly=i,f.moduleReference=c,f.transformFlags|=ke(f.modifiers)|ja(f.name)|z(f.moduleReference),zf(f.moduleReference)||(f.transformFlags|=1),f.transformFlags&=-67108865,f.jsDoc=void 0,f}function Mo(n,i,_,c,f){return n.modifiers!==i||n.isTypeOnly!==_||n.name!==c||n.moduleReference!==f?q(Oo(i,_,c,f),n):n}function Jo(n,i,_,c){let f=M(272);return f.modifiers=De(n),f.importClause=i,f.moduleSpecifier=_,f.attributes=f.assertClause=c,f.transformFlags|=z(f.importClause)|z(f.moduleSpecifier),f.transformFlags&=-67108865,f.jsDoc=void 0,f}function Lo(n,i,_,c,f){return n.modifiers!==i||n.importClause!==_||n.moduleSpecifier!==c||n.attributes!==f?q(Jo(i,_,c,f),n):n}function jo(n,i,_){let c=ae(273);return c.isTypeOnly=n,c.name=i,c.namedBindings=_,c.transformFlags|=z(c.name)|z(c.namedBindings),n&&(c.transformFlags|=1),c.transformFlags&=-67108865,c}function Ro(n,i,_,c){return n.isTypeOnly!==i||n.name!==_||n.namedBindings!==c?q(jo(i,_,c),n):n}function S_(n,i){let _=M(300);return _.elements=de(n),_.multiLine=i,_.token=132,_.transformFlags|=4,_}function fu(n,i,_){return n.elements!==i||n.multiLine!==_?q(S_(i,_),n):n}function Ni(n,i){let _=M(301);return _.name=n,_.value=i,_.transformFlags|=4,_}function Uo(n,i,_){return n.name!==i||n.value!==_?q(Ni(i,_),n):n}function w_(n,i){let _=M(302);return _.assertClause=n,_.multiLine=i,_}function Bo(n,i,_){return n.assertClause!==i||n.multiLine!==_?q(w_(i,_),n):n}function qo(n,i,_){let c=M(300);return c.token=_??118,c.elements=de(n),c.multiLine=i,c.transformFlags|=4,c}function k_(n,i,_){return n.elements!==i||n.multiLine!==_?q(qo(i,_,n.token),n):n}function zo(n,i){let _=M(301);return _.name=n,_.value=i,_.transformFlags|=4,_}function Fo(n,i,_){return n.name!==i||n.value!==_?q(zo(i,_),n):n}function Vo(n){let i=ae(274);return i.name=n,i.transformFlags|=z(i.name),i.transformFlags&=-67108865,i}function du(n,i){return n.name!==i?q(Vo(i),n):n}function Wo(n){let i=ae(280);return i.name=n,i.transformFlags|=z(i.name)|32,i.transformFlags&=-67108865,i}function mu(n,i){return n.name!==i?q(Wo(i),n):n}function Go(n){let i=M(275);return i.elements=de(n),i.transformFlags|=ke(i.elements),i.transformFlags&=-67108865,i}function Yo(n,i){return n.elements!==i?q(Go(i),n):n}function Tr(n,i,_){let c=ae(276);return c.isTypeOnly=n,c.propertyName=i,c.name=_,c.transformFlags|=z(c.propertyName)|z(c.name),c.transformFlags&=-67108865,c}function hu(n,i,_,c){return n.isTypeOnly!==i||n.propertyName!==_||n.name!==c?q(Tr(i,_,c),n):n}function ha(n,i,_){let c=ae(277);return c.modifiers=De(n),c.isExportEquals=i,c.expression=i?o().parenthesizeRightSideOfBinary(64,void 0,_):o().parenthesizeExpressionOfExportDefault(_),c.transformFlags|=ke(c.modifiers)|z(c.expression),c.transformFlags&=-67108865,c.jsDoc=void 0,c}function Ii(n,i,_){return n.modifiers!==i||n.expression!==_?q(ha(i,n.isExportEquals,_),n):n}function ya(n,i,_,c,f){let w=ae(278);return w.modifiers=De(n),w.isTypeOnly=i,w.exportClause=_,w.moduleSpecifier=c,w.attributes=w.assertClause=f,w.transformFlags|=ke(w.modifiers)|z(w.exportClause)|z(w.moduleSpecifier),w.transformFlags&=-67108865,w.jsDoc=void 0,w}function Ho(n,i,_,c,f,w){return n.modifiers!==i||n.isTypeOnly!==_||n.exportClause!==c||n.moduleSpecifier!==f||n.attributes!==w?Oi(ya(i,_,c,f,w),n):n}function Oi(n,i){return n!==i&&n.modifiers===i.modifiers&&(n.modifiers=i.modifiers),q(n,i)}function E_(n){let i=M(279);return i.elements=de(n),i.transformFlags|=ke(i.elements),i.transformFlags&=-67108865,i}function yu(n,i){return n.elements!==i?q(E_(i),n):n}function ga(n,i,_){let c=M(281);return c.isTypeOnly=n,c.propertyName=et(i),c.name=et(_),c.transformFlags|=z(c.propertyName)|z(c.name),c.transformFlags&=-67108865,c.jsDoc=void 0,c}function gu(n,i,_,c){return n.isTypeOnly!==i||n.propertyName!==_||n.name!==c?q(ga(i,_,c),n):n}function bu(){let n=ae(282);return n.jsDoc=void 0,n}function A_(n){let i=M(283);return i.expression=n,i.transformFlags|=z(i.expression),i.transformFlags&=-67108865,i}function vu(n,i){return n.expression!==i?q(A_(i),n):n}function Xo(n){return M(n)}function $o(n,i,_=!1){let c=C_(n,_?i&&o().parenthesizeNonArrayTypeOfPostfixType(i):i);return c.postfix=_,c}function C_(n,i){let _=M(n);return _.type=i,_}function Tu(n,i,_){return i.type!==_?q($o(n,_,i.postfix),i):i}function xu(n,i,_){return i.type!==_?q(C_(n,_),i):i}function Qo(n,i){let _=ae(317);return _.parameters=De(n),_.type=i,_.transformFlags=ke(_.parameters)|(_.type?1:0),_.jsDoc=void 0,_.locals=void 0,_.nextContainer=void 0,_.typeArguments=void 0,_}function Su(n,i,_){return n.parameters!==i||n.type!==_?q(Qo(i,_),n):n}function Ko(n,i=!1){let _=ae(322);return _.jsDocPropertyTags=De(n),_.isArrayType=i,_}function wu(n,i,_){return n.jsDocPropertyTags!==i||n.isArrayType!==_?q(Ko(i,_),n):n}function Zo(n){let i=M(309);return i.type=n,i}function D_(n,i){return n.type!==i?q(Zo(i),n):n}function ec(n,i,_){let c=ae(323);return c.typeParameters=De(n),c.parameters=de(i),c.type=_,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c}function ku(n,i,_,c){return n.typeParameters!==i||n.parameters!==_||n.type!==c?q(ec(i,_,c),n):n}function _n(n){let i=il(n.kind);return n.tagName.escapedText===Ja(i)?n.tagName:Ge(i)}function Sn(n,i,_){let c=M(n);return c.tagName=i,c.comment=_,c}function Ur(n,i,_){let c=ae(n);return c.tagName=i,c.comment=_,c}function P_(n,i,_,c){let f=Sn(345,n??Ge(\"template\"),c);return f.constraint=i,f.typeParameters=de(_),f}function tc(n,i=_n(n),_,c,f){return n.tagName!==i||n.constraint!==_||n.typeParameters!==c||n.comment!==f?q(P_(i,_,c,f),n):n}function ba(n,i,_,c){let f=Ur(346,n??Ge(\"typedef\"),c);return f.typeExpression=i,f.fullName=_,f.name=em(_),f.locals=void 0,f.nextContainer=void 0,f}function Eu(n,i=_n(n),_,c,f){return n.tagName!==i||n.typeExpression!==_||n.fullName!==c||n.comment!==f?q(ba(i,_,c,f),n):n}function N_(n,i,_,c,f,w){let F=Ur(341,n??Ge(\"param\"),w);return F.typeExpression=c,F.name=i,F.isNameFirst=!!f,F.isBracketed=_,F}function Au(n,i=_n(n),_,c,f,w,F){return n.tagName!==i||n.name!==_||n.isBracketed!==c||n.typeExpression!==f||n.isNameFirst!==w||n.comment!==F?q(N_(i,_,c,f,w,F),n):n}function nc(n,i,_,c,f,w){let F=Ur(348,n??Ge(\"prop\"),w);return F.typeExpression=c,F.name=i,F.isNameFirst=!!f,F.isBracketed=_,F}function rc(n,i=_n(n),_,c,f,w,F){return n.tagName!==i||n.name!==_||n.isBracketed!==c||n.typeExpression!==f||n.isNameFirst!==w||n.comment!==F?q(nc(i,_,c,f,w,F),n):n}function ic(n,i,_,c){let f=Ur(338,n??Ge(\"callback\"),c);return f.typeExpression=i,f.fullName=_,f.name=em(_),f.locals=void 0,f.nextContainer=void 0,f}function ac(n,i=_n(n),_,c,f){return n.tagName!==i||n.typeExpression!==_||n.fullName!==c||n.comment!==f?q(ic(i,_,c,f),n):n}function _c(n,i,_){let c=Sn(339,n??Ge(\"overload\"),_);return c.typeExpression=i,c}function I_(n,i=_n(n),_,c){return n.tagName!==i||n.typeExpression!==_||n.comment!==c?q(_c(i,_,c),n):n}function O_(n,i,_){let c=Sn(328,n??Ge(\"augments\"),_);return c.class=i,c}function Mi(n,i=_n(n),_,c){return n.tagName!==i||n.class!==_||n.comment!==c?q(O_(i,_,c),n):n}function sc(n,i,_){let c=Sn(329,n??Ge(\"implements\"),_);return c.class=i,c}function Br(n,i,_){let c=Sn(347,n??Ge(\"see\"),_);return c.name=i,c}function va(n,i,_,c){return n.tagName!==i||n.name!==_||n.comment!==c?q(Br(i,_,c),n):n}function oc(n){let i=M(310);return i.name=n,i}function Cu(n,i){return n.name!==i?q(oc(i),n):n}function cc(n,i){let _=M(311);return _.left=n,_.right=i,_.transformFlags|=z(_.left)|z(_.right),_}function Du(n,i,_){return n.left!==i||n.right!==_?q(cc(i,_),n):n}function lc(n,i){let _=M(324);return _.name=n,_.text=i,_}function uc(n,i,_){return n.name!==i?q(lc(i,_),n):n}function pc(n,i){let _=M(325);return _.name=n,_.text=i,_}function Pu(n,i,_){return n.name!==i?q(pc(i,_),n):n}function fc(n,i){let _=M(326);return _.name=n,_.text=i,_}function Nu(n,i,_){return n.name!==i?q(fc(i,_),n):n}function Iu(n,i=_n(n),_,c){return n.tagName!==i||n.class!==_||n.comment!==c?q(sc(i,_,c),n):n}function dc(n,i,_){return Sn(n,i??Ge(il(n)),_)}function Ou(n,i,_=_n(i),c){return i.tagName!==_||i.comment!==c?q(dc(n,_,c),i):i}function mc(n,i,_,c){let f=Sn(n,i??Ge(il(n)),c);return f.typeExpression=_,f}function Mu(n,i,_=_n(i),c,f){return i.tagName!==_||i.typeExpression!==c||i.comment!==f?q(mc(n,_,c,f),i):i}function hc(n,i){return Sn(327,n,i)}function Ju(n,i,_){return n.tagName!==i||n.comment!==_?q(hc(i,_),n):n}function yc(n,i,_){let c=Ur(340,n??Ge(il(340)),_);return c.typeExpression=i,c.locals=void 0,c.nextContainer=void 0,c}function M_(n,i=_n(n),_,c){return n.tagName!==i||n.typeExpression!==_||n.comment!==c?q(yc(i,_,c),n):n}function gc(n,i,_,c,f){let w=Sn(351,n??Ge(\"import\"),f);return w.importClause=i,w.moduleSpecifier=_,w.attributes=c,w.comment=f,w}function bc(n,i,_,c,f,w){return n.tagName!==i||n.comment!==w||n.importClause!==_||n.moduleSpecifier!==c||n.attributes!==f?q(gc(i,_,c,f,w),n):n}function J_(n){let i=M(321);return i.text=n,i}function Lu(n,i){return n.text!==i?q(J_(i),n):n}function Ji(n,i){let _=M(320);return _.comment=n,_.tags=De(i),_}function vc(n,i,_){return n.comment!==i||n.tags!==_?q(Ji(i,_),n):n}function Tc(n,i,_){let c=M(284);return c.openingElement=n,c.children=de(i),c.closingElement=_,c.transformFlags|=z(c.openingElement)|ke(c.children)|z(c.closingElement)|2,c}function ju(n,i,_,c){return n.openingElement!==i||n.children!==_||n.closingElement!==c?q(Tc(i,_,c),n):n}function xc(n,i,_){let c=M(285);return c.tagName=n,c.typeArguments=De(i),c.attributes=_,c.transformFlags|=z(c.tagName)|ke(c.typeArguments)|z(c.attributes)|2,c.typeArguments&&(c.transformFlags|=1),c}function L_(n,i,_,c){return n.tagName!==i||n.typeArguments!==_||n.attributes!==c?q(xc(i,_,c),n):n}function j_(n,i,_){let c=M(286);return c.tagName=n,c.typeArguments=De(i),c.attributes=_,c.transformFlags|=z(c.tagName)|ke(c.typeArguments)|z(c.attributes)|2,i&&(c.transformFlags|=1),c}function Sc(n,i,_,c){return n.tagName!==i||n.typeArguments!==_||n.attributes!==c?q(j_(i,_,c),n):n}function Ta(n){let i=M(287);return i.tagName=n,i.transformFlags|=z(i.tagName)|2,i}function Kt(n,i){return n.tagName!==i?q(Ta(i),n):n}function R_(n,i,_){let c=M(288);return c.openingFragment=n,c.children=de(i),c.closingFragment=_,c.transformFlags|=z(c.openingFragment)|ke(c.children)|z(c.closingFragment)|2,c}function wc(n,i,_,c){return n.openingFragment!==i||n.children!==_||n.closingFragment!==c?q(R_(i,_,c),n):n}function xa(n,i){let _=M(12);return _.text=n,_.containsOnlyTriviaWhiteSpaces=!!i,_.transformFlags|=2,_}function kc(n,i,_){return n.text!==i||n.containsOnlyTriviaWhiteSpaces!==_?q(xa(i,_),n):n}function Ru(){let n=M(289);return n.transformFlags|=2,n}function Uu(){let n=M(290);return n.transformFlags|=2,n}function Ec(n,i){let _=ae(291);return _.name=n,_.initializer=i,_.transformFlags|=z(_.name)|z(_.initializer)|2,_}function Sa(n,i,_){return n.name!==i||n.initializer!==_?q(Ec(i,_),n):n}function Ac(n){let i=ae(292);return i.properties=de(n),i.transformFlags|=ke(i.properties)|2,i}function Bu(n,i){return n.properties!==i?q(Ac(i),n):n}function Cc(n){let i=M(293);return i.expression=n,i.transformFlags|=z(i.expression)|2,i}function qu(n,i){return n.expression!==i?q(Cc(i),n):n}function wa(n,i){let _=M(294);return _.dotDotDotToken=n,_.expression=i,_.transformFlags|=z(_.dotDotDotToken)|z(_.expression)|2,_}function Li(n,i){return n.expression!==i?q(wa(n.dotDotDotToken,i),n):n}function Dc(n,i){let _=M(295);return _.namespace=n,_.name=i,_.transformFlags|=z(_.namespace)|z(_.name)|2,_}function U_(n,i,_){return n.namespace!==i||n.name!==_?q(Dc(i,_),n):n}function B_(n,i){let _=M(296);return _.expression=o().parenthesizeExpressionForDisallowedComma(n),_.statements=de(i),_.transformFlags|=z(_.expression)|ke(_.statements),_.jsDoc=void 0,_}function zu(n,i,_){return n.expression!==i||n.statements!==_?q(B_(i,_),n):n}function _i(n){let i=M(297);return i.statements=de(n),i.transformFlags=ke(i.statements),i}function Pc(n,i){return n.statements!==i?q(_i(i),n):n}function Nc(n,i){let _=M(298);switch(_.token=n,_.types=de(i),_.transformFlags|=ke(_.types),n){case 96:_.transformFlags|=1024;break;case 119:_.transformFlags|=1;break;default:return B.assertNever(n)}return _}function Fu(n,i){return n.types!==i?q(Nc(n.token,i),n):n}function q_(n,i){let _=M(299);return _.variableDeclaration=xr(n),_.block=i,_.transformFlags|=z(_.variableDeclaration)|z(_.block)|(n?0:64),_.locals=void 0,_.nextContainer=void 0,_}function Ic(n,i,_){return n.variableDeclaration!==i||n.block!==_?q(q_(i,_),n):n}function ka(n,i){let _=ae(303);return _.name=et(n),_.initializer=o().parenthesizeExpressionForDisallowedComma(i),_.transformFlags|=jn(_.name)|z(_.initializer),_.modifiers=void 0,_.questionToken=void 0,_.exclamationToken=void 0,_.jsDoc=void 0,_}function qr(n,i,_){return n.name!==i||n.initializer!==_?Vu(ka(i,_),n):n}function Vu(n,i){return n!==i&&(n.modifiers=i.modifiers,n.questionToken=i.questionToken,n.exclamationToken=i.exclamationToken),q(n,i)}function Oc(n,i){let _=ae(304);return _.name=et(n),_.objectAssignmentInitializer=i&&o().parenthesizeExpressionForDisallowedComma(i),_.transformFlags|=ja(_.name)|z(_.objectAssignmentInitializer)|1024,_.equalsToken=void 0,_.modifiers=void 0,_.questionToken=void 0,_.exclamationToken=void 0,_.jsDoc=void 0,_}function Wu(n,i,_){return n.name!==i||n.objectAssignmentInitializer!==_?Gu(Oc(i,_),n):n}function Gu(n,i){return n!==i&&(n.modifiers=i.modifiers,n.questionToken=i.questionToken,n.exclamationToken=i.exclamationToken,n.equalsToken=i.equalsToken),q(n,i)}function z_(n){let i=ae(305);return i.expression=o().parenthesizeExpressionForDisallowedComma(n),i.transformFlags|=z(i.expression)|128|65536,i.jsDoc=void 0,i}function Mc(n,i){return n.expression!==i?q(z_(i),n):n}function wn(n,i){let _=ae(306);return _.name=et(n),_.initializer=i&&o().parenthesizeExpressionForDisallowedComma(i),_.transformFlags|=z(_.name)|z(_.initializer)|1,_.jsDoc=void 0,_}function Jc(n,i,_){return n.name!==i||n.initializer!==_?q(wn(i,_),n):n}function Yu(n,i,_){let c=t.createBaseSourceFileNode(307);return c.statements=de(n),c.endOfFileToken=i,c.flags|=_,c.text=\"\",c.fileName=\"\",c.path=\"\",c.resolvedPath=\"\",c.originalFileName=\"\",c.languageVersion=1,c.languageVariant=0,c.scriptKind=0,c.isDeclarationFile=!1,c.hasNoDefaultLib=!1,c.transformFlags|=ke(c.statements)|z(c.endOfFileToken),c.locals=void 0,c.nextContainer=void 0,c.endFlowNode=void 0,c.nodeCount=0,c.identifierCount=0,c.symbolCount=0,c.parseDiagnostics=void 0,c.bindDiagnostics=void 0,c.bindSuggestionDiagnostics=void 0,c.lineMap=void 0,c.externalModuleIndicator=void 0,c.setExternalModuleIndicator=void 0,c.pragmas=void 0,c.checkJsDirective=void 0,c.referencedFiles=void 0,c.typeReferenceDirectives=void 0,c.libReferenceDirectives=void 0,c.amdDependencies=void 0,c.commentDirectives=void 0,c.identifiers=void 0,c.packageJsonLocations=void 0,c.packageJsonScope=void 0,c.imports=void 0,c.moduleAugmentations=void 0,c.ambientModuleNames=void 0,c.classifiableNames=void 0,c.impliedNodeFormat=void 0,c}function Lc(n){let i=Object.create(n.redirectTarget);return Object.defineProperties(i,{id:{get(){return this.redirectInfo.redirectTarget.id},set(_){this.redirectInfo.redirectTarget.id=_}},symbol:{get(){return this.redirectInfo.redirectTarget.symbol},set(_){this.redirectInfo.redirectTarget.symbol=_}}}),i.redirectInfo=n,i}function Hu(n){let i=Lc(n.redirectInfo);return i.flags|=n.flags&-17,i.fileName=n.fileName,i.path=n.path,i.resolvedPath=n.resolvedPath,i.originalFileName=n.originalFileName,i.packageJsonLocations=n.packageJsonLocations,i.packageJsonScope=n.packageJsonScope,i.emitNode=void 0,i}function jc(n){let i=t.createBaseSourceFileNode(307);i.flags|=n.flags&-17;for(let _ in n)if(!(Cr(i,_)||!Cr(n,_))){if(_===\"emitNode\"){i.emitNode=void 0;continue}i[_]=n[_]}return i}function Ea(n){let i=n.redirectInfo?Hu(n):jc(n);return a(i,n),i}function Xu(n,i,_,c,f,w,F){let pe=Ea(n);return pe.statements=de(i),pe.isDeclarationFile=_,pe.referencedFiles=c,pe.typeReferenceDirectives=f,pe.hasNoDefaultLib=w,pe.libReferenceDirectives=F,pe.transformFlags=ke(pe.statements)|z(pe.endOfFileToken),pe}function $u(n,i,_=n.isDeclarationFile,c=n.referencedFiles,f=n.typeReferenceDirectives,w=n.hasNoDefaultLib,F=n.libReferenceDirectives){return n.statements!==i||n.isDeclarationFile!==_||n.referencedFiles!==c||n.typeReferenceDirectives!==f||n.hasNoDefaultLib!==w||n.libReferenceDirectives!==F?q(Xu(n,i,_,c,f,w,F),n):n}function F_(n){let i=M(308);return i.sourceFiles=n,i.syntheticFileReferences=void 0,i.syntheticTypeReferences=void 0,i.syntheticLibReferences=void 0,i.hasNoDefaultLib=void 0,i}function Qu(n,i){return n.sourceFiles!==i?q(F_(i),n):n}function Ku(n,i=!1,_){let c=M(237);return c.type=n,c.isSpread=i,c.tupleNameSource=_,c}function Aa(n){let i=M(352);return i._children=n,i}function Rc(n){let i=M(353);return i.original=n,yn(i,n),i}function Uc(n,i){let _=M(355);return _.expression=n,_.original=i,_.transformFlags|=z(_.expression)|1,yn(_,i),_}function Bc(n,i){return n.expression!==i?q(Uc(i,n.original),n):n}function Zu(){return M(354)}function ep(n){if(La(n)&&!ml(n)&&!n.original&&!n.emitNode&&!n.id){if(Zb(n))return n.elements;if(Ki(n)&&jb(n.operatorToken))return[n.left,n.right]}return n}function V_(n){let i=M(356);return i.elements=de(iy(n,ep)),i.transformFlags|=ke(i.elements),i}function qc(n,i){return n.elements!==i?q(V_(i),n):n}function W_(n,i){let _=M(357);return _.expression=n,_.thisArg=i,_.transformFlags|=z(_.expression)|z(_.thisArg),_}function zc(n,i,_){return n.expression!==i||n.thisArg!==_?q(W_(i,_),n):n}function tp(n){let i=bn(n.escapedText);return i.flags|=n.flags&-17,i.transformFlags=n.transformFlags,a(i,n),setIdentifierAutoGenerate(i,{...n.emitNode.autoGenerate}),i}function np(n){let i=bn(n.escapedText);i.flags|=n.flags&-17,i.jsDoc=n.jsDoc,i.flowNode=n.flowNode,i.symbol=n.symbol,i.transformFlags=n.transformFlags,a(i,n);let _=getIdentifierTypeArguments(n);return _&&setIdentifierTypeArguments(i,_),i}function Fc(n){let i=On(n.escapedText);return i.flags|=n.flags&-17,i.transformFlags=n.transformFlags,a(i,n),setIdentifierAutoGenerate(i,{...n.emitNode.autoGenerate}),i}function Vc(n){let i=On(n.escapedText);return i.flags|=n.flags&-17,i.transformFlags=n.transformFlags,a(i,n),i}function G_(n){if(n===void 0)return n;if(rh(n))return Ea(n);if(Ua(n))return tp(n);if(tt(n))return np(n);if(_1(n))return Fc(n);if(gi(n))return Vc(n);let i=ff(n.kind)?t.createBaseNode(n.kind):t.createBaseTokenNode(n.kind);i.flags|=n.flags&-17,i.transformFlags=n.transformFlags,a(i,n);for(let _ in n)Cr(i,_)||!Cr(n,_)||(i[_]=n[_]);return i}function rp(n,i,_){return Ci(i_(void 0,void 0,void 0,void 0,i?[i]:[],void 0,Rr(n,!0)),void 0,_?[_]:[])}function ip(n,i,_){return Ci(a_(void 0,void 0,i?[i]:[],void 0,void 0,Rr(n,!0)),void 0,_?[_]:[])}function si(){return __(V(\"0\"))}function Wc(n){return ha(void 0,!1,n)}function ap(n){return ya(void 0,!1,E_([ga(!1,void 0,n)]))}function Y_(n,i){return i===\"null\"?ye.createStrictEquality(n,Jt()):i===\"undefined\"?ye.createStrictEquality(n,si()):ye.createStrictEquality(ca(n),dt(i))}function _p(n,i){return i===\"null\"?ye.createStrictInequality(n,Jt()):i===\"undefined\"?ye.createStrictInequality(n,si()):ye.createStrictInequality(ca(n),dt(i))}function zr(n,i,_){return Jd(n)?t_(Ei(n,void 0,i),void 0,void 0,_):Ci(cr(n,i),void 0,_)}function sp(n,i,_){return zr(n,\"bind\",[i,..._])}function op(n,i,_){return zr(n,\"call\",[i,..._])}function cp(n,i,_){return zr(n,\"apply\",[i,_])}function ji(n,i,_){return zr(Ge(n),i,_)}function Ri(n,i){return zr(n,\"slice\",i===void 0?[]:[pr(i)])}function lp(n,i){return zr(n,\"concat\",i)}function H_(n,i,_){return ji(\"Object\",\"defineProperty\",[n,pr(i),_])}function oi(n,i){return ji(\"Object\",\"getOwnPropertyDescriptor\",[n,pr(i)])}function Gc(n,i,_){return ji(\"Reflect\",\"get\",_?[n,i,_]:[n,i])}function up(n,i,_,c){return ji(\"Reflect\",\"set\",c?[n,i,_,c]:[n,i,_])}function ci(n,i,_){return _?(n.push(ka(i,_)),!0):!1}function Yc(n,i){let _=[];ci(_,\"enumerable\",pr(n.enumerable)),ci(_,\"configurable\",pr(n.configurable));let c=ci(_,\"writable\",pr(n.writable));c=ci(_,\"value\",n.value)||c;let f=ci(_,\"get\",n.get);return f=ci(_,\"set\",n.set)||f,B.assert(!(c&&f),\"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor.\"),ki(_,!i)}function pp(n,i){switch(n.kind){case 217:return js(n,i);case 216:return Ls(n,n.type,i);case 234:return pa(n,i,n.type);case 238:return to(n,i,n.type);case 235:return eo(n,i);case 233:return Ks(n,i,n.typeArguments);case 355:return Bc(n,i)}}function fp(n){return Al(n)&&La(n)&&La(getSourceMapRange(n))&&La(getCommentRange(n))&&!Ht(getSyntheticLeadingComments(n))&&!Ht(getSyntheticTrailingComments(n))}function Hc(n,i,_=31){return n&&lh(n,_)&&!fp(n)?pp(n,Hc(n.expression,i)):i}function X_(n,i,_){if(!i)return n;let c=vo(i,i.label,Q1(i.statement)?X_(n,i.statement):n);return _&&_(i),c}function $_(n,i){let _=vf(n);switch(_.kind){case 80:return i;case 110:case 9:case 10:case 11:return!1;case 209:return _.elements.length!==0;case 210:return _.properties.length>0;default:return!0}}function Xc(n,i,_,c=!1){let f=Vf(n,31),w,F;return zd(f)?(w=Ut(),F=f):Ap(f)?(w=Ut(),F=_!==void 0&&_<2?yn(Ge(\"_super\"),f):f):za(f)&8192?(w=si(),F=o().parenthesizeLeftSideOfAccess(f,!1)):Hr(f)?$_(f.expression,c)?(w=ir(i),F=cr(yn(ye.createAssignment(w,f.expression),f.expression),f.name),yn(F,f)):(w=f.expression,F=f):Ha(f)?$_(f.expression,c)?(w=ir(i),F=Ai(yn(ye.createAssignment(w,f.expression),f.expression),f.argumentExpression),yn(F,f)):(w=f.expression,F=f):(w=si(),F=o().parenthesizeLeftSideOfAccess(n,!1)),{target:F,thisArg:w}}function s(n,i){return cr(r_(ki([R(void 0,\"value\",[fr(void 0,void 0,n,void 0,void 0,void 0)],Rr([Pi(i)]))])),\"value\")}function p(n){return n.length>10?V_(n):dy(n,ye.createComma)}function d(n,i,_,c=0,f){let w=f?n&&lf(n):e1(n);if(w&&tt(w)&&!Ua(w)){let F=Sf(yn(G_(w),w),w.parent);return c|=za(w),_||(c|=96),i||(c|=3072),c&&setEmitFlags(F,c),F}return Bn(n)}function b(n,i,_){return d(n,i,_,98304)}function S(n,i,_,c){return d(n,i,_,32768,c)}function N(n,i,_){return d(n,i,_,16384)}function X(n,i,_){return d(n,i,_)}function _e(n,i,_,c){let f=cr(n,La(i)?i:G_(i));yn(f,i);let w=0;return c||(w|=96),_||(w|=3072),w&&setEmitFlags(f,w),f}function Z(n,i,_,c){return n&&bs(i,32)?_e(n,d(i),_,c):N(i,_,c)}function ee(n,i,_,c){let f=je(n,i,0,_);return Ae(n,i,f,c)}function ce(n){return Ya(n.expression)&&n.expression.text===\"use strict\"}function Le(){return v6(Pi(dt(\"use strict\")))}function je(n,i,_=0,c){B.assert(i.length===0,\"Prologue directives should be at the first statement in the target statements array\");let f=!1,w=n.length;for(;_pe&&en.splice(f,0,...i.slice(pe,Re)),pe>F&&en.splice(c,0,...i.slice(F,pe)),F>w&&en.splice(_,0,...i.slice(w,F)),w>0)if(_===0)en.splice(0,0,...i.slice(0,w));else{let kn=new Map;for(let $n=0;$n<_;$n++){let Da=n[$n];kn.set(Da.expression.text,!0)}for(let $n=w-1;$n>=0;$n--){let Da=i[$n];kn.has(Da.expression.text)||en.unshift(Da)}}return mi(n)?yn(de(en,n.hasTrailingComma),n):n}function Ln(n,i){let _;return typeof i==\"number\"?_=vn(i):_=i,Ef(n)?_r(n,_,n.name,n.constraint,n.default):ds(n)?dr(n,_,n.dotDotDotToken,n.name,n.questionToken,n.type,n.initializer):Nf(n)?Ve(n,_,n.typeParameters,n.parameters,n.type):I1(n)?Vn(n,_,n.name,n.questionToken,n.type):Va(n)?L(n,_,n.name,n.questionToken??n.exclamationToken,n.type,n.initializer):O1(n)?fe(n,_,n.name,n.questionToken,n.typeParameters,n.parameters,n.type):ms(n)?Xe(n,_,n.asteriskToken,n.name,n.questionToken,n.typeParameters,n.parameters,n.type,n.body):Af(n)?Ir(n,_,n.parameters,n.body):gl(n)?Wn(n,_,n.name,n.parameters,n.type,n.body):hs(n)?$(n,_,n.name,n.parameters,n.body):Cf(n)?Ze(n,_,n.parameters,n.type):Mf(n)?Rs(n,_,n.asteriskToken,n.name,n.typeParameters,n.parameters,n.type,n.body):Jf(n)?Us(n,_,n.typeParameters,n.parameters,n.type,n.equalsGreaterThanToken,n.body):bl(n)?c_(n,_,n.name,n.typeParameters,n.heritageClauses,n.members):Xa(n)?io(n,_,n.declarationList):jf(n)?T_(n,_,n.asteriskToken,n.name,n.typeParameters,n.parameters,n.type,n.body):Wa(n)?ma(n,_,n.name,n.typeParameters,n.heritageClauses,n.members):vs(n)?Co(n,_,n.name,n.typeParameters,n.heritageClauses,n.members):Dl(n)?gr(n,_,n.name,n.typeParameters,n.type):Z1(n)?br(n,_,n.name,n.members):Ti(n)?Et(n,_,n.name,n.body):Rf(n)?Mo(n,_,n.isTypeOnly,n.name,n.moduleReference):Uf(n)?Lo(n,_,n.importClause,n.moduleSpecifier,n.attributes):Bf(n)?Ii(n,_,n.expression):qf(n)?Ho(n,_,n.isTypeOnly,n.exportClause,n.moduleSpecifier,n.attributes):B.assertNever(n)}function Fr(n,i){return ds(n)?dr(n,i,n.dotDotDotToken,n.name,n.questionToken,n.type,n.initializer):Va(n)?L(n,i,n.name,n.questionToken??n.exclamationToken,n.type,n.initializer):ms(n)?Xe(n,i,n.asteriskToken,n.name,n.questionToken,n.typeParameters,n.parameters,n.type,n.body):gl(n)?Wn(n,i,n.name,n.parameters,n.type,n.body):hs(n)?$(n,i,n.name,n.parameters,n.body):bl(n)?c_(n,i,n.name,n.typeParameters,n.heritageClauses,n.members):Wa(n)?ma(n,i,n.name,n.typeParameters,n.heritageClauses,n.members):B.assertNever(n)}function dp(n,i){switch(n.kind){case 177:return Wn(n,n.modifiers,i,n.parameters,n.type,n.body);case 178:return $(n,n.modifiers,i,n.parameters,n.body);case 174:return Xe(n,n.modifiers,n.asteriskToken,i,n.questionToken,n.typeParameters,n.parameters,n.type,n.body);case 173:return fe(n,n.modifiers,i,n.questionToken,n.typeParameters,n.parameters,n.type);case 172:return L(n,n.modifiers,i,n.questionToken??n.exclamationToken,n.type,n.initializer);case 171:return Vn(n,n.modifiers,i,n.questionToken,n.type);case 303:return qr(n,i,n.initializer)}}function De(n){return n?de(n):void 0}function et(n){return typeof n==\"string\"?Ge(n):n}function pr(n){return typeof n==\"string\"?dt(n):typeof n==\"number\"?V(n):typeof n==\"boolean\"?n?lt():ar():n}function Ca(n){return n&&o().parenthesizeExpressionForDisallowedComma(n)}function $c(n){return typeof n==\"number\"?ct(n):n}function It(n){return n&&e6(n)?yn(a(ao(),n),n):n}function xr(n){return typeof n==\"string\"||n&&!Lf(n)?da(n,void 0,void 0,void 0):n}function q(n,i){return n!==i&&(a(n,i),yn(n,i)),n}}function il(e){switch(e){case 344:return\"type\";case 342:return\"returns\";case 343:return\"this\";case 340:return\"enum\";case 330:return\"author\";case 332:return\"class\";case 333:return\"public\";case 334:return\"private\";case 335:return\"protected\";case 336:return\"readonly\";case 337:return\"override\";case 345:return\"template\";case 346:return\"typedef\";case 341:return\"param\";case 348:return\"prop\";case 338:return\"callback\";case 339:return\"overload\";case 328:return\"augments\";case 329:return\"implements\";case 351:return\"import\";default:return B.fail(`Unsupported kind: ${B.formatSyntaxKind(e)}`)}}var En,Hd={};function Pb(e,t){switch(En||(En=sf(99,!1,0)),e){case 15:En.setText(\"`\"+t+\"`\");break;case 16:En.setText(\"`\"+t+\"${\");break;case 17:En.setText(\"}\"+t+\"${\");break;case 18:En.setText(\"}\"+t+\"`\");break}let a=En.scan();if(a===20&&(a=En.reScanTemplateToken(!1)),En.isUnterminated())return En.setText(void 0),Hd;let o;switch(a){case 15:case 16:case 17:case 18:o=En.getTokenValue();break}return o===void 0||En.scan()!==1?(En.setText(void 0),Hd):(En.setText(void 0),o)}function jn(e){return e&&tt(e)?ja(e):z(e)}function ja(e){return z(e)&-67108865}function Nb(e,t){return t|e.transformFlags&134234112}function z(e){if(!e)return 0;let t=e.transformFlags&~Ib(e.kind);return hg(e)&&s1(e.name)?Nb(e.name,t):t}function ke(e){return e?e.transformFlags:0}function Xd(e){let t=0;for(let a of e)t|=z(a);e.transformFlags=t}function Ib(e){if(e>=182&&e<=205)return-2;switch(e){case 213:case 214:case 209:return-2147450880;case 267:return-1941676032;case 169:return-2147483648;case 219:return-2072174592;case 218:case 262:return-1937940480;case 261:return-2146893824;case 263:case 231:return-2147344384;case 176:return-1937948672;case 172:return-2013249536;case 174:case 177:case 178:return-2005057536;case 133:case 150:case 163:case 146:case 154:case 151:case 136:case 155:case 116:case 168:case 171:case 173:case 179:case 180:case 181:case 264:case 265:return-2;case 210:return-2147278848;case 299:return-2147418112;case 206:case 207:return-2147450880;case 216:case 238:case 234:case 355:case 217:case 108:return-2147483648;case 211:case 212:return-2147483648;default:return-2147483648}}var Z_=Ab();function es(e){return e.flags|=16,e}var Ob={createBaseSourceFileNode:e=>es(Z_.createBaseSourceFileNode(e)),createBaseIdentifierNode:e=>es(Z_.createBaseIdentifierNode(e)),createBasePrivateIdentifierNode:e=>es(Z_.createBasePrivateIdentifierNode(e)),createBaseTokenNode:e=>es(Z_.createBaseTokenNode(e)),createBaseNode:e=>es(Z_.createBaseNode(e))},y3=wf(4,Ob);function Mb(e,t){if(e.original!==t&&(e.original=t,t)){let a=t.emitNode;a&&(e.emitNode=Jb(a,e.emitNode))}return e}function Jb(e,t){let{flags:a,internalFlags:o,leadingComments:m,trailingComments:v,commentRange:A,sourceMapRange:P,tokenSourceMapRanges:l,constantValue:Q,helpers:h,startsOnNewLine:y,snippetElement:g,classThis:x,assignedName:I}=e;if(t||(t={}),a&&(t.flags=a),o&&(t.internalFlags=o&-9),m&&(t.leadingComments=Dn(m.slice(),t.leadingComments)),v&&(t.trailingComments=Dn(v.slice(),t.trailingComments)),A&&(t.commentRange=A),P&&(t.sourceMapRange=P),l&&(t.tokenSourceMapRanges=Lb(l,t.tokenSourceMapRanges)),Q!==void 0&&(t.constantValue=Q),h)for(let re of h)t.helpers=oy(t.helpers,re);return y!==void 0&&(t.startsOnNewLine=y),g!==void 0&&(t.snippetElement=g),x&&(t.classThis=x),I&&(t.assignedName=I),t}function Lb(e,t){t||(t=[]);for(let a in e)t[a]=e[a];return t}function ea(e){return e.kind===9}function D1(e){return e.kind===10}function Ya(e){return e.kind===11}function P1(e){return e.kind===15}function jb(e){return e.kind===28}function $d(e){return e.kind===54}function Qd(e){return e.kind===58}function tt(e){return e.kind===80}function gi(e){return e.kind===81}function Rb(e){return e.kind===95}function al(e){return e.kind===134}function Ap(e){return e.kind===108}function Ub(e){return e.kind===102}function N1(e){return e.kind===166}function kf(e){return e.kind===167}function Ef(e){return e.kind===168}function ds(e){return e.kind===169}function El(e){return e.kind===170}function I1(e){return e.kind===171}function Va(e){return e.kind===172}function O1(e){return e.kind===173}function ms(e){return e.kind===174}function Af(e){return e.kind===176}function gl(e){return e.kind===177}function hs(e){return e.kind===178}function M1(e){return e.kind===179}function J1(e){return e.kind===180}function Cf(e){return e.kind===181}function L1(e){return e.kind===182}function Df(e){return e.kind===183}function Pf(e){return e.kind===184}function Nf(e){return e.kind===185}function Bb(e){return e.kind===186}function j1(e){return e.kind===187}function qb(e){return e.kind===188}function zb(e){return e.kind===189}function R1(e){return e.kind===202}function Fb(e){return e.kind===190}function Vb(e){return e.kind===191}function U1(e){return e.kind===192}function B1(e){return e.kind===193}function Wb(e){return e.kind===194}function Gb(e){return e.kind===195}function q1(e){return e.kind===196}function Yb(e){return e.kind===197}function z1(e){return e.kind===198}function Hb(e){return e.kind===199}function F1(e){return e.kind===200}function Xb(e){return e.kind===201}function $b(e){return e.kind===205}function V1(e){return e.kind===208}function W1(e){return e.kind===209}function If(e){return e.kind===210}function Hr(e){return e.kind===211}function Ha(e){return e.kind===212}function Of(e){return e.kind===213}function G1(e){return e.kind===215}function Al(e){return e.kind===217}function Mf(e){return e.kind===218}function Jf(e){return e.kind===219}function Qb(e){return e.kind===222}function Y1(e){return e.kind===224}function Ki(e){return e.kind===226}function H1(e){return e.kind===230}function bl(e){return e.kind===231}function X1(e){return e.kind===232}function $1(e){return e.kind===233}function cl(e){return e.kind===235}function Kb(e){return e.kind===236}function Zb(e){return e.kind===356}function Xa(e){return e.kind===243}function Cl(e){return e.kind===244}function Q1(e){return e.kind===256}function Lf(e){return e.kind===260}function K1(e){return e.kind===261}function jf(e){return e.kind===262}function Wa(e){return e.kind===263}function vs(e){return e.kind===264}function Dl(e){return e.kind===265}function Z1(e){return e.kind===266}function Ti(e){return e.kind===267}function Rf(e){return e.kind===271}function Uf(e){return e.kind===272}function Bf(e){return e.kind===277}function qf(e){return e.kind===278}function eh(e){return e.kind===279}function e6(e){return e.kind===353}function zf(e){return e.kind===283}function zp(e){return e.kind===286}function t6(e){return e.kind===289}function th(e){return e.kind===295}function n6(e){return e.kind===297}function nh(e){return e.kind===303}function rh(e){return e.kind===307}function ih(e){return e.kind===309}function ah(e){return e.kind===314}function _h(e){return e.kind===317}function sh(e){return e.kind===320}function r6(e){return e.kind===322}function Pl(e){return e.kind===323}function i6(e){return e.kind===328}function a6(e){return e.kind===333}function _6(e){return e.kind===334}function s6(e){return e.kind===335}function o6(e){return e.kind===336}function c6(e){return e.kind===337}function l6(e){return e.kind===339}function u6(e){return e.kind===331}function Fp(e){return e.kind===341}function p6(e){return e.kind===342}function Ff(e){return e.kind===344}function oh(e){return e.kind===345}function f6(e){return e.kind===329}function d6(e){return e.kind===350}var Xi=new WeakMap;function ch(e,t){var a;let o=e.kind;return ff(o)?o===352?e._children:(a=Xi.get(t))==null?void 0:a.get(e):bt}function m6(e,t,a){e.kind===352&&B.fail(\"Should not need to re-set the children of a SyntaxList.\");let o=Xi.get(t);return o===void 0&&(o=new WeakMap,Xi.set(t,o)),o.set(e,a),a}function Kd(e,t){var a;e.kind===352&&B.fail(\"Did not expect to unset the children of a SyntaxList.\"),(a=Xi.get(t))==null||a.delete(e)}function h6(e,t){let a=Xi.get(e);a!==void 0&&(Xi.delete(e),Xi.set(t,a))}function Zd(e){return(za(e)&32768)!==0}function y6(e){return Ya(e.expression)&&e.expression.text===\"use strict\"}function g6(e){for(let t of e)if(ol(t)){if(y6(t))return t}else break}function b6(e){return Al(e)&&Zi(e)&&!!Pg(e)}function lh(e,t=31){switch(e.kind){case 217:return t&-2147483648&&b6(e)?!1:(t&1)!==0;case 216:case 234:case 238:return(t&2)!==0;case 233:return(t&16)!==0;case 235:return(t&4)!==0;case 355:return(t&8)!==0}return!1}function Vf(e,t=31){for(;lh(e,t);)e=e.expression;return e}function v6(e){return setStartsOnNewLine(e,!0)}function as(e){if(Gg(e))return e.name;if(Fg(e)){switch(e.kind){case 303:return as(e.initializer);case 304:return e.name;case 305:return as(e.expression)}return}return yl(e,!0)?as(e.left):H1(e)?as(e.expression):e}function T6(e){switch(e.kind){case 206:case 207:case 209:return e.elements;case 210:return e.properties}}function em(e){if(e){let t=e;for(;;){if(tt(t)||!t.body)return tt(t)?t:t.name;t=t.body}}}var tm;(e=>{function t(h,y,g,x,I,re,he){let ye=y>0?I[y-1]:void 0;return B.assertEqual(g[y],t),I[y]=h.onEnter(x[y],ye,he),g[y]=P(h,t),y}e.enter=t;function a(h,y,g,x,I,re,he){B.assertEqual(g[y],a),B.assertIsDefined(h.onLeft),g[y]=P(h,a);let ye=h.onLeft(x[y].left,I[y],x[y]);return ye?(Q(y,x,ye),l(y,g,x,I,ye)):y}e.left=a;function o(h,y,g,x,I,re,he){return B.assertEqual(g[y],o),B.assertIsDefined(h.onOperator),g[y]=P(h,o),h.onOperator(x[y].operatorToken,I[y],x[y]),y}e.operator=o;function m(h,y,g,x,I,re,he){B.assertEqual(g[y],m),B.assertIsDefined(h.onRight),g[y]=P(h,m);let ye=h.onRight(x[y].right,I[y],x[y]);return ye?(Q(y,x,ye),l(y,g,x,I,ye)):y}e.right=m;function v(h,y,g,x,I,re,he){B.assertEqual(g[y],v),g[y]=P(h,v);let ye=h.onExit(x[y],I[y]);if(y>0){if(y--,h.foldState){let de=g[y]===v?\"right\":\"left\";I[y]=h.foldState(I[y],ye,de)}}else re.value=ye;return y}e.exit=v;function A(h,y,g,x,I,re,he){return B.assertEqual(g[y],A),y}e.done=A;function P(h,y){switch(y){case t:if(h.onLeft)return a;case a:if(h.onOperator)return o;case o:if(h.onRight)return m;case m:return v;case v:return A;case A:return A;default:B.fail(\"Invalid state\")}}e.nextState=P;function l(h,y,g,x,I){return h++,y[h]=t,g[h]=I,x[h]=void 0,h}function Q(h,y,g){if(B.shouldAssert(2))for(;h>=0;)B.assert(y[h]!==g,\"Circular traversal detected.\"),h--}})(tm||(tm={}));function nm(e,t){return typeof e==\"object\"?Vp(!1,e.prefix,e.node,e.suffix,t):typeof e==\"string\"?e.length>0&&e.charCodeAt(0)===35?e.slice(1):e:\"\"}function x6(e,t){return typeof e==\"string\"?e:S6(e,B.checkDefined(t))}function S6(e,t){return _1(e)?t(e).slice(1):Ua(e)?t(e):gi(e)?e.escapedText.slice(1):Pn(e)}function Vp(e,t,a,o,m){return t=nm(t,m),o=nm(o,m),a=x6(a,m),`${e?\"#\":\"\"}${t}${a}${o}`}function uh(e){if(e.transformFlags&65536)return!0;if(e.transformFlags&128)for(let t of T6(e)){let a=as(t);if(a&&Wg(a)&&(a.transformFlags&65536||a.transformFlags&128&&uh(a)))return!0}return!1}function yn(e,t){return t?yi(e,t.pos,t.end):e}function Nl(e){let t=e.kind;return t===168||t===169||t===171||t===172||t===173||t===174||t===176||t===177||t===178||t===181||t===185||t===218||t===219||t===231||t===243||t===262||t===263||t===264||t===265||t===266||t===267||t===271||t===272||t===277||t===278}function Wf(e){let t=e.kind;return t===169||t===172||t===174||t===177||t===178||t===231||t===263}var rm,im,am,_m,sm,w6={createBaseSourceFileNode:e=>new(sm||(sm=At.getSourceFileConstructor()))(e,-1,-1),createBaseIdentifierNode:e=>new(am||(am=At.getIdentifierConstructor()))(e,-1,-1),createBasePrivateIdentifierNode:e=>new(_m||(_m=At.getPrivateIdentifierConstructor()))(e,-1,-1),createBaseTokenNode:e=>new(im||(im=At.getTokenConstructor()))(e,-1,-1),createBaseNode:e=>new(rm||(rm=At.getNodeConstructor()))(e,-1,-1)},g3=wf(1,w6);function k(e,t){return t&&e(t)}function ie(e,t,a){if(a){if(t)return t(a);for(let o of a){let m=e(o);if(m)return m}}}function k6(e,t){return e.charCodeAt(t+1)===42&&e.charCodeAt(t+2)===42&&e.charCodeAt(t+3)!==47}function E6(e){return Un(e.statements,A6)||C6(e)}function A6(e){return Nl(e)&&D6(e,95)||Rf(e)&&zf(e.moduleReference)||Uf(e)||Bf(e)||qf(e)?e:void 0}function C6(e){return e.flags&8388608?ph(e):void 0}function ph(e){return P6(e)?e:Xt(e,ph)}function D6(e,t){return Ht(e.modifiers,a=>a.kind===t)}function P6(e){return Kb(e)&&e.keywordToken===102&&e.name.escapedText===\"meta\"}var N6={166:function(t,a,o){return k(a,t.left)||k(a,t.right)},168:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.constraint)||k(a,t.default)||k(a,t.expression)},304:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.questionToken)||k(a,t.exclamationToken)||k(a,t.equalsToken)||k(a,t.objectAssignmentInitializer)},305:function(t,a,o){return k(a,t.expression)},169:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.dotDotDotToken)||k(a,t.name)||k(a,t.questionToken)||k(a,t.type)||k(a,t.initializer)},172:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.questionToken)||k(a,t.exclamationToken)||k(a,t.type)||k(a,t.initializer)},171:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.questionToken)||k(a,t.type)||k(a,t.initializer)},303:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.questionToken)||k(a,t.exclamationToken)||k(a,t.initializer)},260:function(t,a,o){return k(a,t.name)||k(a,t.exclamationToken)||k(a,t.type)||k(a,t.initializer)},208:function(t,a,o){return k(a,t.dotDotDotToken)||k(a,t.propertyName)||k(a,t.name)||k(a,t.initializer)},181:function(t,a,o){return ie(a,o,t.modifiers)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)},185:function(t,a,o){return ie(a,o,t.modifiers)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)},184:function(t,a,o){return ie(a,o,t.modifiers)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)},179:om,180:om,174:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.asteriskToken)||k(a,t.name)||k(a,t.questionToken)||k(a,t.exclamationToken)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.body)},173:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.questionToken)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)},176:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.body)},177:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.body)},178:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.body)},262:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.asteriskToken)||k(a,t.name)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.body)},218:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.asteriskToken)||k(a,t.name)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.body)},219:function(t,a,o){return ie(a,o,t.modifiers)||ie(a,o,t.typeParameters)||ie(a,o,t.parameters)||k(a,t.type)||k(a,t.equalsGreaterThanToken)||k(a,t.body)},175:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.body)},183:function(t,a,o){return k(a,t.typeName)||ie(a,o,t.typeArguments)},182:function(t,a,o){return k(a,t.assertsModifier)||k(a,t.parameterName)||k(a,t.type)},186:function(t,a,o){return k(a,t.exprName)||ie(a,o,t.typeArguments)},187:function(t,a,o){return ie(a,o,t.members)},188:function(t,a,o){return k(a,t.elementType)},189:function(t,a,o){return ie(a,o,t.elements)},192:cm,193:cm,194:function(t,a,o){return k(a,t.checkType)||k(a,t.extendsType)||k(a,t.trueType)||k(a,t.falseType)},195:function(t,a,o){return k(a,t.typeParameter)},205:function(t,a,o){return k(a,t.argument)||k(a,t.attributes)||k(a,t.qualifier)||ie(a,o,t.typeArguments)},302:function(t,a,o){return k(a,t.assertClause)},196:lm,198:lm,199:function(t,a,o){return k(a,t.objectType)||k(a,t.indexType)},200:function(t,a,o){return k(a,t.readonlyToken)||k(a,t.typeParameter)||k(a,t.nameType)||k(a,t.questionToken)||k(a,t.type)||ie(a,o,t.members)},201:function(t,a,o){return k(a,t.literal)},202:function(t,a,o){return k(a,t.dotDotDotToken)||k(a,t.name)||k(a,t.questionToken)||k(a,t.type)},206:um,207:um,209:function(t,a,o){return ie(a,o,t.elements)},210:function(t,a,o){return ie(a,o,t.properties)},211:function(t,a,o){return k(a,t.expression)||k(a,t.questionDotToken)||k(a,t.name)},212:function(t,a,o){return k(a,t.expression)||k(a,t.questionDotToken)||k(a,t.argumentExpression)},213:pm,214:pm,215:function(t,a,o){return k(a,t.tag)||k(a,t.questionDotToken)||ie(a,o,t.typeArguments)||k(a,t.template)},216:function(t,a,o){return k(a,t.type)||k(a,t.expression)},217:function(t,a,o){return k(a,t.expression)},220:function(t,a,o){return k(a,t.expression)},221:function(t,a,o){return k(a,t.expression)},222:function(t,a,o){return k(a,t.expression)},224:function(t,a,o){return k(a,t.operand)},229:function(t,a,o){return k(a,t.asteriskToken)||k(a,t.expression)},223:function(t,a,o){return k(a,t.expression)},225:function(t,a,o){return k(a,t.operand)},226:function(t,a,o){return k(a,t.left)||k(a,t.operatorToken)||k(a,t.right)},234:function(t,a,o){return k(a,t.expression)||k(a,t.type)},235:function(t,a,o){return k(a,t.expression)},238:function(t,a,o){return k(a,t.expression)||k(a,t.type)},236:function(t,a,o){return k(a,t.name)},227:function(t,a,o){return k(a,t.condition)||k(a,t.questionToken)||k(a,t.whenTrue)||k(a,t.colonToken)||k(a,t.whenFalse)},230:function(t,a,o){return k(a,t.expression)},241:fm,268:fm,307:function(t,a,o){return ie(a,o,t.statements)||k(a,t.endOfFileToken)},243:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.declarationList)},261:function(t,a,o){return ie(a,o,t.declarations)},244:function(t,a,o){return k(a,t.expression)},245:function(t,a,o){return k(a,t.expression)||k(a,t.thenStatement)||k(a,t.elseStatement)},246:function(t,a,o){return k(a,t.statement)||k(a,t.expression)},247:function(t,a,o){return k(a,t.expression)||k(a,t.statement)},248:function(t,a,o){return k(a,t.initializer)||k(a,t.condition)||k(a,t.incrementor)||k(a,t.statement)},249:function(t,a,o){return k(a,t.initializer)||k(a,t.expression)||k(a,t.statement)},250:function(t,a,o){return k(a,t.awaitModifier)||k(a,t.initializer)||k(a,t.expression)||k(a,t.statement)},251:dm,252:dm,253:function(t,a,o){return k(a,t.expression)},254:function(t,a,o){return k(a,t.expression)||k(a,t.statement)},255:function(t,a,o){return k(a,t.expression)||k(a,t.caseBlock)},269:function(t,a,o){return ie(a,o,t.clauses)},296:function(t,a,o){return k(a,t.expression)||ie(a,o,t.statements)},297:function(t,a,o){return ie(a,o,t.statements)},256:function(t,a,o){return k(a,t.label)||k(a,t.statement)},257:function(t,a,o){return k(a,t.expression)},258:function(t,a,o){return k(a,t.tryBlock)||k(a,t.catchClause)||k(a,t.finallyBlock)},299:function(t,a,o){return k(a,t.variableDeclaration)||k(a,t.block)},170:function(t,a,o){return k(a,t.expression)},263:mm,231:mm,264:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||ie(a,o,t.typeParameters)||ie(a,o,t.heritageClauses)||ie(a,o,t.members)},265:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||ie(a,o,t.typeParameters)||k(a,t.type)},266:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||ie(a,o,t.members)},306:function(t,a,o){return k(a,t.name)||k(a,t.initializer)},267:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.body)},271:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)||k(a,t.moduleReference)},272:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.importClause)||k(a,t.moduleSpecifier)||k(a,t.attributes)},273:function(t,a,o){return k(a,t.name)||k(a,t.namedBindings)},300:function(t,a,o){return ie(a,o,t.elements)},301:function(t,a,o){return k(a,t.name)||k(a,t.value)},270:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.name)},274:function(t,a,o){return k(a,t.name)},280:function(t,a,o){return k(a,t.name)},275:hm,279:hm,278:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.exportClause)||k(a,t.moduleSpecifier)||k(a,t.attributes)},276:ym,281:ym,277:function(t,a,o){return ie(a,o,t.modifiers)||k(a,t.expression)},228:function(t,a,o){return k(a,t.head)||ie(a,o,t.templateSpans)},239:function(t,a,o){return k(a,t.expression)||k(a,t.literal)},203:function(t,a,o){return k(a,t.head)||ie(a,o,t.templateSpans)},204:function(t,a,o){return k(a,t.type)||k(a,t.literal)},167:function(t,a,o){return k(a,t.expression)},298:function(t,a,o){return ie(a,o,t.types)},233:function(t,a,o){return k(a,t.expression)||ie(a,o,t.typeArguments)},283:function(t,a,o){return k(a,t.expression)},282:function(t,a,o){return ie(a,o,t.modifiers)},356:function(t,a,o){return ie(a,o,t.elements)},284:function(t,a,o){return k(a,t.openingElement)||ie(a,o,t.children)||k(a,t.closingElement)},288:function(t,a,o){return k(a,t.openingFragment)||ie(a,o,t.children)||k(a,t.closingFragment)},285:gm,286:gm,292:function(t,a,o){return ie(a,o,t.properties)},291:function(t,a,o){return k(a,t.name)||k(a,t.initializer)},293:function(t,a,o){return k(a,t.expression)},294:function(t,a,o){return k(a,t.dotDotDotToken)||k(a,t.expression)},287:function(t,a,o){return k(a,t.tagName)},295:function(t,a,o){return k(a,t.namespace)||k(a,t.name)},190:zi,191:zi,309:zi,315:zi,314:zi,316:zi,318:zi,317:function(t,a,o){return ie(a,o,t.parameters)||k(a,t.type)},320:function(t,a,o){return(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))||ie(a,o,t.tags)},347:function(t,a,o){return k(a,t.tagName)||k(a,t.name)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))},310:function(t,a,o){return k(a,t.name)},311:function(t,a,o){return k(a,t.left)||k(a,t.right)},341:bm,348:bm,330:function(t,a,o){return k(a,t.tagName)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))},329:function(t,a,o){return k(a,t.tagName)||k(a,t.class)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))},328:function(t,a,o){return k(a,t.tagName)||k(a,t.class)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))},345:function(t,a,o){return k(a,t.tagName)||k(a,t.constraint)||ie(a,o,t.typeParameters)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))},346:function(t,a,o){return k(a,t.tagName)||(t.typeExpression&&t.typeExpression.kind===309?k(a,t.typeExpression)||k(a,t.fullName)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment)):k(a,t.fullName)||k(a,t.typeExpression)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment)))},338:function(t,a,o){return k(a,t.tagName)||k(a,t.fullName)||k(a,t.typeExpression)||(typeof t.comment==\"string\"?void 0:ie(a,o,t.comment))},342:Fi,344:Fi,343:Fi,340:Fi,350:Fi,349:Fi,339:Fi,323:function(t,a,o){return Un(t.typeParameters,a)||Un(t.parameters,a)||k(a,t.type)},324:Cp,325:Cp,326:Cp,322:function(t,a,o){return Un(t.jsDocPropertyTags,a)},327:ui,332:ui,333:ui,334:ui,335:ui,336:ui,331:ui,337:ui,351:I6,355:O6};function om(e,t,a){return ie(t,a,e.typeParameters)||ie(t,a,e.parameters)||k(t,e.type)}function cm(e,t,a){return ie(t,a,e.types)}function lm(e,t,a){return k(t,e.type)}function um(e,t,a){return ie(t,a,e.elements)}function pm(e,t,a){return k(t,e.expression)||k(t,e.questionDotToken)||ie(t,a,e.typeArguments)||ie(t,a,e.arguments)}function fm(e,t,a){return ie(t,a,e.statements)}function dm(e,t,a){return k(t,e.label)}function mm(e,t,a){return ie(t,a,e.modifiers)||k(t,e.name)||ie(t,a,e.typeParameters)||ie(t,a,e.heritageClauses)||ie(t,a,e.members)}function hm(e,t,a){return ie(t,a,e.elements)}function ym(e,t,a){return k(t,e.propertyName)||k(t,e.name)}function gm(e,t,a){return k(t,e.tagName)||ie(t,a,e.typeArguments)||k(t,e.attributes)}function zi(e,t,a){return k(t,e.type)}function bm(e,t,a){return k(t,e.tagName)||(e.isNameFirst?k(t,e.name)||k(t,e.typeExpression):k(t,e.typeExpression)||k(t,e.name))||(typeof e.comment==\"string\"?void 0:ie(t,a,e.comment))}function Fi(e,t,a){return k(t,e.tagName)||k(t,e.typeExpression)||(typeof e.comment==\"string\"?void 0:ie(t,a,e.comment))}function Cp(e,t,a){return k(t,e.name)}function ui(e,t,a){return k(t,e.tagName)||(typeof e.comment==\"string\"?void 0:ie(t,a,e.comment))}function I6(e,t,a){return k(t,e.tagName)||k(t,e.importClause)||k(t,e.moduleSpecifier)||k(t,e.attributes)||(typeof e.comment==\"string\"?void 0:ie(t,a,e.comment))}function O6(e,t,a){return k(t,e.expression)}function Xt(e,t,a){if(e===void 0||e.kind<=165)return;let o=N6[e.kind];return o===void 0?void 0:o(e,t,a)}function vm(e,t,a){let o=Tm(e),m=[];for(;m.length=0;--P)o.push(v[P]),m.push(A)}else{let P=t(v,A);if(P){if(P===\"skip\")continue;return P}if(v.kind>=166)for(let l of Tm(v))o.push(l),m.push(v)}}}function Tm(e){let t=[];return Xt(e,a,a),t;function a(o){t.unshift(o)}}function fh(e){e.externalModuleIndicator=E6(e)}function dh(e,t,a,o=!1,m){var v,A;(v=_l)==null||v.push(_l.Phase.Parse,\"createSourceFile\",{path:e},!0),kd(\"beforeParse\");let P,{languageVersion:l,setExternalModuleIndicator:Q,impliedNodeFormat:h,jsDocParsingMode:y}=typeof a==\"object\"?a:{languageVersion:a};if(l===100)P=$i.parseSourceFile(e,t,l,void 0,o,6,Fa,y);else{let g=h===void 0?Q:x=>(x.impliedNodeFormat=h,(Q||fh)(x));P=$i.parseSourceFile(e,t,l,void 0,o,m,g,y)}return kd(\"afterParse\"),Dy(\"Parse\",\"beforeParse\",\"afterParse\"),(A=_l)==null||A.pop(),P}function mh(e){return e.externalModuleIndicator!==void 0}function M6(e,t,a,o=!1){let m=vl.updateSourceFile(e,t,a,o);return m.flags|=e.flags&12582912,m}var $i;(e=>{var t=sf(99,!0),a=40960,o,m,v,A,P;function l(s){return ar++,s}var Q={createBaseSourceFileNode:s=>l(new P(s,0,0)),createBaseIdentifierNode:s=>l(new v(s,0,0)),createBasePrivateIdentifierNode:s=>l(new A(s,0,0)),createBaseTokenNode:s=>l(new m(s,0,0)),createBaseNode:s=>l(new o(s,0,0))},h=wf(11,Q),{createNodeArray:y,createNumericLiteral:g,createStringLiteral:x,createLiteralLikeNode:I,createIdentifier:re,createPrivateIdentifier:he,createToken:ye,createArrayLiteralExpression:de,createObjectLiteralExpression:M,createPropertyAccessExpression:ae,createPropertyAccessChain:Oe,createElementAccessExpression:V,createElementAccessChain:oe,createCallExpression:W,createCallChain:dt,createNewExpression:nr,createParenthesizedExpression:gn,createBlock:rr,createVariableStatement:bn,createExpressionStatement:In,createIfStatement:Ge,createWhileStatement:ir,createForStatement:Pr,createForOfStatement:Ot,createVariableDeclaration:Bn,createVariableDeclarationList:On}=h,Mt,vt,Qe,qn,$t,ct,_t,Ut,Jt,lt,ar,mt,vn,yt,cn,nt,Bt=!0,rn=!1;function _r(s,p,d,b,S=!1,N,X,_e=0){var Z;if(N=db(s,N),N===6){let ce=dr(s,p,d,b,S);return convertToJson(ce,(Z=ce.statements[0])==null?void 0:Z.expression,ce.parseDiagnostics,!1,void 0),ce.referencedFiles=bt,ce.typeReferenceDirectives=bt,ce.libReferenceDirectives=bt,ce.amdDependencies=bt,ce.hasNoDefaultLib=!1,ce.pragmas=ty,ce}zn(s,p,d,b,N,_e);let ee=Nr(d,S,N,X||fh,_e);return Fn(),ee}e.parseSourceFile=_r;function fr(s,p){zn(\"\",s,p,void 0,1,0),U();let d=jr(!0),b=u()===1&&!_t.length;return Fn(),b?d:void 0}e.parseIsolatedEntityName=fr;function dr(s,p,d=2,b,S=!1){zn(s,p,d,b,6,0),vt=nt,U();let N=J(),X,_e;if(u()===1)X=Ct([],N,N),_e=Wt();else{let ce;for(;u()!==1;){let Ae;switch(u()){case 23:Ae=ac();break;case 112:case 97:case 106:Ae=Wt();break;case 41:G(()=>U()===9&&U()!==59)?Ae=Fo():Ae=I_();break;case 9:case 11:if(G(()=>U()!==59)){Ae=Hn();break}default:Ae=I_();break}ce&&Yr(ce)?ce.push(Ae):ce?ce=[ce,Ae]:(ce=Ae,u()!==1&&Ee(E.Unexpected_token))}let Le=Yr(ce)?D(de(ce),N):B.checkDefined(ce),je=In(Le);D(je,N),X=Ct([je],N),_e=Yn(1,E.Unexpected_token)}let Z=se(s,2,6,!1,X,_e,vt,Fa);S&&L(Z),Z.nodeCount=ar,Z.identifierCount=vn,Z.identifiers=mt,Z.parseDiagnostics=qi(_t,Z),Ut&&(Z.jsDocDiagnostics=qi(Ut,Z));let ee=Z;return Fn(),ee}e.parseJsonText=dr;function zn(s,p,d,b,S,N){switch(o=At.getNodeConstructor(),m=At.getTokenConstructor(),v=At.getIdentifierConstructor(),A=At.getPrivateIdentifierConstructor(),P=At.getSourceFileConstructor(),Mt=zy(s),Qe=p,qn=d,Jt=b,$t=S,ct=Wd(S),_t=[],yt=0,mt=new Map,vn=0,ar=0,vt=0,Bt=!0,$t){case 1:case 2:nt=524288;break;case 6:nt=134742016;break;default:nt=0;break}rn=!1,t.setText(Qe),t.setOnError(Zr),t.setScriptTarget(qn),t.setLanguageVariant(ct),t.setScriptKind($t),t.setJSDocParsingMode(N)}function Fn(){t.clearCommentDirectives(),t.setText(\"\"),t.setOnError(void 0),t.setScriptKind(0),t.setJSDocParsingMode(0),Qe=void 0,qn=void 0,Jt=void 0,$t=void 0,ct=void 0,vt=0,_t=void 0,Ut=void 0,yt=0,mt=void 0,cn=void 0,Bt=!0}function Nr(s,p,d,b,S){let N=j6(Mt);N&&(nt|=33554432),vt=nt,U();let X=xn(0,Kt);B.assert(u()===1);let _e=qe(),Z=Ce(Wt(),_e),ee=se(Mt,s,d,N,X,Z,vt,b);return B6(ee,Qe),q6(ee,ce),ee.commentDirectives=t.getCommentDirectives(),ee.nodeCount=ar,ee.identifierCount=vn,ee.identifiers=mt,ee.parseDiagnostics=qi(_t,ee),ee.jsDocParsingMode=S,Ut&&(ee.jsDocDiagnostics=qi(Ut,ee)),p&&L(ee),ee;function ce(Le,je,Ae){_t.push(Oa(Mt,Qe,Le,je,Ae))}}let Vn=!1;function Ce(s,p){if(!p)return s;B.assert(!s.jsDoc);let d=ay(l2(s,Qe),b=>Xc.parseJSDocComment(s,b.pos,b.end-b.pos));return d.length&&(s.jsDoc=d),Vn&&(Vn=!1,s.flags|=536870912),s}function mr(s){let p=Jt,d=vl.createSyntaxCursor(s);Jt={currentNode:ce};let b=[],S=_t;_t=[];let N=0,X=Z(s.statements,0);for(;X!==-1;){let Le=s.statements[N],je=s.statements[X];Dn(b,s.statements,N,X),N=ee(s.statements,X);let Ae=gp(S,mn=>mn.start>=Le.pos),Yt=Ae>=0?gp(S,mn=>mn.start>=je.pos,Ae):-1;Ae>=0&&Dn(_t,S,Ae,Yt>=0?Yt:void 0),un(()=>{let mn=nt;for(nt|=65536,t.resetTokenState(je.pos),U();u()!==1;){let Zt=t.getTokenFullStart(),ur=n_(0,Kt);if(b.push(ur),Zt===t.getTokenFullStart()&&U(),N>=0){let Ln=s.statements[N];if(ur.end===Ln.pos)break;ur.end>Ln.pos&&(N=ee(s.statements,N+1))}}nt=mn},2),X=N>=0?Z(s.statements,N):-1}if(N>=0){let Le=s.statements[N];Dn(b,s.statements,N);let je=gp(S,Ae=>Ae.start>=Le.pos);je>=0&&Dn(_t,S,je)}return Jt=p,h.updateSourceFile(s,yn(y(b),s.statements));function _e(Le){return!(Le.flags&65536)&&!!(Le.transformFlags&67108864)}function Z(Le,je){for(let Ae=je;Ae118}function ve(){return u()===80?!0:u()===127&&we()||u()===135&&Ye()?!1:u()>118}function j(s,p,d=!0){return u()===s?(d&&U(),!0):(p?Ee(p):Ee(E._0_expected,it(s)),!1)}let ht=Object.keys(nf).filter(s=>s.length>2);function xt(s){if(G1(s)){rt(Ar(Qe,s.template.pos),s.template.end,E.Module_declaration_names_may_only_use_or_quoted_strings);return}let p=tt(s)?Pn(s):void 0;if(!p||!og(p,qn)){Ee(E._0_expected,it(27));return}let d=Ar(Qe,s.pos);switch(p){case\"const\":case\"let\":case\"var\":rt(d,s.end,E.Variable_declaration_not_allowed_at_this_location);return;case\"declare\":return;case\"interface\":Lt(E.Interface_name_cannot_be_0,E.Interface_must_be_given_a_name,19);return;case\"is\":rt(d,t.getTokenStart(),E.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case\"module\":case\"namespace\":Lt(E.Namespace_name_cannot_be_0,E.Namespace_must_be_given_a_name,19);return;case\"type\":Lt(E.Type_alias_name_cannot_be_0,E.Type_alias_must_be_given_a_name,64);return}let b=ns(p,ht,gt)??pn(p);if(b){rt(d,s.end,E.Unknown_keyword_or_identifier_Did_you_mean_0,b);return}u()!==0&&rt(d,s.end,E.Unexpected_keyword_or_identifier)}function Lt(s,p,d){u()===d?Ee(p):Ee(s,t.getTokenValue())}function pn(s){for(let p of ht)if(s.length>p.length+2&&ul(s,p))return`${p} ${s.slice(p.length)}`}function Ul(s,p,d){if(u()===60&&!t.hasPrecedingLineBreak()){Ee(E.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(u()===21){Ee(E.Cannot_start_a_function_call_in_a_type_annotation),U();return}if(p&&!sr()){d?Ee(E._0_expected,it(27)):Ee(E.Expected_for_property_initializer);return}if(!ia()){if(d){Ee(E._0_expected,it(27));return}xt(s)}}function Es(s){return u()===s?(ze(),!0):(B.assert(xp(s)),Ee(E._0_expected,it(s)),!1)}function Or(s,p,d,b){if(u()===p){U();return}let S=Ee(E._0_expected,it(p));d&&S&&nl(S,Oa(Mt,Qe,b,1,E.The_parser_expected_to_find_a_1_to_match_the_0_token_here,it(s),it(p)))}function Je(s){return u()===s?(U(),!0):!1}function ft(s){if(u()===s)return Wt()}function Bl(s){if(u()===s)return zl()}function Yn(s,p,d){return ft(s)||Gt(s,!1,p||E._0_expected,d||it(s))}function ql(s){let p=Bl(s);return p||(B.assert(xp(s)),Gt(s,!1,E._0_expected,it(s)))}function Wt(){let s=J(),p=u();return U(),D(ye(p),s)}function zl(){let s=J(),p=u();return ze(),D(ye(p),s)}function sr(){return u()===27?!0:u()===20||u()===1||t.hasPrecedingLineBreak()}function ia(){return sr()?(u()===27&&U(),!0):!1}function Qt(){return ia()||j(27)}function Ct(s,p,d,b){let S=y(s,b);return yi(S,p,d??t.getTokenFullStart()),S}function D(s,p,d){return yi(s,p,d??t.getTokenFullStart()),nt&&(s.flags|=nt),rn&&(rn=!1,s.flags|=262144),s}function Gt(s,p,d,...b){p?Tn(t.getTokenFullStart(),0,d,...b):d&&Ee(d,...b);let S=J(),N=s===80?re(\"\",void 0):Ld(s)?h.createTemplateLiteralLikeNode(s,\"\",\"\",void 0):s===9?g(\"\",void 0):s===11?x(\"\",void 0):s===282?h.createMissingDeclaration():ye(s);return D(N,S)}function Mr(s){let p=mt.get(s);return p===void 0&&mt.set(s,p=s),p}function or(s,p,d){if(s){vn++;let _e=t.hasPrecedingJSDocLeadingAsterisks()?t.getTokenStart():J(),Z=u(),ee=Mr(t.getTokenValue()),ce=t.hasExtendedUnicodeEscape();return Ie(),D(re(ee,Z,ce),_e)}if(u()===81)return Ee(d||E.Private_identifiers_are_not_allowed_outside_class_bodies),or(!0);if(u()===0&&t.tryScan(()=>t.reScanInvalidIdentifier()===80))return or(!0);vn++;let b=u()===1,S=t.isReservedWord(),N=t.getTokenText(),X=S?E.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:E.Identifier_expected;return Gt(80,b,p||X,N)}function Ka(s){return or(Fe(),void 0,s)}function St(s,p){return or(ve(),s,p)}function jt(s){return or(wt(u()),s)}function ei(){return(t.hasUnicodeEscape()||t.hasExtendedUnicodeEscape())&&Ee(E.Unicode_escape_sequence_cannot_appear_here),or(wt(u()))}function yr(){return wt(u())||u()===11||u()===9||u()===10}function As(){return wt(u())||u()===11}function Fl(s){if(u()===11||u()===9||u()===10){let p=Hn();return p.text=Mr(p.text),p}return s&&u()===23?Vl():u()===81?aa():jt()}function Jr(){return Fl(!0)}function Vl(){let s=J();j(23);let p=ut(Et);return j(24),D(h.createComputedPropertyName(p),s)}function aa(){let s=J(),p=he(Mr(t.getTokenValue()));return U(),D(p,s)}function ti(s){return u()===s&&le(Cs)}function Za(){return U(),t.hasPrecedingLineBreak()?!1:cr()}function Cs(){switch(u()){case 87:return U()===94;case 95:return U(),u()===90?G(Ei):u()===156?G(Wl):ki();case 90:return Ei();case 126:return U(),cr();case 139:case 153:return U(),Gl();default:return Za()}}function ki(){return u()===60||u()!==42&&u()!==130&&u()!==19&&cr()}function Wl(){return U(),ki()}function Ds(){return Wr(u())&&le(Cs)}function cr(){return u()===23||u()===19||u()===42||u()===26||yr()}function Gl(){return u()===23||yr()}function Ei(){return U(),u()===86||u()===100||u()===120||u()===60||u()===128&&G(gc)||u()===134&&G(bc)}function _a(s,p){if(oa(s))return!0;switch(s){case 0:case 1:case 3:return!(u()===27&&p)&&vc();case 2:return u()===84||u()===90;case 4:return G(ao);case 5:return G(Vu)||u()===27&&!p;case 6:return u()===23||yr();case 12:switch(u()){case 23:case 42:case 26:case 25:return!0;default:return yr()}case 18:return yr();case 9:return u()===23||u()===26||yr();case 24:return As();case 7:return u()===19?G(Ps):p?ve()&&!e_():x_()&&!e_();case 8:return wa();case 10:return u()===28||u()===26||wa();case 19:return u()===103||u()===87||ve();case 15:switch(u()){case 28:case 25:return!0}case 11:return u()===26||br();case 16:return pa(!1);case 17:return pa(!0);case 20:case 21:return u()===28||ai();case 22:return Rc();case 23:return u()===161&&G(Ru)?!1:u()===11?!0:wt(u());case 13:return wt(u())||u()===19;case 14:return!0;case 25:return!0;case 26:return B.fail(\"ParsingContext.Count used as a context\");default:B.assertNever(s,\"Non-exhaustive case in 'isListElement'.\")}}function Ps(){if(B.assert(u()===19),U()===20){let s=U();return s===28||s===19||s===96||s===119}return!0}function Ai(){return U(),ve()}function Yl(){return U(),wt(u())}function Ns(){return U(),Fy(u())}function e_(){return u()===119||u()===96?G(Is):!1}function Is(){return U(),br()}function Ci(){return U(),ai()}function sa(s){if(u()===1)return!0;switch(s){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return u()===20;case 3:return u()===20||u()===84||u()===90;case 7:return u()===19||u()===96||u()===119;case 8:return t_();case 19:return u()===32||u()===21||u()===19||u()===96||u()===119;case 11:return u()===22||u()===27;case 15:case 21:case 10:return u()===24;case 17:case 16:case 18:return u()===22||u()===24;case 20:return u()!==28;case 22:return u()===19||u()===20;case 13:return u()===32||u()===44;case 14:return u()===30&&G(G_);default:return!1}}function t_(){return!!(sr()||Uo(u())||u()===39)}function Os(){B.assert(yt,\"Missing parsing context\");for(let s=0;s<26;s++)if(yt&1<=0)}function __(s){return s===6?E.An_enum_member_name_must_be_followed_by_a_or:void 0}function lr(){let s=Ct([],J());return s.isMissingList=!0,s}function zs(s){return!!s.isMissingList}function Lr(s,p,d,b){if(j(d)){let S=fn(s,p);return j(b),S}return lr()}function jr(s,p){let d=J(),b=s?jt(p):St(p);for(;Je(25)&&u()!==30;)b=D(h.createQualifiedName(b,ni(s,!1,!0)),d);return b}function Hl(s,p){return D(h.createQualifiedName(s,p),s.pos)}function ni(s,p,d){if(t.hasPrecedingLineBreak()&&wt(u())&&G(M_))return Gt(80,!0,E.Identifier_expected);if(u()===81){let b=aa();return p?b:Gt(80,!0,E.Identifier_expected)}return s?d?jt():ei():St()}function Xl(s){let p=J(),d=[],b;do b=Gs(s),d.push(b);while(b.literal.kind===17);return Ct(d,p)}function la(s){let p=J();return D(h.createTemplateExpression(Di(s),Xl(s)),p)}function Fs(){let s=J();return D(h.createTemplateLiteralType(Di(!1),$l()),s)}function $l(){let s=J(),p=[],d;do d=Vs(),p.push(d);while(d.literal.kind===17);return Ct(p,s)}function Vs(){let s=J();return D(h.createTemplateLiteralTypeSpan(ot(),Ws(!1)),s)}function Ws(s){return u()===20?(Pt(s),Ys()):Yn(18,E._0_expected,it(20))}function Gs(s){let p=J();return D(h.createTemplateSpan(ut(Et),Ws(s)),p)}function Hn(){return ri(u())}function Di(s){!s&&t.getTokenFlags()&26656&&Pt(!1);let p=ri(u());return B.assert(p.kind===16,\"Template head has wrong token kind\"),p}function Ys(){let s=ri(u());return B.assert(s.kind===17||s.kind===18,\"Template fragment has wrong token kind\"),s}function Ql(s){let p=s===15||s===18,d=t.getTokenText();return d.substring(1,d.length-(t.isUnterminated()?0:p?1:2))}function ri(s){let p=J(),d=Ld(s)?h.createTemplateLiteralLikeNode(s,t.getTokenValue(),Ql(s),t.getTokenFlags()&7176):s===9?g(t.getTokenValue(),t.getNumericLiteralFlags()):s===11?x(t.getTokenValue(),void 0,t.hasExtendedUnicodeEscape()):Jg(s)?I(s,t.getTokenValue()):B.fail();return t.hasExtendedUnicodeEscape()&&(d.hasExtendedUnicodeEscape=!0),t.isUnterminated()&&(d.isUnterminated=!0),U(),D(d,p)}function ii(){return jr(!0,E.Type_expected)}function Hs(){if(!t.hasPrecedingLineBreak()&&kt()===30)return Lr(20,ot,30,32)}function ua(){let s=J();return D(h.createTypeReferenceNode(ii(),Hs()),s)}function s_(s){switch(s.kind){case 183:return Hi(s.typeName);case 184:case 185:{let{parameters:p,type:d}=s;return zs(p)||s_(d)}case 196:return s_(s.type);default:return!1}}function Kl(s){return U(),D(h.createTypePredicateNode(void 0,s,ot()),s.pos)}function o_(){let s=J();return U(),D(h.createThisTypeNode(),s)}function Zl(){let s=J();return U(),D(h.createJSDocAllType(),s)}function Xs(){let s=J();return U(),D(h.createJSDocNonNullableType(b_(),!1),s)}function eu(){let s=J();return U(),u()===28||u()===20||u()===22||u()===32||u()===64||u()===52?D(h.createJSDocUnknownType(),s):D(h.createJSDocNullableType(ot(),!1),s)}function $s(){let s=J(),p=qe();if(le(Fc)){let d=Xn(36),b=Jn(59,!1);return Ce(D(h.createJSDocFunctionType(d,b),s),p)}return D(h.createTypeReferenceNode(jt(),void 0),s)}function c_(){let s=J(),p;return(u()===110||u()===105)&&(p=jt(),j(59)),D(h.createParameterDeclaration(void 0,void 0,p,void 0,l_(),void 0),s)}function l_(){t.setSkipJsDocLeadingAsterisks(!0);let s=J();if(Je(144)){let b=h.createJSDocNamepathType(void 0);e:for(;;)switch(u()){case 20:case 1:case 28:case 5:break e;default:ze()}return t.setSkipJsDocLeadingAsterisks(!1),D(b,s)}let p=Je(26),d=ma();return t.setSkipJsDocLeadingAsterisks(!1),p&&(d=D(h.createJSDocVariadicType(d),s)),u()===64?(U(),D(h.createJSDocOptionalType(d),s)):d}function Qs(){let s=J();j(114);let p=jr(!0),d=t.hasPrecedingLineBreak()?void 0:Aa();return D(h.createTypeQueryNode(p,d),s)}function Ks(){let s=J(),p=wn(!1,!0),d=St(),b,S;Je(96)&&(ai()||!br()?b=ot():S=Yo());let N=Je(64)?ot():void 0,X=h.createTypeParameterDeclaration(p,d,b,N);return X.expression=S,D(X,s)}function dn(){if(u()===30)return Lr(19,Ks,30,32)}function pa(s){return u()===26||wa()||Wr(u())||u()===60||ai(!s)}function Zs(s){let p=Li(E.Private_identifiers_cannot_be_used_as_parameters);return a2(p)===0&&!Ht(s)&&Wr(u())&&U(),p}function eo(){return Fe()||u()===23||u()===19}function u_(s){return p_(s)}function to(s){return p_(s,!1)}function p_(s,p=!0){let d=J(),b=qe(),S=s?R(()=>wn(!0)):$(()=>wn(!0));if(u()===110){let Z=h.createParameterDeclaration(S,void 0,or(!0),void 0,gr(),void 0),ee=Hp(S);return ee&&ln(ee,E.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters),Ce(D(Z,d),b)}let N=Bt;Bt=!1;let X=ft(26);if(!p&&!eo())return;let _e=Ce(D(h.createParameterDeclaration(S,X,Zs(S),ft(58),gr(),vr()),d),b);return Bt=N,_e}function Jn(s,p){if(no(s,p))return hr(ma)}function no(s,p){return s===39?(j(s),!0):Je(59)?!0:p&&u()===39?(Ee(E._0_expected,it(59)),U(),!0):!1}function f_(s,p){let d=we(),b=Ye();Xe(!!(s&1)),st(!!(s&2));let S=s&32?fn(17,c_):fn(16,()=>p?u_(b):to(b));return Xe(d),st(b),S}function Xn(s){if(!j(21))return lr();let p=f_(s,!0);return j(22),p}function fa(){Je(28)||Qt()}function ro(s){let p=J(),d=qe();s===180&&j(105);let b=dn(),S=Xn(4),N=Jn(59,!0);fa();let X=s===179?h.createCallSignature(b,S,N):h.createConstructSignature(b,S,N);return Ce(D(X,p),d)}function Rr(){return u()===23&&G(tu)}function tu(){if(U(),u()===26||u()===24)return!0;if(Wr(u())){if(U(),ve())return!0}else if(ve())U();else return!1;return u()===59||u()===28?!0:u()!==58?!1:(U(),u()===59||u()===28||u()===24)}function d_(s,p,d){let b=Lr(16,()=>u_(!1),23,24),S=gr();fa();let N=h.createIndexSignature(d,b,S);return Ce(D(N,s),p)}function io(s,p,d){let b=Jr(),S=ft(58),N;if(u()===21||u()===30){let X=dn(),_e=Xn(4),Z=Jn(59,!0);N=h.createMethodSignature(d,b,S,X,_e,Z)}else{let X=gr();N=h.createPropertySignature(d,b,S,X),u()===64&&(N.initializer=vr())}return fa(),Ce(D(N,s),p)}function ao(){if(u()===21||u()===30||u()===139||u()===153)return!0;let s=!1;for(;Wr(u());)s=!0,U();return u()===23?!0:(yr()&&(s=!0,U()),s?u()===21||u()===30||u()===58||u()===59||u()===28||sr():!1)}function Pi(){if(u()===21||u()===30)return ro(179);if(u()===105&&G(_o))return ro(180);let s=J(),p=qe(),d=wn(!1);return ti(139)?qr(s,p,d,177,4):ti(153)?qr(s,p,d,178,4):Rr()?d_(s,p,d):io(s,p,d)}function _o(){return U(),u()===21||u()===30}function so(){return U()===25}function oo(){switch(U()){case 21:case 30:case 25:return!0}return!1}function co(){let s=J();return D(h.createTypeLiteralNode(lo()),s)}function lo(){let s;return j(19)?(s=xn(4,Pi),j(20)):s=lr(),s}function uo(){return U(),u()===40||u()===41?U()===148:(u()===148&&U(),u()===23&&Ai()&&U()===103)}function nu(){let s=J(),p=jt();j(103);let d=ot();return D(h.createTypeParameterDeclaration(void 0,p,d,void 0),s)}function po(){let s=J();j(19);let p;(u()===148||u()===40||u()===41)&&(p=Wt(),p.kind!==148&&j(148)),j(23);let d=nu(),b=Je(130)?ot():void 0;j(24);let S;(u()===58||u()===40||u()===41)&&(S=Wt(),S.kind!==58&&j(58));let N=gr();Qt();let X=xn(4,Pi);return j(20),D(h.createMappedTypeNode(p,d,b,S,N,X),s)}function fo(){let s=J();if(Je(26))return D(h.createRestTypeNode(ot()),s);let p=ot();if(ah(p)&&p.pos===p.type.pos){let d=h.createOptionalTypeNode(p.type);return yn(d,p),d.flags=p.flags,d}return p}function m_(){return U()===59||u()===58&&U()===59}function ru(){return u()===26?wt(U())&&m_():wt(u())&&m_()}function mo(){if(G(ru)){let s=J(),p=qe(),d=ft(26),b=jt(),S=ft(58);j(59);let N=fo(),X=h.createNamedTupleMember(d,b,S,N);return Ce(D(X,s),p)}return fo()}function iu(){let s=J();return D(h.createTupleTypeNode(Lr(21,mo,23,24)),s)}function ho(){let s=J();j(21);let p=ot();return j(22),D(h.createParenthesizedType(p),s)}function au(){let s;if(u()===128){let p=J();U();let d=D(ye(128),p);s=Ct([d],p)}return s}function h_(){let s=J(),p=qe(),d=au(),b=Je(105);B.assert(!d||b,\"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.\");let S=dn(),N=Xn(4),X=Jn(39,!1),_e=b?h.createConstructorTypeNode(d,S,N,X):h.createFunctionTypeNode(S,N,X);return Ce(D(_e,s),p)}function yo(){let s=Wt();return u()===25?void 0:s}function y_(s){let p=J();s&&U();let d=u()===112||u()===97||u()===106?Wt():ri(u());return s&&(d=D(h.createPrefixUnaryExpression(41,d),p)),D(h.createLiteralTypeNode(d),p)}function _u(){return U(),u()===102}function g_(){vt|=4194304;let s=J(),p=Je(114);j(102),j(21);let d=ot(),b;if(Je(28)){let X=t.getTokenStart();j(19);let _e=u();if(_e===118||_e===132?U():Ee(E._0_expected,it(118)),j(59),b=Y_(_e,!0),!j(20)){let Z=Gi(_t);Z&&Z.code===E._0_expected.code&&nl(Z,Oa(Mt,Qe,X,1,E.The_parser_expected_to_find_a_1_to_match_the_0_token_here,\"{\",\"}\"))}}j(22);let S=Je(25)?ii():void 0,N=Hs();return D(h.createImportTypeNode(d,b,S,N,p),s)}function go(){return U(),u()===9||u()===10}function b_(){switch(u()){case 133:case 159:case 154:case 150:case 163:case 155:case 136:case 157:case 146:case 151:return le(yo)||ua();case 67:t.reScanAsteriskEqualsToken();case 42:return Zl();case 61:t.reScanQuestionToken();case 58:return eu();case 100:return $s();case 54:return Xs();case 15:case 11:case 9:case 10:case 112:case 97:case 106:return y_();case 41:return G(go)?y_(!0):ua();case 116:return Wt();case 110:{let s=o_();return u()===142&&!t.hasPrecedingLineBreak()?Kl(s):s}case 114:return G(_u)?g_():Qs();case 19:return G(uo)?po():co();case 23:return iu();case 21:return ho();case 102:return g_();case 131:return G(M_)?Co():ua();case 16:return Fs();default:return ua()}}function ai(s){switch(u()){case 133:case 159:case 154:case 150:case 163:case 136:case 148:case 155:case 158:case 116:case 157:case 106:case 110:case 114:case 146:case 19:case 23:case 30:case 52:case 51:case 105:case 11:case 9:case 10:case 112:case 97:case 151:case 42:case 58:case 54:case 26:case 140:case 102:case 131:case 15:case 16:return!0;case 100:return!s;case 41:return!s&&G(go);case 21:return!s&&G(bo);default:return ve()}}function bo(){return U(),u()===22||pa(!1)||ai()}function vo(){let s=J(),p=b_();for(;!t.hasPrecedingLineBreak();)switch(u()){case 54:U(),p=D(h.createJSDocNonNullableType(p,!0),s);break;case 58:if(G(Ci))return p;U(),p=D(h.createJSDocNullableType(p,!0),s);break;case 23:if(j(23),ai()){let d=ot();j(24),p=D(h.createIndexedAccessTypeNode(p,d),s)}else j(24),p=D(h.createArrayTypeNode(p),s);break;default:return p}return p}function To(s){let p=J();return j(s),D(h.createTypeOperatorNode(s,So()),p)}function su(){if(Je(96)){let s=Mn(ot);if(We()||u()!==58)return s}}function xo(){let s=J(),p=St(),d=le(su),b=h.createTypeParameterDeclaration(void 0,p,d);return D(b,s)}function ou(){let s=J();return j(140),D(h.createInferTypeNode(xo()),s)}function So(){let s=u();switch(s){case 143:case 158:case 148:return To(s);case 140:return ou()}return hr(vo)}function da(s){if(T_()){let p=h_(),d;return Pf(p)?d=s?E.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:E.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:d=s?E.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:E.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,ln(p,d),p}}function wo(s,p,d){let b=J(),S=s===52,N=Je(s),X=N&&da(S)||p();if(u()===s||N){let _e=[X];for(;Je(s);)_e.push(da(S)||p());X=D(d(Ct(_e,b)),b)}return X}function v_(){return wo(51,So,h.createIntersectionTypeNode)}function cu(){return wo(52,v_,h.createUnionTypeNode)}function ko(){return U(),u()===105}function T_(){return u()===30||u()===21&&G(Eo)?!0:u()===105||u()===128&&G(ko)}function lu(){if(Wr(u())&&wn(!1),ve()||u()===110)return U(),!0;if(u()===23||u()===19){let s=_t.length;return Li(),s===_t.length}return!1}function Eo(){return U(),!!(u()===22||u()===26||lu()&&(u()===59||u()===28||u()===58||u()===64||u()===22&&(U(),u()===39)))}function ma(){let s=J(),p=ve()&&le(Ao),d=ot();return p?D(h.createTypePredicateNode(void 0,p,d),s):d}function Ao(){let s=St();if(u()===142&&!t.hasPrecedingLineBreak())return U(),s}function Co(){let s=J(),p=Yn(131),d=u()===110?o_():St(),b=Je(142)?ot():void 0;return D(h.createTypePredicateNode(p,d,b),s)}function ot(){if(nt&81920)return Dt(81920,ot);if(T_())return h_();let s=J(),p=cu();if(!We()&&!t.hasPrecedingLineBreak()&&Je(96)){let d=Mn(ot);j(58);let b=hr(ot);j(59);let S=hr(ot);return D(h.createConditionalTypeNode(p,d,b,S),s)}return p}function gr(){return Je(59)?ot():void 0}function x_(){switch(u()){case 110:case 108:case 106:case 112:case 97:case 9:case 10:case 11:case 15:case 16:case 21:case 23:case 19:case 100:case 86:case 105:case 44:case 69:case 80:return!0;case 102:return G(oo);default:return ve()}}function br(){if(x_())return!0;switch(u()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 46:case 47:case 30:case 135:case 127:case 81:case 60:return!0;default:return Bo()?!0:ve()}}function Do(){return u()!==19&&u()!==100&&u()!==86&&u()!==60&&br()}function Et(){let s=Ze();s&&Ke(!1);let p=J(),d=zt(!0),b;for(;b=ft(28);)d=k_(d,b,zt(!0),p);return s&&Ke(!0),d}function vr(){return Je(64)?zt(!0):void 0}function zt(s){if(Po())return No();let p=pu(s)||Lo(s);if(p)return p;let d=J(),b=qe(),S=Ni(0);return S.kind===80&&u()===39?Io(d,S,s,b,void 0):qa(S)&&S1(Ve())?k_(S,Wt(),zt(s),d):fu(S,d,s)}function Po(){return u()===127?we()?!0:G(J_):!1}function uu(){return U(),!t.hasPrecedingLineBreak()&&ve()}function No(){let s=J();return U(),!t.hasPrecedingLineBreak()&&(u()===42||br())?D(h.createYieldExpression(ft(42),zt(!0)),s):D(h.createYieldExpression(void 0,void 0),s)}function Io(s,p,d,b,S){B.assert(u()===39,\"parseSimpleArrowFunctionExpression should only have been called if we had a =>\");let N=h.createParameterDeclaration(void 0,void 0,p,void 0,void 0,void 0);D(N,p.pos);let X=Ct([N],N.pos,N.end),_e=Yn(39),Z=S_(!!S,d),ee=h.createArrowFunction(S,void 0,X,void 0,_e,Z);return Ce(D(ee,s),b)}function pu(s){let p=Oo();if(p!==0)return p===1?Ro(!0,!0):le(()=>Jo(s))}function Oo(){return u()===21||u()===30||u()===134?G(Mo):u()===39?1:0}function Mo(){if(u()===134&&(U(),t.hasPrecedingLineBreak()||u()!==21&&u()!==30))return 0;let s=u(),p=U();if(s===21){if(p===22)switch(U()){case 39:case 59:case 19:return 1;default:return 0}if(p===23||p===19)return 2;if(p===26)return 1;if(Wr(p)&&p!==134&&G(Ai))return U()===130?0:1;if(!ve()&&p!==110)return 0;switch(U()){case 59:return 1;case 58:return U(),u()===59||u()===28||u()===64||u()===22?1:0;case 28:case 64:case 22:return 2}return 0}else return B.assert(s===30),!ve()&&u()!==87?0:ct===1?G(()=>{Je(87);let b=U();if(b===96)switch(U()){case 64:case 32:case 44:return!1;default:return!0}else if(b===28||b===64)return!0;return!1})?1:0:2}function Jo(s){let p=t.getTokenStart();if(cn!=null&&cn.has(p))return;let d=Ro(!1,s);return d||(cn||(cn=new Set)).add(p),d}function Lo(s){if(u()===134&&G(jo)===1){let p=J(),d=qe(),b=Jc(),S=Ni(0);return Io(p,S,s,d,b)}}function jo(){if(u()===134){if(U(),t.hasPrecedingLineBreak()||u()===39)return 0;let s=Ni(0);if(!t.hasPrecedingLineBreak()&&s.kind===80&&u()===39)return 1}return 0}function Ro(s,p){let d=J(),b=qe(),S=Jc(),N=Ht(S,al)?2:0,X=dn(),_e;if(j(21)){if(s)_e=f_(N,s);else{let Zt=f_(N,s);if(!Zt)return;_e=Zt}if(!j(22)&&!s)return}else{if(!s)return;_e=lr()}let Z=u()===59,ee=Jn(59,!1);if(ee&&!s&&s_(ee))return;let ce=ee;for(;(ce==null?void 0:ce.kind)===196;)ce=ce.type;let Le=ce&&_h(ce);if(!s&&u()!==39&&(Le||u()!==19))return;let je=u(),Ae=Yn(39),Yt=je===39||je===19?S_(Ht(S,al),p):St();if(!p&&Z&&u()!==59)return;let mn=h.createArrowFunction(S,X,_e,ee,Ae,Yt);return Ce(D(mn,d),b)}function S_(s,p){if(u()===19)return va(s?2:0);if(u()!==27&&u()!==100&&u()!==86&&vc()&&!Do())return va(16|(s?2:0));let d=Bt;Bt=!1;let b=s?R(()=>zt(p)):$(()=>zt(p));return Bt=d,b}function fu(s,p,d){let b=ft(58);if(!b)return s;let S;return D(h.createConditionalExpression(s,b,Dt(a,()=>zt(!1)),S=Yn(59),Rp(S)?zt(d):Gt(80,!1,E._0_expected,it(59))),p)}function Ni(s){let p=J(),d=Yo();return w_(s,d,p)}function Uo(s){return s===103||s===165}function w_(s,p,d){for(;;){Ve();let b=Sp(u());if(!(u()===43?b>=s:b>s)||u()===103&&be())break;if(u()===130||u()===152){if(t.hasPrecedingLineBreak())break;{let N=u();U(),p=N===152?qo(p,ot()):zo(p,ot())}}else p=k_(p,Wt(),Ni(b),d)}return p}function Bo(){return be()&&u()===103?!1:Sp(u())>0}function qo(s,p){return D(h.createSatisfiesExpression(s,p),s.pos)}function k_(s,p,d,b){return D(h.createBinaryExpression(s,p,d),b)}function zo(s,p){return D(h.createAsExpression(s,p),s.pos)}function Fo(){let s=J();return D(h.createPrefixUnaryExpression(u(),Me(Tr)),s)}function Vo(){let s=J();return D(h.createDeleteExpression(Me(Tr)),s)}function du(){let s=J();return D(h.createTypeOfExpression(Me(Tr)),s)}function Wo(){let s=J();return D(h.createVoidExpression(Me(Tr)),s)}function mu(){return u()===135?Ye()?!0:G(J_):!1}function Go(){let s=J();return D(h.createAwaitExpression(Me(Tr)),s)}function Yo(){if(hu()){let d=J(),b=ha();return u()===43?w_(Sp(u()),b,d):b}let s=u(),p=Tr();if(u()===43){let d=Ar(Qe,p.pos),{end:b}=p;p.kind===216?rt(d,b,E.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):(B.assert(xp(s)),rt(d,b,E.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,it(s)))}return p}function Tr(){switch(u()){case 40:case 41:case 55:case 54:return Fo();case 91:return Vo();case 114:return du();case 116:return Wo();case 30:return ct===1?Oi(!0,void 0,void 0,!0):Ko();case 135:if(mu())return Go();default:return ha()}}function hu(){switch(u()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 135:return!1;case 30:if(ct!==1)return!1;default:return!0}}function ha(){if(u()===46||u()===47){let p=J();return D(h.createPrefixUnaryExpression(u(),Me(Ii)),p)}else if(ct===1&&u()===30&&G(Ns))return Oi(!0);let s=Ii();if(B.assert(qa(s)),(u()===46||u()===47)&&!t.hasPrecedingLineBreak()){let p=u();return U(),D(h.createPostfixUnaryExpression(s,p),s.pos)}return s}function Ii(){let s=J(),p;return u()===102?G(_o)?(vt|=4194304,p=Wt()):G(so)?(U(),U(),p=D(h.createMetaProperty(102,jt()),s),vt|=8388608):p=ya():p=u()===108?Ho():ya(),P_(s,p)}function ya(){let s=J(),p=N_();return _n(s,p,!0)}function Ho(){let s=J(),p=Wt();if(u()===30){let d=J(),b=le(ba);b!==void 0&&(rt(d,J(),E.super_may_not_use_type_arguments),Sn()||(p=h.createExpressionWithTypeArguments(p,b)))}return u()===21||u()===25||u()===23?p:(Yn(25,E.super_must_be_followed_by_an_argument_list_or_member_access),D(ae(p,ni(!0,!0,!0)),s))}function Oi(s,p,d,b=!1){let S=J(),N=bu(s),X;if(N.kind===286){let _e=ga(N),Z,ee=_e[_e.length-1];if((ee==null?void 0:ee.kind)===284&&!pi(ee.openingElement.tagName,ee.closingElement.tagName)&&pi(N.tagName,ee.closingElement.tagName)){let ce=ee.children.end,Le=D(h.createJsxElement(ee.openingElement,ee.children,D(h.createJsxClosingElement(D(re(\"\"),ce,ce)),ce,ce)),ee.openingElement.pos,ce);_e=Ct([..._e.slice(0,_e.length-1),Le],_e.pos,ce),Z=ee.closingElement}else Z=Qo(N,s),pi(N.tagName,Z.tagName)||(d&&zp(d)&&pi(Z.tagName,d.tagName)?ln(N.tagName,E.JSX_element_0_has_no_corresponding_closing_tag,is(Qe,N.tagName)):ln(Z.tagName,E.Expected_corresponding_JSX_closing_tag_for_0,is(Qe,N.tagName)));X=D(h.createJsxElement(N,_e,Z),S)}else N.kind===289?X=D(h.createJsxFragment(N,ga(N),Su(s)),S):(B.assert(N.kind===285),X=N);if(!b&&s&&u()===30){let _e=typeof p>\"u\"?X.pos:p,Z=le(()=>Oi(!0,_e));if(Z){let ee=Gt(28,!1);return Yd(ee,Z.pos,0),rt(Ar(Qe,_e),Z.end,E.JSX_expressions_must_have_one_parent_element),D(h.createBinaryExpression(X,ee,Z),S)}}return X}function E_(){let s=J(),p=h.createJsxText(t.getTokenValue(),lt===13);return lt=t.scanJsxToken(),D(p,s)}function yu(s,p){switch(p){case 1:if(t6(s))ln(s,E.JSX_fragment_has_no_corresponding_closing_tag);else{let d=s.tagName,b=Math.min(Ar(Qe,d.pos),d.end);rt(b,d.end,E.JSX_element_0_has_no_corresponding_closing_tag,is(Qe,s.tagName))}return;case 31:case 7:return;case 12:case 13:return E_();case 19:return Xo(!1);case 30:return Oi(!1,void 0,s);default:return B.assertNever(p)}}function ga(s){let p=[],d=J(),b=yt;for(yt|=16384;;){let S=yu(s,lt=t.reScanJsxToken());if(!S||(p.push(S),zp(s)&&(S==null?void 0:S.kind)===284&&!pi(S.openingElement.tagName,S.closingElement.tagName)&&pi(s.tagName,S.closingElement.tagName)))break}return yt=b,Ct(p,d)}function gu(){let s=J();return D(h.createJsxAttributes(xn(13,$o)),s)}function bu(s){let p=J();if(j(30),u()===32)return Gn(),D(h.createJsxOpeningFragment(),p);let d=A_(),b=nt&524288?void 0:Aa(),S=gu(),N;return u()===32?(Gn(),N=h.createJsxOpeningElement(d,b,S)):(j(44),j(32,void 0,!1)&&(s?U():Gn()),N=h.createJsxSelfClosingElement(d,b,S)),D(N,p)}function A_(){let s=J(),p=vu();if(th(p))return p;let d=p;for(;Je(25);)d=D(ae(d,ni(!0,!1,!1)),s);return d}function vu(){let s=J();qt();let p=u()===110,d=ei();return Je(59)?(qt(),D(h.createJsxNamespacedName(d,ei()),s)):p?D(h.createToken(110),s):d}function Xo(s){let p=J();if(!j(19))return;let d,b;return u()!==20&&(s||(d=ft(26)),b=Et()),s?j(20):j(20,void 0,!1)&&Gn(),D(h.createJsxExpression(d,b),p)}function $o(){if(u()===19)return xu();let s=J();return D(h.createJsxAttribute(Tu(),C_()),s)}function C_(){if(u()===64){if(wi()===11)return Hn();if(u()===19)return Xo(!0);if(u()===30)return Oi(!0);Ee(E.or_JSX_element_expected)}}function Tu(){let s=J();qt();let p=ei();return Je(59)?(qt(),D(h.createJsxNamespacedName(p,ei()),s)):p}function xu(){let s=J();j(19),j(26);let p=Et();return j(20),D(h.createJsxSpreadAttribute(p),s)}function Qo(s,p){let d=J();j(31);let b=A_();return j(32,void 0,!1)&&(p||!pi(s.tagName,b)?U():Gn()),D(h.createJsxClosingElement(b),d)}function Su(s){let p=J();return j(31),j(32,E.Expected_corresponding_closing_tag_for_JSX_fragment,!1)&&(s?U():Gn()),D(h.createJsxJsxClosingFragment(),p)}function Ko(){B.assert(ct!==1,\"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.\");let s=J();j(30);let p=ot();j(32);let d=Tr();return D(h.createTypeAssertion(p,d),s)}function wu(){return U(),wt(u())||u()===23||Sn()}function Zo(){return u()===29&&G(wu)}function D_(s){if(s.flags&64)return!0;if(cl(s)){let p=s.expression;for(;cl(p)&&!(p.flags&64);)p=p.expression;if(p.flags&64){for(;cl(s);)s.flags|=64,s=s.expression;return!0}}return!1}function ec(s,p,d){let b=ni(!0,!0,!0),S=d||D_(p),N=S?Oe(p,d,b):ae(p,b);if(S&&gi(N.name)&&ln(N.name,E.An_optional_chain_cannot_contain_private_identifiers),$1(p)&&p.typeArguments){let X=p.typeArguments.pos-1,_e=Ar(Qe,p.typeArguments.end)+1;rt(X,_e,E.An_instantiation_expression_cannot_be_followed_by_a_property_access)}return D(N,s)}function ku(s,p,d){let b;if(u()===24)b=Gt(80,!0,E.An_element_access_expression_should_take_an_argument);else{let N=ut(Et);kl(N)&&(N.text=Mr(N.text)),b=N}j(24);let S=d||D_(p)?oe(p,d,b):V(p,b);return D(S,s)}function _n(s,p,d){for(;;){let b,S=!1;if(d&&Zo()?(b=Yn(29),S=wt(u())):S=Je(25),S){p=ec(s,p,b);continue}if((b||!Ze())&&Je(23)){p=ku(s,p,b);continue}if(Sn()){p=!b&&p.kind===233?Ur(s,p.expression,b,p.typeArguments):Ur(s,p,b,void 0);continue}if(!b){if(u()===54&&!t.hasPrecedingLineBreak()){U(),p=D(h.createNonNullExpression(p),s);continue}let N=le(ba);if(N){p=D(h.createExpressionWithTypeArguments(p,N),s);continue}}return p}}function Sn(){return u()===15||u()===16}function Ur(s,p,d,b){let S=h.createTaggedTemplateExpression(p,b,u()===15?(Pt(!0),Hn()):la(!0));return(d||p.flags&64)&&(S.flags|=64),S.questionDotToken=d,D(S,s)}function P_(s,p){for(;;){p=_n(s,p,!0);let d,b=ft(29);if(b&&(d=le(ba),Sn())){p=Ur(s,p,b,d);continue}if(d||u()===21){!b&&p.kind===233&&(d=p.typeArguments,p=p.expression);let S=tc(),N=b||D_(p)?dt(p,b,d,S):W(p,d,S);p=D(N,s);continue}if(b){let S=Gt(80,!1,E.Identifier_expected);p=D(Oe(p,b,S),s)}break}return p}function tc(){j(21);let s=fn(11,ic);return j(22),s}function ba(){if(nt&524288||kt()!==30)return;U();let s=fn(20,ot);if(Ve()===32)return U(),s&&Eu()?s:void 0}function Eu(){switch(u()){case 21:case 15:case 16:return!0;case 30:case 32:case 40:case 41:return!1}return t.hasPrecedingLineBreak()||Bo()||!br()}function N_(){switch(u()){case 15:t.getTokenFlags()&26656&&Pt(!1);case 9:case 10:case 11:return Hn();case 110:case 108:case 106:case 112:case 97:return Wt();case 21:return Au();case 23:return ac();case 19:return I_();case 134:if(!G(bc))break;return O_();case 60:return Lc();case 86:return Hu();case 100:return O_();case 105:return sc();case 44:case 69:if($e()===14)return Hn();break;case 16:return la(!1);case 81:return aa()}return St(E.Expression_expected)}function Au(){let s=J(),p=qe();j(21);let d=ut(Et);return j(22),Ce(D(gn(d),s),p)}function nc(){let s=J();j(26);let p=zt(!0);return D(h.createSpreadElement(p),s)}function rc(){return u()===26?nc():u()===28?D(h.createOmittedExpression(),J()):zt(!0)}function ic(){return Dt(a,rc)}function ac(){let s=J(),p=t.getTokenStart(),d=j(23),b=t.hasPrecedingLineBreak(),S=fn(15,rc);return Or(23,24,d,p),D(de(S,b),s)}function _c(){let s=J(),p=qe();if(ft(26)){let ce=zt(!0);return Ce(D(h.createSpreadAssignment(ce),s),p)}let d=wn(!0);if(ti(139))return qr(s,p,d,177,0);if(ti(153))return qr(s,p,d,178,0);let b=ft(42),S=ve(),N=Jr(),X=ft(58),_e=ft(54);if(b||u()===21||u()===30)return q_(s,p,d,b,N,X,_e);let Z;if(S&&u()!==59){let ce=ft(64),Le=ce?ut(()=>zt(!0)):void 0;Z=h.createShorthandPropertyAssignment(N,Le),Z.equalsToken=ce}else{j(59);let ce=ut(()=>zt(!0));Z=h.createPropertyAssignment(N,ce)}return Z.modifiers=d,Z.questionToken=X,Z.exclamationToken=_e,Ce(D(Z,s),p)}function I_(){let s=J(),p=t.getTokenStart(),d=j(19),b=t.hasPrecedingLineBreak(),S=fn(12,_c,!0);return Or(19,20,d,p),D(M(S,b),s)}function O_(){let s=Ze();Ke(!1);let p=J(),d=qe(),b=wn(!1);j(100);let S=ft(42),N=S?1:0,X=Ht(b,al)?2:0,_e=N&&X?K(Mi):N?Wn(Mi):X?R(Mi):Mi(),Z=dn(),ee=Xn(N|X),ce=Jn(59,!1),Le=va(N|X);Ke(s);let je=h.createFunctionExpression(b,S,_e,Z,ee,ce,Le);return Ce(D(je,p),d)}function Mi(){return Fe()?Ka():void 0}function sc(){let s=J();if(j(105),Je(25)){let N=jt();return D(h.createMetaProperty(105,N),s)}let p=J(),d=_n(p,N_(),!1),b;d.kind===233&&(b=d.typeArguments,d=d.expression),u()===29&&Ee(E.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0,is(Qe,d));let S=u()===21?tc():void 0;return D(nr(d,b,S),s)}function Br(s,p){let d=J(),b=qe(),S=t.getTokenStart(),N=j(19,p);if(N||s){let X=t.hasPrecedingLineBreak(),_e=xn(1,Kt);Or(19,20,N,S);let Z=Ce(D(rr(_e,X),d),b);return u()===64&&(Ee(E.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses),U()),Z}else{let X=lr();return Ce(D(rr(X,void 0),d),b)}}function va(s,p){let d=we();Xe(!!(s&1));let b=Ye();st(!!(s&2));let S=Bt;Bt=!1;let N=Ze();N&&Ke(!1);let X=Br(!!(s&16),p);return N&&Ke(!0),Bt=S,Xe(d),st(b),X}function oc(){let s=J(),p=qe();return j(27),Ce(D(h.createEmptyStatement(),s),p)}function Cu(){let s=J(),p=qe();j(101);let d=t.getTokenStart(),b=j(21),S=ut(Et);Or(21,22,b,d);let N=Kt(),X=Je(93)?Kt():void 0;return Ce(D(Ge(S,N,X),s),p)}function cc(){let s=J(),p=qe();j(92);let d=Kt();j(117);let b=t.getTokenStart(),S=j(21),N=ut(Et);return Or(21,22,S,b),Je(27),Ce(D(h.createDoStatement(d,N),s),p)}function Du(){let s=J(),p=qe();j(117);let d=t.getTokenStart(),b=j(21),S=ut(Et);Or(21,22,b,d);let N=Kt();return Ce(D(ir(S,N),s),p)}function lc(){let s=J(),p=qe();j(99);let d=ft(135);j(21);let b;u()!==27&&(u()===115||u()===121||u()===87||u()===160&&G(xc)||u()===135&&G(Sc)?b=B_(!0):b=Ir(Et));let S;if(d?j(165):Je(165)){let N=ut(()=>zt(!0));j(22),S=Ot(d,b,N,Kt())}else if(Je(103)){let N=ut(Et);j(22),S=h.createForInStatement(b,N,Kt())}else{j(27);let N=u()!==27&&u()!==22?ut(Et):void 0;j(27);let X=u()!==22?ut(Et):void 0;j(22),S=Pr(b,N,X,Kt())}return Ce(D(S,s),p)}function uc(s){let p=J(),d=qe();j(s===252?83:88);let b=sr()?void 0:St();Qt();let S=s===252?h.createBreakStatement(b):h.createContinueStatement(b);return Ce(D(S,p),d)}function pc(){let s=J(),p=qe();j(107);let d=sr()?void 0:ut(Et);return Qt(),Ce(D(h.createReturnStatement(d),s),p)}function Pu(){let s=J(),p=qe();j(118);let d=t.getTokenStart(),b=j(21),S=ut(Et);Or(21,22,b,d);let N=Tt(67108864,Kt);return Ce(D(h.createWithStatement(S,N),s),p)}function fc(){let s=J(),p=qe();j(84);let d=ut(Et);j(59);let b=xn(3,Kt);return Ce(D(h.createCaseClause(d,b),s),p)}function Nu(){let s=J();j(90),j(59);let p=xn(3,Kt);return D(h.createDefaultClause(p),s)}function Iu(){return u()===84?fc():Nu()}function dc(){let s=J();j(19);let p=xn(2,Iu);return j(20),D(h.createCaseBlock(p),s)}function Ou(){let s=J(),p=qe();j(109),j(21);let d=ut(Et);j(22);let b=dc();return Ce(D(h.createSwitchStatement(d,b),s),p)}function mc(){let s=J(),p=qe();j(111);let d=t.hasPrecedingLineBreak()?void 0:ut(Et);return d===void 0&&(vn++,d=D(re(\"\"),J())),ia()||xt(d),Ce(D(h.createThrowStatement(d),s),p)}function Mu(){let s=J(),p=qe();j(113);let d=Br(!1),b=u()===85?hc():void 0,S;return(!b||u()===98)&&(j(98,E.catch_or_finally_expected),S=Br(!1)),Ce(D(h.createTryStatement(d,b,S),s),p)}function hc(){let s=J();j(85);let p;Je(21)?(p=U_(),j(22)):p=void 0;let d=Br(!1);return D(h.createCatchClause(p,d),s)}function Ju(){let s=J(),p=qe();return j(89),Qt(),Ce(D(h.createDebuggerStatement(),s),p)}function yc(){let s=J(),p=qe(),d,b=u()===21,S=ut(Et);return tt(S)&&Je(59)?d=h.createLabeledStatement(S,Kt()):(ia()||xt(S),d=In(S),b&&(p=!1)),Ce(D(d,s),p)}function M_(){return U(),wt(u())&&!t.hasPrecedingLineBreak()}function gc(){return U(),u()===86&&!t.hasPrecedingLineBreak()}function bc(){return U(),u()===100&&!t.hasPrecedingLineBreak()}function J_(){return U(),(wt(u())||u()===9||u()===10||u()===11)&&!t.hasPrecedingLineBreak()}function Lu(){for(;;)switch(u()){case 115:case 121:case 87:case 100:case 86:case 94:return!0;case 160:return j_();case 135:return Ta();case 120:case 156:return uu();case 144:case 145:return Ec();case 128:case 129:case 134:case 138:case 123:case 124:case 125:case 148:let s=u();if(U(),t.hasPrecedingLineBreak())return!1;if(s===138&&u()===156)return!0;continue;case 162:return U(),u()===19||u()===80||u()===95;case 102:return U(),u()===11||u()===42||u()===19||wt(u());case 95:let p=U();if(p===156&&(p=G(U)),p===64||p===42||p===19||p===90||p===130||p===60)return!0;continue;case 126:U();continue;default:return!1}}function Ji(){return G(Lu)}function vc(){switch(u()){case 60:case 27:case 19:case 115:case 121:case 160:case 100:case 86:case 94:case 101:case 92:case 117:case 99:case 88:case 83:case 107:case 118:case 109:case 111:case 113:case 89:case 85:case 98:return!0;case 102:return Ji()||G(oo);case 87:case 95:return Ji();case 134:case 138:case 120:case 144:case 145:case 156:case 162:return!0;case 129:case 125:case 123:case 124:case 126:case 148:return Ji()||!G(M_);default:return br()}}function Tc(){return U(),Fe()||u()===19||u()===23}function ju(){return G(Tc)}function xc(){return L_(!0)}function L_(s){return U(),s&&u()===165?!1:(Fe()||u()===19)&&!t.hasPrecedingLineBreak()}function j_(){return G(L_)}function Sc(s){return U()===160?L_(s):!1}function Ta(){return G(Sc)}function Kt(){switch(u()){case 27:return oc();case 19:return Br(!1);case 115:return _i(J(),qe(),void 0);case 121:if(ju())return _i(J(),qe(),void 0);break;case 135:if(Ta())return _i(J(),qe(),void 0);break;case 160:if(j_())return _i(J(),qe(),void 0);break;case 100:return Pc(J(),qe(),void 0);case 86:return jc(J(),qe(),void 0);case 101:return Cu();case 92:return cc();case 117:return Du();case 99:return lc();case 88:return uc(251);case 83:return uc(252);case 107:return pc();case 118:return Pu();case 109:return Ou();case 111:return mc();case 113:case 85:case 98:return Mu();case 89:return Ju();case 60:return wc();case 134:case 120:case 156:case 144:case 145:case 138:case 87:case 94:case 95:case 102:case 123:case 124:case 125:case 128:case 129:case 126:case 148:case 162:if(Ji())return wc();break}return yc()}function R_(s){return s.kind===138}function wc(){let s=J(),p=qe(),d=wn(!0);if(Ht(d,R_)){let S=xa(s);if(S)return S;for(let N of d)N.flags|=33554432;return Tt(33554432,()=>kc(s,p,d))}else return kc(s,p,d)}function xa(s){return Tt(33554432,()=>{let p=oa(yt,s);if(p)return Ms(p)})}function kc(s,p,d){switch(u()){case 115:case 121:case 87:case 160:case 135:return _i(s,p,d);case 100:return Pc(s,p,d);case 86:return jc(s,p,d);case 120:return Bc(s,p,d);case 156:return Zu(s,p,d);case 94:return V_(s,p,d);case 162:case 144:case 145:return tp(s,p,d);case 102:return ip(s,p,d);case 95:switch(U(),u()){case 90:case 64:return Hc(s,p,d);case 130:return rp(s,p,d);default:return fp(s,p,d)}default:if(d){let b=Gt(282,!0,E.Declaration_expected);return Bp(b,s),b.modifiers=d,b}return}}function Ru(){return U()===11}function Uu(){return U(),u()===161||u()===64}function Ec(){return U(),!t.hasPrecedingLineBreak()&&(ve()||u()===11)}function Sa(s,p){if(u()!==19){if(s&4){fa();return}if(sr()){Qt();return}}return va(s,p)}function Ac(){let s=J();if(u()===28)return D(h.createOmittedExpression(),s);let p=ft(26),d=Li(),b=vr();return D(h.createBindingElement(p,void 0,d,b),s)}function Bu(){let s=J(),p=ft(26),d=Fe(),b=Jr(),S;d&&u()!==59?(S=b,b=void 0):(j(59),S=Li());let N=vr();return D(h.createBindingElement(p,b,S,N),s)}function Cc(){let s=J();j(19);let p=ut(()=>fn(9,Bu));return j(20),D(h.createObjectBindingPattern(p),s)}function qu(){let s=J();j(23);let p=ut(()=>fn(10,Ac));return j(24),D(h.createArrayBindingPattern(p),s)}function wa(){return u()===19||u()===23||u()===81||Fe()}function Li(s){return u()===23?qu():u()===19?Cc():Ka(s)}function Dc(){return U_(!0)}function U_(s){let p=J(),d=qe(),b=Li(E.Private_identifiers_are_not_allowed_in_variable_declarations),S;s&&b.kind===80&&u()===54&&!t.hasPrecedingLineBreak()&&(S=Wt());let N=gr(),X=Uo(u())?void 0:vr(),_e=Bn(b,S,N,X);return Ce(D(_e,p),d)}function B_(s){let p=J(),d=0;switch(u()){case 115:break;case 121:d|=1;break;case 87:d|=2;break;case 160:d|=4;break;case 135:B.assert(Ta()),d|=6,U();break;default:B.fail()}U();let b;if(u()===165&&G(zu))b=lr();else{let S=be();Te(s),b=fn(8,s?U_:Dc),Te(S)}return D(On(b,d),p)}function zu(){return Ai()&&U()===22}function _i(s,p,d){let b=B_(!1);Qt();let S=bn(d,b);return Ce(D(S,s),p)}function Pc(s,p,d){let b=Ye(),S=Rn(d);j(100);let N=ft(42),X=S&2048?Mi():Ka(),_e=N?1:0,Z=S&1024?2:0,ee=dn();S&32&&st(!0);let ce=Xn(_e|Z),Le=Jn(59,!1),je=Sa(_e|Z,E.or_expected);st(b);let Ae=h.createFunctionDeclaration(d,N,X,ee,ce,Le,je);return Ce(D(Ae,s),p)}function Nc(){if(u()===137)return j(137);if(u()===11&&G(U)===21)return le(()=>{let s=Hn();return s.text===\"constructor\"?s:void 0})}function Fu(s,p,d){return le(()=>{if(Nc()){let b=dn(),S=Xn(0),N=Jn(59,!1),X=Sa(0,E.or_expected),_e=h.createConstructorDeclaration(d,S,X);return _e.typeParameters=b,_e.type=N,Ce(D(_e,s),p)}})}function q_(s,p,d,b,S,N,X,_e){let Z=b?1:0,ee=Ht(d,al)?2:0,ce=dn(),Le=Xn(Z|ee),je=Jn(59,!1),Ae=Sa(Z|ee,_e),Yt=h.createMethodDeclaration(d,b,S,N,ce,Le,je,Ae);return Yt.exclamationToken=X,Ce(D(Yt,s),p)}function Ic(s,p,d,b,S){let N=!S&&!t.hasPrecedingLineBreak()?ft(54):void 0,X=gr(),_e=Dt(90112,vr);Ul(b,X,_e);let Z=h.createPropertyDeclaration(d,b,S||N,X,_e);return Ce(D(Z,s),p)}function ka(s,p,d){let b=ft(42),S=Jr(),N=ft(58);return b||u()===21||u()===30?q_(s,p,d,b,S,N,void 0,E.or_expected):Ic(s,p,d,S,N)}function qr(s,p,d,b,S){let N=Jr(),X=dn(),_e=Xn(0),Z=Jn(59,!1),ee=Sa(S),ce=b===177?h.createGetAccessorDeclaration(d,N,_e,Z,ee):h.createSetAccessorDeclaration(d,N,_e,ee);return ce.typeParameters=X,hs(ce)&&(ce.type=Z),Ce(D(ce,s),p)}function Vu(){let s;if(u()===60)return!0;for(;Wr(u());){if(s=u(),Rg(s))return!0;U()}if(u()===42||(yr()&&(s=u(),U()),u()===23))return!0;if(s!==void 0){if(!di(s)||s===153||s===139)return!0;switch(u()){case 21:case 30:case 54:case 59:case 64:case 58:return!0;default:return sr()}}return!1}function Oc(s,p,d){Yn(126);let b=Wu(),S=Ce(D(h.createClassStaticBlockDeclaration(b),s),p);return S.modifiers=d,S}function Wu(){let s=we(),p=Ye();Xe(!1),st(!0);let d=Br(!1);return Xe(s),st(p),d}function Gu(){if(Ye()&&u()===135){let s=J(),p=St(E.Expression_expected);U();let d=_n(s,p,!0);return P_(s,d)}return Ii()}function z_(){let s=J();if(!Je(60))return;let p=Si(Gu);return D(h.createDecorator(p),s)}function Mc(s,p,d){let b=J(),S=u();if(u()===87&&p){if(!le(Za))return}else{if(d&&u()===126&&G(Vc))return;if(s&&u()===126)return;if(!Ds())return}return D(ye(S),b)}function wn(s,p,d){let b=J(),S,N,X,_e=!1,Z=!1,ee=!1;if(s&&u()===60)for(;N=z_();)S=An(S,N);for(;X=Mc(_e,p,d);)X.kind===126&&(_e=!0),S=An(S,X),Z=!0;if(Z&&s&&u()===60)for(;N=z_();)S=An(S,N),ee=!0;if(ee)for(;X=Mc(_e,p,d);)X.kind===126&&(_e=!0),S=An(S,X);return S&&Ct(S,b)}function Jc(){let s;if(u()===134){let p=J();U();let d=D(ye(134),p);s=Ct([d],p)}return s}function Yu(){let s=J(),p=qe();if(u()===27)return U(),Ce(D(h.createSemicolonClassElement(),s),p);let d=wn(!0,!0,!0);if(u()===126&&G(Vc))return Oc(s,p,d);if(ti(139))return qr(s,p,d,177,0);if(ti(153))return qr(s,p,d,178,0);if(u()===137||u()===11){let b=Fu(s,p,d);if(b)return b}if(Rr())return d_(s,p,d);if(wt(u())||u()===11||u()===9||u()===10||u()===42||u()===23)if(Ht(d,R_)){for(let S of d)S.flags|=33554432;return Tt(33554432,()=>ka(s,p,d))}else return ka(s,p,d);if(d){let b=Gt(80,!0,E.Declaration_expected);return Ic(s,p,d,b,void 0)}return B.fail(\"Should not have attempted to parse class member declaration.\")}function Lc(){let s=J(),p=qe(),d=wn(!0);if(u()===86)return Ea(s,p,d,231);let b=Gt(282,!0,E.Expression_expected);return Bp(b,s),b.modifiers=d,b}function Hu(){return Ea(J(),qe(),void 0,231)}function jc(s,p,d){return Ea(s,p,d,263)}function Ea(s,p,d,b){let S=Ye();j(86);let N=Xu(),X=dn();Ht(d,Rb)&&st(!0);let _e=F_(),Z;j(19)?(Z=Uc(),j(20)):Z=lr(),st(S);let ee=b===263?h.createClassDeclaration(d,N,X,_e,Z):h.createClassExpression(d,N,X,_e,Z);return Ce(D(ee,s),p)}function Xu(){return Fe()&&!$u()?or(Fe()):void 0}function $u(){return u()===119&&G(Yl)}function F_(){if(Rc())return xn(22,Qu)}function Qu(){let s=J(),p=u();B.assert(p===96||p===119),U();let d=fn(7,Ku);return D(h.createHeritageClause(p,d),s)}function Ku(){let s=J(),p=Ii();if(p.kind===233)return p;let d=Aa();return D(h.createExpressionWithTypeArguments(p,d),s)}function Aa(){return u()===30?Lr(20,ot,30,32):void 0}function Rc(){return u()===96||u()===119}function Uc(){return xn(5,Yu)}function Bc(s,p,d){j(120);let b=St(),S=dn(),N=F_(),X=lo(),_e=h.createInterfaceDeclaration(d,b,S,N,X);return Ce(D(_e,s),p)}function Zu(s,p,d){j(156),t.hasPrecedingLineBreak()&&Ee(E.Line_break_not_permitted_here);let b=St(),S=dn();j(64);let N=u()===141&&le(yo)||ot();Qt();let X=h.createTypeAliasDeclaration(d,b,S,N);return Ce(D(X,s),p)}function ep(){let s=J(),p=qe(),d=Jr(),b=ut(vr);return Ce(D(h.createEnumMember(d,b),s),p)}function V_(s,p,d){j(94);let b=St(),S;j(19)?(S=xe(()=>fn(6,ep)),j(20)):S=lr();let N=h.createEnumDeclaration(d,b,S);return Ce(D(N,s),p)}function qc(){let s=J(),p;return j(19)?(p=xn(1,Kt),j(20)):p=lr(),D(h.createModuleBlock(p),s)}function W_(s,p,d,b){let S=b&32,N=b&8?jt():St(),X=Je(25)?W_(J(),!1,void 0,8|S):qc(),_e=h.createModuleDeclaration(d,N,X,b);return Ce(D(_e,s),p)}function zc(s,p,d){let b=0,S;u()===162?(S=St(),b|=2048):(S=Hn(),S.text=Mr(S.text));let N;u()===19?N=qc():Qt();let X=h.createModuleDeclaration(d,S,N,b);return Ce(D(X,s),p)}function tp(s,p,d){let b=0;if(u()===162)return zc(s,p,d);if(Je(145))b|=32;else if(j(144),u()===11)return zc(s,p,d);return W_(s,p,d,b)}function np(){return u()===149&&G(Fc)}function Fc(){return U()===21}function Vc(){return U()===19}function G_(){return U()===44}function rp(s,p,d){j(130),j(145);let b=St();Qt();let S=h.createNamespaceExportDeclaration(b);return S.modifiers=d,Ce(D(S,s),p)}function ip(s,p,d){j(102);let b=t.getTokenFullStart(),S;ve()&&(S=St());let N=!1;if((S==null?void 0:S.escapedText)===\"type\"&&(u()!==161||ve()&&G(Uu))&&(ve()||_p())&&(N=!0,S=ve()?St():void 0),S&&!zr())return sp(s,p,d,S,N);let X=si(S,b,N),_e=Ri(),Z=Wc();Qt();let ee=h.createImportDeclaration(d,X,_e,Z);return Ce(D(ee,s),p)}function si(s,p,d,b=!1){let S;return(s||u()===42||u()===19)&&(S=op(s,p,d,b),j(161)),S}function Wc(){let s=u();if((s===118||s===132)&&!t.hasPrecedingLineBreak())return Y_(s)}function ap(){let s=J(),p=wt(u())?jt():ri(11);j(59);let d=zt(!0);return D(h.createImportAttribute(p,d),s)}function Y_(s,p){let d=J();p||j(s);let b=t.getTokenStart();if(j(19)){let S=t.hasPrecedingLineBreak(),N=fn(24,ap,!0);if(!j(20)){let X=Gi(_t);X&&X.code===E._0_expected.code&&nl(X,Oa(Mt,Qe,b,1,E.The_parser_expected_to_find_a_1_to_match_the_0_token_here,\"{\",\"}\"))}return D(h.createImportAttributes(N,S,s),d)}else{let S=Ct([],J(),void 0,!1);return D(h.createImportAttributes(S,!1,s),d)}}function _p(){return u()===42||u()===19}function zr(){return u()===28||u()===161}function sp(s,p,d,b,S){j(64);let N=cp();Qt();let X=h.createImportEqualsDeclaration(d,S,b,N);return Ce(D(X,s),p)}function op(s,p,d,b){let S;return(!s||Je(28))&&(b&&t.setSkipJsDocLeadingAsterisks(!0),S=u()===42?lp():Gc(275),b&&t.setSkipJsDocLeadingAsterisks(!1)),D(h.createImportClause(d,s,S),p)}function cp(){return np()?ji():jr(!1)}function ji(){let s=J();j(149),j(21);let p=Ri();return j(22),D(h.createExternalModuleReference(p),s)}function Ri(){if(u()===11){let s=Hn();return s.text=Mr(s.text),s}else return Et()}function lp(){let s=J();j(42),j(130);let p=St();return D(h.createNamespaceImport(p),s)}function H_(){return wt(u())||u()===11}function oi(s){return u()===11?Hn():s()}function Gc(s){let p=J(),d=s===275?h.createNamedImports(Lr(23,ci,19,20)):h.createNamedExports(Lr(23,up,19,20));return D(d,p)}function up(){let s=qe();return Ce(Yc(281),s)}function ci(){return Yc(276)}function Yc(s){let p=J(),d=di(u())&&!ve(),b=t.getTokenStart(),S=t.getTokenEnd(),N=!1,X,_e=!0,Z=oi(jt);if(Z.kind===80&&Z.escapedText===\"type\")if(u()===130){let Le=jt();if(u()===130){let je=jt();H_()?(N=!0,X=Le,Z=oi(ce),_e=!1):(X=Z,Z=je,_e=!1)}else H_()?(X=Z,_e=!1,Z=oi(ce)):(N=!0,Z=Le)}else H_()&&(N=!0,Z=oi(ce));_e&&u()===130&&(X=Z,j(130),Z=oi(ce)),s===276&&(Z.kind!==80?(rt(Ar(Qe,Z.pos),Z.end,E.Identifier_expected),Z=yi(Gt(80,!1),Z.pos,Z.pos)):d&&rt(b,S,E.Identifier_expected));let ee=s===276?h.createImportSpecifier(N,X,Z):h.createExportSpecifier(N,X,Z);return D(ee,p);function ce(){return d=di(u())&&!ve(),b=t.getTokenStart(),S=t.getTokenEnd(),jt()}}function pp(s){return D(h.createNamespaceExport(oi(jt)),s)}function fp(s,p,d){let b=Ye();st(!0);let S,N,X,_e=Je(156),Z=J();Je(42)?(Je(130)&&(S=pp(Z)),j(161),N=Ri()):(S=Gc(279),(u()===161||u()===11&&!t.hasPrecedingLineBreak())&&(j(161),N=Ri()));let ee=u();N&&(ee===118||ee===132)&&!t.hasPrecedingLineBreak()&&(X=Y_(ee)),Qt(),st(b);let ce=h.createExportDeclaration(d,_e,S,N,X);return Ce(D(ce,s),p)}function Hc(s,p,d){let b=Ye();st(!0);let S;Je(64)?S=!0:j(90);let N=zt(!0);Qt(),st(b);let X=h.createExportAssignment(d,S,N);return Ce(D(X,s),p)}let X_;(s=>{s[s.SourceElements=0]=\"SourceElements\",s[s.BlockStatements=1]=\"BlockStatements\",s[s.SwitchClauses=2]=\"SwitchClauses\",s[s.SwitchClauseStatements=3]=\"SwitchClauseStatements\",s[s.TypeMembers=4]=\"TypeMembers\",s[s.ClassMembers=5]=\"ClassMembers\",s[s.EnumMembers=6]=\"EnumMembers\",s[s.HeritageClauseElement=7]=\"HeritageClauseElement\",s[s.VariableDeclarations=8]=\"VariableDeclarations\",s[s.ObjectBindingElements=9]=\"ObjectBindingElements\",s[s.ArrayBindingElements=10]=\"ArrayBindingElements\",s[s.ArgumentExpressions=11]=\"ArgumentExpressions\",s[s.ObjectLiteralMembers=12]=\"ObjectLiteralMembers\",s[s.JsxAttributes=13]=\"JsxAttributes\",s[s.JsxChildren=14]=\"JsxChildren\",s[s.ArrayLiteralMembers=15]=\"ArrayLiteralMembers\",s[s.Parameters=16]=\"Parameters\",s[s.JSDocParameters=17]=\"JSDocParameters\",s[s.RestProperties=18]=\"RestProperties\",s[s.TypeParameters=19]=\"TypeParameters\",s[s.TypeArguments=20]=\"TypeArguments\",s[s.TupleElementTypes=21]=\"TupleElementTypes\",s[s.HeritageClauses=22]=\"HeritageClauses\",s[s.ImportOrExportSpecifiers=23]=\"ImportOrExportSpecifiers\",s[s.ImportAttributes=24]=\"ImportAttributes\",s[s.JSDocComment=25]=\"JSDocComment\",s[s.Count=26]=\"Count\"})(X_||(X_={}));let $_;(s=>{s[s.False=0]=\"False\",s[s.True=1]=\"True\",s[s.Unknown=2]=\"Unknown\"})($_||($_={}));let Xc;(s=>{function p(ee,ce,Le){zn(\"file.js\",ee,99,void 0,1,0),t.setText(ee,ce,Le),lt=t.scan();let je=d(),Ae=se(\"file.js\",99,1,!1,[],ye(1),0,Fa),Yt=qi(_t,Ae);return Ut&&(Ae.jsDocDiagnostics=qi(Ut,Ae)),Fn(),je?{jsDocTypeExpression:je,diagnostics:Yt}:void 0}s.parseJSDocTypeExpressionForTests=p;function d(ee){let ce=J(),Le=(ee?Je:j)(19),je=Tt(16777216,l_);(!ee||Le)&&Es(20);let Ae=h.createJSDocTypeExpression(je);return L(Ae),D(Ae,ce)}s.parseJSDocTypeExpression=d;function b(){let ee=J(),ce=Je(19),Le=J(),je=jr(!1);for(;u()===81;)Nt(),ze(),je=D(h.createJSDocMemberName(je,St()),Le);ce&&Es(20);let Ae=h.createJSDocNameReference(je);return L(Ae),D(Ae,ee)}s.parseJSDocNameReference=b;function S(ee,ce,Le){zn(\"\",ee,99,void 0,1,0);let je=Tt(16777216,()=>Z(ce,Le)),Yt=qi(_t,{languageVariant:0,text:ee});return Fn(),je?{jsDoc:je,diagnostics:Yt}:void 0}s.parseIsolatedJSDocComment=S;function N(ee,ce,Le){let je=lt,Ae=_t.length,Yt=rn,mn=Tt(16777216,()=>Z(ce,Le));return Sf(mn,ee),nt&524288&&(Ut||(Ut=[]),Dn(Ut,_t,Ae)),lt=je,_t.length=Ae,rn=Yt,mn}s.parseJSDocComment=N;let X;(ee=>{ee[ee.BeginningOfLine=0]=\"BeginningOfLine\",ee[ee.SawAsterisk=1]=\"SawAsterisk\",ee[ee.SavingComments=2]=\"SavingComments\",ee[ee.SavingBackticks=3]=\"SavingBackticks\"})(X||(X={}));let _e;(ee=>{ee[ee.Property=1]=\"Property\",ee[ee.Parameter=2]=\"Parameter\",ee[ee.CallbackParameter=4]=\"CallbackParameter\"})(_e||(_e={}));function Z(ee=0,ce){let Le=Qe,je=ce===void 0?Le.length:ee+ce;if(ce=je-ee,B.assert(ee>=0),B.assert(ee<=je),B.assert(je<=Le.length),!k6(Le,ee))return;let Ae,Yt,mn,Zt,ur,Ln=[],Fr=[],dp=yt;yt|=1<<25;let De=t.scanRange(ee+3,ce-5,et);return yt=dp,De;function et(){let O=1,Y,H=ee-(Le.lastIndexOf(`\n`,ee)+1)+4;function te(Ue){Y||(Y=H),Ln.push(Ue),H+=Ue.length}for(ze();Bi(5););Bi(4)&&(O=0,H=0);e:for(;;){switch(u()){case 60:Ca(Ln),ur||(ur=J()),pe(q(H)),O=0,Y=void 0;break;case 4:Ln.push(t.getTokenText()),O=0,H=0;break;case 42:let Ue=t.getTokenText();O===1?(O=2,te(Ue)):(B.assert(O===0),O=1,H+=Ue.length);break;case 5:B.assert(O!==2,\"whitespace shouldn't come from the scanner while saving top-level comment text\");let pt=t.getTokenText();Y!==void 0&&H+pt.length>Y&&Ln.push(pt.slice(Y-H)),H+=pt.length;break;case 1:break e;case 82:O=2,te(t.getTokenValue());break;case 19:O=2;let hn=t.getTokenFullStart(),sn=t.getTokenEnd()-1,tn=_(sn);if(tn){Zt||pr(Ln),Fr.push(D(h.createJSDocText(Ln.join(\"\")),Zt??ee,hn)),Fr.push(tn),Ln=[],Zt=t.getTokenEnd();break}default:O=2,te(t.getTokenText());break}O===2?an(!1):ze()}let ne=Ln.join(\"\").trimEnd();Fr.length&&ne.length&&Fr.push(D(h.createJSDocText(ne),Zt??ee,ur)),Fr.length&&Ae&&B.assertIsDefined(ur,\"having parsed tags implies that the end of the comment span should be set\");let Pe=Ae&&Ct(Ae,Yt,mn);return D(h.createJSDocComment(Fr.length?Ct(Fr,ee,ur):ne.length?ne:void 0,Pe),ee,je)}function pr(O){for(;O.length&&(O[0]===`\n`||O[0]===\"\\r\");)O.shift()}function Ca(O){for(;O.length;){let Y=O[O.length-1].trimEnd();if(Y===\"\")O.pop();else if(Y.lengthpt&&(te.push(Qn.slice(pt-O)),Ue=2),O+=Qn.length;break;case 19:Ue=2;let Qc=t.getTokenFullStart(),Pa=t.getTokenEnd()-1,Kc=_(Pa);Kc?(ne.push(D(h.createJSDocText(te.join(\"\")),Pe??H,Qc)),ne.push(Kc),te=[],Pe=t.getTokenEnd()):hn(t.getTokenText());break;case 62:Ue===3?Ue=2:Ue=3,hn(t.getTokenText());break;case 82:Ue!==3&&(Ue=2),hn(t.getTokenValue());break;case 42:if(Ue===0){Ue=1,O+=1;break}default:Ue!==3&&(Ue=2),hn(t.getTokenText());break}Ue===2||Ue===3?sn=an(Ue===3):sn=ze()}pr(te);let tn=te.join(\"\").trimEnd();if(ne.length)return tn.length&&ne.push(D(h.createJSDocText(tn),Pe??H)),Ct(ne,H,t.getTokenEnd());if(tn.length)return tn}function _(O){let Y=le(f);if(!Y)return;ze(),It();let H=c(),te=[];for(;u()!==20&&u()!==4&&u()!==1;)te.push(t.getTokenText()),ze();let ne=Y===\"link\"?h.createJSDocLink:Y===\"linkcode\"?h.createJSDocLinkCode:h.createJSDocLinkPlain;return D(ne(H,te.join(\"\")),O,t.getTokenEnd())}function c(){if(wt(u())){let O=J(),Y=jt();for(;Je(25);)Y=D(h.createQualifiedName(Y,u()===81?Gt(80,!1):jt()),O);for(;u()===81;)Nt(),ze(),Y=D(h.createJSDocMemberName(Y,St()),O);return Y}}function f(){if(xr(),u()===19&&ze()===60&&wt(ze())){let O=t.getTokenValue();if(w(O))return O}}function w(O){return O===\"link\"||O===\"linkcode\"||O===\"linkplain\"}function F(O,Y,H,te){return D(h.createJSDocUnknownTag(Y,n(O,J(),H,te)),O)}function pe(O){O&&(Ae?Ae.push(O):(Ae=[O],Yt=O.pos),mn=O.end)}function Re(){return xr(),u()===19?d():void 0}function en(){let O=Bi(23);O&&It();let Y=Bi(62),H=$0();return Y&&ql(62),O&&(It(),ft(64)&&Et(),j(24)),{name:H,isBracketed:O}}function kn(O){switch(O.kind){case 151:return!0;case 188:return kn(O.elementType);default:return Df(O)&&tt(O.typeName)&&O.typeName.escapedText===\"Object\"&&!O.typeArguments}}function $n(O,Y,H,te){let ne=Re(),Pe=!ne;xr();let{name:Ue,isBracketed:pt}=en(),hn=xr();Pe&&!G(f)&&(ne=Re());let sn=n(O,J(),te,hn),tn=Da(ne,Ue,H,te);tn&&(ne=tn,Pe=!0);let Qn=H===1?h.createJSDocPropertyTag(Y,Ue,pt,ne,Pe,sn):h.createJSDocParameterTag(Y,Ue,pt,ne,Pe,sn);return D(Qn,O)}function Da(O,Y,H,te){if(O&&kn(O.type)){let ne=J(),Pe,Ue;for(;Pe=le(()=>hp(H,te,Y));)Pe.kind===341||Pe.kind===348?Ue=An(Ue,Pe):Pe.kind===345&&ln(Pe.tagName,E.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);if(Ue){let pt=D(h.createJSDocTypeLiteral(Ue,O.type.kind===188),ne);return D(h.createJSDocTypeExpression(pt),ne)}}}function P0(O,Y,H,te){Ht(Ae,p6)&&rt(Y.pos,t.getTokenStart(),E._0_tag_already_specified,cs(Y.escapedText));let ne=Re();return D(h.createJSDocReturnTag(Y,ne,n(O,J(),H,te)),O)}function md(O,Y,H,te){Ht(Ae,Ff)&&rt(Y.pos,t.getTokenStart(),E._0_tag_already_specified,cs(Y.escapedText));let ne=d(!0),Pe=H!==void 0&&te!==void 0?n(O,J(),H,te):void 0;return D(h.createJSDocTypeTag(Y,ne,Pe),O)}function N0(O,Y,H,te){let Pe=u()===23||G(()=>ze()===60&&wt(ze())&&w(t.getTokenValue()))?void 0:b(),Ue=H!==void 0&&te!==void 0?n(O,J(),H,te):void 0;return D(h.createJSDocSeeTag(Y,Pe,Ue),O)}function I0(O,Y,H,te){let ne=Re(),Pe=n(O,J(),H,te);return D(h.createJSDocThrowsTag(Y,ne,Pe),O)}function O0(O,Y,H,te){let ne=J(),Pe=M0(),Ue=t.getTokenFullStart(),pt=n(O,Ue,H,te);pt||(Ue=t.getTokenFullStart());let hn=typeof pt!=\"string\"?Ct(Yp([D(Pe,ne,Ue)],pt),ne):Pe.text+pt;return D(h.createJSDocAuthorTag(Y,hn),O)}function M0(){let O=[],Y=!1,H=t.getToken();for(;H!==1&&H!==4;){if(H===30)Y=!0;else{if(H===60&&!Y)break;if(H===32&&Y){O.push(t.getTokenText()),t.resetTokenState(t.getTokenEnd());break}}O.push(t.getTokenText()),H=ze()}return h.createJSDocText(O.join(\"\"))}function J0(O,Y,H,te){let ne=hd();return D(h.createJSDocImplementsTag(Y,ne,n(O,J(),H,te)),O)}function L0(O,Y,H,te){let ne=hd();return D(h.createJSDocAugmentsTag(Y,ne,n(O,J(),H,te)),O)}function j0(O,Y,H,te){let ne=d(!1),Pe=H!==void 0&&te!==void 0?n(O,J(),H,te):void 0;return D(h.createJSDocSatisfiesTag(Y,ne,Pe),O)}function R0(O,Y,H,te){let ne=t.getTokenFullStart(),Pe;ve()&&(Pe=St());let Ue=si(Pe,ne,!0,!0),pt=Ri(),hn=Wc(),sn=H!==void 0&&te!==void 0?n(O,J(),H,te):void 0;return D(h.createJSDocImportTag(Y,Ue,pt,hn,sn),O)}function hd(){let O=Je(19),Y=J(),H=U0();t.setSkipJsDocLeadingAsterisks(!0);let te=Aa();t.setSkipJsDocLeadingAsterisks(!1);let ne=h.createExpressionWithTypeArguments(H,te),Pe=D(ne,Y);return O&&j(20),Pe}function U0(){let O=J(),Y=li();for(;Je(25);){let H=li();Y=D(ae(Y,H),O)}return Y}function Ui(O,Y,H,te,ne){return D(Y(H,n(O,J(),te,ne)),O)}function yd(O,Y,H,te){let ne=d(!0);return It(),D(h.createJSDocThisTag(Y,ne,n(O,J(),H,te)),O)}function B0(O,Y,H,te){let ne=d(!0);return It(),D(h.createJSDocEnumTag(Y,ne,n(O,J(),H,te)),O)}function q0(O,Y,H,te){let ne=Re();xr();let Pe=mp();It();let Ue=i(H),pt;if(!ne||kn(ne.type)){let sn,tn,Qn,Qc=!1;for(;(sn=le(()=>G0(H)))&&sn.kind!==345;)if(Qc=!0,sn.kind===344)if(tn){let Pa=Ee(E.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);Pa&&nl(Pa,Oa(Mt,Qe,0,0,E.The_tag_was_first_specified_here));break}else tn=sn;else Qn=An(Qn,sn);if(Qc){let Pa=ne&&ne.type.kind===188,Kc=h.createJSDocTypeLiteral(Qn,Pa);ne=tn&&tn.typeExpression&&!kn(tn.typeExpression.type)?tn.typeExpression:D(Kc,O),pt=ne.end}}pt=pt||Ue!==void 0?J():(Pe??ne??Y).end,Ue||(Ue=n(O,pt,H,te));let hn=h.createJSDocTypedefTag(Y,ne,Pe,Ue);return D(hn,O,pt)}function mp(O){let Y=t.getTokenStart();if(!wt(u()))return;let H=li();if(Je(25)){let te=mp(!0),ne=h.createModuleDeclaration(void 0,H,te,O?8:void 0);return D(ne,Y)}return O&&(H.flags|=4096),H}function z0(O){let Y=J(),H,te;for(;H=le(()=>hp(4,O));){if(H.kind===345){ln(H.tagName,E.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);break}te=An(te,H)}return Ct(te||[],Y)}function gd(O,Y){let H=z0(Y),te=le(()=>{if(Bi(60)){let ne=q(Y);if(ne&&ne.kind===342)return ne}});return D(h.createJSDocSignature(void 0,H,te),O)}function F0(O,Y,H,te){let ne=mp();It();let Pe=i(H),Ue=gd(O,H);Pe||(Pe=n(O,J(),H,te));let pt=Pe!==void 0?J():Ue.end;return D(h.createJSDocCallbackTag(Y,Ue,ne,Pe),O,pt)}function V0(O,Y,H,te){It();let ne=i(H),Pe=gd(O,H);ne||(ne=n(O,J(),H,te));let Ue=ne!==void 0?J():Pe.end;return D(h.createJSDocOverloadTag(Y,Pe,ne),O,Ue)}function W0(O,Y){for(;!tt(O)||!tt(Y);)if(!tt(O)&&!tt(Y)&&O.right.escapedText===Y.right.escapedText)O=O.left,Y=Y.left;else return!1;return O.escapedText===Y.escapedText}function G0(O){return hp(1,O)}function hp(O,Y,H){let te=!0,ne=!1;for(;;)switch(ze()){case 60:if(te){let Pe=Y0(O,Y);return Pe&&(Pe.kind===341||Pe.kind===348)&&H&&(tt(Pe.name)||!W0(H,Pe.name.left))?!1:Pe}ne=!1;break;case 4:te=!0,ne=!1;break;case 42:ne&&(te=!1),ne=!0;break;case 80:te=!1;break;case 1:return!1}}function Y0(O,Y){B.assert(u()===60);let H=t.getTokenFullStart();ze();let te=li(),ne=xr(),Pe;switch(te.escapedText){case\"type\":return O===1&&md(H,te);case\"prop\":case\"property\":Pe=1;break;case\"arg\":case\"argument\":case\"param\":Pe=6;break;case\"template\":return bd(H,te,Y,ne);case\"this\":return yd(H,te,Y,ne);default:return!1}return O&Pe?$n(H,te,O,Y):!1}function H0(){let O=J(),Y=Bi(23);Y&&It();let H=wn(!1,!0),te=li(E.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),ne;if(Y&&(It(),j(64),ne=Tt(16777216,l_),j(24)),!Hi(te))return D(h.createTypeParameterDeclaration(H,te,void 0,ne),O)}function X0(){let O=J(),Y=[];do{It();let H=H0();H!==void 0&&Y.push(H),xr()}while(Bi(28));return Ct(Y,O)}function bd(O,Y,H,te){let ne=u()===19?d():void 0,Pe=X0();return D(h.createJSDocTemplateTag(Y,ne,Pe,n(O,J(),H,te)),O)}function Bi(O){return u()===O?(ze(),!0):!1}function $0(){let O=li();for(Je(23)&&j(24);Je(25);){let Y=li();Je(23)&&j(24),O=Hl(O,Y)}return O}function li(O){if(!wt(u()))return Gt(80,!O,O||E.Identifier_expected);vn++;let Y=t.getTokenStart(),H=t.getTokenEnd(),te=u(),ne=Mr(t.getTokenValue()),Pe=D(re(ne,te),Y,H);return ze(),Pe}}})(Xc=e.JSDocParser||(e.JSDocParser={}))})($i||($i={}));var xm=new WeakSet;function J6(e){xm.has(e)&&B.fail(\"Source file has already been incrementally parsed\"),xm.add(e)}var hh=new WeakSet;function L6(e){return hh.has(e)}function Wp(e){hh.add(e)}var vl;(e=>{function t(x,I,re,he){if(he=he||B.shouldAssert(2),h(x,I,re,he),fg(re))return x;if(x.statements.length===0)return $i.parseSourceFile(x.fileName,I,x.languageVersion,void 0,!0,x.scriptKind,x.setExternalModuleIndicator,x.jsDocParsingMode);J6(x),$i.fixupParentReferences(x);let ye=x.text,de=y(x),M=l(x,re);h(x,I,M,he),B.assert(M.span.start<=re.span.start),B.assert(wr(M.span)===wr(re.span)),B.assert(wr(K_(M))===wr(K_(re)));let ae=K_(M).length-M.span.length;P(x,M.span.start,wr(M.span),wr(K_(M)),ae,ye,I,he);let Oe=$i.parseSourceFile(x.fileName,I,x.languageVersion,de,!0,x.scriptKind,x.setExternalModuleIndicator,x.jsDocParsingMode);return Oe.commentDirectives=a(x.commentDirectives,Oe.commentDirectives,M.span.start,wr(M.span),ae,ye,I,he),Oe.impliedNodeFormat=x.impliedNodeFormat,h6(x,Oe),Oe}e.updateSourceFile=t;function a(x,I,re,he,ye,de,M,ae){if(!x)return I;let Oe,V=!1;for(let W of x){let{range:dt,type:nr}=W;if(dt.endhe){oe();let gn={range:{pos:dt.pos+ye,end:dt.end+ye},type:nr};Oe=An(Oe,gn),ae&&B.assert(de.substring(dt.pos,dt.end)===M.substring(gn.range.pos,gn.range.end))}}return oe(),Oe;function oe(){V||(V=!0,Oe?I&&Oe.push(...I):Oe=I)}}function o(x,I,re,he,ye,de,M){re?Oe(x):ae(x);return;function ae(V){let oe=\"\";if(M&&m(V)&&(oe=ye.substring(V.pos,V.end)),Kd(V,I),yi(V,V.pos+he,V.end+he),M&&m(V)&&B.assert(oe===de.substring(V.pos,V.end)),Xt(V,ae,Oe),Yi(V))for(let W of V.jsDoc)ae(W);A(V,M)}function Oe(V){yi(V,V.pos+he,V.end+he);for(let oe of V)ae(oe)}}function m(x){switch(x.kind){case 11:case 9:case 80:return!0}return!1}function v(x,I,re,he,ye){B.assert(x.end>=I,\"Adjusting an element that was entirely before the change range\"),B.assert(x.pos<=re,\"Adjusting an element that was entirely after the change range\"),B.assert(x.pos<=x.end);let de=Math.min(x.pos,he),M=x.end>=re?x.end+ye:Math.min(x.end,he);if(B.assert(de<=M),x.parent){let ae=x.parent;B.assertGreaterThanOrEqual(de,ae.pos),B.assertLessThanOrEqual(M,ae.end)}yi(x,de,M)}function A(x,I){if(I){let re=x.pos,he=ye=>{B.assert(ye.pos>=re),re=ye.end};if(Yi(x))for(let ye of x.jsDoc)he(ye);Xt(x,he),B.assert(re<=x.end)}}function P(x,I,re,he,ye,de,M,ae){Oe(x);return;function Oe(oe){if(B.assert(oe.pos<=oe.end),oe.pos>re){o(oe,x,!1,ye,de,M,ae);return}let W=oe.end;if(W>=I){if(Wp(oe),Kd(oe,x),v(oe,I,re,he,ye),Xt(oe,Oe,V),Yi(oe))for(let dt of oe.jsDoc)Oe(dt);A(oe,ae);return}B.assert(Wre){o(oe,x,!0,ye,de,M,ae);return}let W=oe.end;if(W>=I){Wp(oe),v(oe,I,re,he,ye);for(let dt of oe)Oe(dt);return}B.assert(W0&&M<=1;M++){let ae=Q(x,he);B.assert(ae.pos<=he);let Oe=ae.pos;he=Math.max(0,Oe-1)}let ye=pg(he,wr(I.span)),de=I.newLength+(I.span.start-he);return Km(ye,de)}function Q(x,I){let re=x,he;if(Xt(x,de),he){let M=ye(he);M.pos>re.pos&&(re=M)}return re;function ye(M){for(;;){let ae=Q2(M);if(ae)M=ae;else return M}}function de(M){if(!Hi(M))if(M.pos<=I){if(M.pos>=re.pos&&(re=M),II),!0}}function h(x,I,re,he){let ye=x.text;if(re&&(B.assert(ye.length-re.span.length+re.newLength===I.length),he||B.shouldAssert(3))){let de=ye.substr(0,re.span.start),M=I.substr(0,re.span.start);B.assert(de===M);let ae=ye.substring(wr(re.span),ye.length),Oe=I.substring(wr(K_(re)),I.length);B.assert(ae===Oe)}}function y(x){let I=x.statements,re=0;B.assert(re=V.pos&&M=V.pos&&M{x[x.Value=-1]=\"Value\"})(g||(g={}))})(vl||(vl={}));function j6(e){return R6(e)!==void 0}function R6(e){let t=Rm(e,gb,!1);if(t)return t;if(Oy(e,\".ts\")){let a=jm(e),o=a.lastIndexOf(\".d.\");if(o>=0)return a.substring(o)}}function U6(e,t,a,o){if(e){if(e===\"import\")return 99;if(e===\"require\")return 1;o(t,a-t,E.resolution_mode_should_be_either_require_or_import)}}function B6(e,t){let a=[];for(let o of Jp(t,0)||bt){let m=t.substring(o.pos,o.end);W6(a,o,m)}e.pragmas=new Map;for(let o of a){if(e.pragmas.has(o.name)){let m=e.pragmas.get(o.name);m instanceof Array?m.push(o.args):e.pragmas.set(o.name,[m,o.args]);continue}e.pragmas.set(o.name,o.args)}}function q6(e,t){e.checkJsDirective=void 0,e.referencedFiles=[],e.typeReferenceDirectives=[],e.libReferenceDirectives=[],e.amdDependencies=[],e.hasNoDefaultLib=!1,e.pragmas.forEach((a,o)=>{switch(o){case\"reference\":{let m=e.referencedFiles,v=e.typeReferenceDirectives,A=e.libReferenceDirectives;Un(bp(a),P=>{let{types:l,lib:Q,path:h,[\"resolution-mode\"]:y,preserve:g}=P.arguments,x=g===\"true\"?!0:void 0;if(P.arguments[\"no-default-lib\"]===\"true\")e.hasNoDefaultLib=!0;else if(l){let I=U6(y,l.pos,l.end,t);v.push({pos:l.pos,end:l.end,fileName:l.value,...I?{resolutionMode:I}:{},...x?{preserve:x}:{}})}else Q?A.push({pos:Q.pos,end:Q.end,fileName:Q.value,...x?{preserve:x}:{}}):h?m.push({pos:h.pos,end:h.end,fileName:h.value,...x?{preserve:x}:{}}):t(P.range.pos,P.range.end-P.range.pos,E.Invalid_reference_directive_syntax)});break}case\"amd-dependency\":{e.amdDependencies=Pp(bp(a),m=>({name:m.arguments.name,path:m.arguments.path}));break}case\"amd-module\":{if(a instanceof Array)for(let m of a)e.moduleName&&t(m.range.pos,m.range.end-m.range.pos,E.An_AMD_module_cannot_have_multiple_name_assignments),e.moduleName=m.arguments.name;else e.moduleName=a.arguments.name;break}case\"ts-nocheck\":case\"ts-check\":{Un(bp(a),m=>{(!e.checkJsDirective||m.range.pos>e.checkJsDirective.pos)&&(e.checkJsDirective={enabled:o===\"ts-check\",end:m.range.end,pos:m.range.pos})});break}case\"jsx\":case\"jsxfrag\":case\"jsximportsource\":case\"jsxruntime\":return;default:B.fail(\"Unhandled pragma kind\")}})}var Dp=new Map;function z6(e){if(Dp.has(e))return Dp.get(e);let t=new RegExp(`(\\\\s${e}\\\\s*=\\\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))`,\"im\");return Dp.set(e,t),t}var F6=/^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/m,V6=/^\\/\\/\\/?\\s*@([^\\s:]+)((?:[^\\S\\r\\n]|:).*)?$/m;function W6(e,t,a){let o=t.kind===2&&F6.exec(a);if(o){let v=o[1].toLowerCase(),A=Lm[v];if(!A||!(A.kind&1))return;if(A.args){let P={};for(let l of A.args){let h=z6(l.name).exec(a);if(!h&&!l.optional)return;if(h){let y=h[2]||h[3];if(l.captureSpan){let g=t.pos+h.index+h[1].length+1;P[l.name]={value:y,pos:g,end:g+y.length}}else P[l.name]=y}}e.push({name:v,args:{arguments:P,range:t}})}else e.push({name:v,args:{arguments:{},range:t}});return}let m=t.kind===2&&V6.exec(a);if(m)return Sm(e,t,2,m);if(t.kind===3){let v=/@(\\S+)(\\s+(?:\\S.*)?)?$/gm,A;for(;A=v.exec(a);)Sm(e,t,4,A)}}function Sm(e,t,a,o){if(!o)return;let m=o[1].toLowerCase(),v=Lm[m];if(!v||!(v.kind&a))return;let A=o[2],P=G6(v,A);P!==\"fail\"&&e.push({name:m,args:{arguments:P,range:t}})}function G6(e,t){if(!t)return{};if(!e.args)return{};let a=t.trim().split(/\\s+/),o={};for(let m=0;mo.kind<309||o.kind>351);return a.kind<166?a:a.getFirstToken(e)}getLastToken(e){this.assertHasRealPosition();let t=this.getChildren(e),a=Gi(t);if(a)return a.kind<166?a:a.getLastToken(e)}forEachChild(e,t){return Xt(this,e,t)}};function Y6(e,t){let a=[];if(Zg(e))return e.forEachChild(A=>{a.push(A)}),a;ss.setText((t||e.getSourceFile()).text);let o=e.pos,m=A=>{os(a,o,A.pos,e),a.push(A),o=A.end},v=A=>{os(a,o,A.pos,e),a.push(H6(A,e)),o=A.end};return Un(e.jsDoc,m),o=e.pos,e.forEachChild(m,v),os(a,o,e.end,e),ss.setText(void 0),a}function os(e,t,a,o){for(ss.resetTokenState(t);tt.tagName.text===\"inheritDoc\"||t.tagName.text===\"inheritdoc\")}function ll(e,t){if(!e)return bt;let a=ts_JsDoc_exports.getJsDocTagsFromDeclarations(e,t);if(t&&(a.length===0||e.some(Th))){let o=new Set;for(let m of e){let v=xh(t,m,A=>{var P;if(!o.has(A))return o.add(A),m.kind===177||m.kind===178?A.getContextualJsDocTags(m,t):((P=A.declarations)==null?void 0:P.length)===1?A.getJsDocTags(t):void 0});v&&(a=[...v,...a])}}return a}function _s(e,t){if(!e)return bt;let a=ts_JsDoc_exports.getJsDocCommentsFromDeclarations(e,t);if(t&&(a.length===0||e.some(Th))){let o=new Set;for(let m of e){let v=xh(t,m,A=>{if(!o.has(A))return o.add(A),m.kind===177||m.kind===178?A.getContextualDocumentationComment(m,t):A.getDocumentationComment(t)});v&&(a=a.length===0?v.slice():v.concat(lineBreakPart(),a))}}return a}function xh(e,t,a){var o;let m=((o=t.parent)==null?void 0:o.kind)===176?t.parent.parent:t.parent;if(!m)return;let v=B2(t);return ny(N2(m),A=>{let P=e.getTypeAtLocation(A),l=v&&P.symbol?e.getTypeOfSymbol(P.symbol):P,Q=e.getPropertyOfType(l,t.symbol.name);return Q?a(Q):void 0})}var K6=class extends Gf{constructor(e,t,a){super(e,t,a)}update(e,t){return M6(this,e,t)}getLineAndCharacterOfPosition(e){return Wm(this,e)}getLineStarts(){return Mp(this)}getPositionOfLineAndCharacter(e,t,a){return ng(Mp(this),e,t,this.text,a)}getLineEndOfPosition(e){let{line:t}=this.getLineAndCharacterOfPosition(e),a=this.getLineStarts(),o;t+1>=a.length&&(o=this.getEnd()),o||(o=a[t+1]-1);let m=this.getFullText();return m[o]===`\n`&&m[o-1]===\"\\r\"?o-1:o}getNamedDeclarations(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations}computeNamedDeclarations(){let e=hy();return this.forEachChild(m),e;function t(v){let A=o(v);A&&e.add(A,v)}function a(v){let A=e.get(v);return A||e.set(v,A=[]),A}function o(v){let A=lf(v);return A&&(kf(A)&&Hr(A.expression)?A.expression.name.text:s1(A)?getNameFromPropertyName(A):void 0)}function m(v){switch(v.kind){case 262:case 218:case 174:case 173:let A=v,P=o(A);if(P){let h=a(P),y=Gi(h);y&&A.parent===y.parent&&A.symbol===y.symbol?A.body&&!y.body&&(h[h.length-1]=A):h.push(A)}Xt(v,m);break;case 263:case 231:case 264:case 265:case 266:case 267:case 271:case 281:case 276:case 273:case 274:case 177:case 178:case 187:t(v),Xt(v,m);break;case 169:if(!bs(v,31))break;case 260:case 208:{let h=v;if(Vg(h.name)){Xt(h.name,m);break}h.initializer&&m(h.initializer)}case 306:case 172:case 171:t(v);break;case 278:let l=v;l.exportClause&&(eh(l.exportClause)?Un(l.exportClause.elements,m):m(l.exportClause.name));break;case 272:let Q=v.importClause;Q&&(Q.name&&t(Q.name),Q.namedBindings&&(Q.namedBindings.kind===274?t(Q.namedBindings):Un(Q.namedBindings.elements,m)));break;case 226:yf(v)!==0&&t(v);default:Xt(v,m)}}}},Z6=class{constructor(e,t,a){this.fileName=e,this.text=t,this.skipTrivia=a||(o=>o)}getLineAndCharacterOfPosition(e){return Wm(this,e)}};function ev(){return{getNodeConstructor:()=>Gf,getTokenConstructor:()=>gh,getIdentifierConstructor:()=>bh,getPrivateIdentifierConstructor:()=>vh,getSourceFileConstructor:()=>K6,getSymbolConstructor:()=>X6,getTypeConstructor:()=>$6,getSignatureConstructor:()=>Q6,getSourceMapSourceConstructor:()=>Z6}}var tv=[\"getSemanticDiagnostics\",\"getSuggestionDiagnostics\",\"getCompilerOptionsDiagnostics\",\"getSemanticClassifications\",\"getEncodedSemanticClassifications\",\"getCodeFixesAtPosition\",\"getCombinedCodeFix\",\"applyCodeActionCommand\",\"organizeImports\",\"getEditsForFileRename\",\"getEmitOutput\",\"getApplicableRefactors\",\"getEditsForRefactor\",\"prepareCallHierarchy\",\"provideCallHierarchyIncomingCalls\",\"provideCallHierarchyOutgoingCalls\",\"provideInlayHints\",\"getSupportedCodeFixes\",\"getPasteEdits\"],b3=[...tv,\"getCompletionsAtPosition\",\"getCompletionEntryDetails\",\"getCompletionEntrySymbol\",\"getSignatureHelpItems\",\"getQuickInfoAtPosition\",\"getDefinitionAtPosition\",\"getDefinitionAndBoundSpan\",\"getImplementationAtPosition\",\"getTypeDefinitionAtPosition\",\"getReferencesAtPosition\",\"findReferences\",\"getDocumentHighlights\",\"getNavigateToItems\",\"getRenameInfo\",\"findRenameLocations\",\"getApplicableRefactors\",\"preparePasteEditsForFile\"];_b(ev());var Il=new Proxy({},{get:()=>!0});var wh=Il[\"4.8\"];function er(e,t=!1){var a;if(e!=null){if(wh){if(t||Nl(e)){let o=t1(e);return o?[...o]:void 0}return}return(a=e.modifiers)==null?void 0:a.filter(o=>!El(o))}}function ta(e,t=!1){var a;if(e!=null){if(wh){if(t||Wf(e)){let o=uf(e);return o?[...o]:void 0}return}return(a=e.decorators)==null?void 0:a.filter(El)}}var Eh={};var Ol=new Proxy({},{get:(e,t)=>t});var Ah=Ol,Ch=Ol;var C=Ah,Rt=Ch;var Dh=Il[\"5.0\"],ue=Ne,iv=new Set([ue.AmpersandAmpersandToken,ue.BarBarToken,ue.QuestionQuestionToken]),av=new Set([Ne.AmpersandAmpersandEqualsToken,Ne.AmpersandEqualsToken,Ne.AsteriskAsteriskEqualsToken,Ne.AsteriskEqualsToken,Ne.BarBarEqualsToken,Ne.BarEqualsToken,Ne.CaretEqualsToken,Ne.EqualsToken,Ne.GreaterThanGreaterThanEqualsToken,Ne.GreaterThanGreaterThanGreaterThanEqualsToken,Ne.LessThanLessThanEqualsToken,Ne.MinusEqualsToken,Ne.PercentEqualsToken,Ne.PlusEqualsToken,Ne.QuestionQuestionEqualsToken,Ne.SlashEqualsToken]),_v=new Set([ue.AmpersandAmpersandToken,ue.AmpersandToken,ue.AsteriskAsteriskToken,ue.AsteriskToken,ue.BarBarToken,ue.BarToken,ue.CaretToken,ue.EqualsEqualsEqualsToken,ue.EqualsEqualsToken,ue.ExclamationEqualsEqualsToken,ue.ExclamationEqualsToken,ue.GreaterThanEqualsToken,ue.GreaterThanGreaterThanGreaterThanToken,ue.GreaterThanGreaterThanToken,ue.GreaterThanToken,ue.InKeyword,ue.InstanceOfKeyword,ue.LessThanEqualsToken,ue.LessThanLessThanToken,ue.LessThanToken,ue.MinusToken,ue.PercentToken,ue.PlusToken,ue.SlashToken]);function sv(e){return av.has(e.kind)}function ov(e){return iv.has(e.kind)}function cv(e){return _v.has(e.kind)}function $r(e){return it(e)}function Ph(e){return e.kind!==ue.SemicolonClassElement}function He(e,t){let a=er(t);return(a==null?void 0:a.some(o=>o.kind===e))===!0}function Nh(e){let t=er(e);return t==null?null:t[t.length-1]??null}function Ih(e){return e.kind===ue.CommaToken}function lv(e){return e.kind===ue.SingleLineCommentTrivia||e.kind===ue.MultiLineCommentTrivia}function uv(e){return e.kind===ue.JSDocComment}function Oh(e){if(sv(e))return{type:C.AssignmentExpression,operator:$r(e.kind)};if(ov(e))return{type:C.LogicalExpression,operator:$r(e.kind)};if(cv(e))return{type:C.BinaryExpression,operator:$r(e.kind)};throw new Error(`Unexpected binary operator ${it(e.kind)}`)}function Ts(e,t){let a=t.getLineAndCharacterOfPosition(e);return{column:a.character,line:a.line+1}}function Qr(e,t){let[a,o]=e.map(m=>Ts(m,t));return{end:o,start:a}}function Mh(e){if(e.kind===Ne.Block)switch(e.parent.kind){case Ne.Constructor:case Ne.GetAccessor:case Ne.SetAccessor:case Ne.ArrowFunction:case Ne.FunctionExpression:case Ne.FunctionDeclaration:case Ne.MethodDeclaration:return!0;default:return!1}return!0}function $a(e,t){return[e.getStart(t),e.getEnd()]}function pv(e){return e.kind>=ue.FirstToken&&e.kind<=ue.LastToken}function Jh(e){return e.kind>=ue.JsxElement&&e.kind<=ue.JsxAttribute}function Ml(e){return e.flags&on.Let?\"let\":(e.flags&on.AwaitUsing)===on.AwaitUsing?\"await using\":e.flags&on.Const?\"const\":e.flags&on.Using?\"using\":\"var\"}function xi(e){let t=er(e);if(t!=null)for(let a of t)switch(a.kind){case ue.PublicKeyword:return\"public\";case ue.ProtectedKeyword:return\"protected\";case ue.PrivateKeyword:return\"private\";default:break}}function na(e,t,a){return o(t);function o(m){return a1(m)&&m.pos===e.end?m:gv(m.getChildren(a),v=>(v.pos<=e.pos&&v.end>e.end||v.pos===e.end)&&yv(v,a)?o(v):void 0)}}function fv(e,t){let a=e;for(;a;){if(t(a))return a;a=a.parent}}function dv(e){return!!fv(e,Jh)}function Qf(e){return Sr(!1,e,/&(?:#\\d+|#x[\\da-fA-F]+|[0-9a-zA-Z]+);/g,t=>{let a=t.slice(1,-1);if(a[0]===\"#\"){let o=a[1]===\"x\"?parseInt(a.slice(2),16):parseInt(a.slice(1),10);return o>1114111?t:String.fromCodePoint(o)}return Eh[a]||t})}function ra(e){return e.kind===ue.ComputedPropertyName}function Kf(e){return!!e.questionToken}function Zf(e){return e.type===C.ChainExpression}function Lh(e,t){return Zf(t)&&e.expression.kind!==Ne.ParenthesizedExpression}function mv(e){let t;if(Dh&&e.kind===ue.Identifier?t=Sl(e):\"originalKeywordKind\"in e&&(t=e.originalKeywordKind),t)return t===ue.NullKeyword?Rt.Null:t>=ue.FirstFutureReservedWord&&t<=ue.LastKeyword?Rt.Identifier:Rt.Keyword;if(e.kind>=ue.FirstKeyword&&e.kind<=ue.LastFutureReservedWord)return e.kind===ue.FalseKeyword||e.kind===ue.TrueKeyword?Rt.Boolean:Rt.Keyword;if(e.kind>=ue.FirstPunctuation&&e.kind<=ue.LastPunctuation)return Rt.Punctuator;if(e.kind>=ue.NoSubstitutionTemplateLiteral&&e.kind<=ue.TemplateTail)return Rt.Template;switch(e.kind){case ue.NumericLiteral:return Rt.Numeric;case ue.JsxText:return Rt.JSXText;case ue.StringLiteral:return e.parent.kind===ue.JsxAttribute||e.parent.kind===ue.JsxElement?Rt.JSXText:Rt.String;case ue.RegularExpressionLiteral:return Rt.RegularExpression;case ue.Identifier:case ue.ConstructorKeyword:case ue.GetKeyword:case ue.SetKeyword:default:}if(e.kind===ue.Identifier){if(Jh(e.parent))return Rt.JSXIdentifier;if(e.parent.kind===ue.PropertyAccessExpression&&dv(e))return Rt.JSXIdentifier}return Rt.Identifier}function hv(e,t){let a=e.kind===ue.JsxText?e.getFullStart():e.getStart(t),o=e.getEnd(),m=t.text.slice(a,o),v=mv(e),A=[a,o],P=Qr(A,t);return v===Rt.RegularExpression?{type:v,loc:P,range:A,regex:{flags:m.slice(m.lastIndexOf(\"/\")+1),pattern:m.slice(1,m.lastIndexOf(\"/\"))},value:m}:{type:v,loc:P,range:A,value:m}}function jh(e){let t=[];function a(o){lv(o)||uv(o)||(pv(o)&&o.kind!==ue.EndOfFileToken?t.push(hv(o,e)):o.getChildren(e).forEach(a))}return a(e),t}var $f=class extends Error{fileName;location;constructor(t,a,o){super(t),this.fileName=a,this.location=o,Object.defineProperty(this,\"name\",{configurable:!0,enumerable:!1,value:new.target.name})}get index(){return this.location.start.offset}get lineNumber(){return this.location.start.line}get column(){return this.location.start.column}};function ed(e,t,a,o=a){let[m,v]=[a,o].map(A=>{let{character:P,line:l}=t.getLineAndCharacterOfPosition(A);return{column:P,line:l+1,offset:A}});return new $f(e,t.fileName,{end:v,start:m})}function Rh(e){var t;return!!(\"illegalDecorators\"in e&&((t=e.illegalDecorators)!=null&&t.length))}function yv(e,t){return e.kind===ue.EndOfFileToken?!!e.jsDoc:e.getWidth(t)!==0}function gv(e,t){if(e!==void 0)for(let a=0;a=0&&e.kind!==ue.EndOfFileToken}function td(e){return!vv(e)}function qh(e){return cf(e.parent,mf)}function Tv(e){return He(ue.AbstractKeyword,e)}function xv(e){if(e.parameters.length&&!Pl(e)){let t=e.parameters[0];if(Sv(t))return t}return null}function Sv(e){return Uh(e.name)}function zh(e){switch(e.kind){case ue.ClassDeclaration:return!0;case ue.ClassExpression:return!0;case ue.PropertyDeclaration:{let{parent:t}=e;return!!(Wa(t)||vi(t)&&!Tv(e))}case ue.GetAccessor:case ue.SetAccessor:case ue.MethodDeclaration:{let{parent:t}=e;return!!e.body&&(Wa(t)||vi(t))}case ue.Parameter:{let{parent:t}=e,a=t.parent;return!!t&&\"body\"in t&&!!t.body&&(t.kind===ue.Constructor||t.kind===ue.MethodDeclaration||t.kind===ue.SetAccessor)&&xv(t)!==e&&!!a&&a.kind===ue.ClassDeclaration}}return!1}function Jl(e){switch(e.kind){case ue.Identifier:return!0;case ue.PropertyAccessExpression:case ue.ElementAccessExpression:return!(e.flags&on.OptionalChain);case ue.ParenthesizedExpression:case ue.TypeAssertionExpression:case ue.AsExpression:case ue.SatisfiesExpression:case ue.ExpressionWithTypeArguments:case ue.NonNullExpression:return Jl(e.expression);default:return!1}}function Fh(e){let t=er(e),a=e;for(;(!t||t.length===0)&&Ti(a.parent);){let o=er(a.parent);o!=null&&o.length&&(t=o),a=a.parent}return t}var T=Ne;function ad(e){return ed(\"message\"in e&&e.message||e.messageText,e.file,e.start)}var me,rd,Vh,Be,Vt,Qa,id,Ll=class{constructor(t,a){yp(this,me);Na(this,\"allowPattern\",!1);Na(this,\"ast\");Na(this,\"esTreeNodeToTSNodeMap\",new WeakMap);Na(this,\"options\");Na(this,\"tsNodeToESTreeNodeMap\",new WeakMap);this.ast=t,this.options={...a}}assertModuleSpecifier(t,a){var o;!a&&t.moduleSpecifier==null&&ge(this,me,Vt).call(this,t,\"Module specifier must be a string literal.\"),t.moduleSpecifier&&((o=t.moduleSpecifier)==null?void 0:o.kind)!==T.StringLiteral&&ge(this,me,Vt).call(this,t.moduleSpecifier,\"Module specifier must be a string literal.\")}convertBindingNameWithTypeAnnotation(t,a,o){let m=this.convertPattern(t);return a&&(m.typeAnnotation=this.convertTypeAnnotation(a,o),this.fixParentLocation(m,m.typeAnnotation.range)),m}convertBodyExpressions(t,a){let o=Mh(a);return t.map(m=>{let v=this.convertChild(m);if(o){if(v!=null&&v.expression&&Cl(m)&&Ya(m.expression)){let A=v.expression.raw;return v.directive=A.slice(1,-1),v}o=!1}return v}).filter(m=>m)}convertChainExpression(t,a){let{child:o,isOptional:m}=t.type===C.MemberExpression?{child:t.object,isOptional:t.optional}:t.type===C.CallExpression?{child:t.callee,isOptional:t.optional}:{child:t.expression,isOptional:!1},v=Lh(a,o);if(!v&&!m)return t;if(v&&Zf(o)){let A=o.expression;t.type===C.MemberExpression?t.object=A:t.type===C.CallExpression?t.callee=A:t.expression=A}return this.createNode(a,{type:C.ChainExpression,expression:t})}convertChild(t,a){return this.converter(t,a,!1)}convertPattern(t,a){return this.converter(t,a,!0)}convertTypeAnnotation(t,a){let o=(a==null?void 0:a.kind)===T.FunctionType||(a==null?void 0:a.kind)===T.ConstructorType?2:1,v=[t.getFullStart()-o,t.end],A=Qr(v,this.ast);return{type:C.TSTypeAnnotation,loc:A,range:v,typeAnnotation:this.convertChild(t)}}convertTypeArgumentsToTypeParameterInstantiation(t,a){let o=na(t,this.ast,this.ast);return this.createNode(a,{type:C.TSTypeParameterInstantiation,range:[t.pos-1,o.end],params:t.map(m=>this.convertChild(m))})}convertTSTypeParametersToTypeParametersDeclaration(t){let a=na(t,this.ast,this.ast),o=[t.pos-1,a.end];return{type:C.TSTypeParameterDeclaration,loc:Qr(o,this.ast),range:o,params:t.map(m=>this.convertChild(m))}}convertParameters(t){return t!=null&&t.length?t.map(a=>{var m;let o=this.convertChild(a);return o.decorators=((m=ta(a))==null?void 0:m.map(v=>this.convertChild(v)))??[],o}):[]}converter(t,a,o){if(!t)return null;ge(this,me,Vh).call(this,t);let m=this.allowPattern;o!==void 0&&(this.allowPattern=o);let v=this.convertNode(t,a??t.parent);return this.registerTSNodeInNodeMap(t,v),this.allowPattern=m,v}convertImportAttributes(t){return t===void 0?[]:t.elements.map(a=>this.convertChild(a))}convertJSXIdentifier(t){let a=this.createNode(t,{type:C.JSXIdentifier,name:t.getText()});return this.registerTSNodeInNodeMap(t,a),a}convertJSXNamespaceOrIdentifier(t){if(t.kind===Ne.JsxNamespacedName){let m=this.createNode(t,{type:C.JSXNamespacedName,name:this.createNode(t.name,{type:C.JSXIdentifier,name:t.name.text}),namespace:this.createNode(t.namespace,{type:C.JSXIdentifier,name:t.namespace.text})});return this.registerTSNodeInNodeMap(t,m),m}let a=t.getText(),o=a.indexOf(\":\");if(o>0){let m=$a(t,this.ast),v=this.createNode(t,{type:C.JSXNamespacedName,range:m,name:this.createNode(t,{type:C.JSXIdentifier,range:[m[0]+o+1,m[1]],name:a.slice(o+1)}),namespace:this.createNode(t,{type:C.JSXIdentifier,range:[m[0],m[0]+o],name:a.slice(0,o)})});return this.registerTSNodeInNodeMap(t,v),v}return this.convertJSXIdentifier(t)}convertJSXTagName(t,a){let o;switch(t.kind){case T.PropertyAccessExpression:t.name.kind===T.PrivateIdentifier&&ge(this,me,Be).call(this,t.name,\"Non-private identifier expected.\"),o=this.createNode(t,{type:C.JSXMemberExpression,object:this.convertJSXTagName(t.expression,a),property:this.convertJSXIdentifier(t.name)});break;case T.ThisKeyword:case T.Identifier:default:return this.convertJSXNamespaceOrIdentifier(t)}return this.registerTSNodeInNodeMap(t,o),o}convertMethodSignature(t){return this.createNode(t,{type:C.TSMethodSignature,accessibility:xi(t),computed:ra(t.name),key:this.convertChild(t.name),kind:(()=>{switch(t.kind){case T.GetAccessor:return\"get\";case T.SetAccessor:return\"set\";case T.MethodSignature:return\"method\"}})(),optional:Kf(t),params:this.convertParameters(t.parameters),readonly:He(T.ReadonlyKeyword,t),returnType:t.type&&this.convertTypeAnnotation(t.type,t),static:He(T.StaticKeyword,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)})}fixParentLocation(t,a){a[0]t.range[1]&&(t.range[1]=a[1],t.loc.end=Ts(t.range[1],this.ast))}convertNode(t,a){var o,m,v,A,P,l,Q,h;switch(t.kind){case T.SourceFile:return this.createNode(t,{type:C.Program,range:[t.getStart(this.ast),t.endOfFileToken.end],body:this.convertBodyExpressions(t.statements,t),comments:void 0,sourceType:t.externalModuleIndicator?\"module\":\"script\",tokens:void 0});case T.Block:return this.createNode(t,{type:C.BlockStatement,body:this.convertBodyExpressions(t.statements,t)});case T.Identifier:return Bh(t)?this.createNode(t,{type:C.ThisExpression}):this.createNode(t,{type:C.Identifier,decorators:[],name:t.text,optional:!1,typeAnnotation:void 0});case T.PrivateIdentifier:return this.createNode(t,{type:C.PrivateIdentifier,name:t.text.slice(1)});case T.WithStatement:return this.createNode(t,{type:C.WithStatement,body:this.convertChild(t.statement),object:this.convertChild(t.expression)});case T.ReturnStatement:return this.createNode(t,{type:C.ReturnStatement,argument:this.convertChild(t.expression)});case T.LabeledStatement:return this.createNode(t,{type:C.LabeledStatement,body:this.convertChild(t.statement),label:this.convertChild(t.label)});case T.ContinueStatement:return this.createNode(t,{type:C.ContinueStatement,label:this.convertChild(t.label)});case T.BreakStatement:return this.createNode(t,{type:C.BreakStatement,label:this.convertChild(t.label)});case T.IfStatement:return this.createNode(t,{type:C.IfStatement,alternate:this.convertChild(t.elseStatement),consequent:this.convertChild(t.thenStatement),test:this.convertChild(t.expression)});case T.SwitchStatement:return t.caseBlock.clauses.filter(y=>y.kind===T.DefaultClause).length>1&&ge(this,me,Be).call(this,t,\"A 'default' clause cannot appear more than once in a 'switch' statement.\"),this.createNode(t,{type:C.SwitchStatement,cases:t.caseBlock.clauses.map(y=>this.convertChild(y)),discriminant:this.convertChild(t.expression)});case T.CaseClause:case T.DefaultClause:return this.createNode(t,{type:C.SwitchCase,consequent:t.statements.map(y=>this.convertChild(y)),test:t.kind===T.CaseClause?this.convertChild(t.expression):null});case T.ThrowStatement:return t.expression.end===t.expression.pos&&ge(this,me,Vt).call(this,t,\"A throw statement must throw an expression.\"),this.createNode(t,{type:C.ThrowStatement,argument:this.convertChild(t.expression)});case T.TryStatement:return this.createNode(t,{type:C.TryStatement,block:this.convertChild(t.tryBlock),finalizer:this.convertChild(t.finallyBlock),handler:this.convertChild(t.catchClause)});case T.CatchClause:return(o=t.variableDeclaration)!=null&&o.initializer&&ge(this,me,Be).call(this,t.variableDeclaration.initializer,\"Catch clause variable cannot have an initializer.\"),this.createNode(t,{type:C.CatchClause,body:this.convertChild(t.block),param:t.variableDeclaration?this.convertBindingNameWithTypeAnnotation(t.variableDeclaration.name,t.variableDeclaration.type):null});case T.WhileStatement:return this.createNode(t,{type:C.WhileStatement,body:this.convertChild(t.statement),test:this.convertChild(t.expression)});case T.DoStatement:return this.createNode(t,{type:C.DoWhileStatement,body:this.convertChild(t.statement),test:this.convertChild(t.expression)});case T.ForStatement:return this.createNode(t,{type:C.ForStatement,body:this.convertChild(t.statement),init:this.convertChild(t.initializer),test:this.convertChild(t.condition),update:this.convertChild(t.incrementor)});case T.ForInStatement:return ge(this,me,rd).call(this,t.initializer,t.kind),this.createNode(t,{type:C.ForInStatement,body:this.convertChild(t.statement),left:this.convertPattern(t.initializer),right:this.convertChild(t.expression)});case T.ForOfStatement:return ge(this,me,rd).call(this,t.initializer,t.kind),this.createNode(t,{type:C.ForOfStatement,await:!!(t.awaitModifier&&t.awaitModifier.kind===T.AwaitKeyword),body:this.convertChild(t.statement),left:this.convertPattern(t.initializer),right:this.convertChild(t.expression)});case T.FunctionDeclaration:{let y=He(T.DeclareKeyword,t),g=He(T.AsyncKeyword,t),x=!!t.asteriskToken;y?t.body?ge(this,me,Be).call(this,t,\"An implementation cannot be declared in ambient contexts.\"):g?ge(this,me,Be).call(this,t,\"'async' modifier cannot be used in an ambient context.\"):x&&ge(this,me,Be).call(this,t,\"Generators are not allowed in an ambient context.\"):!t.body&&x&&ge(this,me,Be).call(this,t,\"A function signature cannot be declared as a generator.\");let I=this.createNode(t,{type:t.body?C.FunctionDeclaration:C.TSDeclareFunction,async:g,body:this.convertChild(t.body)||void 0,declare:y,expression:!1,generator:x,id:this.convertChild(t.name),params:this.convertParameters(t.parameters),returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});return this.fixExports(t,I)}case T.VariableDeclaration:{let y=!!t.exclamationToken,g=this.convertChild(t.initializer),x=this.convertBindingNameWithTypeAnnotation(t.name,t.type,t);return y&&(g?ge(this,me,Be).call(this,t,\"Declarations with initializers cannot also have definite assignment assertions.\"):(x.type!==C.Identifier||!x.typeAnnotation)&&ge(this,me,Be).call(this,t,\"Declarations with definite assignment assertions must also have type annotations.\")),this.createNode(t,{type:C.VariableDeclarator,definite:y,id:x,init:g})}case T.VariableStatement:{let y=this.createNode(t,{type:C.VariableDeclaration,declarations:t.declarationList.declarations.map(g=>this.convertChild(g)),declare:He(T.DeclareKeyword,t),kind:Ml(t.declarationList)});return y.declarations.length||ge(this,me,Vt).call(this,t,\"A variable declaration list must have at least one variable declarator.\"),(y.kind===\"using\"||y.kind===\"await using\")&&t.declarationList.declarations.forEach((g,x)=>{y.declarations[x].init==null&&ge(this,me,Be).call(this,g,`'${y.kind}' declarations must be initialized.`),y.declarations[x].id.type!==C.Identifier&&ge(this,me,Be).call(this,g.name,`'${y.kind}' declarations may not have binding patterns.`)}),(y.declare||[\"await using\",\"const\",\"using\"].includes(y.kind))&&t.declarationList.declarations.forEach((g,x)=>{y.declarations[x].definite&&ge(this,me,Be).call(this,g,\"A definite assignment assertion '!' is not permitted in this context.\")}),y.declare&&t.declarationList.declarations.forEach((g,x)=>{y.declarations[x].init&&([\"let\",\"var\"].includes(y.kind)||y.declarations[x].id.typeAnnotation)&&ge(this,me,Be).call(this,g,\"Initializers are not permitted in ambient contexts.\")}),this.fixExports(t,y)}case T.VariableDeclarationList:{let y=this.createNode(t,{type:C.VariableDeclaration,declarations:t.declarations.map(g=>this.convertChild(g)),declare:!1,kind:Ml(t)});return(y.kind===\"using\"||y.kind===\"await using\")&&t.declarations.forEach((g,x)=>{y.declarations[x].init!=null&&ge(this,me,Be).call(this,g,`'${y.kind}' declarations may not be initialized in for statement.`),y.declarations[x].id.type!==C.Identifier&&ge(this,me,Be).call(this,g.name,`'${y.kind}' declarations may not have binding patterns.`)}),y}case T.ExpressionStatement:return this.createNode(t,{type:C.ExpressionStatement,directive:void 0,expression:this.convertChild(t.expression)});case T.ThisKeyword:return this.createNode(t,{type:C.ThisExpression});case T.ArrayLiteralExpression:return this.allowPattern?this.createNode(t,{type:C.ArrayPattern,decorators:[],elements:t.elements.map(y=>this.convertPattern(y)),optional:!1,typeAnnotation:void 0}):this.createNode(t,{type:C.ArrayExpression,elements:t.elements.map(y=>this.convertChild(y))});case T.ObjectLiteralExpression:{if(this.allowPattern)return this.createNode(t,{type:C.ObjectPattern,decorators:[],optional:!1,properties:t.properties.map(g=>this.convertPattern(g)),typeAnnotation:void 0});let y=[];for(let g of t.properties)(g.kind===T.GetAccessor||g.kind===T.SetAccessor||g.kind===T.MethodDeclaration)&&!g.body&&ge(this,me,Vt).call(this,g.end-1,\"'{' expected.\"),y.push(this.convertChild(g));return this.createNode(t,{type:C.ObjectExpression,properties:y})}case T.PropertyAssignment:{let{exclamationToken:y,questionToken:g}=t;return g&&ge(this,me,Be).call(this,g,\"A property assignment cannot have a question token.\"),y&&ge(this,me,Be).call(this,y,\"A property assignment cannot have an exclamation token.\"),this.createNode(t,{type:C.Property,computed:ra(t.name),key:this.convertChild(t.name),kind:\"init\",method:!1,optional:!1,shorthand:!1,value:this.converter(t.initializer,t,this.allowPattern)})}case T.ShorthandPropertyAssignment:{let{exclamationToken:y,modifiers:g,questionToken:x}=t;return g&&ge(this,me,Be).call(this,g[0],\"A shorthand property assignment cannot have modifiers.\"),x&&ge(this,me,Be).call(this,x,\"A shorthand property assignment cannot have a question token.\"),y&&ge(this,me,Be).call(this,y,\"A shorthand property assignment cannot have an exclamation token.\"),t.objectAssignmentInitializer?this.createNode(t,{type:C.Property,computed:!1,key:this.convertChild(t.name),kind:\"init\",method:!1,optional:!1,shorthand:!0,value:this.createNode(t,{type:C.AssignmentPattern,decorators:[],left:this.convertPattern(t.name),optional:!1,right:this.convertChild(t.objectAssignmentInitializer),typeAnnotation:void 0})}):this.createNode(t,{type:C.Property,computed:!1,key:this.convertChild(t.name),kind:\"init\",method:!1,optional:!1,shorthand:!0,value:this.convertChild(t.name)})}case T.ComputedPropertyName:return this.convertChild(t.expression);case T.PropertyDeclaration:{let y=He(T.AbstractKeyword,t);y&&t.initializer&&ge(this,me,Be).call(this,t.initializer,\"Abstract property cannot have an initializer.\");let g=He(T.AccessorKeyword,t),x=g?y?C.TSAbstractAccessorProperty:C.AccessorProperty:y?C.TSAbstractPropertyDefinition:C.PropertyDefinition,I=this.convertChild(t.name);return this.createNode(t,{type:x,accessibility:xi(t),computed:ra(t.name),declare:He(T.DeclareKeyword,t),decorators:((m=ta(t))==null?void 0:m.map(re=>this.convertChild(re)))??[],definite:!!t.exclamationToken,key:I,optional:(I.type===C.Literal||t.name.kind===T.Identifier||t.name.kind===T.ComputedPropertyName||t.name.kind===T.PrivateIdentifier)&&!!t.questionToken,override:He(T.OverrideKeyword,t),readonly:He(T.ReadonlyKeyword,t),static:He(T.StaticKeyword,t),typeAnnotation:t.type&&this.convertTypeAnnotation(t.type,t),value:y?null:this.convertChild(t.initializer)})}case T.GetAccessor:case T.SetAccessor:if(t.parent.kind===T.InterfaceDeclaration||t.parent.kind===T.TypeLiteral)return this.convertMethodSignature(t);case T.MethodDeclaration:{let y=this.createNode(t,{type:t.body?C.FunctionExpression:C.TSEmptyBodyFunctionExpression,range:[t.parameters.pos-1,t.end],async:He(T.AsyncKeyword,t),body:this.convertChild(t.body),declare:!1,expression:!1,generator:!!t.asteriskToken,id:null,params:[],returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});y.typeParameters&&this.fixParentLocation(y,y.typeParameters.range);let g;if(a.kind===T.ObjectLiteralExpression)y.params=t.parameters.map(x=>this.convertChild(x)),g=this.createNode(t,{type:C.Property,computed:ra(t.name),key:this.convertChild(t.name),kind:\"init\",method:t.kind===T.MethodDeclaration,optional:!!t.questionToken,shorthand:!1,value:y});else{y.params=this.convertParameters(t.parameters);let x=He(T.AbstractKeyword,t)?C.TSAbstractMethodDefinition:C.MethodDefinition;g=this.createNode(t,{type:x,accessibility:xi(t),computed:ra(t.name),decorators:((v=ta(t))==null?void 0:v.map(I=>this.convertChild(I)))??[],key:this.convertChild(t.name),kind:\"method\",optional:!!t.questionToken,override:He(T.OverrideKeyword,t),static:He(T.StaticKeyword,t),value:y})}return t.kind===T.GetAccessor?g.kind=\"get\":t.kind===T.SetAccessor?g.kind=\"set\":!g.static&&t.name.kind===T.StringLiteral&&t.name.text===\"constructor\"&&g.type!==C.Property&&(g.kind=\"constructor\"),g}case T.Constructor:{let y=Nh(t),g=(y&&na(y,t,this.ast))??t.getFirstToken(),x=this.createNode(t,{type:t.body?C.FunctionExpression:C.TSEmptyBodyFunctionExpression,range:[t.parameters.pos-1,t.end],async:!1,body:this.convertChild(t.body),declare:!1,expression:!1,generator:!1,id:null,params:this.convertParameters(t.parameters),returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});x.typeParameters&&this.fixParentLocation(x,x.typeParameters.range);let I=this.createNode(t,{type:C.Identifier,range:[g.getStart(this.ast),g.end],decorators:[],name:\"constructor\",optional:!1,typeAnnotation:void 0}),re=He(T.StaticKeyword,t);return this.createNode(t,{type:He(T.AbstractKeyword,t)?C.TSAbstractMethodDefinition:C.MethodDefinition,accessibility:xi(t),computed:!1,decorators:[],key:I,kind:re?\"method\":\"constructor\",optional:!1,override:!1,static:re,value:x})}case T.FunctionExpression:return this.createNode(t,{type:C.FunctionExpression,async:He(T.AsyncKeyword,t),body:this.convertChild(t.body),declare:!1,expression:!1,generator:!!t.asteriskToken,id:this.convertChild(t.name),params:this.convertParameters(t.parameters),returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});case T.SuperKeyword:return this.createNode(t,{type:C.Super});case T.ArrayBindingPattern:return this.createNode(t,{type:C.ArrayPattern,decorators:[],elements:t.elements.map(y=>this.convertPattern(y)),optional:!1,typeAnnotation:void 0});case T.OmittedExpression:return null;case T.ObjectBindingPattern:return this.createNode(t,{type:C.ObjectPattern,decorators:[],optional:!1,properties:t.elements.map(y=>this.convertPattern(y)),typeAnnotation:void 0});case T.BindingElement:{if(a.kind===T.ArrayBindingPattern){let g=this.convertChild(t.name,a);return t.initializer?this.createNode(t,{type:C.AssignmentPattern,decorators:[],left:g,optional:!1,right:this.convertChild(t.initializer),typeAnnotation:void 0}):t.dotDotDotToken?this.createNode(t,{type:C.RestElement,argument:g,decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):g}let y;return t.dotDotDotToken?y=this.createNode(t,{type:C.RestElement,argument:this.convertChild(t.propertyName??t.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):y=this.createNode(t,{type:C.Property,computed:!!(t.propertyName&&t.propertyName.kind===T.ComputedPropertyName),key:this.convertChild(t.propertyName??t.name),kind:\"init\",method:!1,optional:!1,shorthand:!t.propertyName,value:this.convertChild(t.name)}),t.initializer&&(y.value=this.createNode(t,{type:C.AssignmentPattern,range:[t.name.getStart(this.ast),t.initializer.end],decorators:[],left:this.convertChild(t.name),optional:!1,right:this.convertChild(t.initializer),typeAnnotation:void 0})),y}case T.ArrowFunction:return this.createNode(t,{type:C.ArrowFunctionExpression,async:He(T.AsyncKeyword,t),body:this.convertChild(t.body),expression:t.body.kind!==T.Block,generator:!1,id:null,params:this.convertParameters(t.parameters),returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});case T.YieldExpression:return this.createNode(t,{type:C.YieldExpression,argument:this.convertChild(t.expression),delegate:!!t.asteriskToken});case T.AwaitExpression:return this.createNode(t,{type:C.AwaitExpression,argument:this.convertChild(t.expression)});case T.NoSubstitutionTemplateLiteral:return this.createNode(t,{type:C.TemplateLiteral,expressions:[],quasis:[this.createNode(t,{type:C.TemplateElement,tail:!0,value:{cooked:t.text,raw:this.ast.text.slice(t.getStart(this.ast)+1,t.end-1)}})]});case T.TemplateExpression:{let y=this.createNode(t,{type:C.TemplateLiteral,expressions:[],quasis:[this.convertChild(t.head)]});return t.templateSpans.forEach(g=>{y.expressions.push(this.convertChild(g.expression)),y.quasis.push(this.convertChild(g.literal))}),y}case T.TaggedTemplateExpression:return this.createNode(t,{type:C.TaggedTemplateExpression,quasi:this.convertChild(t.template),tag:this.convertChild(t.tag),typeArguments:t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t)});case T.TemplateHead:case T.TemplateMiddle:case T.TemplateTail:{let y=t.kind===T.TemplateTail;return this.createNode(t,{type:C.TemplateElement,tail:y,value:{cooked:t.text,raw:this.ast.text.slice(t.getStart(this.ast)+1,t.end-(y?1:2))}})}case T.SpreadAssignment:case T.SpreadElement:return this.allowPattern?this.createNode(t,{type:C.RestElement,argument:this.convertPattern(t.expression),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):this.createNode(t,{type:C.SpreadElement,argument:this.convertChild(t.expression)});case T.Parameter:{let y,g;return t.dotDotDotToken?y=g=this.createNode(t,{type:C.RestElement,argument:this.convertChild(t.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):t.initializer?(y=this.convertChild(t.name),g=this.createNode(t,{type:C.AssignmentPattern,decorators:[],left:y,optional:!1,right:this.convertChild(t.initializer),typeAnnotation:void 0}),er(t)&&(g.range[0]=y.range[0],g.loc=Qr(g.range,this.ast))):y=g=this.convertChild(t.name,a),t.type&&(y.typeAnnotation=this.convertTypeAnnotation(t.type,t),this.fixParentLocation(y,y.typeAnnotation.range)),t.questionToken&&(t.questionToken.end>y.range[1]&&(y.range[1]=t.questionToken.end,y.loc.end=Ts(y.range[1],this.ast)),y.optional=!0),er(t)?this.createNode(t,{type:C.TSParameterProperty,accessibility:xi(t),decorators:[],override:He(T.OverrideKeyword,t),parameter:g,readonly:He(T.ReadonlyKeyword,t),static:He(T.StaticKeyword,t)}):g}case T.ClassDeclaration:!t.name&&(!He(Ne.ExportKeyword,t)||!He(Ne.DefaultKeyword,t))&&ge(this,me,Vt).call(this,t,\"A class declaration without the 'default' modifier must have a name.\");case T.ClassExpression:{let y=t.heritageClauses??[],g=t.kind===T.ClassDeclaration?C.ClassDeclaration:C.ClassExpression,x,I;for(let he of y){let{token:ye,types:de}=he;de.length===0&&ge(this,me,Vt).call(this,he,`'${it(ye)}' list cannot be empty.`),ye===T.ExtendsKeyword?(x&&ge(this,me,Vt).call(this,he,\"'extends' clause already seen.\"),I&&ge(this,me,Vt).call(this,he,\"'extends' clause must precede 'implements' clause.\"),de.length>1&&ge(this,me,Vt).call(this,de[1],\"Classes can only extend a single class.\"),x??(x=he)):ye===T.ImplementsKeyword&&(I&&ge(this,me,Vt).call(this,he,\"'implements' clause already seen.\"),I??(I=he))}let re=this.createNode(t,{type:g,abstract:He(T.AbstractKeyword,t),body:this.createNode(t,{type:C.ClassBody,range:[t.members.pos-1,t.end],body:t.members.filter(Ph).map(he=>this.convertChild(he))}),declare:He(T.DeclareKeyword,t),decorators:((A=ta(t))==null?void 0:A.map(he=>this.convertChild(he)))??[],id:this.convertChild(t.name),implements:(I==null?void 0:I.types.map(he=>this.convertChild(he)))??[],superClass:x!=null&&x.types[0]?this.convertChild(x.types[0].expression):null,superTypeArguments:void 0,typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});return(P=x==null?void 0:x.types[0])!=null&&P.typeArguments&&(re.superTypeArguments=this.convertTypeArgumentsToTypeParameterInstantiation(x.types[0].typeArguments,x.types[0])),this.fixExports(t,re)}case T.ModuleBlock:return this.createNode(t,{type:C.TSModuleBlock,body:this.convertBodyExpressions(t.statements,t)});case T.ImportDeclaration:{this.assertModuleSpecifier(t,!1);let y=this.createNode(t,ge(this,me,Qa).call(this,{type:C.ImportDeclaration,attributes:this.convertImportAttributes(t.attributes??t.assertClause),importKind:\"value\",source:this.convertChild(t.moduleSpecifier),specifiers:[]},\"assertions\",\"attributes\",!0));if(t.importClause&&(t.importClause.isTypeOnly&&(y.importKind=\"type\"),t.importClause.name&&y.specifiers.push(this.convertChild(t.importClause)),t.importClause.namedBindings))switch(t.importClause.namedBindings.kind){case T.NamespaceImport:y.specifiers.push(this.convertChild(t.importClause.namedBindings));break;case T.NamedImports:y.specifiers.push(...t.importClause.namedBindings.elements.map(g=>this.convertChild(g)));break}return y}case T.NamespaceImport:return this.createNode(t,{type:C.ImportNamespaceSpecifier,local:this.convertChild(t.name)});case T.ImportSpecifier:return this.createNode(t,{type:C.ImportSpecifier,imported:this.convertChild(t.propertyName??t.name),importKind:t.isTypeOnly?\"type\":\"value\",local:this.convertChild(t.name)});case T.ImportClause:{let y=this.convertChild(t.name);return this.createNode(t,{type:C.ImportDefaultSpecifier,range:y.range,local:y})}case T.ExportDeclaration:return((l=t.exportClause)==null?void 0:l.kind)===T.NamedExports?(this.assertModuleSpecifier(t,!0),this.createNode(t,ge(this,me,Qa).call(this,{type:C.ExportNamedDeclaration,attributes:this.convertImportAttributes(t.attributes??t.assertClause),declaration:null,exportKind:t.isTypeOnly?\"type\":\"value\",source:this.convertChild(t.moduleSpecifier),specifiers:t.exportClause.elements.map(y=>this.convertChild(y,t))},\"assertions\",\"attributes\",!0))):(this.assertModuleSpecifier(t,!1),this.createNode(t,ge(this,me,Qa).call(this,{type:C.ExportAllDeclaration,attributes:this.convertImportAttributes(t.attributes??t.assertClause),exported:((Q=t.exportClause)==null?void 0:Q.kind)===T.NamespaceExport?this.convertChild(t.exportClause.name):null,exportKind:t.isTypeOnly?\"type\":\"value\",source:this.convertChild(t.moduleSpecifier)},\"assertions\",\"attributes\",!0)));case T.ExportSpecifier:{let y=t.propertyName??t.name;return y.kind===T.StringLiteral&&a.kind===T.ExportDeclaration&&((h=a.moduleSpecifier)==null?void 0:h.kind)!==T.StringLiteral&&ge(this,me,Be).call(this,y,\"A string literal cannot be used as a local exported binding without `from`.\"),this.createNode(t,{type:C.ExportSpecifier,exported:this.convertChild(t.name),exportKind:t.isTypeOnly?\"type\":\"value\",local:this.convertChild(y)})}case T.ExportAssignment:return t.isExportEquals?this.createNode(t,{type:C.TSExportAssignment,expression:this.convertChild(t.expression)}):this.createNode(t,{type:C.ExportDefaultDeclaration,declaration:this.convertChild(t.expression),exportKind:\"value\"});case T.PrefixUnaryExpression:case T.PostfixUnaryExpression:{let y=$r(t.operator);return y===\"++\"||y===\"--\"?(Jl(t.operand)||ge(this,me,Vt).call(this,t.operand,\"Invalid left-hand side expression in unary operation\"),this.createNode(t,{type:C.UpdateExpression,argument:this.convertChild(t.operand),operator:y,prefix:t.kind===T.PrefixUnaryExpression})):this.createNode(t,{type:C.UnaryExpression,argument:this.convertChild(t.operand),operator:y,prefix:t.kind===T.PrefixUnaryExpression})}case T.DeleteExpression:return this.createNode(t,{type:C.UnaryExpression,argument:this.convertChild(t.expression),operator:\"delete\",prefix:!0});case T.VoidExpression:return this.createNode(t,{type:C.UnaryExpression,argument:this.convertChild(t.expression),operator:\"void\",prefix:!0});case T.TypeOfExpression:return this.createNode(t,{type:C.UnaryExpression,argument:this.convertChild(t.expression),operator:\"typeof\",prefix:!0});case T.TypeOperator:return this.createNode(t,{type:C.TSTypeOperator,operator:$r(t.operator),typeAnnotation:this.convertChild(t.type)});case T.BinaryExpression:{if(Ih(t.operatorToken)){let g=this.createNode(t,{type:C.SequenceExpression,expressions:[]}),x=this.convertChild(t.left);return x.type===C.SequenceExpression&&t.left.kind!==T.ParenthesizedExpression?g.expressions.push(...x.expressions):g.expressions.push(x),g.expressions.push(this.convertChild(t.right)),g}let y=Oh(t.operatorToken);return this.allowPattern&&y.type===C.AssignmentExpression?this.createNode(t,{type:C.AssignmentPattern,decorators:[],left:this.convertPattern(t.left,t),optional:!1,right:this.convertChild(t.right),typeAnnotation:void 0}):this.createNode(t,{...y,left:this.converter(t.left,t,y.type===C.AssignmentExpression),right:this.convertChild(t.right)})}case T.PropertyAccessExpression:{let y=this.convertChild(t.expression),g=this.convertChild(t.name),I=this.createNode(t,{type:C.MemberExpression,computed:!1,object:y,optional:t.questionDotToken!==void 0,property:g});return this.convertChainExpression(I,t)}case T.ElementAccessExpression:{let y=this.convertChild(t.expression),g=this.convertChild(t.argumentExpression),I=this.createNode(t,{type:C.MemberExpression,computed:!0,object:y,optional:t.questionDotToken!==void 0,property:g});return this.convertChainExpression(I,t)}case T.CallExpression:{if(t.expression.kind===T.ImportKeyword)return t.arguments.length!==1&&t.arguments.length!==2&&ge(this,me,Vt).call(this,t.arguments[2]??t,\"Dynamic import requires exactly one or two arguments.\"),this.createNode(t,ge(this,me,Qa).call(this,{type:C.ImportExpression,options:t.arguments[1]?this.convertChild(t.arguments[1]):null,source:this.convertChild(t.arguments[0])},\"attributes\",\"options\",!0));let y=this.convertChild(t.expression),g=t.arguments.map(re=>this.convertChild(re)),x=t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t),I=this.createNode(t,{type:C.CallExpression,arguments:g,callee:y,optional:t.questionDotToken!==void 0,typeArguments:x});return this.convertChainExpression(I,t)}case T.NewExpression:{let y=t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t);return this.createNode(t,{type:C.NewExpression,arguments:t.arguments?t.arguments.map(g=>this.convertChild(g)):[],callee:this.convertChild(t.expression),typeArguments:y})}case T.ConditionalExpression:return this.createNode(t,{type:C.ConditionalExpression,alternate:this.convertChild(t.whenFalse),consequent:this.convertChild(t.whenTrue),test:this.convertChild(t.condition)});case T.MetaProperty:return this.createNode(t,{type:C.MetaProperty,meta:this.createNode(t.getFirstToken(),{type:C.Identifier,decorators:[],name:$r(t.keywordToken),optional:!1,typeAnnotation:void 0}),property:this.convertChild(t.name)});case T.Decorator:return this.createNode(t,{type:C.Decorator,expression:this.convertChild(t.expression)});case T.StringLiteral:return this.createNode(t,{type:C.Literal,raw:t.getText(),value:a.kind===T.JsxAttribute?Qf(t.text):t.text});case T.NumericLiteral:return this.createNode(t,{type:C.Literal,raw:t.getText(),value:Number(t.text)});case T.BigIntLiteral:{let y=$a(t,this.ast),g=this.ast.text.slice(y[0],y[1]),x=Sr(!1,g.slice(0,-1),\"_\",\"\"),I=typeof BigInt<\"u\"?BigInt(x):null;return this.createNode(t,{type:C.Literal,range:y,bigint:I==null?x:String(I),raw:g,value:I})}case T.RegularExpressionLiteral:{let y=t.text.slice(1,t.text.lastIndexOf(\"/\")),g=t.text.slice(t.text.lastIndexOf(\"/\")+1),x=null;try{x=new RegExp(y,g)}catch{}return this.createNode(t,{type:C.Literal,raw:t.text,regex:{flags:g,pattern:y},value:x})}case T.TrueKeyword:return this.createNode(t,{type:C.Literal,raw:\"true\",value:!0});case T.FalseKeyword:return this.createNode(t,{type:C.Literal,raw:\"false\",value:!1});case T.NullKeyword:return this.createNode(t,{type:C.Literal,raw:\"null\",value:null});case T.EmptyStatement:return this.createNode(t,{type:C.EmptyStatement});case T.DebuggerStatement:return this.createNode(t,{type:C.DebuggerStatement});case T.JsxElement:return this.createNode(t,{type:C.JSXElement,children:t.children.map(y=>this.convertChild(y)),closingElement:this.convertChild(t.closingElement),openingElement:this.convertChild(t.openingElement)});case T.JsxFragment:return this.createNode(t,{type:C.JSXFragment,children:t.children.map(y=>this.convertChild(y)),closingFragment:this.convertChild(t.closingFragment),openingFragment:this.convertChild(t.openingFragment)});case T.JsxSelfClosingElement:return this.createNode(t,{type:C.JSXElement,children:[],closingElement:null,openingElement:this.createNode(t,{type:C.JSXOpeningElement,range:$a(t,this.ast),attributes:t.attributes.properties.map(y=>this.convertChild(y)),name:this.convertJSXTagName(t.tagName,t),selfClosing:!0,typeArguments:t.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t):void 0})});case T.JsxOpeningElement:return this.createNode(t,{type:C.JSXOpeningElement,attributes:t.attributes.properties.map(y=>this.convertChild(y)),name:this.convertJSXTagName(t.tagName,t),selfClosing:!1,typeArguments:t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t)});case T.JsxClosingElement:return this.createNode(t,{type:C.JSXClosingElement,name:this.convertJSXTagName(t.tagName,t)});case T.JsxOpeningFragment:return this.createNode(t,{type:C.JSXOpeningFragment});case T.JsxClosingFragment:return this.createNode(t,{type:C.JSXClosingFragment});case T.JsxExpression:{let y=t.expression?this.convertChild(t.expression):this.createNode(t,{type:C.JSXEmptyExpression,range:[t.getStart(this.ast)+1,t.getEnd()-1]});return t.dotDotDotToken?this.createNode(t,{type:C.JSXSpreadChild,expression:y}):this.createNode(t,{type:C.JSXExpressionContainer,expression:y})}case T.JsxAttribute:return this.createNode(t,{type:C.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(t.name),value:this.convertChild(t.initializer)});case T.JsxText:{let y=t.getFullStart(),g=t.getEnd(),x=this.ast.text.slice(y,g);return this.createNode(t,{type:C.JSXText,range:[y,g],raw:x,value:Qf(x)})}case T.JsxSpreadAttribute:return this.createNode(t,{type:C.JSXSpreadAttribute,argument:this.convertChild(t.expression)});case T.QualifiedName:return this.createNode(t,{type:C.TSQualifiedName,left:this.convertChild(t.left),right:this.convertChild(t.right)});case T.TypeReference:return this.createNode(t,{type:C.TSTypeReference,typeArguments:t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t),typeName:this.convertChild(t.typeName)});case T.TypeParameter:return this.createNode(t,{type:C.TSTypeParameter,const:He(T.ConstKeyword,t),constraint:t.constraint&&this.convertChild(t.constraint),default:t.default?this.convertChild(t.default):void 0,in:He(T.InKeyword,t),name:this.convertChild(t.name),out:He(T.OutKeyword,t)});case T.ThisType:return this.createNode(t,{type:C.TSThisType});case T.AnyKeyword:case T.BigIntKeyword:case T.BooleanKeyword:case T.NeverKeyword:case T.NumberKeyword:case T.ObjectKeyword:case T.StringKeyword:case T.SymbolKeyword:case T.UnknownKeyword:case T.VoidKeyword:case T.UndefinedKeyword:case T.IntrinsicKeyword:return this.createNode(t,{type:C[`TS${T[t.kind]}`]});case T.NonNullExpression:{let y=this.createNode(t,{type:C.TSNonNullExpression,expression:this.convertChild(t.expression)});return this.convertChainExpression(y,t)}case T.TypeLiteral:return this.createNode(t,{type:C.TSTypeLiteral,members:t.members.map(y=>this.convertChild(y))});case T.ArrayType:return this.createNode(t,{type:C.TSArrayType,elementType:this.convertChild(t.elementType)});case T.IndexedAccessType:return this.createNode(t,{type:C.TSIndexedAccessType,indexType:this.convertChild(t.indexType),objectType:this.convertChild(t.objectType)});case T.ConditionalType:return this.createNode(t,{type:C.TSConditionalType,checkType:this.convertChild(t.checkType),extendsType:this.convertChild(t.extendsType),falseType:this.convertChild(t.falseType),trueType:this.convertChild(t.trueType)});case T.TypeQuery:return this.createNode(t,{type:C.TSTypeQuery,exprName:this.convertChild(t.exprName),typeArguments:t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t)});case T.MappedType:return t.members&&t.members.length>0&&ge(this,me,Vt).call(this,t.members[0],\"A mapped type may not declare properties or methods.\"),this.createNode(t,ge(this,me,id).call(this,{type:C.TSMappedType,constraint:this.convertChild(t.typeParameter.constraint),key:this.convertChild(t.typeParameter.name),nameType:this.convertChild(t.nameType)??null,optional:t.questionToken&&(t.questionToken.kind===T.QuestionToken||$r(t.questionToken.kind)),readonly:t.readonlyToken&&(t.readonlyToken.kind===T.ReadonlyKeyword||$r(t.readonlyToken.kind)),typeAnnotation:t.type&&this.convertChild(t.type)},\"typeParameter\",\"'constraint' and 'key'\",this.convertChild(t.typeParameter)));case T.ParenthesizedExpression:return this.convertChild(t.expression,a);case T.TypeAliasDeclaration:{let y=this.createNode(t,{type:C.TSTypeAliasDeclaration,declare:He(T.DeclareKeyword,t),id:this.convertChild(t.name),typeAnnotation:this.convertChild(t.type),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});return this.fixExports(t,y)}case T.MethodSignature:return this.convertMethodSignature(t);case T.PropertySignature:{let{initializer:y}=t;return y&&ge(this,me,Be).call(this,y,\"A property signature cannot have an initializer.\"),this.createNode(t,{type:C.TSPropertySignature,accessibility:xi(t),computed:ra(t.name),key:this.convertChild(t.name),optional:Kf(t),readonly:He(T.ReadonlyKeyword,t),static:He(T.StaticKeyword,t),typeAnnotation:t.type&&this.convertTypeAnnotation(t.type,t)})}case T.IndexSignature:return this.createNode(t,{type:C.TSIndexSignature,accessibility:xi(t),parameters:t.parameters.map(y=>this.convertChild(y)),readonly:He(T.ReadonlyKeyword,t),static:He(T.StaticKeyword,t),typeAnnotation:t.type&&this.convertTypeAnnotation(t.type,t)});case T.ConstructorType:return this.createNode(t,{type:C.TSConstructorType,abstract:He(T.AbstractKeyword,t),params:this.convertParameters(t.parameters),returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});case T.FunctionType:{let{modifiers:y}=t;y&&ge(this,me,Be).call(this,y[0],\"A function type cannot have modifiers.\")}case T.ConstructSignature:case T.CallSignature:{let y=t.kind===T.ConstructSignature?C.TSConstructSignatureDeclaration:t.kind===T.CallSignature?C.TSCallSignatureDeclaration:C.TSFunctionType;return this.createNode(t,{type:y,params:this.convertParameters(t.parameters),returnType:t.type&&this.convertTypeAnnotation(t.type,t),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)})}case T.ExpressionWithTypeArguments:{let y=a.kind,g=y===T.InterfaceDeclaration?C.TSInterfaceHeritage:y===T.HeritageClause?C.TSClassImplements:C.TSInstantiationExpression;return this.createNode(t,{type:g,expression:this.convertChild(t.expression),typeArguments:t.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t)})}case T.InterfaceDeclaration:{let y=t.heritageClauses??[],g=[];for(let I of y){I.token!==T.ExtendsKeyword&&ge(this,me,Be).call(this,I,I.token===T.ImplementsKeyword?\"Interface declaration cannot have 'implements' clause.\":\"Unexpected token.\");for(let re of I.types)g.push(this.convertChild(re,t))}let x=this.createNode(t,{type:C.TSInterfaceDeclaration,body:this.createNode(t,{type:C.TSInterfaceBody,range:[t.members.pos-1,t.end],body:t.members.map(I=>this.convertChild(I))}),declare:He(T.DeclareKeyword,t),extends:g,id:this.convertChild(t.name),typeParameters:t.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters)});return this.fixExports(t,x)}case T.TypePredicate:{let y=this.createNode(t,{type:C.TSTypePredicate,asserts:t.assertsModifier!==void 0,parameterName:this.convertChild(t.parameterName),typeAnnotation:null});return t.type&&(y.typeAnnotation=this.convertTypeAnnotation(t.type,t),y.typeAnnotation.loc=y.typeAnnotation.typeAnnotation.loc,y.typeAnnotation.range=y.typeAnnotation.typeAnnotation.range),y}case T.ImportType:{let y=$a(t,this.ast);if(t.isTypeOf){let x=na(t.getFirstToken(),t,this.ast);y[0]=x.getStart(this.ast)}let g=this.createNode(t,{type:C.TSImportType,range:y,argument:this.convertChild(t.argument),qualifier:this.convertChild(t.qualifier),typeArguments:t.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t):null});return t.isTypeOf?this.createNode(t,{type:C.TSTypeQuery,exprName:g,typeArguments:void 0}):g}case T.EnumDeclaration:{let y=t.members.map(x=>this.convertChild(x)),g=this.createNode(t,ge(this,me,id).call(this,{type:C.TSEnumDeclaration,body:this.createNode(t,{type:C.TSEnumBody,range:[t.members.pos-1,t.end],members:y}),const:He(T.ConstKeyword,t),declare:He(T.DeclareKeyword,t),id:this.convertChild(t.name)},\"members\",\"'body.members'\",t.members.map(x=>this.convertChild(x))));return this.fixExports(t,g)}case T.EnumMember:return this.createNode(t,{type:C.TSEnumMember,computed:t.name.kind===Ne.ComputedPropertyName,id:this.convertChild(t.name),initializer:t.initializer&&this.convertChild(t.initializer)});case T.ModuleDeclaration:{let y=He(T.DeclareKeyword,t),g=this.createNode(t,{type:C.TSModuleDeclaration,...(()=>{if(t.flags&on.GlobalAugmentation){let I=this.convertChild(t.name),re=this.convertChild(t.body);return(re==null||re.type===C.TSModuleDeclaration)&&ge(this,me,Vt).call(this,t.body??t,\"Expected a valid module body\"),I.type!==C.Identifier&&ge(this,me,Vt).call(this,t.name,\"global module augmentation must have an Identifier id\"),{body:re,declare:!1,global:!1,id:I,kind:\"global\"}}if(!(t.flags&on.Namespace)){let I=this.convertChild(t.body);return{kind:\"module\",...I!=null?{body:I}:{},declare:!1,global:!1,id:this.convertChild(t.name)}}t.body==null&&ge(this,me,Vt).call(this,t,\"Expected a module body\"),t.name.kind!==Ne.Identifier&&ge(this,me,Vt).call(this,t.name,\"`namespace`s must have an Identifier id\");let x=this.createNode(t.name,{type:C.Identifier,range:[t.name.getStart(this.ast),t.name.getEnd()],decorators:[],name:t.name.text,optional:!1,typeAnnotation:void 0});for(;t.body&&Ti(t.body)&&t.body.name;){t=t.body,y||(y=He(T.DeclareKeyword,t));let I=t.name,re=this.createNode(I,{type:C.Identifier,range:[I.getStart(this.ast),I.getEnd()],decorators:[],name:I.text,optional:!1,typeAnnotation:void 0});x=this.createNode(I,{type:C.TSQualifiedName,range:[x.range[0],re.range[1]],left:x,right:re})}return{body:this.convertChild(t.body),declare:!1,global:!1,id:x,kind:\"namespace\"}})()});return g.declare=y,t.flags&on.GlobalAugmentation&&(g.global=!0),this.fixExports(t,g)}case T.ParenthesizedType:return this.convertChild(t.type);case T.UnionType:return this.createNode(t,{type:C.TSUnionType,types:t.types.map(y=>this.convertChild(y))});case T.IntersectionType:return this.createNode(t,{type:C.TSIntersectionType,types:t.types.map(y=>this.convertChild(y))});case T.AsExpression:return this.createNode(t,{type:C.TSAsExpression,expression:this.convertChild(t.expression),typeAnnotation:this.convertChild(t.type)});case T.InferType:return this.createNode(t,{type:C.TSInferType,typeParameter:this.convertChild(t.typeParameter)});case T.LiteralType:return t.literal.kind===T.NullKeyword?this.createNode(t.literal,{type:C.TSNullKeyword}):this.createNode(t,{type:C.TSLiteralType,literal:this.convertChild(t.literal)});case T.TypeAssertionExpression:return this.createNode(t,{type:C.TSTypeAssertion,expression:this.convertChild(t.expression),typeAnnotation:this.convertChild(t.type)});case T.ImportEqualsDeclaration:return this.fixExports(t,this.createNode(t,{type:C.TSImportEqualsDeclaration,id:this.convertChild(t.name),importKind:t.isTypeOnly?\"type\":\"value\",moduleReference:this.convertChild(t.moduleReference)}));case T.ExternalModuleReference:return t.expression.kind!==T.StringLiteral&&ge(this,me,Be).call(this,t.expression,\"String literal expected.\"),this.createNode(t,{type:C.TSExternalModuleReference,expression:this.convertChild(t.expression)});case T.NamespaceExportDeclaration:return this.createNode(t,{type:C.TSNamespaceExportDeclaration,id:this.convertChild(t.name)});case T.AbstractKeyword:return this.createNode(t,{type:C.TSAbstractKeyword});case T.TupleType:{let y=t.elements.map(g=>this.convertChild(g));return this.createNode(t,{type:C.TSTupleType,elementTypes:y})}case T.NamedTupleMember:{let y=this.createNode(t,{type:C.TSNamedTupleMember,elementType:this.convertChild(t.type,t),label:this.convertChild(t.name,t),optional:t.questionToken!=null});return t.dotDotDotToken?(y.range[0]=y.label.range[0],y.loc.start=y.label.loc.start,this.createNode(t,{type:C.TSRestType,typeAnnotation:y})):y}case T.OptionalType:return this.createNode(t,{type:C.TSOptionalType,typeAnnotation:this.convertChild(t.type)});case T.RestType:return this.createNode(t,{type:C.TSRestType,typeAnnotation:this.convertChild(t.type)});case T.TemplateLiteralType:{let y=this.createNode(t,{type:C.TSTemplateLiteralType,quasis:[this.convertChild(t.head)],types:[]});return t.templateSpans.forEach(g=>{y.types.push(this.convertChild(g.type)),y.quasis.push(this.convertChild(g.literal))}),y}case T.ClassStaticBlockDeclaration:return this.createNode(t,{type:C.StaticBlock,body:this.convertBodyExpressions(t.body.statements,t)});case T.AssertEntry:case T.ImportAttribute:return this.createNode(t,{type:C.ImportAttribute,key:this.convertChild(t.name),value:this.convertChild(t.value)});case T.SatisfiesExpression:return this.createNode(t,{type:C.TSSatisfiesExpression,expression:this.convertChild(t.expression),typeAnnotation:this.convertChild(t.type)});default:return this.deeplyCopy(t)}}createNode(t,a){let o=a;return o.range??(o.range=$a(t,this.ast)),o.loc??(o.loc=Qr(o.range,this.ast)),o&&this.options.shouldPreserveNodeMaps&&this.esTreeNodeToTSNodeMap.set(o,t),o}convertProgram(){return this.converter(this.ast)}deeplyCopy(t){t.kind===Ne.JSDocFunctionType&&ge(this,me,Be).call(this,t,\"JSDoc types can only be used inside documentation comments.\");let a=`TS${T[t.kind]}`;if(this.options.errorOnUnknownASTType&&!C[a])throw new Error(`Unknown AST_NODE_TYPE: \"${a}\"`);let o=this.createNode(t,{type:a});\"type\"in t&&(o.typeAnnotation=t.type&&\"kind\"in t.type&&o1(t.type)?this.convertTypeAnnotation(t.type,t):null),\"typeArguments\"in t&&(o.typeArguments=t.typeArguments&&\"pos\"in t.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(t.typeArguments,t):null),\"typeParameters\"in t&&(o.typeParameters=t.typeParameters&&\"pos\"in t.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(t.typeParameters):null);let m=ta(t);m!=null&&m.length&&(o.decorators=m.map(A=>this.convertChild(A)));let v=new Set([\"_children\",\"decorators\",\"end\",\"flags\",\"heritageClauses\",\"illegalDecorators\",\"jsDoc\",\"kind\",\"locals\",\"localSymbol\",\"modifierFlagsCache\",\"modifiers\",\"nextContainer\",\"parent\",\"pos\",\"symbol\",\"transformFlags\",\"type\",\"typeArguments\",\"typeParameters\"]);return Object.entries(t).filter(([A])=>!v.has(A)).forEach(([A,P])=>{Array.isArray(P)?o[A]=P.map(l=>this.convertChild(l)):P&&typeof P==\"object\"&&P.kind?o[A]=this.convertChild(P):o[A]=P}),o}fixExports(t,a){let m=Ti(t)&&!!(t.flags&on.Namespace)?Fh(t):er(t);if((m==null?void 0:m[0].kind)===T.ExportKeyword){this.registerTSNodeInNodeMap(t,a);let v=m[0],A=m[1],P=(A==null?void 0:A.kind)===T.DefaultKeyword,l=P?na(A,this.ast,this.ast):na(v,this.ast,this.ast);if(a.range[0]=l.getStart(this.ast),a.loc=Qr(a.range,this.ast),P)return this.createNode(t,{type:C.ExportDefaultDeclaration,range:[v.getStart(this.ast),a.range[1]],declaration:a,exportKind:\"value\"});let Q=a.type===C.TSInterfaceDeclaration||a.type===C.TSTypeAliasDeclaration,h=\"declare\"in a&&a.declare;return this.createNode(t,ge(this,me,Qa).call(this,{type:C.ExportNamedDeclaration,range:[v.getStart(this.ast),a.range[1]],attributes:[],declaration:a,exportKind:Q||h?\"type\":\"value\",source:null,specifiers:[]},\"assertions\",\"attributes\",!0))}return a}getASTMaps(){return{esTreeNodeToTSNodeMap:this.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:this.tsNodeToESTreeNodeMap}}registerTSNodeInNodeMap(t,a){a&&this.options.shouldPreserveNodeMaps&&!this.tsNodeToESTreeNodeMap.has(t)&&this.tsNodeToESTreeNodeMap.set(t,a)}};me=new WeakSet,rd=function(t,a){let o=a===Ne.ForInStatement?\"for...in\":\"for...of\";if(K1(t)){t.declarations.length!==1&&ge(this,me,Be).call(this,t,`Only a single variable declaration is allowed in a '${o}' statement.`);let m=t.declarations[0];m.initializer?ge(this,me,Be).call(this,m,`The variable declaration of a '${o}' statement cannot have an initializer.`):m.type&&ge(this,me,Be).call(this,m,`The variable declaration of a '${o}' statement cannot have a type annotation.`),a===Ne.ForInStatement&&t.flags&on.Using&&ge(this,me,Be).call(this,t,\"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.\")}else!Jl(t)&&t.kind!==Ne.ObjectLiteralExpression&&t.kind!==Ne.ArrayLiteralExpression&&ge(this,me,Be).call(this,t,`The left-hand side of a '${o}' statement must be a variable or a property access.`)},Vh=function(t){if(!this.options.allowInvalidAST){Rh(t)&&ge(this,me,Be).call(this,t.illegalDecorators[0],\"Decorators are not valid here.\");for(let a of ta(t,!0)??[])zh(t)||(ms(t)&&!td(t.body)?ge(this,me,Be).call(this,a,\"A decorator can only decorate a method implementation, not an overload.\"):ge(this,me,Be).call(this,a,\"Decorators are not valid here.\"));for(let a of er(t,!0)??[]){if(a.kind!==T.ReadonlyKeyword&&((t.kind===T.PropertySignature||t.kind===T.MethodSignature)&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier cannot appear on a type member`),t.kind===T.IndexSignature&&(a.kind!==T.StaticKeyword||!vi(t.parent))&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier cannot appear on an index signature`)),a.kind!==T.InKeyword&&a.kind!==T.OutKeyword&&a.kind!==T.ConstKeyword&&t.kind===T.TypeParameter&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier cannot appear on a type parameter`),(a.kind===T.InKeyword||a.kind===T.OutKeyword)&&(t.kind!==T.TypeParameter||!(vs(t.parent)||vi(t.parent)||Dl(t.parent)))&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier can only appear on a type parameter of a class, interface or type alias`),a.kind===T.ReadonlyKeyword&&t.kind!==T.PropertyDeclaration&&t.kind!==T.PropertySignature&&t.kind!==T.IndexSignature&&t.kind!==T.Parameter&&ge(this,me,Be).call(this,a,\"'readonly' modifier can only appear on a property declaration or index signature.\"),a.kind===T.DeclareKeyword&&vi(t.parent)&&!Va(t)&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier cannot appear on class elements of this kind.`),a.kind===T.DeclareKeyword&&Xa(t)){let o=Ml(t.declarationList);(o===\"using\"||o===\"await using\")&&ge(this,me,Be).call(this,a,`'declare' modifier cannot appear on a '${o}' declaration.`)}if(a.kind===T.AbstractKeyword&&t.kind!==T.ClassDeclaration&&t.kind!==T.ConstructorType&&t.kind!==T.MethodDeclaration&&t.kind!==T.PropertyDeclaration&&t.kind!==T.GetAccessor&&t.kind!==T.SetAccessor&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier can only appear on a class, method, or property declaration.`),(a.kind===T.StaticKeyword||a.kind===T.PublicKeyword||a.kind===T.ProtectedKeyword||a.kind===T.PrivateKeyword)&&(t.parent.kind===T.ModuleBlock||t.parent.kind===T.SourceFile)&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier cannot appear on a module or namespace element.`),a.kind===T.AccessorKeyword&&t.kind!==T.PropertyDeclaration&&ge(this,me,Be).call(this,a,\"'accessor' modifier can only appear on a property declaration.\"),a.kind===T.AsyncKeyword&&t.kind!==T.MethodDeclaration&&t.kind!==T.FunctionDeclaration&&t.kind!==T.FunctionExpression&&t.kind!==T.ArrowFunction&&ge(this,me,Be).call(this,a,\"'async' modifier cannot be used here.\"),t.kind===T.Parameter&&(a.kind===T.StaticKeyword||a.kind===T.ExportKeyword||a.kind===T.DeclareKeyword||a.kind===T.AsyncKeyword)&&ge(this,me,Be).call(this,a,`'${it(a.kind)}' modifier cannot appear on a parameter.`),a.kind===T.PublicKeyword||a.kind===T.ProtectedKeyword||a.kind===T.PrivateKeyword)for(let o of er(t)??[])o!==a&&(o.kind===T.PublicKeyword||o.kind===T.ProtectedKeyword||o.kind===T.PrivateKeyword)&&ge(this,me,Be).call(this,o,\"Accessibility modifier already seen.\");if(t.kind===T.Parameter&&(a.kind===T.PublicKeyword||a.kind===T.PrivateKeyword||a.kind===T.ProtectedKeyword||a.kind===T.ReadonlyKeyword||a.kind===T.OverrideKeyword)){let o=qh(t);o.kind===T.Constructor&&td(o.body)||ge(this,me,Be).call(this,a,\"A parameter property is only allowed in a constructor implementation.\")}}}},Be=function(t,a){let o,m;throw typeof t==\"number\"?o=m=t:(o=t.getStart(this.ast),m=t.getEnd()),ed(a,this.ast,o,m)},Vt=function(t,a){this.options.allowInvalidAST||ge(this,me,Be).call(this,t,a)},Qa=function(t,a,o,m=!1){let v=m;return Object.defineProperty(t,a,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>t[o]:()=>(v||((void 0)(`The '${a}' property is deprecated on ${t.type} nodes. Use '${o}' instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,\"DeprecationWarning\"),v=!0),t[o]),set(A){Object.defineProperty(t,a,{enumerable:!0,value:A,writable:!0})}}),t},id=function(t,a,o,m){let v=!1;return Object.defineProperty(t,a,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>m:()=>(v||((void 0)(`The '${a}' property is deprecated on ${t.type} nodes. Use ${o} instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,\"DeprecationWarning\"),v=!0),m),set(A){Object.defineProperty(t,a,{enumerable:!0,value:A,writable:!0})}}),t};function wv(e,t,a=e.getSourceFile()){let o=[];for(;;){if(df(e.kind))t(e);else if(e.kind!==Ne.JSDocComment){let m=e.getChildren(a);if(m.length===1){e=m[0];continue}for(let v=m.length-1;v>=0;--v)o.push(m[v])}if(o.length===0)break;e=o.pop()}}function kv(e){switch(e.kind){case Ne.CloseBraceToken:return e.parent.kind!==Ne.JsxExpression||!_d(e.parent.parent);case Ne.GreaterThanToken:switch(e.parent.kind){case Ne.JsxOpeningElement:return e.end!==e.parent.end;case Ne.JsxOpeningFragment:return!1;case Ne.JsxSelfClosingElement:return e.end!==e.parent.end||!_d(e.parent.parent);case Ne.JsxClosingElement:case Ne.JsxClosingFragment:return!_d(e.parent.parent.parent)}}return!0}function _d(e){return e.kind===Ne.JsxElement||e.kind===Ne.JsxFragment}function Gh(e,t,a=e.getSourceFile()){let o=a.text,m=a.languageVariant!==Tl.JSX;return wv(e,A=>{if(A.pos!==A.end&&(A.kind!==Ne.JsxText&&Xm(o,A.pos===0?(_f(o)??\"\").length:A.pos,v),m||kv(A)))return $m(o,A.end,v)},a);function v(A,P,l){t(o,{end:P,kind:l,pos:A})}}var[XT,$T]=wm.split(\".\").map(e=>Number.parseInt(e,10));var QT=nn.Intrinsic??nn.Any|nn.Unknown|nn.String|nn.Number|nn.BigInt|nn.Boolean|nn.BooleanLiteral|nn.ESSymbol|nn.Void|nn.Undefined|nn.Null|nn.Never|nn.NonPrimitive;function Yh(e,t){let a=[];return Gh(e,(o,m)=>{let v=m.kind===Ne.SingleLineCommentTrivia?Rt.Line:Rt.Block,A=[m.pos,m.end],P=Qr(A,e),l=A[0]+2,Q=m.kind===Ne.SingleLineCommentTrivia?A[1]-l:A[1]-l-2;a.push({type:v,loc:P,range:A,value:t.slice(l,l+Q)})},e),a}var Hh=()=>{};function Xh(e,t,a){let{parseDiagnostics:o}=e;if(o.length)throw ad(o[0]);let m=new Ll(e,{allowInvalidAST:t.allowInvalidAST,errorOnUnknownASTType:t.errorOnUnknownASTType,shouldPreserveNodeMaps:a,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings}),v=m.convertProgram();return(!t.range||!t.loc)&&Hh(v,{enter:P=>{t.range||delete P.range,t.loc||delete P.loc}}),t.tokens&&(v.tokens=jh(e)),t.comment&&(v.comments=Yh(e,t.codeFullText)),{astMaps:m.getASTMaps(),estree:v}}function jl(e){if(typeof e!=\"object\"||e==null)return!1;let t=e;return t.kind===Ne.SourceFile&&typeof t.getFullText==\"function\"}var Iv=function(e){return e&&e.__esModule?e:{default:e}};var Ov=Iv({extname:e=>\".\"+e.split(\".\").pop()});function Qh(e,t){switch(Ov.default.extname(e).toLowerCase()){case Nn.Cjs:case Nn.Js:case Nn.Mjs:return Dr.JS;case Nn.Cts:case Nn.Mts:case Nn.Ts:return Dr.TS;case Nn.Json:return Dr.JSON;case Nn.Jsx:return Dr.JSX;case Nn.Tsx:return Dr.TSX;default:return t?Dr.TSX:Dr.TS}}var Jv={default:Ia},Lv=(0,Jv.default)(\"typescript-eslint:typescript-estree:createSourceFile\");function Kh(e){return Lv(\"Getting AST without type information in %s mode for: %s\",e.jsx?\"TSX\":\"TS\",e.filePath),jl(e.code)?e.code:dh(e.filePath,e.codeFullText,{jsDocParsingMode:e.jsDocParsingMode,languageVersion:ys.Latest,setExternalModuleIndicator:e.setExternalModuleIndicator},!0,Qh(e.filePath,e.jsx))}var Zh=()=>{};var e0=e=>e;var t0=class{};var r0=()=>!1;var i0=()=>{};var Hv=function(e){return e&&e.__esModule?e:{default:e}};var sd={default:Ia},Xv=Hv({extname:e=>\".\"+e.split(\".\").pop()}),$v=(0,sd.default)(\"typescript-eslint:typescript-estree:parser:parseSettings:createParseSettings\"),Qv,Kv=null,a0,_0,s0,o0,xs={ParseAll:(a0=Ga)==null?void 0:a0.ParseAll,ParseForTypeErrors:(_0=Ga)==null?void 0:_0.ParseForTypeErrors,ParseForTypeInfo:(s0=Ga)==null?void 0:s0.ParseForTypeInfo,ParseNone:(o0=Ga)==null?void 0:o0.ParseNone};function c0(e,t={}){var h;let a=Zv(e),o=r0(t),m=typeof t.tsconfigRootDir==\"string\"?t.tsconfigRootDir:\"/prettier-security-dirname-placeholder\",v=typeof t.loggerFn==\"function\",A=e0(typeof t.filePath==\"string\"&&t.filePath!==\"\"?t.filePath:e4(t.jsx),m),P=Xv.default.extname(A).toLowerCase(),l=(()=>{switch(t.jsDocParsingMode){case\"all\":return xs.ParseAll;case\"none\":return xs.ParseNone;case\"type-info\":return xs.ParseForTypeInfo;default:return xs.ParseAll}})(),Q={loc:t.loc===!0,range:t.range===!0,allowInvalidAST:t.allowInvalidAST===!0,code:e,codeFullText:a,comment:t.comment===!0,comments:[],debugLevel:t.debugLevel===!0?new Set([\"typescript-eslint\"]):Array.isArray(t.debugLevel)?new Set(t.debugLevel):new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:t.errorOnUnknownASTType===!0,extraFileExtensions:Array.isArray(t.extraFileExtensions)&&t.extraFileExtensions.every(y=>typeof y==\"string\")?t.extraFileExtensions:[],filePath:A,jsDocParsingMode:l,jsx:t.jsx===!0,log:typeof t.loggerFn==\"function\"?t.loggerFn:t.loggerFn===!1?()=>{}:console.log,preserveNodeMaps:t.preserveNodeMaps!==!1,programs:Array.isArray(t.programs)?t.programs:null,projects:new Map,projectService:t.projectService||t.project&&t.projectService!==!1&&(void 0).env.TYPESCRIPT_ESLINT_PROJECT_SERVICE===\"true\"?Kv??(Kv=Zh(t.projectService,l,m)):void 0,setExternalModuleIndicator:t.sourceType===\"module\"||t.sourceType===void 0&&P===Nn.Mjs||t.sourceType===void 0&&P===Nn.Mts?y=>{y.externalModuleIndicator=!0}:void 0,singleRun:o,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings??!0,tokens:t.tokens===!0?[]:null,tsconfigMatchCache:Qv??(Qv=new t0(o?\"Infinity\":((h=t.cacheLifetime)==null?void 0:h.glob)??void 0)),tsconfigRootDir:m};if(Q.debugLevel.size>0){let y=[];Q.debugLevel.has(\"typescript-eslint\")&&y.push(\"typescript-eslint:*\"),(Q.debugLevel.has(\"eslint\")||sd.default.enabled(\"eslint:*,-eslint:code-path\"))&&y.push(\"eslint:*,-eslint:code-path\"),sd.default.enable(y.join(\",\"))}if(Array.isArray(t.programs)){if(!t.programs.length)throw new Error(\"You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.\");$v(\"parserOptions.programs was provided, so parserOptions.project will be ignored.\")}return!Q.programs&&!Q.projectService&&(Q.projects=new Map),t.jsDocParsingMode==null&&Q.projects.size===0&&Q.programs==null&&Q.projectService==null&&(Q.jsDocParsingMode=xs.ParseNone),i0(Q,v),Q}function Zv(e){return jl(e)?e.getFullText(e):typeof e==\"string\"?e:String(e)}function e4(e){return e?\"estree.tsx\":\"estree.ts\"}var i4={default:Ia},fx=(0,i4.default)(\"typescript-eslint:typescript-estree:parser\");function l0(e,t){let{ast:a}=a4(e,t,!1);return a}function a4(e,t,a){let o=c0(e,t);if(t!=null&&t.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('\"errorOnTypeScriptSyntacticAndSemanticIssues\" is only supported for parseAndGenerateServices()');let m=Kh(o),{astMaps:v,estree:A}=Xh(m,o,a);return{ast:A,esTreeNodeToTSNodeMap:v.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:v.tsNodeToESTreeNodeMap}}function _4(e,t){let a=new SyntaxError(e+\" (\"+t.loc.start.line+\":\"+t.loc.start.column+\")\");return Object.assign(a,t)}var u0=_4;function s4(e){let t=[];for(let a of e)try{return a()}catch(o){t.push(o)}throw Object.assign(new Error(\"All combinations failed\"),{errors:t})}var p0=s4;var o4=(e,t,a)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[a<0?t.length+a:a]:t.at(a)},od=o4;function c4(e){return Array.isArray(e)&&e.length>0}var f0=c4;function tr(e){var o,m,v;let t=((o=e.range)==null?void 0:o[0])??e.start,a=(v=((m=e.declaration)==null?void 0:m.decorators)??e.decorators)==null?void 0:v[0];return a?Math.min(tr(a),t):t}function Kr(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function l4(e){let t=new Set(e);return a=>t.has(a==null?void 0:a.type)}var d0=l4;var u4=d0([\"Block\",\"CommentBlock\",\"MultiLine\"]),Ss=u4;function p4(e){let t=`*${e.value}*`.split(`\n`);return t.length>1&&t.every(a=>a.trimStart()[0]===\"*\")}var cd=p4;function f4(e){return Ss(e)&&e.value[0]===\"*\"&&/@(?:type|satisfies)\\b/u.test(e.value)}var m0=f4;var ws=null;function ks(e){if(ws!==null&&typeof ws.property){let t=ws;return ws=ks.prototype=null,t}return ws=ks.prototype=e??Object.create(null),new ks}var d4=10;for(let e=0;e<=d4;e++)ks();function ld(e){return ks(e)}function m4(e,t=\"type\"){ld(e);function a(o){let m=o[t],v=e[m];if(!Array.isArray(v))throw Object.assign(new Error(`Missing visitor keys for '${m}'.`),{node:o});return v}return a}var h0=m4;var y0={ArrayExpression:[\"elements\"],AssignmentExpression:[\"left\",\"right\"],BinaryExpression:[\"left\",\"right\"],InterpreterDirective:[],Directive:[\"value\"],DirectiveLiteral:[],BlockStatement:[\"directives\",\"body\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],CatchClause:[\"param\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExpressionStatement:[\"expression\"],File:[\"program\"],ForInStatement:[\"left\",\"right\",\"body\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"typeAnnotation\",\"decorators\"],IfStatement:[\"test\",\"consequent\",\"alternate\"],LabeledStatement:[\"label\",\"body\"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],NewExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],Program:[\"directives\",\"body\"],ObjectExpression:[\"properties\"],ObjectMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectProperty:[\"key\",\"value\",\"decorators\"],RestElement:[\"argument\",\"typeAnnotation\",\"decorators\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],ParenthesizedExpression:[\"expression\"],SwitchCase:[\"test\",\"consequent\"],SwitchStatement:[\"discriminant\",\"cases\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],AssignmentPattern:[\"left\",\"right\",\"decorators\",\"typeAnnotation\"],ArrayPattern:[\"elements\",\"typeAnnotation\",\"decorators\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\",\"predicate\"],ClassBody:[\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"mixins\",\"implements\",\"body\",\"superTypeArguments\"],ExportAllDeclaration:[\"source\",\"attributes\",\"exported\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],ExportSpecifier:[\"local\",\"exported\"],ForOfStatement:[\"left\",\"right\",\"body\"],ImportDeclaration:[\"specifiers\",\"source\",\"attributes\"],ImportDefaultSpecifier:[\"local\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],ImportExpression:[\"source\",\"options\"],MetaProperty:[\"meta\",\"property\"],ClassMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],ObjectPattern:[\"properties\",\"typeAnnotation\",\"decorators\"],SpreadElement:[\"argument\"],Super:[],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\",\"typeArguments\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],YieldExpression:[\"argument\"],AwaitExpression:[\"argument\"],BigIntLiteral:[],ExportNamespaceSpecifier:[\"exported\"],OptionalMemberExpression:[\"object\",\"property\"],OptionalCallExpression:[\"callee\",\"arguments\",\"typeParameters\",\"typeArguments\"],ClassProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],ClassPrivateProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],ClassPrivateMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\",\"body\"],PrivateName:[\"id\"],StaticBlock:[\"body\"],AnyTypeAnnotation:[],ArrayTypeAnnotation:[\"elementType\"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:[\"id\",\"typeParameters\"],DeclareClass:[\"id\",\"typeParameters\",\"extends\",\"mixins\",\"implements\",\"body\"],DeclareFunction:[\"id\",\"predicate\"],DeclareInterface:[\"id\",\"typeParameters\",\"extends\",\"body\"],DeclareModule:[\"id\",\"body\"],DeclareModuleExports:[\"typeAnnotation\"],DeclareTypeAlias:[\"id\",\"typeParameters\",\"right\"],DeclareOpaqueType:[\"id\",\"typeParameters\",\"supertype\"],DeclareVariable:[\"id\"],DeclareExportDeclaration:[\"declaration\",\"specifiers\",\"source\",\"attributes\"],DeclareExportAllDeclaration:[\"source\",\"attributes\"],DeclaredPredicate:[\"value\"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:[\"typeParameters\",\"params\",\"rest\",\"returnType\",\"this\"],FunctionTypeParam:[\"name\",\"typeAnnotation\"],GenericTypeAnnotation:[\"id\",\"typeParameters\"],InferredPredicate:[],InterfaceExtends:[\"id\",\"typeParameters\"],InterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],InterfaceTypeAnnotation:[\"extends\",\"body\"],IntersectionTypeAnnotation:[\"types\"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:[\"typeAnnotation\"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:[\"properties\",\"indexers\",\"callProperties\",\"internalSlots\"],ObjectTypeInternalSlot:[\"id\",\"value\"],ObjectTypeCallProperty:[\"value\"],ObjectTypeIndexer:[\"variance\",\"id\",\"key\",\"value\"],ObjectTypeProperty:[\"key\",\"value\",\"variance\"],ObjectTypeSpreadProperty:[\"argument\"],OpaqueType:[\"id\",\"typeParameters\",\"supertype\",\"impltype\"],QualifiedTypeIdentifier:[\"qualification\",\"id\"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:[\"types\",\"elementTypes\"],TypeofTypeAnnotation:[\"argument\",\"typeArguments\"],TypeAlias:[\"id\",\"typeParameters\",\"right\"],TypeAnnotation:[\"typeAnnotation\"],TypeCastExpression:[\"expression\",\"typeAnnotation\"],TypeParameter:[\"bound\",\"default\",\"variance\"],TypeParameterDeclaration:[\"params\"],TypeParameterInstantiation:[\"params\"],UnionTypeAnnotation:[\"types\"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:[\"id\",\"body\"],EnumBooleanBody:[\"members\"],EnumNumberBody:[\"members\"],EnumStringBody:[\"members\"],EnumSymbolBody:[\"members\"],EnumBooleanMember:[\"id\",\"init\"],EnumNumberMember:[\"id\",\"init\"],EnumStringMember:[\"id\",\"init\"],EnumDefaultedMember:[\"id\"],IndexedAccessType:[\"objectType\",\"indexType\"],OptionalIndexedAccessType:[\"objectType\",\"indexType\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXSpreadChild:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\",\"typeArguments\",\"typeParameters\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:[\"object\",\"callee\"],ImportAttribute:[\"key\",\"value\"],Decorator:[\"expression\"],DoExpression:[\"body\"],ExportDefaultSpecifier:[\"exported\"],RecordExpression:[\"properties\"],TupleExpression:[\"elements\"],ModuleExpression:[\"body\"],TopicReference:[],PipelineTopicExpression:[\"expression\"],PipelineBareFunction:[\"callee\"],PipelinePrimaryTopicReference:[],TSParameterProperty:[\"parameter\",\"decorators\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareMethod:[\"decorators\",\"key\",\"typeParameters\",\"params\",\"returnType\"],TSQualifiedName:[\"left\",\"right\"],TSCallSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSPropertySignature:[\"key\",\"typeAnnotation\"],TSMethodSignature:[\"key\",\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSConstructorType:[\"typeParameters\",\"parameters\",\"typeAnnotation\",\"params\",\"returnType\"],TSTypeReference:[\"typeName\",\"typeParameters\",\"typeArguments\"],TSTypePredicate:[\"parameterName\",\"typeAnnotation\"],TSTypeQuery:[\"exprName\",\"typeParameters\",\"typeArguments\"],TSTypeLiteral:[\"members\"],TSArrayType:[\"elementType\"],TSTupleType:[\"elementTypes\"],TSOptionalType:[\"typeAnnotation\"],TSRestType:[\"typeAnnotation\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSUnionType:[\"types\"],TSIntersectionType:[\"types\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSInferType:[\"typeParameter\"],TSParenthesizedType:[\"typeAnnotation\"],TSTypeOperator:[\"typeAnnotation\"],TSIndexedAccessType:[\"objectType\",\"indexType\"],TSMappedType:[\"typeParameter\",\"nameType\",\"typeAnnotation\"],TSLiteralType:[\"literal\"],TSExpressionWithTypeArguments:[\"expression\",\"typeParameters\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceBody:[\"body\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSInstantiationExpression:[\"expression\",\"typeParameters\",\"typeArguments\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSSatisfiesExpression:[\"expression\",\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSModuleDeclaration:[\"id\",\"body\"],TSModuleBlock:[\"body\"],TSImportType:[\"argument\",\"qualifier\",\"typeParameters\",\"typeArguments\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSExternalModuleReference:[\"expression\"],TSNonNullExpression:[\"expression\"],TSExportAssignment:[\"expression\"],TSNamespaceExportDeclaration:[\"id\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeParameterInstantiation:[\"params\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameter:[\"constraint\",\"default\",\"name\"],ChainExpression:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],Literal:[],MethodDefinition:[\"decorators\",\"key\",\"value\"],PrivateIdentifier:[],Property:[\"key\",\"value\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\",\"variance\"],AccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],TSAbstractAccessorProperty:[\"decorators\",\"key\",\"typeAnnotation\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAsyncKeyword:[],TSClassImplements:[\"expression\",\"typeArguments\",\"typeParameters\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumBody:[\"members\"],TSExportKeyword:[],TSInterfaceHeritage:[\"expression\",\"typeArguments\",\"typeParameters\"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],AsConstExpression:[\"expression\"],AsExpression:[\"expression\",\"typeAnnotation\"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"rendersType\"],ComponentParameter:[\"name\",\"local\"],ComponentTypeAnnotation:[\"params\",\"rest\",\"typeParameters\",\"rendersType\"],ComponentTypeParameter:[\"name\",\"typeAnnotation\"],ConditionalTypeAnnotation:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],DeclareComponent:[\"id\",\"params\",\"rest\",\"typeParameters\",\"rendersType\"],DeclareEnum:[\"id\",\"body\"],DeclareHook:[\"id\"],DeclareNamespace:[\"id\",\"body\"],EnumBigIntBody:[\"members\"],EnumBigIntMember:[\"id\",\"init\"],HookDeclaration:[\"id\",\"params\",\"body\",\"typeParameters\",\"returnType\"],HookTypeAnnotation:[\"params\",\"returnType\",\"rest\",\"typeParameters\"],InferTypeAnnotation:[\"typeParameter\"],KeyofTypeAnnotation:[\"argument\"],ObjectTypeMappedTypeProperty:[\"keyTparam\",\"propType\",\"sourceType\",\"variance\"],QualifiedTypeofIdentifier:[\"qualification\",\"id\"],TupleTypeLabeledElement:[\"label\",\"elementType\",\"variance\"],TupleTypeSpreadElement:[\"label\",\"typeAnnotation\"],TypeOperator:[\"typeAnnotation\"],TypePredicate:[\"parameterName\",\"typeAnnotation\",\"asserts\"],NGRoot:[\"node\"],NGPipeExpression:[\"left\",\"right\",\"arguments\"],NGChainedExpression:[\"expressions\"],NGEmptyExpression:[],NGMicrosyntax:[\"body\"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:[\"expression\",\"alias\"],NGMicrosyntaxKeyedExpression:[\"key\",\"expression\"],NGMicrosyntaxLet:[\"key\",\"value\"],NGMicrosyntaxAs:[\"key\",\"alias\"],JsExpressionRoot:[\"node\"],JsonRoot:[\"node\"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:[\"typeAnnotation\"],TSJSDocNonNullableType:[\"typeAnnotation\"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:[\"expression\",\"typeAnnotation\"]};var h4=h0(y0),g0=h4;function ud(e,t){if(!(e!==null&&typeof e==\"object\"))return e;if(Array.isArray(e)){for(let o=0;o{var A;(A=v.leadingComments)!=null&&A.some(m0)&&m.add(tr(v))}),e=Rl(e,v=>{if(v.type===\"ParenthesizedExpression\"){let{expression:A}=v;if(A.type===\"TypeCastExpression\")return A.range=[...v.range],A;let P=tr(v);if(!m.has(P))return A.extra={...A.extra,parenthesized:!0},A}})}if(e=Rl(e,m=>{switch(m.type){case\"LogicalExpression\":if(b0(m))return pd(m);break;case\"VariableDeclaration\":{let v=od(!1,m.declarations,-1);v!=null&&v.init&&o[Kr(v)]!==\";\"&&(m.range=[tr(m),Kr(v)]);break}case\"TSParenthesizedType\":return m.typeAnnotation;case\"TSTypeParameter\":if(typeof m.name==\"string\"){let v=tr(m);m.name={type:\"Identifier\",name:m.name,range:[v,v+m.name.length]}}break;case\"TopicReference\":e.extra={...e.extra,__isUsingHackPipeline:!0};break;case\"TSUnionType\":case\"TSIntersectionType\":if(m.types.length===1)return m.types[0];break}}),f0(e.comments)){let m=od(!1,e.comments,-1);for(let v=e.comments.length-2;v>=0;v--){let A=e.comments[v];Kr(A)===tr(m)&&Ss(A)&&Ss(m)&&cd(A)&&cd(m)&&(e.comments.splice(v+1,1),A.value+=\"*//*\"+m.value,A.range=[tr(A),Kr(m)]),m=A}}return e.type===\"Program\"&&(e.range=[0,o.length]),e}function b0(e){return e.type===\"LogicalExpression\"&&e.right.type===\"LogicalExpression\"&&e.operator===e.right.operator}function pd(e){return b0(e)?pd({type:\"LogicalExpression\",operator:e.operator,left:pd({type:\"LogicalExpression\",operator:e.operator,left:e.left,right:e.right.left,range:[tr(e.left),Kr(e.right.left)]}),right:e.right.right,range:[tr(e),Kr(e)]}):e}var v0=y4;var g4=/\\*\\/$/,b4=/^\\/\\*\\*?/,v4=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,T4=/(^|\\s+)\\/\\/([^\\n\\r]*)/g,T0=/^(\\r?\\n)+/,x4=/(?:^|\\r?\\n) *(@[^\\n\\r]*?) *\\r?\\n *(?![^\\n\\r@]*\\/\\/[^]*)([^\\s@][^\\n\\r@]+?) *\\r?\\n/g,x0=/(?:^|\\r?\\n) *@(\\S+) *([^\\n\\r]*)/g,S4=/(\\r?\\n|^) *\\* ?/g,w4=[];function S0(e){let t=e.match(v4);return t?t[0].trimStart():\"\"}function w0(e){let t=`\n`;e=Sr(!1,e.replace(b4,\"\").replace(g4,\"\"),S4,\"$1\");let a=\"\";for(;a!==e;)a=e,e=Sr(!1,e,x4,`${t}$1 $2${t}`);e=e.replace(T0,\"\").trimEnd();let o=Object.create(null),m=Sr(!1,e,x0,\"\").replace(T0,\"\").trimEnd(),v;for(;v=x0.exec(e);){let A=Sr(!1,v[2],T4,\"\");if(typeof o[v[1]]==\"string\"||Array.isArray(o[v[1]])){let P=o[v[1]];o[v[1]]=[...w4,...Array.isArray(P)?P:[P],A]}else o[v[1]]=A}return{comments:m,pragmas:o}}function k4(e){if(!e.startsWith(\"#!\"))return\"\";let t=e.indexOf(`\n`);return t===-1?e:e.slice(0,t)}var k0=k4;function E4(e){let t=k0(e);t&&(e=e.slice(t.length+1));let a=S0(e),{pragmas:o,comments:m}=w0(a);return{shebang:t,text:e,pragmas:o,comments:m}}function E0(e){let{pragmas:t}=E4(e);return Object.prototype.hasOwnProperty.call(t,\"prettier\")||Object.prototype.hasOwnProperty.call(t,\"format\")}function A4(e){return e=typeof e==\"function\"?{parse:e}:e,{astFormat:\"estree\",hasPragma:E0,locStart:tr,locEnd:Kr,...e}}var A0=A4;function C4(e){let{filepath:t}=e;if(t){if(t=t.toLowerCase(),t.endsWith(\".cjs\")||t.endsWith(\".cts\"))return\"script\";if(t.endsWith(\".mjs\")||t.endsWith(\".mts\"))return\"module\"}}var C0=C4;function D4(e){return e.charAt(0)===\"#\"&&e.charAt(1)===\"!\"?\"//\"+e.slice(2):e}var D0=D4;var P4={loc:!0,range:!0,comment:!0,tokens:!0,loggerFn:!1,project:!1,jsDocParsingMode:\"none\",suppressDeprecatedPropertyWarnings:!0};function N4(e){if(!(e!=null&&e.location))return e;let{message:t,location:{start:a,end:o}}=e;return u0(t,{loc:{start:{line:a.line,column:a.column+1},end:{line:o.line,column:o.column+1}},cause:e})}var I4=e=>/\\.(?:js|mjs|cjs|jsx|ts|mts|cts|tsx)$/iu.test(e);function O4(e,t){let a=t==null?void 0:t.filepath,o=[{...P4,filePath:a}],m=C0(t);if(m?o=o.map(A=>({...A,sourceType:m})):o=[\"module\",\"script\"].flatMap(P=>o.map(l=>({...l,sourceType:P}))),a&&I4(a))return o;let v=J4(e);return[v,!v].flatMap(A=>o.map(P=>({...P,jsx:A})))}function M4(e,t={}){let a=D0(e),o=O4(e,t),m;try{m=p0(o.map(v=>()=>l0(a,v)))}catch({errors:[v]}){throw N4(v)}return v0(m,{text:e})}function J4(e){return new RegExp([\"(?:^[^\\\"'`]*)\"].join(\"\"),\"mu\").test(e)}var L4=A0(M4);var fS=dd;export{fS as default,fd as parsers};\n", "var Ai=Object.create;var nn=Object.defineProperty;var Ti=Object.getOwnPropertyDescriptor;var Ci=Object.getOwnPropertyNames;var Mi=Object.getPrototypeOf,ki=Object.prototype.hasOwnProperty;var ee=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),nr=(t,e)=>{for(var n in e)nn(t,n,{get:e[n],enumerable:!0})},vi=(t,e,n,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of Ci(e))!ki.call(t,s)&&s!==n&&nn(t,s,{get:()=>e[s],enumerable:!(r=Ti(e,s))||r.enumerable});return t};var rr=(t,e,n)=>(n=t!=null?Ai(Mi(t)):{},vi(e||!t||!t.__esModule?nn(n,\"default\",{value:t,enumerable:!0}):n,t));var le=ee(U=>{\"use strict\";var re={ANCHOR:\"&\",COMMENT:\"#\",TAG:\"!\",DIRECTIVES_END:\"-\",DOCUMENT_END:\".\"},lt={ALIAS:\"ALIAS\",BLANK_LINE:\"BLANK_LINE\",BLOCK_FOLDED:\"BLOCK_FOLDED\",BLOCK_LITERAL:\"BLOCK_LITERAL\",COMMENT:\"COMMENT\",DIRECTIVE:\"DIRECTIVE\",DOCUMENT:\"DOCUMENT\",FLOW_MAP:\"FLOW_MAP\",FLOW_SEQ:\"FLOW_SEQ\",MAP:\"MAP\",MAP_KEY:\"MAP_KEY\",MAP_VALUE:\"MAP_VALUE\",PLAIN:\"PLAIN\",QUOTE_DOUBLE:\"QUOTE_DOUBLE\",QUOTE_SINGLE:\"QUOTE_SINGLE\",SEQ:\"SEQ\",SEQ_ITEM:\"SEQ_ITEM\"},Oo=\"tag:yaml.org,2002:\",Lo={MAP:\"tag:yaml.org,2002:map\",SEQ:\"tag:yaml.org,2002:seq\",STR:\"tag:yaml.org,2002:str\"};function Is(t){let e=[0],n=t.indexOf(`\n`);for(;n!==-1;)n+=1,e.push(n),n=t.indexOf(`\n`,n);return e}function Ps(t){let e,n;return typeof t==\"string\"?(e=Is(t),n=t):(Array.isArray(t)&&(t=t[0]),t&&t.context&&(t.lineStarts||(t.lineStarts=Is(t.context.src)),e=t.lineStarts,n=t.context.src)),{lineStarts:e,src:n}}function An(t,e){if(typeof t!=\"number\"||t<0)return null;let{lineStarts:n,src:r}=Ps(e);if(!n||!r||t>r.length)return null;for(let i=0;i=1)||t>n.length)return null;let s=n[t-1],i=n[t];for(;i&&i>s&&r[i-1]===`\n`;)--i;return r.slice(s,i)}function To({start:t,end:e},n,r=80){let s=Ao(t.line,n);if(!s)return null;let{col:i}=t;if(s.length>r)if(i<=r-10)s=s.substr(0,r-1)+\"\\u2026\";else{let f=Math.round(r/2);s.length>i+f&&(s=s.substr(0,i+f-1)+\"\\u2026\"),i-=s.length-r,s=\"\\u2026\"+s.substr(1-r)}let o=1,a=\"\";e&&(e.line===t.line&&i+(e.col-t.col)<=r+1?o=e.col-t.col:(o=Math.min(s.length+1,r)-i,a=\"\\u2026\"));let c=i>1?\" \".repeat(i-1):\"\",l=\"^\".repeat(o);return`${s}\n${c}${l}${a}`}var Ye=class t{static copy(e){return new t(e.start,e.end)}constructor(e,n){this.start=e,this.end=n||e}isEmpty(){return typeof this.start!=\"number\"||!this.end||this.end<=this.start}setOrigRange(e,n){let{start:r,end:s}=this;if(e.length===0||s<=e[0])return this.origStart=r,this.origEnd=s,n;let i=n;for(;ir);)++i;this.origStart=r+i;let o=i;for(;i=s);)++i;return this.origEnd=s+i,o}},se=class t{static addStringTerminator(e,n,r){if(r[r.length-1]===`\n`)return r;let s=t.endOfWhiteSpace(e,n);return s>=e.length||e[s]===`\n`?r+`\n`:r}static atDocumentBoundary(e,n,r){let s=e[n];if(!s)return!0;let i=e[n-1];if(i&&i!==`\n`)return!1;if(r){if(s!==r)return!1}else if(s!==re.DIRECTIVES_END&&s!==re.DOCUMENT_END)return!1;let o=e[n+1],a=e[n+2];if(o!==s||a!==s)return!1;let c=e[n+3];return!c||c===`\n`||c===\"\t\"||c===\" \"}static endOfIdentifier(e,n){let r=e[n],s=r===\"<\",i=s?[`\n`,\"\t\",\" \",\">\"]:[`\n`,\"\t\",\" \",\"[\",\"]\",\"{\",\"}\",\",\"];for(;r&&i.indexOf(r)===-1;)r=e[n+=1];return s&&r===\">\"&&(n+=1),n}static endOfIndent(e,n){let r=e[n];for(;r===\" \";)r=e[n+=1];return n}static endOfLine(e,n){let r=e[n];for(;r&&r!==`\n`;)r=e[n+=1];return n}static endOfWhiteSpace(e,n){let r=e[n];for(;r===\"\t\"||r===\" \";)r=e[n+=1];return n}static startOfLine(e,n){let r=e[n-1];if(r===`\n`)return n;for(;r&&r!==`\n`;)r=e[n-=1];return n+1}static endOfBlockIndent(e,n,r){let s=t.endOfIndent(e,r);if(s>r+n)return s;{let i=t.endOfWhiteSpace(e,s),o=e[i];if(!o||o===`\n`)return i}return null}static atBlank(e,n,r){let s=e[n];return s===`\n`||s===\"\t\"||s===\" \"||r&&!s}static nextNodeIsIndented(e,n,r){return!e||n<0?!1:n>0?!0:r&&e===\"-\"}static normalizeOffset(e,n){let r=e[n];return r?r!==`\n`&&e[n-1]===`\n`?n-1:t.endOfWhiteSpace(e,n):n}static foldNewline(e,n,r){let s=0,i=!1,o=\"\",a=e[n+1];for(;a===\" \"||a===\"\t\"||a===`\n`;){switch(a){case`\n`:s=0,n+=1,o+=`\n`;break;case\"\t\":s<=r&&(i=!0),n=t.endOfWhiteSpace(e,n+2)-1;break;case\" \":s+=1,n+=1;break}a=e[n+1]}return o||(o=\" \"),a&&s<=r&&(i=!0),{fold:o,offset:n,error:i}}constructor(e,n,r){Object.defineProperty(this,\"context\",{value:r||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=n||[],this.type=e,this.value=null}getPropValue(e,n,r){if(!this.context)return null;let{src:s}=this.context,i=this.props[e];return i&&s[i.start]===n?s.slice(i.start+(r?1:0),i.end):null}get anchor(){for(let e=0;e0?e.join(`\n`):null}commentHasRequiredWhitespace(e){let{src:n}=this.context;if(this.header&&e===this.header.end||!this.valueRange)return!1;let{end:r}=this.valueRange;return e!==r||t.atBlank(n,r-1)}get hasComment(){if(this.context){let{src:e}=this.context;for(let n=0;nr.setOrigRange(e,n)),n}toString(){let{context:{src:e},range:n,value:r}=this;if(r!=null)return r;let s=e.slice(n.start,n.end);return t.addStringTerminator(e,n.end,s)}},de=class extends Error{constructor(e,n,r){if(!r||!(n instanceof se))throw new Error(`Invalid arguments for new ${e}`);super(),this.name=e,this.message=r,this.source=n}makePretty(){if(!this.source)return;this.nodeType=this.source.type;let e=this.source.context&&this.source.context.root;if(typeof this.offset==\"number\"){this.range=new Ye(this.offset,this.offset+1);let n=e&&An(this.offset,e);if(n){let r={line:n.line,col:n.col+1};this.linePos={start:n,end:r}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){let{line:n,col:r}=this.linePos.start;this.message+=` at line ${n}, column ${r}`;let s=e&&To(this.linePos,e);s&&(this.message+=`:\n\n${s}\n`)}delete this.source}},Tn=class extends de{constructor(e,n){super(\"YAMLReferenceError\",e,n)}},ft=class extends de{constructor(e,n){super(\"YAMLSemanticError\",e,n)}},Cn=class extends de{constructor(e,n){super(\"YAMLSyntaxError\",e,n)}},Mn=class extends de{constructor(e,n){super(\"YAMLWarning\",e,n)}};function Co(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var kn=class t extends se{static endOfLine(e,n,r){let s=e[n],i=n;for(;s&&s!==`\n`&&!(r&&(s===\"[\"||s===\"]\"||s===\"{\"||s===\"}\"||s===\",\"));){let o=e[i+1];if(s===\":\"&&(!o||o===`\n`||o===\"\t\"||o===\" \"||r&&o===\",\")||(s===\" \"||s===\"\t\")&&o===\"#\")break;i+=1,s=o}return i}get strValue(){if(!this.valueRange||!this.context)return null;let{start:e,end:n}=this.valueRange,{src:r}=this.context,s=r[n-1];for(;el?r.slice(l,a+1):c)}else i+=c}let o=r[e];switch(o){case\"\t\":{let a=\"Plain value cannot start with a tab character\";return{errors:[new ft(this,a)],str:i}}case\"@\":case\"`\":{let a=`Plain value cannot start with reserved character ${o}`;return{errors:[new ft(this,a)],str:i}}default:return i}}parseBlockValue(e){let{indent:n,inFlow:r,src:s}=this.context,i=e,o=e;for(let a=s[i];a===`\n`&&!se.atDocumentBoundary(s,i+1);a=s[i]){let c=se.endOfBlockIndent(s,n,i+1);if(c===null||s[c]===\"#\")break;s[c]===`\n`?i=c:(o=t.endOfLine(s,c,r),i=o)}return this.valueRange.isEmpty()&&(this.valueRange.start=e),this.valueRange.end=o,o}parse(e,n){this.context=e;let{inFlow:r,src:s}=e,i=n,o=s[i];return o&&o!==\"#\"&&o!==`\n`&&(i=t.endOfLine(s,n,r)),this.valueRange=new Ye(n,i),i=se.endOfWhiteSpace(s,i),i=this.parseComment(i),(!this.hasComment||this.valueRange.isEmpty())&&(i=this.parseBlockValue(i)),i}};U.Char=re;U.Node=se;U.PlainValue=kn;U.Range=Ye;U.Type=lt;U.YAMLError=de;U.YAMLReferenceError=Tn;U.YAMLSemanticError=ft;U.YAMLSyntaxError=Cn;U.YAMLWarning=Mn;U._defineProperty=Co;U.defaultTagPrefix=Oo;U.defaultTags=Lo});var xs=ee(_s=>{\"use strict\";var u=le(),Ee=class extends u.Node{constructor(){super(u.Type.BLANK_LINE)}get includesTrailingLines(){return!0}parse(e,n){return this.context=e,this.range=new u.Range(n,n+1),n+1}},ut=class extends u.Node{constructor(e,n){super(e,n),this.node=null}get includesTrailingLines(){return!!this.node&&this.node.includesTrailingLines}parse(e,n){this.context=e;let{parseNode:r,src:s}=e,{atLineStart:i,lineStart:o}=e;!i&&this.type===u.Type.SEQ_ITEM&&(this.error=new u.YAMLSemanticError(this,\"Sequence items must not have preceding content on the same line\"));let a=i?n-o:e.indent,c=u.Node.endOfWhiteSpace(s,n+1),l=s[c],f=l===\"#\",m=[],d=null;for(;l===`\n`||l===\"#\";){if(l===\"#\"){let h=u.Node.endOfLine(s,c+1);m.push(new u.Range(c,h)),c=h}else{i=!0,o=c+1;let h=u.Node.endOfWhiteSpace(s,o);s[h]===`\n`&&m.length===0&&(d=new Ee,o=d.parse({src:s},o)),c=u.Node.endOfIndent(s,o)}l=s[c]}if(u.Node.nextNodeIsIndented(l,c-(o+a),this.type!==u.Type.SEQ_ITEM)?this.node=r({atLineStart:i,inCollection:!1,indent:a,lineStart:o,parent:this},c):l&&o>n+1&&(c=o-1),this.node){if(d){let h=e.parent.items||e.parent.contents;h&&h.push(d)}m.length&&Array.prototype.push.apply(this.props,m),c=this.node.range.end}else if(f){let h=m[0];this.props.push(h),c=h.end}else c=u.Node.endOfLine(s,n+1);let y=this.node?this.node.valueRange.end:c;return this.valueRange=new u.Range(n,y),c}setOrigRanges(e,n){return n=super.setOrigRanges(e,n),this.node?this.node.setOrigRanges(e,n):n}toString(){let{context:{src:e},node:n,range:r,value:s}=this;if(s!=null)return s;let i=n?e.slice(r.start,n.range.start)+String(n):e.slice(r.start,r.end);return u.Node.addStringTerminator(e,r.end,i)}},ye=class extends u.Node{constructor(){super(u.Type.COMMENT)}parse(e,n){this.context=e;let r=this.parseComment(n);return this.range=new u.Range(n,r),r}};function vn(t){let e=t;for(;e instanceof ut;)e=e.node;if(!(e instanceof $t))return null;let n=e.items.length,r=-1;for(let o=n-1;o>=0;--o){let a=e.items[o];if(a.type===u.Type.COMMENT){let{indent:c,lineStart:l}=a.context;if(c>0&&a.range.start>=l+c)break;r=o}else if(a.type===u.Type.BLANK_LINE)r=o;else break}if(r===-1)return null;let s=e.items.splice(r,n-r),i=s[0].range.start;for(;e.range.end=i,e.valueRange&&e.valueRange.end>i&&(e.valueRange.end=i),e!==t;)e=e.context.parent;return s}var $t=class t extends u.Node{static nextContentHasIndent(e,n,r){let s=u.Node.endOfLine(e,n)+1;n=u.Node.endOfWhiteSpace(e,s);let i=e[n];return i?n>=s+r?!0:i!==\"#\"&&i!==`\n`?!1:t.nextContentHasIndent(e,n,r):!1}constructor(e){super(e.type===u.Type.SEQ_ITEM?u.Type.SEQ:u.Type.MAP);for(let r=e.props.length-1;r>=0;--r)if(e.props[r].start0}parse(e,n){this.context=e;let{parseNode:r,src:s}=e,i=u.Node.startOfLine(s,n),o=this.items[0];o.context.parent=this,this.valueRange=u.Range.copy(o.valueRange);let a=o.range.start-o.context.lineStart,c=n;c=u.Node.normalizeOffset(s,c);let l=s[c],f=u.Node.endOfWhiteSpace(s,i)===c,m=!1;for(;l;){for(;l===`\n`||l===\"#\";){if(f&&l===`\n`&&!m){let h=new Ee;if(c=h.parse({src:s},c),this.valueRange.end=c,c>=s.length){l=null;break}this.items.push(h),c-=1}else if(l===\"#\"){if(c=s.length){l=null;break}}if(i=c+1,c=u.Node.endOfIndent(s,i),u.Node.atBlank(s,c)){let h=u.Node.endOfWhiteSpace(s,c),g=s[h];(!g||g===`\n`||g===\"#\")&&(c=h)}l=s[c],f=!0}if(!l)break;if(c!==i+a&&(f||l!==\":\")){if(cn&&(c=i);break}else if(!this.error){let h=\"All collection items must start at the same column\";this.error=new u.YAMLSyntaxError(this,h)}}if(o.type===u.Type.SEQ_ITEM){if(l!==\"-\"){i>n&&(c=i);break}}else if(l===\"-\"&&!this.error){let h=s[c+1];if(!h||h===`\n`||h===\"\t\"||h===\" \"){let g=\"A collection cannot be both a mapping and a sequence\";this.error=new u.YAMLSyntaxError(this,g)}}let d=r({atLineStart:f,inCollection:!0,indent:a,lineStart:i,parent:this},c);if(!d)return c;if(this.items.push(d),this.valueRange.end=d.valueRange.end,c=u.Node.normalizeOffset(s,d.range.end),l=s[c],f=!1,m=d.includesTrailingLines,l){let h=c-1,g=s[h];for(;g===\" \"||g===\"\t\";)g=s[--h];g===`\n`&&(i=h+1,f=!0)}let y=vn(d);y&&Array.prototype.push.apply(this.items,y)}return c}setOrigRanges(e,n){return n=super.setOrigRanges(e,n),this.items.forEach(r=>{n=r.setOrigRanges(e,n)}),n}toString(){let{context:{src:e},items:n,range:r,value:s}=this;if(s!=null)return s;let i=e.slice(r.start,n[0].range.start)+String(n[0]);for(let o=1;o0&&(this.contents=this.directives,this.directives=[]),i}return n[i]?(this.directivesEndMarker=new u.Range(i,i+3),i+3):(s?this.error=new u.YAMLSemanticError(this,\"Missing directives-end indicator line\"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),i)}parseContents(e){let{parseNode:n,src:r}=this.context;this.contents||(this.contents=[]);let s=e;for(;r[s-1]===\"-\";)s-=1;let i=u.Node.endOfWhiteSpace(r,e),o=s===e;for(this.valueRange=new u.Range(i);!u.Node.atDocumentBoundary(r,i,u.Char.DOCUMENT_END);){switch(r[i]){case`\n`:if(o){let a=new Ee;i=a.parse({src:r},i),i{n=r.setOrigRanges(e,n)}),this.directivesEndMarker&&(n=this.directivesEndMarker.setOrigRange(e,n)),this.contents.forEach(r=>{n=r.setOrigRanges(e,n)}),this.documentEndMarker&&(n=this.documentEndMarker.setOrigRange(e,n)),n}toString(){let{contents:e,directives:n,value:r}=this;if(r!=null)return r;let s=n.join(\"\");return e.length>0&&((n.length>0||e[0].type===u.Type.COMMENT)&&(s+=`---\n`),s+=e.join(\"\")),s[s.length-1]!==`\n`&&(s+=`\n`),s}},_n=class extends u.Node{parse(e,n){this.context=e;let{src:r}=e,s=u.Node.endOfIdentifier(r,n+1);return this.valueRange=new u.Range(n+1,s),s=u.Node.endOfWhiteSpace(r,s),s=this.parseComment(s),s}},fe={CLIP:\"CLIP\",KEEP:\"KEEP\",STRIP:\"STRIP\"},xn=class extends u.Node{constructor(e,n){super(e,n),this.blockIndent=null,this.chomping=fe.CLIP,this.header=null}get includesTrailingLines(){return this.chomping===fe.KEEP}get strValue(){if(!this.valueRange||!this.context)return null;let{start:e,end:n}=this.valueRange,{indent:r,src:s}=this.context;if(this.valueRange.isEmpty())return\"\";let i=null,o=s[n-1];for(;o===`\n`||o===\"\t\"||o===\" \";){if(n-=1,n<=e){if(this.chomping===fe.KEEP)break;return\"\"}o===`\n`&&(i=n),o=s[n-1]}let a=n+1;i&&(this.chomping===fe.KEEP?(a=i,n=this.valueRange.end):n=i);let c=r+this.blockIndent,l=this.type===u.Type.BLOCK_FOLDED,f=!0,m=\"\",d=\"\",y=!1;for(let h=e;ha&&(a=m);r[l]===`\n`?i=l:i=o=u.Node.endOfLine(r,l)}return this.chomping!==fe.KEEP&&(i=r[o]?o+1:o),this.valueRange=new u.Range(e+1,i),i}parse(e,n){this.context=e;let{src:r}=e,s=this.parseBlockHeader(n);return s=u.Node.endOfWhiteSpace(r,s),s=this.parseComment(s),s=this.parseBlockValue(s),s}setOrigRanges(e,n){return n=super.setOrigRanges(e,n),this.header?this.header.setOrigRange(e,n):n}},Rn=class extends u.Node{constructor(e,n){super(e,n),this.items=null}prevNodeIsJsonLike(e=this.items.length){let n=this.items[e-1];return!!n&&(n.jsonLike||n.type===u.Type.COMMENT&&this.prevNodeIsJsonLike(e-1))}parse(e,n){this.context=e;let{parseNode:r,src:s}=e,{indent:i,lineStart:o}=e,a=s[n];this.items=[{char:a,offset:n}];let c=u.Node.endOfWhiteSpace(s,n+1);for(a=s[c];a&&a!==\"]\"&&a!==\"}\";){switch(a){case`\n`:{o=c+1;let l=u.Node.endOfWhiteSpace(s,o);if(s[l]===`\n`){let f=new Ee;o=f.parse({src:s},o),this.items.push(f)}if(c=u.Node.endOfIndent(s,o),c<=o+i&&(a=s[c],c{if(r instanceof u.Node)n=r.setOrigRanges(e,n);else if(e.length===0)r.origOffset=r.offset;else{let s=n;for(;sr.offset);)++s;r.origOffset=r.offset+s,n=s}}),n}toString(){let{context:{src:e},items:n,range:r,value:s}=this;if(s!=null)return s;let i=n.filter(c=>c instanceof u.Node),o=\"\",a=r.start;return i.forEach(c=>{let l=e.slice(a,c.range.start);a=c.range.end,o+=l+String(c),o[o.length-1]===`\n`&&e[a-1]!==`\n`&&e[a]===`\n`&&(a+=1)}),o+=e.slice(a,r.end),u.Node.addStringTerminator(e,r.end,o)}},Dn=class t extends u.Node{static endOfQuote(e,n){let r=e[n];for(;r&&r!=='\"';)n+=r===\"\\\\\"?2:1,r=e[n];return n+1}get strValue(){if(!this.valueRange||!this.context)return null;let e=[],{start:n,end:r}=this.valueRange,{indent:s,src:i}=this.context;i[r-1]!=='\"'&&e.push(new u.YAMLSyntaxError(this,'Missing closing \"quote'));let o=\"\";for(let a=n+1;al?i.slice(l,a+1):c)}else o+=c}return e.length>0?{errors:e,str:o}:o}parseCharCode(e,n,r){let{src:s}=this.context,i=s.substr(e,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;return isNaN(a)?(r.push(new u.YAMLSyntaxError(this,`Invalid escape sequence ${s.substr(e-2,n+2)}`)),s.substr(e-2,n+2)):String.fromCodePoint(a)}parse(e,n){this.context=e;let{src:r}=e,s=t.endOfQuote(r,n+1);return this.valueRange=new u.Range(n,s),s=u.Node.endOfWhiteSpace(r,s),s=this.parseComment(s),s}},Yn=class t extends u.Node{static endOfQuote(e,n){let r=e[n];for(;r;)if(r===\"'\"){if(e[n+1]!==\"'\")break;r=e[n+=2]}else r=e[n+=1];return n+1}get strValue(){if(!this.valueRange||!this.context)return null;let e=[],{start:n,end:r}=this.valueRange,{indent:s,src:i}=this.context;i[r-1]!==\"'\"&&e.push(new u.YAMLSyntaxError(this,\"Missing closing 'quote\"));let o=\"\";for(let a=n+1;al?i.slice(l,a+1):c)}else o+=c}return e.length>0?{errors:e,str:o}:o}parse(e,n){this.context=e;let{src:r}=e,s=t.endOfQuote(r,n+1);return this.valueRange=new u.Range(n,s),s=u.Node.endOfWhiteSpace(r,s),s=this.parseComment(s),s}};function Mo(t,e){switch(t){case u.Type.ALIAS:return new _n(t,e);case u.Type.BLOCK_FOLDED:case u.Type.BLOCK_LITERAL:return new xn(t,e);case u.Type.FLOW_MAP:case u.Type.FLOW_SEQ:return new Rn(t,e);case u.Type.MAP_KEY:case u.Type.MAP_VALUE:case u.Type.SEQ_ITEM:return new ut(t,e);case u.Type.COMMENT:case u.Type.PLAIN:return new u.PlainValue(t,e);case u.Type.QUOTE_DOUBLE:return new Dn(t,e);case u.Type.QUOTE_SINGLE:return new Yn(t,e);default:return null}}var Bn=class t{static parseType(e,n,r){switch(e[n]){case\"*\":return u.Type.ALIAS;case\">\":return u.Type.BLOCK_FOLDED;case\"|\":return u.Type.BLOCK_LITERAL;case\"{\":return u.Type.FLOW_MAP;case\"[\":return u.Type.FLOW_SEQ;case\"?\":return!r&&u.Node.atBlank(e,n+1,!0)?u.Type.MAP_KEY:u.Type.PLAIN;case\":\":return!r&&u.Node.atBlank(e,n+1,!0)?u.Type.MAP_VALUE:u.Type.PLAIN;case\"-\":return!r&&u.Node.atBlank(e,n+1,!0)?u.Type.SEQ_ITEM:u.Type.PLAIN;case'\"':return u.Type.QUOTE_DOUBLE;case\"'\":return u.Type.QUOTE_SINGLE;default:return u.Type.PLAIN}}constructor(e={},{atLineStart:n,inCollection:r,inFlow:s,indent:i,lineStart:o,parent:a}={}){u._defineProperty(this,\"parseNode\",(c,l)=>{if(u.Node.atDocumentBoundary(this.src,l))return null;let f=new t(this,c),{props:m,type:d,valueStart:y}=f.parseProps(l),h=Mo(d,m),g=h.parse(f,y);if(h.range=new u.Range(l,g),g<=l&&(h.error=new Error(\"Node#parse consumed no characters\"),h.error.parseEnd=g,h.error.source=h,h.range.end=l+1),f.nodeStartsCollection(h)){!h.error&&!f.atLineStart&&f.parent.type===u.Type.DOCUMENT&&(h.error=new u.YAMLSyntaxError(h,\"Block collection must not have preceding content here (e.g. directives-end indicator)\"));let w=new $t(h);return g=w.parse(new t(f),g),w.range=new u.Range(l,g),w}return h}),this.atLineStart=n??(e.atLineStart||!1),this.inCollection=r??(e.inCollection||!1),this.inFlow=s??(e.inFlow||!1),this.indent=i??e.indent,this.lineStart=o??e.lineStart,this.parent=a??(e.parent||{}),this.root=e.root,this.src=e.src}nodeStartsCollection(e){let{inCollection:n,inFlow:r,src:s}=this;if(n||r)return!1;if(e instanceof ut)return!0;let i=e.range.end;return s[i]===`\n`||s[i-1]===`\n`?!1:(i=u.Node.endOfWhiteSpace(s,i),s[i]===\":\")}parseProps(e){let{inFlow:n,parent:r,src:s}=this,i=[],o=!1;e=this.atLineStart?u.Node.endOfIndent(s,e):u.Node.endOfWhiteSpace(s,e);let a=s[e];for(;a===u.Char.ANCHOR||a===u.Char.COMMENT||a===u.Char.TAG||a===`\n`;){if(a===`\n`){let l=e,f;do f=l+1,l=u.Node.endOfIndent(s,f);while(s[l]===`\n`);let m=l-(f+this.indent),d=r.type===u.Type.SEQ_ITEM&&r.context.atLineStart;if(s[l]!==\"#\"&&!u.Node.nextNodeIsIndented(s[l],m,!d))break;this.atLineStart=!0,this.lineStart=f,o=!1,e=l}else if(a===u.Char.COMMENT){let l=u.Node.endOfLine(s,e+1);i.push(new u.Range(e,l)),e=l}else{let l=u.Node.endOfIdentifier(s,e+1);a===u.Char.TAG&&s[l]===\",\"&&/^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(s.slice(e+1,l+13))&&(l=u.Node.endOfIdentifier(s,l+5)),i.push(new u.Range(e,l)),o=!0,e=u.Node.endOfWhiteSpace(s,l)}a=s[e]}o&&a===\":\"&&u.Node.atBlank(s,e+1,!0)&&(e-=1);let c=t.parseType(s,e,n);return{props:i,type:c,valueStart:e}}};function ko(t){let e=[];t.indexOf(\"\\r\")!==-1&&(t=t.replace(/\\r\\n?/g,(s,i)=>(s.length>1&&e.push(i),`\n`)));let n=[],r=0;do{let s=new Pn,i=new Bn({src:t});r=s.parse(i,r),n.push(s)}while(r{if(e.length===0)return!1;for(let i=1;in.join(`...\n`),n}_s.parse=ko});var $e=ee(k=>{\"use strict\";var p=le();function vo(t,e,n){return n?`#${n.replace(/[\\s\\S]^/gm,`$&${e}#`)}\n${e}${t}`:t}function Be(t,e,n){return n?n.indexOf(`\n`)===-1?`${t} #${n}`:`${t}\n`+n.replace(/^/gm,`${e||\"\"}#`):t}var W=class{};function ue(t,e,n){if(Array.isArray(t))return t.map((r,s)=>ue(r,String(s),n));if(t&&typeof t.toJSON==\"function\"){let r=n&&n.anchors&&n.anchors.get(t);r&&(n.onCreate=i=>{r.res=i,delete n.onCreate});let s=t.toJSON(e,n);return r&&n.onCreate&&n.onCreate(s),s}return(!n||!n.keep)&&typeof t==\"bigint\"?Number(t):t}var P=class extends W{constructor(e){super(),this.value=e}toJSON(e,n){return n&&n.keep?this.value:ue(this.value,e,n)}toString(){return String(this.value)}};function Rs(t,e,n){let r=n;for(let s=e.length-1;s>=0;--s){let i=e[s];if(Number.isInteger(i)&&i>=0){let o=[];o[i]=r,r=o}else{let o={};Object.defineProperty(o,i,{value:r,writable:!0,enumerable:!0,configurable:!0}),r=o}}return t.createNode(r,!1)}var Bs=t=>t==null||typeof t==\"object\"&&t[Symbol.iterator]().next().done,j=class t extends W{constructor(e){super(),p._defineProperty(this,\"items\",[]),this.schema=e}addIn(e,n){if(Bs(e))this.add(n);else{let[r,...s]=e,i=this.get(r,!0);if(i instanceof t)i.addIn(s,n);else if(i===void 0&&this.schema)this.set(r,Rs(this.schema,s,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}deleteIn([e,...n]){if(n.length===0)return this.delete(e);let r=this.get(e,!0);if(r instanceof t)return r.deleteIn(n);throw new Error(`Expected YAML collection at ${e}. Remaining path: ${n}`)}getIn([e,...n],r){let s=this.get(e,!0);return n.length===0?!r&&s instanceof P?s.value:s:s instanceof t?s.getIn(n,r):void 0}hasAllNullValues(){return this.items.every(e=>{if(!e||e.type!==\"PAIR\")return!1;let n=e.value;return n==null||n instanceof P&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn([e,...n]){if(n.length===0)return this.has(e);let r=this.get(e,!0);return r instanceof t?r.hasIn(n):!1}setIn([e,...n],r){if(n.length===0)this.set(e,r);else{let s=this.get(e,!0);if(s instanceof t)s.setIn(n,r);else if(s===void 0&&this.schema)this.set(e,Rs(this.schema,n,r));else throw new Error(`Expected YAML collection at ${e}. Remaining path: ${n}`)}}toJSON(){return null}toString(e,{blockItem:n,flowChars:r,isMap:s,itemIndent:i},o,a){let{indent:c,indentStep:l,stringify:f}=e,m=this.type===p.Type.FLOW_MAP||this.type===p.Type.FLOW_SEQ||e.inFlow;m&&(i+=l);let d=s&&this.hasAllNullValues();e=Object.assign({},e,{allNullValues:d,indent:i,inFlow:m,type:null});let y=!1,h=!1,g=this.items.reduce((C,L,M)=>{let A;L&&(!y&&L.spaceBefore&&C.push({type:\"comment\",str:\"\"}),L.commentBefore&&L.commentBefore.match(/^.*$/gm).forEach(Li=>{C.push({type:\"comment\",str:`#${Li}`})}),L.comment&&(A=L.comment),m&&(!y&&L.spaceBefore||L.commentBefore||L.comment||L.key&&(L.key.commentBefore||L.key.comment)||L.value&&(L.value.commentBefore||L.value.comment))&&(h=!0)),y=!1;let _=f(L,e,()=>A=null,()=>y=!0);return m&&!h&&_.includes(`\n`)&&(h=!0),m&&MA.str);if(h||M.reduce((A,_)=>A+_.length+2,2)>t.maxFlowStringSingleLineLength){w=C;for(let A of M)w+=A?`\n${l}${c}${A}`:`\n`;w+=`\n${c}${L}`}else w=`${C} ${M.join(\" \")} ${L}`}else{let C=g.map(n);w=C.shift();for(let L of C)w+=L?`\n${c}${L}`:`\n`}return this.comment?(w+=`\n`+this.comment.replace(/^/gm,`${c}#`),o&&o()):y&&a&&a(),w}};p._defineProperty(j,\"maxFlowStringSingleLineLength\",60);function Ft(t){let e=t instanceof P?t.value:t;return e&&typeof e==\"string\"&&(e=Number(e)),Number.isInteger(e)&&e>=0?e:null}var pe=class extends j{add(e){this.items.push(e)}delete(e){let n=Ft(e);return typeof n!=\"number\"?!1:this.items.splice(n,1).length>0}get(e,n){let r=Ft(e);if(typeof r!=\"number\")return;let s=this.items[r];return!n&&s instanceof P?s.value:s}has(e){let n=Ft(e);return typeof n==\"number\"&&ns.type===\"comment\"?s.str:`- ${s.str}`,flowChars:{start:\"[\",end:\"]\"},isMap:!1,itemIndent:(e.indent||\"\")+\" \"},n,r):JSON.stringify(this)}},Io=(t,e,n)=>e===null?\"\":typeof e!=\"object\"?String(e):t instanceof W&&n&&n.doc?t.toString({anchors:Object.create(null),doc:n.doc,indent:\"\",indentStep:n.indentStep,inFlow:!0,inStringifyKey:!0,stringify:n.stringify}):JSON.stringify(e),T=class t extends W{constructor(e,n=null){super(),this.key=e,this.value=n,this.type=t.Type.PAIR}get commentBefore(){return this.key instanceof W?this.key.commentBefore:void 0}set commentBefore(e){if(this.key==null&&(this.key=new P(null)),this.key instanceof W)this.key.commentBefore=e;else{let n=\"Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.\";throw new Error(n)}}addToJSMap(e,n){let r=ue(this.key,\"\",e);if(n instanceof Map){let s=ue(this.value,r,e);n.set(r,s)}else if(n instanceof Set)n.add(r);else{let s=Io(this.key,r,e),i=ue(this.value,s,e);s in n?Object.defineProperty(n,s,{value:i,writable:!0,enumerable:!0,configurable:!0}):n[s]=i}return n}toJSON(e,n){let r=n&&n.mapAsMap?new Map:{};return this.addToJSMap(n,r)}toString(e,n,r){if(!e||!e.doc)return JSON.stringify(this);let{indent:s,indentSeq:i,simpleKeys:o}=e.doc.options,{key:a,value:c}=this,l=a instanceof W&&a.comment;if(o){if(l)throw new Error(\"With simple keys, key nodes cannot have comments\");if(a instanceof j){let _=\"With simple keys, collection cannot be used as a key value\";throw new Error(_)}}let f=!o&&(!a||l||(a instanceof W?a instanceof j||a.type===p.Type.BLOCK_FOLDED||a.type===p.Type.BLOCK_LITERAL:typeof a==\"object\")),{doc:m,indent:d,indentStep:y,stringify:h}=e;e=Object.assign({},e,{implicitKey:!f,indent:d+y});let g=!1,w=h(a,e,()=>l=null,()=>g=!0);if(w=Be(w,e.indent,l),!f&&w.length>1024){if(o)throw new Error(\"With simple keys, single line scalar must not span more than 1024 characters\");f=!0}if(e.allNullValues&&!o)return this.comment?(w=Be(w,e.indent,this.comment),n&&n()):g&&!l&&r&&r(),e.inFlow&&!f?w:`? ${w}`;w=f?`? ${w}\n${d}:`:`${w}:`,this.comment&&(w=Be(w,e.indent,this.comment),n&&n());let C=\"\",L=null;if(c instanceof W){if(c.spaceBefore&&(C=`\n`),c.commentBefore){let _=c.commentBefore.replace(/^/gm,`${e.indent}#`);C+=`\n${_}`}L=c.comment}else c&&typeof c==\"object\"&&(c=m.schema.createNode(c,!0));e.implicitKey=!1,!f&&!this.comment&&c instanceof P&&(e.indentAtStart=w.length+1),g=!1,!i&&s>=2&&!e.inFlow&&!f&&c instanceof pe&&c.type!==p.Type.FLOW_SEQ&&!c.tag&&!m.anchors.getName(c)&&(e.indent=e.indent.substr(2));let M=h(c,e,()=>L=null,()=>g=!0),A=\" \";return C||this.comment?A=`${C}\n${e.indent}`:!f&&c instanceof j?(!(M[0]===\"[\"||M[0]===\"{\")||M.includes(`\n`))&&(A=`\n${e.indent}`):M[0]===`\n`&&(A=\"\"),g&&!L&&r&&r(),Be(w+A+M,e.indent,L)}};p._defineProperty(T,\"Type\",{PAIR:\"PAIR\",MERGE_PAIR:\"MERGE_PAIR\"});var qt=(t,e)=>{if(t instanceof we){let n=e.get(t.source);return n.count*n.aliasCount}else if(t instanceof j){let n=0;for(let r of t.items){let s=qt(r,e);s>n&&(n=s)}return n}else if(t instanceof T){let n=qt(t.key,e),r=qt(t.value,e);return Math.max(n,r)}return 1},we=class t extends W{static stringify({range:e,source:n},{anchors:r,doc:s,implicitKey:i,inStringifyKey:o}){let a=Object.keys(r).find(l=>r[l]===n);if(!a&&o&&(a=s.anchors.getName(n)||s.anchors.newName()),a)return`*${a}${i?\" \":\"\"}`;let c=s.anchors.getName(n)?\"Alias node must be after source node\":\"Source node not found for alias node\";throw new Error(`${c} [${e}]`)}constructor(e){super(),this.source=e,this.type=p.Type.ALIAS}set tag(e){throw new Error(\"Alias nodes cannot have tags\")}toJSON(e,n){if(!n)return ue(this.source,e,n);let{anchors:r,maxAliasCount:s}=n,i=r.get(this.source);if(!i||i.res===void 0){let o=\"This should not happen: Alias anchor was not resolved?\";throw this.cstNode?new p.YAMLReferenceError(this.cstNode,o):new ReferenceError(o)}if(s>=0&&(i.count+=1,i.aliasCount===0&&(i.aliasCount=qt(this.source,r)),i.count*i.aliasCount>s)){let o=\"Excessive alias count indicates a resource exhaustion attack\";throw this.cstNode?new p.YAMLReferenceError(this.cstNode,o):new ReferenceError(o)}return i.res}toString(e){return t.stringify(this,e)}};p._defineProperty(we,\"default\",!0);function pt(t,e){let n=e instanceof P?e.value:e;for(let r of t)if(r instanceof T&&(r.key===e||r.key===n||r.key&&r.key.value===n))return r}var mt=class extends j{add(e,n){e?e instanceof T||(e=new T(e.key||e,e.value)):e=new T(e);let r=pt(this.items,e.key),s=this.schema&&this.schema.sortMapEntries;if(r)if(n)r.value=e.value;else throw new Error(`Key ${e.key} already set`);else if(s){let i=this.items.findIndex(o=>s(e,o)<0);i===-1?this.items.push(e):this.items.splice(i,0,e)}else this.items.push(e)}delete(e){let n=pt(this.items,e);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(e,n){let r=pt(this.items,e),s=r&&r.value;return!n&&s instanceof P?s.value:s}has(e){return!!pt(this.items,e)}set(e,n){this.add(new T(e,n),!0)}toJSON(e,n,r){let s=r?new r:n&&n.mapAsMap?new Map:{};n&&n.onCreate&&n.onCreate(s);for(let i of this.items)i.addToJSMap(n,s);return s}toString(e,n,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!(s instanceof T))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return super.toString(e,{blockItem:s=>s.str,flowChars:{start:\"{\",end:\"}\"},isMap:!0,itemIndent:e.indent||\"\"},n,r)}},$s=\"<<\",Vt=class extends T{constructor(e){if(e instanceof T){let n=e.value;n instanceof pe||(n=new pe,n.items.push(e.value),n.range=e.value.range),super(e.key,n),this.range=e.range}else super(new P($s),new pe);this.type=T.Type.MERGE_PAIR}addToJSMap(e,n){for(let{source:r}of this.value.items){if(!(r instanceof mt))throw new Error(\"Merge sources must be maps\");let s=r.toJSON(null,e,Map);for(let[i,o]of s)n instanceof Map?n.has(i)||n.set(i,o):n instanceof Set?n.add(i):Object.prototype.hasOwnProperty.call(n,i)||Object.defineProperty(n,i,{value:o,writable:!0,enumerable:!0,configurable:!0})}return n}toString(e,n){let r=this.value;if(r.items.length>1)return super.toString(e,n);this.value=r.items[0];let s=super.toString(e,n);return this.value=r,s}},Po={defaultType:p.Type.BLOCK_LITERAL,lineWidth:76},_o={trueStr:\"true\",falseStr:\"false\"},xo={asBigInt:!1},Ro={nullStr:\"null\"},be={defaultType:p.Type.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function Fn(t,e,n){for(let{format:r,test:s,resolve:i}of e)if(s){let o=t.match(s);if(o){let a=i.apply(null,o);return a instanceof P||(a=new P(a)),r&&(a.format=r),a}}return n&&(t=n(t)),new P(t)}var Fs=\"flow\",$n=\"block\",Ut=\"quoted\",Ds=(t,e)=>{let n=t[e+1];for(;n===\" \"||n===\"\t\";){do n=t[e+=1];while(n&&n!==`\n`);n=t[e+1]}return e};function Wt(t,e,n,{indentAtStart:r,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}){if(!s||s<0)return t;let c=Math.max(1+i,1+s-e.length);if(t.length<=c)return t;let l=[],f={},m=s-e.length;typeof r==\"number\"&&(r>s-Math.max(2,i)?l.push(0):m=s-r);let d,y,h=!1,g=-1,w=-1,C=-1;n===$n&&(g=Ds(t,g),g!==-1&&(m=g+c));for(let M;M=t[g+=1];){if(n===Ut&&M===\"\\\\\"){switch(w=g,t[g+1]){case\"x\":g+=3;break;case\"u\":g+=5;break;case\"U\":g+=9;break;default:g+=1}C=g}if(M===`\n`)n===$n&&(g=Ds(t,g)),m=g+c,d=void 0;else{if(M===\" \"&&y&&y!==\" \"&&y!==`\n`&&y!==\"\t\"){let A=t[g+1];A&&A!==\" \"&&A!==`\n`&&A!==\"\t\"&&(d=g)}if(g>=m)if(d)l.push(d),m=d+c,d=void 0;else if(n===Ut){for(;y===\" \"||y===\"\t\";)y=M,M=t[g+=1],h=!0;let A=g>C+1?g-2:w-1;if(f[A])return t;l.push(A),f[A]=!0,m=A+c,d=void 0}else h=!0}y=M}if(h&&a&&a(),l.length===0)return t;o&&o();let L=t.slice(0,l[0]);for(let M=0;Mt?Object.assign({indentAtStart:t},be.fold):be.fold,jt=t=>/^(%|---|\\.\\.\\.)/m.test(t);function Do(t,e,n){if(!e||e<0)return!1;let r=e-n,s=t.length;if(s<=r)return!1;for(let i=0,o=0;ir)return!0;if(o=i+1,s-o<=r)return!1}return!0}function Se(t,e){let{implicitKey:n}=e,{jsonEncoding:r,minMultiLineLength:s}=be.doubleQuoted,i=JSON.stringify(t);if(r)return i;let o=e.indent||(jt(t)?\" \":\"\"),a=\"\",c=0;for(let l=0,f=i[l];f;f=i[++l])if(f===\" \"&&i[l+1]===\"\\\\\"&&i[l+2]===\"n\"&&(a+=i.slice(c,l)+\"\\\\ \",l+=1,c=l,f=\"\\\\\"),f===\"\\\\\")switch(i[l+1]){case\"u\":{a+=i.slice(c,l);let m=i.substr(l+2,4);switch(m){case\"0000\":a+=\"\\\\0\";break;case\"0007\":a+=\"\\\\a\";break;case\"000b\":a+=\"\\\\v\";break;case\"001b\":a+=\"\\\\e\";break;case\"0085\":a+=\"\\\\N\";break;case\"00a0\":a+=\"\\\\_\";break;case\"2028\":a+=\"\\\\L\";break;case\"2029\":a+=\"\\\\P\";break;default:m.substr(0,2)===\"00\"?a+=\"\\\\x\"+m.substr(2):a+=i.substr(l,6)}l+=5,c=l+1}break;case\"n\":if(n||i[l+2]==='\"'||i.length\";if(!n)return l+`\n`;let f=\"\",m=\"\";if(n=n.replace(/[\\n\\t ]*$/,y=>{let h=y.indexOf(`\n`);return h===-1?l+=\"-\":(n===y||h!==y.length-1)&&(l+=\"+\",i&&i()),m=y.replace(/\\n$/,\"\"),\"\"}).replace(/^[\\n ]*/,y=>{y.indexOf(\" \")!==-1&&(l+=a);let h=y.match(/ +$/);return h?(f=y.slice(0,-h[0].length),h[0]):(f=y,\"\")}),m&&(m=m.replace(/\\n+(?!\\n|$)/g,`$&${o}`)),f&&(f=f.replace(/\\n+/g,`$&${o}`)),t&&(l+=\" #\"+t.replace(/ ?[\\r\\n]+/g,\" \"),s&&s()),!n)return`${l}${a}\n${o}${m}`;if(c)return n=n.replace(/\\n+/g,`$&${o}`),`${l}\n${o}${f}${n}${m}`;n=n.replace(/\\n+/g,`\n$&`).replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g,\"$1$2\").replace(/\\n+/g,`$&${o}`);let d=Wt(`${f}${n}${m}`,o,$n,be.fold);return`${l}\n${o}${d}`}function Yo(t,e,n,r){let{comment:s,type:i,value:o}=t,{actualString:a,implicitKey:c,indent:l,inFlow:f}=e;if(c&&/[\\n[\\]{},]/.test(o)||f&&/[[\\]{},]/.test(o))return Se(o,e);if(!o||/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(o))return c||f||o.indexOf(`\n`)===-1?o.indexOf('\"')!==-1&&o.indexOf(\"'\")===-1?qs(o,e):Se(o,e):Kt(t,e,n,r);if(!c&&!f&&i!==p.Type.PLAIN&&o.indexOf(`\n`)!==-1)return Kt(t,e,n,r);if(l===\"\"&&jt(o))return e.forceBlockIndent=!0,Kt(t,e,n,r);let m=o.replace(/\\n+/g,`$&\n${l}`);if(a){let{tags:y}=e.doc.schema;if(typeof Fn(m,y,y.scalarFallback).value!=\"string\")return Se(o,e)}let d=c?m:Wt(m,l,Fs,qn(e));return s&&!f&&(d.indexOf(`\n`)!==-1||s.indexOf(`\n`)!==-1)?(n&&n(),vo(d,l,s)):d}function Bo(t,e,n,r){let{defaultType:s}=be,{implicitKey:i,inFlow:o}=e,{type:a,value:c}=t;typeof c!=\"string\"&&(c=String(c),t=Object.assign({},t,{value:c}));let l=m=>{switch(m){case p.Type.BLOCK_FOLDED:case p.Type.BLOCK_LITERAL:return Kt(t,e,n,r);case p.Type.QUOTE_DOUBLE:return Se(c,e);case p.Type.QUOTE_SINGLE:return qs(c,e);case p.Type.PLAIN:return Yo(t,e,n,r);default:return null}};(a!==p.Type.QUOTE_DOUBLE&&/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(c)||(i||o)&&(a===p.Type.BLOCK_FOLDED||a===p.Type.BLOCK_LITERAL))&&(a=p.Type.QUOTE_DOUBLE);let f=l(a);if(f===null&&(f=l(s),f===null))throw new Error(`Unsupported default string type ${s}`);return f}function $o({format:t,minFractionDigits:e,tag:n,value:r}){if(typeof r==\"bigint\")return String(r);if(!isFinite(r))return isNaN(r)?\".nan\":r<0?\"-.inf\":\".inf\";let s=JSON.stringify(r);if(!t&&e&&(!n||n===\"tag:yaml.org,2002:float\")&&/^\\d/.test(s)){let i=s.indexOf(\".\");i<0&&(i=s.length,s+=\".\");let o=e-(s.length-i-1);for(;o-- >0;)s+=\"0\"}return s}function Us(t,e){let n,r;switch(e.type){case p.Type.FLOW_MAP:n=\"}\",r=\"flow map\";break;case p.Type.FLOW_SEQ:n=\"]\",r=\"flow sequence\";break;default:t.push(new p.YAMLSemanticError(e,\"Not a flow collection!?\"));return}let s;for(let i=e.items.length-1;i>=0;--i){let o=e.items[i];if(!o||o.type!==p.Type.COMMENT){s=o;break}}if(s&&s.char!==n){let i=`Expected ${r} to end with ${n}`,o;typeof s.offset==\"number\"?(o=new p.YAMLSemanticError(e,i),o.offset=s.offset+1):(o=new p.YAMLSemanticError(s,i),s.range&&s.range.end&&(o.offset=s.range.end-s.range.start)),t.push(o)}}function Ks(t,e){let n=e.context.src[e.range.start-1];if(n!==`\n`&&n!==\"\t\"&&n!==\" \"){let r=\"Comments must be separated from other tokens by white space characters\";t.push(new p.YAMLSemanticError(e,r))}}function Vs(t,e){let n=String(e),r=n.substr(0,8)+\"...\"+n.substr(-8);return new p.YAMLSemanticError(t,`The \"${r}\" key is too long`)}function Ws(t,e){for(let{afterKey:n,before:r,comment:s}of e){let i=t.items[r];i?(n&&i.value&&(i=i.value),s===void 0?(n||!i.commentBefore)&&(i.spaceBefore=!0):i.commentBefore?i.commentBefore+=`\n`+s:i.commentBefore=s):s!==void 0&&(t.comment?t.comment+=`\n`+s:t.comment=s)}}function Un(t,e){let n=e.strValue;return n?typeof n==\"string\"?n:(n.errors.forEach(r=>{r.source||(r.source=e),t.errors.push(r)}),n.str):\"\"}function Fo(t,e){let{handle:n,suffix:r}=e.tag,s=t.tagPrefixes.find(i=>i.handle===n);if(!s){let i=t.getDefaults().tagPrefixes;if(i&&(s=i.find(o=>o.handle===n)),!s)throw new p.YAMLSemanticError(e,`The ${n} tag handle is non-default and was not declared.`)}if(!r)throw new p.YAMLSemanticError(e,`The ${n} tag has no suffix.`);if(n===\"!\"&&(t.version||t.options.version)===\"1.0\"){if(r[0]===\"^\")return t.warnings.push(new p.YAMLWarning(e,\"YAML 1.0 ^ tag expansion is not supported\")),r;if(/[:/]/.test(r)){let i=r.match(/^([a-z0-9-]+)\\/(.*)/i);return i?`tag:${i[1]}.yaml.org,2002:${i[2]}`:`tag:${r}`}}return s.prefix+decodeURIComponent(r)}function qo(t,e){let{tag:n,type:r}=e,s=!1;if(n){let{handle:i,suffix:o,verbatim:a}=n;if(a){if(a!==\"!\"&&a!==\"!!\")return a;let c=`Verbatim tags aren't resolved, so ${a} is invalid.`;t.errors.push(new p.YAMLSemanticError(e,c))}else if(i===\"!\"&&!o)s=!0;else try{return Fo(t,e)}catch(c){t.errors.push(c)}}switch(r){case p.Type.BLOCK_FOLDED:case p.Type.BLOCK_LITERAL:case p.Type.QUOTE_DOUBLE:case p.Type.QUOTE_SINGLE:return p.defaultTags.STR;case p.Type.FLOW_MAP:case p.Type.MAP:return p.defaultTags.MAP;case p.Type.FLOW_SEQ:case p.Type.SEQ:return p.defaultTags.SEQ;case p.Type.PLAIN:return s?p.defaultTags.STR:null;default:return null}}function Ys(t,e,n){let{tags:r}=t.schema,s=[];for(let o of r)if(o.tag===n)if(o.test)s.push(o);else{let a=o.resolve(t,e);return a instanceof j?a:new P(a)}let i=Un(t,e);return typeof i==\"string\"&&s.length>0?Fn(i,s,r.scalarFallback):null}function Uo({type:t}){switch(t){case p.Type.FLOW_MAP:case p.Type.MAP:return p.defaultTags.MAP;case p.Type.FLOW_SEQ:case p.Type.SEQ:return p.defaultTags.SEQ;default:return p.defaultTags.STR}}function Ko(t,e,n){try{let r=Ys(t,e,n);if(r)return n&&e.tag&&(r.tag=n),r}catch(r){return r.source||(r.source=e),t.errors.push(r),null}try{let r=Uo(e);if(!r)throw new Error(`The tag ${n} is unavailable`);let s=`The tag ${n} is unavailable, falling back to ${r}`;t.warnings.push(new p.YAMLWarning(e,s));let i=Ys(t,e,r);return i.tag=n,i}catch(r){let s=new p.YAMLReferenceError(e,r.message);return s.stack=r.stack,t.errors.push(s),null}}var Vo=t=>{if(!t)return!1;let{type:e}=t;return e===p.Type.MAP_KEY||e===p.Type.MAP_VALUE||e===p.Type.SEQ_ITEM};function Wo(t,e){let n={before:[],after:[]},r=!1,s=!1,i=Vo(e.context.parent)?e.context.parent.props.concat(e.props):e.props;for(let{start:o,end:a}of i)switch(e.context.src[o]){case p.Char.COMMENT:{if(!e.commentHasRequiredWhitespace(o)){let m=\"Comments must be separated from other tokens by white space characters\";t.push(new p.YAMLSemanticError(e,m))}let{header:c,valueRange:l}=e;(l&&(o>l.start||c&&o>c.start)?n.after:n.before).push(e.context.src.slice(o+1,a));break}case p.Char.ANCHOR:if(r){let c=\"A node can have at most one anchor\";t.push(new p.YAMLSemanticError(e,c))}r=!0;break;case p.Char.TAG:if(s){let c=\"A node can have at most one tag\";t.push(new p.YAMLSemanticError(e,c))}s=!0;break}return{comments:n,hasAnchor:r,hasTag:s}}function jo(t,e){let{anchors:n,errors:r,schema:s}=t;if(e.type===p.Type.ALIAS){let o=e.rawValue,a=n.getNode(o);if(!a){let l=`Aliased anchor not found: ${o}`;return r.push(new p.YAMLReferenceError(e,l)),null}let c=new we(a);return n._cstAliases.push(c),c}let i=qo(t,e);if(i)return Ko(t,e,i);if(e.type!==p.Type.PLAIN){let o=`Failed to resolve ${e.type} node here`;return r.push(new p.YAMLSyntaxError(e,o)),null}try{let o=Un(t,e);return Fn(o,s.tags,s.tags.scalarFallback)}catch(o){return o.source||(o.source=e),r.push(o),null}}function me(t,e){if(!e)return null;e.error&&t.errors.push(e.error);let{comments:n,hasAnchor:r,hasTag:s}=Wo(t.errors,e);if(r){let{anchors:o}=t,a=e.anchor,c=o.getNode(a);c&&(o.map[o.newName(a)]=c),o.map[a]=e}if(e.type===p.Type.ALIAS&&(r||s)){let o=\"An alias node must not specify any properties\";t.errors.push(new p.YAMLSemanticError(e,o))}let i=jo(t,e);if(i){i.range=[e.range.start,e.range.end],t.options.keepCstNodes&&(i.cstNode=e),t.options.keepNodeTypes&&(i.type=e.type);let o=n.before.join(`\n`);o&&(i.commentBefore=i.commentBefore?`${i.commentBefore}\n${o}`:o);let a=n.after.join(`\n`);a&&(i.comment=i.comment?`${i.comment}\n${a}`:a)}return e.resolved=i}function Qo(t,e){if(e.type!==p.Type.MAP&&e.type!==p.Type.FLOW_MAP){let o=`A ${e.type} node cannot be resolved as a mapping`;return t.errors.push(new p.YAMLSyntaxError(e,o)),null}let{comments:n,items:r}=e.type===p.Type.FLOW_MAP?Xo(t,e):Ho(t,e),s=new mt;s.items=r,Ws(s,n);let i=!1;for(let o=0;o{if(f instanceof we){let{type:m}=f.source;return m===p.Type.MAP||m===p.Type.FLOW_MAP?!1:l=\"Merge nodes aliases can only point to maps\"}return l=\"Merge nodes can only have Alias nodes as values\"}),l&&t.errors.push(new p.YAMLSemanticError(e,l))}else for(let c=o+1;c{if(r.length===0)return!1;let{start:s}=r[0];if(e&&s>e.valueRange.start||n[s]!==p.Char.COMMENT)return!1;for(let i=t;i0){c=new p.PlainValue(p.Type.PLAIN,[]),c.context={parent:a,src:a.context.src};let f=a.range.start+1;if(c.range={start:f,end:f},c.valueRange={start:f,end:f},typeof a.range.origStart==\"number\"){let m=a.range.origStart+1;c.range.origStart=c.range.origEnd=m,c.valueRange.origStart=c.valueRange.origEnd=m}}let l=new T(s,me(t,c));Go(a,l),r.push(l),s&&typeof i==\"number\"&&a.range.start>i+1024&&t.errors.push(Vs(e,s)),s=void 0,i=null}break;default:s!==void 0&&r.push(new T(s)),s=me(t,a),i=a.range.start,a.error&&t.errors.push(a.error);e:for(let c=o+1;;++c){let l=e.items[c];switch(l&&l.type){case p.Type.BLANK_LINE:case p.Type.COMMENT:continue e;case p.Type.MAP_VALUE:break e;default:{let f=\"Implicit map keys need to be followed by map values\";t.errors.push(new p.YAMLSemanticError(a,f));break e}}}if(a.valueRangeContainsNewline){let c=\"Implicit map keys need to be on a single line\";t.errors.push(new p.YAMLSemanticError(a,c))}}}return s!==void 0&&r.push(new T(s)),{comments:n,items:r}}function Xo(t,e){let n=[],r=[],s,i=!1,o=\"{\";for(let a=0;ai instanceof T&&i.key instanceof j)){let i=\"Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.\";t.warnings.push(new p.YAMLWarning(e,i))}return e.resolved=s,s}function Zo(t,e){let n=[],r=[];for(let s=0;so+1024&&t.errors.push(Vs(e,i));let{src:h}=c.context;for(let g=o;g{\"use strict\";var Q=le(),O=$e(),ta={identify:t=>t instanceof Uint8Array,default:!1,tag:\"tag:yaml.org,2002:binary\",resolve:(t,e)=>{let n=O.resolveString(t,e);if(typeof Buffer==\"function\")return Buffer.from(n,\"base64\");if(typeof atob==\"function\"){let r=atob(n.replace(/[\\n\\r]/g,\"\")),s=new Uint8Array(r.length);for(let i=0;i{let o;if(typeof Buffer==\"function\")o=n instanceof Buffer?n.toString(\"base64\"):Buffer.from(n.buffer).toString(\"base64\");else if(typeof btoa==\"function\"){let a=\"\";for(let c=0;c1){let o=\"Each pair must have its own sequence indicator\";throw new Q.YAMLSemanticError(e,o)}let i=s.items[0]||new O.Pair;s.commentBefore&&(i.commentBefore=i.commentBefore?`${s.commentBefore}\n${i.commentBefore}`:s.commentBefore),s.comment&&(i.comment=i.comment?`${s.comment}\n${i.comment}`:s.comment),s=i}n.items[r]=s instanceof O.Pair?s:new O.Pair(s)}}return n}function Js(t,e,n){let r=new O.YAMLSeq(t);r.tag=\"tag:yaml.org,2002:pairs\";for(let s of e){let i,o;if(Array.isArray(s))if(s.length===2)i=s[0],o=s[1];else throw new TypeError(`Expected [key, value] tuple: ${s}`);else if(s&&s instanceof Object){let c=Object.keys(s);if(c.length===1)i=c[0],o=s[i];else throw new TypeError(`Expected { key: value } tuple: ${s}`)}else i=s;let a=t.createPair(i,o,n);r.items.push(a)}return r}var na={default:!1,tag:\"tag:yaml.org,2002:pairs\",resolve:Qs,createNode:Js},Fe=class t extends O.YAMLSeq{constructor(){super(),Q._defineProperty(this,\"add\",O.YAMLMap.prototype.add.bind(this)),Q._defineProperty(this,\"delete\",O.YAMLMap.prototype.delete.bind(this)),Q._defineProperty(this,\"get\",O.YAMLMap.prototype.get.bind(this)),Q._defineProperty(this,\"has\",O.YAMLMap.prototype.has.bind(this)),Q._defineProperty(this,\"set\",O.YAMLMap.prototype.set.bind(this)),this.tag=t.tag}toJSON(e,n){let r=new Map;n&&n.onCreate&&n.onCreate(r);for(let s of this.items){let i,o;if(s instanceof O.Pair?(i=O.toJSON(s.key,\"\",n),o=O.toJSON(s.value,i,n)):i=O.toJSON(s,\"\",n),r.has(i))throw new Error(\"Ordered maps must not include duplicate keys\");r.set(i,o)}return r}};Q._defineProperty(Fe,\"tag\",\"tag:yaml.org,2002:omap\");function ra(t,e){let n=Qs(t,e),r=[];for(let{key:s}of n.items)if(s instanceof O.Scalar)if(r.includes(s.value)){let i=\"Ordered maps must not include duplicate keys\";throw new Q.YAMLSemanticError(e,i)}else r.push(s.value);return Object.assign(new Fe,n)}function sa(t,e,n){let r=Js(t,e,n),s=new Fe;return s.items=r.items,s}var ia={identify:t=>t instanceof Map,nodeClass:Fe,default:!1,tag:\"tag:yaml.org,2002:omap\",resolve:ra,createNode:sa},qe=class t extends O.YAMLMap{constructor(){super(),this.tag=t.tag}add(e){let n=e instanceof O.Pair?e:new O.Pair(e);O.findPair(this.items,n.key)||this.items.push(n)}get(e,n){let r=O.findPair(this.items,e);return!n&&r instanceof O.Pair?r.key instanceof O.Scalar?r.key.value:r.key:r}set(e,n){if(typeof n!=\"boolean\")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);let r=O.findPair(this.items,e);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new O.Pair(e))}toJSON(e,n){return super.toJSON(e,n,Set)}toString(e,n,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues())return super.toString(e,n,r);throw new Error(\"Set items must all have null values\")}};Q._defineProperty(qe,\"tag\",\"tag:yaml.org,2002:set\");function oa(t,e){let n=O.resolveMap(t,e);if(!n.hasAllNullValues())throw new Q.YAMLSemanticError(e,\"Set items must all have null values\");return Object.assign(new qe,n)}function aa(t,e,n){let r=new qe;for(let s of e)r.items.push(t.createPair(s,null,n));return r}var ca={identify:t=>t instanceof Set,nodeClass:qe,default:!1,tag:\"tag:yaml.org,2002:set\",resolve:oa,createNode:aa},Kn=(t,e)=>{let n=e.split(\":\").reduce((r,s)=>r*60+Number(s),0);return t===\"-\"?-n:n},Gs=({value:t})=>{if(isNaN(t)||!isFinite(t))return O.stringifyNumber(t);let e=\"\";t<0&&(e=\"-\",t=Math.abs(t));let n=[t%60];return t<60?n.unshift(0):(t=Math.round((t-n[0])/60),n.unshift(t%60),t>=60&&(t=Math.round((t-n[0])/60),n.unshift(t))),e+n.map(r=>r<10?\"0\"+String(r):String(r)).join(\":\").replace(/000000\\d*$/,\"\")},la={identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:int\",format:\"TIME\",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:(t,e,n)=>Kn(e,n.replace(/_/g,\"\")),stringify:Gs},fa={identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"TIME\",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,resolve:(t,e,n)=>Kn(e,n.replace(/_/g,\"\")),stringify:Gs},ua={identify:t=>t instanceof Date,default:!0,tag:\"tag:yaml.org,2002:timestamp\",test:RegExp(\"^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\\\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$\"),resolve:(t,e,n,r,s,i,o,a,c)=>{a&&(a=(a+\"00\").substr(1,3));let l=Date.UTC(e,n-1,r,s||0,i||0,o||0,a||0);if(c&&c!==\"Z\"){let f=Kn(c[0],c.slice(1));Math.abs(f)<30&&(f*=60),l-=6e4*f}return new Date(l)},stringify:({value:t})=>t.toISOString().replace(/((T00:00)?:00)?\\.000Z$/,\"\")};function Vn(t){let e={};return t?typeof YAML_SILENCE_DEPRECATION_WARNINGS<\"u\"?!YAML_SILENCE_DEPRECATION_WARNINGS:!e.YAML_SILENCE_DEPRECATION_WARNINGS:typeof YAML_SILENCE_WARNINGS<\"u\"?!YAML_SILENCE_WARNINGS:!e.YAML_SILENCE_WARNINGS}function Wn(t,e){Vn(!1)&&console.warn(e?`${e}: ${t}`:t)}function pa(t){if(Vn(!0)){let e=t.replace(/.*yaml[/\\\\]/i,\"\").replace(/\\.js$/,\"\").replace(/\\\\/g,\"/\");Wn(`The endpoint 'yaml/${e}' will be removed in a future release.`,\"DeprecationWarning\")}}var js={};function ma(t,e){if(!js[t]&&Vn(!0)){js[t]=!0;let n=`The option '${t}' will be removed in a future release`;n+=e?`, use '${e}' instead.`:\".\",Wn(n,\"DeprecationWarning\")}}z.binary=ta;z.floatTime=fa;z.intTime=la;z.omap=ia;z.pairs=na;z.set=ca;z.timestamp=ua;z.warn=Wn;z.warnFileDeprecation=pa;z.warnOptionDeprecation=ma});var Hn=ee(ci=>{\"use strict\";var Gt=le(),E=$e(),D=jn();function ha(t,e,n){let r=new E.YAMLMap(t);if(e instanceof Map)for(let[s,i]of e)r.items.push(t.createPair(s,i,n));else if(e&&typeof e==\"object\")for(let s of Object.keys(e))r.items.push(t.createPair(s,e[s],n));return typeof t.sortMapEntries==\"function\"&&r.items.sort(t.sortMapEntries),r}var gt={createNode:ha,default:!0,nodeClass:E.YAMLMap,tag:\"tag:yaml.org,2002:map\",resolve:E.resolveMap};function ga(t,e,n){let r=new E.YAMLSeq(t);if(e&&e[Symbol.iterator])for(let s of e){let i=t.createNode(s,n.wrapScalars,null,n);r.items.push(i)}return r}var Ht={createNode:ga,default:!0,nodeClass:E.YAMLSeq,tag:\"tag:yaml.org,2002:seq\",resolve:E.resolveSeq},da={identify:t=>typeof t==\"string\",default:!0,tag:\"tag:yaml.org,2002:str\",resolve:E.resolveString,stringify(t,e,n,r){return e=Object.assign({actualString:!0},e),E.stringifyString(t,e,n,r)},options:E.strOptions},Jn=[gt,Ht,da],Xt=t=>typeof t==\"bigint\"||Number.isInteger(t),Gn=(t,e,n)=>E.intOptions.asBigInt?BigInt(t):parseInt(e,n);function zs(t,e,n){let{value:r}=t;return Xt(r)&&r>=0?n+r.toString(e):E.stringifyNumber(t)}var Zs={identify:t=>t==null,createNode:(t,e,n)=>n.wrapScalars?new E.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:E.nullOptions,stringify:()=>E.nullOptions.nullStr},ei={identify:t=>typeof t==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>t[0]===\"t\"||t[0]===\"T\",options:E.boolOptions,stringify:({value:t})=>t?E.boolOptions.trueStr:E.boolOptions.falseStr},ti={identify:t=>Xt(t)&&t>=0,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"OCT\",test:/^0o([0-7]+)$/,resolve:(t,e)=>Gn(t,e,8),options:E.intOptions,stringify:t=>zs(t,8,\"0o\")},ni={identify:Xt,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^[-+]?[0-9]+$/,resolve:t=>Gn(t,t,10),options:E.intOptions,stringify:E.stringifyNumber},ri={identify:t=>Xt(t)&&t>=0,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"HEX\",test:/^0x([0-9a-fA-F]+)$/,resolve:(t,e)=>Gn(t,e,16),options:E.intOptions,stringify:t=>zs(t,16,\"0x\")},si={identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^(?:[-+]?\\.inf|(\\.nan))$/i,resolve:(t,e)=>e?NaN:t[0]===\"-\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:E.stringifyNumber},ii={identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"EXP\",test:/^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify:({value:t})=>Number(t).toExponential()},oi={identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,resolve(t,e,n){let r=e||n,s=new E.Scalar(parseFloat(t));return r&&r[r.length-1]===\"0\"&&(s.minFractionDigits=r.length),s},stringify:E.stringifyNumber},ya=Jn.concat([Zs,ei,ti,ni,ri,si,ii,oi]),Hs=t=>typeof t==\"bigint\"||Number.isInteger(t),Qt=({value:t})=>JSON.stringify(t),ai=[gt,Ht,{identify:t=>typeof t==\"string\",default:!0,tag:\"tag:yaml.org,2002:str\",resolve:E.resolveString,stringify:Qt},{identify:t=>t==null,createNode:(t,e,n)=>n.wrapScalars?new E.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^null$/,resolve:()=>null,stringify:Qt},{identify:t=>typeof t==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^true|false$/,resolve:t=>t===\"true\",stringify:Qt},{identify:Hs,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:t=>E.intOptions.asBigInt?BigInt(t):parseInt(t,10),stringify:({value:t})=>Hs(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:Qt}];ai.scalarFallback=t=>{throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(t)}`)};var Xs=({value:t})=>t?E.boolOptions.trueStr:E.boolOptions.falseStr,ht=t=>typeof t==\"bigint\"||Number.isInteger(t);function Jt(t,e,n){let r=e.replace(/_/g,\"\");if(E.intOptions.asBigInt){switch(n){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let i=BigInt(r);return t===\"-\"?BigInt(-1)*i:i}let s=parseInt(r,n);return t===\"-\"?-1*s:s}function Qn(t,e,n){let{value:r}=t;if(ht(r)){let s=r.toString(e);return r<0?\"-\"+n+s.substr(1):n+s}return E.stringifyNumber(t)}var Ea=Jn.concat([{identify:t=>t==null,createNode:(t,e,n)=>n.wrapScalars?new E.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:E.nullOptions,stringify:()=>E.nullOptions.nullStr},{identify:t=>typeof t==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>!0,options:E.boolOptions,stringify:Xs},{identify:t=>typeof t==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>!1,options:E.boolOptions,stringify:Xs},{identify:ht,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"BIN\",test:/^([-+]?)0b([0-1_]+)$/,resolve:(t,e,n)=>Jt(e,n,2),stringify:t=>Qn(t,2,\"0b\")},{identify:ht,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"OCT\",test:/^([-+]?)0([0-7_]+)$/,resolve:(t,e,n)=>Jt(e,n,8),stringify:t=>Qn(t,8,\"0\")},{identify:ht,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:(t,e,n)=>Jt(e,n,10),stringify:E.stringifyNumber},{identify:ht,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"HEX\",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:(t,e,n)=>Jt(e,n,16),stringify:t=>Qn(t,16,\"0x\")},{identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^(?:[-+]?\\.inf|(\\.nan))$/i,resolve:(t,e)=>e?NaN:t[0]===\"-\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:E.stringifyNumber},{identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"EXP\",test:/^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,\"\")),stringify:({value:t})=>Number(t).toExponential()},{identify:t=>typeof t==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,resolve(t,e){let n=new E.Scalar(parseFloat(t.replace(/_/g,\"\")));if(e){let r=e.replace(/_/g,\"\");r[r.length-1]===\"0\"&&(n.minFractionDigits=r.length)}return n},stringify:E.stringifyNumber}],D.binary,D.omap,D.pairs,D.set,D.intTime,D.floatTime,D.timestamp),Sa={core:ya,failsafe:Jn,json:ai,yaml11:Ea},wa={binary:D.binary,bool:ei,float:oi,floatExp:ii,floatNaN:si,floatTime:D.floatTime,int:ni,intHex:ri,intOct:ti,intTime:D.intTime,map:gt,null:Zs,omap:D.omap,pairs:D.pairs,seq:Ht,set:D.set,timestamp:D.timestamp};function ba(t,e,n){if(e){let r=n.filter(i=>i.tag===e),s=r.find(i=>!i.format)||r[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return n.find(r=>(r.identify&&r.identify(t)||r.class&&t instanceof r.class)&&!r.format)}function Na(t,e,n){if(t instanceof E.Node)return t;let{defaultPrefix:r,onTagObj:s,prevObjects:i,schema:o,wrapScalars:a}=n;e&&e.startsWith(\"!!\")&&(e=r+e.slice(2));let c=ba(t,e,o.tags);if(!c){if(typeof t.toJSON==\"function\"&&(t=t.toJSON()),!t||typeof t!=\"object\")return a?new E.Scalar(t):t;c=t instanceof Map?gt:t[Symbol.iterator]?Ht:gt}s&&(s(c),delete n.onTagObj);let l={value:void 0,node:void 0};if(t&&typeof t==\"object\"&&i){let f=i.get(t);if(f){let m=new E.Alias(f);return n.aliasNodes.push(m),m}l.value=t,i.set(t,l)}return l.node=c.createNode?c.createNode(n.schema,t,n):a?new E.Scalar(t):t,e&&l.node instanceof E.Node&&(l.node.tag=e),l.node}function Oa(t,e,n,r){let s=t[r.replace(/\\W/g,\"\")];if(!s){let i=Object.keys(t).map(o=>JSON.stringify(o)).join(\", \");throw new Error(`Unknown schema \"${r}\"; use one of ${i}`)}if(Array.isArray(n))for(let i of n)s=s.concat(i);else typeof n==\"function\"&&(s=n(s.slice()));for(let i=0;iJSON.stringify(l)).join(\", \");throw new Error(`Unknown custom tag \"${o}\"; use one of ${c}`)}s[i]=a}}return s}var La=(t,e)=>t.keye.key?1:0,dt=class t{constructor({customTags:e,merge:n,schema:r,sortMapEntries:s,tags:i}){this.merge=!!n,this.name=r,this.sortMapEntries=s===!0?La:s||null,!e&&i&&D.warnOptionDeprecation(\"tags\",\"customTags\"),this.tags=Oa(Sa,wa,e||i,r)}createNode(e,n,r,s){let i={defaultPrefix:t.defaultPrefix,schema:this,wrapScalars:n},o=s?Object.assign(s,i):i;return Na(e,r,o)}createPair(e,n,r){r||(r={wrapScalars:!0});let s=this.createNode(e,r.wrapScalars,null,r),i=this.createNode(n,r.wrapScalars,null,r);return new E.Pair(s,i)}};Gt._defineProperty(dt,\"defaultPrefix\",Gt.defaultTagPrefix);Gt._defineProperty(dt,\"defaultTags\",Gt.defaultTags);ci.Schema=dt});var pi=ee(tn=>{\"use strict\";var Y=le(),S=$e(),li=Hn(),Aa={anchorPrefix:\"a\",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:\"1.2\"},Ta={get binary(){return S.binaryOptions},set binary(t){Object.assign(S.binaryOptions,t)},get bool(){return S.boolOptions},set bool(t){Object.assign(S.boolOptions,t)},get int(){return S.intOptions},set int(t){Object.assign(S.intOptions,t)},get null(){return S.nullOptions},set null(t){Object.assign(S.nullOptions,t)},get str(){return S.strOptions},set str(t){Object.assign(S.strOptions,t)}},ui={\"1.0\":{schema:\"yaml-1.1\",merge:!0,tagPrefixes:[{handle:\"!\",prefix:Y.defaultTagPrefix},{handle:\"!!\",prefix:\"tag:private.yaml.org,2002:\"}]},1.1:{schema:\"yaml-1.1\",merge:!0,tagPrefixes:[{handle:\"!\",prefix:\"!\"},{handle:\"!!\",prefix:Y.defaultTagPrefix}]},1.2:{schema:\"core\",merge:!1,tagPrefixes:[{handle:\"!\",prefix:\"!\"},{handle:\"!!\",prefix:Y.defaultTagPrefix}]}};function fi(t,e){if((t.version||t.options.version)===\"1.0\"){let s=e.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);if(s)return\"!\"+s[1];let i=e.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);return i?`!${i[1]}/${i[2]}`:`!${e.replace(/^tag:/,\"\")}`}let n=t.tagPrefixes.find(s=>e.indexOf(s.prefix)===0);if(!n){let s=t.getDefaults().tagPrefixes;n=s&&s.find(i=>e.indexOf(i.prefix)===0)}if(!n)return e[0]===\"!\"?e:`!<${e}>`;let r=e.substr(n.prefix.length).replace(/[!,[\\]{}]/g,s=>({\"!\":\"%21\",\",\":\"%2C\",\"[\":\"%5B\",\"]\":\"%5D\",\"{\":\"%7B\",\"}\":\"%7D\"})[s]);return n.handle+r}function Ca(t,e){if(e instanceof S.Alias)return S.Alias;if(e.tag){let s=t.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)||s[0]}let n,r;if(e instanceof S.Scalar){r=e.value;let s=t.filter(i=>i.identify&&i.identify(r)||i.class&&r instanceof i.class);n=s.find(i=>i.format===e.format)||s.find(i=>!i.format)}else r=e,n=t.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){let s=r&&r.constructor?r.constructor.name:typeof r;throw new Error(`Tag not resolved for ${s} value`)}return n}function Ma(t,e,{anchors:n,doc:r}){let s=[],i=r.anchors.getName(t);return i&&(n[i]=t,s.push(`&${i}`)),t.tag?s.push(fi(r,t.tag)):e.default||s.push(fi(r,e.tag)),s.join(\" \")}function zt(t,e,n,r){let{anchors:s,schema:i}=e.doc,o;if(!(t instanceof S.Node)){let l={aliasNodes:[],onTagObj:f=>o=f,prevObjects:new Map};t=i.createNode(t,!0,null,l);for(let f of l.aliasNodes){f.source=f.source.node;let m=s.getName(f.source);m||(m=s.newName(),s.map[m]=f.source)}}if(t instanceof S.Pair)return t.toString(e,n,r);o||(o=Ca(i.tags,t));let a=Ma(t,o,e);a.length>0&&(e.indentAtStart=(e.indentAtStart||0)+a.length+1);let c=typeof o.stringify==\"function\"?o.stringify(t,e,n,r):t instanceof S.Scalar?S.stringifyString(t,e,n,r):t.toString(e,n,r);return a?t instanceof S.Scalar||c[0]===\"{\"||c[0]===\"[\"?`${a} ${c}`:`${a}\n${e.indent}${c}`:c}var Xn=class t{static validAnchorNode(e){return e instanceof S.Scalar||e instanceof S.YAMLSeq||e instanceof S.YAMLMap}constructor(e){Y._defineProperty(this,\"map\",Object.create(null)),this.prefix=e}createAlias(e,n){return this.setAnchor(e,n),new S.Alias(e)}createMergePair(...e){let n=new S.Merge;return n.value.items=e.map(r=>{if(r instanceof S.Alias){if(r.source instanceof S.YAMLMap)return r}else if(r instanceof S.YAMLMap)return this.createAlias(r);throw new Error(\"Merge sources must be Map nodes or their Aliases\")}),n}getName(e){let{map:n}=this;return Object.keys(n).find(r=>n[r]===e)}getNames(){return Object.keys(this.map)}getNode(e){return this.map[e]}newName(e){e||(e=this.prefix);let n=Object.keys(this.map);for(let r=1;;++r){let s=`${e}${r}`;if(!n.includes(s))return s}}resolveNodes(){let{map:e,_cstAliases:n}=this;Object.keys(e).forEach(r=>{e[r]=e[r].resolved}),n.forEach(r=>{r.source=r.source.resolved}),delete this._cstAliases}setAnchor(e,n){if(e!=null&&!t.validAnchorNode(e))throw new Error(\"Anchors may only be set for Scalar, Seq and Map nodes\");if(n&&/[\\x00-\\x19\\s,[\\]{}]/.test(n))throw new Error(\"Anchor names must not contain whitespace or control characters\");let{map:r}=this,s=e&&Object.keys(r).find(i=>r[i]===e);if(s)if(n)s!==n&&(delete r[s],r[n]=e);else return s;else{if(!n){if(!e)return null;n=this.newName()}r[n]=e}return n}},Zt=(t,e)=>{if(t&&typeof t==\"object\"){let{tag:n}=t;t instanceof S.Collection?(n&&(e[n]=!0),t.items.forEach(r=>Zt(r,e))):t instanceof S.Pair?(Zt(t.key,e),Zt(t.value,e)):t instanceof S.Scalar&&n&&(e[n]=!0)}return e},ka=t=>Object.keys(Zt(t,{}));function va(t,e){let n={before:[],after:[]},r,s=!1;for(let i of e)if(i.valueRange){if(r!==void 0){let a=\"Document contains trailing content not separated by a ... or --- line\";t.errors.push(new Y.YAMLSyntaxError(i,a));break}let o=S.resolveNode(t,i);s&&(o.spaceBefore=!0,s=!1),r=o}else i.comment!==null?(r===void 0?n.before:n.after).push(i.comment):i.type===Y.Type.BLANK_LINE&&(s=!0,r===void 0&&n.before.length>0&&!t.commentBefore&&(t.commentBefore=n.before.join(`\n`),n.before=[]));if(t.contents=r||null,!r)t.comment=n.before.concat(n.after).join(`\n`)||null;else{let i=n.before.join(`\n`);if(i){let o=r instanceof S.Collection&&r.items[0]?r.items[0]:r;o.commentBefore=o.commentBefore?`${i}\n${o.commentBefore}`:i}t.comment=n.after.join(`\n`)||null}}function Ia({tagPrefixes:t},e){let[n,r]=e.parameters;if(!n||!r){let s=\"Insufficient parameters given for %TAG directive\";throw new Y.YAMLSemanticError(e,s)}if(t.some(s=>s.handle===n)){let s=\"The %TAG directive must only be given at most once per handle in the same document.\";throw new Y.YAMLSemanticError(e,s)}return{handle:n,prefix:r}}function Pa(t,e){let[n]=e.parameters;if(e.name===\"YAML:1.0\"&&(n=\"1.0\"),!n){let r=\"Insufficient parameters given for %YAML directive\";throw new Y.YAMLSemanticError(e,r)}if(!ui[n]){let s=`Document will be parsed as YAML ${t.version||t.options.version} rather than YAML ${n}`;t.warnings.push(new Y.YAMLWarning(e,s))}return n}function _a(t,e,n){let r=[],s=!1;for(let i of e){let{comment:o,name:a}=i;switch(a){case\"TAG\":try{t.tagPrefixes.push(Ia(t,i))}catch(c){t.errors.push(c)}s=!0;break;case\"YAML\":case\"YAML:1.0\":if(t.version){let c=\"The %YAML directive must only be given at most once per document.\";t.errors.push(new Y.YAMLSemanticError(i,c))}try{t.version=Pa(t,i)}catch(c){t.errors.push(c)}s=!0;break;default:if(a){let c=`YAML only supports %TAG and %YAML directives, and not %${a}`;t.warnings.push(new Y.YAMLWarning(i,c))}}o&&r.push(o)}if(n&&!s&&(t.version||n.version||t.options.version)===\"1.1\"){let i=({handle:o,prefix:a})=>({handle:o,prefix:a});t.tagPrefixes=n.tagPrefixes.map(i),t.version=n.version}t.commentBefore=r.join(`\n`)||null}function Ue(t){if(t instanceof S.Collection)return!0;throw new Error(\"Expected a YAML collection as document contents\")}var en=class t{constructor(e){this.anchors=new Xn(e.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=e,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}add(e){return Ue(this.contents),this.contents.add(e)}addIn(e,n){Ue(this.contents),this.contents.addIn(e,n)}delete(e){return Ue(this.contents),this.contents.delete(e)}deleteIn(e){return S.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):(Ue(this.contents),this.contents.deleteIn(e))}getDefaults(){return t.defaults[this.version]||t.defaults[this.options.version]||{}}get(e,n){return this.contents instanceof S.Collection?this.contents.get(e,n):void 0}getIn(e,n){return S.isEmptyPath(e)?!n&&this.contents instanceof S.Scalar?this.contents.value:this.contents:this.contents instanceof S.Collection?this.contents.getIn(e,n):void 0}has(e){return this.contents instanceof S.Collection?this.contents.has(e):!1}hasIn(e){return S.isEmptyPath(e)?this.contents!==void 0:this.contents instanceof S.Collection?this.contents.hasIn(e):!1}set(e,n){Ue(this.contents),this.contents.set(e,n)}setIn(e,n){S.isEmptyPath(e)?this.contents=n:(Ue(this.contents),this.contents.setIn(e,n))}setSchema(e,n){if(!e&&!n&&this.schema)return;typeof e==\"number\"&&(e=e.toFixed(1)),e===\"1.0\"||e===\"1.1\"||e===\"1.2\"?(this.version?this.version=e:this.options.version=e,delete this.options.schema):e&&typeof e==\"string\"&&(this.options.schema=e),Array.isArray(n)&&(this.options.customTags=n);let r=Object.assign({},this.getDefaults(),this.options);this.schema=new li.Schema(r)}parse(e,n){this.options.keepCstNodes&&(this.cstNode=e),this.options.keepNodeTypes&&(this.type=\"DOCUMENT\");let{directives:r=[],contents:s=[],directivesEndMarker:i,error:o,valueRange:a}=e;if(o&&(o.source||(o.source=this),this.errors.push(o)),_a(this,r,n),i&&(this.directivesEndMarker=!0),this.range=a?[a.start,a.end]:null,this.setSchema(),this.anchors._cstAliases=[],va(this,s),this.anchors.resolveNodes(),this.options.prettyErrors){for(let c of this.errors)c instanceof Y.YAMLError&&c.makePretty();for(let c of this.warnings)c instanceof Y.YAMLError&&c.makePretty()}return this}listNonDefaultTags(){return ka(this.contents).filter(e=>e.indexOf(li.Schema.defaultPrefix)!==0)}setTagPrefix(e,n){if(e[0]!==\"!\"||e[e.length-1]!==\"!\")throw new Error(\"Handle must start and end with !\");if(n){let r=this.tagPrefixes.find(s=>s.handle===e);r?r.prefix=n:this.tagPrefixes.push({handle:e,prefix:n})}else this.tagPrefixes=this.tagPrefixes.filter(r=>r.handle!==e)}toJSON(e,n){let{keepBlobsInJSON:r,mapAsMap:s,maxAliasCount:i}=this.options,o=r&&(typeof e!=\"string\"||!(this.contents instanceof S.Scalar)),a={doc:this,indentStep:\" \",keep:o,mapAsMap:o&&!!s,maxAliasCount:i,stringify:zt},c=Object.keys(this.anchors.map);c.length>0&&(a.anchors=new Map(c.map(f=>[this.anchors.map[f],{alias:[],aliasCount:0,count:1}])));let l=S.toJSON(this.contents,e,a);if(typeof n==\"function\"&&a.anchors)for(let{count:f,res:m}of a.anchors.values())n(m,f);return l}toString(){if(this.errors.length>0)throw new Error(\"Document with errors cannot be stringified\");let e=this.options.indent;if(!Number.isInteger(e)||e<=0){let c=JSON.stringify(e);throw new Error(`\"indent\" option must be a positive integer, not ${c}`)}this.setSchema();let n=[],r=!1;if(this.version){let c=\"%YAML 1.2\";this.schema.name===\"yaml-1.1\"&&(this.version===\"1.0\"?c=\"%YAML:1.0\":this.version===\"1.1\"&&(c=\"%YAML 1.1\")),n.push(c),r=!0}let s=this.listNonDefaultTags();this.tagPrefixes.forEach(({handle:c,prefix:l})=>{s.some(f=>f.indexOf(l)===0)&&(n.push(`%TAG ${c} ${l}`),r=!0)}),(r||this.directivesEndMarker)&&n.push(\"---\"),this.commentBefore&&((r||!this.directivesEndMarker)&&n.unshift(\"\"),n.unshift(this.commentBefore.replace(/^/gm,\"#\")));let i={anchors:Object.create(null),doc:this,indent:\"\",indentStep:\" \".repeat(e),stringify:zt},o=!1,a=null;if(this.contents){this.contents instanceof S.Node&&(this.contents.spaceBefore&&(r||this.directivesEndMarker)&&n.push(\"\"),this.contents.commentBefore&&n.push(this.contents.commentBefore.replace(/^/gm,\"#\")),i.forceBlockIndent=!!this.comment,a=this.contents.comment);let c=a?null:()=>o=!0,l=zt(this.contents,i,()=>a=null,c);n.push(S.addComment(l,\"\",a))}else this.contents!==void 0&&n.push(zt(this.contents,i));return this.comment&&((!o||a)&&n[n.length-1]!==\"\"&&n.push(\"\"),n.push(this.comment.replace(/^/gm,\"#\"))),n.join(`\n`)+`\n`}};Y._defineProperty(en,\"defaults\",ui);tn.Document=en;tn.defaultOptions=Aa;tn.scalarOptions=Ta});var gi=ee(hi=>{\"use strict\";var zn=xs(),Ne=pi(),xa=Hn(),Ra=le(),Da=jn();$e();function Ya(t,e=!0,n){n===void 0&&typeof e==\"string\"&&(n=e,e=!0);let r=Object.assign({},Ne.Document.defaults[Ne.defaultOptions.version],Ne.defaultOptions);return new xa.Schema(r).createNode(t,e,n)}var Ke=class extends Ne.Document{constructor(e){super(Object.assign({},Ne.defaultOptions,e))}};function Ba(t,e){let n=[],r;for(let s of zn.parse(t)){let i=new Ke(e);i.parse(s,r),n.push(i),r=i}return n}function mi(t,e){let n=zn.parse(t),r=new Ke(e).parse(n[0]);if(n.length>1){let s=\"Source contains multiple documents; please use YAML.parseAllDocuments()\";r.errors.unshift(new Ra.YAMLSemanticError(n[1],s))}return r}function $a(t,e){let n=mi(t,e);if(n.warnings.forEach(r=>Da.warn(r)),n.errors.length>0)throw n.errors[0];return n.toJSON()}function Fa(t,e){let n=new Ke(e);return n.contents=t,String(n)}var qa={createNode:Ya,defaultOptions:Ne.defaultOptions,Document:Ke,parse:$a,parseAllDocuments:Ba,parseCST:zn.parse,parseDocument:mi,scalarOptions:Ne.scalarOptions,stringify:Fa};hi.YAML=qa});var yi=ee((Rm,di)=>{di.exports=gi().YAML});var Ei=ee(J=>{\"use strict\";var Ve=$e(),We=le();J.findPair=Ve.findPair;J.parseMap=Ve.resolveMap;J.parseSeq=Ve.resolveSeq;J.stringifyNumber=Ve.stringifyNumber;J.stringifyString=Ve.stringifyString;J.toJSON=Ve.toJSON;J.Type=We.Type;J.YAMLError=We.YAMLError;J.YAMLReferenceError=We.YAMLReferenceError;J.YAMLSemanticError=We.YAMLSemanticError;J.YAMLSyntaxError=We.YAMLSyntaxError;J.YAMLWarning=We.YAMLWarning});var tr={};nr(tr,{languages:()=>Pr,options:()=>_r,parsers:()=>er,printers:()=>Ja});var Ii=(t,e,n,r)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(n,r):n.global?e.replace(n,r):e.split(n).join(r)},yt=Ii;var je=\"string\",Qe=\"array\",Je=\"cursor\",Ge=\"indent\",Oe=\"align\",He=\"trim\",Le=\"group\",Ae=\"fill\",Te=\"if-break\",Xe=\"indent-if-break\",Ce=\"line-suffix\",ze=\"line-suffix-boundary\",te=\"line\",Ze=\"label\",Me=\"break-parent\",Et=new Set([Je,Ge,Oe,He,Le,Ae,Te,Xe,Ce,ze,te,Ze,Me]);function Pi(t){if(typeof t==\"string\")return je;if(Array.isArray(t))return Qe;if(!t)return;let{type:e}=t;if(Et.has(e))return e}var et=Pi;var _i=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function xi(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(et(t))throw new Error(\"doc is valid.\");let n=Object.prototype.toString.call(t);if(n!==\"[object Object]\")return`Unexpected doc '${n}'.`;let r=_i([...Et].map(s=>`'${s}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${r}.`}var rn=class extends Error{name=\"InvalidDocError\";constructor(e){super(xi(e)),this.doc=e}},sn=rn;var sr=()=>{},he=sr,St=sr;function tt(t,e){return he(e),{type:Oe,contents:e,n:t}}function ke(t,e={}){return he(t),St(e.expandedStates,!0),{type:Le,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function on(t){return tt(Number.NEGATIVE_INFINITY,t)}function ir(t){return tt({type:\"root\"},t)}function or(t){return tt(-1,t)}function an(t,e){return ke(t[0],{...e,expandedStates:t})}function wt(t){return St(t),{type:Ae,parts:t}}function nt(t,e=\"\",n={}){return he(t),e!==\"\"&&he(e),{type:Te,breakContents:t,flatContents:e,groupId:n.groupId}}function ar(t){return he(t),{type:Ce,contents:t}}var bt={type:Me};var Ri={type:te,hard:!0},Di={type:te,hard:!0,literal:!0},ne={type:te},Nt={type:te,soft:!0},N=[Ri,bt],rt=[Di,bt];function v(t,e){he(t),St(e);let n=[];for(let r=0;r{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[n<0?e.length+n:n]:e.at(n)},x=Yi;function Bi(t,e){if(typeof t==\"string\")return e(t);let n=new Map;return r(t);function r(i){if(n.has(i))return n.get(i);let o=s(i);return n.set(i,o),o}function s(i){switch(et(i)){case Qe:return e(i.map(r));case Ae:return e({...i,parts:i.parts.map(r)});case Te:return e({...i,breakContents:r(i.breakContents),flatContents:r(i.flatContents)});case Le:{let{expandedStates:o,contents:a}=i;return o?(o=o.map(r),a=o[0]):a=r(a),e({...i,contents:a,expandedStates:o})}case Oe:case Ge:case Xe:case Ze:case Ce:return e({...i,contents:r(i.contents)});case je:case Je:case He:case ze:case te:case Me:return e(i);default:throw new sn(i)}}}function cr(t,e=rt){return Bi(t,n=>typeof n==\"string\"?v(e,n.split(`\n`)):n)}function Ot(t){return(e,n,r)=>{let s=!!(r!=null&&r.backwards);if(n===!1)return!1;let{length:i}=e,o=n;for(;o>=0&&o{let s=await r(e.originalText,{parser:\"json\"});return s?[s,N]:void 0}}ur.getVisitorKeys=()=>[];var pr=ur;var st=null;function it(t){if(st!==null&&typeof st.property){let e=st;return st=it.prototype=null,e}return st=it.prototype=t??Object.create(null),new it}var qi=10;for(let t=0;t<=qi;t++)it();function un(t){return it(t)}function Ui(t,e=\"type\"){un(t);function n(r){let s=r[e],i=t[s];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:r});return i}return n}var mr=Ui;var Ki=Object.fromEntries(Object.entries({root:[\"children\"],document:[\"head\",\"body\",\"children\"],documentHead:[\"children\"],documentBody:[\"children\"],directive:[],alias:[],blockLiteral:[],blockFolded:[\"children\"],plain:[\"children\"],quoteSingle:[],quoteDouble:[],mapping:[\"children\"],mappingItem:[\"key\",\"value\",\"children\"],mappingKey:[\"content\",\"children\"],mappingValue:[\"content\",\"children\"],sequence:[\"children\"],sequenceItem:[\"content\",\"children\"],flowMapping:[\"children\"],flowMappingItem:[\"key\",\"value\",\"children\"],flowSequence:[\"children\"],flowSequenceItem:[\"content\",\"children\"],comment:[],tag:[],anchor:[]}).map(([t,e])=>[t,[...e,\"anchor\",\"tag\",\"indicatorComment\",\"leadingComments\",\"middleComments\",\"trailingComment\",\"endComments\"]])),hr=Ki;var Vi=mr(hr),gr=Vi;function ve(t){return t.position.start.offset}function dr(t){return t.position.end.offset}function yr(t){return/^\\s*@(?:prettier|format)\\s*$/u.test(t)}function Er(t){return/^\\s*#[^\\S\\n]*@(?:prettier|format)\\s*?(?:\\n|$)/u.test(t)}function Sr(t){return`# @format\n\n${t}`}function Wi(t){return Array.isArray(t)&&t.length>0}var Ie=Wi;function H(t,e){return typeof(t==null?void 0:t.type)==\"string\"&&(!e||e.includes(t.type))}function pn(t,e,n){return e(\"children\"in t?{...t,children:t.children.map(r=>pn(r,e,t))}:t,n)}function Pe(t,e,n){Object.defineProperty(t,e,{get:n,enumerable:!1})}function br(t,e){let n=0,r=e.length;for(let s=t.position.end.offset-1;si===0&&i===o.length-1?s:i!==0&&i!==o.length-1?s.trim():i===0?s.trimEnd():s.trimStart());return n.proseWrap===\"preserve\"?r.map(s=>s.length===0?[]:[s]):r.map(s=>s.length===0?[]:Or(s)).reduce((s,i,o)=>o!==0&&r[o-1].length>0&&i.length>0&&!(t===\"quoteDouble\"&&x(!1,x(!1,s,-1),-1).endsWith(\"\\\\\"))?[...s.slice(0,-1),[...x(!1,s,-1),...i]]:[...s,i],[]).map(s=>n.proseWrap===\"never\"?[s.join(\" \")]:s)}function Ar(t,{parentIndent:e,isLastDescendant:n,options:r}){let s=t.position.start.line===t.position.end.line?\"\":r.originalText.slice(t.position.start.offset,t.position.end.offset).match(/^[^\\n]*\\n(.*)$/su)[1],i;if(t.indent===null){let c=s.match(/^(? *)[^\\n\\r ]/mu);i=c?c.groups.leadingSpace.length:Number.POSITIVE_INFINITY}else i=t.indent-1+e;let o=s.split(`\n`).map(c=>c.slice(i));if(r.proseWrap===\"preserve\"||t.type===\"blockLiteral\")return a(o.map(c=>c.length===0?[]:[c]));return a(o.map(c=>c.length===0?[]:Or(c)).reduce((c,l,f)=>f!==0&&o[f-1].length>0&&l.length>0&&!/^\\s/u.test(l[0])&&!/^\\s|\\s$/u.test(x(!1,c,-1))?[...c.slice(0,-1),[...x(!1,c,-1),...l]]:[...c,l],[]).map(c=>c.reduce((l,f)=>l.length>0&&/\\s$/u.test(x(!1,l,-1))?[...l.slice(0,-1),x(!1,l,-1)+\" \"+f]:[...l,f],[])).map(c=>r.proseWrap===\"never\"?[c.join(\" \")]:c));function a(c){if(t.chomping===\"keep\")return x(!1,c,-1).length===0?c.slice(0,-1):c;let l=0;for(let f=c.length-1;f>=0&&c[f].length===0;f--)l++;return l===0?c:l>=2&&!n?c.slice(0,-(l-1)):c.slice(0,-l)}}function ot(t){if(!t)return!0;switch(t.type){case\"plain\":case\"quoteDouble\":case\"quoteSingle\":case\"alias\":case\"flowMapping\":case\"flowSequence\":return!0;default:return!1}}var hn=new WeakMap;function Tt(t,e){let{node:n,root:r}=t,s;return hn.has(r)?s=hn.get(r):(s=new Set,hn.set(r,s)),!s.has(n.position.end.line)&&(s.add(n.position.end.line),br(n,e)&&!gn(t.parent))?Nt:\"\"}function gn(t){return R(t)&&!H(t,[\"documentHead\",\"documentBody\",\"flowMapping\",\"flowSequence\"])}function I(t,e){return tt(\" \".repeat(t),e)}function Qi(t,e,n){let{node:r}=t,s=t.ancestors.filter(l=>l.type===\"sequence\"||l.type===\"mapping\").length,i=Lt(t),o=[r.type===\"blockFolded\"?\">\":\"|\"];r.indent!==null&&o.push(r.indent.toString()),r.chomping!==\"clip\"&&o.push(r.chomping===\"keep\"?\"+\":\"-\"),mn(r)&&o.push(\" \",e(\"indicatorComment\"));let a=Ar(r,{parentIndent:s,isLastDescendant:i,options:n}),c=[];for(let[l,f]of a.entries())l===0&&c.push(N),c.push(wt(v(ne,f))),l!==a.length-1?c.push(f.length===0?N:ir(rt)):r.chomping===\"keep\"&&i&&c.push(on(f.length===0?N:rt));return r.indent===null?o.push(or(I(n.tabWidth,c))):o.push(on(I(r.indent-1+s,c))),o}var Tr=Qi;function Ct(t,e,n){let{node:r}=t,s=r.type===\"flowMapping\",i=s?\"{\":\"[\",o=s?\"}\":\"]\",a=Nt;s&&r.children.length>0&&n.bracketSpacing&&(a=ne);let c=x(!1,r.children,-1),l=(c==null?void 0:c.type)===\"flowMappingItem\"&&_e(c.key)&&_e(c.value);return[i,I(n.tabWidth,[a,Ji(t,e,n),n.trailingComma===\"none\"?\"\":nt(\",\"),R(r)?[N,v(N,t.map(e,\"endComments\"))]:\"\"]),l?\"\":a,o]}function Ji(t,e,n){return t.map(({isLast:r,node:s,next:i})=>[e(),r?\"\":[\",\",ne,s.position.start.line!==i.position.start.line?Tt(t,n.originalText):\"\"]],\"children\")}function Gi(t,e,n){var C;let{node:r,parent:s}=t,{key:i,value:o}=r,a=_e(i),c=_e(o);if(a&&c)return\": \";let l=e(\"key\"),f=Hi(r)?\" \":\"\";if(c)return r.type===\"flowMappingItem\"&&s.type===\"flowMapping\"?l:r.type===\"mappingItem\"&&dn(i.content,n)&&!K(i.content)&&((C=s.tag)==null?void 0:C.value)!==\"tag:yaml.org,2002:set\"?[l,f,\":\"]:[\"? \",I(2,l)];let m=e(\"value\");if(a)return[\": \",I(2,m)];if(Z(o)||!ot(i.content))return[\"? \",I(2,l),N,...t.map(()=>[e(),N],\"value\",\"leadingComments\"),\": \",I(2,m)];if(Xi(i.content)&&!Z(i.content)&&!ie(i.content)&&!K(i.content)&&!R(i)&&!Z(o.content)&&!ie(o.content)&&!R(o)&&dn(o.content,n))return[l,f,\": \",m];let d=Symbol(\"mappingKey\"),y=ke([nt(\"? \"),ke(I(2,l),{id:d})]),h=[N,\": \",I(2,m)],g=[f,\":\"];Z(o.content)||R(o)&&o.content&&!H(o.content,[\"mapping\",\"sequence\"])||s.type===\"mapping\"&&K(i.content)&&ot(o.content)||H(o.content,[\"mapping\",\"sequence\"])&&o.content.tag===null&&o.content.anchor===null?g.push(N):o.content?g.push(ne):K(o)&&g.push(\" \"),g.push(m);let w=I(n.tabWidth,g);return dn(i.content,n)&&!Z(i.content)&&!ie(i.content)&&!R(i)?an([[l,w]]):an([[y,nt(h,w,{groupId:d})]])}function dn(t,e){if(!t)return!0;switch(t.type){case\"plain\":case\"quoteSingle\":case\"quoteDouble\":break;case\"alias\":return!0;default:return!1}if(e.proseWrap===\"preserve\")return t.position.start.line===t.position.end.line;if(/\\\\$/mu.test(e.originalText.slice(t.position.start.offset,t.position.end.offset)))return!1;switch(e.proseWrap){case\"never\":return!t.value.includes(`\n`);case\"always\":return!/[\\n ]/u.test(t.value);default:return!1}}function Hi(t){var e;return((e=t.key.content)==null?void 0:e.type)===\"alias\"}function Xi(t){if(!t)return!0;switch(t.type){case\"plain\":case\"quoteDouble\":case\"quoteSingle\":return t.position.start.line===t.position.end.line;case\"alias\":return!0;default:return!1}}var Cr=Gi;function zi(t){return pn(t,Zi)}function Zi(t){switch(t.type){case\"document\":Pe(t,\"head\",()=>t.children[0]),Pe(t,\"body\",()=>t.children[1]);break;case\"documentBody\":case\"sequenceItem\":case\"flowSequenceItem\":case\"mappingKey\":case\"mappingValue\":Pe(t,\"content\",()=>t.children[0]);break;case\"mappingItem\":case\"flowMappingItem\":Pe(t,\"key\",()=>t.children[0]),Pe(t,\"value\",()=>t.children[1]);break}return t}var Mr=zi;function eo(t,e,n){let{node:r}=t,s=[];r.type!==\"mappingValue\"&&Z(r)&&s.push([v(N,t.map(n,\"leadingComments\")),N]);let{tag:i,anchor:o}=r;i&&s.push(n(\"tag\")),i&&o&&s.push(\" \"),o&&s.push(n(\"anchor\"));let a=\"\";return H(r,[\"mapping\",\"sequence\",\"comment\",\"directive\",\"mappingItem\",\"sequenceItem\"])&&!Lt(t)&&(a=Tt(t,e.originalText)),(i||o)&&(H(r,[\"sequence\",\"mapping\"])&&!ie(r)?s.push(N):s.push(\" \")),ie(r)&&s.push([r.middleComments.length===1?\"\":N,v(N,t.map(n,\"middleComments\")),N]),Nr(t)?s.push(cr(e.originalText.slice(r.position.start.offset,r.position.end.offset).trimEnd())):s.push(ke(to(t,e,n))),K(r)&&!H(r,[\"document\",\"documentHead\"])&&s.push(ar([r.type===\"mappingValue\"&&!r.content?\"\":\" \",t.parent.type===\"mappingKey\"&&t.getParentNode(2).type===\"mapping\"&&ot(r)?\"\":bt,n(\"trailingComment\")])),gn(r)&&s.push(I(r.type===\"sequenceItem\"?2:0,[N,v(N,t.map(({node:c})=>[lr(e.originalText,ve(c))?N:\"\",n()],\"endComments\"))])),s.push(a),s}function to(t,e,n){let{node:r}=t;switch(r.type){case\"root\":{let s=[];t.each(({node:o,next:a,isFirst:c})=>{c||s.push(N),s.push(n()),kr(o,a)?(s.push(N,\"...\"),K(o)&&s.push(\" \",n(\"trailingComment\"))):a&&!K(a.head)&&s.push(N,\"---\")},\"children\");let i=At(r);return(!H(i,[\"blockLiteral\",\"blockFolded\"])||i.chomping!==\"keep\")&&s.push(N),s}case\"document\":{let s=[];return ro(t,e)===\"head\"&&((r.head.children.length>0||r.head.endComments.length>0)&&s.push(n(\"head\")),K(r.head)?s.push([\"---\",\" \",n([\"head\",\"trailingComment\"])]):s.push(\"---\")),no(r)&&s.push(n(\"body\")),v(N,s)}case\"documentHead\":return v(N,[...t.map(n,\"children\"),...t.map(n,\"endComments\")]);case\"documentBody\":{let{children:s,endComments:i}=r,o=\"\";if(s.length>0&&i.length>0){let a=At(r);H(a,[\"blockFolded\",\"blockLiteral\"])?a.chomping!==\"keep\"&&(o=[N,N]):o=N}return[v(N,t.map(n,\"children\")),o,v(N,t.map(n,\"endComments\"))]}case\"directive\":return[\"%\",v(\" \",[r.name,...r.parameters])];case\"comment\":return[\"#\",r.value];case\"alias\":return[\"*\",r.value];case\"tag\":return e.originalText.slice(r.position.start.offset,r.position.end.offset);case\"anchor\":return[\"&\",r.value];case\"plain\":return at(r.type,e.originalText.slice(r.position.start.offset,r.position.end.offset),e);case\"quoteDouble\":case\"quoteSingle\":{let s=\"'\",i='\"',o=e.originalText.slice(r.position.start.offset+1,r.position.end.offset-1);if(r.type===\"quoteSingle\"&&o.includes(\"\\\\\")||r.type===\"quoteDouble\"&&/\\\\[^\"]/u.test(o)){let c=r.type===\"quoteDouble\"?i:s;return[c,at(r.type,o,e),c]}if(o.includes(i))return[s,at(r.type,r.type===\"quoteDouble\"?yt(!1,yt(!1,o,String.raw`\\\"`,i),\"'\",s.repeat(2)):o,e),s];if(o.includes(s))return[i,at(r.type,r.type===\"quoteSingle\"?yt(!1,o,\"''\",s):o,e),i];let a=e.singleQuote?s:i;return[a,at(r.type,o,e),a]}case\"blockFolded\":case\"blockLiteral\":return Tr(t,n,e);case\"mapping\":case\"sequence\":return v(N,t.map(n,\"children\"));case\"sequenceItem\":return[\"- \",I(2,r.content?n(\"content\"):\"\")];case\"mappingKey\":case\"mappingValue\":return r.content?n(\"content\"):\"\";case\"mappingItem\":case\"flowMappingItem\":return Cr(t,n,e);case\"flowMapping\":return Ct(t,n,e);case\"flowSequence\":return Ct(t,n,e);case\"flowSequenceItem\":return n(\"content\");default:throw new fr(r,\"YAML\")}}function no(t){return t.body.children.length>0||R(t.body)}function kr(t,e){return K(t)||e&&(e.head.children.length>0||R(e.head))}function ro(t,e){let n=t.node;if(t.isFirst&&/---(?:\\s|$)/u.test(e.originalText.slice(ve(n),ve(n)+4))||n.head.children.length>0||R(n.head)||K(n.head))return\"head\";let r=t.next;return kr(n,r)?!1:r?\"root\":!1}function at(t,e,n){let r=Lr(t,e,n);return v(N,r.map(s=>wt(v(ne,s))))}function vr(t,e){if(H(t))switch(t.type){case\"comment\":if(yr(t.value))return null;break;case\"quoteDouble\":case\"quoteSingle\":e.type=\"quote\";break}}vr.ignoredProperties=new Set([\"position\"]);var so={preprocess:Mr,embed:pr,print:eo,massageAstNode:vr,insertPragma:Sr,getVisitorKeys:gr},Ir=so;var Pr=[{linguistLanguageId:407,name:\"YAML\",type:\"data\",color:\"#cb171e\",tmScope:\"source.yaml\",aliases:[\"yml\"],extensions:[\".yml\",\".mir\",\".reek\",\".rviz\",\".sublime-syntax\",\".syntax\",\".yaml\",\".yaml-tmlanguage\",\".yaml.sed\",\".yml.mysql\"],filenames:[\".clang-format\",\".clang-tidy\",\".gemrc\",\"CITATION.cff\",\"glide.lock\",\".prettierrc\",\".stylelintrc\",\".lintstagedrc\"],aceMode:\"yaml\",codemirrorMode:\"yaml\",codemirrorMimeType:\"text/x-yaml\",parsers:[\"yaml\"],vscodeLanguageIds:[\"yaml\",\"ansible\",\"home-assistant\"]}];var Mt={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var io={bracketSpacing:Mt.bracketSpacing,singleQuote:Mt.singleQuote,proseWrap:Mt.proseWrap},_r=io;var er={};nr(er,{yaml:()=>Qa});var kt=`\n`,xr=\"\\r\",Rr=function(){function t(e){this.length=e.length;for(var n=[0],r=0;rthis.length)return null;for(var n=0,r=this.offsets;r[n+1]<=e;)n++;var s=e-r[n];return{line:n,column:s}},t.prototype.indexForLocation=function(e){var n=e.line,r=e.column;return n<0||n>=this.offsets.length||r<0||r>this.lengthOfLine(n)?null:this.offsets[n]+r},t.prototype.lengthOfLine=function(e){var n=this.offsets[e],r=e===this.offsets.length-1?this.length:this.offsets[e+1];return r-n},t}();function B(t,e=null){\"children\"in t&&t.children.forEach(n=>B(n,t)),\"anchor\"in t&&t.anchor&&B(t.anchor,t),\"tag\"in t&&t.tag&&B(t.tag,t),\"leadingComments\"in t&&t.leadingComments.forEach(n=>B(n,t)),\"middleComments\"in t&&t.middleComments.forEach(n=>B(n,t)),\"indicatorComment\"in t&&t.indicatorComment&&B(t.indicatorComment,t),\"trailingComment\"in t&&t.trailingComment&&B(t.trailingComment,t),\"endComments\"in t&&t.endComments.forEach(n=>B(n,t)),Object.defineProperty(t,\"_parent\",{value:e,enumerable:!1})}function ge(t){return`${t.line}:${t.column}`}function Dr(t){B(t);let e=oo(t),n=t.children.slice();t.comments.sort((r,s)=>r.position.start.offset-s.position.end.offset).filter(r=>!r._parent).forEach(r=>{for(;n.length>1&&r.position.start.line>n[0].position.end.line;)n.shift();ao(r,e,n[0])})}function oo(t){let e=Array.from(new Array(t.position.end.line),()=>({}));for(let n of t.comments)e[n.position.start.line-1].comment=n;return Yr(e,t),e}function Yr(t,e){if(e.position.start.offset!==e.position.end.offset){if(\"leadingComments\"in e){let{start:n}=e.position,{leadingAttachableNode:r}=t[n.line-1];(!r||n.column1&&e.type!==\"document\"&&e.type!==\"documentHead\"){let{end:n}=e.position,{trailingAttachableNode:r}=t[n.line-1];(!r||n.column>=r.position.end.column)&&(t[n.line-1].trailingAttachableNode=e)}if(e.type!==\"root\"&&e.type!==\"document\"&&e.type!==\"documentHead\"&&e.type!==\"documentBody\"){let{start:n,end:r}=e.position,s=[r.line].concat(n.line===r.line?[]:n.line);for(let i of s){let o=t[i-1].trailingNode;(!o||r.column>=o.position.end.column)&&(t[i-1].trailingNode=e)}}\"children\"in e&&e.children.forEach(n=>{Yr(t,n)})}}function ao(t,e,n){let r=t.position.start.line,{trailingAttachableNode:s}=e[r-1];if(s){if(s.trailingComment)throw new Error(`Unexpected multiple trailing comment at ${ge(t.position.start)}`);B(t,s),s.trailingComment=t;return}for(let o=r;o>=n.position.start.line;o--){let{trailingNode:a}=e[o-1],c;if(a)c=a;else if(o!==r&&e[o-1].comment)c=e[o-1].comment._parent;else continue;if((c.type===\"sequence\"||c.type===\"mapping\")&&(c=c.children[0]),c.type===\"mappingItem\"){let[l,f]=c.children;c=Br(l)?l:f}for(;;){if(co(c,t)){B(t,c),c.endComments.push(t);return}if(!c._parent)break;c=c._parent}break}for(let o=r+1;o<=n.position.end.line;o++){let{leadingAttachableNode:a}=e[o-1];if(a){B(t,a),a.leadingComments.push(t);return}}let i=n.children[1];B(t,i),i.endComments.push(t)}function co(t,e){if(t.position.start.offsete.position.end.offset)switch(t.type){case\"flowMapping\":case\"flowSequence\":return t.children.length===0||e.position.start.line>t.children[t.children.length-1].position.end.line}if(e.position.end.offsett.position.start.column;case\"mappingKey\":case\"mappingValue\":return e.position.start.column>t._parent.position.start.column&&(t.children.length===0||t.children.length===1&&t.children[0].type!==\"blockFolded\"&&t.children[0].type!==\"blockLiteral\")&&(t.type===\"mappingValue\"||Br(t));default:return!1}}function Br(t){return t.position.start!==t.position.end&&(t.children.length===0||t.position.start.offset!==t.children[0].position.start.offset)}function b(t,e){return{type:t,position:e}}function $r(t,e,n){return{...b(\"root\",t),children:e,comments:n}}function ct(t){switch(t.type){case\"DOCUMENT\":for(let e=t.contents.length-1;e>=0;e--)t.contents[e].type===\"BLANK_LINE\"?t.contents.splice(e,1):ct(t.contents[e]);for(let e=t.directives.length-1;e>=0;e--)t.directives[e].type===\"BLANK_LINE\"&&t.directives.splice(e,1);break;case\"FLOW_MAP\":case\"FLOW_SEQ\":case\"MAP\":case\"SEQ\":for(let e=t.items.length-1;e>=0;e--){let n=t.items[e];\"char\"in n||(n.type===\"BLANK_LINE\"?t.items.splice(e,1):ct(n))}break;case\"MAP_KEY\":case\"MAP_VALUE\":case\"SEQ_ITEM\":t.node&&ct(t.node);break;case\"ALIAS\":case\"BLANK_LINE\":case\"BLOCK_FOLDED\":case\"BLOCK_LITERAL\":case\"COMMENT\":case\"DIRECTIVE\":case\"PLAIN\":case\"QUOTE_DOUBLE\":case\"QUOTE_SINGLE\":break;default:throw new Error(`Unexpected node type ${JSON.stringify(t.type)}`)}}function X(){return{leadingComments:[]}}function oe(t=null){return{trailingComment:t}}function $(){return{...X(),...oe()}}function Fr(t,e,n){return{...b(\"alias\",t),...$(),...e,value:n}}function qr(t,e){let n=t.cstNode;return Fr(e.transformRange({origStart:n.valueRange.origStart-1,origEnd:n.valueRange.origEnd}),e.transformContent(t),n.rawValue)}function Ur(t){return{...t,type:\"blockFolded\"}}function Kr(t,e,n,r,s,i){return{...b(\"blockValue\",t),...X(),...e,chomping:n,indent:r,value:s,indicatorComment:i}}var ae;(function(t){t.Tag=\"!\",t.Anchor=\"&\",t.Comment=\"#\"})(ae||(ae={}));function Vr(t,e){return{...b(\"anchor\",t),value:e}}function xe(t,e){return{...b(\"comment\",t),value:e}}function Wr(t,e,n){return{anchor:e,tag:t,middleComments:n}}function jr(t,e){return{...b(\"tag\",t),value:e}}function vt(t,e,n=()=>!1){let r=t.cstNode,s=[],i=null,o=null,a=null;for(let c of r.props){let l=e.text[c.origStart];switch(l){case ae.Tag:i=i||c,o=jr(e.transformRange(c),t.tag);break;case ae.Anchor:i=i||c,a=Vr(e.transformRange(c),r.anchor);break;case ae.Comment:{let f=xe(e.transformRange(c),e.text.slice(c.origStart+1,c.origEnd));e.comments.push(f),!n(f)&&i&&i.origEnd<=c.origStart&&c.origEnd<=r.valueRange.origStart&&s.push(f);break}default:throw new Error(`Unexpected leading character ${JSON.stringify(l)}`)}}return Wr(o,a,s)}var yn;(function(t){t.CLIP=\"clip\",t.STRIP=\"strip\",t.KEEP=\"keep\"})(yn||(yn={}));function It(t,e){let n=t.cstNode,r=1,s=n.chomping===\"CLIP\"?0:1,o=n.header.origEnd-n.header.origStart-r-s!==0,a=e.transformRange({origStart:n.header.origStart,origEnd:n.valueRange.origEnd}),c=null,l=vt(t,e,f=>{if(!(a.start.offset=0;c--){let l=t.contents[c];if(l.type===\"COMMENT\"){let f=e.transformNode(l);n&&n.line===f.position.start.line?o.unshift(f):a?r.unshift(f):f.position.start.offset>=t.valueRange.origEnd?i.unshift(f):r.unshift(f)}else a=!0}if(i.length>1)throw new Error(`Unexpected multiple document trailing comments at ${ge(i[1].position.start)}`);if(o.length>1)throw new Error(`Unexpected multiple documentHead trailing comments at ${ge(o[1].position.start)}`);return{comments:r,endComments:s,documentTrailingComment:q(i)||null,documentHeadTrailingComment:q(o)||null}}function fo(t,e,n){let r=Pt(n.text.slice(t.valueRange.origEnd),/^\\.\\.\\./),s=r===-1?t.valueRange.origEnd:Math.max(0,t.valueRange.origEnd-1);n.text[s-1]===\"\\r\"&&s--;let i=n.transformRange({origStart:e!==null?e.position.start.offset:s,origEnd:s}),o=r===-1?i.end:n.transformOffset(t.valueRange.origEnd+3);return{position:i,documentEndPoint:o}}function ns(t,e,n,r){return{...b(\"documentHead\",t),...F(n),...oe(r),children:e}}function rs(t,e){let n=t.cstNode,{directives:r,comments:s,endComments:i}=uo(n,e),{position:o,endMarkerPoint:a}=po(n,r,e);return e.comments.push(...s,...i),{createDocumentHeadWithTrailingComment:l=>(l&&e.comments.push(l),ns(o,r,i,l)),documentHeadEndMarkerPoint:a}}function uo(t,e){let n=[],r=[],s=[],i=!1;for(let o=t.directives.length-1;o>=0;o--){let a=e.transformNode(t.directives[o]);a.type===\"comment\"?i?r.unshift(a):s.unshift(a):(i=!0,n.unshift(a))}return{directives:n,comments:r,endComments:s}}function po(t,e,n){let r=Pt(n.text.slice(0,t.valueRange.origStart),/---\\s*$/);r>0&&!/[\\r\\n]/.test(n.text[r-1])&&(r=-1);let s=r===-1?{origStart:t.valueRange.origStart,origEnd:t.valueRange.origStart}:{origStart:r,origEnd:r+3};return e.length!==0&&(s.origStart=e[0].position.start.offset),{position:n.transformRange(s),endMarkerPoint:r===-1?null:n.transformOffset(r)}}function ss(t,e){let{createDocumentHeadWithTrailingComment:n,documentHeadEndMarkerPoint:r}=rs(t,e),{documentBody:s,documentEndPoint:i,documentTrailingComment:o,documentHeadTrailingComment:a}=ts(t,e,r),c=n(a);return o&&e.comments.push(o),Zr(V(c.position.start,i),c,s,o)}function _t(t,e,n){return{...b(\"flowCollection\",t),...$(),...F(),...e,children:n}}function is(t,e,n){return{..._t(t,e,n),type:\"flowMapping\"}}function xt(t,e,n){return{...b(\"flowMappingItem\",t),...X(),children:[e,n]}}function ce(t,e){let n=[];for(let r of t)r&&\"type\"in r&&r.type===\"COMMENT\"?e.comments.push(e.transformNode(r)):n.push(r);return n}function Rt(t){let[e,n]=[\"?\",\":\"].map(r=>{let s=t.find(i=>\"char\"in i&&i.char===r);return s?{origStart:s.origOffset,origEnd:s.origOffset+1}:null});return{additionalKeyRange:e,additionalValueRange:n}}function Dt(t,e){let n=e;return r=>t.slice(n,n=r)}function Yt(t){let e=[],n=Dt(t,1),r=!1;for(let s=1;s{let l=r[c],{additionalKeyRange:f,additionalValueRange:m}=Rt(l);return De(a,e,xt,f,m)}),i=n[0],o=q(n);return is(e.transformRange({origStart:i.origOffset,origEnd:o.origOffset+1}),e.transformContent(t),s)}function as(t,e,n){return{..._t(t,e,n),type:\"flowSequence\"}}function cs(t,e){return{...b(\"flowSequenceItem\",t),children:[e]}}function ls(t,e){let n=ce(t.cstNode.items,e),r=Yt(n),s=t.items.map((a,c)=>{if(a.type!==\"PAIR\"){let l=e.transformNode(a);return cs(V(l.position.start,l.position.end),l)}else{let l=r[c],{additionalKeyRange:f,additionalValueRange:m}=Rt(l);return De(a,e,xt,f,m)}}),i=n[0],o=q(n);return as(e.transformRange({origStart:i.origOffset,origEnd:o.origOffset+1}),e.transformContent(t),s)}function fs(t,e,n){return{...b(\"mapping\",t),...X(),...e,children:n}}function us(t,e,n){return{...b(\"mappingItem\",t),...X(),children:[e,n]}}function ps(t,e){let n=t.cstNode;n.items.filter(o=>o.type===\"MAP_KEY\"||o.type===\"MAP_VALUE\").forEach(o=>Re(o,e));let r=ce(n.items,e),s=mo(r),i=t.items.map((o,a)=>{let c=s[a],[l,f]=c[0].type===\"MAP_VALUE\"?[null,c[0].range]:[c[0].range,c.length===1?null:c[1].range];return De(o,e,us,l,f)});return fs(V(i[0].position.start,q(i).position.end),e.transformContent(t),i)}function mo(t){let e=[],n=Dt(t,0),r=!1;for(let s=0;s=0;r--)if(n.test(t[r]))return r;return-1}function gs(t,e){let n=t.cstNode;return ms(e.transformRange({origStart:n.valueRange.origStart,origEnd:hs(e.text,n.valueRange.origEnd-1,/\\S/)+1}),e.transformContent(t),n.strValue)}function ds(t){return{...t,type:\"quoteDouble\"}}function ys(t,e,n){return{...b(\"quoteValue\",t),...e,...$(),value:n}}function Bt(t,e){let n=t.cstNode;return ys(e.transformRange(n.valueRange),e.transformContent(t),n.strValue)}function Es(t,e){return ds(Bt(t,e))}function Ss(t){return{...t,type:\"quoteSingle\"}}function ws(t,e){return Ss(Bt(t,e))}function bs(t,e,n){return{...b(\"sequence\",t),...X(),...F(),...e,children:n}}function Ns(t,e){return{...b(\"sequenceItem\",t),...$(),...F(),children:e?[e]:[]}}function Os(t,e){let r=ce(t.cstNode.items,e).map((s,i)=>{Re(s,e);let o=e.transformNode(t.items[i]);return Ns(V(e.transformOffset(s.valueRange.origStart),o===null?e.transformOffset(s.valueRange.origStart+1):o.position.end),o)});return bs(V(r[0].position.start,q(r).position.end),e.transformContent(t),r)}function Ls(t,e){if(t===null||t.type===void 0&&t.value===null)return null;switch(t.type){case\"ALIAS\":return qr(t,e);case\"BLOCK_FOLDED\":return Qr(t,e);case\"BLOCK_LITERAL\":return Gr(t,e);case\"COMMENT\":return Hr(t,e);case\"DIRECTIVE\":return zr(t,e);case\"DOCUMENT\":return ss(t,e);case\"FLOW_MAP\":return os(t,e);case\"FLOW_SEQ\":return ls(t,e);case\"MAP\":return ps(t,e);case\"PLAIN\":return gs(t,e);case\"QUOTE_DOUBLE\":return Es(t,e);case\"QUOTE_SINGLE\":return ws(t,e);case\"SEQ\":return Os(t,e);default:throw new Error(`Unexpected node type ${t.type}`)}}function As(t,e,n){let r=new SyntaxError(t);return r.name=\"YAMLSyntaxError\",r.source=e,r.position=n,r}function Ts(t,e){let n=t.source.range||t.source.valueRange;return As(t.message,e.text,e.transformRange(n))}function Cs(t,e,n){return{offset:t,line:e,column:n}}function Ms(t,e){t<0?t=0:t>e.text.length&&(t=e.text.length);let n=e.locator.locationForIndex(t);return Cs(t,n.line+1,n.column+1)}function ks(t,e){return V(e.transformOffset(t.origStart),e.transformOffset(t.origEnd))}function vs(t){if(!t.setOrigRanges()){let e=n=>{if(ho(n))return n.origStart=n.start,n.origEnd=n.end,!0;if(go(n))return n.origOffset=n.offset,!0};t.forEach(n=>bn(n,e))}}function bn(t,e){if(!(!t||typeof t!=\"object\")&&e(t)!==!0)for(let n of Object.keys(t)){if(n===\"context\"||n===\"error\")continue;let r=t[n];Array.isArray(r)?r.forEach(s=>bn(s,e)):bn(r,e)}}function ho(t){return typeof t.start==\"number\"}function go(t){return typeof t.offset==\"number\"}function Nn(t){if(\"children\"in t){if(t.children.length===1){let e=t.children[0];if(e.type===\"plain\"&&e.tag===null&&e.anchor===null&&e.value===\"\")return t.children.splice(0,1),t}t.children.forEach(Nn)}return t}function On(t,e,n,r){let s=e(t);return i=>{r(s,i)&&n(t,s=i)}}function Ln(t){if(t===null||!(\"children\"in t))return;let e=t.children;if(e.forEach(Ln),t.type===\"document\"){let[i,o]=t.children;i.position.start.offset===i.position.end.offset?i.position.start=i.position.end=o.position.start:o.position.start.offset===o.position.end.offset&&(o.position.start=o.position.end=i.position.end)}let n=On(t.position,yo,Eo,bo),r=On(t.position,So,wo,No);\"endComments\"in t&&t.endComments.length!==0&&(n(t.endComments[0].position.start),r(q(t.endComments).position.end));let s=e.filter(i=>i!==null);if(s.length!==0){let i=s[0],o=q(s);n(i.position.start),r(o.position.end),\"leadingComments\"in i&&i.leadingComments.length!==0&&n(i.leadingComments[0].position.start),\"tag\"in i&&i.tag&&n(i.tag.position.start),\"anchor\"in i&&i.anchor&&n(i.anchor.position.start),\"trailingComment\"in o&&o.trailingComment&&r(o.trailingComment.position.end)}}function yo(t){return t.start}function Eo(t,e){t.start=e}function So(t){return t.end}function wo(t,e){t.end=e}function bo(t,e){return e.offsett.offset}var Si=rr(yi(),1);var G=rr(Ei(),1),Ym=G.default.findPair,Bm=G.default.toJSON,$m=G.default.parseMap,Fm=G.default.parseSeq,qm=G.default.stringifyNumber,Um=G.default.stringifyString,Km=G.default.Type,Ua=G.default.YAMLError,Vm=G.default.YAMLReferenceError,Zn=G.default.YAMLSemanticError,Ka=G.default.YAMLSyntaxError,Wm=G.default.YAMLWarning;var{Document:wi,parseCST:bi}=Si.default;function Ni(t){let e=bi(t);vs(e);let n=e.map(a=>new wi({merge:!1,keepCstNodes:!0}).parse(a)),r=new Rr(t),s=[],i={text:t,locator:r,comments:s,transformOffset:a=>Ms(a,i),transformRange:a=>ks(a,i),transformNode:a=>Ls(a,i),transformContent:a=>vt(a,i)};for(let a of n)for(let c of a.errors)if(!(c instanceof Zn&&c.message==='Map keys must be unique; \"<<\" is repeated'))throw Ts(c,i);n.forEach(a=>ct(a.cstNode));let o=$r(i.transformRange({origStart:0,origEnd:i.text.length}),n.map(i.transformNode),s);return Dr(o),Ln(o),Nn(o),o}function Wa(t,e){let n=new SyntaxError(t+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(n,e)}var Oi=Wa;function ja(t){try{let e=Ni(t);return delete e.comments,e}catch(e){throw e!=null&&e.position?Oi(e.message,{loc:e.position,cause:e}):e}}var Qa={astFormat:\"yaml\",parse:ja,hasPragma:Er,locStart:ve,locEnd:dr};var Ja={yaml:Ir};var yh=tr;export{yh as default,Pr as languages,_r as options,er as parsers,Ja as printers};\n", "import { createRequire as __prettierCreateRequire } from \"module\";\nimport { fileURLToPath as __prettierFileUrlToPath } from \"url\";\nimport { dirname as __prettierDirname } from \"path\";\nconst require = __prettierCreateRequire(import.meta.url);\nconst __filename = __prettierFileUrlToPath(import.meta.url);\nconst __dirname = __prettierDirname(__filename);\n\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __publicField = (obj, key2, value) => __defNormalProp(obj, typeof key2 !== \"symbol\" ? key2 + \"\" : key2, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\n// node_modules/fast-glob/out/utils/array.js\nvar require_array = __commonJS({\n \"node_modules/fast-glob/out/utils/array.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.splitWhen = exports.flatten = void 0;\n function flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n }\n exports.flatten = flatten;\n function splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n } else {\n result[groupIndex].push(item);\n }\n }\n return result;\n }\n exports.splitWhen = splitWhen;\n }\n});\n\n// node_modules/fast-glob/out/utils/errno.js\nvar require_errno = __commonJS({\n \"node_modules/fast-glob/out/utils/errno.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isEnoentCodeError = void 0;\n function isEnoentCodeError(error) {\n return error.code === \"ENOENT\";\n }\n exports.isEnoentCodeError = isEnoentCodeError;\n }\n});\n\n// node_modules/fast-glob/out/utils/fs.js\nvar require_fs = __commonJS({\n \"node_modules/fast-glob/out/utils/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createDirentFromStats = void 0;\n var DirentFromStats = class {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n };\n function createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n }\n exports.createDirentFromStats = createDirentFromStats;\n }\n});\n\n// node_modules/fast-glob/out/utils/path.js\nvar require_path = __commonJS({\n \"node_modules/fast-glob/out/utils/path.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\n var os2 = __require(\"os\");\n var path13 = __require(\"path\");\n var IS_WINDOWS_PLATFORM = os2.platform() === \"win32\";\n var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;\n var POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\n var WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g;\n var DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n var WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@[\\]{}])/g;\n function unixify(filepath) {\n return filepath.replace(/\\\\/g, \"/\");\n }\n exports.unixify = unixify;\n function makeAbsolute(cwd, filepath) {\n return path13.resolve(cwd, filepath);\n }\n exports.makeAbsolute = makeAbsolute;\n function removeLeadingDotSegment(entry) {\n if (entry.charAt(0) === \".\") {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === \"/\" || secondCharactery === \"\\\\\") {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n }\n exports.removeLeadingDotSegment = removeLeadingDotSegment;\n exports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\n function escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, \"\\\\$2\");\n }\n exports.escapeWindowsPath = escapeWindowsPath;\n function escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, \"\\\\$2\");\n }\n exports.escapePosixPath = escapePosixPath;\n exports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\n function convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath).replace(DOS_DEVICE_PATH_RE, \"//$1\").replace(WINDOWS_BACKSLASHES_RE, \"/\");\n }\n exports.convertWindowsPathToPattern = convertWindowsPathToPattern;\n function convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n }\n exports.convertPosixPathToPattern = convertPosixPathToPattern;\n }\n});\n\n// node_modules/is-extglob/index.js\nvar require_is_extglob = __commonJS({\n \"node_modules/is-extglob/index.js\"(exports, module) {\n module.exports = function isExtglob(str2) {\n if (typeof str2 !== \"string\" || str2 === \"\") {\n return false;\n }\n var match;\n while (match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str2)) {\n if (match[2]) return true;\n str2 = str2.slice(match.index + match[0].length);\n }\n return false;\n };\n }\n});\n\n// node_modules/is-glob/index.js\nvar require_is_glob = __commonJS({\n \"node_modules/is-glob/index.js\"(exports, module) {\n var isExtglob = require_is_extglob();\n var chars = { \"{\": \"}\", \"(\": \")\", \"[\": \"]\" };\n var strictCheck = function(str2) {\n if (str2[0] === \"!\") {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str2.length) {\n if (str2[index] === \"*\") {\n return true;\n }\n if (str2[index + 1] === \"?\" && /[\\].+)]/.test(str2[index])) {\n return true;\n }\n if (closeSquareIndex !== -1 && str2[index] === \"[\" && str2[index + 1] !== \"]\") {\n if (closeSquareIndex < index) {\n closeSquareIndex = str2.indexOf(\"]\", index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str2.indexOf(\"\\\\\", index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n if (closeCurlyIndex !== -1 && str2[index] === \"{\" && str2[index + 1] !== \"}\") {\n closeCurlyIndex = str2.indexOf(\"}\", index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str2.indexOf(\"\\\\\", index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n if (closeParenIndex !== -1 && str2[index] === \"(\" && str2[index + 1] === \"?\" && /[:!=]/.test(str2[index + 2]) && str2[index + 3] !== \")\") {\n closeParenIndex = str2.indexOf(\")\", index);\n if (closeParenIndex > index) {\n backSlashIndex = str2.indexOf(\"\\\\\", index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n if (pipeIndex !== -1 && str2[index] === \"(\" && str2[index + 1] !== \"|\") {\n if (pipeIndex < index) {\n pipeIndex = str2.indexOf(\"|\", index);\n }\n if (pipeIndex !== -1 && str2[pipeIndex + 1] !== \")\") {\n closeParenIndex = str2.indexOf(\")\", pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str2.indexOf(\"\\\\\", pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n if (str2[index] === \"\\\\\") {\n var open = str2[index + 1];\n index += 2;\n var close = chars[open];\n if (close) {\n var n = str2.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n if (str2[index] === \"!\") {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n };\n var relaxedCheck = function(str2) {\n if (str2[0] === \"!\") {\n return true;\n }\n var index = 0;\n while (index < str2.length) {\n if (/[*?{}()[\\]]/.test(str2[index])) {\n return true;\n }\n if (str2[index] === \"\\\\\") {\n var open = str2[index + 1];\n index += 2;\n var close = chars[open];\n if (close) {\n var n = str2.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n if (str2[index] === \"!\") {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n };\n module.exports = function isGlob(str2, options8) {\n if (typeof str2 !== \"string\" || str2 === \"\") {\n return false;\n }\n if (isExtglob(str2)) {\n return true;\n }\n var check2 = strictCheck;\n if (options8 && options8.strict === false) {\n check2 = relaxedCheck;\n }\n return check2(str2);\n };\n }\n});\n\n// node_modules/glob-parent/index.js\nvar require_glob_parent = __commonJS({\n \"node_modules/glob-parent/index.js\"(exports, module) {\n \"use strict\";\n var isGlob = require_is_glob();\n var pathPosixDirname = __require(\"path\").posix.dirname;\n var isWin32 = __require(\"os\").platform() === \"win32\";\n var slash2 = \"/\";\n var backslash = /\\\\/g;\n var enclosure = /[\\{\\[].*[\\}\\]]$/;\n var globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\n var escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n module.exports = function globParent(str2, opts) {\n var options8 = Object.assign({ flipBackslashes: true }, opts);\n if (options8.flipBackslashes && isWin32 && str2.indexOf(slash2) < 0) {\n str2 = str2.replace(backslash, slash2);\n }\n if (enclosure.test(str2)) {\n str2 += slash2;\n }\n str2 += \"a\";\n do {\n str2 = pathPosixDirname(str2);\n } while (isGlob(str2) || globby.test(str2));\n return str2.replace(escaped, \"$1\");\n };\n }\n});\n\n// node_modules/braces/lib/utils.js\nvar require_utils = __commonJS({\n \"node_modules/braces/lib/utils.js\"(exports) {\n \"use strict\";\n exports.isInteger = (num) => {\n if (typeof num === \"number\") {\n return Number.isInteger(num);\n }\n if (typeof num === \"string\" && num.trim() !== \"\") {\n return Number.isInteger(Number(num));\n }\n return false;\n };\n exports.find = (node, type2) => node.nodes.find((node2) => node2.type === type2);\n exports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return (Number(max) - Number(min)) / Number(step) >= limit;\n };\n exports.escapeNode = (block, n = 0, type2) => {\n const node = block.nodes[n];\n if (!node) return;\n if (type2 && node.type === type2 || node.type === \"open\" || node.type === \"close\") {\n if (node.escaped !== true) {\n node.value = \"\\\\\" + node.value;\n node.escaped = true;\n }\n }\n };\n exports.encloseBrace = (node) => {\n if (node.type !== \"brace\") return false;\n if (node.commas >> 0 + node.ranges >> 0 === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n };\n exports.isInvalidBrace = (block) => {\n if (block.type !== \"brace\") return false;\n if (block.invalid === true || block.dollar) return true;\n if (block.commas >> 0 + block.ranges >> 0 === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n };\n exports.isOpenOrClose = (node) => {\n if (node.type === \"open\" || node.type === \"close\") {\n return true;\n }\n return node.open === true || node.close === true;\n };\n exports.reduce = (nodes) => nodes.reduce((acc, node) => {\n if (node.type === \"text\") acc.push(node.value);\n if (node.type === \"range\") node.type = \"text\";\n return acc;\n }, []);\n exports.flatten = (...args) => {\n const result = [];\n const flat = (arr) => {\n for (let i = 0; i < arr.length; i++) {\n const ele = arr[i];\n if (Array.isArray(ele)) {\n flat(ele);\n continue;\n }\n if (ele !== void 0) {\n result.push(ele);\n }\n }\n return result;\n };\n flat(args);\n return result;\n };\n }\n});\n\n// node_modules/braces/lib/stringify.js\nvar require_stringify = __commonJS({\n \"node_modules/braces/lib/stringify.js\"(exports, module) {\n \"use strict\";\n var utils = require_utils();\n module.exports = (ast, options8 = {}) => {\n const stringify2 = (node, parent = {}) => {\n const invalidBlock = options8.escapeInvalid && utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options8.escapeInvalid === true;\n let output = \"\";\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return \"\\\\\" + node.value;\n }\n return node.value;\n }\n if (node.value) {\n return node.value;\n }\n if (node.nodes) {\n for (const child of node.nodes) {\n output += stringify2(child);\n }\n }\n return output;\n };\n return stringify2(ast);\n };\n }\n});\n\n// node_modules/is-number/index.js\nvar require_is_number = __commonJS({\n \"node_modules/is-number/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(num) {\n if (typeof num === \"number\") {\n return num - num === 0;\n }\n if (typeof num === \"string\" && num.trim() !== \"\") {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n };\n }\n});\n\n// node_modules/to-regex-range/index.js\nvar require_to_regex_range = __commonJS({\n \"node_modules/to-regex-range/index.js\"(exports, module) {\n \"use strict\";\n var isNumber = require_is_number();\n var toRegexRange = (min, max, options8) => {\n if (isNumber(min) === false) {\n throw new TypeError(\"toRegexRange: expected the first argument to be a number\");\n }\n if (max === void 0 || min === max) {\n return String(min);\n }\n if (isNumber(max) === false) {\n throw new TypeError(\"toRegexRange: expected the second argument to be a number.\");\n }\n let opts = { relaxZeros: true, ...options8 };\n if (typeof opts.strictZeros === \"boolean\") {\n opts.relaxZeros = opts.strictZeros === false;\n }\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + \":\" + max + \"=\" + relax + shorthand + capture + wrap;\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n if (Math.abs(a - b) === 1) {\n let result = min + \"|\" + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && positives.length + negatives.length > 1) {\n state.result = `(?:${state.result})`;\n }\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n };\n function collatePatterns(neg, pos2, options8) {\n let onlyNegative = filterPatterns(neg, pos2, \"-\", false, options8) || [];\n let onlyPositive = filterPatterns(pos2, neg, \"\", false, options8) || [];\n let intersected = filterPatterns(neg, pos2, \"-?\", true, options8) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join(\"|\");\n }\n function splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n let stop = countNines(min, nines);\n let stops = /* @__PURE__ */ new Set([max]);\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n stop = countZeros(max + 1, zeros) - 1;\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n stops = [...stops];\n stops.sort(compare);\n return stops;\n }\n function rangeToPattern(start, stop, options8) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = \"\";\n let count = 0;\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n if (startDigit === stopDigit) {\n pattern += startDigit;\n } else if (startDigit !== \"0\" || stopDigit !== \"9\") {\n pattern += toCharacterClass(startDigit, stopDigit, options8);\n } else {\n count++;\n }\n }\n if (count) {\n pattern += options8.shorthand === true ? \"\\\\d\" : \"[0-9]\";\n }\n return { pattern, count: [count], digits };\n }\n function splitToPatterns(min, max, tok, options8) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n for (let i = 0; i < ranges.length; i++) {\n let max2 = ranges[i];\n let obj = rangeToPattern(String(start), String(max2), options8);\n let zeros = \"\";\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max2 + 1;\n continue;\n }\n if (tok.isPadded) {\n zeros = padZeros(max2, tok, options8);\n }\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max2 + 1;\n prev = obj;\n }\n return tokens;\n }\n function filterPatterns(arr, comparison, prefix, intersection, options8) {\n let result = [];\n for (let ele of arr) {\n let { string } = ele;\n if (!intersection && !contains(comparison, \"string\", string)) {\n result.push(prefix + string);\n }\n if (intersection && contains(comparison, \"string\", string)) {\n result.push(prefix + string);\n }\n }\n return result;\n }\n function zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n }\n function compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n }\n function contains(arr, key2, val) {\n return arr.some((ele) => ele[key2] === val);\n }\n function countNines(min, len) {\n return Number(String(min).slice(0, -len) + \"9\".repeat(len));\n }\n function countZeros(integer, zeros) {\n return integer - integer % Math.pow(10, zeros);\n }\n function toQuantifier(digits) {\n let [start = 0, stop = \"\"] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? \",\" + stop : \"\")}}`;\n }\n return \"\";\n }\n function toCharacterClass(a, b, options8) {\n return `[${a}${b - a === 1 ? \"\" : \"-\"}${b}]`;\n }\n function hasPadding(str2) {\n return /^-?(0+)\\d/.test(str2);\n }\n function padZeros(value, tok, options8) {\n if (!tok.isPadded) {\n return value;\n }\n let diff2 = Math.abs(tok.maxLen - String(value).length);\n let relax = options8.relaxZeros !== false;\n switch (diff2) {\n case 0:\n return \"\";\n case 1:\n return relax ? \"0?\" : \"0\";\n case 2:\n return relax ? \"0{0,2}\" : \"00\";\n default: {\n return relax ? `0{0,${diff2}}` : `0{${diff2}}`;\n }\n }\n }\n toRegexRange.cache = {};\n toRegexRange.clearCache = () => toRegexRange.cache = {};\n module.exports = toRegexRange;\n }\n});\n\n// node_modules/fill-range/index.js\nvar require_fill_range = __commonJS({\n \"node_modules/fill-range/index.js\"(exports, module) {\n \"use strict\";\n var util2 = __require(\"util\");\n var toRegexRange = require_to_regex_range();\n var isObject3 = (val) => val !== null && typeof val === \"object\" && !Array.isArray(val);\n var transform = (toNumber) => {\n return (value) => toNumber === true ? Number(value) : String(value);\n };\n var isValidValue = (value) => {\n return typeof value === \"number\" || typeof value === \"string\" && value !== \"\";\n };\n var isNumber = (num) => Number.isInteger(+num);\n var zeros = (input) => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === \"-\") value = value.slice(1);\n if (value === \"0\") return false;\n while (value[++index] === \"0\") ;\n return index > 0;\n };\n var stringify2 = (start, end, options8) => {\n if (typeof start === \"string\" || typeof end === \"string\") {\n return true;\n }\n return options8.stringify === true;\n };\n var pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === \"-\" ? \"-\" : \"\";\n if (dash) input = input.slice(1);\n input = dash + input.padStart(dash ? maxLength - 1 : maxLength, \"0\");\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n };\n var toMaxLen = (input, maxLength) => {\n let negative = input[0] === \"-\" ? \"-\" : \"\";\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = \"0\" + input;\n return negative ? \"-\" + input : input;\n };\n var toSequence = (parts, options8, maxLen) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n let prefix = options8.capture ? \"\" : \"?:\";\n let positives = \"\";\n let negatives = \"\";\n let result;\n if (parts.positives.length) {\n positives = parts.positives.map((v) => toMaxLen(String(v), maxLen)).join(\"|\");\n }\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.map((v) => toMaxLen(String(v), maxLen)).join(\"|\")})`;\n }\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n if (options8.wrap) {\n return `(${prefix}${result})`;\n }\n return result;\n };\n var toRange = (a, b, isNumbers, options8) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options8 });\n }\n let start = String.fromCharCode(a);\n if (a === b) return start;\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n };\n var toRegex = (start, end, options8) => {\n if (Array.isArray(start)) {\n let wrap = options8.wrap === true;\n let prefix = options8.capture ? \"\" : \"?:\";\n return wrap ? `(${prefix}${start.join(\"|\")})` : start.join(\"|\");\n }\n return toRegexRange(start, end, options8);\n };\n var rangeError = (...args) => {\n return new RangeError(\"Invalid range arguments: \" + util2.inspect(...args));\n };\n var invalidRange = (start, end, options8) => {\n if (options8.strictRanges === true) throw rangeError([start, end]);\n return [];\n };\n var invalidStep = (step, options8) => {\n if (options8.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n };\n var fillNumbers = (start, end, step = 1, options8 = {}) => {\n let a = Number(start);\n let b = Number(end);\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options8.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify2(start, end, options8) === false;\n let format3 = options8.transform || transform(toNumber);\n if (options8.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options8);\n }\n let parts = { negatives: [], positives: [] };\n let push2 = (num) => parts[num < 0 ? \"negatives\" : \"positives\"].push(Math.abs(num));\n let range = [];\n let index = 0;\n while (descending ? a >= b : a <= b) {\n if (options8.toRegex === true && step > 1) {\n push2(a);\n } else {\n range.push(pad(format3(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n if (options8.toRegex === true) {\n return step > 1 ? toSequence(parts, options8, maxLen) : toRegex(range, null, { wrap: false, ...options8 });\n }\n return range;\n };\n var fillLetters = (start, end, step = 1, options8 = {}) => {\n if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) {\n return invalidRange(start, end, options8);\n }\n let format3 = options8.transform || ((val) => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n if (options8.toRegex && step === 1) {\n return toRange(min, max, false, options8);\n }\n let range = [];\n let index = 0;\n while (descending ? a >= b : a <= b) {\n range.push(format3(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n if (options8.toRegex === true) {\n return toRegex(range, null, { wrap: false, options: options8 });\n }\n return range;\n };\n var fill = (start, end, step, options8 = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options8);\n }\n if (typeof step === \"function\") {\n return fill(start, end, 1, { transform: step });\n }\n if (isObject3(step)) {\n return fill(start, end, 0, step);\n }\n let opts = { ...options8 };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n if (!isNumber(step)) {\n if (step != null && !isObject3(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n };\n module.exports = fill;\n }\n});\n\n// node_modules/braces/lib/compile.js\nvar require_compile = __commonJS({\n \"node_modules/braces/lib/compile.js\"(exports, module) {\n \"use strict\";\n var fill = require_fill_range();\n var utils = require_utils();\n var compile = (ast, options8 = {}) => {\n const walk = (node, parent = {}) => {\n const invalidBlock = utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options8.escapeInvalid === true;\n const invalid = invalidBlock === true || invalidNode === true;\n const prefix = options8.escapeInvalid === true ? \"\\\\\" : \"\";\n let output = \"\";\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n if (node.isClose === true) {\n console.log(\"node.isClose\", prefix, node.value);\n return prefix + node.value;\n }\n if (node.type === \"open\") {\n return invalid ? prefix + node.value : \"(\";\n }\n if (node.type === \"close\") {\n return invalid ? prefix + node.value : \")\";\n }\n if (node.type === \"comma\") {\n return node.prev.type === \"comma\" ? \"\" : invalid ? node.value : \"|\";\n }\n if (node.value) {\n return node.value;\n }\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n const range = fill(...args, { ...options8, wrap: false, toRegex: true, strictZeros: true });\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n if (node.nodes) {\n for (const child of node.nodes) {\n output += walk(child, node);\n }\n }\n return output;\n };\n return walk(ast);\n };\n module.exports = compile;\n }\n});\n\n// node_modules/braces/lib/expand.js\nvar require_expand = __commonJS({\n \"node_modules/braces/lib/expand.js\"(exports, module) {\n \"use strict\";\n var fill = require_fill_range();\n var stringify2 = require_stringify();\n var utils = require_utils();\n var append = (queue = \"\", stash = \"\", enclose = false) => {\n const result = [];\n queue = [].concat(queue);\n stash = [].concat(stash);\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map((ele) => `{${ele}}`) : stash;\n }\n for (const item of queue) {\n if (Array.isArray(item)) {\n for (const value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === \"string\") ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);\n }\n }\n }\n return utils.flatten(result);\n };\n var expand = (ast, options8 = {}) => {\n const rangeLimit = options8.rangeLimit === void 0 ? 1e3 : options8.rangeLimit;\n const walk = (node, parent = {}) => {\n node.queue = [];\n let p = parent;\n let q = parent.queue;\n while (p.type !== \"brace\" && p.type !== \"root\" && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify2(node, options8)));\n return;\n }\n if (node.type === \"brace\" && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), [\"{}\"]));\n return;\n }\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n if (utils.exceedsLimit(...args, options8.step, rangeLimit)) {\n throw new RangeError(\"expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.\");\n }\n let range = fill(...args, options8);\n if (range.length === 0) {\n range = stringify2(node, options8);\n }\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n const enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n while (block.type !== \"brace\" && block.type !== \"root\" && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n for (let i = 0; i < node.nodes.length; i++) {\n const child = node.nodes[i];\n if (child.type === \"comma\" && node.type === \"brace\") {\n if (i === 1) queue.push(\"\");\n queue.push(\"\");\n continue;\n }\n if (child.type === \"close\") {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n if (child.value && child.type !== \"open\") {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n if (child.nodes) {\n walk(child, node);\n }\n }\n return queue;\n };\n return utils.flatten(walk(ast));\n };\n module.exports = expand;\n }\n});\n\n// node_modules/braces/lib/constants.js\nvar require_constants = __commonJS({\n \"node_modules/braces/lib/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n MAX_LENGTH: 1e4,\n // Digits\n CHAR_0: \"0\",\n /* 0 */\n CHAR_9: \"9\",\n /* 9 */\n // Alphabet chars.\n CHAR_UPPERCASE_A: \"A\",\n /* A */\n CHAR_LOWERCASE_A: \"a\",\n /* a */\n CHAR_UPPERCASE_Z: \"Z\",\n /* Z */\n CHAR_LOWERCASE_Z: \"z\",\n /* z */\n CHAR_LEFT_PARENTHESES: \"(\",\n /* ( */\n CHAR_RIGHT_PARENTHESES: \")\",\n /* ) */\n CHAR_ASTERISK: \"*\",\n /* * */\n // Non-alphabetic chars.\n CHAR_AMPERSAND: \"&\",\n /* & */\n CHAR_AT: \"@\",\n /* @ */\n CHAR_BACKSLASH: \"\\\\\",\n /* \\ */\n CHAR_BACKTICK: \"`\",\n /* ` */\n CHAR_CARRIAGE_RETURN: \"\\r\",\n /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: \"^\",\n /* ^ */\n CHAR_COLON: \":\",\n /* : */\n CHAR_COMMA: \",\",\n /* , */\n CHAR_DOLLAR: \"$\",\n /* . */\n CHAR_DOT: \".\",\n /* . */\n CHAR_DOUBLE_QUOTE: '\"',\n /* \" */\n CHAR_EQUAL: \"=\",\n /* = */\n CHAR_EXCLAMATION_MARK: \"!\",\n /* ! */\n CHAR_FORM_FEED: \"\\f\",\n /* \\f */\n CHAR_FORWARD_SLASH: \"/\",\n /* / */\n CHAR_HASH: \"#\",\n /* # */\n CHAR_HYPHEN_MINUS: \"-\",\n /* - */\n CHAR_LEFT_ANGLE_BRACKET: \"<\",\n /* < */\n CHAR_LEFT_CURLY_BRACE: \"{\",\n /* { */\n CHAR_LEFT_SQUARE_BRACKET: \"[\",\n /* [ */\n CHAR_LINE_FEED: \"\\n\",\n /* \\n */\n CHAR_NO_BREAK_SPACE: \"\\xA0\",\n /* \\u00A0 */\n CHAR_PERCENT: \"%\",\n /* % */\n CHAR_PLUS: \"+\",\n /* + */\n CHAR_QUESTION_MARK: \"?\",\n /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: \">\",\n /* > */\n CHAR_RIGHT_CURLY_BRACE: \"}\",\n /* } */\n CHAR_RIGHT_SQUARE_BRACKET: \"]\",\n /* ] */\n CHAR_SEMICOLON: \";\",\n /* ; */\n CHAR_SINGLE_QUOTE: \"'\",\n /* ' */\n CHAR_SPACE: \" \",\n /* */\n CHAR_TAB: \"\t\",\n /* \\t */\n CHAR_UNDERSCORE: \"_\",\n /* _ */\n CHAR_VERTICAL_LINE: \"|\",\n /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: \"\\uFEFF\"\n /* \\uFEFF */\n };\n }\n});\n\n// node_modules/braces/lib/parse.js\nvar require_parse = __commonJS({\n \"node_modules/braces/lib/parse.js\"(exports, module) {\n \"use strict\";\n var stringify2 = require_stringify();\n var {\n MAX_LENGTH,\n CHAR_BACKSLASH,\n /* \\ */\n CHAR_BACKTICK,\n /* ` */\n CHAR_COMMA,\n /* , */\n CHAR_DOT,\n /* . */\n CHAR_LEFT_PARENTHESES,\n /* ( */\n CHAR_RIGHT_PARENTHESES,\n /* ) */\n CHAR_LEFT_CURLY_BRACE,\n /* { */\n CHAR_RIGHT_CURLY_BRACE,\n /* } */\n CHAR_LEFT_SQUARE_BRACKET,\n /* [ */\n CHAR_RIGHT_SQUARE_BRACKET,\n /* ] */\n CHAR_DOUBLE_QUOTE,\n /* \" */\n CHAR_SINGLE_QUOTE,\n /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n } = require_constants();\n var parse7 = (input, options8 = {}) => {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n const opts = options8 || {};\n const max = typeof opts.maxLength === \"number\" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n const ast = { type: \"root\", input, nodes: [] };\n const stack2 = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n const length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n const advance = () => input[index++];\n const push2 = (node) => {\n if (node.type === \"text\" && prev.type === \"dot\") {\n prev.type = \"text\";\n }\n if (prev && prev.type === \"text\" && node.type === \"text\") {\n prev.value += node.value;\n return;\n }\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n push2({ type: \"bos\" });\n while (index < length) {\n block = stack2[stack2.length - 1];\n value = advance();\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n if (value === CHAR_BACKSLASH) {\n push2({ type: \"text\", value: (options8.keepEscaping ? value : \"\") + advance() });\n continue;\n }\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push2({ type: \"text\", value: \"\\\\\" + value });\n continue;\n }\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n let next;\n while (index < length && (next = advance())) {\n value += next;\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n if (brackets === 0) {\n break;\n }\n }\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push2({ type: \"paren\", nodes: [] });\n stack2.push(block);\n push2({ type: \"text\", value });\n continue;\n }\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== \"paren\") {\n push2({ type: \"text\", value });\n continue;\n }\n block = stack2.pop();\n push2({ type: \"text\", value });\n block = stack2[stack2.length - 1];\n continue;\n }\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n const open = value;\n let next;\n if (options8.keepQuotes !== true) {\n value = \"\";\n }\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n if (next === open) {\n if (options8.keepQuotes === true) value += next;\n break;\n }\n value += next;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n const dollar = prev.value && prev.value.slice(-1) === \"$\" || block.dollar === true;\n const brace = {\n type: \"brace\",\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n block = push2(brace);\n stack2.push(block);\n push2({ type: \"open\", value });\n continue;\n }\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== \"brace\") {\n push2({ type: \"text\", value });\n continue;\n }\n const type2 = \"close\";\n block = stack2.pop();\n block.close = true;\n push2({ type: type2, value });\n depth--;\n block = stack2[stack2.length - 1];\n continue;\n }\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n const open = block.nodes.shift();\n block.nodes = [open, { type: \"text\", value: stringify2(block) }];\n }\n push2({ type: \"comma\", value });\n block.commas++;\n continue;\n }\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n const siblings = block.nodes;\n if (depth === 0 || siblings.length === 0) {\n push2({ type: \"text\", value });\n continue;\n }\n if (prev.type === \"dot\") {\n block.range = [];\n prev.value += value;\n prev.type = \"range\";\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = \"text\";\n continue;\n }\n block.ranges++;\n block.args = [];\n continue;\n }\n if (prev.type === \"range\") {\n siblings.pop();\n const before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n push2({ type: \"dot\", value });\n continue;\n }\n push2({ type: \"text\", value });\n }\n do {\n block = stack2.pop();\n if (block.type !== \"root\") {\n block.nodes.forEach((node) => {\n if (!node.nodes) {\n if (node.type === \"open\") node.isOpen = true;\n if (node.type === \"close\") node.isClose = true;\n if (!node.nodes) node.type = \"text\";\n node.invalid = true;\n }\n });\n const parent = stack2[stack2.length - 1];\n const index2 = parent.nodes.indexOf(block);\n parent.nodes.splice(index2, 1, ...block.nodes);\n }\n } while (stack2.length > 0);\n push2({ type: \"eos\" });\n return ast;\n };\n module.exports = parse7;\n }\n});\n\n// node_modules/braces/index.js\nvar require_braces = __commonJS({\n \"node_modules/braces/index.js\"(exports, module) {\n \"use strict\";\n var stringify2 = require_stringify();\n var compile = require_compile();\n var expand = require_expand();\n var parse7 = require_parse();\n var braces = (input, options8 = {}) => {\n let output = [];\n if (Array.isArray(input)) {\n for (const pattern of input) {\n const result = braces.create(pattern, options8);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options8));\n }\n if (options8 && options8.expand === true && options8.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n };\n braces.parse = (input, options8 = {}) => parse7(input, options8);\n braces.stringify = (input, options8 = {}) => {\n if (typeof input === \"string\") {\n return stringify2(braces.parse(input, options8), options8);\n }\n return stringify2(input, options8);\n };\n braces.compile = (input, options8 = {}) => {\n if (typeof input === \"string\") {\n input = braces.parse(input, options8);\n }\n return compile(input, options8);\n };\n braces.expand = (input, options8 = {}) => {\n if (typeof input === \"string\") {\n input = braces.parse(input, options8);\n }\n let result = expand(input, options8);\n if (options8.noempty === true) {\n result = result.filter(Boolean);\n }\n if (options8.nodupes === true) {\n result = [...new Set(result)];\n }\n return result;\n };\n braces.create = (input, options8 = {}) => {\n if (input === \"\" || input.length < 3) {\n return [input];\n }\n return options8.expand !== true ? braces.compile(input, options8) : braces.expand(input, options8);\n };\n module.exports = braces;\n }\n});\n\n// node_modules/picomatch/lib/constants.js\nvar require_constants2 = __commonJS({\n \"node_modules/picomatch/lib/constants.js\"(exports, module) {\n \"use strict\";\n var path13 = __require(\"path\");\n var WIN_SLASH = \"\\\\\\\\/\";\n var WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n var DOT_LITERAL = \"\\\\.\";\n var PLUS_LITERAL = \"\\\\+\";\n var QMARK_LITERAL = \"\\\\?\";\n var SLASH_LITERAL = \"\\\\/\";\n var ONE_CHAR = \"(?=.)\";\n var QMARK = \"[^/]\";\n var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\n var START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\n var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\n var NO_DOT = `(?!${DOT_LITERAL})`;\n var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\n var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\n var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\n var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\n var STAR = `${QMARK}*?`;\n var POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n };\n var WINDOWS_CHARS = {\n ...POSIX_CHARS,\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n };\n var POSIX_REGEX_SOURCE = {\n alnum: \"a-zA-Z0-9\",\n alpha: \"a-zA-Z\",\n ascii: \"\\\\x00-\\\\x7F\",\n blank: \" \\\\t\",\n cntrl: \"\\\\x00-\\\\x1F\\\\x7F\",\n digit: \"0-9\",\n graph: \"\\\\x21-\\\\x7E\",\n lower: \"a-z\",\n print: \"\\\\x20-\\\\x7E \",\n punct: \"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",\n space: \" \\\\t\\\\r\\\\n\\\\v\\\\f\",\n upper: \"A-Z\",\n word: \"A-Za-z0-9_\",\n xdigit: \"A-Fa-f0-9\"\n };\n module.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n \"***\": \"*\",\n \"**/**\": \"**\",\n \"**/**/**\": \"**\"\n },\n // Digits\n CHAR_0: 48,\n /* 0 */\n CHAR_9: 57,\n /* 9 */\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65,\n /* A */\n CHAR_LOWERCASE_A: 97,\n /* a */\n CHAR_UPPERCASE_Z: 90,\n /* Z */\n CHAR_LOWERCASE_Z: 122,\n /* z */\n CHAR_LEFT_PARENTHESES: 40,\n /* ( */\n CHAR_RIGHT_PARENTHESES: 41,\n /* ) */\n CHAR_ASTERISK: 42,\n /* * */\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38,\n /* & */\n CHAR_AT: 64,\n /* @ */\n CHAR_BACKWARD_SLASH: 92,\n /* \\ */\n CHAR_CARRIAGE_RETURN: 13,\n /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94,\n /* ^ */\n CHAR_COLON: 58,\n /* : */\n CHAR_COMMA: 44,\n /* , */\n CHAR_DOT: 46,\n /* . */\n CHAR_DOUBLE_QUOTE: 34,\n /* \" */\n CHAR_EQUAL: 61,\n /* = */\n CHAR_EXCLAMATION_MARK: 33,\n /* ! */\n CHAR_FORM_FEED: 12,\n /* \\f */\n CHAR_FORWARD_SLASH: 47,\n /* / */\n CHAR_GRAVE_ACCENT: 96,\n /* ` */\n CHAR_HASH: 35,\n /* # */\n CHAR_HYPHEN_MINUS: 45,\n /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60,\n /* < */\n CHAR_LEFT_CURLY_BRACE: 123,\n /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91,\n /* [ */\n CHAR_LINE_FEED: 10,\n /* \\n */\n CHAR_NO_BREAK_SPACE: 160,\n /* \\u00A0 */\n CHAR_PERCENT: 37,\n /* % */\n CHAR_PLUS: 43,\n /* + */\n CHAR_QUESTION_MARK: 63,\n /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62,\n /* > */\n CHAR_RIGHT_CURLY_BRACE: 125,\n /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93,\n /* ] */\n CHAR_SEMICOLON: 59,\n /* ; */\n CHAR_SINGLE_QUOTE: 39,\n /* ' */\n CHAR_SPACE: 32,\n /* */\n CHAR_TAB: 9,\n /* \\t */\n CHAR_UNDERSCORE: 95,\n /* _ */\n CHAR_VERTICAL_LINE: 124,\n /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,\n /* \\uFEFF */\n SEP: path13.sep,\n /**\n * Create EXTGLOB_CHARS\n */\n extglobChars(chars) {\n return {\n \"!\": { type: \"negate\", open: \"(?:(?!(?:\", close: `))${chars.STAR})` },\n \"?\": { type: \"qmark\", open: \"(?:\", close: \")?\" },\n \"+\": { type: \"plus\", open: \"(?:\", close: \")+\" },\n \"*\": { type: \"star\", open: \"(?:\", close: \")*\" },\n \"@\": { type: \"at\", open: \"(?:\", close: \")\" }\n };\n },\n /**\n * Create GLOB_CHARS\n */\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n };\n }\n});\n\n// node_modules/picomatch/lib/utils.js\nvar require_utils2 = __commonJS({\n \"node_modules/picomatch/lib/utils.js\"(exports) {\n \"use strict\";\n var path13 = __require(\"path\");\n var win32 = process.platform === \"win32\";\n var {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n } = require_constants2();\n exports.isObject = (val) => val !== null && typeof val === \"object\" && !Array.isArray(val);\n exports.hasRegexChars = (str2) => REGEX_SPECIAL_CHARS.test(str2);\n exports.isRegexChar = (str2) => str2.length === 1 && exports.hasRegexChars(str2);\n exports.escapeRegex = (str2) => str2.replace(REGEX_SPECIAL_CHARS_GLOBAL, \"\\\\$1\");\n exports.toPosixSlashes = (str2) => str2.replace(REGEX_BACKSLASH, \"/\");\n exports.removeBackslashes = (str2) => {\n return str2.replace(REGEX_REMOVE_BACKSLASH, (match) => {\n return match === \"\\\\\" ? \"\" : match;\n });\n };\n exports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split(\".\").map(Number);\n if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) {\n return true;\n }\n return false;\n };\n exports.isWindows = (options8) => {\n if (options8 && typeof options8.windows === \"boolean\") {\n return options8.windows;\n }\n return win32 === true || path13.sep === \"\\\\\";\n };\n exports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === \"\\\\\") return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n };\n exports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith(\"./\")) {\n output = output.slice(2);\n state.prefix = \"./\";\n }\n return output;\n };\n exports.wrapOutput = (input, state = {}, options8 = {}) => {\n const prepend = options8.contains ? \"\" : \"^\";\n const append = options8.contains ? \"\" : \"$\";\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n };\n }\n});\n\n// node_modules/picomatch/lib/scan.js\nvar require_scan = __commonJS({\n \"node_modules/picomatch/lib/scan.js\"(exports, module) {\n \"use strict\";\n var utils = require_utils2();\n var {\n CHAR_ASTERISK,\n /* * */\n CHAR_AT,\n /* @ */\n CHAR_BACKWARD_SLASH,\n /* \\ */\n CHAR_COMMA,\n /* , */\n CHAR_DOT,\n /* . */\n CHAR_EXCLAMATION_MARK,\n /* ! */\n CHAR_FORWARD_SLASH,\n /* / */\n CHAR_LEFT_CURLY_BRACE,\n /* { */\n CHAR_LEFT_PARENTHESES,\n /* ( */\n CHAR_LEFT_SQUARE_BRACKET,\n /* [ */\n CHAR_PLUS,\n /* + */\n CHAR_QUESTION_MARK,\n /* ? */\n CHAR_RIGHT_CURLY_BRACE,\n /* } */\n CHAR_RIGHT_PARENTHESES,\n /* ) */\n CHAR_RIGHT_SQUARE_BRACKET\n /* ] */\n } = require_constants2();\n var isPathSeparator = (code) => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n };\n var depth = (token2) => {\n if (token2.isPrefix !== true) {\n token2.depth = token2.isGlobstar ? Infinity : 1;\n }\n };\n var scan = (input, options8) => {\n const opts = options8 || {};\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n let str2 = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token2 = { value: \"\", depth: 0, isGlob: false };\n const eos = () => index >= length;\n const peek2 = () => str2.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str2.charCodeAt(++index);\n };\n while (index < length) {\n code = advance();\n let next;\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n code = advance();\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n advance();\n continue;\n }\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token2.isBrace = true;\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token2.isBrace = true;\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token2.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token2);\n token2 = { value: \"\", depth: 0, isGlob: false };\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === start + 1) {\n start += 2;\n continue;\n }\n lastIndex = index + 1;\n continue;\n }\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK;\n if (isExtglobChar === true && peek2() === CHAR_LEFT_PARENTHESES) {\n isGlob = token2.isGlob = true;\n isExtglob = token2.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n code = advance();\n continue;\n }\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token2.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token2.isGlobstar = true;\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n advance();\n continue;\n }\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token2.isBracket = true;\n isGlob = token2.isGlob = true;\n finished = true;\n break;\n }\n }\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token2.negated = true;\n start++;\n continue;\n }\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token2.isGlob = true;\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token2.backslashes = true;\n code = advance();\n continue;\n }\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n if (isGlob === true) {\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n }\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n let base = str2;\n let prefix = \"\";\n let glob = \"\";\n if (start > 0) {\n prefix = str2.slice(0, start);\n str2 = str2.slice(start);\n lastIndex -= start;\n }\n if (base && isGlob === true && lastIndex > 0) {\n base = str2.slice(0, lastIndex);\n glob = str2.slice(lastIndex);\n } else if (isGlob === true) {\n base = \"\";\n glob = str2;\n } else {\n base = str2;\n }\n if (base && base !== \"\" && base !== \"/\" && base !== str2) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token2);\n }\n state.tokens = tokens;\n }\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== \"\") {\n parts.push(value);\n }\n prevIndex = i;\n }\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n state.slashes = slashes;\n state.parts = parts;\n }\n return state;\n };\n module.exports = scan;\n }\n});\n\n// node_modules/picomatch/lib/parse.js\nvar require_parse2 = __commonJS({\n \"node_modules/picomatch/lib/parse.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants2();\n var utils = require_utils2();\n var {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n } = constants;\n var expandRange = (args, options8) => {\n if (typeof options8.expandRange === \"function\") {\n return options8.expandRange(...args, options8);\n }\n args.sort();\n const value = `[${args.join(\"-\")}]`;\n try {\n new RegExp(value);\n } catch (ex) {\n return args.map((v) => utils.escapeRegex(v)).join(\"..\");\n }\n return value;\n };\n var syntaxError2 = (type2, char) => {\n return `Missing ${type2}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n };\n var parse7 = (input, options8) => {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n input = REPLACEMENTS[input] || input;\n const opts = { ...options8 };\n const max = typeof opts.maxLength === \"number\" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n const bos = { type: \"bos\", value: \"\", output: opts.prepend || \"\" };\n const tokens = [bos];\n const capture = opts.capture ? \"\" : \"?:\";\n const win32 = utils.isWindows(options8);\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n const globstar = (opts2) => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n const nodot = opts.dot ? \"\" : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n if (opts.capture) {\n star = `(${star})`;\n }\n if (typeof opts.noext === \"boolean\") {\n opts.noextglob = opts.noext;\n }\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: \"\",\n output: \"\",\n prefix: \"\",\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n input = utils.removePrefix(input, state);\n len = input.length;\n const extglobs = [];\n const braces = [];\n const stack2 = [];\n let prev = bos;\n let value;\n const eos = () => state.index === len - 1;\n const peek2 = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || \"\";\n const remaining = () => input.slice(state.index + 1);\n const consume = (value2 = \"\", num = 0) => {\n state.consumed += value2;\n state.index += num;\n };\n const append = (token2) => {\n state.output += token2.output != null ? token2.output : token2.value;\n consume(token2.value);\n };\n const negate = () => {\n let count = 1;\n while (peek2() === \"!\" && (peek2(2) !== \"(\" || peek2(3) === \"?\")) {\n advance();\n state.start++;\n count++;\n }\n if (count % 2 === 0) {\n return false;\n }\n state.negated = true;\n state.start++;\n return true;\n };\n const increment = (type2) => {\n state[type2]++;\n stack2.push(type2);\n };\n const decrement = (type2) => {\n state[type2]--;\n stack2.pop();\n };\n const push2 = (tok) => {\n if (prev.type === \"globstar\") {\n const isBrace = state.braces > 0 && (tok.type === \"comma\" || tok.type === \"brace\");\n const isExtglob = tok.extglob === true || extglobs.length && (tok.type === \"pipe\" || tok.type === \"paren\");\n if (tok.type !== \"slash\" && tok.type !== \"paren\" && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = \"star\";\n prev.value = \"*\";\n prev.output = star;\n state.output += prev.output;\n }\n }\n if (extglobs.length && tok.type !== \"paren\") {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === \"text\" && tok.type === \"text\") {\n prev.value += tok.value;\n prev.output = (prev.output || \"\") + tok.value;\n return;\n }\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n const extglobOpen = (type2, value2) => {\n const token2 = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: \"\" };\n token2.prev = prev;\n token2.parens = state.parens;\n token2.output = state.output;\n const output = (opts.capture ? \"(\" : \"\") + token2.open;\n increment(\"parens\");\n push2({ type: type2, value: value2, output: state.output ? \"\" : ONE_CHAR });\n push2({ type: \"paren\", extglob: true, value: advance(), output });\n extglobs.push(token2);\n };\n const extglobClose = (token2) => {\n let output = token2.close + (opts.capture ? \")\" : \"\");\n let rest;\n if (token2.type === \"negate\") {\n let extglobStar = star;\n if (token2.inner && token2.inner.length > 1 && token2.inner.includes(\"/\")) {\n extglobStar = globstar(opts);\n }\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token2.close = `)$))${extglobStar}`;\n }\n if (token2.inner.includes(\"*\") && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n const expression = parse7(rest, { ...options8, fastpaths: false }).output;\n output = token2.close = `)${expression})${extglobStar})`;\n }\n if (token2.prev.type === \"bos\") {\n state.negatedExtglob = true;\n }\n }\n push2({ type: \"paren\", extglob: true, value, output });\n decrement(\"parens\");\n };\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === \"\\\\\") {\n backslashes = true;\n return m;\n }\n if (first === \"?\") {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : \"\");\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : \"\");\n }\n return QMARK.repeat(chars.length);\n }\n if (first === \".\") {\n return DOT_LITERAL.repeat(chars.length);\n }\n if (first === \"*\") {\n if (esc) {\n return esc + first + (rest ? star : \"\");\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, \"\");\n } else {\n output = output.replace(/\\\\+/g, (m) => {\n return m.length % 2 === 0 ? \"\\\\\\\\\" : m ? \"\\\\\" : \"\";\n });\n }\n }\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n state.output = utils.wrapOutput(output, state, options8);\n return state;\n }\n while (!eos()) {\n value = advance();\n if (value === \"\\0\") {\n continue;\n }\n if (value === \"\\\\\") {\n const next = peek2();\n if (next === \"/\" && opts.bash !== true) {\n continue;\n }\n if (next === \".\" || next === \";\") {\n continue;\n }\n if (!next) {\n value += \"\\\\\";\n push2({ type: \"text\", value });\n continue;\n }\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += \"\\\\\";\n }\n }\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n if (state.brackets === 0) {\n push2({ type: \"text\", value });\n continue;\n }\n }\n if (state.brackets > 0 && (value !== \"]\" || prev.value === \"[\" || prev.value === \"[^\")) {\n if (opts.posix !== false && value === \":\") {\n const inner = prev.value.slice(1);\n if (inner.includes(\"[\")) {\n prev.posix = true;\n if (inner.includes(\":\")) {\n const idx = prev.value.lastIndexOf(\"[\");\n const pre = prev.value.slice(0, idx);\n const rest2 = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest2];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n if (value === \"[\" && peek2() !== \":\" || value === \"-\" && peek2() === \"]\") {\n value = `\\\\${value}`;\n }\n if (value === \"]\" && (prev.value === \"[\" || prev.value === \"[^\")) {\n value = `\\\\${value}`;\n }\n if (opts.posix === true && value === \"!\" && prev.value === \"[\") {\n value = \"^\";\n }\n prev.value += value;\n append({ value });\n continue;\n }\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push2({ type: \"text\", value });\n }\n continue;\n }\n if (value === \"(\") {\n increment(\"parens\");\n push2({ type: \"paren\", value });\n continue;\n }\n if (value === \")\") {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError2(\"opening\", \"(\"));\n }\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n push2({ type: \"paren\", value, output: state.parens ? \")\" : \"\\\\)\" });\n decrement(\"parens\");\n continue;\n }\n if (value === \"[\") {\n if (opts.nobracket === true || !remaining().includes(\"]\")) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError2(\"closing\", \"]\"));\n }\n value = `\\\\${value}`;\n } else {\n increment(\"brackets\");\n }\n push2({ type: \"bracket\", value });\n continue;\n }\n if (value === \"]\") {\n if (opts.nobracket === true || prev && prev.type === \"bracket\" && prev.value.length === 1) {\n push2({ type: \"text\", value, output: `\\\\${value}` });\n continue;\n }\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError2(\"opening\", \"[\"));\n }\n push2({ type: \"text\", value, output: `\\\\${value}` });\n continue;\n }\n decrement(\"brackets\");\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === \"^\" && !prevValue.includes(\"/\")) {\n value = `/${value}`;\n }\n prev.value += value;\n append({ value });\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n if (value === \"{\" && opts.nobrace !== true) {\n increment(\"braces\");\n const open = {\n type: \"brace\",\n value,\n output: \"(\",\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n braces.push(open);\n push2(open);\n continue;\n }\n if (value === \"}\") {\n const brace = braces[braces.length - 1];\n if (opts.nobrace === true || !brace) {\n push2({ type: \"text\", value, output: value });\n continue;\n }\n let output = \")\";\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === \"brace\") {\n break;\n }\n if (arr[i].type !== \"dots\") {\n range.unshift(arr[i].value);\n }\n }\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = \"\\\\{\";\n value = output = \"\\\\}\";\n state.output = out;\n for (const t of toks) {\n state.output += t.output || t.value;\n }\n }\n push2({ type: \"brace\", value, output });\n decrement(\"braces\");\n braces.pop();\n continue;\n }\n if (value === \"|\") {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value === \",\") {\n let output = value;\n const brace = braces[braces.length - 1];\n if (brace && stack2[stack2.length - 1] === \"braces\") {\n brace.comma = true;\n output = \"|\";\n }\n push2({ type: \"comma\", value, output });\n continue;\n }\n if (value === \"/\") {\n if (prev.type === \"dot\" && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = \"\";\n state.output = \"\";\n tokens.pop();\n prev = bos;\n continue;\n }\n push2({ type: \"slash\", value, output: SLASH_LITERAL });\n continue;\n }\n if (value === \".\") {\n if (state.braces > 0 && prev.type === \"dot\") {\n if (prev.value === \".\") prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = \"dots\";\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n if (state.braces + state.parens === 0 && prev.type !== \"bos\" && prev.type !== \"slash\") {\n push2({ type: \"text\", value, output: DOT_LITERAL });\n continue;\n }\n push2({ type: \"dot\", value, output: DOT_LITERAL });\n continue;\n }\n if (value === \"?\") {\n const isGroup = prev && prev.value === \"(\";\n if (!isGroup && opts.noextglob !== true && peek2() === \"(\" && peek2(2) !== \"?\") {\n extglobOpen(\"qmark\", value);\n continue;\n }\n if (prev && prev.type === \"paren\") {\n const next = peek2();\n let output = value;\n if (next === \"<\" && !utils.supportsLookbehinds()) {\n throw new Error(\"Node.js v10 or higher is required for regex lookbehinds\");\n }\n if (prev.value === \"(\" && !/[!=<:]/.test(next) || next === \"<\" && !/<([!=]|\\w+>)/.test(remaining())) {\n output = `\\\\${value}`;\n }\n push2({ type: \"text\", value, output });\n continue;\n }\n if (opts.dot !== true && (prev.type === \"slash\" || prev.type === \"bos\")) {\n push2({ type: \"qmark\", value, output: QMARK_NO_DOT });\n continue;\n }\n push2({ type: \"qmark\", value, output: QMARK });\n continue;\n }\n if (value === \"!\") {\n if (opts.noextglob !== true && peek2() === \"(\") {\n if (peek2(2) !== \"?\" || !/[!=<:]/.test(peek2(3))) {\n extglobOpen(\"negate\", value);\n continue;\n }\n }\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n if (value === \"+\") {\n if (opts.noextglob !== true && peek2() === \"(\" && peek2(2) !== \"?\") {\n extglobOpen(\"plus\", value);\n continue;\n }\n if (prev && prev.value === \"(\" || opts.regex === false) {\n push2({ type: \"plus\", value, output: PLUS_LITERAL });\n continue;\n }\n if (prev && (prev.type === \"bracket\" || prev.type === \"paren\" || prev.type === \"brace\") || state.parens > 0) {\n push2({ type: \"plus\", value });\n continue;\n }\n push2({ type: \"plus\", value: PLUS_LITERAL });\n continue;\n }\n if (value === \"@\") {\n if (opts.noextglob !== true && peek2() === \"(\" && peek2(2) !== \"?\") {\n push2({ type: \"at\", extglob: true, value, output: \"\" });\n continue;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value !== \"*\") {\n if (value === \"$\" || value === \"^\") {\n value = `\\\\${value}`;\n }\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (prev && (prev.type === \"globstar\" || prev.star === true)) {\n prev.type = \"star\";\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen(\"star\", value);\n continue;\n }\n if (prev.type === \"star\") {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === \"slash\" || prior.type === \"bos\";\n const afterStar = before && (before.type === \"star\" || before.type === \"globstar\");\n if (opts.bash === true && (!isStart || rest[0] && rest[0] !== \"/\")) {\n push2({ type: \"star\", value, output: \"\" });\n continue;\n }\n const isBrace = state.braces > 0 && (prior.type === \"comma\" || prior.type === \"brace\");\n const isExtglob = extglobs.length && (prior.type === \"pipe\" || prior.type === \"paren\");\n if (!isStart && prior.type !== \"paren\" && !isBrace && !isExtglob) {\n push2({ type: \"star\", value, output: \"\" });\n continue;\n }\n while (rest.slice(0, 3) === \"/**\") {\n const after = input[state.index + 4];\n if (after && after !== \"/\") {\n break;\n }\n rest = rest.slice(3);\n consume(\"/**\", 3);\n }\n if (prior.type === \"bos\" && eos()) {\n prev.type = \"globstar\";\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n if (prior.type === \"slash\" && prior.prev.type !== \"bos\" && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n prev.type = \"globstar\";\n prev.output = globstar(opts) + (opts.strictSlashes ? \")\" : \"|$)\");\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n if (prior.type === \"slash\" && prior.prev.type !== \"bos\" && rest[0] === \"/\") {\n const end = rest[1] !== void 0 ? \"|$\" : \"\";\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n prev.type = \"globstar\";\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n state.output += prior.output + prev.output;\n state.globstar = true;\n consume(value + advance());\n push2({ type: \"slash\", value: \"/\", output: \"\" });\n continue;\n }\n if (prior.type === \"bos\" && rest[0] === \"/\") {\n prev.type = \"globstar\";\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push2({ type: \"slash\", value: \"/\", output: \"\" });\n continue;\n }\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = \"globstar\";\n prev.output = globstar(opts);\n prev.value += value;\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n const token2 = { type: \"star\", value, output: star };\n if (opts.bash === true) {\n token2.output = \".*?\";\n if (prev.type === \"bos\" || prev.type === \"slash\") {\n token2.output = nodot + token2.output;\n }\n push2(token2);\n continue;\n }\n if (prev && (prev.type === \"bracket\" || prev.type === \"paren\") && opts.regex === true) {\n token2.output = value;\n push2(token2);\n continue;\n }\n if (state.index === state.start || prev.type === \"slash\" || prev.type === \"dot\") {\n if (prev.type === \"dot\") {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n if (peek2() !== \"*\") {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n push2(token2);\n }\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError2(\"closing\", \"]\"));\n state.output = utils.escapeLast(state.output, \"[\");\n decrement(\"brackets\");\n }\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError2(\"closing\", \")\"));\n state.output = utils.escapeLast(state.output, \"(\");\n decrement(\"parens\");\n }\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError2(\"closing\", \"}\"));\n state.output = utils.escapeLast(state.output, \"{\");\n decrement(\"braces\");\n }\n if (opts.strictSlashes !== true && (prev.type === \"star\" || prev.type === \"bracket\")) {\n push2({ type: \"maybe_slash\", value: \"\", output: `${SLASH_LITERAL}?` });\n }\n if (state.backtrack === true) {\n state.output = \"\";\n for (const token2 of state.tokens) {\n state.output += token2.output != null ? token2.output : token2.value;\n if (token2.suffix) {\n state.output += token2.suffix;\n }\n }\n }\n return state;\n };\n parse7.fastpaths = (input, options8) => {\n const opts = { ...options8 };\n const max = typeof opts.maxLength === \"number\" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options8);\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? \"\" : \"?:\";\n const state = { negated: false, prefix: \"\" };\n let star = opts.bash === true ? \".*?\" : STAR;\n if (opts.capture) {\n star = `(${star})`;\n }\n const globstar = (opts2) => {\n if (opts2.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n const create = (str2) => {\n switch (str2) {\n case \"*\":\n return `${nodot}${ONE_CHAR}${star}`;\n case \".*\":\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n case \"*.*\":\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n case \"*/*\":\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n case \"**\":\n return nodot + globstar(opts);\n case \"**/*\":\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n case \"**/*.*\":\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n case \"**/.*\":\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str2);\n if (!match) return;\n const source3 = create(match[1]);\n if (!source3) return;\n return source3 + DOT_LITERAL + match[2];\n }\n }\n };\n const output = utils.removePrefix(input, state);\n let source2 = create(output);\n if (source2 && opts.strictSlashes !== true) {\n source2 += `${SLASH_LITERAL}?`;\n }\n return source2;\n };\n module.exports = parse7;\n }\n});\n\n// node_modules/picomatch/lib/picomatch.js\nvar require_picomatch = __commonJS({\n \"node_modules/picomatch/lib/picomatch.js\"(exports, module) {\n \"use strict\";\n var path13 = __require(\"path\");\n var scan = require_scan();\n var parse7 = require_parse2();\n var utils = require_utils2();\n var constants = require_constants2();\n var isObject3 = (val) => val && typeof val === \"object\" && !Array.isArray(val);\n var picomatch = (glob, options8, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map((input) => picomatch(input, options8, returnState));\n const arrayMatcher = (str2) => {\n for (const isMatch of fns) {\n const state2 = isMatch(str2);\n if (state2) return state2;\n }\n return false;\n };\n return arrayMatcher;\n }\n const isState = isObject3(glob) && glob.tokens && glob.input;\n if (glob === \"\" || typeof glob !== \"string\" && !isState) {\n throw new TypeError(\"Expected pattern to be a non-empty string\");\n }\n const opts = options8 || {};\n const posix = utils.isWindows(options8);\n const regex = isState ? picomatch.compileRe(glob, options8) : picomatch.makeRe(glob, options8, false, true);\n const state = regex.state;\n delete regex.state;\n let isIgnored2 = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options8, ignore: null, onMatch: null, onResult: null };\n isIgnored2 = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options8, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n if (typeof opts.onResult === \"function\") {\n opts.onResult(result);\n }\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n if (isIgnored2(input)) {\n if (typeof opts.onIgnore === \"function\") {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n if (typeof opts.onMatch === \"function\") {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n if (returnState) {\n matcher.state = state;\n }\n return matcher;\n };\n picomatch.test = (input, regex, options8, { glob, posix } = {}) => {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Expected input to be a string\");\n }\n if (input === \"\") {\n return { isMatch: false, output: \"\" };\n }\n const opts = options8 || {};\n const format3 = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = match && format3 ? format3(input) : input;\n if (match === false) {\n output = format3 ? format3(input) : input;\n match = output === glob;\n }\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options8, posix);\n } else {\n match = regex.exec(output);\n }\n }\n return { isMatch: Boolean(match), match, output };\n };\n picomatch.matchBase = (input, glob, options8, posix = utils.isWindows(options8)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options8);\n return regex.test(path13.basename(input));\n };\n picomatch.isMatch = (str2, patterns, options8) => picomatch(patterns, options8)(str2);\n picomatch.parse = (pattern, options8) => {\n if (Array.isArray(pattern)) return pattern.map((p) => picomatch.parse(p, options8));\n return parse7(pattern, { ...options8, fastpaths: false });\n };\n picomatch.scan = (input, options8) => scan(input, options8);\n picomatch.compileRe = (state, options8, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n const opts = options8 || {};\n const prepend = opts.contains ? \"\" : \"^\";\n const append = opts.contains ? \"\" : \"$\";\n let source2 = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source2 = `^(?!${source2}).*$`;\n }\n const regex = picomatch.toRegex(source2, options8);\n if (returnState === true) {\n regex.state = state;\n }\n return regex;\n };\n picomatch.makeRe = (input, options8 = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== \"string\") {\n throw new TypeError(\"Expected a non-empty string\");\n }\n let parsed = { negated: false, fastpaths: true };\n if (options8.fastpaths !== false && (input[0] === \".\" || input[0] === \"*\")) {\n parsed.output = parse7.fastpaths(input, options8);\n }\n if (!parsed.output) {\n parsed = parse7(input, options8);\n }\n return picomatch.compileRe(parsed, options8, returnOutput, returnState);\n };\n picomatch.toRegex = (source2, options8) => {\n try {\n const opts = options8 || {};\n return new RegExp(source2, opts.flags || (opts.nocase ? \"i\" : \"\"));\n } catch (err) {\n if (options8 && options8.debug === true) throw err;\n return /$^/;\n }\n };\n picomatch.constants = constants;\n module.exports = picomatch;\n }\n});\n\n// node_modules/picomatch/index.js\nvar require_picomatch2 = __commonJS({\n \"node_modules/picomatch/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_picomatch();\n }\n});\n\n// node_modules/micromatch/index.js\nvar require_micromatch = __commonJS({\n \"node_modules/micromatch/index.js\"(exports, module) {\n \"use strict\";\n var util2 = __require(\"util\");\n var braces = require_braces();\n var picomatch = require_picomatch2();\n var utils = require_utils2();\n var isEmptyString = (v) => v === \"\" || v === \"./\";\n var hasBraces = (v) => {\n const index = v.indexOf(\"{\");\n return index > -1 && v.indexOf(\"}\", index) > -1;\n };\n var micromatch2 = (list, patterns, options8) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n let omit2 = /* @__PURE__ */ new Set();\n let keep = /* @__PURE__ */ new Set();\n let items = /* @__PURE__ */ new Set();\n let negatives = 0;\n let onResult = (state) => {\n items.add(state.output);\n if (options8 && options8.onResult) {\n options8.onResult(state);\n }\n };\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options8, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n for (let item of list) {\n let matched = isMatch(item, true);\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n if (negated) {\n omit2.add(matched.output);\n } else {\n omit2.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter((item) => !omit2.has(item));\n if (options8 && matches.length === 0) {\n if (options8.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(\", \")}\"`);\n }\n if (options8.nonull === true || options8.nullglob === true) {\n return options8.unescape ? patterns.map((p) => p.replace(/\\\\/g, \"\")) : patterns;\n }\n }\n return matches;\n };\n micromatch2.match = micromatch2;\n micromatch2.matcher = (pattern, options8) => picomatch(pattern, options8);\n micromatch2.isMatch = (str2, patterns, options8) => picomatch(patterns, options8)(str2);\n micromatch2.any = micromatch2.isMatch;\n micromatch2.not = (list, patterns, options8 = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = /* @__PURE__ */ new Set();\n let items = [];\n let onResult = (state) => {\n if (options8.onResult) options8.onResult(state);\n items.push(state.output);\n };\n let matches = new Set(micromatch2(list, patterns, { ...options8, onResult }));\n for (let item of items) {\n if (!matches.has(item)) {\n result.add(item);\n }\n }\n return [...result];\n };\n micromatch2.contains = (str2, pattern, options8) => {\n if (typeof str2 !== \"string\") {\n throw new TypeError(`Expected a string: \"${util2.inspect(str2)}\"`);\n }\n if (Array.isArray(pattern)) {\n return pattern.some((p) => micromatch2.contains(str2, p, options8));\n }\n if (typeof pattern === \"string\") {\n if (isEmptyString(str2) || isEmptyString(pattern)) {\n return false;\n }\n if (str2.includes(pattern) || str2.startsWith(\"./\") && str2.slice(2).includes(pattern)) {\n return true;\n }\n }\n return micromatch2.isMatch(str2, pattern, { ...options8, contains: true });\n };\n micromatch2.matchKeys = (obj, patterns, options8) => {\n if (!utils.isObject(obj)) {\n throw new TypeError(\"Expected the first argument to be an object\");\n }\n let keys = micromatch2(Object.keys(obj), patterns, options8);\n let res = {};\n for (let key2 of keys) res[key2] = obj[key2];\n return res;\n };\n micromatch2.some = (list, patterns, options8) => {\n let items = [].concat(list);\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options8);\n if (items.some((item) => isMatch(item))) {\n return true;\n }\n }\n return false;\n };\n micromatch2.every = (list, patterns, options8) => {\n let items = [].concat(list);\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options8);\n if (!items.every((item) => isMatch(item))) {\n return false;\n }\n }\n return true;\n };\n micromatch2.all = (str2, patterns, options8) => {\n if (typeof str2 !== \"string\") {\n throw new TypeError(`Expected a string: \"${util2.inspect(str2)}\"`);\n }\n return [].concat(patterns).every((p) => picomatch(p, options8)(str2));\n };\n micromatch2.capture = (glob, input, options8) => {\n let posix = utils.isWindows(options8);\n let regex = picomatch.makeRe(String(glob), { ...options8, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n if (match) {\n return match.slice(1).map((v) => v === void 0 ? \"\" : v);\n }\n };\n micromatch2.makeRe = (...args) => picomatch.makeRe(...args);\n micromatch2.scan = (...args) => picomatch.scan(...args);\n micromatch2.parse = (patterns, options8) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str2 of braces(String(pattern), options8)) {\n res.push(picomatch.parse(str2, options8));\n }\n }\n return res;\n };\n micromatch2.braces = (pattern, options8) => {\n if (typeof pattern !== \"string\") throw new TypeError(\"Expected a string\");\n if (options8 && options8.nobrace === true || !hasBraces(pattern)) {\n return [pattern];\n }\n return braces(pattern, options8);\n };\n micromatch2.braceExpand = (pattern, options8) => {\n if (typeof pattern !== \"string\") throw new TypeError(\"Expected a string\");\n return micromatch2.braces(pattern, { ...options8, expand: true });\n };\n micromatch2.hasBraces = hasBraces;\n module.exports = micromatch2;\n }\n});\n\n// node_modules/fast-glob/out/utils/pattern.js\nvar require_pattern = __commonJS({\n \"node_modules/fast-glob/out/utils/pattern.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\n var path13 = __require(\"path\");\n var globParent = require_glob_parent();\n var micromatch2 = require_micromatch();\n var GLOBSTAR = \"**\";\n var ESCAPE_SYMBOL = \"\\\\\";\n var COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\n var REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\n var REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\n var GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\n var BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n var DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\n function isStaticPattern(pattern, options8 = {}) {\n return !isDynamicPattern(pattern, options8);\n }\n exports.isStaticPattern = isStaticPattern;\n function isDynamicPattern(pattern, options8 = {}) {\n if (pattern === \"\") {\n return false;\n }\n if (options8.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options8.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options8.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n }\n exports.isDynamicPattern = isDynamicPattern;\n function hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf(\"{\");\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf(\"}\", openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n }\n function convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n }\n exports.convertToPositivePattern = convertToPositivePattern;\n function convertToNegativePattern(pattern) {\n return \"!\" + pattern;\n }\n exports.convertToNegativePattern = convertToNegativePattern;\n function isNegativePattern(pattern) {\n return pattern.startsWith(\"!\") && pattern[1] !== \"(\";\n }\n exports.isNegativePattern = isNegativePattern;\n function isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n }\n exports.isPositivePattern = isPositivePattern;\n function getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n }\n exports.getNegativePatterns = getNegativePatterns;\n function getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n }\n exports.getPositivePatterns = getPositivePatterns;\n function getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n }\n exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n function getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n }\n exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\n function isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith(\"..\") || pattern.startsWith(\"./..\");\n }\n exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\n function getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n }\n exports.getBaseDirectory = getBaseDirectory;\n function hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n }\n exports.hasGlobStar = hasGlobStar;\n function endsWithSlashGlobStar(pattern) {\n return pattern.endsWith(\"/\" + GLOBSTAR);\n }\n exports.endsWithSlashGlobStar = endsWithSlashGlobStar;\n function isAffectDepthOfReadingPattern(pattern) {\n const basename = path13.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n }\n exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\n function expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n }\n exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\n function expandBraceExpansion(pattern) {\n const patterns = micromatch2.braces(pattern, { expand: true, nodupes: true, keepEscaping: true });\n patterns.sort((a, b) => a.length - b.length);\n return patterns.filter((pattern2) => pattern2 !== \"\");\n }\n exports.expandBraceExpansion = expandBraceExpansion;\n function getPatternParts(pattern, options8) {\n let { parts } = micromatch2.scan(pattern, Object.assign(Object.assign({}, options8), { parts: true }));\n if (parts.length === 0) {\n parts = [pattern];\n }\n if (parts[0].startsWith(\"/\")) {\n parts[0] = parts[0].slice(1);\n parts.unshift(\"\");\n }\n return parts;\n }\n exports.getPatternParts = getPatternParts;\n function makeRe(pattern, options8) {\n return micromatch2.makeRe(pattern, options8);\n }\n exports.makeRe = makeRe;\n function convertPatternsToRe(patterns, options8) {\n return patterns.map((pattern) => makeRe(pattern, options8));\n }\n exports.convertPatternsToRe = convertPatternsToRe;\n function matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n }\n exports.matchAny = matchAny;\n function removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, \"/\");\n }\n exports.removeDuplicateSlashes = removeDuplicateSlashes;\n }\n});\n\n// node_modules/merge2/index.js\nvar require_merge2 = __commonJS({\n \"node_modules/merge2/index.js\"(exports, module) {\n \"use strict\";\n var Stream = __require(\"stream\");\n var PassThrough = Stream.PassThrough;\n var slice = Array.prototype.slice;\n module.exports = merge2;\n function merge2() {\n const streamsQueue = [];\n const args = slice.call(arguments);\n let merging = false;\n let options8 = args[args.length - 1];\n if (options8 && !Array.isArray(options8) && options8.pipe == null) {\n args.pop();\n } else {\n options8 = {};\n }\n const doEnd = options8.end !== false;\n const doPipeError = options8.pipeError === true;\n if (options8.objectMode == null) {\n options8.objectMode = true;\n }\n if (options8.highWaterMark == null) {\n options8.highWaterMark = 64 * 1024;\n }\n const mergedStream = PassThrough(options8);\n function addStream() {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options8));\n }\n mergeStream();\n return this;\n }\n function mergeStream() {\n if (merging) {\n return;\n }\n merging = true;\n let streams = streamsQueue.shift();\n if (!streams) {\n process.nextTick(endStream);\n return;\n }\n if (!Array.isArray(streams)) {\n streams = [streams];\n }\n let pipesCount = streams.length + 1;\n function next() {\n if (--pipesCount > 0) {\n return;\n }\n merging = false;\n mergeStream();\n }\n function pipe(stream) {\n function onend() {\n stream.removeListener(\"merge2UnpipeEnd\", onend);\n stream.removeListener(\"end\", onend);\n if (doPipeError) {\n stream.removeListener(\"error\", onerror);\n }\n next();\n }\n function onerror(err) {\n mergedStream.emit(\"error\", err);\n }\n if (stream._readableState.endEmitted) {\n return next();\n }\n stream.on(\"merge2UnpipeEnd\", onend);\n stream.on(\"end\", onend);\n if (doPipeError) {\n stream.on(\"error\", onerror);\n }\n stream.pipe(mergedStream, { end: false });\n stream.resume();\n }\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i]);\n }\n next();\n }\n function endStream() {\n merging = false;\n mergedStream.emit(\"queueDrain\");\n if (doEnd) {\n mergedStream.end();\n }\n }\n mergedStream.setMaxListeners(0);\n mergedStream.add = addStream;\n mergedStream.on(\"unpipe\", function(stream) {\n stream.emit(\"merge2UnpipeEnd\");\n });\n if (args.length) {\n addStream.apply(null, args);\n }\n return mergedStream;\n }\n function pauseStreams(streams, options8) {\n if (!Array.isArray(streams)) {\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options8));\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error(\"Only readable stream can be merged.\");\n }\n streams.pause();\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options8);\n }\n }\n return streams;\n }\n }\n});\n\n// node_modules/fast-glob/out/utils/stream.js\nvar require_stream = __commonJS({\n \"node_modules/fast-glob/out/utils/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.merge = void 0;\n var merge2 = require_merge2();\n function merge3(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once(\"error\", (error) => mergedStream.emit(\"error\", error));\n });\n mergedStream.once(\"close\", () => propagateCloseEventToSources(streams));\n mergedStream.once(\"end\", () => propagateCloseEventToSources(streams));\n return mergedStream;\n }\n exports.merge = merge3;\n function propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit(\"close\"));\n }\n }\n});\n\n// node_modules/fast-glob/out/utils/string.js\nvar require_string = __commonJS({\n \"node_modules/fast-glob/out/utils/string.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isEmpty = exports.isString = void 0;\n function isString(input) {\n return typeof input === \"string\";\n }\n exports.isString = isString;\n function isEmpty(input) {\n return input === \"\";\n }\n exports.isEmpty = isEmpty;\n }\n});\n\n// node_modules/fast-glob/out/utils/index.js\nvar require_utils3 = __commonJS({\n \"node_modules/fast-glob/out/utils/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\n var array2 = require_array();\n exports.array = array2;\n var errno = require_errno();\n exports.errno = errno;\n var fs7 = require_fs();\n exports.fs = fs7;\n var path13 = require_path();\n exports.path = path13;\n var pattern = require_pattern();\n exports.pattern = pattern;\n var stream = require_stream();\n exports.stream = stream;\n var string = require_string();\n exports.string = string;\n }\n});\n\n// node_modules/fast-glob/out/managers/tasks.js\nvar require_tasks = __commonJS({\n \"node_modules/fast-glob/out/managers/tasks.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\n var utils = require_utils3();\n function generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(\n staticPatterns,\n negativePatterns,\n /* dynamic */\n false\n );\n const dynamicTasks = convertPatternsToTasks(\n dynamicPatterns,\n negativePatterns,\n /* dynamic */\n true\n );\n return staticTasks.concat(dynamicTasks);\n }\n exports.generate = generate;\n function processPatterns(input, settings) {\n let patterns = input;\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes(\"/\") ? pattern : `**/${pattern}`);\n }\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n }\n function convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n if (\".\" in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask(\".\", patternsInsideCurrentDirectory, negative, dynamic));\n } else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n }\n exports.convertPatternsToTasks = convertPatternsToTasks;\n function getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n }\n exports.getPositivePatterns = getPositivePatterns;\n function getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n }\n exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\n function groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n } else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n }\n exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\n function convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n }\n exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\n function convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n }\n exports.convertPatternGroupToTask = convertPatternGroupToTask;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/providers/async.js\nvar require_async = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.read = void 0;\n function read3(path13, settings, callback) {\n settings.fs.lstat(path13, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path13, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n }\n exports.read = read3;\n function callFailureCallback(callback, error) {\n callback(error);\n }\n function callSuccessCallback(callback, result) {\n callback(null, result);\n }\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/providers/sync.js\nvar require_sync = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.read = void 0;\n function read3(path13, settings) {\n const lstat = settings.fs.lstatSync(path13);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path13);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n } catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n }\n exports.read = read3;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/adapters/fs.js\nvar require_fs2 = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/adapters/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\n var fs7 = __require(\"fs\");\n exports.FILE_SYSTEM_ADAPTER = {\n lstat: fs7.lstat,\n stat: fs7.stat,\n lstatSync: fs7.lstatSync,\n statSync: fs7.statSync\n };\n function createFileSystemAdapter(fsMethods) {\n if (fsMethods === void 0) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n }\n exports.createFileSystemAdapter = createFileSystemAdapter;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/settings.js\nvar require_settings = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fs7 = require_fs2();\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs7.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/index.js\nvar require_out = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.statSync = exports.stat = exports.Settings = void 0;\n var async = require_async();\n var sync = require_sync();\n var settings_1 = require_settings();\n exports.Settings = settings_1.default;\n function stat(path13, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === \"function\") {\n async.read(path13, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path13, getSettings(optionsOrSettingsOrCallback), callback);\n }\n exports.stat = stat;\n function statSync2(path13, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path13, settings);\n }\n exports.statSync = statSync2;\n function getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n }\n }\n});\n\n// node_modules/queue-microtask/index.js\nvar require_queue_microtask = __commonJS({\n \"node_modules/queue-microtask/index.js\"(exports, module) {\n var promise;\n module.exports = typeof queueMicrotask === \"function\" ? queueMicrotask.bind(typeof window !== \"undefined\" ? window : global) : (cb) => (promise || (promise = Promise.resolve())).then(cb).catch((err) => setTimeout(() => {\n throw err;\n }, 0));\n }\n});\n\n// node_modules/run-parallel/index.js\nvar require_run_parallel = __commonJS({\n \"node_modules/run-parallel/index.js\"(exports, module) {\n module.exports = runParallel;\n var queueMicrotask2 = require_queue_microtask();\n function runParallel(tasks, cb) {\n let results, pending, keys;\n let isSync = true;\n if (Array.isArray(tasks)) {\n results = [];\n pending = tasks.length;\n } else {\n keys = Object.keys(tasks);\n results = {};\n pending = keys.length;\n }\n function done(err) {\n function end() {\n if (cb) cb(err, results);\n cb = null;\n }\n if (isSync) queueMicrotask2(end);\n else end();\n }\n function each(i, err, result) {\n results[i] = result;\n if (--pending === 0 || err) {\n done(err);\n }\n }\n if (!pending) {\n done(null);\n } else if (keys) {\n keys.forEach(function(key2) {\n tasks[key2](function(err, result) {\n each(key2, err, result);\n });\n });\n } else {\n tasks.forEach(function(task, i) {\n task(function(err, result) {\n each(i, err, result);\n });\n });\n }\n isSync = false;\n }\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/constants.js\nvar require_constants3 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/constants.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\n var NODE_PROCESS_VERSION_PARTS = process.versions.node.split(\".\");\n if (NODE_PROCESS_VERSION_PARTS[0] === void 0 || NODE_PROCESS_VERSION_PARTS[1] === void 0) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n }\n var MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\n var MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\n var SUPPORTED_MAJOR_VERSION = 10;\n var SUPPORTED_MINOR_VERSION = 10;\n var IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\n var IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/utils/fs.js\nvar require_fs3 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/utils/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createDirentFromStats = void 0;\n var DirentFromStats = class {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n };\n function createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n }\n exports.createDirentFromStats = createDirentFromStats;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/utils/index.js\nvar require_utils4 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/utils/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.fs = void 0;\n var fs7 = require_fs3();\n exports.fs = fs7;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/providers/common.js\nvar require_common = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/providers/common.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.joinPathSegments = void 0;\n function joinPathSegments(a, b, separator) {\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n }\n exports.joinPathSegments = joinPathSegments;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/providers/async.js\nvar require_async2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\n var fsStat = require_out();\n var rpl = require_run_parallel();\n var constants_1 = require_constants3();\n var utils = require_utils4();\n var common2 = require_common();\n function read3(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n }\n exports.read = read3;\n function readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common2.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n }\n exports.readdirWithFileTypes = readdirWithFileTypes;\n function makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n }\n function readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path13 = common2.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path13, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path: path13,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n }\n exports.readdir = readdir;\n function callFailureCallback(callback, error) {\n callback(error);\n }\n function callSuccessCallback(callback, result) {\n callback(null, result);\n }\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/providers/sync.js\nvar require_sync2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\n var fsStat = require_out();\n var constants_1 = require_constants3();\n var utils = require_utils4();\n var common2 = require_common();\n function read3(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n }\n exports.read = read3;\n function readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common2.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n } catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n }\n exports.readdirWithFileTypes = readdirWithFileTypes;\n function readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common2.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n }\n exports.readdir = readdir;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/adapters/fs.js\nvar require_fs4 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/adapters/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\n var fs7 = __require(\"fs\");\n exports.FILE_SYSTEM_ADAPTER = {\n lstat: fs7.lstat,\n stat: fs7.stat,\n lstatSync: fs7.lstatSync,\n statSync: fs7.statSync,\n readdir: fs7.readdir,\n readdirSync: fs7.readdirSync\n };\n function createFileSystemAdapter(fsMethods) {\n if (fsMethods === void 0) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n }\n exports.createFileSystemAdapter = createFileSystemAdapter;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/settings.js\nvar require_settings2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path13 = __require(\"path\");\n var fsStat = require_out();\n var fs7 = require_fs4();\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs7.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path13.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/index.js\nvar require_out2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.Settings = exports.scandirSync = exports.scandir = void 0;\n var async = require_async2();\n var sync = require_sync2();\n var settings_1 = require_settings2();\n exports.Settings = settings_1.default;\n function scandir(path13, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === \"function\") {\n async.read(path13, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path13, getSettings(optionsOrSettingsOrCallback), callback);\n }\n exports.scandir = scandir;\n function scandirSync(path13, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path13, settings);\n }\n exports.scandirSync = scandirSync;\n function getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n }\n }\n});\n\n// node_modules/reusify/reusify.js\nvar require_reusify = __commonJS({\n \"node_modules/reusify/reusify.js\"(exports, module) {\n \"use strict\";\n function reusify(Constructor) {\n var head = new Constructor();\n var tail = head;\n function get() {\n var current = head;\n if (current.next) {\n head = current.next;\n } else {\n head = new Constructor();\n tail = head;\n }\n current.next = null;\n return current;\n }\n function release(obj) {\n tail.next = obj;\n tail = obj;\n }\n return {\n get,\n release\n };\n }\n module.exports = reusify;\n }\n});\n\n// node_modules/fastq/queue.js\nvar require_queue = __commonJS({\n \"node_modules/fastq/queue.js\"(exports, module) {\n \"use strict\";\n var reusify = require_reusify();\n function fastqueue(context, worker, _concurrency) {\n if (typeof context === \"function\") {\n _concurrency = worker;\n worker = context;\n context = null;\n }\n if (!(_concurrency >= 1)) {\n throw new Error(\"fastqueue concurrency must be equal to or greater than 1\");\n }\n var cache3 = reusify(Task);\n var queueHead = null;\n var queueTail = null;\n var _running = 0;\n var errorHandler = null;\n var self = {\n push: push2,\n drain: noop2,\n saturated: noop2,\n pause,\n paused: false,\n get concurrency() {\n return _concurrency;\n },\n set concurrency(value) {\n if (!(value >= 1)) {\n throw new Error(\"fastqueue concurrency must be equal to or greater than 1\");\n }\n _concurrency = value;\n if (self.paused) return;\n for (; queueHead && _running < _concurrency; ) {\n _running++;\n release();\n }\n },\n running,\n resume,\n idle,\n length,\n getQueue,\n unshift,\n empty: noop2,\n kill,\n killAndDrain,\n error\n };\n return self;\n function running() {\n return _running;\n }\n function pause() {\n self.paused = true;\n }\n function length() {\n var current = queueHead;\n var counter = 0;\n while (current) {\n current = current.next;\n counter++;\n }\n return counter;\n }\n function getQueue() {\n var current = queueHead;\n var tasks = [];\n while (current) {\n tasks.push(current.value);\n current = current.next;\n }\n return tasks;\n }\n function resume() {\n if (!self.paused) return;\n self.paused = false;\n if (queueHead === null) {\n _running++;\n release();\n return;\n }\n for (; queueHead && _running < _concurrency; ) {\n _running++;\n release();\n }\n }\n function idle() {\n return _running === 0 && self.length() === 0;\n }\n function push2(value, done) {\n var current = cache3.get();\n current.context = context;\n current.release = release;\n current.value = value;\n current.callback = done || noop2;\n current.errorHandler = errorHandler;\n if (_running >= _concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current;\n queueTail = current;\n } else {\n queueHead = current;\n queueTail = current;\n self.saturated();\n }\n } else {\n _running++;\n worker.call(context, current.value, current.worked);\n }\n }\n function unshift(value, done) {\n var current = cache3.get();\n current.context = context;\n current.release = release;\n current.value = value;\n current.callback = done || noop2;\n current.errorHandler = errorHandler;\n if (_running >= _concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead;\n queueHead = current;\n } else {\n queueHead = current;\n queueTail = current;\n self.saturated();\n }\n } else {\n _running++;\n worker.call(context, current.value, current.worked);\n }\n }\n function release(holder) {\n if (holder) {\n cache3.release(holder);\n }\n var next = queueHead;\n if (next && _running <= _concurrency) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null;\n }\n queueHead = next.next;\n next.next = null;\n worker.call(context, next.value, next.worked);\n if (queueTail === null) {\n self.empty();\n }\n } else {\n _running--;\n }\n } else if (--_running === 0) {\n self.drain();\n }\n }\n function kill() {\n queueHead = null;\n queueTail = null;\n self.drain = noop2;\n }\n function killAndDrain() {\n queueHead = null;\n queueTail = null;\n self.drain();\n self.drain = noop2;\n }\n function error(handler) {\n errorHandler = handler;\n }\n }\n function noop2() {\n }\n function Task() {\n this.value = null;\n this.callback = noop2;\n this.next = null;\n this.release = noop2;\n this.context = null;\n this.errorHandler = null;\n var self = this;\n this.worked = function worked(err, result) {\n var callback = self.callback;\n var errorHandler = self.errorHandler;\n var val = self.value;\n self.value = null;\n self.callback = noop2;\n if (self.errorHandler) {\n errorHandler(err, val);\n }\n callback.call(self.context, err, result);\n self.release(self);\n };\n }\n function queueAsPromised(context, worker, _concurrency) {\n if (typeof context === \"function\") {\n _concurrency = worker;\n worker = context;\n context = null;\n }\n function asyncWrapper(arg, cb) {\n worker.call(this, arg).then(function(res) {\n cb(null, res);\n }, cb);\n }\n var queue = fastqueue(context, asyncWrapper, _concurrency);\n var pushCb = queue.push;\n var unshiftCb = queue.unshift;\n queue.push = push2;\n queue.unshift = unshift;\n queue.drained = drained;\n return queue;\n function push2(value) {\n var p = new Promise(function(resolve3, reject) {\n pushCb(value, function(err, result) {\n if (err) {\n reject(err);\n return;\n }\n resolve3(result);\n });\n });\n p.catch(noop2);\n return p;\n }\n function unshift(value) {\n var p = new Promise(function(resolve3, reject) {\n unshiftCb(value, function(err, result) {\n if (err) {\n reject(err);\n return;\n }\n resolve3(result);\n });\n });\n p.catch(noop2);\n return p;\n }\n function drained() {\n if (queue.idle()) {\n return new Promise(function(resolve3) {\n resolve3();\n });\n }\n var previousDrain = queue.drain;\n var p = new Promise(function(resolve3) {\n queue.drain = function() {\n previousDrain();\n resolve3();\n };\n });\n return p;\n }\n }\n module.exports = fastqueue;\n module.exports.promise = queueAsPromised;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/common.js\nvar require_common2 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/common.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\n function isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n }\n exports.isFatalError = isFatalError;\n function isAppliedFilter(filter2, value) {\n return filter2 === null || filter2(value);\n }\n exports.isAppliedFilter = isAppliedFilter;\n function replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n }\n exports.replacePathSegmentSeparator = replacePathSegmentSeparator;\n function joinPathSegments(a, b, separator) {\n if (a === \"\") {\n return b;\n }\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n }\n exports.joinPathSegments = joinPathSegments;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/reader.js\nvar require_reader = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/reader.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var common2 = require_common2();\n var Reader = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common2.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n };\n exports.default = Reader;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/async.js\nvar require_async3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var events_1 = __require(\"events\");\n var fsScandir = require_out2();\n var fastq = require_queue();\n var common2 = require_common2();\n var reader_1 = require_reader();\n var AsyncReader = class extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit(\"end\");\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error(\"The reader is already destroyed\");\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on(\"entry\", callback);\n }\n onError(callback) {\n this._emitter.once(\"error\", callback);\n }\n onEnd(callback) {\n this._emitter.once(\"end\", callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, void 0);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, void 0);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common2.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit(\"error\", error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== void 0) {\n entry.path = common2.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common2.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common2.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit(\"entry\", entry);\n }\n };\n exports.default = AsyncReader;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/providers/async.js\nvar require_async4 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var async_1 = require_async3();\n var AsyncProvider = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n };\n exports.default = AsyncProvider;\n function callFailureCallback(callback, error) {\n callback(error);\n }\n function callSuccessCallback(callback, entries) {\n callback(null, entries);\n }\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/providers/stream.js\nvar require_stream2 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/providers/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var stream_1 = __require(\"stream\");\n var async_1 = require_async3();\n var StreamProvider = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => {\n },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit(\"error\", error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n };\n exports.default = StreamProvider;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/sync.js\nvar require_sync3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fsScandir = require_out2();\n var common2 = require_common2();\n var reader_1 = require_reader();\n var SyncReader = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = /* @__PURE__ */ new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n } catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common2.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== void 0) {\n entry.path = common2.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common2.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common2.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n };\n exports.default = SyncReader;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/providers/sync.js\nvar require_sync4 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var sync_1 = require_sync3();\n var SyncProvider = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n };\n exports.default = SyncProvider;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/settings.js\nvar require_settings3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path13 = __require(\"path\");\n var fsScandir = require_out2();\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, void 0);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path13.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/index.js\nvar require_out3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\n var async_1 = require_async4();\n var stream_1 = require_stream2();\n var sync_1 = require_sync4();\n var settings_1 = require_settings3();\n exports.Settings = settings_1.default;\n function walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === \"function\") {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n }\n exports.walk = walk;\n function walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n }\n exports.walkSync = walkSync;\n function walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n }\n exports.walkStream = walkStream;\n function getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n }\n }\n});\n\n// node_modules/fast-glob/out/readers/reader.js\nvar require_reader2 = __commonJS({\n \"node_modules/fast-glob/out/readers/reader.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path13 = __require(\"path\");\n var fsStat = require_out();\n var utils = require_utils3();\n var Reader = class {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path13.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n };\n exports.default = Reader;\n }\n});\n\n// node_modules/fast-glob/out/readers/stream.js\nvar require_stream3 = __commonJS({\n \"node_modules/fast-glob/out/readers/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var stream_1 = __require(\"stream\");\n var fsStat = require_out();\n var fsWalk = require_out3();\n var reader_1 = require_reader2();\n var ReaderStream = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root2, options8) {\n return this._walkStream(root2, options8);\n }\n static(patterns, options8) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options8).then((entry) => {\n if (entry !== null && options8.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n }).catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options8) {\n return this._getStat(filepath).then((stats) => this._makeEntry(stats, pattern)).catch((error) => {\n if (options8.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve3, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve3(stats) : reject(error);\n });\n });\n }\n };\n exports.default = ReaderStream;\n }\n});\n\n// node_modules/fast-glob/out/readers/async.js\nvar require_async5 = __commonJS({\n \"node_modules/fast-glob/out/readers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fsWalk = require_out3();\n var reader_1 = require_reader2();\n var stream_1 = require_stream3();\n var ReaderAsync = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root2, options8) {\n return new Promise((resolve3, reject) => {\n this._walkAsync(root2, options8, (error, entries) => {\n if (error === null) {\n resolve3(entries);\n } else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options8) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options8);\n return new Promise((resolve3, reject) => {\n stream.once(\"error\", reject);\n stream.on(\"data\", (entry) => entries.push(entry));\n stream.once(\"end\", () => resolve3(entries));\n });\n }\n };\n exports.default = ReaderAsync;\n }\n});\n\n// node_modules/fast-glob/out/providers/matchers/matcher.js\nvar require_matcher = __commonJS({\n \"node_modules/fast-glob/out/providers/matchers/matcher.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var Matcher = class {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n };\n exports.default = Matcher;\n }\n});\n\n// node_modules/fast-glob/out/providers/matchers/partial.js\nvar require_partial = __commonJS({\n \"node_modules/fast-glob/out/providers/matchers/partial.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var matcher_1 = require_matcher();\n var PartialMatcher = class extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split(\"/\");\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n };\n exports.default = PartialMatcher;\n }\n});\n\n// node_modules/fast-glob/out/providers/filters/deep.js\nvar require_deep = __commonJS({\n \"node_modules/fast-glob/out/providers/filters/deep.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var partial_1 = require_partial();\n var DeepFilter = class {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split(\"/\").length;\n if (basePath === \"\") {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split(\"/\").length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n };\n exports.default = DeepFilter;\n }\n});\n\n// node_modules/fast-glob/out/providers/filters/entry.js\nvar require_entry = __commonJS({\n \"node_modules/fast-glob/out/providers/filters/entry.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var EntryFilter = class {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = /* @__PURE__ */ new Map();\n }\n getFilter(positive, negative) {\n const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);\n const negativeRe = utils.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }));\n return (entry) => this._filter(entry, positiveRe, negativeRe);\n }\n _filter(entry, positiveRe, negativeRe) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) {\n return false;\n }\n const isDirectory2 = entry.dirent.isDirectory();\n const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory2) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory2);\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, void 0);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {\n if (!this._settings.absolute) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);\n return utils.pattern.matchAny(fullpath, patternsRe);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory2) {\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n if (!isMatched && isDirectory2) {\n return utils.pattern.matchAny(filepath + \"/\", patternsRe);\n }\n return isMatched;\n }\n };\n exports.default = EntryFilter;\n }\n});\n\n// node_modules/fast-glob/out/providers/filters/error.js\nvar require_error = __commonJS({\n \"node_modules/fast-glob/out/providers/filters/error.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var ErrorFilter = class {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n };\n exports.default = ErrorFilter;\n }\n});\n\n// node_modules/fast-glob/out/providers/transformers/entry.js\nvar require_entry2 = __commonJS({\n \"node_modules/fast-glob/out/providers/transformers/entry.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var EntryTransformer = class {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += \"/\";\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n };\n exports.default = EntryTransformer;\n }\n});\n\n// node_modules/fast-glob/out/providers/provider.js\nvar require_provider = __commonJS({\n \"node_modules/fast-glob/out/providers/provider.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path13 = __require(\"path\");\n var deep_1 = require_deep();\n var entry_1 = require_entry();\n var error_1 = require_error();\n var entry_2 = require_entry2();\n var Provider = class {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path13.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === \".\" ? \"\" : task.base;\n return {\n basePath,\n pathSegmentSeparator: \"/\",\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n };\n exports.default = Provider;\n }\n});\n\n// node_modules/fast-glob/out/providers/async.js\nvar require_async6 = __commonJS({\n \"node_modules/fast-glob/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var async_1 = require_async5();\n var provider_1 = require_provider();\n var ProviderAsync = class extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root2 = this._getRootDirectory(task);\n const options8 = this._getReaderOptions(task);\n const entries = await this.api(root2, task, options8);\n return entries.map((entry) => options8.transform(entry));\n }\n api(root2, task, options8) {\n if (task.dynamic) {\n return this._reader.dynamic(root2, options8);\n }\n return this._reader.static(task.patterns, options8);\n }\n };\n exports.default = ProviderAsync;\n }\n});\n\n// node_modules/fast-glob/out/providers/stream.js\nvar require_stream4 = __commonJS({\n \"node_modules/fast-glob/out/providers/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var stream_1 = __require(\"stream\");\n var stream_2 = require_stream3();\n var provider_1 = require_provider();\n var ProviderStream = class extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root2 = this._getRootDirectory(task);\n const options8 = this._getReaderOptions(task);\n const source2 = this.api(root2, task, options8);\n const destination = new stream_1.Readable({ objectMode: true, read: () => {\n } });\n source2.once(\"error\", (error) => destination.emit(\"error\", error)).on(\"data\", (entry) => destination.emit(\"data\", options8.transform(entry))).once(\"end\", () => destination.emit(\"end\"));\n destination.once(\"close\", () => source2.destroy());\n return destination;\n }\n api(root2, task, options8) {\n if (task.dynamic) {\n return this._reader.dynamic(root2, options8);\n }\n return this._reader.static(task.patterns, options8);\n }\n };\n exports.default = ProviderStream;\n }\n});\n\n// node_modules/fast-glob/out/readers/sync.js\nvar require_sync5 = __commonJS({\n \"node_modules/fast-glob/out/readers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fsStat = require_out();\n var fsWalk = require_out3();\n var reader_1 = require_reader2();\n var ReaderSync = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root2, options8) {\n return this._walkSync(root2, options8);\n }\n static(patterns, options8) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options8);\n if (entry === null || !options8.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options8) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n } catch (error) {\n if (options8.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n };\n exports.default = ReaderSync;\n }\n});\n\n// node_modules/fast-glob/out/providers/sync.js\nvar require_sync6 = __commonJS({\n \"node_modules/fast-glob/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var sync_1 = require_sync5();\n var provider_1 = require_provider();\n var ProviderSync = class extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root2 = this._getRootDirectory(task);\n const options8 = this._getReaderOptions(task);\n const entries = this.api(root2, task, options8);\n return entries.map(options8.transform);\n }\n api(root2, task, options8) {\n if (task.dynamic) {\n return this._reader.dynamic(root2, options8);\n }\n return this._reader.static(task.patterns, options8);\n }\n };\n exports.default = ProviderSync;\n }\n});\n\n// node_modules/fast-glob/out/settings.js\nvar require_settings4 = __commonJS({\n \"node_modules/fast-glob/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\n var fs7 = __require(\"fs\");\n var os2 = __require(\"os\");\n var CPU_COUNT = Math.max(os2.cpus().length, 1);\n exports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs7.lstat,\n lstatSync: fs7.lstatSync,\n stat: fs7.stat,\n statSync: fs7.statSync,\n readdir: fs7.readdir,\n readdirSync: fs7.readdirSync\n };\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === void 0 ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/fast-glob/out/index.js\nvar require_out4 = __commonJS({\n \"node_modules/fast-glob/out/index.js\"(exports, module) {\n \"use strict\";\n var taskManager = require_tasks();\n var async_1 = require_async6();\n var stream_1 = require_stream4();\n var sync_1 = require_sync6();\n var settings_1 = require_settings4();\n var utils = require_utils3();\n async function FastGlob(source2, options8) {\n assertPatternsInput(source2);\n const works = getWorks(source2, async_1.default, options8);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n }\n (function(FastGlob2) {\n FastGlob2.glob = FastGlob2;\n FastGlob2.globSync = sync;\n FastGlob2.globStream = stream;\n FastGlob2.async = FastGlob2;\n function sync(source2, options8) {\n assertPatternsInput(source2);\n const works = getWorks(source2, sync_1.default, options8);\n return utils.array.flatten(works);\n }\n FastGlob2.sync = sync;\n function stream(source2, options8) {\n assertPatternsInput(source2);\n const works = getWorks(source2, stream_1.default, options8);\n return utils.stream.merge(works);\n }\n FastGlob2.stream = stream;\n function generateTasks(source2, options8) {\n assertPatternsInput(source2);\n const patterns = [].concat(source2);\n const settings = new settings_1.default(options8);\n return taskManager.generate(patterns, settings);\n }\n FastGlob2.generateTasks = generateTasks;\n function isDynamicPattern(source2, options8) {\n assertPatternsInput(source2);\n const settings = new settings_1.default(options8);\n return utils.pattern.isDynamicPattern(source2, settings);\n }\n FastGlob2.isDynamicPattern = isDynamicPattern;\n function escapePath(source2) {\n assertPatternsInput(source2);\n return utils.path.escape(source2);\n }\n FastGlob2.escapePath = escapePath;\n function convertPathToPattern(source2) {\n assertPatternsInput(source2);\n return utils.path.convertPathToPattern(source2);\n }\n FastGlob2.convertPathToPattern = convertPathToPattern;\n let posix;\n (function(posix2) {\n function escapePath2(source2) {\n assertPatternsInput(source2);\n return utils.path.escapePosixPath(source2);\n }\n posix2.escapePath = escapePath2;\n function convertPathToPattern2(source2) {\n assertPatternsInput(source2);\n return utils.path.convertPosixPathToPattern(source2);\n }\n posix2.convertPathToPattern = convertPathToPattern2;\n })(posix = FastGlob2.posix || (FastGlob2.posix = {}));\n let win32;\n (function(win322) {\n function escapePath2(source2) {\n assertPatternsInput(source2);\n return utils.path.escapeWindowsPath(source2);\n }\n win322.escapePath = escapePath2;\n function convertPathToPattern2(source2) {\n assertPatternsInput(source2);\n return utils.path.convertWindowsPathToPattern(source2);\n }\n win322.convertPathToPattern = convertPathToPattern2;\n })(win32 = FastGlob2.win32 || (FastGlob2.win32 = {}));\n })(FastGlob || (FastGlob = {}));\n function getWorks(source2, _Provider, options8) {\n const patterns = [].concat(source2);\n const settings = new settings_1.default(options8);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n }\n function assertPatternsInput(input) {\n const source2 = [].concat(input);\n const isValidSource = source2.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError(\"Patterns must be a string (non empty) or an array of strings\");\n }\n }\n module.exports = FastGlob;\n }\n});\n\n// node_modules/semver/internal/debug.js\nvar require_debug = __commonJS({\n \"node_modules/semver/internal/debug.js\"(exports, module) {\n var debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n module.exports = debug;\n }\n});\n\n// node_modules/semver/internal/constants.js\nvar require_constants4 = __commonJS({\n \"node_modules/semver/internal/constants.js\"(exports, module) {\n var SEMVER_SPEC_VERSION = \"2.0.0\";\n var MAX_LENGTH = 256;\n var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n var MAX_SAFE_COMPONENT_LENGTH = 16;\n var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n var RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n module.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n }\n});\n\n// node_modules/semver/internal/re.js\nvar require_re = __commonJS({\n \"node_modules/semver/internal/re.js\"(exports, module) {\n var {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = require_constants4();\n var debug = require_debug();\n exports = module.exports = {};\n var re = exports.re = [];\n var safeRe = exports.safeRe = [];\n var src = exports.src = [];\n var t = exports.t = {};\n var R = 0;\n var LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n var safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n var makeSafeRegex = (value) => {\n for (const [token2, max] of safeRegexReplacements) {\n value = value.split(`${token2}*`).join(`${token2}{0,${max}}`).split(`${token2}+`).join(`${token2}{1,${max}}`);\n }\n return value;\n };\n var createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t[name] = index;\n src[index] = value;\n re[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\n createToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n }\n});\n\n// node_modules/semver/internal/parse-options.js\nvar require_parse_options = __commonJS({\n \"node_modules/semver/internal/parse-options.js\"(exports, module) {\n var looseOption = Object.freeze({ loose: true });\n var emptyOpts = Object.freeze({});\n var parseOptions = (options8) => {\n if (!options8) {\n return emptyOpts;\n }\n if (typeof options8 !== \"object\") {\n return looseOption;\n }\n return options8;\n };\n module.exports = parseOptions;\n }\n});\n\n// node_modules/semver/internal/identifiers.js\nvar require_identifiers = __commonJS({\n \"node_modules/semver/internal/identifiers.js\"(exports, module) {\n var numeric = /^[0-9]+$/;\n var compareIdentifiers = (a, b) => {\n const anum = numeric.test(a);\n const bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n };\n var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a);\n module.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n }\n});\n\n// node_modules/semver/classes/semver.js\nvar require_semver = __commonJS({\n \"node_modules/semver/classes/semver.js\"(exports, module) {\n var debug = require_debug();\n var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants4();\n var { safeRe: re, t } = require_re();\n var parseOptions = require_parse_options();\n var { compareIdentifiers } = require_identifiers();\n var SemVer = class _SemVer {\n constructor(version, options8) {\n options8 = parseOptions(options8);\n if (version instanceof _SemVer) {\n if (version.loose === !!options8.loose && version.includePrerelease === !!options8.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options8);\n this.options = options8;\n this.loose = !!options8.loose;\n this.includePrerelease = !!options8.includePrerelease;\n const m = version.trim().match(options8.loose ? re[t.LOOSE] : re[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof _SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new _SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof _SemVer)) {\n other = new _SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof _SemVer)) {\n other = new _SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === void 0 && b === void 0) {\n return 0;\n } else if (b === void 0) {\n return 1;\n } else if (a === void 0) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof _SemVer)) {\n other = new _SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n debug(\"build compare\", i, a, b);\n if (a === void 0 && b === void 0) {\n return 0;\n } else if (b === void 0) {\n return 1;\n } else if (a === void 0) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n };\n module.exports = SemVer;\n }\n});\n\n// node_modules/semver/functions/compare.js\nvar require_compare = __commonJS({\n \"node_modules/semver/functions/compare.js\"(exports, module) {\n var SemVer = require_semver();\n var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));\n module.exports = compare;\n }\n});\n\n// node_modules/semver/functions/gte.js\nvar require_gte = __commonJS({\n \"node_modules/semver/functions/gte.js\"(exports, module) {\n var compare = require_compare();\n var gte = (a, b, loose) => compare(a, b, loose) >= 0;\n module.exports = gte;\n }\n});\n\n// node_modules/pseudomap/pseudomap.js\nvar require_pseudomap = __commonJS({\n \"node_modules/pseudomap/pseudomap.js\"(exports, module) {\n var hasOwnProperty3 = Object.prototype.hasOwnProperty;\n module.exports = PseudoMap;\n function PseudoMap(set3) {\n if (!(this instanceof PseudoMap))\n throw new TypeError(\"Constructor PseudoMap requires 'new'\");\n this.clear();\n if (set3) {\n if (set3 instanceof PseudoMap || typeof Map === \"function\" && set3 instanceof Map)\n set3.forEach(function(value, key2) {\n this.set(key2, value);\n }, this);\n else if (Array.isArray(set3))\n set3.forEach(function(kv) {\n this.set(kv[0], kv[1]);\n }, this);\n else\n throw new TypeError(\"invalid argument\");\n }\n }\n PseudoMap.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n Object.keys(this._data).forEach(function(k) {\n if (k !== \"size\")\n fn.call(thisp, this._data[k].value, this._data[k].key);\n }, this);\n };\n PseudoMap.prototype.has = function(k) {\n return !!find(this._data, k);\n };\n PseudoMap.prototype.get = function(k) {\n var res = find(this._data, k);\n return res && res.value;\n };\n PseudoMap.prototype.set = function(k, v) {\n set2(this._data, k, v);\n };\n PseudoMap.prototype.delete = function(k) {\n var res = find(this._data, k);\n if (res) {\n delete this._data[res._index];\n this._data.size--;\n }\n };\n PseudoMap.prototype.clear = function() {\n var data = /* @__PURE__ */ Object.create(null);\n data.size = 0;\n Object.defineProperty(this, \"_data\", {\n value: data,\n enumerable: false,\n configurable: true,\n writable: false\n });\n };\n Object.defineProperty(PseudoMap.prototype, \"size\", {\n get: function() {\n return this._data.size;\n },\n set: function(n) {\n },\n enumerable: true,\n configurable: true\n });\n PseudoMap.prototype.values = PseudoMap.prototype.keys = PseudoMap.prototype.entries = function() {\n throw new Error(\"iterators are not implemented in this version\");\n };\n function same(a, b) {\n return a === b || a !== a && b !== b;\n }\n function Entry(k, v, i) {\n this.key = k;\n this.value = v;\n this._index = i;\n }\n function find(data, k) {\n for (var i = 0, s = \"_\" + k, key2 = s; hasOwnProperty3.call(data, key2); key2 = s + i++) {\n if (same(data[key2].key, k))\n return data[key2];\n }\n }\n function set2(data, k, v) {\n for (var i = 0, s = \"_\" + k, key2 = s; hasOwnProperty3.call(data, key2); key2 = s + i++) {\n if (same(data[key2].key, k)) {\n data[key2].value = v;\n return;\n }\n }\n data.size++;\n data[key2] = new Entry(k, v, key2);\n }\n }\n});\n\n// node_modules/pseudomap/map.js\nvar require_map = __commonJS({\n \"node_modules/pseudomap/map.js\"(exports, module) {\n if (process.env.npm_package_name === \"pseudomap\" && process.env.npm_lifecycle_script === \"test\")\n process.env.TEST_PSEUDOMAP = \"true\";\n if (typeof Map === \"function\" && !process.env.TEST_PSEUDOMAP) {\n module.exports = Map;\n } else {\n module.exports = require_pseudomap();\n }\n }\n});\n\n// node_modules/yallist/yallist.js\nvar require_yallist = __commonJS({\n \"node_modules/yallist/yallist.js\"(exports, module) {\n module.exports = Yallist;\n Yallist.Node = Node;\n Yallist.create = Yallist;\n function Yallist(list) {\n var self = this;\n if (!(self instanceof Yallist)) {\n self = new Yallist();\n }\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") {\n list.forEach(function(item) {\n self.push(item);\n });\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i]);\n }\n }\n return self;\n }\n Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) {\n throw new Error(\"removing node which does not belong to this list\");\n }\n var next = node.next;\n var prev = node.prev;\n if (next) {\n next.prev = prev;\n }\n if (prev) {\n prev.next = next;\n }\n if (node === this.head) {\n this.head = next;\n }\n if (node === this.tail) {\n this.tail = prev;\n }\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n };\n Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) {\n return;\n }\n if (node.list) {\n node.list.removeNode(node);\n }\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) {\n head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.length++;\n };\n Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) {\n return;\n }\n if (node.list) {\n node.list.removeNode(node);\n }\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) {\n tail.next = node;\n }\n this.tail = node;\n if (!this.head) {\n this.head = node;\n }\n this.length++;\n };\n Yallist.prototype.push = function() {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push2(this, arguments[i]);\n }\n return this.length;\n };\n Yallist.prototype.unshift = function() {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i]);\n }\n return this.length;\n };\n Yallist.prototype.pop = function() {\n if (!this.tail) {\n return void 0;\n }\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) {\n this.tail.next = null;\n } else {\n this.head = null;\n }\n this.length--;\n return res;\n };\n Yallist.prototype.shift = function() {\n if (!this.head) {\n return void 0;\n }\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) {\n this.head.prev = null;\n } else {\n this.tail = null;\n }\n this.length--;\n return res;\n };\n Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n };\n Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n };\n Yallist.prototype.get = function(n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n walker = walker.next;\n }\n if (i === n && walker !== null) {\n return walker.value;\n }\n };\n Yallist.prototype.getReverse = function(n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n walker = walker.prev;\n }\n if (i === n && walker !== null) {\n return walker.value;\n }\n };\n Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n for (var walker = this.head; walker !== null; ) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n };\n Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n for (var walker = this.tail; walker !== null; ) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n };\n Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else {\n throw new TypeError(\"Reduce of empty list with no initial value\");\n }\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n };\n Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else {\n throw new TypeError(\"Reduce of empty list with no initial value\");\n }\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n };\n Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n };\n Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n };\n Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) {\n to += this.length;\n }\n from = from || 0;\n if (from < 0) {\n from += this.length;\n }\n var ret = new Yallist();\n if (to < from || to < 0) {\n return ret;\n }\n if (from < 0) {\n from = 0;\n }\n if (to > this.length) {\n to = this.length;\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next;\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value);\n }\n return ret;\n };\n Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) {\n to += this.length;\n }\n from = from || 0;\n if (from < 0) {\n from += this.length;\n }\n var ret = new Yallist();\n if (to < from || to < 0) {\n return ret;\n }\n if (from < 0) {\n from = 0;\n }\n if (to > this.length) {\n to = this.length;\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev;\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value);\n }\n return ret;\n };\n Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n };\n function push2(self, item) {\n self.tail = new Node(item, self.tail, null, self);\n if (!self.head) {\n self.head = self.tail;\n }\n self.length++;\n }\n function unshift(self, item) {\n self.head = new Node(item, null, self.head, self);\n if (!self.tail) {\n self.tail = self.head;\n }\n self.length++;\n }\n function Node(value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list);\n }\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else {\n this.prev = null;\n }\n if (next) {\n next.prev = this;\n this.next = next;\n } else {\n this.next = null;\n }\n }\n }\n});\n\n// node_modules/lru-cache/index.js\nvar require_lru_cache = __commonJS({\n \"node_modules/lru-cache/index.js\"(exports, module) {\n \"use strict\";\n module.exports = LRUCache;\n var Map2 = require_map();\n var util2 = __require(\"util\");\n var Yallist = require_yallist();\n var hasSymbol = typeof Symbol === \"function\" && process.env._nodeLRUCacheForceNoSymbol !== \"1\";\n var makeSymbol;\n if (hasSymbol) {\n makeSymbol = function(key2) {\n return Symbol(key2);\n };\n } else {\n makeSymbol = function(key2) {\n return \"_\" + key2;\n };\n }\n var MAX = makeSymbol(\"max\");\n var LENGTH = makeSymbol(\"length\");\n var LENGTH_CALCULATOR = makeSymbol(\"lengthCalculator\");\n var ALLOW_STALE = makeSymbol(\"allowStale\");\n var MAX_AGE = makeSymbol(\"maxAge\");\n var DISPOSE = makeSymbol(\"dispose\");\n var NO_DISPOSE_ON_SET = makeSymbol(\"noDisposeOnSet\");\n var LRU_LIST = makeSymbol(\"lruList\");\n var CACHE = makeSymbol(\"cache\");\n function naiveLength() {\n return 1;\n }\n function LRUCache(options8) {\n if (!(this instanceof LRUCache)) {\n return new LRUCache(options8);\n }\n if (typeof options8 === \"number\") {\n options8 = { max: options8 };\n }\n if (!options8) {\n options8 = {};\n }\n var max = this[MAX] = options8.max;\n if (!max || !(typeof max === \"number\") || max <= 0) {\n this[MAX] = Infinity;\n }\n var lc = options8.length || naiveLength;\n if (typeof lc !== \"function\") {\n lc = naiveLength;\n }\n this[LENGTH_CALCULATOR] = lc;\n this[ALLOW_STALE] = options8.stale || false;\n this[MAX_AGE] = options8.maxAge || 0;\n this[DISPOSE] = options8.dispose;\n this[NO_DISPOSE_ON_SET] = options8.noDisposeOnSet || false;\n this.reset();\n }\n Object.defineProperty(LRUCache.prototype, \"max\", {\n set: function(mL) {\n if (!mL || !(typeof mL === \"number\") || mL <= 0) {\n mL = Infinity;\n }\n this[MAX] = mL;\n trim2(this);\n },\n get: function() {\n return this[MAX];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"allowStale\", {\n set: function(allowStale) {\n this[ALLOW_STALE] = !!allowStale;\n },\n get: function() {\n return this[ALLOW_STALE];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"maxAge\", {\n set: function(mA) {\n if (!mA || !(typeof mA === \"number\") || mA < 0) {\n mA = 0;\n }\n this[MAX_AGE] = mA;\n trim2(this);\n },\n get: function() {\n return this[MAX_AGE];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"lengthCalculator\", {\n set: function(lC) {\n if (typeof lC !== \"function\") {\n lC = naiveLength;\n }\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC;\n this[LENGTH] = 0;\n this[LRU_LIST].forEach(function(hit) {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);\n this[LENGTH] += hit.length;\n }, this);\n }\n trim2(this);\n },\n get: function() {\n return this[LENGTH_CALCULATOR];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function() {\n return this[LENGTH];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"itemCount\", {\n get: function() {\n return this[LRU_LIST].length;\n },\n enumerable: true\n });\n LRUCache.prototype.rforEach = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this[LRU_LIST].tail; walker !== null; ) {\n var prev = walker.prev;\n forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n };\n function forEachStep(self, fn, node, thisp) {\n var hit = node.value;\n if (isStale(self, hit)) {\n del(self, node);\n if (!self[ALLOW_STALE]) {\n hit = void 0;\n }\n }\n if (hit) {\n fn.call(thisp, hit.value, hit.key, self);\n }\n }\n LRUCache.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this[LRU_LIST].head; walker !== null; ) {\n var next = walker.next;\n forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n };\n LRUCache.prototype.keys = function() {\n return this[LRU_LIST].toArray().map(function(k) {\n return k.key;\n }, this);\n };\n LRUCache.prototype.values = function() {\n return this[LRU_LIST].toArray().map(function(k) {\n return k.value;\n }, this);\n };\n LRUCache.prototype.reset = function() {\n if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {\n this[LRU_LIST].forEach(function(hit) {\n this[DISPOSE](hit.key, hit.value);\n }, this);\n }\n this[CACHE] = new Map2();\n this[LRU_LIST] = new Yallist();\n this[LENGTH] = 0;\n };\n LRUCache.prototype.dump = function() {\n return this[LRU_LIST].map(function(hit) {\n if (!isStale(this, hit)) {\n return {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n };\n }\n }, this).toArray().filter(function(h) {\n return h;\n });\n };\n LRUCache.prototype.dumpLru = function() {\n return this[LRU_LIST];\n };\n LRUCache.prototype.inspect = function(n, opts) {\n var str2 = \"LRUCache {\";\n var extras = false;\n var as = this[ALLOW_STALE];\n if (as) {\n str2 += \"\\n allowStale: true\";\n extras = true;\n }\n var max = this[MAX];\n if (max && max !== Infinity) {\n if (extras) {\n str2 += \",\";\n }\n str2 += \"\\n max: \" + util2.inspect(max, opts);\n extras = true;\n }\n var maxAge = this[MAX_AGE];\n if (maxAge) {\n if (extras) {\n str2 += \",\";\n }\n str2 += \"\\n maxAge: \" + util2.inspect(maxAge, opts);\n extras = true;\n }\n var lc = this[LENGTH_CALCULATOR];\n if (lc && lc !== naiveLength) {\n if (extras) {\n str2 += \",\";\n }\n str2 += \"\\n length: \" + util2.inspect(this[LENGTH], opts);\n extras = true;\n }\n var didFirst = false;\n this[LRU_LIST].forEach(function(item) {\n if (didFirst) {\n str2 += \",\\n \";\n } else {\n if (extras) {\n str2 += \",\\n\";\n }\n didFirst = true;\n str2 += \"\\n \";\n }\n var key2 = util2.inspect(item.key).split(\"\\n\").join(\"\\n \");\n var val = { value: item.value };\n if (item.maxAge !== maxAge) {\n val.maxAge = item.maxAge;\n }\n if (lc !== naiveLength) {\n val.length = item.length;\n }\n if (isStale(this, item)) {\n val.stale = true;\n }\n val = util2.inspect(val, opts).split(\"\\n\").join(\"\\n \");\n str2 += key2 + \" => \" + val;\n });\n if (didFirst || extras) {\n str2 += \"\\n\";\n }\n str2 += \"}\";\n return str2;\n };\n LRUCache.prototype.set = function(key2, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE];\n var now = maxAge ? Date.now() : 0;\n var len = this[LENGTH_CALCULATOR](value, key2);\n if (this[CACHE].has(key2)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key2));\n return false;\n }\n var node = this[CACHE].get(key2);\n var item = node.value;\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET]) {\n this[DISPOSE](key2, item.value);\n }\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[LENGTH] += len - item.length;\n item.length = len;\n this.get(key2);\n trim2(this);\n return true;\n }\n var hit = new Entry(key2, value, len, now, maxAge);\n if (hit.length > this[MAX]) {\n if (this[DISPOSE]) {\n this[DISPOSE](key2, value);\n }\n return false;\n }\n this[LENGTH] += hit.length;\n this[LRU_LIST].unshift(hit);\n this[CACHE].set(key2, this[LRU_LIST].head);\n trim2(this);\n return true;\n };\n LRUCache.prototype.has = function(key2) {\n if (!this[CACHE].has(key2)) return false;\n var hit = this[CACHE].get(key2).value;\n if (isStale(this, hit)) {\n return false;\n }\n return true;\n };\n LRUCache.prototype.get = function(key2) {\n return get(this, key2, true);\n };\n LRUCache.prototype.peek = function(key2) {\n return get(this, key2, false);\n };\n LRUCache.prototype.pop = function() {\n var node = this[LRU_LIST].tail;\n if (!node) return null;\n del(this, node);\n return node.value;\n };\n LRUCache.prototype.del = function(key2) {\n del(this, this[CACHE].get(key2));\n };\n LRUCache.prototype.load = function(arr) {\n this.reset();\n var now = Date.now();\n for (var l = arr.length - 1; l >= 0; l--) {\n var hit = arr[l];\n var expiresAt = hit.e || 0;\n if (expiresAt === 0) {\n this.set(hit.k, hit.v);\n } else {\n var maxAge = expiresAt - now;\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n };\n LRUCache.prototype.prune = function() {\n var self = this;\n this[CACHE].forEach(function(value, key2) {\n get(self, key2, false);\n });\n };\n function get(self, key2, doUse) {\n var node = self[CACHE].get(key2);\n if (node) {\n var hit = node.value;\n if (isStale(self, hit)) {\n del(self, node);\n if (!self[ALLOW_STALE]) hit = void 0;\n } else {\n if (doUse) {\n self[LRU_LIST].unshiftNode(node);\n }\n }\n if (hit) hit = hit.value;\n }\n return hit;\n }\n function isStale(self, hit) {\n if (!hit || !hit.maxAge && !self[MAX_AGE]) {\n return false;\n }\n var stale = false;\n var diff2 = Date.now() - hit.now;\n if (hit.maxAge) {\n stale = diff2 > hit.maxAge;\n } else {\n stale = self[MAX_AGE] && diff2 > self[MAX_AGE];\n }\n return stale;\n }\n function trim2(self) {\n if (self[LENGTH] > self[MAX]) {\n for (var walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null; ) {\n var prev = walker.prev;\n del(self, walker);\n walker = prev;\n }\n }\n }\n function del(self, node) {\n if (node) {\n var hit = node.value;\n if (self[DISPOSE]) {\n self[DISPOSE](hit.key, hit.value);\n }\n self[LENGTH] -= hit.length;\n self[CACHE].delete(hit.key);\n self[LRU_LIST].removeNode(node);\n }\n }\n function Entry(key2, value, length, now, maxAge) {\n this.key = key2;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n }\n});\n\n// node_modules/sigmund/sigmund.js\nvar require_sigmund = __commonJS({\n \"node_modules/sigmund/sigmund.js\"(exports, module) {\n module.exports = sigmund;\n function sigmund(subject, maxSessions) {\n maxSessions = maxSessions || 10;\n var notes = [];\n var analysis = \"\";\n var RE = RegExp;\n function psychoAnalyze(subject2, session) {\n if (session > maxSessions) return;\n if (typeof subject2 === \"function\" || typeof subject2 === \"undefined\") {\n return;\n }\n if (typeof subject2 !== \"object\" || !subject2 || subject2 instanceof RE) {\n analysis += subject2;\n return;\n }\n if (notes.indexOf(subject2) !== -1 || session === maxSessions) return;\n notes.push(subject2);\n analysis += \"{\";\n Object.keys(subject2).forEach(function(issue, _, __) {\n if (issue.charAt(0) === \"_\") return;\n var to = typeof subject2[issue];\n if (to === \"function\" || to === \"undefined\") return;\n analysis += issue;\n psychoAnalyze(subject2[issue], session + 1);\n });\n }\n psychoAnalyze(subject, 0);\n return analysis;\n }\n }\n});\n\n// node_modules/editorconfig/src/lib/fnmatch.js\nvar require_fnmatch = __commonJS({\n \"node_modules/editorconfig/src/lib/fnmatch.js\"(exports, module) {\n var platform = typeof process === \"object\" ? process.platform : \"win32\";\n if (module) module.exports = minimatch;\n else exports.minimatch = minimatch;\n minimatch.Minimatch = Minimatch;\n var LRU = require_lru_cache();\n var cache3 = minimatch.cache = new LRU({ max: 100 });\n var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {};\n var sigmund = require_sigmund();\n var path13 = __require(\"path\");\n var qmark = \"[^/]\";\n var star = qmark + \"*?\";\n var twoStarDot = \"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\";\n var twoStarNoDot = \"(?:(?!(?:\\\\/|^)\\\\.).)*?\";\n var reSpecials = charSet(\"().*{}+?[]^$\\\\!\");\n function charSet(s) {\n return s.split(\"\").reduce(function(set2, c2) {\n set2[c2] = true;\n return set2;\n }, {});\n }\n var slashSplit = /\\/+/;\n minimatch.monkeyPatch = monkeyPatch;\n function monkeyPatch() {\n var desc = Object.getOwnPropertyDescriptor(String.prototype, \"match\");\n var orig = desc.value;\n desc.value = function(p) {\n if (p instanceof Minimatch) return p.match(this);\n return orig.call(this, p);\n };\n Object.defineProperty(String.prototype, desc);\n }\n minimatch.filter = filter2;\n function filter2(pattern, options8) {\n options8 = options8 || {};\n return function(p, i, list) {\n return minimatch(p, pattern, options8);\n };\n }\n function ext(a, b) {\n a = a || {};\n b = b || {};\n var t = {};\n Object.keys(b).forEach(function(k) {\n t[k] = b[k];\n });\n Object.keys(a).forEach(function(k) {\n t[k] = a[k];\n });\n return t;\n }\n minimatch.defaults = function(def) {\n if (!def || !Object.keys(def).length) return minimatch;\n var orig = minimatch;\n var m = function minimatch2(p, pattern, options8) {\n return orig.minimatch(p, pattern, ext(def, options8));\n };\n m.Minimatch = function Minimatch2(pattern, options8) {\n return new orig.Minimatch(pattern, ext(def, options8));\n };\n return m;\n };\n Minimatch.defaults = function(def) {\n if (!def || !Object.keys(def).length) return Minimatch;\n return minimatch.defaults(def).Minimatch;\n };\n function minimatch(p, pattern, options8) {\n if (typeof pattern !== \"string\") {\n throw new TypeError(\"glob pattern string required\");\n }\n if (!options8) options8 = {};\n if (!options8.nocomment && pattern.charAt(0) === \"#\") {\n return false;\n }\n if (pattern.trim() === \"\") return p === \"\";\n return new Minimatch(pattern, options8).match(p);\n }\n function Minimatch(pattern, options8) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options8, cache3);\n }\n if (typeof pattern !== \"string\") {\n throw new TypeError(\"glob pattern string required\");\n }\n if (!options8) options8 = {};\n if (platform === \"win32\") {\n pattern = pattern.split(\"\\\\\").join(\"/\");\n }\n var cacheKey = pattern + \"\\n\" + sigmund(options8);\n var cached = minimatch.cache.get(cacheKey);\n if (cached) return cached;\n minimatch.cache.set(cacheKey, this);\n this.options = options8;\n this.set = [];\n this.pattern = pattern;\n this.regexp = null;\n this.negate = false;\n this.comment = false;\n this.empty = false;\n this.make();\n }\n Minimatch.prototype.make = make;\n function make() {\n if (this._made) return;\n var pattern = this.pattern;\n var options8 = this.options;\n if (!options8.nocomment && pattern.charAt(0) === \"#\") {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n this.parseNegate();\n var set2 = this.globSet = this.braceExpand();\n if (options8.debug) console.error(this.pattern, set2);\n set2 = this.globParts = set2.map(function(s) {\n return s.split(slashSplit);\n });\n if (options8.debug) console.error(this.pattern, set2);\n set2 = set2.map(function(s, si, set3) {\n return s.map(this.parse, this);\n }, this);\n if (options8.debug) console.error(this.pattern, set2);\n set2 = set2.filter(function(s) {\n return -1 === s.indexOf(false);\n });\n if (options8.debug) console.error(this.pattern, set2);\n this.set = set2;\n }\n Minimatch.prototype.parseNegate = parseNegate;\n function parseNegate() {\n var pattern = this.pattern, negate = false, options8 = this.options, negateOffset = 0;\n if (options8.nonegate) return;\n for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === \"!\"; i++) {\n negate = !negate;\n negateOffset++;\n }\n if (negateOffset) this.pattern = pattern.substr(negateOffset);\n this.negate = negate;\n }\n minimatch.braceExpand = function(pattern, options8) {\n return new Minimatch(pattern, options8).braceExpand();\n };\n Minimatch.prototype.braceExpand = braceExpand;\n function braceExpand(pattern, options8) {\n options8 = options8 || this.options;\n pattern = typeof pattern === \"undefined\" ? this.pattern : pattern;\n if (typeof pattern === \"undefined\") {\n throw new Error(\"undefined pattern\");\n }\n if (options8.nobrace || !pattern.match(/\\{.*\\}/)) {\n return [pattern];\n }\n var escaping = false;\n if (pattern.charAt(0) !== \"{\") {\n var prefix = null;\n for (var i = 0, l = pattern.length; i < l; i++) {\n var c2 = pattern.charAt(i);\n if (c2 === \"\\\\\") {\n escaping = !escaping;\n } else if (c2 === \"{\" && !escaping) {\n prefix = pattern.substr(0, i);\n break;\n }\n }\n if (prefix === null) {\n return [pattern];\n }\n var tail = braceExpand(pattern.substr(i), options8);\n return tail.map(function(t) {\n return prefix + t;\n });\n }\n var numset = pattern.match(/^\\{(-?[0-9]+)\\.\\.(-?[0-9]+)\\}/);\n if (numset) {\n var suf = braceExpand(pattern.substr(numset[0].length), options8), start = +numset[1], end = +numset[2], inc = start > end ? -1 : 1, set2 = [];\n for (var i = start; i != end + inc; i += inc) {\n for (var ii = 0, ll = suf.length; ii < ll; ii++) {\n set2.push(i + suf[ii]);\n }\n }\n return set2;\n }\n var i = 1, depth = 1, set2 = [], member = \"\", sawEnd = false, escaping = false;\n function addMember() {\n set2.push(member);\n member = \"\";\n }\n FOR: for (i = 1, l = pattern.length; i < l; i++) {\n var c2 = pattern.charAt(i);\n if (escaping) {\n escaping = false;\n member += \"\\\\\" + c2;\n } else {\n switch (c2) {\n case \"\\\\\":\n escaping = true;\n continue;\n case \"{\":\n depth++;\n member += \"{\";\n continue;\n case \"}\":\n depth--;\n if (depth === 0) {\n addMember();\n i++;\n break FOR;\n } else {\n member += c2;\n continue;\n }\n case \",\":\n if (depth === 1) {\n addMember();\n } else {\n member += c2;\n }\n continue;\n default:\n member += c2;\n continue;\n }\n }\n }\n if (depth !== 0) {\n return braceExpand(\"\\\\\" + pattern, options8);\n }\n var suf = braceExpand(pattern.substr(i), options8);\n var addBraces = set2.length === 1;\n set2 = set2.map(function(p) {\n return braceExpand(p, options8);\n });\n set2 = set2.reduce(function(l2, r) {\n return l2.concat(r);\n });\n if (addBraces) {\n set2 = set2.map(function(s) {\n return \"{\" + s + \"}\";\n });\n }\n var ret = [];\n for (var i = 0, l = set2.length; i < l; i++) {\n for (var ii = 0, ll = suf.length; ii < ll; ii++) {\n ret.push(set2[i] + suf[ii]);\n }\n }\n return ret;\n }\n Minimatch.prototype.parse = parse7;\n var SUBPARSE = {};\n function parse7(pattern, isSub) {\n var options8 = this.options;\n if (!options8.noglobstar && pattern === \"**\") return GLOBSTAR;\n if (pattern === \"\") return \"\";\n var re = \"\", hasMagic = !!options8.nocase, escaping = false, patternListStack = [], plType, stateChar, inClass = false, reClassStart = -1, classStart = -1, patternStart = pattern.charAt(0) === \".\" ? \"\" : options8.dot ? \"(?!(?:^|\\\\/)\\\\.{1,2}(?:$|\\\\/))\" : \"(?!\\\\.)\";\n function clearStateChar() {\n if (stateChar) {\n switch (stateChar) {\n case \"*\":\n re += star;\n hasMagic = true;\n break;\n case \"?\":\n re += qmark;\n hasMagic = true;\n break;\n default:\n re += \"\\\\\" + stateChar;\n break;\n }\n stateChar = false;\n }\n }\n for (var i = 0, len = pattern.length, c2; i < len && (c2 = pattern.charAt(i)); i++) {\n if (options8.debug) {\n console.error(\"%s\t%s %s %j\", pattern, i, re, c2);\n }\n if (escaping && reSpecials[c2]) {\n re += \"\\\\\" + c2;\n escaping = false;\n continue;\n }\n SWITCH: switch (c2) {\n case \"/\":\n return false;\n case \"\\\\\":\n clearStateChar();\n escaping = true;\n continue;\n // the various stateChar values\n // for the \"extglob\" stuff.\n case \"?\":\n case \"*\":\n case \"+\":\n case \"@\":\n case \"!\":\n if (options8.debug) {\n console.error(\"%s\t%s %s %j <-- stateChar\", pattern, i, re, c2);\n }\n if (inClass) {\n if (c2 === \"!\" && i === classStart + 1) c2 = \"^\";\n re += c2;\n continue;\n }\n clearStateChar();\n stateChar = c2;\n if (options8.noext) clearStateChar();\n continue;\n case \"(\":\n if (inClass) {\n re += \"(\";\n continue;\n }\n if (!stateChar) {\n re += \"\\\\(\";\n continue;\n }\n plType = stateChar;\n patternListStack.push({\n type: plType,\n start: i - 1,\n reStart: re.length\n });\n re += stateChar === \"!\" ? \"(?:(?!\" : \"(?:\";\n stateChar = false;\n continue;\n case \")\":\n if (inClass || !patternListStack.length) {\n re += \"\\\\)\";\n continue;\n }\n hasMagic = true;\n re += \")\";\n plType = patternListStack.pop().type;\n switch (plType) {\n case \"!\":\n re += \"[^/]*?)\";\n break;\n case \"?\":\n case \"+\":\n case \"*\":\n re += plType;\n case \"@\":\n break;\n }\n continue;\n case \"|\":\n if (inClass || !patternListStack.length || escaping) {\n re += \"\\\\|\";\n escaping = false;\n continue;\n }\n re += \"|\";\n continue;\n // these are mostly the same in regexp and glob\n case \"[\":\n clearStateChar();\n if (inClass) {\n re += \"\\\\\" + c2;\n continue;\n }\n inClass = true;\n classStart = i;\n reClassStart = re.length;\n re += c2;\n continue;\n case \"]\":\n if (i === classStart + 1 || !inClass) {\n re += \"\\\\\" + c2;\n escaping = false;\n continue;\n }\n hasMagic = true;\n inClass = false;\n re += c2;\n continue;\n default:\n clearStateChar();\n if (escaping) {\n escaping = false;\n } else if (reSpecials[c2] && !(c2 === \"^\" && inClass)) {\n re += \"\\\\\";\n }\n re += c2;\n }\n }\n if (inClass) {\n var cs = pattern.substr(classStart + 1), sp = this.parse(cs, SUBPARSE);\n re = re.substr(0, reClassStart) + \"\\\\[\" + sp[0];\n hasMagic = hasMagic || sp[1];\n }\n var pl;\n while (pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + 3);\n tail = tail.replace(/((?:\\\\{2})*)(\\\\?)\\|/g, function(_, $1, $2) {\n if (!$2) {\n $2 = \"\\\\\";\n }\n return $1 + $1 + $2 + \"|\";\n });\n var t = pl.type === \"*\" ? star : pl.type === \"?\" ? qmark : \"\\\\\" + pl.type;\n hasMagic = true;\n re = re.slice(0, pl.reStart) + t + \"\\\\(\" + tail;\n }\n clearStateChar();\n if (escaping) {\n re += \"\\\\\\\\\";\n }\n var addPatternStart = false;\n switch (re.charAt(0)) {\n case \".\":\n case \"[\":\n case \"(\":\n addPatternStart = true;\n }\n if (re !== \"\" && hasMagic) re = \"(?=.)\" + re;\n if (addPatternStart) re = patternStart + re;\n if (isSub === SUBPARSE) {\n return [re, hasMagic];\n }\n if (!hasMagic) {\n return globUnescape(pattern);\n }\n var flags = options8.nocase ? \"i\" : \"\", regExp = new RegExp(\"^\" + re + \"$\", flags);\n regExp._glob = pattern;\n regExp._src = re;\n return regExp;\n }\n minimatch.makeRe = function(pattern, options8) {\n return new Minimatch(pattern, options8 || {}).makeRe();\n };\n Minimatch.prototype.makeRe = makeRe;\n function makeRe() {\n if (this.regexp || this.regexp === false) return this.regexp;\n var set2 = this.set;\n if (!set2.length) return this.regexp = false;\n var options8 = this.options;\n var twoStar = options8.noglobstar ? star : options8.dot ? twoStarDot : twoStarNoDot, flags = options8.nocase ? \"i\" : \"\";\n var re = set2.map(function(pattern) {\n return pattern.map(function(p) {\n return p === GLOBSTAR ? twoStar : typeof p === \"string\" ? regExpEscape(p) : p._src;\n }).join(\"\\\\/\");\n }).join(\"|\");\n re = \"^(?:\" + re + \")$\";\n if (this.negate) re = \"^(?!\" + re + \").*$\";\n try {\n return this.regexp = new RegExp(re, flags);\n } catch (ex) {\n return this.regexp = false;\n }\n }\n minimatch.match = function(list, pattern, options8) {\n var mm = new Minimatch(pattern, options8);\n list = list.filter(function(f) {\n return mm.match(f);\n });\n if (options8.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n };\n Minimatch.prototype.match = match;\n function match(f, partial) {\n if (this.comment) return false;\n if (this.empty) return f === \"\";\n if (f === \"/\" && partial) return true;\n var options8 = this.options;\n if (platform === \"win32\") {\n f = f.split(\"\\\\\").join(\"/\");\n }\n f = f.split(slashSplit);\n if (options8.debug) {\n console.error(this.pattern, \"split\", f);\n }\n var set2 = this.set;\n for (var i = 0, l = set2.length; i < l; i++) {\n var pattern = set2[i];\n var hit = this.matchOne(f, pattern, partial);\n if (hit) {\n if (options8.flipNegate) return true;\n return !this.negate;\n }\n }\n if (options8.flipNegate) return false;\n return this.negate;\n }\n Minimatch.prototype.matchOne = function(file, pattern, partial) {\n var options8 = this.options;\n if (options8.debug) {\n console.error(\n \"matchOne\",\n {\n \"this\": this,\n file,\n pattern\n }\n );\n }\n if (options8.matchBase && pattern.length === 1) {\n file = path13.basename(file.join(\"/\")).split(\"/\");\n }\n if (options8.debug) {\n console.error(\"matchOne\", file.length, pattern.length);\n }\n for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n if (options8.debug) {\n console.error(\"matchOne loop\");\n }\n var p = pattern[pi], f = file[fi];\n if (options8.debug) {\n console.error(pattern, p, f);\n }\n if (p === false) return false;\n if (p === GLOBSTAR) {\n if (options8.debug)\n console.error(\"GLOBSTAR\", [pattern, p, f]);\n var fr = fi, pr = pi + 1;\n if (pr === pl) {\n if (options8.debug)\n console.error(\"** at the end\");\n for (; fi < fl; fi++) {\n if (file[fi] === \".\" || file[fi] === \"..\" || !options8.dot && file[fi].charAt(0) === \".\") return false;\n }\n return true;\n }\n WHILE: while (fr < fl) {\n var swallowee = file[fr];\n if (options8.debug) {\n console.error(\n \"\\nglobstar while\",\n file,\n fr,\n pattern,\n pr,\n swallowee\n );\n }\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n if (options8.debug)\n console.error(\"globstar found match!\", fr, fl, swallowee);\n return true;\n } else {\n if (swallowee === \".\" || swallowee === \"..\" || !options8.dot && swallowee.charAt(0) === \".\") {\n if (options8.debug)\n console.error(\"dot detected!\", file, fr, pattern, pr);\n break WHILE;\n }\n if (options8.debug)\n console.error(\"globstar swallow a segment, and continue\");\n fr++;\n }\n }\n if (partial) {\n if (fr === fl) return true;\n }\n return false;\n }\n var hit;\n if (typeof p === \"string\") {\n if (options8.nocase) {\n hit = f.toLowerCase() === p.toLowerCase();\n } else {\n hit = f === p;\n }\n if (options8.debug) {\n console.error(\"string match\", p, f, hit);\n }\n } else {\n hit = f.match(p);\n if (options8.debug) {\n console.error(\"pattern match\", p, f, hit);\n }\n }\n if (!hit) return false;\n }\n if (fi === fl && pi === pl) {\n return true;\n } else if (fi === fl) {\n return partial;\n } else if (pi === pl) {\n var emptyFileEnd = fi === fl - 1 && file[fi] === \"\";\n return emptyFileEnd;\n }\n throw new Error(\"wtf?\");\n };\n function globUnescape(s) {\n return s.replace(/\\\\(.)/g, \"$1\");\n }\n function regExpEscape(s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n }\n }\n});\n\n// node_modules/editorconfig/src/lib/ini.js\nvar require_ini = __commonJS({\n \"node_modules/editorconfig/src/lib/ini.js\"(exports) {\n \"use strict\";\n var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function(resolve3, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve3(result.value) : new P(function(resolve4) {\n resolve4(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n var __generator = exports && exports.__generator || function(thisArg, body) {\n var _ = { label: 0, sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n };\n var __importStar = exports && exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fs7 = __importStar(__require(\"fs\"));\n var regex = {\n section: /^\\s*\\[(([^#;]|\\\\#|\\\\;)+)\\]\\s*([#;].*)?$/,\n param: /^\\s*([\\w\\.\\-\\_]+)\\s*[=:]\\s*(.*?)\\s*([#;].*)?$/,\n comment: /^\\s*[#;].*$/\n };\n function parse7(file) {\n return __awaiter(this, void 0, void 0, function() {\n return __generator(this, function(_a) {\n return [2, new Promise(function(resolve3, reject) {\n fs7.readFile(file, \"utf8\", function(err, data) {\n if (err) {\n reject(err);\n return;\n }\n resolve3(parseString2(data));\n });\n })];\n });\n });\n }\n exports.parse = parse7;\n function parseSync(file) {\n return parseString2(fs7.readFileSync(file, \"utf8\"));\n }\n exports.parseSync = parseSync;\n function parseString2(data) {\n var sectionBody = {};\n var sectionName = null;\n var value = [[sectionName, sectionBody]];\n var lines = data.split(/\\r\\n|\\r|\\n/);\n lines.forEach(function(line3) {\n var match;\n if (regex.comment.test(line3)) {\n return;\n }\n if (regex.param.test(line3)) {\n match = line3.match(regex.param);\n sectionBody[match[1]] = match[2];\n } else if (regex.section.test(line3)) {\n match = line3.match(regex.section);\n sectionName = match[1];\n sectionBody = {};\n value.push([sectionName, sectionBody]);\n }\n });\n return value;\n }\n exports.parseString = parseString2;\n }\n});\n\n// node_modules/editorconfig/package.json\nvar require_package = __commonJS({\n \"node_modules/editorconfig/package.json\"(exports, module) {\n module.exports = {\n name: \"editorconfig\",\n version: \"0.15.3\",\n description: \"EditorConfig File Locator and Interpreter for Node.js\",\n keywords: [\n \"editorconfig\",\n \"core\"\n ],\n main: \"src/index.js\",\n contributors: [\n \"Hong Xu (topbug.net)\",\n \"Jed Mao (https://github.com/jedmao/)\",\n \"Trey Hunner (http://treyhunner.com)\"\n ],\n directories: {\n bin: \"./bin\",\n lib: \"./lib\"\n },\n scripts: {\n clean: \"rimraf dist\",\n prebuild: \"npm run clean\",\n build: \"tsc\",\n pretest: \"npm run lint && npm run build && npm run copy && cmake .\",\n test: \"ctest .\",\n \"pretest:ci\": \"npm run pretest\",\n \"test:ci\": \"ctest -VV --output-on-failure .\",\n lint: \"npm run eclint && npm run tslint\",\n eclint: 'eclint check --indent_size ignore \"src/**\"',\n tslint: \"tslint --project tsconfig.json --exclude package.json\",\n copy: \"cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib\",\n prepub: \"npm run lint && npm run build && npm run copy\",\n pub: \"npm publish ./dist\"\n },\n repository: {\n type: \"git\",\n url: \"git://github.com/editorconfig/editorconfig-core-js.git\"\n },\n bugs: \"https://github.com/editorconfig/editorconfig-core-js/issues\",\n author: \"EditorConfig Team\",\n license: \"MIT\",\n dependencies: {\n commander: \"^2.19.0\",\n \"lru-cache\": \"^4.1.5\",\n semver: \"^5.6.0\",\n sigmund: \"^1.0.1\"\n },\n devDependencies: {\n \"@types/mocha\": \"^5.2.6\",\n \"@types/node\": \"^10.12.29\",\n \"@types/semver\": \"^5.5.0\",\n \"cpy-cli\": \"^2.0.0\",\n eclint: \"^2.8.1\",\n mocha: \"^5.2.0\",\n rimraf: \"^2.6.3\",\n should: \"^13.2.3\",\n tslint: \"^5.13.1\",\n typescript: \"^3.3.3333\"\n }\n };\n }\n});\n\n// node_modules/editorconfig/src/index.js\nvar require_src = __commonJS({\n \"node_modules/editorconfig/src/index.js\"(exports) {\n \"use strict\";\n var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function(resolve3, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve3(result.value) : new P(function(resolve4) {\n resolve4(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n var __generator = exports && exports.__generator || function(thisArg, body) {\n var _ = { label: 0, sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n };\n var __importStar = exports && exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n };\n var __importDefault = exports && exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fs7 = __importStar(__require(\"fs\"));\n var path13 = __importStar(__require(\"path\"));\n var semver = {\n gte: require_gte()\n };\n var fnmatch_1 = __importDefault(require_fnmatch());\n var ini_1 = require_ini();\n exports.parseString = ini_1.parseString;\n var package_json_1 = __importDefault(require_package());\n var knownProps = {\n end_of_line: true,\n indent_style: true,\n indent_size: true,\n insert_final_newline: true,\n trim_trailing_whitespace: true,\n charset: true\n };\n function fnmatch(filepath, glob) {\n var matchOptions = { matchBase: true, dot: true, noext: true };\n glob = glob.replace(/\\*\\*/g, \"{*,**/**/**}\");\n return fnmatch_1.default(filepath, glob, matchOptions);\n }\n function getConfigFileNames(filepath, options8) {\n var paths = [];\n do {\n filepath = path13.dirname(filepath);\n paths.push(path13.join(filepath, options8.config));\n } while (filepath !== options8.root);\n return paths;\n }\n function processMatches(matches, version) {\n if (\"indent_style\" in matches && matches.indent_style === \"tab\" && !(\"indent_size\" in matches) && semver.gte(version, \"0.10.0\")) {\n matches.indent_size = \"tab\";\n }\n if (\"indent_size\" in matches && !(\"tab_width\" in matches) && matches.indent_size !== \"tab\") {\n matches.tab_width = matches.indent_size;\n }\n if (\"indent_size\" in matches && \"tab_width\" in matches && matches.indent_size === \"tab\") {\n matches.indent_size = matches.tab_width;\n }\n return matches;\n }\n function processOptions(options8, filepath) {\n if (options8 === void 0) {\n options8 = {};\n }\n return {\n config: options8.config || \".editorconfig\",\n version: options8.version || package_json_1.default.version,\n root: path13.resolve(options8.root || path13.parse(filepath).root)\n };\n }\n function buildFullGlob(pathPrefix, glob) {\n switch (glob.indexOf(\"/\")) {\n case -1:\n glob = \"**/\" + glob;\n break;\n case 0:\n glob = glob.substring(1);\n break;\n default:\n break;\n }\n return path13.join(pathPrefix, glob);\n }\n function extendProps(props, options8) {\n if (props === void 0) {\n props = {};\n }\n if (options8 === void 0) {\n options8 = {};\n }\n for (var key2 in options8) {\n if (options8.hasOwnProperty(key2)) {\n var value = options8[key2];\n var key22 = key2.toLowerCase();\n var value2 = value;\n if (knownProps[key22]) {\n value2 = value.toLowerCase();\n }\n try {\n value2 = JSON.parse(value);\n } catch (e) {\n }\n if (typeof value === \"undefined\" || value === null) {\n value2 = String(value);\n }\n props[key22] = value2;\n }\n }\n return props;\n }\n function parseFromConfigs(configs, filepath, options8) {\n return processMatches(configs.reverse().reduce(function(matches, file) {\n var pathPrefix = path13.dirname(file.name);\n file.contents.forEach(function(section) {\n var glob = section[0];\n var options22 = section[1];\n if (!glob) {\n return;\n }\n var fullGlob = buildFullGlob(pathPrefix, glob);\n if (!fnmatch(filepath, fullGlob)) {\n return;\n }\n matches = extendProps(matches, options22);\n });\n return matches;\n }, {}), options8.version);\n }\n function getConfigsForFiles(files) {\n var configs = [];\n for (var i in files) {\n if (files.hasOwnProperty(i)) {\n var file = files[i];\n var contents = ini_1.parseString(file.contents);\n configs.push({\n name: file.name,\n contents\n });\n if ((contents[0][1].root || \"\").toLowerCase() === \"true\") {\n break;\n }\n }\n }\n return configs;\n }\n function readConfigFiles(filepaths) {\n return __awaiter(this, void 0, void 0, function() {\n return __generator(this, function(_a) {\n return [2, Promise.all(filepaths.map(function(name) {\n return new Promise(function(resolve3) {\n fs7.readFile(name, \"utf8\", function(err, data) {\n resolve3({\n name,\n contents: err ? \"\" : data\n });\n });\n });\n }))];\n });\n });\n }\n function readConfigFilesSync(filepaths) {\n var files = [];\n var file;\n filepaths.forEach(function(filepath) {\n try {\n file = fs7.readFileSync(filepath, \"utf8\");\n } catch (e) {\n file = \"\";\n }\n files.push({\n name: filepath,\n contents: file\n });\n });\n return files;\n }\n function opts(filepath, options8) {\n if (options8 === void 0) {\n options8 = {};\n }\n var resolvedFilePath = path13.resolve(filepath);\n return [\n resolvedFilePath,\n processOptions(options8, resolvedFilePath)\n ];\n }\n function parseFromFiles(filepath, files, options8) {\n if (options8 === void 0) {\n options8 = {};\n }\n return __awaiter(this, void 0, void 0, function() {\n var _a, resolvedFilePath, processedOptions;\n return __generator(this, function(_b) {\n _a = opts(filepath, options8), resolvedFilePath = _a[0], processedOptions = _a[1];\n return [2, files.then(getConfigsForFiles).then(function(configs) {\n return parseFromConfigs(configs, resolvedFilePath, processedOptions);\n })];\n });\n });\n }\n exports.parseFromFiles = parseFromFiles;\n function parseFromFilesSync(filepath, files, options8) {\n if (options8 === void 0) {\n options8 = {};\n }\n var _a = opts(filepath, options8), resolvedFilePath = _a[0], processedOptions = _a[1];\n return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions);\n }\n exports.parseFromFilesSync = parseFromFilesSync;\n function parse7(_filepath, _options) {\n if (_options === void 0) {\n _options = {};\n }\n return __awaiter(this, void 0, void 0, function() {\n var _a, resolvedFilePath, processedOptions, filepaths;\n return __generator(this, function(_b) {\n _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1];\n filepaths = getConfigFileNames(resolvedFilePath, processedOptions);\n return [2, readConfigFiles(filepaths).then(getConfigsForFiles).then(function(configs) {\n return parseFromConfigs(configs, resolvedFilePath, processedOptions);\n })];\n });\n });\n }\n exports.parse = parse7;\n function parseSync(_filepath, _options) {\n if (_options === void 0) {\n _options = {};\n }\n var _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1];\n var filepaths = getConfigFileNames(resolvedFilePath, processedOptions);\n var files = readConfigFilesSync(filepaths);\n return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions);\n }\n exports.parseSync = parseSync;\n }\n});\n\n// node_modules/ci-info/vendors.json\nvar require_vendors = __commonJS({\n \"node_modules/ci-info/vendors.json\"(exports, module) {\n module.exports = [\n {\n name: \"Agola CI\",\n constant: \"AGOLA\",\n env: \"AGOLA_GIT_REF\",\n pr: \"AGOLA_PULL_REQUEST_ID\"\n },\n {\n name: \"Appcircle\",\n constant: \"APPCIRCLE\",\n env: \"AC_APPCIRCLE\",\n pr: {\n env: \"AC_GIT_PR\",\n ne: \"false\"\n }\n },\n {\n name: \"AppVeyor\",\n constant: \"APPVEYOR\",\n env: \"APPVEYOR\",\n pr: \"APPVEYOR_PULL_REQUEST_NUMBER\"\n },\n {\n name: \"AWS CodeBuild\",\n constant: \"CODEBUILD\",\n env: \"CODEBUILD_BUILD_ARN\",\n pr: {\n env: \"CODEBUILD_WEBHOOK_EVENT\",\n any: [\n \"PULL_REQUEST_CREATED\",\n \"PULL_REQUEST_UPDATED\",\n \"PULL_REQUEST_REOPENED\"\n ]\n }\n },\n {\n name: \"Azure Pipelines\",\n constant: \"AZURE_PIPELINES\",\n env: \"TF_BUILD\",\n pr: {\n BUILD_REASON: \"PullRequest\"\n }\n },\n {\n name: \"Bamboo\",\n constant: \"BAMBOO\",\n env: \"bamboo_planKey\"\n },\n {\n name: \"Bitbucket Pipelines\",\n constant: \"BITBUCKET\",\n env: \"BITBUCKET_COMMIT\",\n pr: \"BITBUCKET_PR_ID\"\n },\n {\n name: \"Bitrise\",\n constant: \"BITRISE\",\n env: \"BITRISE_IO\",\n pr: \"BITRISE_PULL_REQUEST\"\n },\n {\n name: \"Buddy\",\n constant: \"BUDDY\",\n env: \"BUDDY_WORKSPACE_ID\",\n pr: \"BUDDY_EXECUTION_PULL_REQUEST_ID\"\n },\n {\n name: \"Buildkite\",\n constant: \"BUILDKITE\",\n env: \"BUILDKITE\",\n pr: {\n env: \"BUILDKITE_PULL_REQUEST\",\n ne: \"false\"\n }\n },\n {\n name: \"CircleCI\",\n constant: \"CIRCLE\",\n env: \"CIRCLECI\",\n pr: \"CIRCLE_PULL_REQUEST\"\n },\n {\n name: \"Cirrus CI\",\n constant: \"CIRRUS\",\n env: \"CIRRUS_CI\",\n pr: \"CIRRUS_PR\"\n },\n {\n name: \"Codefresh\",\n constant: \"CODEFRESH\",\n env: \"CF_BUILD_ID\",\n pr: {\n any: [\n \"CF_PULL_REQUEST_NUMBER\",\n \"CF_PULL_REQUEST_ID\"\n ]\n }\n },\n {\n name: \"Codemagic\",\n constant: \"CODEMAGIC\",\n env: \"CM_BUILD_ID\",\n pr: \"CM_PULL_REQUEST\"\n },\n {\n name: \"Codeship\",\n constant: \"CODESHIP\",\n env: {\n CI_NAME: \"codeship\"\n }\n },\n {\n name: \"Drone\",\n constant: \"DRONE\",\n env: \"DRONE\",\n pr: {\n DRONE_BUILD_EVENT: \"pull_request\"\n }\n },\n {\n name: \"dsari\",\n constant: \"DSARI\",\n env: \"DSARI\"\n },\n {\n name: \"Earthly\",\n constant: \"EARTHLY\",\n env: \"EARTHLY_CI\"\n },\n {\n name: \"Expo Application Services\",\n constant: \"EAS\",\n env: \"EAS_BUILD\"\n },\n {\n name: \"Gerrit\",\n constant: \"GERRIT\",\n env: \"GERRIT_PROJECT\"\n },\n {\n name: \"Gitea Actions\",\n constant: \"GITEA_ACTIONS\",\n env: \"GITEA_ACTIONS\"\n },\n {\n name: \"GitHub Actions\",\n constant: \"GITHUB_ACTIONS\",\n env: \"GITHUB_ACTIONS\",\n pr: {\n GITHUB_EVENT_NAME: \"pull_request\"\n }\n },\n {\n name: \"GitLab CI\",\n constant: \"GITLAB\",\n env: \"GITLAB_CI\",\n pr: \"CI_MERGE_REQUEST_ID\"\n },\n {\n name: \"GoCD\",\n constant: \"GOCD\",\n env: \"GO_PIPELINE_LABEL\"\n },\n {\n name: \"Google Cloud Build\",\n constant: \"GOOGLE_CLOUD_BUILD\",\n env: \"BUILDER_OUTPUT\"\n },\n {\n name: \"Harness CI\",\n constant: \"HARNESS\",\n env: \"HARNESS_BUILD_ID\"\n },\n {\n name: \"Heroku\",\n constant: \"HEROKU\",\n env: {\n env: \"NODE\",\n includes: \"/app/.heroku/node/bin/node\"\n }\n },\n {\n name: \"Hudson\",\n constant: \"HUDSON\",\n env: \"HUDSON_URL\"\n },\n {\n name: \"Jenkins\",\n constant: \"JENKINS\",\n env: [\n \"JENKINS_URL\",\n \"BUILD_ID\"\n ],\n pr: {\n any: [\n \"ghprbPullId\",\n \"CHANGE_ID\"\n ]\n }\n },\n {\n name: \"LayerCI\",\n constant: \"LAYERCI\",\n env: \"LAYERCI\",\n pr: \"LAYERCI_PULL_REQUEST\"\n },\n {\n name: \"Magnum CI\",\n constant: \"MAGNUM\",\n env: \"MAGNUM\"\n },\n {\n name: \"Netlify CI\",\n constant: \"NETLIFY\",\n env: \"NETLIFY\",\n pr: {\n env: \"PULL_REQUEST\",\n ne: \"false\"\n }\n },\n {\n name: \"Nevercode\",\n constant: \"NEVERCODE\",\n env: \"NEVERCODE\",\n pr: {\n env: \"NEVERCODE_PULL_REQUEST\",\n ne: \"false\"\n }\n },\n {\n name: \"Prow\",\n constant: \"PROW\",\n env: \"PROW_JOB_ID\"\n },\n {\n name: \"ReleaseHub\",\n constant: \"RELEASEHUB\",\n env: \"RELEASE_BUILD_ID\"\n },\n {\n name: \"Render\",\n constant: \"RENDER\",\n env: \"RENDER\",\n pr: {\n IS_PULL_REQUEST: \"true\"\n }\n },\n {\n name: \"Sail CI\",\n constant: \"SAIL\",\n env: \"SAILCI\",\n pr: \"SAIL_PULL_REQUEST_NUMBER\"\n },\n {\n name: \"Screwdriver\",\n constant: \"SCREWDRIVER\",\n env: \"SCREWDRIVER\",\n pr: {\n env: \"SD_PULL_REQUEST\",\n ne: \"false\"\n }\n },\n {\n name: \"Semaphore\",\n constant: \"SEMAPHORE\",\n env: \"SEMAPHORE\",\n pr: \"PULL_REQUEST_NUMBER\"\n },\n {\n name: \"Sourcehut\",\n constant: \"SOURCEHUT\",\n env: {\n CI_NAME: \"sourcehut\"\n }\n },\n {\n name: \"Strider CD\",\n constant: \"STRIDER\",\n env: \"STRIDER\"\n },\n {\n name: \"TaskCluster\",\n constant: \"TASKCLUSTER\",\n env: [\n \"TASK_ID\",\n \"RUN_ID\"\n ]\n },\n {\n name: \"TeamCity\",\n constant: \"TEAMCITY\",\n env: \"TEAMCITY_VERSION\"\n },\n {\n name: \"Travis CI\",\n constant: \"TRAVIS\",\n env: \"TRAVIS\",\n pr: {\n env: \"TRAVIS_PULL_REQUEST\",\n ne: \"false\"\n }\n },\n {\n name: \"Vela\",\n constant: \"VELA\",\n env: \"VELA\",\n pr: {\n VELA_PULL_REQUEST: \"1\"\n }\n },\n {\n name: \"Vercel\",\n constant: \"VERCEL\",\n env: {\n any: [\n \"NOW_BUILDER\",\n \"VERCEL\"\n ]\n },\n pr: \"VERCEL_GIT_PULL_REQUEST_ID\"\n },\n {\n name: \"Visual Studio App Center\",\n constant: \"APPCENTER\",\n env: \"APPCENTER_BUILD_ID\"\n },\n {\n name: \"Woodpecker\",\n constant: \"WOODPECKER\",\n env: {\n CI: \"woodpecker\"\n },\n pr: {\n CI_BUILD_EVENT: \"pull_request\"\n }\n },\n {\n name: \"Xcode Cloud\",\n constant: \"XCODE_CLOUD\",\n env: \"CI_XCODE_PROJECT\",\n pr: \"CI_PULL_REQUEST_NUMBER\"\n },\n {\n name: \"Xcode Server\",\n constant: \"XCODE_SERVER\",\n env: \"XCS\"\n }\n ];\n }\n});\n\n// node_modules/ci-info/index.js\nvar require_ci_info = __commonJS({\n \"node_modules/ci-info/index.js\"(exports) {\n \"use strict\";\n var vendors = require_vendors();\n var env2 = process.env;\n Object.defineProperty(exports, \"_vendors\", {\n value: vendors.map(function(v) {\n return v.constant;\n })\n });\n exports.name = null;\n exports.isPR = null;\n exports.id = null;\n vendors.forEach(function(vendor) {\n const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env];\n const isCI2 = envs.every(function(obj) {\n return checkEnv(obj);\n });\n exports[vendor.constant] = isCI2;\n if (!isCI2) {\n return;\n }\n exports.name = vendor.name;\n exports.isPR = checkPR(vendor);\n exports.id = vendor.constant;\n });\n exports.isCI = !!(env2.CI !== \"false\" && // Bypass all checks if CI env is explicitly set to 'false'\n (env2.BUILD_ID || // Jenkins, Cloudbees\n env2.BUILD_NUMBER || // Jenkins, TeamCity\n env2.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari\n env2.CI_APP_ID || // Appflow\n env2.CI_BUILD_ID || // Appflow\n env2.CI_BUILD_NUMBER || // Appflow\n env2.CI_NAME || // Codeship and others\n env2.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI\n env2.RUN_ID || // TaskCluster, dsari\n exports.name || false));\n function checkEnv(obj) {\n if (typeof obj === \"string\") return !!env2[obj];\n if (\"env\" in obj) {\n return env2[obj.env] && env2[obj.env].includes(obj.includes);\n }\n if (\"any\" in obj) {\n return obj.any.some(function(k) {\n return !!env2[k];\n });\n }\n return Object.keys(obj).every(function(k) {\n return env2[k] === obj[k];\n });\n }\n function checkPR(vendor) {\n switch (typeof vendor.pr) {\n case \"string\":\n return !!env2[vendor.pr];\n case \"object\":\n if (\"env\" in vendor.pr) {\n if (\"any\" in vendor.pr) {\n return vendor.pr.any.some(function(key2) {\n return env2[vendor.pr.env] === key2;\n });\n } else {\n return vendor.pr.env in env2 && env2[vendor.pr.env] !== vendor.pr.ne;\n }\n } else if (\"any\" in vendor.pr) {\n return vendor.pr.any.some(function(key2) {\n return !!env2[key2];\n });\n } else {\n return checkEnv(vendor.pr);\n }\n default:\n return null;\n }\n }\n }\n});\n\n// node_modules/picocolors/picocolors.js\nvar require_picocolors = __commonJS({\n \"node_modules/picocolors/picocolors.js\"(exports, module) {\n var p = process || {};\n var argv = p.argv || [];\n var env2 = p.env || {};\n var isColorSupported = !(!!env2.NO_COLOR || argv.includes(\"--no-color\")) && (!!env2.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || (p.stdout || {}).isTTY && env2.TERM !== \"dumb\" || !!env2.CI);\n var formatter = (open, close, replace = open) => (input) => {\n let string = \"\" + input, index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n var replaceClose = (string, close, replace, index) => {\n let result = \"\", cursor2 = 0;\n do {\n result += string.substring(cursor2, index) + replace;\n cursor2 = index + close.length;\n index = string.indexOf(close, cursor2);\n } while (~index);\n return result + string.substring(cursor2);\n };\n var createColors = (enabled = isColorSupported) => {\n let f = enabled ? formatter : () => String;\n return {\n isColorSupported: enabled,\n reset: f(\"\\x1B[0m\", \"\\x1B[0m\"),\n bold: f(\"\\x1B[1m\", \"\\x1B[22m\", \"\\x1B[22m\\x1B[1m\"),\n dim: f(\"\\x1B[2m\", \"\\x1B[22m\", \"\\x1B[22m\\x1B[2m\"),\n italic: f(\"\\x1B[3m\", \"\\x1B[23m\"),\n underline: f(\"\\x1B[4m\", \"\\x1B[24m\"),\n inverse: f(\"\\x1B[7m\", \"\\x1B[27m\"),\n hidden: f(\"\\x1B[8m\", \"\\x1B[28m\"),\n strikethrough: f(\"\\x1B[9m\", \"\\x1B[29m\"),\n black: f(\"\\x1B[30m\", \"\\x1B[39m\"),\n red: f(\"\\x1B[31m\", \"\\x1B[39m\"),\n green: f(\"\\x1B[32m\", \"\\x1B[39m\"),\n yellow: f(\"\\x1B[33m\", \"\\x1B[39m\"),\n blue: f(\"\\x1B[34m\", \"\\x1B[39m\"),\n magenta: f(\"\\x1B[35m\", \"\\x1B[39m\"),\n cyan: f(\"\\x1B[36m\", \"\\x1B[39m\"),\n white: f(\"\\x1B[37m\", \"\\x1B[39m\"),\n gray: f(\"\\x1B[90m\", \"\\x1B[39m\"),\n bgBlack: f(\"\\x1B[40m\", \"\\x1B[49m\"),\n bgRed: f(\"\\x1B[41m\", \"\\x1B[49m\"),\n bgGreen: f(\"\\x1B[42m\", \"\\x1B[49m\"),\n bgYellow: f(\"\\x1B[43m\", \"\\x1B[49m\"),\n bgBlue: f(\"\\x1B[44m\", \"\\x1B[49m\"),\n bgMagenta: f(\"\\x1B[45m\", \"\\x1B[49m\"),\n bgCyan: f(\"\\x1B[46m\", \"\\x1B[49m\"),\n bgWhite: f(\"\\x1B[47m\", \"\\x1B[49m\"),\n blackBright: f(\"\\x1B[90m\", \"\\x1B[39m\"),\n redBright: f(\"\\x1B[91m\", \"\\x1B[39m\"),\n greenBright: f(\"\\x1B[92m\", \"\\x1B[39m\"),\n yellowBright: f(\"\\x1B[93m\", \"\\x1B[39m\"),\n blueBright: f(\"\\x1B[94m\", \"\\x1B[39m\"),\n magentaBright: f(\"\\x1B[95m\", \"\\x1B[39m\"),\n cyanBright: f(\"\\x1B[96m\", \"\\x1B[39m\"),\n whiteBright: f(\"\\x1B[97m\", \"\\x1B[39m\"),\n bgBlackBright: f(\"\\x1B[100m\", \"\\x1B[49m\"),\n bgRedBright: f(\"\\x1B[101m\", \"\\x1B[49m\"),\n bgGreenBright: f(\"\\x1B[102m\", \"\\x1B[49m\"),\n bgYellowBright: f(\"\\x1B[103m\", \"\\x1B[49m\"),\n bgBlueBright: f(\"\\x1B[104m\", \"\\x1B[49m\"),\n bgMagentaBright: f(\"\\x1B[105m\", \"\\x1B[49m\"),\n bgCyanBright: f(\"\\x1B[106m\", \"\\x1B[49m\"),\n bgWhiteBright: f(\"\\x1B[107m\", \"\\x1B[49m\")\n };\n };\n module.exports = createColors();\n module.exports.createColors = createColors;\n }\n});\n\n// node_modules/js-tokens/index.js\nvar require_js_tokens = __commonJS({\n \"node_modules/js-tokens/index.js\"(exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = /((['\"])(?:(?!\\2|\\\\).|\\\\(?:\\r\\n|[\\s\\S]))*(\\2)?|`(?:[^`\\\\$]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{[^}]*\\}?)*\\}?)*(`)?)|(\\/\\/.*)|(\\/\\*(?:[^*]|\\*(?!\\/))*(\\*\\/)?)|(\\/(?!\\*)(?:\\[(?:(?![\\]\\\\]).|\\\\.)*\\]|(?![\\/\\]\\\\]).|\\\\.)+\\/(?:(?!\\s*(?:\\b|[\\u0080-\\uFFFF$\\\\'\"~({]|[+\\-!](?!=)|\\.?\\d))|[gmiyus]{1,6}\\b(?![\\u0080-\\uFFFF$\\\\]|\\s*(?:[+\\-*%&|^<>!=?({]|\\/(?![\\/*])))))|(0[xX][\\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?)|((?!\\d)(?:(?!\\s)[$\\w\\u0080-\\uFFFF]|\\\\u[\\da-fA-F]{4}|\\\\u\\{[\\da-fA-F]+\\})+)|(--|\\+\\+|&&|\\|\\||=>|\\.{3}|(?:[+\\-\\/%&|^]|\\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\\](){}])|(\\s+)|(^$|[\\s\\S])/g;\n exports.matchToToken = function(match) {\n var token2 = { type: \"invalid\", value: match[0], closed: void 0 };\n if (match[1]) token2.type = \"string\", token2.closed = !!(match[3] || match[4]);\n else if (match[5]) token2.type = \"comment\";\n else if (match[6]) token2.type = \"comment\", token2.closed = !!match[7];\n else if (match[8]) token2.type = \"regex\";\n else if (match[9]) token2.type = \"number\";\n else if (match[10]) token2.type = \"name\";\n else if (match[11]) token2.type = \"punctuator\";\n else if (match[12]) token2.type = \"whitespace\";\n return token2;\n };\n }\n});\n\n// node_modules/@babel/helper-validator-identifier/lib/identifier.js\nvar require_identifier = __commonJS({\n \"node_modules/@babel/helper-validator-identifier/lib/identifier.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isIdentifierChar = isIdentifierChar;\n exports.isIdentifierName = isIdentifierName;\n exports.isIdentifierStart = isIdentifierStart;\n var nonASCIIidentifierStartChars = \"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CD\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7DC\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\";\n var nonASCIIidentifierChars = \"\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0897-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\u30FB\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\\uFF65\";\n var nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\n var nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];\n var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n function isInAstralSet(code, set2) {\n let pos2 = 65536;\n for (let i = 0, length = set2.length; i < length; i += 2) {\n pos2 += set2[i];\n if (pos2 > code) return false;\n pos2 += set2[i + 1];\n if (pos2 >= code) return true;\n }\n return false;\n }\n function isIdentifierStart(code) {\n if (code < 65) return code === 36;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 65535) {\n return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n }\n function isIdentifierChar(code) {\n if (code < 48) return code === 36;\n if (code < 58) return true;\n if (code < 65) return false;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 65535) {\n return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\n }\n function isIdentifierName(name) {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n let cp = name.charCodeAt(i);\n if ((cp & 64512) === 55296 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 64512) === 56320) {\n cp = 65536 + ((cp & 1023) << 10) + (trail & 1023);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n }\n }\n});\n\n// node_modules/@babel/helper-validator-identifier/lib/keyword.js\nvar require_keyword = __commonJS({\n \"node_modules/@babel/helper-validator-identifier/lib/keyword.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isKeyword = isKeyword;\n exports.isReservedWord = isReservedWord;\n exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;\n exports.isStrictBindReservedWord = isStrictBindReservedWord;\n exports.isStrictReservedWord = isStrictReservedWord;\n var reservedWords = {\n keyword: [\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\"],\n strict: [\"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\"],\n strictBind: [\"eval\", \"arguments\"]\n };\n var keywords = new Set(reservedWords.keyword);\n var reservedWordsStrictSet = new Set(reservedWords.strict);\n var reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n function isReservedWord(word, inModule) {\n return inModule && word === \"await\" || word === \"enum\";\n }\n function isStrictReservedWord(word, inModule) {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n }\n function isStrictBindOnlyReservedWord(word) {\n return reservedWordsStrictBindSet.has(word);\n }\n function isStrictBindReservedWord(word, inModule) {\n return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);\n }\n function isKeyword(word) {\n return keywords.has(word);\n }\n }\n});\n\n// node_modules/@babel/helper-validator-identifier/lib/index.js\nvar require_lib = __commonJS({\n \"node_modules/@babel/helper-validator-identifier/lib/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(exports, \"isIdentifierChar\", {\n enumerable: true,\n get: function() {\n return _identifier.isIdentifierChar;\n }\n });\n Object.defineProperty(exports, \"isIdentifierName\", {\n enumerable: true,\n get: function() {\n return _identifier.isIdentifierName;\n }\n });\n Object.defineProperty(exports, \"isIdentifierStart\", {\n enumerable: true,\n get: function() {\n return _identifier.isIdentifierStart;\n }\n });\n Object.defineProperty(exports, \"isKeyword\", {\n enumerable: true,\n get: function() {\n return _keyword.isKeyword;\n }\n });\n Object.defineProperty(exports, \"isReservedWord\", {\n enumerable: true,\n get: function() {\n return _keyword.isReservedWord;\n }\n });\n Object.defineProperty(exports, \"isStrictBindOnlyReservedWord\", {\n enumerable: true,\n get: function() {\n return _keyword.isStrictBindOnlyReservedWord;\n }\n });\n Object.defineProperty(exports, \"isStrictBindReservedWord\", {\n enumerable: true,\n get: function() {\n return _keyword.isStrictBindReservedWord;\n }\n });\n Object.defineProperty(exports, \"isStrictReservedWord\", {\n enumerable: true,\n get: function() {\n return _keyword.isStrictReservedWord;\n }\n });\n var _identifier = require_identifier();\n var _keyword = require_keyword();\n }\n});\n\n// node_modules/@babel/code-frame/lib/index.js\nvar require_lib2 = __commonJS({\n \"node_modules/@babel/code-frame/lib/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var picocolors = require_picocolors();\n var jsTokens = require_js_tokens();\n var helperValidatorIdentifier = require_lib();\n function isColorSupported() {\n return typeof process === \"object\" && (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\") ? false : picocolors.isColorSupported;\n }\n var compose = (f, g) => (v) => f(g(v));\n function buildDefs(colors) {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n reset: colors.reset\n };\n }\n var defsOn = buildDefs(picocolors.createColors(true));\n var defsOff = buildDefs(picocolors.createColors(false));\n function getDefs(enabled) {\n return enabled ? defsOn : defsOff;\n }\n var sometimesKeywords = /* @__PURE__ */ new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n var NEWLINE$1 = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n var BRACKET = /^[()[\\]{}]$/;\n var tokenize2;\n {\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n const getTokenType = function(token2, offset, text) {\n if (token2.type === \"name\") {\n if (helperValidatorIdentifier.isKeyword(token2.value) || helperValidatorIdentifier.isStrictReservedWord(token2.value, true) || sometimesKeywords.has(token2.value)) {\n return \"keyword\";\n }\n if (JSX_TAG.test(token2.value) && (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \" defs[type2](str2)).join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n return highlighted;\n }\n var deprecationWarningShown = false;\n var NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n function getMarkerLines(loc, source2, opts) {\n const startLoc = Object.assign({\n column: 0,\n line: -1\n }, loc.start);\n const endLoc = Object.assign({}, startLoc, loc.end);\n const {\n linesAbove = 2,\n linesBelow = 3\n } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source2.length, endLine + linesBelow);\n if (startLine === -1) {\n start = 0;\n }\n if (endLine === -1) {\n end = source2.length;\n }\n const lineDiff2 = endLine - startLine;\n const markerLines = {};\n if (lineDiff2) {\n for (let i = 0; i <= lineDiff2; i++) {\n const lineNumber = i + startLine;\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source2[lineNumber - 1].length;\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff2) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source2[lineNumber - i].length;\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n return {\n start,\n end,\n markerLines\n };\n }\n function codeFrameColumns3(rawLines, loc, opts = {}) {\n const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;\n const defs = getDefs(shouldHighlight);\n const lines = rawLines.split(NEWLINE);\n const {\n start,\n end,\n markerLines\n } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n const numberMaxWidth = String(end).length;\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line3, index2) => {\n const number = start + 1 + index2;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line3.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n markerLine = [\"\\n \", defs.gutter(gutter.replace(/\\d/g, \" \")), \" \", markerSpacing, defs.marker(\"^\").repeat(numberOfMarkers)].join(\"\");\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [defs.marker(\">\"), defs.gutter(gutter), line3.length > 0 ? ` ${line3}` : \"\", markerLine].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line3.length > 0 ? ` ${line3}` : \"\"}`;\n }\n }).join(\"\\n\");\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;\n }\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n }\n function index(rawLines, lineNumber, colNumber, opts = {}) {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n const message = \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n if (process.emitWarning) {\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n colNumber = Math.max(colNumber, 0);\n const location = {\n start: {\n column: colNumber,\n line: lineNumber\n }\n };\n return codeFrameColumns3(rawLines, location, opts);\n }\n exports.codeFrameColumns = codeFrameColumns3;\n exports.default = index;\n exports.highlight = highlight;\n }\n});\n\n// node_modules/ignore/index.js\nvar require_ignore = __commonJS({\n \"node_modules/ignore/index.js\"(exports, module) {\n function makeArray(subject) {\n return Array.isArray(subject) ? subject : [subject];\n }\n var EMPTY = \"\";\n var SPACE = \" \";\n var ESCAPE = \"\\\\\";\n var REGEX_TEST_BLANK_LINE = /^\\s+$/;\n var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/;\n var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/;\n var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/;\n var REGEX_SPLITALL_CRLF = /\\r?\\n/g;\n var REGEX_TEST_INVALID_PATH = /^\\.*\\/|^\\.+$/;\n var SLASH = \"/\";\n var TMP_KEY_IGNORE = \"node-ignore\";\n if (typeof Symbol !== \"undefined\") {\n TMP_KEY_IGNORE = Symbol.for(\"node-ignore\");\n }\n var KEY_IGNORE = TMP_KEY_IGNORE;\n var define = (object, key2, value) => Object.defineProperty(object, key2, { value });\n var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;\n var RETURN_FALSE = () => false;\n var sanitizeRange = (range) => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY\n );\n var cleanRangeBackSlash = (slashes) => {\n const { length } = slashes;\n return slashes.slice(0, length - length % 2);\n };\n var REPLACERS = [\n [\n // remove BOM\n // TODO:\n // Other similar zero-width characters?\n /^\\uFEFF/,\n () => EMPTY\n ],\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /((?:\\\\\\\\)*?)(\\\\?\\s+)$/,\n (_, m1, m2) => m1 + (m2.indexOf(\"\\\\\") === 0 ? SPACE : EMPTY)\n ],\n // replace (\\ ) with ' '\n // (\\ ) -> ' '\n // (\\\\ ) -> '\\\\ '\n // (\\\\\\ ) -> '\\\\ '\n [\n /(\\\\+?)\\s/g,\n (_, m1) => {\n const { length } = m1;\n return m1.slice(0, length - length % 2) + SPACE;\n }\n ],\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n (match) => `\\\\${match}`\n ],\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => \"[^/]\"\n ],\n // leading slash\n [\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => \"^\"\n ],\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => \"\\\\/\"\n ],\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n // '**/foo' <-> 'foo'\n () => \"^(?:.*\\\\/)?\"\n ],\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer() {\n return !/\\/(?!$)/.test(this) ? \"(?:^|\\\\/)\" : \"^\";\n }\n ],\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n // Check if it is not the last `'/**'`\n (_, index, str2) => index + 6 < str2.length ? \"(?:\\\\/[^\\\\/]+)*\" : \"\\\\/.+\"\n ],\n // normal intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule,\n // coz trailing single wildcard will be handed by [trailing wildcard]\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1, p2) => {\n const unescaped = p2.replace(/\\\\\\*/g, \"[^\\\\/]*\");\n return p1 + unescaped;\n }\n ],\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === \"]\" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : \"[]\" : \"[]\"\n ],\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n (match) => /\\/$/.test(match) ? `${match}$` : `${match}(?=$|\\\\/$)`\n ],\n // trailing wildcard\n [\n /(\\^|\\\\\\/)?\\\\\\*$/,\n (_, p1) => {\n const prefix = p1 ? `${p1}[^/]+` : \"[^/]*\";\n return `${prefix}(?=$|\\\\/$)`;\n }\n ]\n ];\n var regexCache = /* @__PURE__ */ Object.create(null);\n var makeRegex = (pattern, ignoreCase) => {\n let source2 = regexCache[pattern];\n if (!source2) {\n source2 = REPLACERS.reduce(\n (prev, [matcher, replacer]) => prev.replace(matcher, replacer.bind(pattern)),\n pattern\n );\n regexCache[pattern] = source2;\n }\n return ignoreCase ? new RegExp(source2, \"i\") : new RegExp(source2);\n };\n var isString = (subject) => typeof subject === \"string\";\n var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf(\"#\") !== 0;\n var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF);\n var IgnoreRule = class {\n constructor(origin, pattern, negative, regex) {\n this.origin = origin;\n this.pattern = pattern;\n this.negative = negative;\n this.regex = regex;\n }\n };\n var createRule = (pattern, ignoreCase) => {\n const origin = pattern;\n let negative = false;\n if (pattern.indexOf(\"!\") === 0) {\n negative = true;\n pattern = pattern.substr(1);\n }\n pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, \"!\").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, \"#\");\n const regex = makeRegex(pattern, ignoreCase);\n return new IgnoreRule(\n origin,\n pattern,\n negative,\n regex\n );\n };\n var throwError2 = (message, Ctor) => {\n throw new Ctor(message);\n };\n var checkPath = (path13, originalPath, doThrow) => {\n if (!isString(path13)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n );\n }\n if (!path13) {\n return doThrow(`path must not be empty`, TypeError);\n }\n if (checkPath.isNotRelative(path13)) {\n const r = \"`path.relative()`d\";\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n );\n }\n return true;\n };\n var isNotRelative = (path13) => REGEX_TEST_INVALID_PATH.test(path13);\n checkPath.isNotRelative = isNotRelative;\n checkPath.convert = (p) => p;\n var Ignore = class {\n constructor({\n ignorecase = true,\n ignoreCase = ignorecase,\n allowRelativePaths = false\n } = {}) {\n define(this, KEY_IGNORE, true);\n this._rules = [];\n this._ignoreCase = ignoreCase;\n this._allowRelativePaths = allowRelativePaths;\n this._initCache();\n }\n _initCache() {\n this._ignoreCache = /* @__PURE__ */ Object.create(null);\n this._testCache = /* @__PURE__ */ Object.create(null);\n }\n _addPattern(pattern) {\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules);\n this._added = true;\n return;\n }\n if (checkPattern(pattern)) {\n const rule = createRule(pattern, this._ignoreCase);\n this._added = true;\n this._rules.push(rule);\n }\n }\n // @param {Array | string | Ignore} pattern\n add(pattern) {\n this._added = false;\n makeArray(\n isString(pattern) ? splitPattern(pattern) : pattern\n ).forEach(this._addPattern, this);\n if (this._added) {\n this._initCache();\n }\n return this;\n }\n // legacy\n addPattern(pattern) {\n return this.add(pattern);\n }\n // | ignored : unignored\n // negative | 0:0 | 0:1 | 1:0 | 1:1\n // -------- | ------- | ------- | ------- | --------\n // 0 | TEST | TEST | SKIP | X\n // 1 | TESTIF | SKIP | TEST | X\n // - SKIP: always skip\n // - TEST: always test\n // - TESTIF: only test if checkUnignored\n // - X: that never happen\n // @param {boolean} whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n // @returns {TestResult} true if a file is ignored\n _testOne(path13, checkUnignored) {\n let ignored = false;\n let unignored = false;\n this._rules.forEach((rule) => {\n const { negative } = rule;\n if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {\n return;\n }\n const matched = rule.regex.test(path13);\n if (matched) {\n ignored = !negative;\n unignored = negative;\n }\n });\n return {\n ignored,\n unignored\n };\n }\n // @returns {TestResult}\n _test(originalPath, cache3, checkUnignored, slices) {\n const path13 = originalPath && checkPath.convert(originalPath);\n checkPath(\n path13,\n originalPath,\n this._allowRelativePaths ? RETURN_FALSE : throwError2\n );\n return this._t(path13, cache3, checkUnignored, slices);\n }\n _t(path13, cache3, checkUnignored, slices) {\n if (path13 in cache3) {\n return cache3[path13];\n }\n if (!slices) {\n slices = path13.split(SLASH);\n }\n slices.pop();\n if (!slices.length) {\n return cache3[path13] = this._testOne(path13, checkUnignored);\n }\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache3,\n checkUnignored,\n slices\n );\n return cache3[path13] = parent.ignored ? parent : this._testOne(path13, checkUnignored);\n }\n ignores(path13) {\n return this._test(path13, this._ignoreCache, false).ignored;\n }\n createFilter() {\n return (path13) => !this.ignores(path13);\n }\n filter(paths) {\n return makeArray(paths).filter(this.createFilter());\n }\n // @returns {TestResult}\n test(path13) {\n return this._test(path13, this._testCache, true);\n }\n };\n var factory = (options8) => new Ignore(options8);\n var isPathValid = (path13) => checkPath(path13 && checkPath.convert(path13), path13, RETURN_FALSE);\n factory.isPathValid = isPathValid;\n factory.default = factory;\n module.exports = factory;\n if (\n // Detect `process` so that it can run in browsers.\n typeof process !== \"undefined\" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === \"win32\")\n ) {\n const makePosix = (str2) => /^\\\\\\\\\\?\\\\/.test(str2) || /[\"<>|\\u0000-\\u001F]+/u.test(str2) ? str2 : str2.replace(/\\\\/g, \"/\");\n checkPath.convert = makePosix;\n const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i;\n checkPath.isNotRelative = (path13) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path13) || isNotRelative(path13);\n }\n }\n});\n\n// node_modules/n-readlines/readlines.js\nvar require_readlines = __commonJS({\n \"node_modules/n-readlines/readlines.js\"(exports, module) {\n \"use strict\";\n var fs7 = __require(\"fs\");\n var LineByLine = class {\n constructor(file, options8) {\n options8 = options8 || {};\n if (!options8.readChunk) options8.readChunk = 1024;\n if (!options8.newLineCharacter) {\n options8.newLineCharacter = 10;\n } else {\n options8.newLineCharacter = options8.newLineCharacter.charCodeAt(0);\n }\n if (typeof file === \"number\") {\n this.fd = file;\n } else {\n this.fd = fs7.openSync(file, \"r\");\n }\n this.options = options8;\n this.newLineCharacter = options8.newLineCharacter;\n this.reset();\n }\n _searchInBuffer(buffer2, hexNeedle) {\n let found = -1;\n for (let i = 0; i <= buffer2.length; i++) {\n let b_byte = buffer2[i];\n if (b_byte === hexNeedle) {\n found = i;\n break;\n }\n }\n return found;\n }\n reset() {\n this.eofReached = false;\n this.linesCache = [];\n this.fdPosition = 0;\n }\n close() {\n fs7.closeSync(this.fd);\n this.fd = null;\n }\n _extractLines(buffer2) {\n let line3;\n const lines = [];\n let bufferPosition = 0;\n let lastNewLineBufferPosition = 0;\n while (true) {\n let bufferPositionValue = buffer2[bufferPosition++];\n if (bufferPositionValue === this.newLineCharacter) {\n line3 = buffer2.slice(lastNewLineBufferPosition, bufferPosition);\n lines.push(line3);\n lastNewLineBufferPosition = bufferPosition;\n } else if (bufferPositionValue === void 0) {\n break;\n }\n }\n let leftovers = buffer2.slice(lastNewLineBufferPosition, bufferPosition);\n if (leftovers.length) {\n lines.push(leftovers);\n }\n return lines;\n }\n _readChunk(lineLeftovers) {\n let totalBytesRead = 0;\n let bytesRead;\n const buffers = [];\n do {\n const readBuffer = Buffer.alloc(this.options.readChunk);\n bytesRead = fs7.readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition);\n totalBytesRead = totalBytesRead + bytesRead;\n this.fdPosition = this.fdPosition + bytesRead;\n buffers.push(readBuffer);\n } while (bytesRead && this._searchInBuffer(buffers[buffers.length - 1], this.options.newLineCharacter) === -1);\n let bufferData = Buffer.concat(buffers);\n if (bytesRead < this.options.readChunk) {\n this.eofReached = true;\n bufferData = bufferData.slice(0, totalBytesRead);\n }\n if (totalBytesRead) {\n this.linesCache = this._extractLines(bufferData);\n if (lineLeftovers) {\n this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]);\n }\n }\n return totalBytesRead;\n }\n next() {\n if (!this.fd) return false;\n let line3 = false;\n if (this.eofReached && this.linesCache.length === 0) {\n return line3;\n }\n let bytesRead;\n if (!this.linesCache.length) {\n bytesRead = this._readChunk();\n }\n if (this.linesCache.length) {\n line3 = this.linesCache.shift();\n const lastLineCharacter = line3[line3.length - 1];\n if (lastLineCharacter !== this.newLineCharacter) {\n bytesRead = this._readChunk(line3);\n if (bytesRead) {\n line3 = this.linesCache.shift();\n }\n }\n }\n if (this.eofReached && this.linesCache.length === 0) {\n this.close();\n }\n if (line3 && line3[line3.length - 1] === this.newLineCharacter) {\n line3 = line3.slice(0, line3.length - 1);\n }\n return line3;\n }\n };\n module.exports = LineByLine;\n }\n});\n\n// src/index.js\nvar src_exports = {};\n__export(src_exports, {\n __debug: () => debugApis,\n __internal: () => sharedWithCli,\n check: () => check,\n clearConfigCache: () => clearCache3,\n doc: () => doc,\n format: () => format2,\n formatWithCursor: () => formatWithCursor2,\n getFileInfo: () => getFileInfo2,\n getSupportInfo: () => getSupportInfo2,\n resolveConfig: () => resolveConfig,\n resolveConfigFile: () => resolveConfigFile,\n util: () => public_exports,\n version: () => version_evaluate_default\n});\n\n// node_modules/diff/lib/index.mjs\nfunction Diff() {\n}\nDiff.prototype = {\n diff: function diff(oldString, newString) {\n var _options$timeout;\n var options8 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var callback = options8.callback;\n if (typeof options8 === \"function\") {\n callback = options8;\n options8 = {};\n }\n var self = this;\n function done(value) {\n value = self.postProcess(value, options8);\n if (callback) {\n setTimeout(function() {\n callback(value);\n }, 0);\n return true;\n } else {\n return value;\n }\n }\n oldString = this.castInput(oldString, options8);\n newString = this.castInput(newString, options8);\n oldString = this.removeEmpty(this.tokenize(oldString, options8));\n newString = this.removeEmpty(this.tokenize(newString, options8));\n var newLen = newString.length, oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n if (options8.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options8.maxEditLength);\n }\n var maxExecutionTime = (_options$timeout = options8.timeout) !== null && _options$timeout !== void 0 ? _options$timeout : Infinity;\n var abortAfterTimestamp = Date.now() + maxExecutionTime;\n var bestPath = [{\n oldPos: -1,\n lastComponent: void 0\n }];\n var newPos = this.extractCommon(bestPath[0], newString, oldString, 0, options8);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n return done(buildValues(self, bestPath[0].lastComponent, newString, oldString, self.useLongestToken));\n }\n var minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n function execEditLength() {\n for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n var basePath = void 0;\n var removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n bestPath[diagonalPath - 1] = void 0;\n }\n var canAdd = false;\n if (addPath) {\n var addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n var canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n bestPath[diagonalPath] = void 0;\n continue;\n }\n if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) {\n basePath = self.addToPath(addPath, true, false, 0, options8);\n } else {\n basePath = self.addToPath(removePath, false, true, 1, options8);\n }\n newPos = self.extractCommon(basePath, newString, oldString, diagonalPath, options8);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n return done(buildValues(self, basePath.lastComponent, newString, oldString, self.useLongestToken));\n } else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n }\n if (callback) {\n (function exec() {\n setTimeout(function() {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback();\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n var ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n },\n addToPath: function addToPath(path13, added, removed, oldPosInc, options8) {\n var last = path13.lastComponent;\n if (last && !options8.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path13.oldPos + oldPosInc,\n lastComponent: {\n count: last.count + 1,\n added,\n removed,\n previousComponent: last.previousComponent\n }\n };\n } else {\n return {\n oldPos: path13.oldPos + oldPosInc,\n lastComponent: {\n count: 1,\n added,\n removed,\n previousComponent: last\n }\n };\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath, options8) {\n var newLen = newString.length, oldLen = oldString.length, oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldString[oldPos + 1], newString[newPos + 1], options8)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options8.oneChangePerToken) {\n basePath.lastComponent = {\n count: 1,\n previousComponent: basePath.lastComponent,\n added: false,\n removed: false\n };\n }\n }\n if (commonCount && !options8.oneChangePerToken) {\n basePath.lastComponent = {\n count: commonCount,\n previousComponent: basePath.lastComponent,\n added: false,\n removed: false\n };\n }\n basePath.oldPos = oldPos;\n return newPos;\n },\n equals: function equals(left, right, options8) {\n if (options8.comparator) {\n return options8.comparator(left, right);\n } else {\n return left === right || options8.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array2) {\n var ret = [];\n for (var i = 0; i < array2.length; i++) {\n if (array2[i]) {\n ret.push(array2[i]);\n }\n }\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return Array.from(value);\n },\n join: function join(chars) {\n return chars.join(\"\");\n },\n postProcess: function postProcess(changeObjects) {\n return changeObjects;\n }\n};\nfunction buildValues(diff2, lastComponent, newString, oldString, useLongestToken) {\n var components = [];\n var nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function(value2, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value2.length ? oldValue : value2;\n });\n component.value = diff2.join(value);\n } else {\n component.value = diff2.join(newString.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff2.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n}\nvar characterDiff = new Diff();\nfunction longestCommonPrefix(str1, str2) {\n var i;\n for (i = 0; i < str1.length && i < str2.length; i++) {\n if (str1[i] != str2[i]) {\n return str1.slice(0, i);\n }\n }\n return str1.slice(0, i);\n}\nfunction longestCommonSuffix(str1, str2) {\n var i;\n if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {\n return \"\";\n }\n for (i = 0; i < str1.length && i < str2.length; i++) {\n if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) {\n return str1.slice(-i);\n }\n }\n return str1.slice(-i);\n}\nfunction replacePrefix(string, oldPrefix, newPrefix) {\n if (string.slice(0, oldPrefix.length) != oldPrefix) {\n throw Error(\"string \".concat(JSON.stringify(string), \" doesn't start with prefix \").concat(JSON.stringify(oldPrefix), \"; this is a bug\"));\n }\n return newPrefix + string.slice(oldPrefix.length);\n}\nfunction replaceSuffix(string, oldSuffix, newSuffix) {\n if (!oldSuffix) {\n return string + newSuffix;\n }\n if (string.slice(-oldSuffix.length) != oldSuffix) {\n throw Error(\"string \".concat(JSON.stringify(string), \" doesn't end with suffix \").concat(JSON.stringify(oldSuffix), \"; this is a bug\"));\n }\n return string.slice(0, -oldSuffix.length) + newSuffix;\n}\nfunction removePrefix(string, oldPrefix) {\n return replacePrefix(string, oldPrefix, \"\");\n}\nfunction removeSuffix(string, oldSuffix) {\n return replaceSuffix(string, oldSuffix, \"\");\n}\nfunction maximumOverlap(string1, string2) {\n return string2.slice(0, overlapCount(string1, string2));\n}\nfunction overlapCount(a, b) {\n var startA = 0;\n if (a.length > b.length) {\n startA = a.length - b.length;\n }\n var endB = b.length;\n if (a.length < b.length) {\n endB = a.length;\n }\n var map2 = Array(endB);\n var k = 0;\n map2[0] = 0;\n for (var j = 1; j < endB; j++) {\n if (b[j] == b[k]) {\n map2[j] = map2[k];\n } else {\n map2[j] = k;\n }\n while (k > 0 && b[j] != b[k]) {\n k = map2[k];\n }\n if (b[j] == b[k]) {\n k++;\n }\n }\n k = 0;\n for (var i = startA; i < a.length; i++) {\n while (k > 0 && a[i] != b[k]) {\n k = map2[k];\n }\n if (a[i] == b[k]) {\n k++;\n }\n }\n return k;\n}\nvar extendedWordChars = \"a-zA-Z0-9_\\\\u{C0}-\\\\u{FF}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}\";\nvar tokenizeIncludingWhitespace = new RegExp(\"[\".concat(extendedWordChars, \"]+|\\\\s+|[^\").concat(extendedWordChars, \"]\"), \"ug\");\nvar wordDiff = new Diff();\nwordDiff.equals = function(left, right, options8) {\n if (options8.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n return left.trim() === right.trim();\n};\nwordDiff.tokenize = function(value) {\n var options8 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var parts;\n if (options8.intlSegmenter) {\n if (options8.intlSegmenter.resolvedOptions().granularity != \"word\") {\n throw new Error('The segmenter passed must have a granularity of \"word\"');\n }\n parts = Array.from(options8.intlSegmenter.segment(value), function(segment) {\n return segment.segment;\n });\n } else {\n parts = value.match(tokenizeIncludingWhitespace) || [];\n }\n var tokens = [];\n var prevPart = null;\n parts.forEach(function(part) {\n if (/\\s/.test(part)) {\n if (prevPart == null) {\n tokens.push(part);\n } else {\n tokens.push(tokens.pop() + part);\n }\n } else if (/\\s/.test(prevPart)) {\n if (tokens[tokens.length - 1] == prevPart) {\n tokens.push(tokens.pop() + part);\n } else {\n tokens.push(prevPart + part);\n }\n } else {\n tokens.push(part);\n }\n prevPart = part;\n });\n return tokens;\n};\nwordDiff.join = function(tokens) {\n return tokens.map(function(token2, i) {\n if (i == 0) {\n return token2;\n } else {\n return token2.replace(/^\\s+/, \"\");\n }\n }).join(\"\");\n};\nwordDiff.postProcess = function(changes, options8) {\n if (!changes || options8.oneChangePerToken) {\n return changes;\n }\n var lastKeep = null;\n var insertion = null;\n var deletion = null;\n changes.forEach(function(change) {\n if (change.added) {\n insertion = change;\n } else if (change.removed) {\n deletion = change;\n } else {\n if (insertion || deletion) {\n dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change);\n }\n lastKeep = change;\n insertion = null;\n deletion = null;\n }\n });\n if (insertion || deletion) {\n dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null);\n }\n return changes;\n};\nfunction dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep) {\n if (deletion && insertion) {\n var oldWsPrefix = deletion.value.match(/^\\s*/)[0];\n var oldWsSuffix = deletion.value.match(/\\s*$/)[0];\n var newWsPrefix = insertion.value.match(/^\\s*/)[0];\n var newWsSuffix = insertion.value.match(/\\s*$/)[0];\n if (startKeep) {\n var commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);\n startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);\n deletion.value = removePrefix(deletion.value, commonWsPrefix);\n insertion.value = removePrefix(insertion.value, commonWsPrefix);\n }\n if (endKeep) {\n var commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);\n endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);\n deletion.value = removeSuffix(deletion.value, commonWsSuffix);\n insertion.value = removeSuffix(insertion.value, commonWsSuffix);\n }\n } else if (insertion) {\n if (startKeep) {\n insertion.value = insertion.value.replace(/^\\s*/, \"\");\n }\n if (endKeep) {\n endKeep.value = endKeep.value.replace(/^\\s*/, \"\");\n }\n } else if (startKeep && endKeep) {\n var newWsFull = endKeep.value.match(/^\\s*/)[0], delWsStart = deletion.value.match(/^\\s*/)[0], delWsEnd = deletion.value.match(/\\s*$/)[0];\n var newWsStart = longestCommonPrefix(newWsFull, delWsStart);\n deletion.value = removePrefix(deletion.value, newWsStart);\n var newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd);\n deletion.value = removeSuffix(deletion.value, newWsEnd);\n endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);\n startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));\n } else if (endKeep) {\n var endKeepWsPrefix = endKeep.value.match(/^\\s*/)[0];\n var deletionWsSuffix = deletion.value.match(/\\s*$/)[0];\n var overlap = maximumOverlap(deletionWsSuffix, endKeepWsPrefix);\n deletion.value = removeSuffix(deletion.value, overlap);\n } else if (startKeep) {\n var startKeepWsSuffix = startKeep.value.match(/\\s*$/)[0];\n var deletionWsPrefix = deletion.value.match(/^\\s*/)[0];\n var _overlap = maximumOverlap(startKeepWsSuffix, deletionWsPrefix);\n deletion.value = removePrefix(deletion.value, _overlap);\n }\n}\nvar wordWithSpaceDiff = new Diff();\nwordWithSpaceDiff.tokenize = function(value) {\n var regex = new RegExp(\"(\\\\r?\\\\n)|[\".concat(extendedWordChars, \"]+|[^\\\\S\\\\n\\\\r]+|[^\").concat(extendedWordChars, \"]\"), \"ug\");\n return value.match(regex) || [];\n};\nvar lineDiff = new Diff();\nlineDiff.tokenize = function(value, options8) {\n if (options8.stripTrailingCr) {\n value = value.replace(/\\r\\n/g, \"\\n\");\n }\n var retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line3 = linesAndNewlines[i];\n if (i % 2 && !options8.newlineIsToken) {\n retLines[retLines.length - 1] += line3;\n } else {\n retLines.push(line3);\n }\n }\n return retLines;\n};\nlineDiff.equals = function(left, right, options8) {\n if (options8.ignoreWhitespace) {\n if (!options8.newlineIsToken || !left.includes(\"\\n\")) {\n left = left.trim();\n }\n if (!options8.newlineIsToken || !right.includes(\"\\n\")) {\n right = right.trim();\n }\n } else if (options8.ignoreNewlineAtEof && !options8.newlineIsToken) {\n if (left.endsWith(\"\\n\")) {\n left = left.slice(0, -1);\n }\n if (right.endsWith(\"\\n\")) {\n right = right.slice(0, -1);\n }\n }\n return Diff.prototype.equals.call(this, left, right, options8);\n};\nfunction diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n}\nvar sentenceDiff = new Diff();\nsentenceDiff.tokenize = function(value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n};\nvar cssDiff = new Diff();\ncssDiff.tokenize = function(value) {\n return value.split(/([{}:;,]|\\s+)/);\n};\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n}\nfunction _defineProperty(obj, key2, value) {\n key2 = _toPropertyKey(key2);\n if (key2 in obj) {\n Object.defineProperty(obj, key2, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key2] = value;\n }\n return obj;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar jsonDiff = new Diff();\njsonDiff.useLongestToken = true;\njsonDiff.tokenize = lineDiff.tokenize;\njsonDiff.castInput = function(value, options8) {\n var undefinedReplacement = options8.undefinedReplacement, _options$stringifyRep = options8.stringifyReplacer, stringifyReplacer = _options$stringifyRep === void 0 ? function(k, v) {\n return typeof v === \"undefined\" ? undefinedReplacement : v;\n } : _options$stringifyRep;\n return typeof value === \"string\" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, \" \");\n};\njsonDiff.equals = function(left, right, options8) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, \"$1\"), right.replace(/,([\\r\\n])/g, \"$1\"), options8);\n};\nfunction canonicalize(obj, stack2, replacementStack, replacer, key2) {\n stack2 = stack2 || [];\n replacementStack = replacementStack || [];\n if (replacer) {\n obj = replacer(key2, obj);\n }\n var i;\n for (i = 0; i < stack2.length; i += 1) {\n if (stack2[i] === obj) {\n return replacementStack[i];\n }\n }\n var canonicalizedObj;\n if (\"[object Array]\" === Object.prototype.toString.call(obj)) {\n stack2.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack2, replacementStack, replacer, key2);\n }\n stack2.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n if (_typeof(obj) === \"object\" && obj !== null) {\n stack2.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n var sortedKeys = [], _key;\n for (_key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, _key)) {\n sortedKeys.push(_key);\n }\n }\n sortedKeys.sort();\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack2, replacementStack, replacer, _key);\n }\n stack2.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n return canonicalizedObj;\n}\nvar arrayDiff = new Diff();\narrayDiff.tokenize = function(value) {\n return value.slice();\n};\narrayDiff.join = arrayDiff.removeEmpty = function(value) {\n return value;\n};\nfunction diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\nfunction structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options8) {\n if (!options8) {\n options8 = {};\n }\n if (typeof options8 === \"function\") {\n options8 = {\n callback: options8\n };\n }\n if (typeof options8.context === \"undefined\") {\n options8.context = 4;\n }\n if (options8.newlineIsToken) {\n throw new Error(\"newlineIsToken may not be used with patch-generation functions, only with diffing functions\");\n }\n if (!options8.callback) {\n return diffLinesResultToPatch(diffLines(oldStr, newStr, options8));\n } else {\n var _options = options8, _callback = _options.callback;\n diffLines(oldStr, newStr, _objectSpread2(_objectSpread2({}, options8), {}, {\n callback: function callback(diff2) {\n var patch = diffLinesResultToPatch(diff2);\n _callback(patch);\n }\n }));\n }\n function diffLinesResultToPatch(diff2) {\n if (!diff2) {\n return;\n }\n diff2.push({\n value: \"\",\n lines: []\n });\n function contextLines(lines) {\n return lines.map(function(entry) {\n return \" \" + entry;\n });\n }\n var hunks = [];\n var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n var _loop = function _loop2() {\n var current = diff2[i], lines = current.lines || splitLines(current.value);\n current.lines = lines;\n if (current.added || current.removed) {\n var _curRange;\n if (!oldRangeStart) {\n var prev = diff2[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n if (prev) {\n curRange = options8.context > 0 ? contextLines(prev.lines.slice(-options8.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) {\n return (current.added ? \"+\" : \"-\") + entry;\n })));\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n if (oldRangeStart) {\n if (lines.length <= options8.context * 2 && i < diff2.length - 2) {\n var _curRange2;\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n var contextSize = Math.min(lines.length, options8.context);\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n var _hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n hunks.push(_hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n for (var i = 0; i < diff2.length; i++) {\n _loop();\n }\n for (var _i = 0, _hunks = hunks; _i < _hunks.length; _i++) {\n var hunk = _hunks[_i];\n for (var _i2 = 0; _i2 < hunk.lines.length; _i2++) {\n if (hunk.lines[_i2].endsWith(\"\\n\")) {\n hunk.lines[_i2] = hunk.lines[_i2].slice(0, -1);\n } else {\n hunk.lines.splice(_i2 + 1, 0, \"\\\\ No newline at end of file\");\n _i2++;\n }\n }\n }\n return {\n oldFileName,\n newFileName,\n oldHeader,\n newHeader,\n hunks\n };\n }\n}\nfunction formatPatch(diff2) {\n if (Array.isArray(diff2)) {\n return diff2.map(formatPatch).join(\"\\n\");\n }\n var ret = [];\n if (diff2.oldFileName == diff2.newFileName) {\n ret.push(\"Index: \" + diff2.oldFileName);\n }\n ret.push(\"===================================================================\");\n ret.push(\"--- \" + diff2.oldFileName + (typeof diff2.oldHeader === \"undefined\" ? \"\" : \"\t\" + diff2.oldHeader));\n ret.push(\"+++ \" + diff2.newFileName + (typeof diff2.newHeader === \"undefined\" ? \"\" : \"\t\" + diff2.newHeader));\n for (var i = 0; i < diff2.hunks.length; i++) {\n var hunk = diff2.hunks[i];\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n ret.push(\"@@ -\" + hunk.oldStart + \",\" + hunk.oldLines + \" +\" + hunk.newStart + \",\" + hunk.newLines + \" @@\");\n ret.push.apply(ret, hunk.lines);\n }\n return ret.join(\"\\n\") + \"\\n\";\n}\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options8) {\n var _options2;\n if (typeof options8 === \"function\") {\n options8 = {\n callback: options8\n };\n }\n if (!((_options2 = options8) !== null && _options2 !== void 0 && _options2.callback)) {\n var patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options8);\n if (!patchObj) {\n return;\n }\n return formatPatch(patchObj);\n } else {\n var _options3 = options8, _callback2 = _options3.callback;\n structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, _objectSpread2(_objectSpread2({}, options8), {}, {\n callback: function callback(patchObj2) {\n if (!patchObj2) {\n _callback2();\n } else {\n _callback2(formatPatch(patchObj2));\n }\n }\n }));\n }\n}\nfunction splitLines(text) {\n var hasTrailingNl = text.endsWith(\"\\n\");\n var result = text.split(\"\\n\").map(function(line3) {\n return line3 + \"\\n\";\n });\n if (hasTrailingNl) {\n result.pop();\n } else {\n result.push(result.pop().slice(0, -1));\n }\n return result;\n}\n\n// src/index.js\nvar import_fast_glob = __toESM(require_out4(), 1);\n\n// node_modules/vnopts/lib/descriptors/api.js\nvar apiDescriptor = {\n key: (key2) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(key2) ? key2 : JSON.stringify(key2),\n value(value) {\n if (value === null || typeof value !== \"object\") {\n return JSON.stringify(value);\n }\n if (Array.isArray(value)) {\n return `[${value.map((subValue) => apiDescriptor.value(subValue)).join(\", \")}]`;\n }\n const keys = Object.keys(value);\n return keys.length === 0 ? \"{}\" : `{ ${keys.map((key2) => `${apiDescriptor.key(key2)}: ${apiDescriptor.value(value[key2])}`).join(\", \")} }`;\n },\n pair: ({ key: key2, value }) => apiDescriptor.value({ [key2]: value })\n};\n\n// node_modules/chalk/source/vendor/ansi-styles/index.js\nvar ANSI_BACKGROUND_OFFSET = 10;\nvar wrapAnsi16 = (offset = 0) => (code) => `\\x1B[${code + offset}m`;\nvar wrapAnsi256 = (offset = 0) => (code) => `\\x1B[${38 + offset};5;${code}m`;\nvar wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\x1B[${38 + offset};2;${red};${green};${blue}m`;\nvar styles = {\n modifier: {\n reset: [0, 0],\n // 21 isn't widely supported and 22 does the same thing\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n overline: [53, 55],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29]\n },\n color: {\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n // Bright color\n blackBright: [90, 39],\n gray: [90, 39],\n // Alias of `blackBright`\n grey: [90, 39],\n // Alias of `blackBright`\n redBright: [91, 39],\n greenBright: [92, 39],\n yellowBright: [93, 39],\n blueBright: [94, 39],\n magentaBright: [95, 39],\n cyanBright: [96, 39],\n whiteBright: [97, 39]\n },\n bgColor: {\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n // Bright color\n bgBlackBright: [100, 49],\n bgGray: [100, 49],\n // Alias of `bgBlackBright`\n bgGrey: [100, 49],\n // Alias of `bgBlackBright`\n bgRedBright: [101, 49],\n bgGreenBright: [102, 49],\n bgYellowBright: [103, 49],\n bgBlueBright: [104, 49],\n bgMagentaBright: [105, 49],\n bgCyanBright: [106, 49],\n bgWhiteBright: [107, 49]\n }\n};\nvar modifierNames = Object.keys(styles.modifier);\nvar foregroundColorNames = Object.keys(styles.color);\nvar backgroundColorNames = Object.keys(styles.bgColor);\nvar colorNames = [...foregroundColorNames, ...backgroundColorNames];\nfunction assembleStyles() {\n const codes2 = /* @__PURE__ */ new Map();\n for (const [groupName, group] of Object.entries(styles)) {\n for (const [styleName, style] of Object.entries(group)) {\n styles[styleName] = {\n open: `\\x1B[${style[0]}m`,\n close: `\\x1B[${style[1]}m`\n };\n group[styleName] = styles[styleName];\n codes2.set(style[0], style[1]);\n }\n Object.defineProperty(styles, groupName, {\n value: group,\n enumerable: false\n });\n }\n Object.defineProperty(styles, \"codes\", {\n value: codes2,\n enumerable: false\n });\n styles.color.close = \"\\x1B[39m\";\n styles.bgColor.close = \"\\x1B[49m\";\n styles.color.ansi = wrapAnsi16();\n styles.color.ansi256 = wrapAnsi256();\n styles.color.ansi16m = wrapAnsi16m();\n styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n Object.defineProperties(styles, {\n rgbToAnsi256: {\n value(red, green, blue) {\n if (red === green && green === blue) {\n if (red < 8) {\n return 16;\n }\n if (red > 248) {\n return 231;\n }\n return Math.round((red - 8) / 247 * 24) + 232;\n }\n return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);\n },\n enumerable: false\n },\n hexToRgb: {\n value(hex) {\n const matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n if (!matches) {\n return [0, 0, 0];\n }\n let [colorString] = matches;\n if (colorString.length === 3) {\n colorString = [...colorString].map((character) => character + character).join(\"\");\n }\n const integer = Number.parseInt(colorString, 16);\n return [\n /* eslint-disable no-bitwise */\n integer >> 16 & 255,\n integer >> 8 & 255,\n integer & 255\n /* eslint-enable no-bitwise */\n ];\n },\n enumerable: false\n },\n hexToAnsi256: {\n value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n enumerable: false\n },\n ansi256ToAnsi: {\n value(code) {\n if (code < 8) {\n return 30 + code;\n }\n if (code < 16) {\n return 90 + (code - 8);\n }\n let red;\n let green;\n let blue;\n if (code >= 232) {\n red = ((code - 232) * 10 + 8) / 255;\n green = red;\n blue = red;\n } else {\n code -= 16;\n const remainder = code % 36;\n red = Math.floor(code / 36) / 5;\n green = Math.floor(remainder / 6) / 5;\n blue = remainder % 6 / 5;\n }\n const value = Math.max(red, green, blue) * 2;\n if (value === 0) {\n return 30;\n }\n let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));\n if (value === 2) {\n result += 60;\n }\n return result;\n },\n enumerable: false\n },\n rgbToAnsi: {\n value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n enumerable: false\n },\n hexToAnsi: {\n value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n enumerable: false\n }\n });\n return styles;\n}\nvar ansiStyles = assembleStyles();\nvar ansi_styles_default = ansiStyles;\n\n// node_modules/chalk/source/vendor/supports-color/index.js\nimport process2 from \"process\";\nimport os from \"os\";\nimport tty from \"tty\";\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {\n const prefix = flag.startsWith(\"-\") ? \"\" : flag.length === 1 ? \"-\" : \"--\";\n const position = argv.indexOf(prefix + flag);\n const terminatorPosition = argv.indexOf(\"--\");\n return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\nvar { env } = process2;\nvar flagForceColor;\nif (hasFlag(\"no-color\") || hasFlag(\"no-colors\") || hasFlag(\"color=false\") || hasFlag(\"color=never\")) {\n flagForceColor = 0;\n} else if (hasFlag(\"color\") || hasFlag(\"colors\") || hasFlag(\"color=true\") || hasFlag(\"color=always\")) {\n flagForceColor = 1;\n}\nfunction envForceColor() {\n if (\"FORCE_COLOR\" in env) {\n if (env.FORCE_COLOR === \"true\") {\n return 1;\n }\n if (env.FORCE_COLOR === \"false\") {\n return 0;\n }\n return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n }\n}\nfunction translateLevel(level) {\n if (level === 0) {\n return false;\n }\n return {\n level,\n hasBasic: true,\n has256: level >= 2,\n has16m: level >= 3\n };\n}\nfunction _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {\n const noFlagForceColor = envForceColor();\n if (noFlagForceColor !== void 0) {\n flagForceColor = noFlagForceColor;\n }\n const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n if (forceColor === 0) {\n return 0;\n }\n if (sniffFlags) {\n if (hasFlag(\"color=16m\") || hasFlag(\"color=full\") || hasFlag(\"color=truecolor\")) {\n return 3;\n }\n if (hasFlag(\"color=256\")) {\n return 2;\n }\n }\n if (\"TF_BUILD\" in env && \"AGENT_NAME\" in env) {\n return 1;\n }\n if (haveStream && !streamIsTTY && forceColor === void 0) {\n return 0;\n }\n const min = forceColor || 0;\n if (env.TERM === \"dumb\") {\n return min;\n }\n if (process2.platform === \"win32\") {\n const osRelease = os.release().split(\".\");\n if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {\n return Number(osRelease[2]) >= 14931 ? 3 : 2;\n }\n return 1;\n }\n if (\"CI\" in env) {\n if (\"GITHUB_ACTIONS\" in env || \"GITEA_ACTIONS\" in env) {\n return 3;\n }\n if ([\"TRAVIS\", \"CIRCLECI\", \"APPVEYOR\", \"GITLAB_CI\", \"BUILDKITE\", \"DRONE\"].some((sign2) => sign2 in env) || env.CI_NAME === \"codeship\") {\n return 1;\n }\n return min;\n }\n if (\"TEAMCITY_VERSION\" in env) {\n return /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n }\n if (env.COLORTERM === \"truecolor\") {\n return 3;\n }\n if (env.TERM === \"xterm-kitty\") {\n return 3;\n }\n if (\"TERM_PROGRAM\" in env) {\n const version = Number.parseInt((env.TERM_PROGRAM_VERSION || \"\").split(\".\")[0], 10);\n switch (env.TERM_PROGRAM) {\n case \"iTerm.app\": {\n return version >= 3 ? 3 : 2;\n }\n case \"Apple_Terminal\": {\n return 2;\n }\n }\n }\n if (/-256(color)?$/i.test(env.TERM)) {\n return 2;\n }\n if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n return 1;\n }\n if (\"COLORTERM\" in env) {\n return 1;\n }\n return min;\n}\nfunction createSupportsColor(stream, options8 = {}) {\n const level = _supportsColor(stream, {\n streamIsTTY: stream && stream.isTTY,\n ...options8\n });\n return translateLevel(level);\n}\nvar supportsColor = {\n stdout: createSupportsColor({ isTTY: tty.isatty(1) }),\n stderr: createSupportsColor({ isTTY: tty.isatty(2) })\n};\nvar supports_color_default = supportsColor;\n\n// node_modules/chalk/source/utilities.js\nfunction stringReplaceAll(string, substring, replacer) {\n let index = string.indexOf(substring);\n if (index === -1) {\n return string;\n }\n const substringLength = substring.length;\n let endIndex = 0;\n let returnValue = \"\";\n do {\n returnValue += string.slice(endIndex, index) + substring + replacer;\n endIndex = index + substringLength;\n index = string.indexOf(substring, endIndex);\n } while (index !== -1);\n returnValue += string.slice(endIndex);\n return returnValue;\n}\nfunction stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n let endIndex = 0;\n let returnValue = \"\";\n do {\n const gotCR = string[index - 1] === \"\\r\";\n returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? \"\\r\\n\" : \"\\n\") + postfix;\n endIndex = index + 1;\n index = string.indexOf(\"\\n\", endIndex);\n } while (index !== -1);\n returnValue += string.slice(endIndex);\n return returnValue;\n}\n\n// node_modules/chalk/source/index.js\nvar { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;\nvar GENERATOR = Symbol(\"GENERATOR\");\nvar STYLER = Symbol(\"STYLER\");\nvar IS_EMPTY = Symbol(\"IS_EMPTY\");\nvar levelMapping = [\n \"ansi\",\n \"ansi\",\n \"ansi256\",\n \"ansi16m\"\n];\nvar styles2 = /* @__PURE__ */ Object.create(null);\nvar applyOptions = (object, options8 = {}) => {\n if (options8.level && !(Number.isInteger(options8.level) && options8.level >= 0 && options8.level <= 3)) {\n throw new Error(\"The `level` option should be an integer from 0 to 3\");\n }\n const colorLevel = stdoutColor ? stdoutColor.level : 0;\n object.level = options8.level === void 0 ? colorLevel : options8.level;\n};\nvar chalkFactory = (options8) => {\n const chalk2 = (...strings) => strings.join(\" \");\n applyOptions(chalk2, options8);\n Object.setPrototypeOf(chalk2, createChalk.prototype);\n return chalk2;\n};\nfunction createChalk(options8) {\n return chalkFactory(options8);\n}\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\nfor (const [styleName, style] of Object.entries(ansi_styles_default)) {\n styles2[styleName] = {\n get() {\n const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n Object.defineProperty(this, styleName, { value: builder });\n return builder;\n }\n };\n}\nstyles2.visible = {\n get() {\n const builder = createBuilder(this, this[STYLER], true);\n Object.defineProperty(this, \"visible\", { value: builder });\n return builder;\n }\n};\nvar getModelAnsi = (model, level, type2, ...arguments_) => {\n if (model === \"rgb\") {\n if (level === \"ansi16m\") {\n return ansi_styles_default[type2].ansi16m(...arguments_);\n }\n if (level === \"ansi256\") {\n return ansi_styles_default[type2].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));\n }\n return ansi_styles_default[type2].ansi(ansi_styles_default.rgbToAnsi(...arguments_));\n }\n if (model === \"hex\") {\n return getModelAnsi(\"rgb\", level, type2, ...ansi_styles_default.hexToRgb(...arguments_));\n }\n return ansi_styles_default[type2][model](...arguments_);\n};\nvar usedModels = [\"rgb\", \"hex\", \"ansi256\"];\nfor (const model of usedModels) {\n styles2[model] = {\n get() {\n const { level } = this;\n return function(...arguments_) {\n const styler = createStyler(getModelAnsi(model, levelMapping[level], \"color\", ...arguments_), ansi_styles_default.color.close, this[STYLER]);\n return createBuilder(this, styler, this[IS_EMPTY]);\n };\n }\n };\n const bgModel = \"bg\" + model[0].toUpperCase() + model.slice(1);\n styles2[bgModel] = {\n get() {\n const { level } = this;\n return function(...arguments_) {\n const styler = createStyler(getModelAnsi(model, levelMapping[level], \"bgColor\", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);\n return createBuilder(this, styler, this[IS_EMPTY]);\n };\n }\n };\n}\nvar proto = Object.defineProperties(() => {\n}, {\n ...styles2,\n level: {\n enumerable: true,\n get() {\n return this[GENERATOR].level;\n },\n set(level) {\n this[GENERATOR].level = level;\n }\n }\n});\nvar createStyler = (open, close, parent) => {\n let openAll;\n let closeAll;\n if (parent === void 0) {\n openAll = open;\n closeAll = close;\n } else {\n openAll = parent.openAll + open;\n closeAll = close + parent.closeAll;\n }\n return {\n open,\n close,\n openAll,\n closeAll,\n parent\n };\n};\nvar createBuilder = (self, _styler, _isEmpty) => {\n const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? \"\" + arguments_[0] : arguments_.join(\" \"));\n Object.setPrototypeOf(builder, proto);\n builder[GENERATOR] = self;\n builder[STYLER] = _styler;\n builder[IS_EMPTY] = _isEmpty;\n return builder;\n};\nvar applyStyle = (self, string) => {\n if (self.level <= 0 || !string) {\n return self[IS_EMPTY] ? \"\" : string;\n }\n let styler = self[STYLER];\n if (styler === void 0) {\n return string;\n }\n const { openAll, closeAll } = styler;\n if (string.includes(\"\\x1B\")) {\n while (styler !== void 0) {\n string = stringReplaceAll(string, styler.close, styler.open);\n styler = styler.parent;\n }\n }\n const lfIndex = string.indexOf(\"\\n\");\n if (lfIndex !== -1) {\n string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n }\n return openAll + string + closeAll;\n};\nObject.defineProperties(createChalk.prototype, styles2);\nvar chalk = createChalk();\nvar chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });\nvar source_default = chalk;\n\n// node_modules/vnopts/lib/handlers/deprecated/common.js\nvar commonDeprecatedHandler = (keyOrPair, redirectTo, { descriptor }) => {\n const messages2 = [\n `${source_default.yellow(typeof keyOrPair === \"string\" ? descriptor.key(keyOrPair) : descriptor.pair(keyOrPair))} is deprecated`\n ];\n if (redirectTo) {\n messages2.push(`we now treat it as ${source_default.blue(typeof redirectTo === \"string\" ? descriptor.key(redirectTo) : descriptor.pair(redirectTo))}`);\n }\n return messages2.join(\"; \") + \".\";\n};\n\n// node_modules/vnopts/lib/constants.js\nvar VALUE_NOT_EXIST = Symbol.for(\"vnopts.VALUE_NOT_EXIST\");\nvar VALUE_UNCHANGED = Symbol.for(\"vnopts.VALUE_UNCHANGED\");\n\n// node_modules/vnopts/lib/handlers/invalid/common.js\nvar INDENTATION = \" \".repeat(2);\nvar commonInvalidHandler = (key2, value, utils) => {\n const { text, list } = utils.normalizeExpectedResult(utils.schemas[key2].expected(utils));\n const descriptions = [];\n if (text) {\n descriptions.push(getDescription(key2, value, text, utils.descriptor));\n }\n if (list) {\n descriptions.push([getDescription(key2, value, list.title, utils.descriptor)].concat(list.values.map((valueDescription) => getListDescription(valueDescription, utils.loggerPrintWidth))).join(\"\\n\"));\n }\n return chooseDescription(descriptions, utils.loggerPrintWidth);\n};\nfunction getDescription(key2, value, expected, descriptor) {\n return [\n `Invalid ${source_default.red(descriptor.key(key2))} value.`,\n `Expected ${source_default.blue(expected)},`,\n `but received ${value === VALUE_NOT_EXIST ? source_default.gray(\"nothing\") : source_default.red(descriptor.value(value))}.`\n ].join(\" \");\n}\nfunction getListDescription({ text, list }, printWidth) {\n const descriptions = [];\n if (text) {\n descriptions.push(`- ${source_default.blue(text)}`);\n }\n if (list) {\n descriptions.push([`- ${source_default.blue(list.title)}:`].concat(list.values.map((valueDescription) => getListDescription(valueDescription, printWidth - INDENTATION.length).replace(/^|\\n/g, `$&${INDENTATION}`))).join(\"\\n\"));\n }\n return chooseDescription(descriptions, printWidth);\n}\nfunction chooseDescription(descriptions, printWidth) {\n if (descriptions.length === 1) {\n return descriptions[0];\n }\n const [firstDescription, secondDescription] = descriptions;\n const [firstWidth, secondWidth] = descriptions.map((description) => description.split(\"\\n\", 1)[0].length);\n return firstWidth > printWidth && firstWidth > secondWidth ? secondDescription : firstDescription;\n}\n\n// node_modules/leven/index.js\nvar array = [];\nvar characterCodeCache = [];\nfunction leven(first, second) {\n if (first === second) {\n return 0;\n }\n const swap = first;\n if (first.length > second.length) {\n first = second;\n second = swap;\n }\n let firstLength = first.length;\n let secondLength = second.length;\n while (firstLength > 0 && first.charCodeAt(~-firstLength) === second.charCodeAt(~-secondLength)) {\n firstLength--;\n secondLength--;\n }\n let start = 0;\n while (start < firstLength && first.charCodeAt(start) === second.charCodeAt(start)) {\n start++;\n }\n firstLength -= start;\n secondLength -= start;\n if (firstLength === 0) {\n return secondLength;\n }\n let bCharacterCode;\n let result;\n let temporary;\n let temporary2;\n let index = 0;\n let index2 = 0;\n while (index < firstLength) {\n characterCodeCache[index] = first.charCodeAt(start + index);\n array[index] = ++index;\n }\n while (index2 < secondLength) {\n bCharacterCode = second.charCodeAt(start + index2);\n temporary = index2++;\n result = index2;\n for (index = 0; index < firstLength; index++) {\n temporary2 = bCharacterCode === characterCodeCache[index] ? temporary : temporary + 1;\n temporary = array[index];\n result = array[index] = temporary > result ? temporary2 > result ? result + 1 : temporary2 : temporary2 > temporary ? temporary + 1 : temporary2;\n }\n }\n return result;\n}\n\n// node_modules/vnopts/lib/handlers/unknown/leven.js\nvar levenUnknownHandler = (key2, value, { descriptor, logger, schemas }) => {\n const messages2 = [\n `Ignored unknown option ${source_default.yellow(descriptor.pair({ key: key2, value }))}.`\n ];\n const suggestion = Object.keys(schemas).sort().find((knownKey) => leven(key2, knownKey) < 3);\n if (suggestion) {\n messages2.push(`Did you mean ${source_default.blue(descriptor.key(suggestion))}?`);\n }\n logger.warn(messages2.join(\" \"));\n};\n\n// node_modules/vnopts/lib/schema.js\nvar HANDLER_KEYS = [\n \"default\",\n \"expected\",\n \"validate\",\n \"deprecated\",\n \"forward\",\n \"redirect\",\n \"overlap\",\n \"preprocess\",\n \"postprocess\"\n];\nfunction createSchema(SchemaConstructor, parameters) {\n const schema2 = new SchemaConstructor(parameters);\n const subSchema = Object.create(schema2);\n for (const handlerKey of HANDLER_KEYS) {\n if (handlerKey in parameters) {\n subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema2, Schema.prototype[handlerKey].length);\n }\n }\n return subSchema;\n}\nvar Schema = class {\n static create(parameters) {\n return createSchema(this, parameters);\n }\n constructor(parameters) {\n this.name = parameters.name;\n }\n default(_utils) {\n return void 0;\n }\n // this is actually an abstract method but we need a placeholder to get `function.length`\n /* c8 ignore start */\n expected(_utils) {\n return \"nothing\";\n }\n /* c8 ignore stop */\n // this is actually an abstract method but we need a placeholder to get `function.length`\n /* c8 ignore start */\n validate(_value, _utils) {\n return false;\n }\n /* c8 ignore stop */\n deprecated(_value, _utils) {\n return false;\n }\n forward(_value, _utils) {\n return void 0;\n }\n redirect(_value, _utils) {\n return void 0;\n }\n overlap(currentValue, _newValue, _utils) {\n return currentValue;\n }\n preprocess(value, _utils) {\n return value;\n }\n postprocess(_value, _utils) {\n return VALUE_UNCHANGED;\n }\n};\nfunction normalizeHandler(handler, superSchema, handlerArgumentsLength) {\n return typeof handler === \"function\" ? (...args) => handler(...args.slice(0, handlerArgumentsLength - 1), superSchema, ...args.slice(handlerArgumentsLength - 1)) : () => handler;\n}\n\n// node_modules/vnopts/lib/schemas/alias.js\nvar AliasSchema = class extends Schema {\n constructor(parameters) {\n super(parameters);\n this._sourceName = parameters.sourceName;\n }\n expected(utils) {\n return utils.schemas[this._sourceName].expected(utils);\n }\n validate(value, utils) {\n return utils.schemas[this._sourceName].validate(value, utils);\n }\n redirect(_value, _utils) {\n return this._sourceName;\n }\n};\n\n// node_modules/vnopts/lib/schemas/any.js\nvar AnySchema = class extends Schema {\n expected() {\n return \"anything\";\n }\n validate() {\n return true;\n }\n};\n\n// node_modules/vnopts/lib/schemas/array.js\nvar ArraySchema = class extends Schema {\n constructor({ valueSchema, name = valueSchema.name, ...handlers }) {\n super({ ...handlers, name });\n this._valueSchema = valueSchema;\n }\n expected(utils) {\n const { text, list } = utils.normalizeExpectedResult(this._valueSchema.expected(utils));\n return {\n text: text && `an array of ${text}`,\n list: list && {\n title: `an array of the following values`,\n values: [{ list }]\n }\n };\n }\n validate(value, utils) {\n if (!Array.isArray(value)) {\n return false;\n }\n const invalidValues = [];\n for (const subValue of value) {\n const subValidateResult = utils.normalizeValidateResult(this._valueSchema.validate(subValue, utils), subValue);\n if (subValidateResult !== true) {\n invalidValues.push(subValidateResult.value);\n }\n }\n return invalidValues.length === 0 ? true : { value: invalidValues };\n }\n deprecated(value, utils) {\n const deprecatedResult = [];\n for (const subValue of value) {\n const subDeprecatedResult = utils.normalizeDeprecatedResult(this._valueSchema.deprecated(subValue, utils), subValue);\n if (subDeprecatedResult !== false) {\n deprecatedResult.push(...subDeprecatedResult.map(({ value: deprecatedValue }) => ({\n value: [deprecatedValue]\n })));\n }\n }\n return deprecatedResult;\n }\n forward(value, utils) {\n const forwardResult = [];\n for (const subValue of value) {\n const subForwardResult = utils.normalizeForwardResult(this._valueSchema.forward(subValue, utils), subValue);\n forwardResult.push(...subForwardResult.map(wrapTransferResult));\n }\n return forwardResult;\n }\n redirect(value, utils) {\n const remain = [];\n const redirect = [];\n for (const subValue of value) {\n const subRedirectResult = utils.normalizeRedirectResult(this._valueSchema.redirect(subValue, utils), subValue);\n if (\"remain\" in subRedirectResult) {\n remain.push(subRedirectResult.remain);\n }\n redirect.push(...subRedirectResult.redirect.map(wrapTransferResult));\n }\n return remain.length === 0 ? { redirect } : { redirect, remain };\n }\n overlap(currentValue, newValue) {\n return currentValue.concat(newValue);\n }\n};\nfunction wrapTransferResult({ from, to }) {\n return { from: [from], to };\n}\n\n// node_modules/vnopts/lib/schemas/boolean.js\nvar BooleanSchema = class extends Schema {\n expected() {\n return \"true or false\";\n }\n validate(value) {\n return typeof value === \"boolean\";\n }\n};\n\n// node_modules/vnopts/lib/utils.js\nfunction recordFromArray(array2, mainKey) {\n const record = /* @__PURE__ */ Object.create(null);\n for (const value of array2) {\n const key2 = value[mainKey];\n if (record[key2]) {\n throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key2)}`);\n }\n record[key2] = value;\n }\n return record;\n}\nfunction mapFromArray(array2, mainKey) {\n const map2 = /* @__PURE__ */ new Map();\n for (const value of array2) {\n const key2 = value[mainKey];\n if (map2.has(key2)) {\n throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key2)}`);\n }\n map2.set(key2, value);\n }\n return map2;\n}\nfunction createAutoChecklist() {\n const map2 = /* @__PURE__ */ Object.create(null);\n return (id) => {\n const idString = JSON.stringify(id);\n if (map2[idString]) {\n return true;\n }\n map2[idString] = true;\n return false;\n };\n}\nfunction partition(array2, predicate) {\n const trueArray = [];\n const falseArray = [];\n for (const value of array2) {\n if (predicate(value)) {\n trueArray.push(value);\n } else {\n falseArray.push(value);\n }\n }\n return [trueArray, falseArray];\n}\nfunction isInt(value) {\n return value === Math.floor(value);\n}\nfunction comparePrimitive(a, b) {\n if (a === b) {\n return 0;\n }\n const typeofA = typeof a;\n const typeofB = typeof b;\n const orders = [\n \"undefined\",\n \"object\",\n \"boolean\",\n \"number\",\n \"string\"\n ];\n if (typeofA !== typeofB) {\n return orders.indexOf(typeofA) - orders.indexOf(typeofB);\n }\n if (typeofA !== \"string\") {\n return Number(a) - Number(b);\n }\n return a.localeCompare(b);\n}\nfunction normalizeInvalidHandler(invalidHandler) {\n return (...args) => {\n const errorMessageOrError = invalidHandler(...args);\n return typeof errorMessageOrError === \"string\" ? new Error(errorMessageOrError) : errorMessageOrError;\n };\n}\nfunction normalizeDefaultResult(result) {\n return result === void 0 ? {} : result;\n}\nfunction normalizeExpectedResult(result) {\n if (typeof result === \"string\") {\n return { text: result };\n }\n const { text, list } = result;\n assert((text || list) !== void 0, \"Unexpected `expected` result, there should be at least one field.\");\n if (!list) {\n return { text };\n }\n return {\n text,\n list: {\n title: list.title,\n values: list.values.map(normalizeExpectedResult)\n }\n };\n}\nfunction normalizeValidateResult(result, value) {\n return result === true ? true : result === false ? { value } : result;\n}\nfunction normalizeDeprecatedResult(result, value, doNotNormalizeTrue = false) {\n return result === false ? false : result === true ? doNotNormalizeTrue ? true : [{ value }] : \"value\" in result ? [result] : result.length === 0 ? false : result;\n}\nfunction normalizeTransferResult(result, value) {\n return typeof result === \"string\" || \"key\" in result ? { from: value, to: result } : \"from\" in result ? { from: result.from, to: result.to } : { from: value, to: result.to };\n}\nfunction normalizeForwardResult(result, value) {\n return result === void 0 ? [] : Array.isArray(result) ? result.map((transferResult) => normalizeTransferResult(transferResult, value)) : [normalizeTransferResult(result, value)];\n}\nfunction normalizeRedirectResult(result, value) {\n const redirect = normalizeForwardResult(typeof result === \"object\" && \"redirect\" in result ? result.redirect : result, value);\n return redirect.length === 0 ? { remain: value, redirect } : typeof result === \"object\" && \"remain\" in result ? { remain: result.remain, redirect } : { redirect };\n}\nfunction assert(isValid, message) {\n if (!isValid) {\n throw new Error(message);\n }\n}\n\n// node_modules/vnopts/lib/schemas/choice.js\nvar ChoiceSchema = class extends Schema {\n constructor(parameters) {\n super(parameters);\n this._choices = mapFromArray(parameters.choices.map((choice) => choice && typeof choice === \"object\" ? choice : { value: choice }), \"value\");\n }\n expected({ descriptor }) {\n const choiceDescriptions = Array.from(this._choices.keys()).map((value) => this._choices.get(value)).filter(({ hidden }) => !hidden).map((choiceInfo) => choiceInfo.value).sort(comparePrimitive).map(descriptor.value);\n const head = choiceDescriptions.slice(0, -2);\n const tail = choiceDescriptions.slice(-2);\n const message = head.concat(tail.join(\" or \")).join(\", \");\n return {\n text: message,\n list: {\n title: \"one of the following values\",\n values: choiceDescriptions\n }\n };\n }\n validate(value) {\n return this._choices.has(value);\n }\n deprecated(value) {\n const choiceInfo = this._choices.get(value);\n return choiceInfo && choiceInfo.deprecated ? { value } : false;\n }\n forward(value) {\n const choiceInfo = this._choices.get(value);\n return choiceInfo ? choiceInfo.forward : void 0;\n }\n redirect(value) {\n const choiceInfo = this._choices.get(value);\n return choiceInfo ? choiceInfo.redirect : void 0;\n }\n};\n\n// node_modules/vnopts/lib/schemas/number.js\nvar NumberSchema = class extends Schema {\n expected() {\n return \"a number\";\n }\n validate(value, _utils) {\n return typeof value === \"number\";\n }\n};\n\n// node_modules/vnopts/lib/schemas/integer.js\nvar IntegerSchema = class extends NumberSchema {\n expected() {\n return \"an integer\";\n }\n validate(value, utils) {\n return utils.normalizeValidateResult(super.validate(value, utils), value) === true && isInt(value);\n }\n};\n\n// node_modules/vnopts/lib/schemas/string.js\nvar StringSchema = class extends Schema {\n expected() {\n return \"a string\";\n }\n validate(value) {\n return typeof value === \"string\";\n }\n};\n\n// node_modules/vnopts/lib/defaults.js\nvar defaultDescriptor = apiDescriptor;\nvar defaultUnknownHandler = levenUnknownHandler;\nvar defaultInvalidHandler = commonInvalidHandler;\nvar defaultDeprecatedHandler = commonDeprecatedHandler;\n\n// node_modules/vnopts/lib/normalize.js\nvar Normalizer = class {\n constructor(schemas, opts) {\n const { logger = console, loggerPrintWidth = 80, descriptor = defaultDescriptor, unknown = defaultUnknownHandler, invalid = defaultInvalidHandler, deprecated = defaultDeprecatedHandler, missing = () => false, required = () => false, preprocess = (x) => x, postprocess = () => VALUE_UNCHANGED } = opts || {};\n this._utils = {\n descriptor,\n logger: (\n /* c8 ignore next */\n logger || { warn: () => {\n } }\n ),\n loggerPrintWidth,\n schemas: recordFromArray(schemas, \"name\"),\n normalizeDefaultResult,\n normalizeExpectedResult,\n normalizeDeprecatedResult,\n normalizeForwardResult,\n normalizeRedirectResult,\n normalizeValidateResult\n };\n this._unknownHandler = unknown;\n this._invalidHandler = normalizeInvalidHandler(invalid);\n this._deprecatedHandler = deprecated;\n this._identifyMissing = (k, o) => !(k in o) || missing(k, o);\n this._identifyRequired = required;\n this._preprocess = preprocess;\n this._postprocess = postprocess;\n this.cleanHistory();\n }\n cleanHistory() {\n this._hasDeprecationWarned = createAutoChecklist();\n }\n normalize(options8) {\n const newOptions = {};\n const preprocessed = this._preprocess(options8, this._utils);\n const restOptionsArray = [preprocessed];\n const applyNormalization = () => {\n while (restOptionsArray.length !== 0) {\n const currentOptions = restOptionsArray.shift();\n const transferredOptionsArray = this._applyNormalization(currentOptions, newOptions);\n restOptionsArray.push(...transferredOptionsArray);\n }\n };\n applyNormalization();\n for (const key2 of Object.keys(this._utils.schemas)) {\n const schema2 = this._utils.schemas[key2];\n if (!(key2 in newOptions)) {\n const defaultResult = normalizeDefaultResult(schema2.default(this._utils));\n if (\"value\" in defaultResult) {\n restOptionsArray.push({ [key2]: defaultResult.value });\n }\n }\n }\n applyNormalization();\n for (const key2 of Object.keys(this._utils.schemas)) {\n if (!(key2 in newOptions)) {\n continue;\n }\n const schema2 = this._utils.schemas[key2];\n const value = newOptions[key2];\n const newValue = schema2.postprocess(value, this._utils);\n if (newValue === VALUE_UNCHANGED) {\n continue;\n }\n this._applyValidation(newValue, key2, schema2);\n newOptions[key2] = newValue;\n }\n this._applyPostprocess(newOptions);\n this._applyRequiredCheck(newOptions);\n return newOptions;\n }\n _applyNormalization(options8, newOptions) {\n const transferredOptionsArray = [];\n const { knownKeys, unknownKeys } = this._partitionOptionKeys(options8);\n for (const key2 of knownKeys) {\n const schema2 = this._utils.schemas[key2];\n const value = schema2.preprocess(options8[key2], this._utils);\n this._applyValidation(value, key2, schema2);\n const appendTransferredOptions = ({ from, to }) => {\n transferredOptionsArray.push(typeof to === \"string\" ? { [to]: from } : { [to.key]: to.value });\n };\n const warnDeprecated = ({ value: currentValue, redirectTo }) => {\n const deprecatedResult = normalizeDeprecatedResult(\n schema2.deprecated(currentValue, this._utils),\n value,\n /* doNotNormalizeTrue */\n true\n );\n if (deprecatedResult === false) {\n return;\n }\n if (deprecatedResult === true) {\n if (!this._hasDeprecationWarned(key2)) {\n this._utils.logger.warn(this._deprecatedHandler(key2, redirectTo, this._utils));\n }\n } else {\n for (const { value: deprecatedValue } of deprecatedResult) {\n const pair = { key: key2, value: deprecatedValue };\n if (!this._hasDeprecationWarned(pair)) {\n const redirectToPair = typeof redirectTo === \"string\" ? { key: redirectTo, value: deprecatedValue } : redirectTo;\n this._utils.logger.warn(this._deprecatedHandler(pair, redirectToPair, this._utils));\n }\n }\n }\n };\n const forwardResult = normalizeForwardResult(schema2.forward(value, this._utils), value);\n forwardResult.forEach(appendTransferredOptions);\n const redirectResult = normalizeRedirectResult(schema2.redirect(value, this._utils), value);\n redirectResult.redirect.forEach(appendTransferredOptions);\n if (\"remain\" in redirectResult) {\n const remainingValue = redirectResult.remain;\n newOptions[key2] = key2 in newOptions ? schema2.overlap(newOptions[key2], remainingValue, this._utils) : remainingValue;\n warnDeprecated({ value: remainingValue });\n }\n for (const { from, to } of redirectResult.redirect) {\n warnDeprecated({ value: from, redirectTo: to });\n }\n }\n for (const key2 of unknownKeys) {\n const value = options8[key2];\n this._applyUnknownHandler(key2, value, newOptions, (knownResultKey, knownResultValue) => {\n transferredOptionsArray.push({ [knownResultKey]: knownResultValue });\n });\n }\n return transferredOptionsArray;\n }\n _applyRequiredCheck(options8) {\n for (const key2 of Object.keys(this._utils.schemas)) {\n if (this._identifyMissing(key2, options8)) {\n if (this._identifyRequired(key2)) {\n throw this._invalidHandler(key2, VALUE_NOT_EXIST, this._utils);\n }\n }\n }\n }\n _partitionOptionKeys(options8) {\n const [knownKeys, unknownKeys] = partition(Object.keys(options8).filter((key2) => !this._identifyMissing(key2, options8)), (key2) => key2 in this._utils.schemas);\n return { knownKeys, unknownKeys };\n }\n _applyValidation(value, key2, schema2) {\n const validateResult = normalizeValidateResult(schema2.validate(value, this._utils), value);\n if (validateResult !== true) {\n throw this._invalidHandler(key2, validateResult.value, this._utils);\n }\n }\n _applyUnknownHandler(key2, value, newOptions, knownResultHandler) {\n const unknownResult = this._unknownHandler(key2, value, this._utils);\n if (!unknownResult) {\n return;\n }\n for (const resultKey of Object.keys(unknownResult)) {\n if (this._identifyMissing(resultKey, unknownResult)) {\n continue;\n }\n const resultValue = unknownResult[resultKey];\n if (resultKey in this._utils.schemas) {\n knownResultHandler(resultKey, resultValue);\n } else {\n newOptions[resultKey] = resultValue;\n }\n }\n }\n _applyPostprocess(options8) {\n const postprocessed = this._postprocess(options8, this._utils);\n if (postprocessed === VALUE_UNCHANGED) {\n return;\n }\n if (postprocessed.delete) {\n for (const deleteKey of postprocessed.delete) {\n delete options8[deleteKey];\n }\n }\n if (postprocessed.override) {\n const { knownKeys, unknownKeys } = this._partitionOptionKeys(postprocessed.override);\n for (const key2 of knownKeys) {\n const value = postprocessed.override[key2];\n this._applyValidation(value, key2, this._utils.schemas[key2]);\n options8[key2] = value;\n }\n for (const key2 of unknownKeys) {\n const value = postprocessed.override[key2];\n this._applyUnknownHandler(key2, value, options8, (knownResultKey, knownResultValue) => {\n const schema2 = this._utils.schemas[knownResultKey];\n this._applyValidation(knownResultValue, knownResultKey, schema2);\n options8[knownResultKey] = knownResultValue;\n });\n }\n }\n }\n};\n\n// src/common/errors.js\nvar errors_exports = {};\n__export(errors_exports, {\n ArgExpansionBailout: () => ArgExpansionBailout,\n ConfigError: () => ConfigError,\n UndefinedParserError: () => UndefinedParserError\n});\nvar ConfigError = class extends Error {\n name = \"ConfigError\";\n};\nvar UndefinedParserError = class extends Error {\n name = \"UndefinedParserError\";\n};\nvar ArgExpansionBailout = class extends Error {\n name = \"ArgExpansionBailout\";\n};\n\n// src/config/resolve-config.js\nvar import_micromatch = __toESM(require_micromatch(), 1);\nimport path9 from \"path\";\n\n// node_modules/url-or-path/index.js\nimport { fileURLToPath, pathToFileURL } from \"url\";\nvar URL_STRING_PREFIX = \"file:\";\nvar isUrlInstance = (value) => value instanceof URL;\nvar isUrlString = (value) => typeof value === \"string\" && value.startsWith(URL_STRING_PREFIX);\nvar isUrl = (urlOrPath) => isUrlInstance(urlOrPath) || isUrlString(urlOrPath);\nvar toPath = (urlOrPath) => isUrl(urlOrPath) ? fileURLToPath(urlOrPath) : urlOrPath;\n\n// src/utils/partition.js\nfunction partition2(array2, predicate) {\n const result = [[], []];\n for (const value of array2) {\n result[predicate(value) ? 0 : 1].push(value);\n }\n return result;\n}\nvar partition_default = partition2;\n\n// src/config/editorconfig/index.js\nvar import_editorconfig = __toESM(require_src(), 1);\nimport path4 from \"path\";\n\n// src/config/find-project-root.js\nimport * as path3 from \"path\";\n\n// src/utils/is-directory.js\nimport fs from \"fs/promises\";\nasync function isDirectory(directory, options8) {\n const allowSymlinks = (options8 == null ? void 0 : options8.allowSymlinks) ?? true;\n let stats;\n try {\n stats = await (allowSymlinks ? fs.stat : fs.lstat)(toPath(directory));\n } catch {\n return false;\n }\n return stats.isDirectory();\n}\nvar is_directory_default = isDirectory;\n\n// src/config/searcher.js\nimport path2 from \"path\";\n\n// node_modules/iterate-directory-up/index.js\nimport * as path from \"path\";\nvar toAbsolutePath = (value) => path.resolve(toPath(value));\nfunction* iterateDirectoryUp(from, to) {\n from = toAbsolutePath(from);\n const { root: root2 } = path.parse(from);\n to = to ? toAbsolutePath(to) : root2;\n if (from !== to && !from.startsWith(to)) {\n return;\n }\n for (let directory = from; directory !== to; directory = path.dirname(directory)) {\n yield directory;\n }\n yield to;\n}\nvar iterate_directory_up_default = iterateDirectoryUp;\n\n// src/config/searcher.js\nvar _names, _filter, _stopDirectory, _cache, _Searcher_instances, searchInDirectory_fn;\nvar Searcher = class {\n /**\n * @param {{\n * names: string[],\n * filter: (fileOrDirectory: {name: string, path: string}) => Promise,\n * stopDirectory?: string,\n * }} param0\n */\n constructor({ names, filter: filter2, stopDirectory }) {\n __privateAdd(this, _Searcher_instances);\n __privateAdd(this, _names);\n __privateAdd(this, _filter);\n __privateAdd(this, _stopDirectory);\n __privateAdd(this, _cache, /* @__PURE__ */ new Map());\n __privateSet(this, _names, names);\n __privateSet(this, _filter, filter2);\n __privateSet(this, _stopDirectory, stopDirectory);\n }\n async search(startDirectory, { shouldCache }) {\n const cache3 = __privateGet(this, _cache);\n if (shouldCache && cache3.has(startDirectory)) {\n return cache3.get(startDirectory);\n }\n const searchedDirectories = [];\n let result;\n for (const directory of iterate_directory_up_default(\n startDirectory,\n __privateGet(this, _stopDirectory)\n )) {\n searchedDirectories.push(directory);\n result = await __privateMethod(this, _Searcher_instances, searchInDirectory_fn).call(this, directory, shouldCache);\n if (result) {\n break;\n }\n }\n for (const directory of searchedDirectories) {\n cache3.set(directory, result);\n }\n return result;\n }\n clearCache() {\n __privateGet(this, _cache).clear();\n }\n};\n_names = new WeakMap();\n_filter = new WeakMap();\n_stopDirectory = new WeakMap();\n_cache = new WeakMap();\n_Searcher_instances = new WeakSet();\nsearchInDirectory_fn = async function(directory, shouldCache) {\n const cache3 = __privateGet(this, _cache);\n if (shouldCache && cache3.has(directory)) {\n return cache3.get(directory);\n }\n for (const name of __privateGet(this, _names)) {\n const fileOrDirectory = path2.join(directory, name);\n if (await __privateGet(this, _filter).call(this, { name, path: fileOrDirectory })) {\n return fileOrDirectory;\n }\n }\n};\nvar searcher_default = Searcher;\n\n// src/config/find-project-root.js\nvar MARKERS = [\".git\", \".hg\"];\nvar searcher;\nvar searchOptions = {\n names: MARKERS,\n filter: ({ path: directory }) => is_directory_default(directory, { allowSymlinks: false })\n};\nasync function findProjectRoot(startDirectory, options8) {\n searcher ?? (searcher = new searcher_default(searchOptions));\n const mark = await searcher.search(startDirectory, options8);\n return mark ? path3.dirname(mark) : void 0;\n}\nfunction clearFindProjectRootCache() {\n searcher == null ? void 0 : searcher.clearCache();\n}\n\n// src/config/editorconfig/editorconfig-to-prettier.js\nfunction removeUnset(editorConfig) {\n const result = {};\n const keys = Object.keys(editorConfig);\n for (let i = 0; i < keys.length; i++) {\n const key2 = keys[i];\n if (editorConfig[key2] === \"unset\") {\n continue;\n }\n result[key2] = editorConfig[key2];\n }\n return result;\n}\nfunction editorConfigToPrettier(editorConfig) {\n if (!editorConfig) {\n return null;\n }\n editorConfig = removeUnset(editorConfig);\n if (Object.keys(editorConfig).length === 0) {\n return null;\n }\n const result = {};\n if (editorConfig.indent_style) {\n result.useTabs = editorConfig.indent_style === \"tab\";\n }\n if (editorConfig.indent_size === \"tab\") {\n result.useTabs = true;\n }\n if (result.useTabs && editorConfig.tab_width) {\n result.tabWidth = editorConfig.tab_width;\n } else if (editorConfig.indent_style === \"space\" && editorConfig.indent_size && editorConfig.indent_size !== \"tab\") {\n result.tabWidth = editorConfig.indent_size;\n } else if (editorConfig.tab_width !== void 0) {\n result.tabWidth = editorConfig.tab_width;\n }\n if (editorConfig.max_line_length) {\n if (editorConfig.max_line_length === \"off\") {\n result.printWidth = Number.POSITIVE_INFINITY;\n } else {\n result.printWidth = editorConfig.max_line_length;\n }\n }\n if (editorConfig.quote_type === \"single\") {\n result.singleQuote = true;\n } else if (editorConfig.quote_type === \"double\") {\n result.singleQuote = false;\n }\n if ([\"cr\", \"crlf\", \"lf\"].includes(editorConfig.end_of_line)) {\n result.endOfLine = editorConfig.end_of_line;\n }\n return result;\n}\nvar editorconfig_to_prettier_default = editorConfigToPrettier;\n\n// src/config/editorconfig/index.js\nvar editorconfigCache = /* @__PURE__ */ new Map();\nfunction clearEditorconfigCache() {\n clearFindProjectRootCache();\n editorconfigCache.clear();\n}\nasync function loadEditorconfigInternal(file, { shouldCache }) {\n const directory = path4.dirname(file);\n const root2 = await findProjectRoot(directory, { shouldCache });\n const editorConfig = await import_editorconfig.default.parse(file, { root: root2 });\n const config = editorconfig_to_prettier_default(editorConfig);\n return config;\n}\nfunction loadEditorconfig(file, { shouldCache }) {\n file = path4.resolve(file);\n if (!shouldCache || !editorconfigCache.has(file)) {\n editorconfigCache.set(\n file,\n loadEditorconfigInternal(file, { shouldCache })\n );\n }\n return editorconfigCache.get(file);\n}\n\n// src/config/prettier-config/index.js\nimport path8 from \"path\";\n\n// src/common/mockable.js\nvar import_ci_info = __toESM(require_ci_info(), 1);\nimport fs2 from \"fs/promises\";\n\n// node_modules/get-stdin/index.js\nvar { stdin } = process;\nasync function getStdin() {\n let result = \"\";\n if (stdin.isTTY) {\n return result;\n }\n stdin.setEncoding(\"utf8\");\n for await (const chunk of stdin) {\n result += chunk;\n }\n return result;\n}\ngetStdin.buffer = async () => {\n const result = [];\n let length = 0;\n if (stdin.isTTY) {\n return Buffer.concat([]);\n }\n for await (const chunk of stdin) {\n result.push(chunk);\n length += chunk.length;\n }\n return Buffer.concat(result, length);\n};\n\n// src/common/mockable.js\nfunction writeFormattedFile(file, data) {\n return fs2.writeFile(file, data);\n}\nvar mockable = {\n getPrettierConfigSearchStopDirectory: () => void 0,\n getStdin,\n isCI: () => import_ci_info.isCI,\n writeFormattedFile\n};\nvar mockable_default = mockable;\n\n// src/utils/is-file.js\nimport fs3 from \"fs/promises\";\nasync function isFile(file, options8) {\n const allowSymlinks = (options8 == null ? void 0 : options8.allowSymlinks) ?? true;\n let stats;\n try {\n stats = await (allowSymlinks ? fs3.stat : fs3.lstat)(toPath(file));\n } catch {\n return false;\n }\n return stats.isFile();\n}\nvar is_file_default = isFile;\n\n// src/config/prettier-config/loaders.js\nimport { pathToFileURL as pathToFileURL2 } from \"url\";\n\n// node_modules/js-yaml/dist/js-yaml.mjs\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n return [sequence];\n}\nfunction extend(target, source2) {\n var index, length, key2, sourceKeys;\n if (source2) {\n sourceKeys = Object.keys(source2);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key2 = sourceKeys[index];\n target[key2] = source2[key2];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception2, compact) {\n var where = \"\", message = exception2.reason || \"(unknown reason)\";\n if (!exception2.mark) return message;\n if (exception2.mark.name) {\n where += 'in \"' + exception2.mark.name + '\" ';\n }\n where += \"(\" + (exception2.mark.line + 1) + \":\" + (exception2.mark.column + 1) + \")\";\n if (!compact && exception2.mark.snippet) {\n where += \"\\n\\n\" + exception2.mark.snippet;\n }\n return message + \" \" + where;\n}\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n}\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n};\nvar exception = YAMLException$1;\nfunction getLine(buffer2, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer2.slice(lineStart, lineEnd).replace(/\\t/g, \"\\u2192\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\nfunction makeSnippet(mark, options8) {\n options8 = Object.create(options8 || null);\n if (!mark.buffer) return null;\n if (!options8.maxLength) options8.maxLength = 79;\n if (typeof options8.indent !== \"number\") options8.indent = 1;\n if (typeof options8.linesBefore !== \"number\") options8.linesBefore = 3;\n if (typeof options8.linesAfter !== \"number\") options8.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line3;\n var lineNoLength = Math.min(mark.line + options8.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options8.maxLength - (options8.indent + lineNoLength + 3);\n for (i = 1; i <= options8.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line3 = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options8.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line3.str + \"\\n\" + result;\n }\n line3 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options8.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line3.str + \"\\n\";\n result += common.repeat(\"-\", options8.indent + lineNoLength + 3 + line3.pos) + \"^\\n\";\n for (i = 1; i <= options8.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line3 = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options8.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line3.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\nfunction Type$1(tag, options8) {\n options8 = options8 || {};\n Object.keys(options8).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options8;\n this.tag = tag;\n this.kind = options8[\"kind\"] || null;\n this.resolve = options8[\"resolve\"] || function() {\n return true;\n };\n this.construct = options8[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options8[\"instanceOf\"] || null;\n this.predicate = options8[\"predicate\"] || null;\n this.represent = options8[\"represent\"] || null;\n this.representName = options8[\"representName\"] || null;\n this.defaultStyle = options8[\"defaultStyle\"] || null;\n this.multi = options8[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options8[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: function(data) {\n return data !== null ? data : \"\";\n }\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: function(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: function(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function() {\n return \"~\";\n },\n lowercase: function() {\n return \"null\";\n },\n uppercase: function() {\n return \"NULL\";\n },\n camelcase: function() {\n return \"Null\";\n },\n empty: function() {\n return \"\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function(object) {\n return object ? \"true\" : \"false\";\n },\n uppercase: function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n },\n camelcase: function(object) {\n return object ? \"True\" : \"False\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c2) {\n return 48 <= c2 && c2 <= 57 || 65 <= c2 && c2 <= 70 || 97 <= c2 && c2 <= 102;\n}\nfunction isOctCode(c2) {\n return 48 <= c2 && c2 <= 55;\n}\nfunction isDecCode(c2) {\n return 48 <= c2 && c2 <= 57;\n}\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max) return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\") return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\") return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data, sign2 = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign2 = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign2 * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign2 * parseInt(value.slice(2), 16);\n if (value[1] === \"o\") return sign2 * parseInt(value.slice(2), 8);\n }\n return sign2 * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n },\n octal: function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n },\n decimal: function(obj) {\n return obj.toString(10);\n },\n /* eslint-disable max-len */\n hexadecimal: function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign2;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign2 = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign2 === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign2 * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\") delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64) continue;\n if (code < 0) return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\") return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\") return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key2, object = data;\n for (key2 in object) {\n if (_hasOwnProperty$2.call(object, key2)) {\n if (object[key2] !== null) return false;\n }\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c2) {\n return c2 === 10 || c2 === 13;\n}\nfunction is_WHITE_SPACE(c2) {\n return c2 === 9 || c2 === 32;\n}\nfunction is_WS_OR_EOL(c2) {\n return c2 === 9 || c2 === 32 || c2 === 10 || c2 === 13;\n}\nfunction is_FLOW_INDICATOR(c2) {\n return c2 === 44 || c2 === 91 || c2 === 93 || c2 === 123 || c2 === 125;\n}\nfunction fromHexCode(c2) {\n var lc;\n if (48 <= c2 && c2 <= 57) {\n return c2 - 48;\n }\n lc = c2 | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\nfunction escapedHexLen(c2) {\n if (c2 === 120) {\n return 2;\n }\n if (c2 === 117) {\n return 4;\n }\n if (c2 === 85) {\n return 8;\n }\n return 0;\n}\nfunction fromDecimalCode(c2) {\n if (48 <= c2 && c2 <= 57) {\n return c2 - 48;\n }\n return -1;\n}\nfunction simpleEscapeSequence(c2) {\n return c2 === 48 ? \"\\0\" : c2 === 97 ? \"\\x07\" : c2 === 98 ? \"\\b\" : c2 === 116 ? \"\t\" : c2 === 9 ? \"\t\" : c2 === 110 ? \"\\n\" : c2 === 118 ? \"\\v\" : c2 === 102 ? \"\\f\" : c2 === 114 ? \"\\r\" : c2 === 101 ? \"\\x1B\" : c2 === 32 ? \" \" : c2 === 34 ? '\"' : c2 === 47 ? \"/\" : c2 === 92 ? \"\\\\\" : c2 === 78 ? \"\\x85\" : c2 === 95 ? \"\\xA0\" : c2 === 76 ? \"\\u2028\" : c2 === 80 ? \"\\u2029\" : \"\";\n}\nfunction charFromCodepoint(c2) {\n if (c2 <= 65535) {\n return String.fromCharCode(c2);\n }\n return String.fromCharCode(\n (c2 - 65536 >> 10) + 55296,\n (c2 - 65536 & 1023) + 56320\n );\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nvar i;\nfunction State$1(input, options8) {\n this.input = input;\n this.filename = options8[\"filename\"] || null;\n this.schema = options8[\"schema\"] || _default;\n this.onWarning = options8[\"onWarning\"] || null;\n this.legacy = options8[\"legacy\"] || false;\n this.json = options8[\"json\"] || false;\n this.listener = options8[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) {\n throwError(state, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state, \"unacceptable YAML version of the document\");\n }\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, \"unsupported YAML version of the document\");\n }\n },\n TAG: function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, \"tag prefix is malformed: \" + prefix);\n }\n state.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, \"the stream contains non-printable characters\");\n }\n state.result += _result;\n }\n}\nfunction mergeMappings(state, destination, source2, overridableKeys) {\n var sourceKeys, key2, index, quantity;\n if (!common.isObject(source2)) {\n throwError(state, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source2);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key2 = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key2)) {\n destination[key2] = source2[key2];\n overridableKeys[key2] = true;\n }\n }\n}\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 10) {\n state.position++;\n } else if (ch === 13) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 10) {\n state.position++;\n }\n } else {\n throwError(state, \"a line break is expected\");\n }\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while (ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, \"deficient indentation\");\n }\n return lineBreaks;\n}\nfunction testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += \" \";\n } else if (count > 1) {\n state.result += common.repeat(\"\\n\", count - 1);\n }\n}\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state.kind = \"scalar\";\n state.result = \"\";\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) {\n return true;\n }\n state.kind = _kind;\n state.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 39) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 39) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 34) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state, \"expected hexadecimal character\");\n }\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else {\n throwError(state, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(++state.position);\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? \"mapping\" : \"sequence\";\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line;\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 58) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 44) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n throwError(state, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state.result += \" \";\n }\n } else {\n state.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a sequence entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"sequence\";\n state.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state.position += 1;\n ch = following;\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 58) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) {\n throwError(state, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a mapping entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"mapping\";\n state.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 33) return false;\n if (state.tag !== null) {\n throwError(state, \"duplication of a tag property\");\n }\n ch = state.input.charCodeAt(++state.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state.input.charCodeAt(++state.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state.position;\n if (isVerbatim) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && ch !== 62);\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state.tag = tagName;\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 38) return false;\n if (state.anchor !== null) {\n throwError(state, \"duplication of an anchor property\");\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an anchor node must contain at least one character\");\n }\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 42) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an alias node must contain at least one character\");\n }\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state.listener !== null) {\n state.listener(\"open\", state);\n }\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) {\n state.tag = \"?\";\n }\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n } else if (state.tag === \"?\") {\n if (state.result !== null && state.kind !== \"scalar\") {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state.implicitTypes[typeIndex];\n if (type2.resolve(state.result)) {\n state.result = type2.construct(state.result);\n state.tag = type2.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || \"fallback\"], state.tag)) {\n type2 = state.typeMap[state.kind || \"fallback\"][state.tag];\n } else {\n type2 = null;\n typeList = state.typeMap.multi[state.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state, \"unknown tag !<\" + state.tag + \">\");\n }\n if (state.result !== null && type2.kind !== state.kind) {\n throwError(state, \"unacceptable node kind for !<\" + state.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state.kind + '\"');\n }\n if (!type2.resolve(state.result, state.tag)) {\n throwError(state, \"cannot resolve a node with !<\" + state.tag + \"> explicit tag\");\n } else {\n state.result = type2.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n if (state.listener !== null) {\n state.listener(\"close\", state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\nfunction readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = /* @__PURE__ */ Object.create(null);\n state.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) {\n throwError(state, \"directives end mark is expected\");\n }\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, \"non-ASCII line breaks are interpreted as content\");\n }\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 46) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) {\n throwError(state, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\nfunction loadDocuments(input, options8) {\n input = String(input);\n options8 = options8 || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state = new State$1(input, options8);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, \"null byte is not allowed in input\");\n }\n state.input += \"\\0\";\n while (state.input.charCodeAt(state.position) === 32) {\n state.lineIndent += 1;\n state.position += 1;\n }\n while (state.position < state.length - 1) {\n readDocument(state);\n }\n return state.documents;\n}\nfunction loadAll$1(input, iterator, options8) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options8 === \"undefined\") {\n options8 = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options8);\n if (typeof iterator !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\nfunction load$1(input, options8) {\n var documents = loadDocuments(input, options8);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0] = \"\\\\0\";\nESCAPE_SEQUENCES[7] = \"\\\\a\";\nESCAPE_SEQUENCES[8] = \"\\\\b\";\nESCAPE_SEQUENCES[9] = \"\\\\t\";\nESCAPE_SEQUENCES[10] = \"\\\\n\";\nESCAPE_SEQUENCES[11] = \"\\\\v\";\nESCAPE_SEQUENCES[12] = \"\\\\f\";\nESCAPE_SEQUENCES[13] = \"\\\\r\";\nESCAPE_SEQUENCES[27] = \"\\\\e\";\nESCAPE_SEQUENCES[34] = '\\\\\"';\nESCAPE_SEQUENCES[92] = \"\\\\\\\\\";\nESCAPE_SEQUENCES[133] = \"\\\\N\";\nESCAPE_SEQUENCES[160] = \"\\\\_\";\nESCAPE_SEQUENCES[8232] = \"\\\\L\";\nESCAPE_SEQUENCES[8233] = \"\\\\P\";\nfunction renamed(from, to) {\n return function() {\n throw new Error(\"Function yaml.\" + from + \" is removed in js-yaml 4. Use yaml.\" + to + \" instead, which is now safe by default.\");\n };\n}\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar safeLoad = renamed(\"safeLoad\", \"load\");\nvar safeLoadAll = renamed(\"safeLoadAll\", \"loadAll\");\nvar safeDump = renamed(\"safeDump\", \"dump\");\n\n// node_modules/json5/dist/index.mjs\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\nvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\nvar unicode = {\n Space_Separator,\n ID_Start,\n ID_Continue\n};\nvar util = {\n isSpaceSeparator(c2) {\n return typeof c2 === \"string\" && unicode.Space_Separator.test(c2);\n },\n isIdStartChar(c2) {\n return typeof c2 === \"string\" && (c2 >= \"a\" && c2 <= \"z\" || c2 >= \"A\" && c2 <= \"Z\" || c2 === \"$\" || c2 === \"_\" || unicode.ID_Start.test(c2));\n },\n isIdContinueChar(c2) {\n return typeof c2 === \"string\" && (c2 >= \"a\" && c2 <= \"z\" || c2 >= \"A\" && c2 <= \"Z\" || c2 >= \"0\" && c2 <= \"9\" || c2 === \"$\" || c2 === \"_\" || c2 === \"\\u200C\" || c2 === \"\\u200D\" || unicode.ID_Continue.test(c2));\n },\n isDigit(c2) {\n return typeof c2 === \"string\" && /[0-9]/.test(c2);\n },\n isHexDigit(c2) {\n return typeof c2 === \"string\" && /[0-9A-Fa-f]/.test(c2);\n }\n};\nvar source;\nvar parseState;\nvar stack;\nvar pos;\nvar line;\nvar column;\nvar token;\nvar key;\nvar root;\nvar parse2 = function parse3(text, reviver) {\n source = String(text);\n parseState = \"start\";\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = void 0;\n key = void 0;\n root = void 0;\n do {\n token = lex();\n parseStates[parseState]();\n } while (token.type !== \"eof\");\n if (typeof reviver === \"function\") {\n return internalize({ \"\": root }, \"\", reviver);\n }\n return root;\n};\nfunction internalize(holder, name, reviver) {\n const value = holder[name];\n if (value != null && typeof value === \"object\") {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key2 = String(i);\n const replacement = internalize(value, key2, reviver);\n if (replacement === void 0) {\n delete value[key2];\n } else {\n Object.defineProperty(value, key2, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n } else {\n for (const key2 in value) {\n const replacement = internalize(value, key2, reviver);\n if (replacement === void 0) {\n delete value[key2];\n } else {\n Object.defineProperty(value, key2, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n }\n }\n return reviver.call(holder, name, value);\n}\nvar lexState;\nvar buffer;\nvar doubleQuote;\nvar sign;\nvar c;\nfunction lex() {\n lexState = \"default\";\n buffer = \"\";\n doubleQuote = false;\n sign = 1;\n for (; ; ) {\n c = peek();\n const token2 = lexStates[lexState]();\n if (token2) {\n return token2;\n }\n }\n}\nfunction peek() {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos));\n }\n}\nfunction read() {\n const c2 = peek();\n if (c2 === \"\\n\") {\n line++;\n column = 0;\n } else if (c2) {\n column += c2.length;\n } else {\n column++;\n }\n if (c2) {\n pos += c2.length;\n }\n return c2;\n}\nvar lexStates = {\n default() {\n switch (c) {\n case \"\t\":\n case \"\\v\":\n case \"\\f\":\n case \" \":\n case \"\\xA0\":\n case \"\\uFEFF\":\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n return;\n case \"/\":\n read();\n lexState = \"comment\";\n return;\n case void 0:\n read();\n return newToken(\"eof\");\n }\n if (util.isSpaceSeparator(c)) {\n read();\n return;\n }\n return lexStates[parseState]();\n },\n comment() {\n switch (c) {\n case \"*\":\n read();\n lexState = \"multiLineComment\";\n return;\n case \"/\":\n read();\n lexState = \"singleLineComment\";\n return;\n }\n throw invalidChar(read());\n },\n multiLineComment() {\n switch (c) {\n case \"*\":\n read();\n lexState = \"multiLineCommentAsterisk\";\n return;\n case void 0:\n throw invalidChar(read());\n }\n read();\n },\n multiLineCommentAsterisk() {\n switch (c) {\n case \"*\":\n read();\n return;\n case \"/\":\n read();\n lexState = \"default\";\n return;\n case void 0:\n throw invalidChar(read());\n }\n read();\n lexState = \"multiLineComment\";\n },\n singleLineComment() {\n switch (c) {\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n lexState = \"default\";\n return;\n case void 0:\n read();\n return newToken(\"eof\");\n }\n read();\n },\n value() {\n switch (c) {\n case \"{\":\n case \"[\":\n return newToken(\"punctuator\", read());\n case \"n\":\n read();\n literal(\"ull\");\n return newToken(\"null\", null);\n case \"t\":\n read();\n literal(\"rue\");\n return newToken(\"boolean\", true);\n case \"f\":\n read();\n literal(\"alse\");\n return newToken(\"boolean\", false);\n case \"-\":\n case \"+\":\n if (read() === \"-\") {\n sign = -1;\n }\n lexState = \"sign\";\n return;\n case \".\":\n buffer = read();\n lexState = \"decimalPointLeading\";\n return;\n case \"0\":\n buffer = read();\n lexState = \"zero\";\n return;\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n buffer = read();\n lexState = \"decimalInteger\";\n return;\n case \"I\":\n read();\n literal(\"nfinity\");\n return newToken(\"numeric\", Infinity);\n case \"N\":\n read();\n literal(\"aN\");\n return newToken(\"numeric\", NaN);\n case '\"':\n case \"'\":\n doubleQuote = read() === '\"';\n buffer = \"\";\n lexState = \"string\";\n return;\n }\n throw invalidChar(read());\n },\n identifierNameStartEscape() {\n if (c !== \"u\") {\n throw invalidChar(read());\n }\n read();\n const u = unicodeEscape();\n switch (u) {\n case \"$\":\n case \"_\":\n break;\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier();\n }\n break;\n }\n buffer += u;\n lexState = \"identifierName\";\n },\n identifierName() {\n switch (c) {\n case \"$\":\n case \"_\":\n case \"\\u200C\":\n case \"\\u200D\":\n buffer += read();\n return;\n case \"\\\\\":\n read();\n lexState = \"identifierNameEscape\";\n return;\n }\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return;\n }\n return newToken(\"identifier\", buffer);\n },\n identifierNameEscape() {\n if (c !== \"u\") {\n throw invalidChar(read());\n }\n read();\n const u = unicodeEscape();\n switch (u) {\n case \"$\":\n case \"_\":\n case \"\\u200C\":\n case \"\\u200D\":\n break;\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier();\n }\n break;\n }\n buffer += u;\n lexState = \"identifierName\";\n },\n sign() {\n switch (c) {\n case \".\":\n buffer = read();\n lexState = \"decimalPointLeading\";\n return;\n case \"0\":\n buffer = read();\n lexState = \"zero\";\n return;\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n buffer = read();\n lexState = \"decimalInteger\";\n return;\n case \"I\":\n read();\n literal(\"nfinity\");\n return newToken(\"numeric\", sign * Infinity);\n case \"N\":\n read();\n literal(\"aN\");\n return newToken(\"numeric\", NaN);\n }\n throw invalidChar(read());\n },\n zero() {\n switch (c) {\n case \".\":\n buffer += read();\n lexState = \"decimalPoint\";\n return;\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n case \"x\":\n case \"X\":\n buffer += read();\n lexState = \"hexadecimal\";\n return;\n }\n return newToken(\"numeric\", sign * 0);\n },\n decimalInteger() {\n switch (c) {\n case \".\":\n buffer += read();\n lexState = \"decimalPoint\";\n return;\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n decimalPointLeading() {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalFraction\";\n return;\n }\n throw invalidChar(read());\n },\n decimalPoint() {\n switch (c) {\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalFraction\";\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n decimalFraction() {\n switch (c) {\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n decimalExponent() {\n switch (c) {\n case \"+\":\n case \"-\":\n buffer += read();\n lexState = \"decimalExponentSign\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalExponentInteger\";\n return;\n }\n throw invalidChar(read());\n },\n decimalExponentSign() {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalExponentInteger\";\n return;\n }\n throw invalidChar(read());\n },\n decimalExponentInteger() {\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n hexadecimal() {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = \"hexadecimalInteger\";\n return;\n }\n throw invalidChar(read());\n },\n hexadecimalInteger() {\n if (util.isHexDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n string() {\n switch (c) {\n case \"\\\\\":\n read();\n buffer += escape();\n return;\n case '\"':\n if (doubleQuote) {\n read();\n return newToken(\"string\", buffer);\n }\n buffer += read();\n return;\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken(\"string\", buffer);\n }\n buffer += read();\n return;\n case \"\\n\":\n case \"\\r\":\n throw invalidChar(read());\n case \"\\u2028\":\n case \"\\u2029\":\n separatorChar(c);\n break;\n case void 0:\n throw invalidChar(read());\n }\n buffer += read();\n },\n start() {\n switch (c) {\n case \"{\":\n case \"[\":\n return newToken(\"punctuator\", read());\n }\n lexState = \"value\";\n },\n beforePropertyName() {\n switch (c) {\n case \"$\":\n case \"_\":\n buffer = read();\n lexState = \"identifierName\";\n return;\n case \"\\\\\":\n read();\n lexState = \"identifierNameStartEscape\";\n return;\n case \"}\":\n return newToken(\"punctuator\", read());\n case '\"':\n case \"'\":\n doubleQuote = read() === '\"';\n lexState = \"string\";\n return;\n }\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = \"identifierName\";\n return;\n }\n throw invalidChar(read());\n },\n afterPropertyName() {\n if (c === \":\") {\n return newToken(\"punctuator\", read());\n }\n throw invalidChar(read());\n },\n beforePropertyValue() {\n lexState = \"value\";\n },\n afterPropertyValue() {\n switch (c) {\n case \",\":\n case \"}\":\n return newToken(\"punctuator\", read());\n }\n throw invalidChar(read());\n },\n beforeArrayValue() {\n if (c === \"]\") {\n return newToken(\"punctuator\", read());\n }\n lexState = \"value\";\n },\n afterArrayValue() {\n switch (c) {\n case \",\":\n case \"]\":\n return newToken(\"punctuator\", read());\n }\n throw invalidChar(read());\n },\n end() {\n throw invalidChar(read());\n }\n};\nfunction newToken(type2, value) {\n return {\n type: type2,\n value,\n line,\n column\n };\n}\nfunction literal(s) {\n for (const c2 of s) {\n const p = peek();\n if (p !== c2) {\n throw invalidChar(read());\n }\n read();\n }\n}\nfunction escape() {\n const c2 = peek();\n switch (c2) {\n case \"b\":\n read();\n return \"\\b\";\n case \"f\":\n read();\n return \"\\f\";\n case \"n\":\n read();\n return \"\\n\";\n case \"r\":\n read();\n return \"\\r\";\n case \"t\":\n read();\n return \"\t\";\n case \"v\":\n read();\n return \"\\v\";\n case \"0\":\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read());\n }\n return \"\\0\";\n case \"x\":\n read();\n return hexEscape();\n case \"u\":\n read();\n return unicodeEscape();\n case \"\\n\":\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n return \"\";\n case \"\\r\":\n read();\n if (peek() === \"\\n\") {\n read();\n }\n return \"\";\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n throw invalidChar(read());\n case void 0:\n throw invalidChar(read());\n }\n return read();\n}\nfunction hexEscape() {\n let buffer2 = \"\";\n let c2 = peek();\n if (!util.isHexDigit(c2)) {\n throw invalidChar(read());\n }\n buffer2 += read();\n c2 = peek();\n if (!util.isHexDigit(c2)) {\n throw invalidChar(read());\n }\n buffer2 += read();\n return String.fromCodePoint(parseInt(buffer2, 16));\n}\nfunction unicodeEscape() {\n let buffer2 = \"\";\n let count = 4;\n while (count-- > 0) {\n const c2 = peek();\n if (!util.isHexDigit(c2)) {\n throw invalidChar(read());\n }\n buffer2 += read();\n }\n return String.fromCodePoint(parseInt(buffer2, 16));\n}\nvar parseStates = {\n start() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n push();\n },\n beforePropertyName() {\n switch (token.type) {\n case \"identifier\":\n case \"string\":\n key = token.value;\n parseState = \"afterPropertyName\";\n return;\n case \"punctuator\":\n pop();\n return;\n case \"eof\":\n throw invalidEOF();\n }\n },\n afterPropertyName() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n parseState = \"beforePropertyValue\";\n },\n beforePropertyValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n push();\n },\n beforeArrayValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n if (token.type === \"punctuator\" && token.value === \"]\") {\n pop();\n return;\n }\n push();\n },\n afterPropertyValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n switch (token.value) {\n case \",\":\n parseState = \"beforePropertyName\";\n return;\n case \"}\":\n pop();\n }\n },\n afterArrayValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n switch (token.value) {\n case \",\":\n parseState = \"beforeArrayValue\";\n return;\n case \"]\":\n pop();\n }\n },\n end() {\n }\n};\nfunction push() {\n let value;\n switch (token.type) {\n case \"punctuator\":\n switch (token.value) {\n case \"{\":\n value = {};\n break;\n case \"[\":\n value = [];\n break;\n }\n break;\n case \"null\":\n case \"boolean\":\n case \"numeric\":\n case \"string\":\n value = token.value;\n break;\n }\n if (root === void 0) {\n root = value;\n } else {\n const parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n if (value !== null && typeof value === \"object\") {\n stack.push(value);\n if (Array.isArray(value)) {\n parseState = \"beforeArrayValue\";\n } else {\n parseState = \"beforePropertyName\";\n }\n } else {\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = \"end\";\n } else if (Array.isArray(current)) {\n parseState = \"afterArrayValue\";\n } else {\n parseState = \"afterPropertyValue\";\n }\n }\n}\nfunction pop() {\n stack.pop();\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = \"end\";\n } else if (Array.isArray(current)) {\n parseState = \"afterArrayValue\";\n } else {\n parseState = \"afterPropertyValue\";\n }\n}\nfunction invalidChar(c2) {\n if (c2 === void 0) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);\n }\n return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`);\n}\nfunction invalidEOF() {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);\n}\nfunction invalidIdentifier() {\n column -= 5;\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);\n}\nfunction separatorChar(c2) {\n console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`);\n}\nfunction formatChar(c2) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\",\n \"\\b\": \"\\\\b\",\n \"\\f\": \"\\\\f\",\n \"\\n\": \"\\\\n\",\n \"\\r\": \"\\\\r\",\n \"\t\": \"\\\\t\",\n \"\\v\": \"\\\\v\",\n \"\\0\": \"\\\\0\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n };\n if (replacements[c2]) {\n return replacements[c2];\n }\n if (c2 < \" \") {\n const hexString = c2.charCodeAt(0).toString(16);\n return \"\\\\x\" + (\"00\" + hexString).substring(hexString.length);\n }\n return c2;\n}\nfunction syntaxError(message) {\n const err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err;\n}\nvar dist_default = { parse: parse2 };\n\n// node_modules/parse-json/index.js\nvar import_code_frame = __toESM(require_lib2(), 1);\n\n// node_modules/index-to-position/index.js\nvar safeLastIndexOf = (string, searchString, index) => index < 0 ? -1 : string.lastIndexOf(searchString, index);\nfunction getPosition(text, textIndex) {\n const lineBreakBefore = safeLastIndexOf(text, \"\\n\", textIndex - 1);\n const column2 = textIndex - lineBreakBefore - 1;\n let line3 = 0;\n for (let index = lineBreakBefore; index >= 0; index = safeLastIndexOf(text, \"\\n\", index - 1)) {\n line3++;\n }\n return { line: line3, column: column2 };\n}\nfunction indexToLineColumn(text, textIndex, { oneBased = false } = {}) {\n if (textIndex < 0 || textIndex >= text.length && text.length > 0) {\n throw new RangeError(\"Index out of bounds\");\n }\n const position = getPosition(text, textIndex);\n return oneBased ? { line: position.line + 1, column: position.column + 1 } : position;\n}\n\n// node_modules/parse-json/index.js\nvar getCodePoint = (character) => `\\\\u{${character.codePointAt(0).toString(16)}}`;\nvar _message;\nvar _JSONError = class _JSONError extends Error {\n constructor(message) {\n var _a;\n super();\n __publicField(this, \"name\", \"JSONError\");\n __publicField(this, \"fileName\");\n __publicField(this, \"codeFrame\");\n __publicField(this, \"rawCodeFrame\");\n __privateAdd(this, _message);\n __privateSet(this, _message, message);\n (_a = Error.captureStackTrace) == null ? void 0 : _a.call(Error, this, _JSONError);\n }\n get message() {\n const { fileName, codeFrame } = this;\n return `${__privateGet(this, _message)}${fileName ? ` in ${fileName}` : \"\"}${codeFrame ? `\n\n${codeFrame}\n` : \"\"}`;\n }\n set message(message) {\n __privateSet(this, _message, message);\n }\n};\n_message = new WeakMap();\nvar JSONError = _JSONError;\nvar generateCodeFrame = (string, location, highlightCode = true) => (0, import_code_frame.codeFrameColumns)(string, { start: location }, { highlightCode });\nvar getErrorLocation = (string, message) => {\n const match = message.match(/in JSON at position (?\\d+)(?: \\(line (?\\d+) column (?\\d+)\\))?$/);\n if (!match) {\n return;\n }\n let { index, line: line3, column: column2 } = match.groups;\n if (line3 && column2) {\n return { line: Number(line3), column: Number(column2) };\n }\n index = Number(index);\n if (index === string.length) {\n const { line: line4, column: column3 } = indexToLineColumn(string, string.length - 1, { oneBased: true });\n return { line: line4, column: column3 + 1 };\n }\n return indexToLineColumn(string, index, { oneBased: true });\n};\nvar addCodePointToUnexpectedToken = (message) => message.replace(\n // TODO[engine:node@>=20]: The token always quoted after Node.js 20\n /(?<=^Unexpected token )(?')?(.)\\k/,\n (_, _quote, token2) => `\"${token2}\"(${getCodePoint(token2)})`\n);\nfunction parseJson(string, reviver, fileName) {\n if (typeof reviver === \"string\") {\n fileName = reviver;\n reviver = void 0;\n }\n let message;\n try {\n return JSON.parse(string, reviver);\n } catch (error) {\n message = error.message;\n }\n let location;\n if (string) {\n location = getErrorLocation(string, message);\n message = addCodePointToUnexpectedToken(message);\n } else {\n message += \" while parsing empty string\";\n }\n const jsonError = new JSONError(message);\n jsonError.fileName = fileName;\n if (location) {\n jsonError.codeFrame = generateCodeFrame(string, location);\n jsonError.rawCodeFrame = generateCodeFrame(\n string,\n location,\n /* highlightCode */\n false\n );\n }\n throw jsonError;\n}\n\n// node_modules/smol-toml/dist/error.js\nfunction getLineColFromPtr(string, ptr) {\n let lines = string.slice(0, ptr).split(/\\r\\n|\\n|\\r/g);\n return [lines.length, lines.pop().length + 1];\n}\nfunction makeCodeBlock(string, line3, column2) {\n let lines = string.split(/\\r\\n|\\n|\\r/g);\n let codeblock = \"\";\n let numberLen = (Math.log10(line3 + 1) | 0) + 1;\n for (let i = line3 - 1; i <= line3 + 1; i++) {\n let l = lines[i - 1];\n if (!l)\n continue;\n codeblock += i.toString().padEnd(numberLen, \" \");\n codeblock += \": \";\n codeblock += l;\n codeblock += \"\\n\";\n if (i === line3) {\n codeblock += \" \".repeat(numberLen + column2 + 2);\n codeblock += \"^\\n\";\n }\n }\n return codeblock;\n}\nvar TomlError = class extends Error {\n line;\n column;\n codeblock;\n constructor(message, options8) {\n const [line3, column2] = getLineColFromPtr(options8.toml, options8.ptr);\n const codeblock = makeCodeBlock(options8.toml, line3, column2);\n super(`Invalid TOML document: ${message}\n\n${codeblock}`, options8);\n this.line = line3;\n this.column = column2;\n this.codeblock = codeblock;\n }\n};\n\n// node_modules/smol-toml/dist/util.js\nfunction indexOfNewline(str2, start = 0, end = str2.length) {\n let idx = str2.indexOf(\"\\n\", start);\n if (str2[idx - 1] === \"\\r\")\n idx--;\n return idx <= end ? idx : -1;\n}\nfunction skipComment(str2, ptr) {\n for (let i = ptr; i < str2.length; i++) {\n let c2 = str2[i];\n if (c2 === \"\\n\")\n return i;\n if (c2 === \"\\r\" && str2[i + 1] === \"\\n\")\n return i + 1;\n if (c2 < \" \" && c2 !== \"\t\" || c2 === \"\\x7F\") {\n throw new TomlError(\"control characters are not allowed in comments\", {\n toml: str2,\n ptr\n });\n }\n }\n return str2.length;\n}\nfunction skipVoid(str2, ptr, banNewLines, banComments) {\n let c2;\n while ((c2 = str2[ptr]) === \" \" || c2 === \"\t\" || !banNewLines && (c2 === \"\\n\" || c2 === \"\\r\" && str2[ptr + 1] === \"\\n\"))\n ptr++;\n return banComments || c2 !== \"#\" ? ptr : skipVoid(str2, skipComment(str2, ptr), banNewLines);\n}\nfunction skipUntil(str2, ptr, sep, end, banNewLines = false) {\n if (!end) {\n ptr = indexOfNewline(str2, ptr);\n return ptr < 0 ? str2.length : ptr;\n }\n for (let i = ptr; i < str2.length; i++) {\n let c2 = str2[i];\n if (c2 === \"#\") {\n i = indexOfNewline(str2, i);\n } else if (c2 === sep) {\n return i + 1;\n } else if (c2 === end) {\n return i;\n } else if (banNewLines && (c2 === \"\\n\" || c2 === \"\\r\" && str2[i + 1] === \"\\n\")) {\n return i;\n }\n }\n throw new TomlError(\"cannot find end of structure\", {\n toml: str2,\n ptr\n });\n}\nfunction getStringEnd(str2, seek) {\n let first = str2[seek];\n let target = first === str2[seek + 1] && str2[seek + 1] === str2[seek + 2] ? str2.slice(seek, seek + 3) : first;\n seek += target.length - 1;\n do\n seek = str2.indexOf(target, ++seek);\n while (seek > -1 && first !== \"'\" && str2[seek - 1] === \"\\\\\" && str2[seek - 2] !== \"\\\\\");\n if (seek > -1) {\n seek += target.length;\n if (target.length > 1) {\n if (str2[seek] === first)\n seek++;\n if (str2[seek] === first)\n seek++;\n }\n }\n return seek;\n}\n\n// node_modules/smol-toml/dist/date.js\nvar DATE_TIME_RE = /^(\\d{4}-\\d{2}-\\d{2})?[T ]?(?:(\\d{2}):\\d{2}:\\d{2}(?:\\.\\d+)?)?(Z|[-+]\\d{2}:\\d{2})?$/i;\nvar _hasDate, _hasTime, _offset;\nvar _TomlDate = class _TomlDate extends Date {\n constructor(date) {\n let hasDate = true;\n let hasTime = true;\n let offset = \"Z\";\n if (typeof date === \"string\") {\n let match = date.match(DATE_TIME_RE);\n if (match) {\n if (!match[1]) {\n hasDate = false;\n date = `0000-01-01T${date}`;\n }\n hasTime = !!match[2];\n if (match[2] && +match[2] > 23) {\n date = \"\";\n } else {\n offset = match[3] || null;\n date = date.toUpperCase();\n if (!offset && hasTime)\n date += \"Z\";\n }\n } else {\n date = \"\";\n }\n }\n super(date);\n __privateAdd(this, _hasDate, false);\n __privateAdd(this, _hasTime, false);\n __privateAdd(this, _offset, null);\n if (!isNaN(this.getTime())) {\n __privateSet(this, _hasDate, hasDate);\n __privateSet(this, _hasTime, hasTime);\n __privateSet(this, _offset, offset);\n }\n }\n isDateTime() {\n return __privateGet(this, _hasDate) && __privateGet(this, _hasTime);\n }\n isLocal() {\n return !__privateGet(this, _hasDate) || !__privateGet(this, _hasTime) || !__privateGet(this, _offset);\n }\n isDate() {\n return __privateGet(this, _hasDate) && !__privateGet(this, _hasTime);\n }\n isTime() {\n return __privateGet(this, _hasTime) && !__privateGet(this, _hasDate);\n }\n isValid() {\n return __privateGet(this, _hasDate) || __privateGet(this, _hasTime);\n }\n toISOString() {\n let iso = super.toISOString();\n if (this.isDate())\n return iso.slice(0, 10);\n if (this.isTime())\n return iso.slice(11, 23);\n if (__privateGet(this, _offset) === null)\n return iso.slice(0, -1);\n if (__privateGet(this, _offset) === \"Z\")\n return iso;\n let offset = +__privateGet(this, _offset).slice(1, 3) * 60 + +__privateGet(this, _offset).slice(4, 6);\n offset = __privateGet(this, _offset)[0] === \"-\" ? offset : -offset;\n let offsetDate = new Date(this.getTime() - offset * 6e4);\n return offsetDate.toISOString().slice(0, -1) + __privateGet(this, _offset);\n }\n static wrapAsOffsetDateTime(jsDate, offset = \"Z\") {\n let date = new _TomlDate(jsDate);\n __privateSet(date, _offset, offset);\n return date;\n }\n static wrapAsLocalDateTime(jsDate) {\n let date = new _TomlDate(jsDate);\n __privateSet(date, _offset, null);\n return date;\n }\n static wrapAsLocalDate(jsDate) {\n let date = new _TomlDate(jsDate);\n __privateSet(date, _hasTime, false);\n __privateSet(date, _offset, null);\n return date;\n }\n static wrapAsLocalTime(jsDate) {\n let date = new _TomlDate(jsDate);\n __privateSet(date, _hasDate, false);\n __privateSet(date, _offset, null);\n return date;\n }\n};\n_hasDate = new WeakMap();\n_hasTime = new WeakMap();\n_offset = new WeakMap();\nvar TomlDate = _TomlDate;\n\n// node_modules/smol-toml/dist/primitive.js\nvar INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\\d(_?\\d)*))$/;\nvar FLOAT_REGEX = /^[+-]?\\d(_?\\d)*(\\.\\d(_?\\d)*)?([eE][+-]?\\d(_?\\d)*)?$/;\nvar LEADING_ZERO = /^[+-]?0[0-9_]/;\nvar ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i;\nvar ESC_MAP = {\n b: \"\\b\",\n t: \"\t\",\n n: \"\\n\",\n f: \"\\f\",\n r: \"\\r\",\n '\"': '\"',\n \"\\\\\": \"\\\\\"\n};\nfunction parseString(str2, ptr = 0, endPtr = str2.length) {\n let isLiteral = str2[ptr] === \"'\";\n let isMultiline = str2[ptr++] === str2[ptr] && str2[ptr] === str2[ptr + 1];\n if (isMultiline) {\n endPtr -= 2;\n if (str2[ptr += 2] === \"\\r\")\n ptr++;\n if (str2[ptr] === \"\\n\")\n ptr++;\n }\n let tmp = 0;\n let isEscape;\n let parsed = \"\";\n let sliceStart = ptr;\n while (ptr < endPtr - 1) {\n let c2 = str2[ptr++];\n if (c2 === \"\\n\" || c2 === \"\\r\" && str2[ptr] === \"\\n\") {\n if (!isMultiline) {\n throw new TomlError(\"newlines are not allowed in strings\", {\n toml: str2,\n ptr: ptr - 1\n });\n }\n } else if (c2 < \" \" && c2 !== \"\t\" || c2 === \"\\x7F\") {\n throw new TomlError(\"control characters are not allowed in strings\", {\n toml: str2,\n ptr: ptr - 1\n });\n }\n if (isEscape) {\n isEscape = false;\n if (c2 === \"u\" || c2 === \"U\") {\n let code = str2.slice(ptr, ptr += c2 === \"u\" ? 4 : 8);\n if (!ESCAPE_REGEX.test(code)) {\n throw new TomlError(\"invalid unicode escape\", {\n toml: str2,\n ptr: tmp\n });\n }\n try {\n parsed += String.fromCodePoint(parseInt(code, 16));\n } catch {\n throw new TomlError(\"invalid unicode escape\", {\n toml: str2,\n ptr: tmp\n });\n }\n } else if (isMultiline && (c2 === \"\\n\" || c2 === \" \" || c2 === \"\t\" || c2 === \"\\r\")) {\n ptr = skipVoid(str2, ptr - 1, true);\n if (str2[ptr] !== \"\\n\" && str2[ptr] !== \"\\r\") {\n throw new TomlError(\"invalid escape: only line-ending whitespace may be escaped\", {\n toml: str2,\n ptr: tmp\n });\n }\n ptr = skipVoid(str2, ptr);\n } else if (c2 in ESC_MAP) {\n parsed += ESC_MAP[c2];\n } else {\n throw new TomlError(\"unrecognized escape sequence\", {\n toml: str2,\n ptr: tmp\n });\n }\n sliceStart = ptr;\n } else if (!isLiteral && c2 === \"\\\\\") {\n tmp = ptr - 1;\n isEscape = true;\n parsed += str2.slice(sliceStart, tmp);\n }\n }\n return parsed + str2.slice(sliceStart, endPtr - 1);\n}\nfunction parseValue(value, toml, ptr) {\n if (value === \"true\")\n return true;\n if (value === \"false\")\n return false;\n if (value === \"-inf\")\n return -Infinity;\n if (value === \"inf\" || value === \"+inf\")\n return Infinity;\n if (value === \"nan\" || value === \"+nan\" || value === \"-nan\")\n return NaN;\n if (value === \"-0\")\n return 0;\n let isInt2;\n if ((isInt2 = INT_REGEX.test(value)) || FLOAT_REGEX.test(value)) {\n if (LEADING_ZERO.test(value)) {\n throw new TomlError(\"leading zeroes are not allowed\", {\n toml,\n ptr\n });\n }\n let numeric = +value.replace(/_/g, \"\");\n if (isNaN(numeric)) {\n throw new TomlError(\"invalid number\", {\n toml,\n ptr\n });\n }\n if (isInt2 && !Number.isSafeInteger(numeric)) {\n throw new TomlError(\"integer value cannot be represented losslessly\", {\n toml,\n ptr\n });\n }\n return numeric;\n }\n let date = new TomlDate(value);\n if (!date.isValid()) {\n throw new TomlError(\"invalid value\", {\n toml,\n ptr\n });\n }\n return date;\n}\n\n// node_modules/smol-toml/dist/extract.js\nfunction sliceAndTrimEndOf(str2, startPtr, endPtr, allowNewLines) {\n let value = str2.slice(startPtr, endPtr);\n let commentIdx = value.indexOf(\"#\");\n if (commentIdx > -1) {\n skipComment(str2, commentIdx);\n value = value.slice(0, commentIdx);\n }\n let trimmed = value.trimEnd();\n if (!allowNewLines) {\n let newlineIdx = value.indexOf(\"\\n\", trimmed.length);\n if (newlineIdx > -1) {\n throw new TomlError(\"newlines are not allowed in inline tables\", {\n toml: str2,\n ptr: startPtr + newlineIdx\n });\n }\n }\n return [trimmed, commentIdx];\n}\nfunction extractValue(str2, ptr, end, depth) {\n if (depth === 0) {\n throw new TomlError(\"document contains excessively nested structures. aborting.\", {\n toml: str2,\n ptr\n });\n }\n let c2 = str2[ptr];\n if (c2 === \"[\" || c2 === \"{\") {\n let [value, endPtr2] = c2 === \"[\" ? parseArray(str2, ptr, depth) : parseInlineTable(str2, ptr, depth);\n let newPtr = skipUntil(str2, endPtr2, \",\", end);\n if (end === \"}\") {\n let nextNewLine = indexOfNewline(str2, endPtr2, newPtr);\n if (nextNewLine > -1) {\n throw new TomlError(\"newlines are not allowed in inline tables\", {\n toml: str2,\n ptr: nextNewLine\n });\n }\n }\n return [value, newPtr];\n }\n let endPtr;\n if (c2 === '\"' || c2 === \"'\") {\n endPtr = getStringEnd(str2, ptr);\n let parsed = parseString(str2, ptr, endPtr);\n if (end) {\n endPtr = skipVoid(str2, endPtr, end !== \"]\");\n if (str2[endPtr] && str2[endPtr] !== \",\" && str2[endPtr] !== end && str2[endPtr] !== \"\\n\" && str2[endPtr] !== \"\\r\") {\n throw new TomlError(\"unexpected character encountered\", {\n toml: str2,\n ptr: endPtr\n });\n }\n endPtr += +(str2[endPtr] === \",\");\n }\n return [parsed, endPtr];\n }\n endPtr = skipUntil(str2, ptr, \",\", end);\n let slice = sliceAndTrimEndOf(str2, ptr, endPtr - +(str2[endPtr - 1] === \",\"), end === \"]\");\n if (!slice[0]) {\n throw new TomlError(\"incomplete key-value declaration: no value specified\", {\n toml: str2,\n ptr\n });\n }\n if (end && slice[1] > -1) {\n endPtr = skipVoid(str2, ptr + slice[1]);\n endPtr += +(str2[endPtr] === \",\");\n }\n return [\n parseValue(slice[0], str2, ptr),\n endPtr\n ];\n}\n\n// node_modules/smol-toml/dist/struct.js\nvar KEY_PART_RE = /^[a-zA-Z0-9-_]+[ \\t]*$/;\nfunction parseKey(str2, ptr, end = \"=\") {\n let dot = ptr - 1;\n let parsed = [];\n let endPtr = str2.indexOf(end, ptr);\n if (endPtr < 0) {\n throw new TomlError(\"incomplete key-value: cannot find end of key\", {\n toml: str2,\n ptr\n });\n }\n do {\n let c2 = str2[ptr = ++dot];\n if (c2 !== \" \" && c2 !== \"\t\") {\n if (c2 === '\"' || c2 === \"'\") {\n if (c2 === str2[ptr + 1] && c2 === str2[ptr + 2]) {\n throw new TomlError(\"multiline strings are not allowed in keys\", {\n toml: str2,\n ptr\n });\n }\n let eos = getStringEnd(str2, ptr);\n if (eos < 0) {\n throw new TomlError(\"unfinished string encountered\", {\n toml: str2,\n ptr\n });\n }\n dot = str2.indexOf(\".\", eos);\n let strEnd = str2.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot);\n let newLine = indexOfNewline(strEnd);\n if (newLine > -1) {\n throw new TomlError(\"newlines are not allowed in keys\", {\n toml: str2,\n ptr: ptr + dot + newLine\n });\n }\n if (strEnd.trimStart()) {\n throw new TomlError(\"found extra tokens after the string part\", {\n toml: str2,\n ptr: eos\n });\n }\n if (endPtr < eos) {\n endPtr = str2.indexOf(end, eos);\n if (endPtr < 0) {\n throw new TomlError(\"incomplete key-value: cannot find end of key\", {\n toml: str2,\n ptr\n });\n }\n }\n parsed.push(parseString(str2, ptr, eos));\n } else {\n dot = str2.indexOf(\".\", ptr);\n let part = str2.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot);\n if (!KEY_PART_RE.test(part)) {\n throw new TomlError(\"only letter, numbers, dashes and underscores are allowed in keys\", {\n toml: str2,\n ptr\n });\n }\n parsed.push(part.trimEnd());\n }\n }\n } while (dot + 1 && dot < endPtr);\n return [parsed, skipVoid(str2, endPtr + 1, true, true)];\n}\nfunction parseInlineTable(str2, ptr, depth) {\n let res = {};\n let seen = /* @__PURE__ */ new Set();\n let c2;\n let comma = 0;\n ptr++;\n while ((c2 = str2[ptr++]) !== \"}\" && c2) {\n if (c2 === \"\\n\") {\n throw new TomlError(\"newlines are not allowed in inline tables\", {\n toml: str2,\n ptr: ptr - 1\n });\n } else if (c2 === \"#\") {\n throw new TomlError(\"inline tables cannot contain comments\", {\n toml: str2,\n ptr: ptr - 1\n });\n } else if (c2 === \",\") {\n throw new TomlError(\"expected key-value, found comma\", {\n toml: str2,\n ptr: ptr - 1\n });\n } else if (c2 !== \" \" && c2 !== \"\t\") {\n let k;\n let t = res;\n let hasOwn = false;\n let [key2, keyEndPtr] = parseKey(str2, ptr - 1);\n for (let i = 0; i < key2.length; i++) {\n if (i)\n t = hasOwn ? t[k] : t[k] = {};\n k = key2[i];\n if ((hasOwn = Object.hasOwn(t, k)) && (typeof t[k] !== \"object\" || seen.has(t[k]))) {\n throw new TomlError(\"trying to redefine an already defined value\", {\n toml: str2,\n ptr\n });\n }\n if (!hasOwn && k === \"__proto__\") {\n Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });\n }\n }\n if (hasOwn) {\n throw new TomlError(\"trying to redefine an already defined value\", {\n toml: str2,\n ptr\n });\n }\n let [value, valueEndPtr] = extractValue(str2, keyEndPtr, \"}\", depth - 1);\n seen.add(value);\n t[k] = value;\n ptr = valueEndPtr;\n comma = str2[ptr - 1] === \",\" ? ptr - 1 : 0;\n }\n }\n if (comma) {\n throw new TomlError(\"trailing commas are not allowed in inline tables\", {\n toml: str2,\n ptr: comma\n });\n }\n if (!c2) {\n throw new TomlError(\"unfinished table encountered\", {\n toml: str2,\n ptr\n });\n }\n return [res, ptr];\n}\nfunction parseArray(str2, ptr, depth) {\n let res = [];\n let c2;\n ptr++;\n while ((c2 = str2[ptr++]) !== \"]\" && c2) {\n if (c2 === \",\") {\n throw new TomlError(\"expected value, found comma\", {\n toml: str2,\n ptr: ptr - 1\n });\n } else if (c2 === \"#\")\n ptr = skipComment(str2, ptr);\n else if (c2 !== \" \" && c2 !== \"\t\" && c2 !== \"\\n\" && c2 !== \"\\r\") {\n let e = extractValue(str2, ptr - 1, \"]\", depth - 1);\n res.push(e[0]);\n ptr = e[1];\n }\n }\n if (!c2) {\n throw new TomlError(\"unfinished array encountered\", {\n toml: str2,\n ptr\n });\n }\n return [res, ptr];\n}\n\n// node_modules/smol-toml/dist/parse.js\nfunction peekTable(key2, table, meta, type2) {\n var _a, _b;\n let t = table;\n let m = meta;\n let k;\n let hasOwn = false;\n let state;\n for (let i = 0; i < key2.length; i++) {\n if (i) {\n t = hasOwn ? t[k] : t[k] = {};\n m = (state = m[k]).c;\n if (type2 === 0 && (state.t === 1 || state.t === 2)) {\n return null;\n }\n if (state.t === 2) {\n let l = t.length - 1;\n t = t[l];\n m = m[l].c;\n }\n }\n k = key2[i];\n if ((hasOwn = Object.hasOwn(t, k)) && ((_a = m[k]) == null ? void 0 : _a.t) === 0 && ((_b = m[k]) == null ? void 0 : _b.d)) {\n return null;\n }\n if (!hasOwn) {\n if (k === \"__proto__\") {\n Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });\n Object.defineProperty(m, k, { enumerable: true, configurable: true, writable: true });\n }\n m[k] = {\n t: i < key2.length - 1 && type2 === 2 ? 3 : type2,\n d: false,\n i: 0,\n c: {}\n };\n }\n }\n state = m[k];\n if (state.t !== type2 && !(type2 === 1 && state.t === 3)) {\n return null;\n }\n if (type2 === 2) {\n if (!state.d) {\n state.d = true;\n t[k] = [];\n }\n t[k].push(t = {});\n state.c[state.i++] = state = { t: 1, d: false, i: 0, c: {} };\n }\n if (state.d) {\n return null;\n }\n state.d = true;\n if (type2 === 1) {\n t = hasOwn ? t[k] : t[k] = {};\n } else if (type2 === 0 && hasOwn) {\n return null;\n }\n return [k, t, state.c];\n}\nfunction parse4(toml, opts) {\n let maxDepth = (opts == null ? void 0 : opts.maxDepth) ?? 1e3;\n let res = {};\n let meta = {};\n let tbl = res;\n let m = meta;\n for (let ptr = skipVoid(toml, 0); ptr < toml.length; ) {\n if (toml[ptr] === \"[\") {\n let isTableArray = toml[++ptr] === \"[\";\n let k = parseKey(toml, ptr += +isTableArray, \"]\");\n if (isTableArray) {\n if (toml[k[1] - 1] !== \"]\") {\n throw new TomlError(\"expected end of table declaration\", {\n toml,\n ptr: k[1] - 1\n });\n }\n k[1]++;\n }\n let p = peekTable(\n k[0],\n res,\n meta,\n isTableArray ? 2 : 1\n /* Type.EXPLICIT */\n );\n if (!p) {\n throw new TomlError(\"trying to redefine an already defined table or value\", {\n toml,\n ptr\n });\n }\n m = p[2];\n tbl = p[1];\n ptr = k[1];\n } else {\n let k = parseKey(toml, ptr);\n let p = peekTable(\n k[0],\n tbl,\n m,\n 0\n /* Type.DOTTED */\n );\n if (!p) {\n throw new TomlError(\"trying to redefine an already defined table or value\", {\n toml,\n ptr\n });\n }\n let v = extractValue(toml, k[1], void 0, maxDepth);\n p[1][p[0]] = v[0];\n ptr = v[1];\n }\n ptr = skipVoid(toml, ptr, true);\n if (toml[ptr] && toml[ptr] !== \"\\n\" && toml[ptr] !== \"\\r\") {\n throw new TomlError(\"each key-value declaration must be followed by an end-of-line\", {\n toml,\n ptr\n });\n }\n ptr = skipVoid(toml, ptr);\n }\n return res;\n}\n\n// src/utils/read-file.js\nimport fs4 from \"fs/promises\";\nasync function readFile(file) {\n if (isUrlString(file)) {\n file = new URL(file);\n }\n try {\n return await fs4.readFile(file, \"utf8\");\n } catch (error) {\n if (error.code === \"ENOENT\") {\n return;\n }\n throw new Error(`Unable to read '${file}': ${error.message}`);\n }\n}\nvar read_file_default = readFile;\n\n// src/config/prettier-config/loaders.js\nasync function readJson(file) {\n const content = await read_file_default(file);\n try {\n return parseJson(content);\n } catch (error) {\n error.message = `JSON Error in ${file}:\n${error.message}`;\n throw error;\n }\n}\nasync function loadJs(file) {\n const module = await import(pathToFileURL2(file).href);\n return module.default;\n}\nasync function loadConfigFromPackageJson(file) {\n const { prettier } = await readJson(file);\n return prettier;\n}\nasync function loadConfigFromPackageYaml(file) {\n const { prettier } = await loadYaml(file);\n return prettier;\n}\nasync function loadYaml(file) {\n const content = await read_file_default(file);\n try {\n return load(content);\n } catch (error) {\n error.message = `YAML Error in ${file}:\n${error.message}`;\n throw error;\n }\n}\nvar loaders = {\n async \".toml\"(file) {\n const content = await read_file_default(file);\n try {\n return parse4(content);\n } catch (error) {\n error.message = `TOML Error in ${file}:\n${error.message}`;\n throw error;\n }\n },\n async \".json5\"(file) {\n const content = await read_file_default(file);\n try {\n return dist_default.parse(content);\n } catch (error) {\n error.message = `JSON5 Error in ${file}:\n${error.message}`;\n throw error;\n }\n },\n \".json\": readJson,\n \".js\": loadJs,\n \".mjs\": loadJs,\n \".cjs\": loadJs,\n \".yaml\": loadYaml,\n \".yml\": loadYaml,\n // No extension\n \"\": loadYaml\n};\nvar loaders_default = loaders;\n\n// src/config/prettier-config/config-searcher.js\nvar CONFIG_FILE_NAMES = [\n \"package.json\",\n \"package.yaml\",\n \".prettierrc\",\n \".prettierrc.json\",\n \".prettierrc.yaml\",\n \".prettierrc.yml\",\n \".prettierrc.json5\",\n \".prettierrc.js\",\n \".prettierrc.mjs\",\n \".prettierrc.cjs\",\n \"prettier.config.js\",\n \"prettier.config.mjs\",\n \"prettier.config.cjs\",\n \".prettierrc.toml\"\n];\nasync function filter({ name, path: file }) {\n if (!await is_file_default(file)) {\n return false;\n }\n if (name === \"package.json\") {\n try {\n return Boolean(await loadConfigFromPackageJson(file));\n } catch {\n return false;\n }\n }\n if (name === \"package.yaml\") {\n try {\n return Boolean(await loadConfigFromPackageYaml(file));\n } catch {\n return false;\n }\n }\n return true;\n}\nfunction getSearcher(stopDirectory) {\n return new searcher_default({ names: CONFIG_FILE_NAMES, filter, stopDirectory });\n}\nvar config_searcher_default = getSearcher;\n\n// src/config/prettier-config/load-config.js\nimport path7 from \"path\";\n\n// src/utils/import-from-file.js\nimport { pathToFileURL as pathToFileURL4 } from \"url\";\n\n// node_modules/import-meta-resolve/lib/resolve.js\nimport assert3 from \"assert\";\nimport { statSync, realpathSync } from \"fs\";\nimport process3 from \"process\";\nimport { URL as URL2, fileURLToPath as fileURLToPath4, pathToFileURL as pathToFileURL3 } from \"url\";\nimport path6 from \"path\";\nimport { builtinModules } from \"module\";\n\n// node_modules/import-meta-resolve/lib/get-format.js\nimport { fileURLToPath as fileURLToPath3 } from \"url\";\n\n// node_modules/import-meta-resolve/lib/package-json-reader.js\nimport fs5 from \"fs\";\nimport path5 from \"path\";\nimport { fileURLToPath as fileURLToPath2 } from \"url\";\n\n// node_modules/import-meta-resolve/lib/errors.js\nimport v8 from \"v8\";\nimport assert2 from \"assert\";\nimport { format, inspect } from \"util\";\nvar own = {}.hasOwnProperty;\nvar classRegExp = /^([A-Z][a-z\\d]*)+$/;\nvar kTypes = /* @__PURE__ */ new Set([\n \"string\",\n \"function\",\n \"number\",\n \"object\",\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n \"Function\",\n \"Object\",\n \"boolean\",\n \"bigint\",\n \"symbol\"\n]);\nvar codes = {};\nfunction formatList(array2, type2 = \"and\") {\n return array2.length < 3 ? array2.join(` ${type2} `) : `${array2.slice(0, -1).join(\", \")}, ${type2} ${array2[array2.length - 1]}`;\n}\nvar messages = /* @__PURE__ */ new Map();\nvar nodeInternalPrefix = \"__node_internal_\";\nvar userStackTraceLimit;\ncodes.ERR_INVALID_ARG_TYPE = createError(\n \"ERR_INVALID_ARG_TYPE\",\n /**\n * @param {string} name\n * @param {Array | string} expected\n * @param {unknown} actual\n */\n (name, expected, actual) => {\n assert2(typeof name === \"string\", \"'name' must be a string\");\n if (!Array.isArray(expected)) {\n expected = [expected];\n }\n let message = \"The \";\n if (name.endsWith(\" argument\")) {\n message += `${name} `;\n } else {\n const type2 = name.includes(\".\") ? \"property\" : \"argument\";\n message += `\"${name}\" ${type2} `;\n }\n message += \"must be \";\n const types = [];\n const instances = [];\n const other = [];\n for (const value of expected) {\n assert2(\n typeof value === \"string\",\n \"All expected entries have to be of type string\"\n );\n if (kTypes.has(value)) {\n types.push(value.toLowerCase());\n } else if (classRegExp.exec(value) === null) {\n assert2(\n value !== \"object\",\n 'The value \"object\" should be written as \"Object\"'\n );\n other.push(value);\n } else {\n instances.push(value);\n }\n }\n if (instances.length > 0) {\n const pos2 = types.indexOf(\"object\");\n if (pos2 !== -1) {\n types.slice(pos2, 1);\n instances.push(\"Object\");\n }\n }\n if (types.length > 0) {\n message += `${types.length > 1 ? \"one of type\" : \"of type\"} ${formatList(\n types,\n \"or\"\n )}`;\n if (instances.length > 0 || other.length > 0) message += \" or \";\n }\n if (instances.length > 0) {\n message += `an instance of ${formatList(instances, \"or\")}`;\n if (other.length > 0) message += \" or \";\n }\n if (other.length > 0) {\n if (other.length > 1) {\n message += `one of ${formatList(other, \"or\")}`;\n } else {\n if (other[0].toLowerCase() !== other[0]) message += \"an \";\n message += `${other[0]}`;\n }\n }\n message += `. Received ${determineSpecificType(actual)}`;\n return message;\n },\n TypeError\n);\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n \"ERR_INVALID_MODULE_SPECIFIER\",\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = void 0) => {\n return `Invalid module \"${request}\" ${reason}${base ? ` imported from ${base}` : \"\"}`;\n },\n TypeError\n);\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n \"ERR_INVALID_PACKAGE_CONFIG\",\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path13, base, message) => {\n return `Invalid package config ${path13}${base ? ` while importing ${base}` : \"\"}${message ? `. ${message}` : \"\"}`;\n },\n Error\n);\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n \"ERR_INVALID_PACKAGE_TARGET\",\n /**\n * @param {string} packagePath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (packagePath, key2, target, isImport = false, base = void 0) => {\n const relatedError = typeof target === \"string\" && !isImport && target.length > 0 && !target.startsWith(\"./\");\n if (key2 === \".\") {\n assert2(isImport === false);\n return `Invalid \"exports\" main target ${JSON.stringify(target)} defined in the package config ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}${relatedError ? '; targets must start with \"./\"' : \"\"}`;\n }\n return `Invalid \"${isImport ? \"imports\" : \"exports\"}\" target ${JSON.stringify(\n target\n )} defined for '${key2}' in the package config ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}${relatedError ? '; targets must start with \"./\"' : \"\"}`;\n },\n Error\n);\ncodes.ERR_MODULE_NOT_FOUND = createError(\n \"ERR_MODULE_NOT_FOUND\",\n /**\n * @param {string} path\n * @param {string} base\n * @param {boolean} [exactUrl]\n */\n (path13, base, exactUrl = false) => {\n return `Cannot find ${exactUrl ? \"module\" : \"package\"} '${path13}' imported from ${base}`;\n },\n Error\n);\ncodes.ERR_NETWORK_IMPORT_DISALLOWED = createError(\n \"ERR_NETWORK_IMPORT_DISALLOWED\",\n \"import of '%s' by %s is not supported: %s\",\n Error\n);\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n \"ERR_PACKAGE_IMPORT_NOT_DEFINED\",\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${packagePath ? ` in package ${packagePath}package.json` : \"\"} imported from ${base}`;\n },\n TypeError\n);\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n \"ERR_PACKAGE_PATH_NOT_EXPORTED\",\n /**\n * @param {string} packagePath\n * @param {string} subpath\n * @param {string} [base]\n */\n (packagePath, subpath, base = void 0) => {\n if (subpath === \".\")\n return `No \"exports\" main defined in ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}`;\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}`;\n },\n Error\n);\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n \"ERR_UNSUPPORTED_DIR_IMPORT\",\n \"Directory import '%s' is not supported resolving ES modules imported from %s\",\n Error\n);\ncodes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError(\n \"ERR_UNSUPPORTED_RESOLVE_REQUEST\",\n 'Failed to resolve module specifier \"%s\" from \"%s\": Invalid relative URL or base scheme is not hierarchical.',\n TypeError\n);\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n \"ERR_UNKNOWN_FILE_EXTENSION\",\n /**\n * @param {string} extension\n * @param {string} path\n */\n (extension, path13) => {\n return `Unknown file extension \"${extension}\" for ${path13}`;\n },\n TypeError\n);\ncodes.ERR_INVALID_ARG_VALUE = createError(\n \"ERR_INVALID_ARG_VALUE\",\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = \"is invalid\") => {\n let inspected = inspect(value);\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n const type2 = name.includes(\".\") ? \"property\" : \"argument\";\n return `The ${type2} '${name}' ${reason}. Received ${inspected}`;\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\nfunction createError(sym, value, constructor) {\n messages.set(sym, value);\n return makeNodeErrorWithCode(constructor, sym);\n}\nfunction makeNodeErrorWithCode(Base, key2) {\n return NodeError;\n function NodeError(...parameters) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key2, parameters, error);\n Object.defineProperties(error, {\n // Note: no need to implement `kIsNodeError` symbol, would be hard,\n // probably.\n message: {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n },\n toString: {\n /** @this {Error} */\n value() {\n return `${this.name} [${key2}]: ${this.message}`;\n },\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n captureLargerStackTrace(error);\n error.code = key2;\n return error;\n }\n}\nfunction isErrorStackTraceLimitWritable() {\n try {\n if (v8.startupSnapshot.isBuildingSnapshot()) {\n return false;\n }\n } catch {\n }\n const desc = Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\");\n if (desc === void 0) {\n return Object.isExtensible(Error);\n }\n return own.call(desc, \"writable\") && desc.writable !== void 0 ? desc.writable : desc.set !== void 0;\n}\nfunction hideStackFrames(wrappedFunction) {\n const hidden = nodeInternalPrefix + wrappedFunction.name;\n Object.defineProperty(wrappedFunction, \"name\", { value: hidden });\n return wrappedFunction;\n}\nvar captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n // @ts-expect-error: fine\n function(error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n Error.captureStackTrace(error);\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n return error;\n }\n);\nfunction getMessage(key2, parameters, self) {\n const message = messages.get(key2);\n assert2(message !== void 0, \"expected `message` to be found\");\n if (typeof message === \"function\") {\n assert2(\n message.length <= parameters.length,\n // Default options do not count.\n `Code: ${key2}; The provided arguments length (${parameters.length}) does not match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, parameters);\n }\n const regex = /%[dfijoOs]/g;\n let expectedLength = 0;\n while (regex.exec(message) !== null) expectedLength++;\n assert2(\n expectedLength === parameters.length,\n `Code: ${key2}; The provided arguments length (${parameters.length}) does not match the required ones (${expectedLength}).`\n );\n if (parameters.length === 0) return message;\n parameters.unshift(message);\n return Reflect.apply(format, null, parameters);\n}\nfunction determineSpecificType(value) {\n if (value === null || value === void 0) {\n return String(value);\n }\n if (typeof value === \"function\" && value.name) {\n return `function ${value.name}`;\n }\n if (typeof value === \"object\") {\n if (value.constructor && value.constructor.name) {\n return `an instance of ${value.constructor.name}`;\n }\n return `${inspect(value, { depth: -1 })}`;\n }\n let inspected = inspect(value, { colors: false });\n if (inspected.length > 28) {\n inspected = `${inspected.slice(0, 25)}...`;\n }\n return `type ${typeof value} (${inspected})`;\n}\n\n// node_modules/import-meta-resolve/lib/package-json-reader.js\nvar hasOwnProperty = {}.hasOwnProperty;\nvar { ERR_INVALID_PACKAGE_CONFIG } = codes;\nvar cache = /* @__PURE__ */ new Map();\nfunction read2(jsonPath, { base, specifier }) {\n const existing = cache.get(jsonPath);\n if (existing) {\n return existing;\n }\n let string;\n try {\n string = fs5.readFileSync(path5.toNamespacedPath(jsonPath), \"utf8\");\n } catch (error) {\n const exception2 = (\n /** @type {ErrnoException} */\n error\n );\n if (exception2.code !== \"ENOENT\") {\n throw exception2;\n }\n }\n const result = {\n exists: false,\n pjsonPath: jsonPath,\n main: void 0,\n name: void 0,\n type: \"none\",\n // Ignore unknown types for forwards compatibility\n exports: void 0,\n imports: void 0\n };\n if (string !== void 0) {\n let parsed;\n try {\n parsed = JSON.parse(string);\n } catch (error_) {\n const cause = (\n /** @type {ErrnoException} */\n error_\n );\n const error = new ERR_INVALID_PACKAGE_CONFIG(\n jsonPath,\n (base ? `\"${specifier}\" from ` : \"\") + fileURLToPath2(base || specifier),\n cause.message\n );\n error.cause = cause;\n throw error;\n }\n result.exists = true;\n if (hasOwnProperty.call(parsed, \"name\") && typeof parsed.name === \"string\") {\n result.name = parsed.name;\n }\n if (hasOwnProperty.call(parsed, \"main\") && typeof parsed.main === \"string\") {\n result.main = parsed.main;\n }\n if (hasOwnProperty.call(parsed, \"exports\")) {\n result.exports = parsed.exports;\n }\n if (hasOwnProperty.call(parsed, \"imports\")) {\n result.imports = parsed.imports;\n }\n if (hasOwnProperty.call(parsed, \"type\") && (parsed.type === \"commonjs\" || parsed.type === \"module\")) {\n result.type = parsed.type;\n }\n }\n cache.set(jsonPath, result);\n return result;\n}\nfunction getPackageScopeConfig(resolved) {\n let packageJSONUrl = new URL(\"package.json\", resolved);\n while (true) {\n const packageJSONPath2 = packageJSONUrl.pathname;\n if (packageJSONPath2.endsWith(\"node_modules/package.json\")) {\n break;\n }\n const packageConfig = read2(fileURLToPath2(packageJSONUrl), {\n specifier: resolved\n });\n if (packageConfig.exists) {\n return packageConfig;\n }\n const lastPackageJSONUrl = packageJSONUrl;\n packageJSONUrl = new URL(\"../package.json\", packageJSONUrl);\n if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {\n break;\n }\n }\n const packageJSONPath = fileURLToPath2(packageJSONUrl);\n return {\n pjsonPath: packageJSONPath,\n exists: false,\n type: \"none\"\n };\n}\nfunction getPackageType(url2) {\n return getPackageScopeConfig(url2).type;\n}\n\n// node_modules/import-meta-resolve/lib/get-format.js\nvar { ERR_UNKNOWN_FILE_EXTENSION } = codes;\nvar hasOwnProperty2 = {}.hasOwnProperty;\nvar extensionFormatMap = {\n // @ts-expect-error: hush.\n __proto__: null,\n \".cjs\": \"commonjs\",\n \".js\": \"module\",\n \".json\": \"json\",\n \".mjs\": \"module\"\n};\nfunction mimeToFormat(mime) {\n if (mime && /\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(mime))\n return \"module\";\n if (mime === \"application/json\") return \"json\";\n return null;\n}\nvar protocolHandlers = {\n // @ts-expect-error: hush.\n __proto__: null,\n \"data:\": getDataProtocolModuleFormat,\n \"file:\": getFileProtocolModuleFormat,\n \"http:\": getHttpProtocolModuleFormat,\n \"https:\": getHttpProtocolModuleFormat,\n \"node:\"() {\n return \"builtin\";\n }\n};\nfunction getDataProtocolModuleFormat(parsed) {\n const { 1: mime } = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null, null];\n return mimeToFormat(mime);\n}\nfunction extname(url2) {\n const pathname = url2.pathname;\n let index = pathname.length;\n while (index--) {\n const code = pathname.codePointAt(index);\n if (code === 47) {\n return \"\";\n }\n if (code === 46) {\n return pathname.codePointAt(index - 1) === 47 ? \"\" : pathname.slice(index);\n }\n }\n return \"\";\n}\nfunction getFileProtocolModuleFormat(url2, _context, ignoreErrors) {\n const value = extname(url2);\n if (value === \".js\") {\n const packageType = getPackageType(url2);\n if (packageType !== \"none\") {\n return packageType;\n }\n return \"commonjs\";\n }\n if (value === \"\") {\n const packageType = getPackageType(url2);\n if (packageType === \"none\" || packageType === \"commonjs\") {\n return \"commonjs\";\n }\n return \"module\";\n }\n const format3 = extensionFormatMap[value];\n if (format3) return format3;\n if (ignoreErrors) {\n return void 0;\n }\n const filepath = fileURLToPath3(url2);\n throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath);\n}\nfunction getHttpProtocolModuleFormat() {\n}\nfunction defaultGetFormatWithoutErrors(url2, context) {\n const protocol = url2.protocol;\n if (!hasOwnProperty2.call(protocolHandlers, protocol)) {\n return null;\n }\n return protocolHandlers[protocol](url2, context, true) || null;\n}\n\n// node_modules/import-meta-resolve/lib/utils.js\nvar { ERR_INVALID_ARG_VALUE } = codes;\nvar DEFAULT_CONDITIONS = Object.freeze([\"node\", \"import\"]);\nvar DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\nfunction getDefaultConditions() {\n return DEFAULT_CONDITIONS;\n}\nfunction getDefaultConditionsSet() {\n return DEFAULT_CONDITIONS_SET;\n}\nfunction getConditionsSet(conditions) {\n if (conditions !== void 0 && conditions !== getDefaultConditions()) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n \"conditions\",\n conditions,\n \"expected an array\"\n );\n }\n return new Set(conditions);\n }\n return getDefaultConditionsSet();\n}\n\n// node_modules/import-meta-resolve/lib/resolve.js\nvar RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];\nvar {\n ERR_NETWORK_IMPORT_DISALLOWED,\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG2,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_RESOLVE_REQUEST\n} = codes;\nvar own2 = {}.hasOwnProperty;\nvar 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;\nvar deprecatedInvalidSegmentRegEx = /(^|\\\\|\\/)((\\.|%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;\nvar invalidPackageNameRegEx = /^\\.|%|\\\\/;\nvar patternRegEx = /\\*/g;\nvar encodedSeparatorRegEx = /%2f|%5c/i;\nvar emittedPackageWarnings = /* @__PURE__ */ new Set();\nvar doubleSlashRegEx = /[/\\\\]{2}/;\nfunction emitInvalidSegmentDeprecation(target, request, match, packageJsonUrl, internal, base, isTarget) {\n if (process3.noDeprecation) {\n return;\n }\n const pjsonPath = fileURLToPath4(packageJsonUrl);\n const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;\n process3.emitWarning(\n `Use of deprecated ${double ? \"double slash\" : \"leading or trailing slash matching\"} resolving \"${target}\" for module request \"${request}\" ${request === match ? \"\" : `matched to \"${match}\" `}in the \"${internal ? \"imports\" : \"exports\"}\" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${fileURLToPath4(base)}` : \"\"}.`,\n \"DeprecationWarning\",\n \"DEP0166\"\n );\n}\nfunction emitLegacyIndexDeprecation(url2, packageJsonUrl, base, main) {\n if (process3.noDeprecation) {\n return;\n }\n const format3 = defaultGetFormatWithoutErrors(url2, { parentURL: base.href });\n if (format3 !== \"module\") return;\n const urlPath = fileURLToPath4(url2.href);\n const packagePath = fileURLToPath4(new URL2(\".\", packageJsonUrl));\n const basePath = fileURLToPath4(base);\n if (!main) {\n process3.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${packagePath} resolving the main entry point \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n \"DeprecationWarning\",\n \"DEP0151\"\n );\n } else if (path6.resolve(packagePath, main) !== urlPath) {\n process3.emitWarning(\n `Package ${packagePath} has a \"main\" field set to \"${main}\", excluding the full filename and extension to the resolved file at \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\n Automatic extension resolution of the \"main\" field is deprecated for ES modules.`,\n \"DeprecationWarning\",\n \"DEP0151\"\n );\n }\n}\nfunction tryStatSync(path13) {\n try {\n return statSync(path13);\n } catch {\n }\n}\nfunction fileExists(url2) {\n const stats = statSync(url2, { throwIfNoEntry: false });\n const isFile2 = stats ? stats.isFile() : void 0;\n return isFile2 === null || isFile2 === void 0 ? false : isFile2;\n}\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n let guess;\n if (packageConfig.main !== void 0) {\n guess = new URL2(packageConfig.main, packageJsonUrl);\n if (fileExists(guess)) return guess;\n const tries2 = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i2 = -1;\n while (++i2 < tries2.length) {\n guess = new URL2(tries2[i2], packageJsonUrl);\n if (fileExists(guess)) break;\n guess = void 0;\n }\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess;\n }\n }\n const tries = [\"./index.js\", \"./index.json\", \"./index.node\"];\n let i = -1;\n while (++i < tries.length) {\n guess = new URL2(tries[i], packageJsonUrl);\n if (fileExists(guess)) break;\n guess = void 0;\n }\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess;\n }\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath4(new URL2(\".\", packageJsonUrl)),\n fileURLToPath4(base)\n );\n}\nfunction finalizeResolution(resolved, base, preserveSymlinks) {\n if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath4(base)\n );\n }\n let filePath;\n try {\n filePath = fileURLToPath4(resolved);\n } catch (error) {\n const cause = (\n /** @type {ErrnoException} */\n error\n );\n Object.defineProperty(cause, \"input\", { value: String(resolved) });\n Object.defineProperty(cause, \"module\", { value: String(base) });\n throw cause;\n }\n const stats = tryStatSync(\n filePath.endsWith(\"/\") ? filePath.slice(-1) : filePath\n );\n if (stats && stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath4(base));\n error.url = String(resolved);\n throw error;\n }\n if (!stats || !stats.isFile()) {\n const error = new ERR_MODULE_NOT_FOUND(\n filePath || resolved.pathname,\n base && fileURLToPath4(base),\n true\n );\n error.url = String(resolved);\n throw error;\n }\n if (!preserveSymlinks) {\n const real = realpathSync(filePath);\n const { search, hash } = resolved;\n resolved = pathToFileURL3(real + (filePath.endsWith(path6.sep) ? \"/\" : \"\"));\n resolved.search = search;\n resolved.hash = hash;\n }\n return resolved;\n}\nfunction importNotDefined(specifier, packageJsonUrl, base) {\n return new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath4(new URL2(\".\", packageJsonUrl)),\n fileURLToPath4(base)\n );\n}\nfunction exportsNotFound(subpath, packageJsonUrl, base) {\n return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath4(new URL2(\".\", packageJsonUrl)),\n subpath,\n base && fileURLToPath4(base)\n );\n}\nfunction throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {\n const reason = `request is not a valid match in pattern \"${match}\" for the \"${internal ? \"imports\" : \"exports\"}\" resolution of ${fileURLToPath4(packageJsonUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(\n request,\n reason,\n base && fileURLToPath4(base)\n );\n}\nfunction invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {\n target = typeof target === \"object\" && target !== null ? JSON.stringify(target, null, \"\") : `${target}`;\n return new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath4(new URL2(\".\", packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath4(base)\n );\n}\nfunction resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, isPathMap, conditions) {\n if (subpath !== \"\" && !pattern && target[target.length - 1] !== \"/\")\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n if (!target.startsWith(\"./\")) {\n if (internal && !target.startsWith(\"../\") && !target.startsWith(\"/\")) {\n let isURL2 = false;\n try {\n new URL2(target);\n isURL2 = true;\n } catch {\n }\n if (!isURL2) {\n const exportTarget = pattern ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n ) : target + subpath;\n return packageResolve(exportTarget, packageJsonUrl, conditions);\n }\n }\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {\n if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {\n if (!isPathMap) {\n const request = pattern ? match.replace(\"*\", () => subpath) : match + subpath;\n const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n ) : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n true\n );\n }\n } else {\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n }\n const resolved = new URL2(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL2(\".\", packageJsonUrl).pathname;\n if (!resolvedPath.startsWith(packagePath))\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n if (subpath === \"\") return resolved;\n if (invalidSegmentRegEx.exec(subpath) !== null) {\n const request = pattern ? match.replace(\"*\", () => subpath) : match + subpath;\n if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {\n if (!isPathMap) {\n const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n ) : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n false\n );\n }\n } else {\n throwInvalidSubpath(request, match, packageJsonUrl, internal, base);\n }\n }\n if (pattern) {\n return new URL2(\n RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n resolved.href,\n () => subpath\n )\n );\n }\n return new URL2(subpath, resolved);\n}\nfunction isArrayIndex(key2) {\n const keyNumber = Number(key2);\n if (`${keyNumber}` !== key2) return false;\n return keyNumber >= 0 && keyNumber < 4294967295;\n}\nfunction resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions) {\n if (typeof target === \"string\") {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n }\n if (Array.isArray(target)) {\n const targetList = target;\n if (targetList.length === 0) return null;\n let lastException;\n let i = -1;\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n let resolveResult;\n try {\n resolveResult = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n } catch (error) {\n const exception2 = (\n /** @type {ErrnoException} */\n error\n );\n lastException = exception2;\n if (exception2.code === \"ERR_INVALID_PACKAGE_TARGET\") continue;\n throw error;\n }\n if (resolveResult === void 0) continue;\n if (resolveResult === null) {\n lastException = null;\n continue;\n }\n return resolveResult;\n }\n if (lastException === void 0 || lastException === null) {\n return null;\n }\n throw lastException;\n }\n if (typeof target === \"object\" && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n if (isArrayIndex(key2)) {\n throw new ERR_INVALID_PACKAGE_CONFIG2(\n fileURLToPath4(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n );\n }\n }\n i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n if (key2 === \"default\" || conditions && conditions.has(key2)) {\n const conditionalTarget = (\n /** @type {unknown} */\n target[key2]\n );\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n if (resolveResult === void 0) continue;\n return resolveResult;\n }\n }\n return null;\n }\n if (target === null) {\n return null;\n }\n throw invalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n );\n}\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === \"string\" || Array.isArray(exports)) return true;\n if (typeof exports !== \"object\" || exports === null) return false;\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let keyIndex = -1;\n while (++keyIndex < keys.length) {\n const key2 = keys[keyIndex];\n const currentIsConditionalSugar = key2 === \"\" || key2[0] !== \".\";\n if (i++ === 0) {\n isConditionalSugar = currentIsConditionalSugar;\n } else if (isConditionalSugar !== currentIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG2(\n fileURLToPath4(packageJsonUrl),\n base,\n `\"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.`\n );\n }\n }\n return isConditionalSugar;\n}\nfunction emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {\n if (process3.noDeprecation) {\n return;\n }\n const pjsonPath = fileURLToPath4(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + \"|\" + match)) return;\n emittedPackageWarnings.add(pjsonPath + \"|\" + match);\n process3.emitWarning(\n `Use of deprecated trailing slash pattern mapping \"${match}\" in the \"exports\" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${fileURLToPath4(base)}` : \"\"}. Mapping specifiers ending in \"/\" is no longer supported.`,\n \"DeprecationWarning\",\n \"DEP0155\"\n );\n}\nfunction packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) {\n let exports = packageConfig.exports;\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {\n exports = { \".\": exports };\n }\n if (own2.call(exports, packageSubpath) && !packageSubpath.includes(\"*\") && !packageSubpath.endsWith(\"/\")) {\n const target = exports[packageSubpath];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n \"\",\n packageSubpath,\n base,\n false,\n false,\n false,\n conditions\n );\n if (resolveResult === null || resolveResult === void 0) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base);\n }\n return resolveResult;\n }\n let bestMatch = \"\";\n let bestMatchSubpath = \"\";\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n const patternIndex = key2.indexOf(\"*\");\n if (patternIndex !== -1 && packageSubpath.startsWith(key2.slice(0, patternIndex))) {\n if (packageSubpath.endsWith(\"/\")) {\n emitTrailingSlashPatternDeprecation(\n packageSubpath,\n packageJsonUrl,\n base\n );\n }\n const patternTrailer = key2.slice(patternIndex + 1);\n if (packageSubpath.length >= key2.length && packageSubpath.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key2) === 1 && key2.lastIndexOf(\"*\") === patternIndex) {\n bestMatch = key2;\n bestMatchSubpath = packageSubpath.slice(\n patternIndex,\n packageSubpath.length - patternTrailer.length\n );\n }\n }\n }\n if (bestMatch) {\n const target = (\n /** @type {unknown} */\n exports[bestMatch]\n );\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n false,\n packageSubpath.endsWith(\"/\"),\n conditions\n );\n if (resolveResult === null || resolveResult === void 0) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base);\n }\n return resolveResult;\n }\n throw exportsNotFound(packageSubpath, packageJsonUrl, base);\n}\nfunction patternKeyCompare(a, b) {\n const aPatternIndex = a.indexOf(\"*\");\n const bPatternIndex = b.indexOf(\"*\");\n const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLengthA > baseLengthB) return -1;\n if (baseLengthB > baseLengthA) return 1;\n if (aPatternIndex === -1) return 1;\n if (bPatternIndex === -1) return -1;\n if (a.length > b.length) return -1;\n if (b.length > a.length) return 1;\n return 0;\n}\nfunction packageImportsResolve(name, base, conditions) {\n if (name === \"#\" || name.startsWith(\"#/\") || name.endsWith(\"/\")) {\n const reason = \"is not a valid internal imports specifier name\";\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath4(base));\n }\n let packageJsonUrl;\n const packageConfig = getPackageScopeConfig(base);\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL3(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own2.call(imports, name) && !name.includes(\"*\")) {\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n \"\",\n name,\n base,\n false,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== void 0) {\n return resolveResult;\n }\n } else {\n let bestMatch = \"\";\n let bestMatchSubpath = \"\";\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n const patternIndex = key2.indexOf(\"*\");\n if (patternIndex !== -1 && name.startsWith(key2.slice(0, -1))) {\n const patternTrailer = key2.slice(patternIndex + 1);\n if (name.length >= key2.length && name.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key2) === 1 && key2.lastIndexOf(\"*\") === patternIndex) {\n bestMatch = key2;\n bestMatchSubpath = name.slice(\n patternIndex,\n name.length - patternTrailer.length\n );\n }\n }\n }\n if (bestMatch) {\n const target = imports[bestMatch];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== void 0) {\n return resolveResult;\n }\n }\n }\n }\n }\n throw importNotDefined(name, packageJsonUrl, base);\n}\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf(\"/\");\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === \"@\") {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf(\"/\", separatorIndex + 1);\n }\n }\n const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n if (invalidPackageNameRegEx.exec(packageName) !== null) {\n validPackageName = false;\n }\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n \"is not a valid package name\",\n fileURLToPath4(base)\n );\n }\n const packageSubpath = \".\" + (separatorIndex === -1 ? \"\" : specifier.slice(separatorIndex));\n return { packageName, packageSubpath, isScoped };\n}\nfunction packageResolve(specifier, base, conditions) {\n if (builtinModules.includes(specifier)) {\n return new URL2(\"node:\" + specifier);\n }\n const { packageName, packageSubpath, isScoped } = parsePackageName(\n specifier,\n base\n );\n const packageConfig = getPackageScopeConfig(base);\n if (packageConfig.exists) {\n const packageJsonUrl2 = pathToFileURL3(packageConfig.pjsonPath);\n if (packageConfig.name === packageName && packageConfig.exports !== void 0 && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl2,\n packageSubpath,\n packageConfig,\n base,\n conditions\n );\n }\n }\n let packageJsonUrl = new URL2(\n \"./node_modules/\" + packageName + \"/package.json\",\n base\n );\n let packageJsonPath = fileURLToPath4(packageJsonUrl);\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat || !stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL2(\n (isScoped ? \"../../../../node_modules/\" : \"../../../node_modules/\") + packageName + \"/package.json\",\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath4(packageJsonUrl);\n continue;\n }\n const packageConfig2 = read2(packageJsonPath, { base, specifier });\n if (packageConfig2.exports !== void 0 && packageConfig2.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig2,\n base,\n conditions\n );\n }\n if (packageSubpath === \".\") {\n return legacyMainResolve(packageJsonUrl, packageConfig2, base);\n }\n return new URL2(packageSubpath, packageJsonUrl);\n } while (packageJsonPath.length !== lastPath.length);\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath4(base), false);\n}\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === \".\") {\n if (specifier.length === 1 || specifier[1] === \"/\") return true;\n if (specifier[1] === \".\" && (specifier.length === 2 || specifier[2] === \"/\")) {\n return true;\n }\n }\n return false;\n}\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === \"\") return false;\n if (specifier[0] === \"/\") return true;\n return isRelativeSpecifier(specifier);\n}\nfunction moduleResolve(specifier, base, conditions, preserveSymlinks) {\n const protocol = base.protocol;\n const isData = protocol === \"data:\";\n const isRemote = isData || protocol === \"http:\" || protocol === \"https:\";\n let resolved;\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n try {\n resolved = new URL2(specifier, base);\n } catch (error_) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error;\n }\n } else if (protocol === \"file:\" && specifier[0] === \"#\") {\n resolved = packageImportsResolve(specifier, base, conditions);\n } else {\n try {\n resolved = new URL2(specifier);\n } catch (error_) {\n if (isRemote && !builtinModules.includes(specifier)) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error;\n }\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n assert3(resolved !== void 0, \"expected to be defined\");\n if (resolved.protocol !== \"file:\") {\n return resolved;\n }\n return finalizeResolution(resolved, base, preserveSymlinks);\n}\nfunction checkIfDisallowedImport(specifier, parsed, parsedParentURL) {\n if (parsedParentURL) {\n const parentProtocol = parsedParentURL.protocol;\n if (parentProtocol === \"http:\" || parentProtocol === \"https:\") {\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n const parsedProtocol = parsed == null ? void 0 : parsed.protocol;\n if (parsedProtocol && parsedProtocol !== \"https:\" && parsedProtocol !== \"http:\") {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n \"remote imports cannot import from a local location.\"\n );\n }\n return { url: (parsed == null ? void 0 : parsed.href) || \"\" };\n }\n if (builtinModules.includes(specifier)) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n \"remote imports cannot import from a local location.\"\n );\n }\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n \"only relative and absolute specifiers are supported.\"\n );\n }\n }\n}\nfunction isURL(self) {\n return Boolean(\n self && typeof self === \"object\" && \"href\" in self && typeof self.href === \"string\" && \"protocol\" in self && typeof self.protocol === \"string\" && self.href && self.protocol\n );\n}\nfunction throwIfInvalidParentURL(parentURL) {\n if (parentURL === void 0) {\n return;\n }\n if (typeof parentURL !== \"string\" && !isURL(parentURL)) {\n throw new codes.ERR_INVALID_ARG_TYPE(\n \"parentURL\",\n [\"string\", \"URL\"],\n parentURL\n );\n }\n}\nfunction defaultResolve(specifier, context = {}) {\n const { parentURL } = context;\n assert3(parentURL !== void 0, \"expected `parentURL` to be defined\");\n throwIfInvalidParentURL(parentURL);\n let parsedParentURL;\n if (parentURL) {\n try {\n parsedParentURL = new URL2(parentURL);\n } catch {\n }\n }\n let parsed;\n let protocol;\n try {\n parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier) ? new URL2(specifier, parsedParentURL) : new URL2(specifier);\n protocol = parsed.protocol;\n if (protocol === \"data:\") {\n return { url: parsed.href, format: null };\n }\n } catch {\n }\n const maybeReturn = checkIfDisallowedImport(\n specifier,\n parsed,\n parsedParentURL\n );\n if (maybeReturn) return maybeReturn;\n if (protocol === void 0 && parsed) {\n protocol = parsed.protocol;\n }\n if (protocol === \"node:\") {\n return { url: specifier };\n }\n if (parsed && parsed.protocol === \"node:\") return { url: specifier };\n const conditions = getConditionsSet(context.conditions);\n const url2 = moduleResolve(specifier, new URL2(parentURL), conditions, false);\n return {\n // Do NOT cast `url` to a string: that will work even when there are real\n // problems, silencing them\n url: url2.href,\n format: defaultGetFormatWithoutErrors(url2, { parentURL })\n };\n}\n\n// node_modules/import-meta-resolve/index.js\nfunction resolve2(specifier, parent) {\n if (!parent) {\n throw new Error(\n \"Please pass `parent`: `import-meta-resolve` cannot ponyfill that\"\n );\n }\n try {\n return defaultResolve(specifier, { parentURL: parent }).url;\n } catch (error) {\n const exception2 = (\n /** @type {ErrnoException} */\n error\n );\n if ((exception2.code === \"ERR_UNSUPPORTED_DIR_IMPORT\" || exception2.code === \"ERR_MODULE_NOT_FOUND\") && typeof exception2.url === \"string\") {\n return exception2.url;\n }\n throw error;\n }\n}\n\n// src/utils/import-from-file.js\nfunction importFromFile(specifier, parent) {\n const url2 = resolve2(specifier, pathToFileURL4(parent).href);\n return import(url2);\n}\nvar import_from_file_default = importFromFile;\n\n// src/utils/require-from-file.js\nimport { createRequire } from \"module\";\nfunction requireFromFile(id, parent) {\n const require2 = createRequire(parent);\n return require2(id);\n}\nvar require_from_file_default = requireFromFile;\n\n// src/config/prettier-config/load-external-config.js\nvar requireErrorCodesShouldBeIgnored = /* @__PURE__ */ new Set([\n \"MODULE_NOT_FOUND\",\n \"ERR_REQUIRE_ESM\",\n \"ERR_PACKAGE_PATH_NOT_EXPORTED\",\n \"ERR_REQUIRE_ASYNC_MODULE\"\n]);\nasync function loadExternalConfig(externalConfig, configFile) {\n try {\n const required = require_from_file_default(externalConfig, configFile);\n if (process.features.require_module && required.__esModule) {\n return required.default;\n }\n return required;\n } catch (error) {\n if (!requireErrorCodesShouldBeIgnored.has(error == null ? void 0 : error.code)) {\n throw error;\n }\n }\n const module = await import_from_file_default(externalConfig, configFile);\n return module.default;\n}\nvar load_external_config_default = loadExternalConfig;\n\n// src/config/prettier-config/load-config.js\nasync function loadConfig(configFile) {\n const { base: fileName, ext: extension } = path7.parse(configFile);\n const load2 = fileName === \"package.json\" ? loadConfigFromPackageJson : fileName === \"package.yaml\" ? loadConfigFromPackageYaml : loaders_default[extension];\n if (!load2) {\n throw new Error(\n `No loader specified for extension \"${extension || \"noExt\"}\"`\n );\n }\n let config = await load2(configFile);\n if (!config) {\n return;\n }\n if (typeof config === \"string\") {\n config = await load_external_config_default(config, configFile);\n }\n if (typeof config !== \"object\") {\n throw new TypeError(\n `Config is only allowed to be an object, but received ${typeof config} in \"${configFile}\"`\n );\n }\n delete config.$schema;\n return config;\n}\nvar load_config_default = loadConfig;\n\n// src/config/prettier-config/index.js\nvar loadCache = /* @__PURE__ */ new Map();\nvar searchCache = /* @__PURE__ */ new Map();\nfunction clearPrettierConfigCache() {\n loadCache.clear();\n searchCache.clear();\n}\nfunction loadPrettierConfig(configFile, { shouldCache }) {\n configFile = path8.resolve(configFile);\n if (!shouldCache || !loadCache.has(configFile)) {\n loadCache.set(configFile, load_config_default(configFile));\n }\n return loadCache.get(configFile);\n}\nfunction getSearchFunction(stopDirectory) {\n stopDirectory = stopDirectory ? path8.resolve(stopDirectory) : void 0;\n if (!searchCache.has(stopDirectory)) {\n const searcher2 = config_searcher_default(stopDirectory);\n const searchFunction = searcher2.search.bind(searcher2);\n searchCache.set(stopDirectory, searchFunction);\n }\n return searchCache.get(stopDirectory);\n}\nfunction searchPrettierConfig(startDirectory, options8 = {}) {\n startDirectory = startDirectory ? path8.resolve(startDirectory) : process.cwd();\n const stopDirectory = mockable_default.getPrettierConfigSearchStopDirectory();\n const search = getSearchFunction(stopDirectory);\n return search(startDirectory, { shouldCache: options8.shouldCache });\n}\n\n// src/config/resolve-config.js\nfunction clearCache() {\n clearPrettierConfigCache();\n clearEditorconfigCache();\n}\nfunction loadEditorconfig2(file, options8) {\n if (!file || !options8.editorconfig) {\n return;\n }\n const shouldCache = options8.useCache;\n return loadEditorconfig(file, { shouldCache });\n}\nasync function loadPrettierConfig2(file, options8) {\n const shouldCache = options8.useCache;\n let configFile = options8.config;\n if (!configFile) {\n const directory = file ? path9.dirname(path9.resolve(file)) : void 0;\n configFile = await searchPrettierConfig(directory, { shouldCache });\n }\n if (!configFile) {\n return;\n }\n const config = await loadPrettierConfig(configFile, { shouldCache });\n return { config, configFile };\n}\nasync function resolveConfig(fileUrlOrPath, options8) {\n options8 = { useCache: true, ...options8 };\n const filePath = toPath(fileUrlOrPath);\n const [result, editorConfigured] = await Promise.all([\n loadPrettierConfig2(filePath, options8),\n loadEditorconfig2(filePath, options8)\n ]);\n if (!result && !editorConfigured) {\n return null;\n }\n const merged = {\n ...editorConfigured,\n ...mergeOverrides(result, filePath)\n };\n if (Array.isArray(merged.plugins)) {\n merged.plugins = merged.plugins.map(\n (value) => typeof value === \"string\" && value.startsWith(\".\") ? path9.resolve(path9.dirname(result.configFile), value) : value\n );\n }\n return merged;\n}\nasync function resolveConfigFile(fileUrlOrPath) {\n const directory = fileUrlOrPath ? path9.dirname(path9.resolve(toPath(fileUrlOrPath))) : void 0;\n const result = await searchPrettierConfig(directory, { shouldCache: false });\n return result ?? null;\n}\nfunction mergeOverrides(configResult, filePath) {\n const { config, configFile } = configResult || {};\n const { overrides, ...options8 } = config || {};\n if (filePath && overrides) {\n const relativeFilePath = path9.relative(path9.dirname(configFile), filePath);\n for (const override of overrides) {\n if (pathMatchesGlobs(\n relativeFilePath,\n override.files,\n override.excludeFiles\n )) {\n Object.assign(options8, override.options);\n }\n }\n }\n return options8;\n}\nfunction pathMatchesGlobs(filePath, patterns, excludedPatterns) {\n const patternList = Array.isArray(patterns) ? patterns : [patterns];\n const [withSlashes, withoutSlashes] = partition_default(\n patternList,\n (pattern) => pattern.includes(\"/\")\n );\n return import_micromatch.default.isMatch(filePath, withoutSlashes, {\n ignore: excludedPatterns,\n basename: true,\n dot: true\n }) || import_micromatch.default.isMatch(filePath, withSlashes, {\n ignore: excludedPatterns,\n basename: false,\n dot: true\n });\n}\n\n// scripts/build/shims/string-replace-all.js\nvar stringReplaceAll2 = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n};\nvar string_replace_all_default = stringReplaceAll2;\n\n// src/utils/ignore.js\nvar import_ignore = __toESM(require_ignore(), 1);\nimport path10 from \"path\";\nimport url from \"url\";\nvar createIgnore = import_ignore.default.default;\nvar slash = path10.sep === \"\\\\\" ? (filePath) => string_replace_all_default(\n /* isOptionalObject */\n false,\n filePath,\n \"\\\\\",\n \"/\"\n) : (filePath) => filePath;\nfunction getRelativePath(file, ignoreFile) {\n const ignoreFilePath = toPath(ignoreFile);\n const filePath = isUrl(file) ? url.fileURLToPath(file) : path10.resolve(file);\n return path10.relative(\n // If there's an ignore-path set, the filename must be relative to the\n // ignore path, not the current working directory.\n ignoreFilePath ? path10.dirname(ignoreFilePath) : process.cwd(),\n filePath\n );\n}\nasync function createSingleIsIgnoredFunction(ignoreFile, withNodeModules) {\n let content = \"\";\n if (ignoreFile) {\n content += await read_file_default(ignoreFile) ?? \"\";\n }\n if (!withNodeModules) {\n content += \"\\nnode_modules\";\n }\n if (!content) {\n return;\n }\n const ignore = createIgnore({ allowRelativePaths: true }).add(content);\n return (file) => ignore.ignores(slash(getRelativePath(file, ignoreFile)));\n}\nasync function createIsIgnoredFunction(ignoreFiles, withNodeModules) {\n if (ignoreFiles.length === 0 && !withNodeModules) {\n ignoreFiles = [void 0];\n }\n const isIgnoredFunctions = (await Promise.all(\n ignoreFiles.map(\n (ignoreFile) => createSingleIsIgnoredFunction(ignoreFile, withNodeModules)\n )\n )).filter(Boolean);\n return (file) => isIgnoredFunctions.some((isIgnored2) => isIgnored2(file));\n}\nasync function isIgnored(file, options8) {\n const { ignorePath: ignoreFiles, withNodeModules } = options8;\n const isIgnored2 = await createIsIgnoredFunction(ignoreFiles, withNodeModules);\n return isIgnored2(file);\n}\n\n// src/utils/get-interpreter.js\nvar import_n_readlines = __toESM(require_readlines(), 1);\nimport fs6 from \"fs\";\nfunction getInterpreter(file) {\n let fd;\n try {\n fd = fs6.openSync(file, \"r\");\n } catch {\n return;\n }\n try {\n const liner = new import_n_readlines.default(fd);\n const firstLine = liner.next().toString(\"utf8\");\n const m1 = firstLine.match(/^#!\\/(?:usr\\/)?bin\\/env\\s+(\\S+)/u);\n if (m1) {\n return m1[1];\n }\n const m2 = firstLine.match(/^#!\\/(?:usr\\/(?:local\\/)?)?bin\\/(\\S+)/u);\n if (m2) {\n return m2[1];\n }\n } finally {\n try {\n fs6.closeSync(fd);\n } catch {\n }\n }\n}\nvar get_interpreter_default = getInterpreter;\n\n// src/utils/infer-parser.js\nvar getFileBasename = (file) => String(file).split(/[/\\\\]/u).pop();\nfunction getLanguageByFileName(languages2, file) {\n if (!file) {\n return;\n }\n const basename = getFileBasename(file).toLowerCase();\n return languages2.find(\n ({ filenames }) => filenames == null ? void 0 : filenames.some((name) => name.toLowerCase() === basename)\n ) ?? languages2.find(\n ({ extensions }) => extensions == null ? void 0 : extensions.some((extension) => basename.endsWith(extension))\n );\n}\nfunction getLanguageByLanguageName(languages2, languageName) {\n if (!languageName) {\n return;\n }\n return languages2.find(({ name }) => name.toLowerCase() === languageName) ?? languages2.find(({ aliases }) => aliases == null ? void 0 : aliases.includes(languageName)) ?? languages2.find(({ extensions }) => extensions == null ? void 0 : extensions.includes(`.${languageName}`));\n}\nfunction getLanguageByInterpreter(languages2, file) {\n if (!file || getFileBasename(file).includes(\".\")) {\n return;\n }\n const interpreter = get_interpreter_default(file);\n if (!interpreter) {\n return;\n }\n return languages2.find(\n ({ interpreters }) => interpreters == null ? void 0 : interpreters.includes(interpreter)\n );\n}\nfunction inferParser(options8, fileInfo) {\n const languages2 = options8.plugins.flatMap(\n (plugin) => (\n // @ts-expect-error -- Safe\n plugin.languages ?? []\n )\n );\n const language = getLanguageByLanguageName(languages2, fileInfo.language) ?? getLanguageByFileName(languages2, fileInfo.physicalFile) ?? getLanguageByFileName(languages2, fileInfo.file) ?? getLanguageByInterpreter(languages2, fileInfo.physicalFile);\n return language == null ? void 0 : language.parsers[0];\n}\nvar infer_parser_default = inferParser;\n\n// src/common/get-file-info.js\nasync function getFileInfo(file, options8) {\n if (typeof file !== \"string\" && !(file instanceof URL)) {\n throw new TypeError(\n `expect \\`file\\` to be a string or URL, got \\`${typeof file}\\``\n );\n }\n let { ignorePath, withNodeModules } = options8;\n if (!Array.isArray(ignorePath)) {\n ignorePath = [ignorePath];\n }\n const ignored = await isIgnored(file, { ignorePath, withNodeModules });\n let inferredParser;\n if (!ignored) {\n inferredParser = await getParser(file, options8);\n }\n return {\n ignored,\n inferredParser: inferredParser ?? null\n };\n}\nasync function getParser(file, options8) {\n let config;\n if (options8.resolveConfig !== false) {\n config = await resolveConfig(file);\n }\n return (config == null ? void 0 : config.parser) ?? infer_parser_default(options8, { physicalFile: file });\n}\nvar get_file_info_default = getFileInfo;\n\n// src/common/end-of-line.js\nfunction guessEndOfLine(text) {\n const index = text.indexOf(\"\\r\");\n if (index !== -1) {\n return text.charAt(index + 1) === \"\\n\" ? \"crlf\" : \"cr\";\n }\n return \"lf\";\n}\nfunction convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\n\";\n }\n}\nfunction countEndOfLineChars(text, eol) {\n let regex;\n switch (eol) {\n case \"\\n\":\n regex = /\\n/gu;\n break;\n case \"\\r\":\n regex = /\\r/gu;\n break;\n case \"\\r\\n\":\n regex = /\\r\\n/gu;\n break;\n default:\n throw new Error(`Unexpected \"eol\" ${JSON.stringify(eol)}.`);\n }\n const endOfLines = text.match(regex);\n return endOfLines ? endOfLines.length : 0;\n}\nfunction normalizeEndOfLine(text) {\n return string_replace_all_default(\n /* isOptionalObject */\n false,\n text,\n /\\r\\n?/gu,\n \"\\n\"\n );\n}\n\n// src/document/constants.js\nvar DOC_TYPE_STRING = \"string\";\nvar DOC_TYPE_ARRAY = \"array\";\nvar DOC_TYPE_CURSOR = \"cursor\";\nvar DOC_TYPE_INDENT = \"indent\";\nvar DOC_TYPE_ALIGN = \"align\";\nvar DOC_TYPE_TRIM = \"trim\";\nvar DOC_TYPE_GROUP = \"group\";\nvar DOC_TYPE_FILL = \"fill\";\nvar DOC_TYPE_IF_BREAK = \"if-break\";\nvar DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\nvar DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\nvar DOC_TYPE_LINE = \"line\";\nvar DOC_TYPE_LABEL = \"label\";\nvar DOC_TYPE_BREAK_PARENT = \"break-parent\";\nvar VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([\n DOC_TYPE_CURSOR,\n DOC_TYPE_INDENT,\n DOC_TYPE_ALIGN,\n DOC_TYPE_TRIM,\n DOC_TYPE_GROUP,\n DOC_TYPE_FILL,\n DOC_TYPE_IF_BREAK,\n DOC_TYPE_INDENT_IF_BREAK,\n DOC_TYPE_LINE_SUFFIX,\n DOC_TYPE_LINE_SUFFIX_BOUNDARY,\n DOC_TYPE_LINE,\n DOC_TYPE_LABEL,\n DOC_TYPE_BREAK_PARENT\n]);\n\n// src/document/utils/get-doc-type.js\nfunction getDocType(doc2) {\n if (typeof doc2 === \"string\") {\n return DOC_TYPE_STRING;\n }\n if (Array.isArray(doc2)) {\n return DOC_TYPE_ARRAY;\n }\n if (!doc2) {\n return;\n }\n const { type: type2 } = doc2;\n if (VALID_OBJECT_DOC_TYPES.has(type2)) {\n return type2;\n }\n}\nvar get_doc_type_default = getDocType;\n\n// src/document/invalid-doc-error.js\nvar disjunctionListFormat = (list) => new Intl.ListFormat(\"en-US\", { type: \"disjunction\" }).format(list);\nfunction getDocErrorMessage(doc2) {\n const type2 = doc2 === null ? \"null\" : typeof doc2;\n if (type2 !== \"string\" && type2 !== \"object\") {\n return `Unexpected doc '${type2}', \nExpected it to be 'string' or 'object'.`;\n }\n if (get_doc_type_default(doc2)) {\n throw new Error(\"doc is valid.\");\n }\n const objectType = Object.prototype.toString.call(doc2);\n if (objectType !== \"[object Object]\") {\n return `Unexpected doc '${objectType}'.`;\n }\n const EXPECTED_TYPE_VALUES = disjunctionListFormat(\n [...VALID_OBJECT_DOC_TYPES].map((type3) => `'${type3}'`)\n );\n return `Unexpected doc.type '${doc2.type}'.\nExpected it to be ${EXPECTED_TYPE_VALUES}.`;\n}\nvar InvalidDocError = class extends Error {\n name = \"InvalidDocError\";\n constructor(doc2) {\n super(getDocErrorMessage(doc2));\n this.doc = doc2;\n }\n};\nvar invalid_doc_error_default = InvalidDocError;\n\n// src/document/utils/traverse-doc.js\nvar traverseDocOnExitStackMarker = {};\nfunction traverseDoc(doc2, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc2];\n while (docsStack.length > 0) {\n const doc3 = docsStack.pop();\n if (doc3 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc3, traverseDocOnExitStackMarker);\n }\n const docType = get_doc_type_default(doc3);\n if (!docType) {\n throw new invalid_doc_error_default(doc3);\n }\n if ((onEnter == null ? void 0 : onEnter(doc3)) === false) {\n continue;\n }\n switch (docType) {\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc3 : doc3.parts;\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n docsStack.push(doc3.flatContents, doc3.breakContents);\n break;\n case DOC_TYPE_GROUP:\n if (shouldTraverseConditionalGroups && doc3.expandedStates) {\n for (let ic = doc3.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc3.expandedStates[i]);\n }\n } else {\n docsStack.push(doc3.contents);\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n docsStack.push(doc3.contents);\n break;\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc3);\n }\n }\n}\nvar traverse_doc_default = traverseDoc;\n\n// src/document/utils/assert-doc.js\nvar noop = () => {\n};\nvar assertDoc = true ? noop : function(doc2) {\n traverse_doc_default(doc2, (doc3) => {\n if (checked.has(doc3)) {\n return false;\n }\n if (typeof doc3 !== \"string\") {\n checked.add(doc3);\n }\n });\n};\n\n// src/document/builders.js\nfunction indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n}\nfunction align(widthOrString, contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n}\nfunction lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n}\nvar breakParent = { type: DOC_TYPE_BREAK_PARENT };\nvar hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\nvar line2 = { type: DOC_TYPE_LINE };\nvar hardline = [hardlineWithoutBreakParent, breakParent];\nvar cursor = { type: DOC_TYPE_CURSOR };\nfunction addAlignmentToDoc(doc2, size, tabWidth) {\n assertDoc(doc2);\n let aligned = doc2;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n}\n\n// src/document/debug.js\nfunction flattenDoc(doc2) {\n var _a;\n if (!doc2) {\n return \"\";\n }\n if (Array.isArray(doc2)) {\n const res = [];\n for (const part of doc2) {\n if (Array.isArray(part)) {\n res.push(...flattenDoc(part));\n } else {\n const flattened = flattenDoc(part);\n if (flattened !== \"\") {\n res.push(flattened);\n }\n }\n }\n return res;\n }\n if (doc2.type === DOC_TYPE_IF_BREAK) {\n return {\n ...doc2,\n breakContents: flattenDoc(doc2.breakContents),\n flatContents: flattenDoc(doc2.flatContents)\n };\n }\n if (doc2.type === DOC_TYPE_GROUP) {\n return {\n ...doc2,\n contents: flattenDoc(doc2.contents),\n expandedStates: (_a = doc2.expandedStates) == null ? void 0 : _a.map(flattenDoc)\n };\n }\n if (doc2.type === DOC_TYPE_FILL) {\n return { type: \"fill\", parts: doc2.parts.map(flattenDoc) };\n }\n if (doc2.contents) {\n return { ...doc2, contents: flattenDoc(doc2.contents) };\n }\n return doc2;\n}\nfunction printDocToDebug(doc2) {\n const printedSymbols = /* @__PURE__ */ Object.create(null);\n const usedKeysForSymbols = /* @__PURE__ */ new Set();\n return printDoc(flattenDoc(doc2));\n function printDoc(doc3, index, parentParts) {\n var _a, _b;\n if (typeof doc3 === \"string\") {\n return JSON.stringify(doc3);\n }\n if (Array.isArray(doc3)) {\n const printed = doc3.map(printDoc).filter(Boolean);\n return printed.length === 1 ? printed[0] : `[${printed.join(\", \")}]`;\n }\n if (doc3.type === DOC_TYPE_LINE) {\n const withBreakParent = ((_a = parentParts == null ? void 0 : parentParts[index + 1]) == null ? void 0 : _a.type) === DOC_TYPE_BREAK_PARENT;\n if (doc3.literal) {\n return withBreakParent ? \"literalline\" : \"literallineWithoutBreakParent\";\n }\n if (doc3.hard) {\n return withBreakParent ? \"hardline\" : \"hardlineWithoutBreakParent\";\n }\n if (doc3.soft) {\n return \"softline\";\n }\n return \"line\";\n }\n if (doc3.type === DOC_TYPE_BREAK_PARENT) {\n const afterHardline = ((_b = parentParts == null ? void 0 : parentParts[index - 1]) == null ? void 0 : _b.type) === DOC_TYPE_LINE && parentParts[index - 1].hard;\n return afterHardline ? void 0 : \"breakParent\";\n }\n if (doc3.type === DOC_TYPE_TRIM) {\n return \"trim\";\n }\n if (doc3.type === DOC_TYPE_INDENT) {\n return \"indent(\" + printDoc(doc3.contents) + \")\";\n }\n if (doc3.type === DOC_TYPE_ALIGN) {\n return doc3.n === Number.NEGATIVE_INFINITY ? \"dedentToRoot(\" + printDoc(doc3.contents) + \")\" : doc3.n < 0 ? \"dedent(\" + printDoc(doc3.contents) + \")\" : doc3.n.type === \"root\" ? \"markAsRoot(\" + printDoc(doc3.contents) + \")\" : \"align(\" + JSON.stringify(doc3.n) + \", \" + printDoc(doc3.contents) + \")\";\n }\n if (doc3.type === DOC_TYPE_IF_BREAK) {\n return \"ifBreak(\" + printDoc(doc3.breakContents) + (doc3.flatContents ? \", \" + printDoc(doc3.flatContents) : \"\") + (doc3.groupId ? (!doc3.flatContents ? ', \"\"' : \"\") + `, { groupId: ${printGroupId(doc3.groupId)} }` : \"\") + \")\";\n }\n if (doc3.type === DOC_TYPE_INDENT_IF_BREAK) {\n const optionsParts = [];\n if (doc3.negate) {\n optionsParts.push(\"negate: true\");\n }\n if (doc3.groupId) {\n optionsParts.push(`groupId: ${printGroupId(doc3.groupId)}`);\n }\n const options8 = optionsParts.length > 0 ? `, { ${optionsParts.join(\", \")} }` : \"\";\n return `indentIfBreak(${printDoc(doc3.contents)}${options8})`;\n }\n if (doc3.type === DOC_TYPE_GROUP) {\n const optionsParts = [];\n if (doc3.break && doc3.break !== \"propagated\") {\n optionsParts.push(\"shouldBreak: true\");\n }\n if (doc3.id) {\n optionsParts.push(`id: ${printGroupId(doc3.id)}`);\n }\n const options8 = optionsParts.length > 0 ? `, { ${optionsParts.join(\", \")} }` : \"\";\n if (doc3.expandedStates) {\n return `conditionalGroup([${doc3.expandedStates.map((part) => printDoc(part)).join(\",\")}]${options8})`;\n }\n return `group(${printDoc(doc3.contents)}${options8})`;\n }\n if (doc3.type === DOC_TYPE_FILL) {\n return `fill([${doc3.parts.map((part) => printDoc(part)).join(\", \")}])`;\n }\n if (doc3.type === DOC_TYPE_LINE_SUFFIX) {\n return \"lineSuffix(\" + printDoc(doc3.contents) + \")\";\n }\n if (doc3.type === DOC_TYPE_LINE_SUFFIX_BOUNDARY) {\n return \"lineSuffixBoundary\";\n }\n if (doc3.type === DOC_TYPE_LABEL) {\n return `label(${JSON.stringify(doc3.label)}, ${printDoc(doc3.contents)})`;\n }\n throw new Error(\"Unknown doc type \" + doc3.type);\n }\n function printGroupId(id) {\n if (typeof id !== \"symbol\") {\n return JSON.stringify(String(id));\n }\n if (id in printedSymbols) {\n return printedSymbols[id];\n }\n const prefix = id.description || \"symbol\";\n for (let counter = 0; ; counter++) {\n const key2 = prefix + (counter > 0 ? ` #${counter}` : \"\");\n if (!usedKeysForSymbols.has(key2)) {\n usedKeysForSymbols.add(key2);\n return printedSymbols[id] = `Symbol.for(${JSON.stringify(key2)})`;\n }\n }\n }\n}\n\n// scripts/build/shims/at.js\nvar at = (isOptionalObject, object, index) => {\n if (isOptionalObject && (object === void 0 || object === null)) {\n return;\n }\n if (Array.isArray(object) || typeof object === \"string\") {\n return object[index < 0 ? object.length + index : index];\n }\n return object.at(index);\n};\nvar at_default = at;\n\n// node_modules/emoji-regex/index.mjs\nvar emoji_regex_default = () => {\n return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n\n// node_modules/get-east-asian-width/lookup.js\nfunction isFullWidth(x) {\n return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n}\nfunction isWide(x) {\n return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\n\n// node_modules/get-east-asian-width/index.js\nvar _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n\n// src/utils/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/u;\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n width += _isNarrowWidth(codePoint) ? 1 : 2;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/document/utils.js\nfunction mapDoc(doc2, cb) {\n if (typeof doc2 === \"string\") {\n return cb(doc2);\n }\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc2);\n function rec(doc3) {\n if (mapped.has(doc3)) {\n return mapped.get(doc3);\n }\n const result = process4(doc3);\n mapped.set(doc3, result);\n return result;\n }\n function process4(doc3) {\n switch (get_doc_type_default(doc3)) {\n case DOC_TYPE_ARRAY:\n return cb(doc3.map(rec));\n case DOC_TYPE_FILL:\n return cb({ ...doc3, parts: doc3.parts.map(rec) });\n case DOC_TYPE_IF_BREAK:\n return cb({\n ...doc3,\n breakContents: rec(doc3.breakContents),\n flatContents: rec(doc3.flatContents)\n });\n case DOC_TYPE_GROUP: {\n let { expandedStates, contents } = doc3;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({ ...doc3, contents, expandedStates });\n }\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n return cb({ ...doc3, contents: rec(doc3.contents) });\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n return cb(doc3);\n default:\n throw new invalid_doc_error_default(doc3);\n }\n }\n}\nfunction breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = at_default(\n /* isOptionalObject */\n false,\n groupStack,\n -1\n );\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n}\nfunction propagateBreaks(doc2) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc3) {\n if (doc3.type === DOC_TYPE_BREAK_PARENT) {\n breakParentGroup(groupStack);\n }\n if (doc3.type === DOC_TYPE_GROUP) {\n groupStack.push(doc3);\n if (alreadyVisitedSet.has(doc3)) {\n return false;\n }\n alreadyVisitedSet.add(doc3);\n }\n }\n function propagateBreaksOnExitFn(doc3) {\n if (doc3.type === DOC_TYPE_GROUP) {\n const group = groupStack.pop();\n if (group.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverse_doc_default(\n doc2,\n propagateBreaksOnEnterFn,\n propagateBreaksOnExitFn,\n /* shouldTraverseConditionalGroups */\n true\n );\n}\nfunction stripTrailingHardlineFromParts(parts) {\n parts = [...parts];\n while (parts.length >= 2 && at_default(\n /* isOptionalObject */\n false,\n parts,\n -2\n ).type === DOC_TYPE_LINE && at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ));\n parts[parts.length - 1] = lastPart;\n }\n return parts;\n}\nfunction stripTrailingHardlineFromDoc(doc2) {\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_GROUP:\n case DOC_TYPE_LINE_SUFFIX:\n case DOC_TYPE_LABEL: {\n const contents = stripTrailingHardlineFromDoc(doc2.contents);\n return { ...doc2, contents };\n }\n case DOC_TYPE_IF_BREAK:\n return {\n ...doc2,\n breakContents: stripTrailingHardlineFromDoc(doc2.breakContents),\n flatContents: stripTrailingHardlineFromDoc(doc2.flatContents)\n };\n case DOC_TYPE_FILL:\n return { ...doc2, parts: stripTrailingHardlineFromParts(doc2.parts) };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc2);\n case DOC_TYPE_STRING:\n return doc2.replace(/[\\n\\r]*$/u, \"\");\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n return doc2;\n}\nfunction stripTrailingHardline(doc2) {\n return stripTrailingHardlineFromDoc(cleanDoc(doc2));\n}\nfunction cleanDocFn(doc2) {\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_FILL:\n if (doc2.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case DOC_TYPE_GROUP:\n if (!doc2.contents && !doc2.id && !doc2.break && !doc2.expandedStates) {\n return \"\";\n }\n if (doc2.contents.type === DOC_TYPE_GROUP && doc2.contents.id === doc2.id && doc2.contents.break === doc2.break && doc2.contents.expandedStates === doc2.expandedStates) {\n return doc2.contents;\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LINE_SUFFIX:\n if (!doc2.contents) {\n return \"\";\n }\n break;\n case DOC_TYPE_IF_BREAK:\n if (!doc2.flatContents && !doc2.breakContents) {\n return \"\";\n }\n break;\n case DOC_TYPE_ARRAY: {\n const parts = [];\n for (const part of doc2) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];\n if (typeof currentPart === \"string\" && typeof at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return parts;\n }\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n return doc2;\n}\nfunction cleanDoc(doc2) {\n return mapDoc(doc2, (currentDoc) => cleanDocFn(currentDoc));\n}\nfunction inheritLabel(doc2, fn) {\n return doc2.type === DOC_TYPE_LABEL ? { ...doc2, contents: fn(doc2.contents) } : fn(doc2);\n}\n\n// src/document/printer.js\nvar MODE_BREAK = Symbol(\"MODE_BREAK\");\nvar MODE_FLAT = Symbol(\"MODE_FLAT\");\nvar CURSOR_PLACEHOLDER = Symbol(\"cursor\");\nvar DOC_FILL_PRINTED_LENGTH = Symbol(\"DOC_FILL_PRINTED_LENGTH\");\nfunction rootIndent() {\n return { value: \"\", length: 0, queue: [] };\n}\nfunction makeIndent(ind, options8) {\n return generateInd(ind, { type: \"indent\" }, options8);\n}\nfunction makeAlign(indent2, widthOrDoc, options8) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, { type: \"dedent\" }, options8);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return { ...indent2, root: indent2 };\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, { type: alignType, n: widthOrDoc }, options8);\n}\nfunction generateInd(ind, newPart, options8) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options8.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options8.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(`Unexpected type '${part.type}'`);\n }\n }\n flushSpaces();\n return { ...ind, value, length, queue };\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options8.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options8.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n}\nfunction trim(out) {\n let trimCount = 0;\n let cursorCount = 0;\n let outIndex = out.length;\n outer: while (outIndex--) {\n const last = out[outIndex];\n if (last === CURSOR_PLACEHOLDER) {\n cursorCount++;\n continue;\n }\n if (false) {\n throw new Error(`Unexpected value in trim: '${typeof last}'`);\n }\n for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n const char = last[charIndex];\n if (char === \" \" || char === \"\t\") {\n trimCount++;\n } else {\n out[outIndex] = last.slice(0, charIndex + 1);\n break outer;\n }\n }\n }\n if (trimCount > 0 || cursorCount > 0) {\n out.length = outIndex + 1;\n while (cursorCount-- > 0) {\n out.push(CURSOR_PLACEHOLDER);\n }\n }\n return trimCount;\n}\nfunction fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (width === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[--restIdx]);\n continue;\n }\n const { mode, doc: doc2 } = cmds.pop();\n const docType = get_doc_type_default(doc2);\n switch (docType) {\n case DOC_TYPE_STRING:\n out.push(doc2);\n width -= get_string_width_default(doc2);\n break;\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;\n const end = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;\n for (let i = parts.length - 1; i >= end; i--) {\n cmds.push({ mode, doc: parts[i] });\n }\n break;\n }\n case DOC_TYPE_INDENT:\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n cmds.push({ mode, doc: doc2.contents });\n break;\n case DOC_TYPE_TRIM:\n width += trim(out);\n break;\n case DOC_TYPE_GROUP: {\n if (mustBeFlat && doc2.break) {\n return false;\n }\n const groupMode = doc2.break ? MODE_BREAK : mode;\n const contents = doc2.expandedStates && groupMode === MODE_BREAK ? at_default(\n /* isOptionalObject */\n false,\n doc2.expandedStates,\n -1\n ) : doc2.contents;\n cmds.push({ mode: groupMode, doc: contents });\n break;\n }\n case DOC_TYPE_IF_BREAK: {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] || MODE_FLAT : mode;\n const contents = groupMode === MODE_BREAK ? doc2.breakContents : doc2.flatContents;\n if (contents) {\n cmds.push({ mode, doc: contents });\n }\n break;\n }\n case DOC_TYPE_LINE:\n if (mode === MODE_BREAK || doc2.hard) {\n return true;\n }\n if (!doc2.soft) {\n out.push(\" \");\n width--;\n }\n break;\n case DOC_TYPE_LINE_SUFFIX:\n hasLineSuffix = true;\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (hasLineSuffix) {\n return false;\n }\n break;\n }\n }\n return false;\n}\nfunction printDocToString(doc2, options8) {\n const groupModeMap = {};\n const width = options8.printWidth;\n const newLine = convertEndOfLineToChars(options8.endOfLine);\n let pos2 = 0;\n const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc: doc2 }];\n const out = [];\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n let printedCursorCount = 0;\n propagateBreaks(doc2);\n while (cmds.length > 0) {\n const { ind, mode, doc: doc3 } = cmds.pop();\n switch (get_doc_type_default(doc3)) {\n case DOC_TYPE_STRING: {\n const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n /* isOptionalObject */\n false,\n doc3,\n \"\\n\",\n newLine\n ) : doc3;\n out.push(formatted);\n if (cmds.length > 0) {\n pos2 += get_string_width_default(formatted);\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let i = doc3.length - 1; i >= 0; i--) {\n cmds.push({ ind, mode, doc: doc3[i] });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (printedCursorCount >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n out.push(CURSOR_PLACEHOLDER);\n printedCursorCount++;\n break;\n case DOC_TYPE_INDENT:\n cmds.push({ ind: makeIndent(ind, options8), mode, doc: doc3.contents });\n break;\n case DOC_TYPE_ALIGN:\n cmds.push({\n ind: makeAlign(ind, doc3.n, options8),\n mode,\n doc: doc3.contents\n });\n break;\n case DOC_TYPE_TRIM:\n pos2 -= trim(out);\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push({\n ind,\n mode: doc3.break ? MODE_BREAK : MODE_FLAT,\n doc: doc3.contents\n });\n break;\n }\n // fallthrough\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = { ind, mode: MODE_FLAT, doc: doc3.contents };\n const rem = width - pos2;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc3.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(next);\n } else {\n if (doc3.expandedStates) {\n const mostExpanded = at_default(\n /* isOptionalObject */\n false,\n doc3.expandedStates,\n -1\n );\n if (doc3.break) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n for (let i = 1; i < doc3.expandedStates.length + 1; i++) {\n if (i >= doc3.expandedStates.length) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n const state = doc3.expandedStates[i];\n const cmd = { ind, mode: MODE_FLAT, doc: state };\n if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push({ ind, mode: MODE_BREAK, doc: doc3.contents });\n }\n }\n break;\n }\n }\n if (doc3.id) {\n groupModeMap[doc3.id] = at_default(\n /* isOptionalObject */\n false,\n cmds,\n -1\n ).mode;\n }\n break;\n // Fills each line with as much code as possible before moving to a new\n // line with the same indentation.\n //\n // Expects doc.parts to be an array of alternating content and\n // whitespace. The whitespace contains the linebreaks.\n //\n // For example:\n // [\"I\", line, \"love\", line, \"monkeys\"]\n // or\n // [{ type: group, ... }, softline, { type: group, ... }]\n //\n // It uses this parts structure to handle three main layout cases:\n // * The first two content items fit on the same line without\n // breaking\n // -> output the first content item and the whitespace \"flat\".\n // * Only the first content item fits on the line without breaking\n // -> output the first content item \"flat\" and the whitespace with\n // \"break\".\n // * Neither content item fits on the line without breaking\n // -> output the first content item and the whitespace with \"break\".\n case DOC_TYPE_FILL: {\n const rem = width - pos2;\n const offset = doc3[DOC_FILL_PRINTED_LENGTH] ?? 0;\n const { parts } = doc3;\n const length = parts.length - offset;\n if (length === 0) {\n break;\n }\n const content = parts[offset + 0];\n const whitespace = parts[offset + 1];\n const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };\n const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };\n const contentFits = fits(\n contentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };\n const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };\n if (length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n const secondContent = parts[offset + 2];\n const remainingCmd = {\n ind,\n mode,\n doc: { ...doc3, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }\n };\n const firstAndSecondContentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(\n firstAndSecondContentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n case DOC_TYPE_INDENT_IF_BREAK: {\n const groupMode = doc3.groupId ? groupModeMap[doc3.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc3.type === DOC_TYPE_IF_BREAK ? doc3.breakContents : doc3.negate ? doc3.contents : indent(doc3.contents);\n if (breakContents) {\n cmds.push({ ind, mode, doc: breakContents });\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc3.type === DOC_TYPE_IF_BREAK ? doc3.flatContents : doc3.negate ? indent(doc3.contents) : doc3.contents;\n if (flatContents) {\n cmds.push({ ind, mode, doc: flatContents });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({ ind, mode, doc: doc3.contents });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc3.hard) {\n if (!doc3.soft) {\n out.push(\" \");\n pos2 += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n // fallthrough\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: doc3 }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc3.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos2 = ind.root.length;\n } else {\n out.push(newLine);\n pos2 = 0;\n }\n } else {\n pos2 -= trim(out);\n out.push(newLine + ind.value);\n pos2 = ind.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n cmds.push({ ind, mode, doc: doc3.contents });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc3);\n }\n if (cmds.length === 0 && lineSuffix2.length > 0) {\n cmds.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(\n CURSOR_PLACEHOLDER,\n cursorPlaceholderIndex + 1\n );\n if (otherCursorPlaceholderIndex === -1) {\n return {\n formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join(\"\")\n };\n }\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return { formatted: out.join(\"\") };\n}\n\n// src/utils/get-alignment-size.js\nfunction getAlignmentSize(text, tabWidth, startIndex = 0) {\n let size = 0;\n for (let i = startIndex; i < text.length; ++i) {\n if (text[i] === \"\t\") {\n size = size + tabWidth - size % tabWidth;\n } else {\n size++;\n }\n }\n return size;\n}\nvar get_alignment_size_default = getAlignmentSize;\n\n// src/common/ast-path.js\nvar _AstPath_instances, getNodeStackIndex_fn, getAncestors_fn;\nvar AstPath = class {\n constructor(value) {\n __privateAdd(this, _AstPath_instances);\n this.stack = [value];\n }\n /** @type {string | null} */\n get key() {\n const { stack: stack2, siblings } = this;\n return at_default(\n /* isOptionalObject */\n false,\n stack2,\n siblings === null ? -2 : -4\n ) ?? null;\n }\n /** @type {number | null} */\n get index() {\n return this.siblings === null ? null : at_default(\n /* isOptionalObject */\n false,\n this.stack,\n -2\n );\n }\n /** @type {object} */\n get node() {\n return at_default(\n /* isOptionalObject */\n false,\n this.stack,\n -1\n );\n }\n /** @type {object | null} */\n get parent() {\n return this.getNode(1);\n }\n /** @type {object | null} */\n get grandparent() {\n return this.getNode(2);\n }\n /** @type {boolean} */\n get isInArray() {\n return this.siblings !== null;\n }\n /** @type {object[] | null} */\n get siblings() {\n const { stack: stack2 } = this;\n const maybeArray = at_default(\n /* isOptionalObject */\n false,\n stack2,\n -3\n );\n return Array.isArray(maybeArray) ? maybeArray : null;\n }\n /** @type {object | null} */\n get next() {\n const { siblings } = this;\n return siblings === null ? null : siblings[this.index + 1];\n }\n /** @type {object | null} */\n get previous() {\n const { siblings } = this;\n return siblings === null ? null : siblings[this.index - 1];\n }\n /** @type {boolean} */\n get isFirst() {\n return this.index === 0;\n }\n /** @type {boolean} */\n get isLast() {\n const { siblings, index } = this;\n return siblings !== null && index === siblings.length - 1;\n }\n /** @type {boolean} */\n get isRoot() {\n return this.stack.length === 1;\n }\n /** @type {object} */\n get root() {\n return this.stack[0];\n }\n /** @type {object[]} */\n get ancestors() {\n return [...__privateMethod(this, _AstPath_instances, getAncestors_fn).call(this)];\n }\n // The name of the current property is always the penultimate element of\n // this.stack, and always a string/number/symbol.\n getName() {\n const { stack: stack2 } = this;\n const { length } = stack2;\n if (length > 1) {\n return at_default(\n /* isOptionalObject */\n false,\n stack2,\n -2\n );\n }\n return null;\n }\n // The value of the current property is always the final element of\n // this.stack.\n getValue() {\n return at_default(\n /* isOptionalObject */\n false,\n this.stack,\n -1\n );\n }\n getNode(count = 0) {\n const stackIndex = __privateMethod(this, _AstPath_instances, getNodeStackIndex_fn).call(this, count);\n return stackIndex === -1 ? null : this.stack[stackIndex];\n }\n getParentNode(count = 0) {\n return this.getNode(count + 1);\n }\n // Temporarily push properties named by string arguments given after the\n // callback function onto this.stack, then call the callback with a\n // reference to this (modified) AstPath object. Note that the stack will\n // be restored to its original state after the callback is finished, so it\n // is probably a mistake to retain a reference to the path.\n call(callback, ...names) {\n const { stack: stack2 } = this;\n const { length } = stack2;\n let value = at_default(\n /* isOptionalObject */\n false,\n stack2,\n -1\n );\n for (const name of names) {\n value = value[name];\n stack2.push(name, value);\n }\n try {\n return callback(this);\n } finally {\n stack2.length = length;\n }\n }\n /**\n * @template {(path: AstPath) => any} T\n * @param {T} callback\n * @param {number} [count=0]\n * @returns {ReturnType}\n */\n callParent(callback, count = 0) {\n const stackIndex = __privateMethod(this, _AstPath_instances, getNodeStackIndex_fn).call(this, count + 1);\n const parentValues = this.stack.splice(stackIndex + 1);\n try {\n return callback(this);\n } finally {\n this.stack.push(...parentValues);\n }\n }\n // Similar to AstPath.prototype.call, except that the value obtained by\n // accessing this.getValue()[name1][name2]... should be array. The\n // callback will be called with a reference to this path object for each\n // element of the array.\n each(callback, ...names) {\n const { stack: stack2 } = this;\n const { length } = stack2;\n let value = at_default(\n /* isOptionalObject */\n false,\n stack2,\n -1\n );\n for (const name of names) {\n value = value[name];\n stack2.push(name, value);\n }\n try {\n for (let i = 0; i < value.length; ++i) {\n stack2.push(i, value[i]);\n callback(this, i, value);\n stack2.length -= 2;\n }\n } finally {\n stack2.length = length;\n }\n }\n // Similar to AstPath.prototype.each, except that the results of the\n // callback function invocations are stored in an array and returned at\n // the end of the iteration.\n map(callback, ...names) {\n const result = [];\n this.each(\n (path13, index, value) => {\n result[index] = callback(path13, index, value);\n },\n ...names\n );\n return result;\n }\n /**\n * @param {...(\n * | ((node: any, name: string | null, number: number | null) => boolean)\n * | undefined\n * )} predicates\n */\n match(...predicates) {\n let stackPointer = this.stack.length - 1;\n let name = null;\n let node = this.stack[stackPointer--];\n for (const predicate of predicates) {\n if (node === void 0) {\n return false;\n }\n let number = null;\n if (typeof name === \"number\") {\n number = name;\n name = this.stack[stackPointer--];\n node = this.stack[stackPointer--];\n }\n if (predicate && !predicate(node, name, number)) {\n return false;\n }\n name = this.stack[stackPointer--];\n node = this.stack[stackPointer--];\n }\n return true;\n }\n /**\n * Traverses the ancestors of the current node heading toward the tree root\n * until it finds a node that matches the provided predicate function. Will\n * return the first matching ancestor. If no such node exists, returns undefined.\n * @param {(node: any) => boolean} predicate\n * @internal Unstable API. Don't use in plugins for now.\n */\n findAncestor(predicate) {\n for (const node of __privateMethod(this, _AstPath_instances, getAncestors_fn).call(this)) {\n if (predicate(node)) {\n return node;\n }\n }\n }\n /**\n * Traverses the ancestors of the current node heading toward the tree root\n * until it finds a node that matches the provided predicate function.\n * returns true if matched node found.\n * @param {(node: any) => boolean} predicate\n * @returns {boolean}\n * @internal Unstable API. Don't use in plugins for now.\n */\n hasAncestor(predicate) {\n for (const node of __privateMethod(this, _AstPath_instances, getAncestors_fn).call(this)) {\n if (predicate(node)) {\n return true;\n }\n }\n return false;\n }\n};\n_AstPath_instances = new WeakSet();\ngetNodeStackIndex_fn = function(count) {\n const { stack: stack2 } = this;\n for (let i = stack2.length - 1; i >= 0; i -= 2) {\n if (!Array.isArray(stack2[i]) && --count < 0) {\n return i;\n }\n }\n return -1;\n};\ngetAncestors_fn = function* () {\n const { stack: stack2 } = this;\n for (let index = stack2.length - 3; index >= 0; index -= 2) {\n const value = stack2[index];\n if (!Array.isArray(value)) {\n yield value;\n }\n }\n};\nvar ast_path_default = AstPath;\n\n// src/main/comments/attach.js\nimport assert4 from \"assert\";\n\n// src/utils/is-object.js\nfunction isObject2(object) {\n return object !== null && typeof object === \"object\";\n}\nvar is_object_default = isObject2;\n\n// src/utils/ast-utils.js\nfunction* getChildren(node, options8) {\n const { getVisitorKeys, filter: filter2 = () => true } = options8;\n const isMatchedNode = (node2) => is_object_default(node2) && filter2(node2);\n for (const key2 of getVisitorKeys(node)) {\n const value = node[key2];\n if (Array.isArray(value)) {\n for (const child of value) {\n if (isMatchedNode(child)) {\n yield child;\n }\n }\n } else if (isMatchedNode(value)) {\n yield value;\n }\n }\n}\nfunction* getDescendants(node, options8) {\n const queue = [node];\n for (let index = 0; index < queue.length; index++) {\n const node2 = queue[index];\n for (const child of getChildren(node2, options8)) {\n yield child;\n queue.push(child);\n }\n }\n}\nfunction isLeaf(node, options8) {\n return getChildren(node, options8).next().done;\n}\n\n// src/utils/skip.js\nfunction skip(characters) {\n return (text, startIndex, options8) => {\n const backwards = Boolean(options8 == null ? void 0 : options8.backwards);\n if (startIndex === false) {\n return false;\n }\n const { length } = text;\n let cursor2 = startIndex;\n while (cursor2 >= 0 && cursor2 < length) {\n const character = text.charAt(cursor2);\n if (characters instanceof RegExp) {\n if (!characters.test(character)) {\n return cursor2;\n }\n } else if (!characters.includes(character)) {\n return cursor2;\n }\n backwards ? cursor2-- : cursor2++;\n }\n if (cursor2 === -1 || cursor2 === length) {\n return cursor2;\n }\n return false;\n };\n}\nvar skipWhitespace = skip(/\\s/u);\nvar skipSpaces = skip(\" \t\");\nvar skipToLineEnd = skip(\",; \t\");\nvar skipEverythingButNewLine = skip(/[^\\n\\r]/u);\n\n// src/utils/skip-newline.js\nfunction skipNewline(text, startIndex, options8) {\n const backwards = Boolean(options8 == null ? void 0 : options8.backwards);\n if (startIndex === false) {\n return false;\n }\n const character = text.charAt(startIndex);\n if (backwards) {\n if (text.charAt(startIndex - 1) === \"\\r\" && character === \"\\n\") {\n return startIndex - 2;\n }\n if (character === \"\\n\" || character === \"\\r\" || character === \"\\u2028\" || character === \"\\u2029\") {\n return startIndex - 1;\n }\n } else {\n if (character === \"\\r\" && text.charAt(startIndex + 1) === \"\\n\") {\n return startIndex + 2;\n }\n if (character === \"\\n\" || character === \"\\r\" || character === \"\\u2028\" || character === \"\\u2029\") {\n return startIndex + 1;\n }\n }\n return startIndex;\n}\nvar skip_newline_default = skipNewline;\n\n// src/utils/has-newline.js\nfunction hasNewline(text, startIndex, options8 = {}) {\n const idx = skipSpaces(\n text,\n options8.backwards ? startIndex - 1 : startIndex,\n options8\n );\n const idx2 = skip_newline_default(text, idx, options8);\n return idx !== idx2;\n}\nvar has_newline_default = hasNewline;\n\n// src/utils/is-non-empty-array.js\nfunction isNonEmptyArray(object) {\n return Array.isArray(object) && object.length > 0;\n}\nvar is_non_empty_array_default = isNonEmptyArray;\n\n// src/main/create-get-visitor-keys-function.js\nvar nonTraversableKeys = /* @__PURE__ */ new Set([\n \"tokens\",\n \"comments\",\n \"parent\",\n \"enclosingNode\",\n \"precedingNode\",\n \"followingNode\"\n]);\nvar defaultGetVisitorKeys = (node) => Object.keys(node).filter((key2) => !nonTraversableKeys.has(key2));\nfunction createGetVisitorKeysFunction(printerGetVisitorKeys) {\n return printerGetVisitorKeys ? (node) => printerGetVisitorKeys(node, nonTraversableKeys) : defaultGetVisitorKeys;\n}\nvar create_get_visitor_keys_function_default = createGetVisitorKeysFunction;\n\n// src/main/comments/utils.js\nfunction describeNodeForDebugging(node) {\n const nodeType = node.type || node.kind || \"(unknown type)\";\n let nodeName = String(\n node.name || node.id && (typeof node.id === \"object\" ? node.id.name : node.id) || node.key && (typeof node.key === \"object\" ? node.key.name : node.key) || node.value && (typeof node.value === \"object\" ? \"\" : String(node.value)) || node.operator || \"\"\n );\n if (nodeName.length > 20) {\n nodeName = nodeName.slice(0, 19) + \"\\u2026\";\n }\n return nodeType + (nodeName ? \" \" + nodeName : \"\");\n}\nfunction addCommentHelper(node, comment) {\n const comments = node.comments ?? (node.comments = []);\n comments.push(comment);\n comment.printed = false;\n comment.nodeDescription = describeNodeForDebugging(node);\n}\nfunction addLeadingComment(node, comment) {\n comment.leading = true;\n comment.trailing = false;\n addCommentHelper(node, comment);\n}\nfunction addDanglingComment(node, comment, marker) {\n comment.leading = false;\n comment.trailing = false;\n if (marker) {\n comment.marker = marker;\n }\n addCommentHelper(node, comment);\n}\nfunction addTrailingComment(node, comment) {\n comment.leading = false;\n comment.trailing = true;\n addCommentHelper(node, comment);\n}\n\n// src/main/comments/attach.js\nvar childNodesCache = /* @__PURE__ */ new WeakMap();\nfunction getSortedChildNodes(node, options8) {\n if (childNodesCache.has(node)) {\n return childNodesCache.get(node);\n }\n const {\n printer: {\n getCommentChildNodes,\n canAttachComment,\n getVisitorKeys: printerGetVisitorKeys\n },\n locStart,\n locEnd\n } = options8;\n if (!canAttachComment) {\n return [];\n }\n const childNodes = ((getCommentChildNodes == null ? void 0 : getCommentChildNodes(node, options8)) ?? [\n ...getChildren(node, {\n getVisitorKeys: create_get_visitor_keys_function_default(printerGetVisitorKeys)\n })\n ]).flatMap(\n (node2) => canAttachComment(node2) ? [node2] : getSortedChildNodes(node2, options8)\n );\n childNodes.sort(\n (nodeA, nodeB) => locStart(nodeA) - locStart(nodeB) || locEnd(nodeA) - locEnd(nodeB)\n );\n childNodesCache.set(node, childNodes);\n return childNodes;\n}\nfunction decorateComment(node, comment, options8, enclosingNode) {\n const { locStart, locEnd } = options8;\n const commentStart = locStart(comment);\n const commentEnd = locEnd(comment);\n const childNodes = getSortedChildNodes(node, options8);\n let precedingNode;\n let followingNode;\n let left = 0;\n let right = childNodes.length;\n while (left < right) {\n const middle = left + right >> 1;\n const child = childNodes[middle];\n const start = locStart(child);\n const end = locEnd(child);\n if (start <= commentStart && commentEnd <= end) {\n return decorateComment(child, comment, options8, child);\n }\n if (end <= commentStart) {\n precedingNode = child;\n left = middle + 1;\n continue;\n }\n if (commentEnd <= start) {\n followingNode = child;\n right = middle;\n continue;\n }\n throw new Error(\"Comment location overlaps with node location\");\n }\n if ((enclosingNode == null ? void 0 : enclosingNode.type) === \"TemplateLiteral\") {\n const { quasis } = enclosingNode;\n const commentIndex = findExpressionIndexForComment(\n quasis,\n comment,\n options8\n );\n if (precedingNode && findExpressionIndexForComment(quasis, precedingNode, options8) !== commentIndex) {\n precedingNode = null;\n }\n if (followingNode && findExpressionIndexForComment(quasis, followingNode, options8) !== commentIndex) {\n followingNode = null;\n }\n }\n return { enclosingNode, precedingNode, followingNode };\n}\nvar returnFalse = () => false;\nfunction attachComments(ast, options8) {\n const { comments } = ast;\n delete ast.comments;\n if (!is_non_empty_array_default(comments) || !options8.printer.canAttachComment) {\n return;\n }\n const tiesToBreak = [];\n const {\n locStart,\n locEnd,\n printer: {\n experimentalFeatures: {\n // TODO: Make this as default behavior\n avoidAstMutation = false\n } = {},\n handleComments = {}\n },\n originalText: text\n } = options8;\n const {\n ownLine: handleOwnLineComment = returnFalse,\n endOfLine: handleEndOfLineComment = returnFalse,\n remaining: handleRemainingComment = returnFalse\n } = handleComments;\n const decoratedComments = comments.map((comment, index) => ({\n ...decorateComment(ast, comment, options8),\n comment,\n text,\n options: options8,\n ast,\n isLastComment: comments.length - 1 === index\n }));\n for (const [index, context] of decoratedComments.entries()) {\n const {\n comment,\n precedingNode,\n enclosingNode,\n followingNode,\n text: text2,\n options: options9,\n ast: ast2,\n isLastComment\n } = context;\n if (options9.parser === \"json\" || options9.parser === \"json5\" || options9.parser === \"jsonc\" || options9.parser === \"__js_expression\" || options9.parser === \"__ts_expression\" || options9.parser === \"__vue_expression\" || options9.parser === \"__vue_ts_expression\") {\n if (locStart(comment) - locStart(ast2) <= 0) {\n addLeadingComment(ast2, comment);\n continue;\n }\n if (locEnd(comment) - locEnd(ast2) >= 0) {\n addTrailingComment(ast2, comment);\n continue;\n }\n }\n let args;\n if (avoidAstMutation) {\n args = [context];\n } else {\n comment.enclosingNode = enclosingNode;\n comment.precedingNode = precedingNode;\n comment.followingNode = followingNode;\n args = [comment, text2, options9, ast2, isLastComment];\n }\n if (isOwnLineComment(text2, options9, decoratedComments, index)) {\n comment.placement = \"ownLine\";\n if (handleOwnLineComment(...args)) {\n } else if (followingNode) {\n addLeadingComment(followingNode, comment);\n } else if (precedingNode) {\n addTrailingComment(precedingNode, comment);\n } else if (enclosingNode) {\n addDanglingComment(enclosingNode, comment);\n } else {\n addDanglingComment(ast2, comment);\n }\n } else if (isEndOfLineComment(text2, options9, decoratedComments, index)) {\n comment.placement = \"endOfLine\";\n if (handleEndOfLineComment(...args)) {\n } else if (precedingNode) {\n addTrailingComment(precedingNode, comment);\n } else if (followingNode) {\n addLeadingComment(followingNode, comment);\n } else if (enclosingNode) {\n addDanglingComment(enclosingNode, comment);\n } else {\n addDanglingComment(ast2, comment);\n }\n } else {\n comment.placement = \"remaining\";\n if (handleRemainingComment(...args)) {\n } else if (precedingNode && followingNode) {\n const tieCount = tiesToBreak.length;\n if (tieCount > 0) {\n const lastTie = tiesToBreak[tieCount - 1];\n if (lastTie.followingNode !== followingNode) {\n breakTies(tiesToBreak, options9);\n }\n }\n tiesToBreak.push(context);\n } else if (precedingNode) {\n addTrailingComment(precedingNode, comment);\n } else if (followingNode) {\n addLeadingComment(followingNode, comment);\n } else if (enclosingNode) {\n addDanglingComment(enclosingNode, comment);\n } else {\n addDanglingComment(ast2, comment);\n }\n }\n }\n breakTies(tiesToBreak, options8);\n if (!avoidAstMutation) {\n for (const comment of comments) {\n delete comment.precedingNode;\n delete comment.enclosingNode;\n delete comment.followingNode;\n }\n }\n}\nvar isAllEmptyAndNoLineBreak = (text) => !/[\\S\\n\\u2028\\u2029]/u.test(text);\nfunction isOwnLineComment(text, options8, decoratedComments, commentIndex) {\n const { comment, precedingNode } = decoratedComments[commentIndex];\n const { locStart, locEnd } = options8;\n let start = locStart(comment);\n if (precedingNode) {\n for (let index = commentIndex - 1; index >= 0; index--) {\n const { comment: comment2, precedingNode: currentCommentPrecedingNode } = decoratedComments[index];\n if (currentCommentPrecedingNode !== precedingNode || !isAllEmptyAndNoLineBreak(text.slice(locEnd(comment2), start))) {\n break;\n }\n start = locStart(comment2);\n }\n }\n return has_newline_default(text, start, { backwards: true });\n}\nfunction isEndOfLineComment(text, options8, decoratedComments, commentIndex) {\n const { comment, followingNode } = decoratedComments[commentIndex];\n const { locStart, locEnd } = options8;\n let end = locEnd(comment);\n if (followingNode) {\n for (let index = commentIndex + 1; index < decoratedComments.length; index++) {\n const { comment: comment2, followingNode: currentCommentFollowingNode } = decoratedComments[index];\n if (currentCommentFollowingNode !== followingNode || !isAllEmptyAndNoLineBreak(text.slice(end, locStart(comment2)))) {\n break;\n }\n end = locEnd(comment2);\n }\n }\n return has_newline_default(text, end);\n}\nfunction breakTies(tiesToBreak, options8) {\n var _a, _b;\n const tieCount = tiesToBreak.length;\n if (tieCount === 0) {\n return;\n }\n const { precedingNode, followingNode } = tiesToBreak[0];\n let gapEndPos = options8.locStart(followingNode);\n let indexOfFirstLeadingComment;\n for (indexOfFirstLeadingComment = tieCount; indexOfFirstLeadingComment > 0; --indexOfFirstLeadingComment) {\n const {\n comment,\n precedingNode: currentCommentPrecedingNode,\n followingNode: currentCommentFollowingNode\n } = tiesToBreak[indexOfFirstLeadingComment - 1];\n assert4.strictEqual(currentCommentPrecedingNode, precedingNode);\n assert4.strictEqual(currentCommentFollowingNode, followingNode);\n const gap = options8.originalText.slice(options8.locEnd(comment), gapEndPos);\n if (((_b = (_a = options8.printer).isGap) == null ? void 0 : _b.call(_a, gap, options8)) ?? /^[\\s(]*$/u.test(gap)) {\n gapEndPos = options8.locStart(comment);\n } else {\n break;\n }\n }\n for (const [i, { comment }] of tiesToBreak.entries()) {\n if (i < indexOfFirstLeadingComment) {\n addTrailingComment(precedingNode, comment);\n } else {\n addLeadingComment(followingNode, comment);\n }\n }\n for (const node of [precedingNode, followingNode]) {\n if (node.comments && node.comments.length > 1) {\n node.comments.sort((a, b) => options8.locStart(a) - options8.locStart(b));\n }\n }\n tiesToBreak.length = 0;\n}\nfunction findExpressionIndexForComment(quasis, comment, options8) {\n const startPos = options8.locStart(comment) - 1;\n for (let i = 1; i < quasis.length; ++i) {\n if (startPos < options8.locStart(quasis[i])) {\n return i - 1;\n }\n }\n return 0;\n}\n\n// src/utils/is-previous-line-empty.js\nfunction isPreviousLineEmpty(text, startIndex) {\n let idx = startIndex - 1;\n idx = skipSpaces(text, idx, { backwards: true });\n idx = skip_newline_default(text, idx, { backwards: true });\n idx = skipSpaces(text, idx, { backwards: true });\n const idx2 = skip_newline_default(text, idx, { backwards: true });\n return idx !== idx2;\n}\nvar is_previous_line_empty_default = isPreviousLineEmpty;\n\n// src/main/comments/print.js\nfunction printComment(path13, options8) {\n const comment = path13.node;\n comment.printed = true;\n return options8.printer.printComment(path13, options8);\n}\nfunction printLeadingComment(path13, options8) {\n var _a;\n const comment = path13.node;\n const parts = [printComment(path13, options8)];\n const { printer, originalText, locStart, locEnd } = options8;\n const isBlock = (_a = printer.isBlockComment) == null ? void 0 : _a.call(printer, comment);\n if (isBlock) {\n const lineBreak = has_newline_default(originalText, locEnd(comment)) ? has_newline_default(originalText, locStart(comment), {\n backwards: true\n }) ? hardline : line2 : \" \";\n parts.push(lineBreak);\n } else {\n parts.push(hardline);\n }\n const index = skip_newline_default(\n originalText,\n skipSpaces(originalText, locEnd(comment))\n );\n if (index !== false && has_newline_default(originalText, index)) {\n parts.push(hardline);\n }\n return parts;\n}\nfunction printTrailingComment(path13, options8, previousComment) {\n var _a;\n const comment = path13.node;\n const printed = printComment(path13, options8);\n const { printer, originalText, locStart } = options8;\n const isBlock = (_a = printer.isBlockComment) == null ? void 0 : _a.call(printer, comment);\n if ((previousComment == null ? void 0 : previousComment.hasLineSuffix) && !(previousComment == null ? void 0 : previousComment.isBlock) || has_newline_default(originalText, locStart(comment), { backwards: true })) {\n const isLineBeforeEmpty = is_previous_line_empty_default(\n originalText,\n locStart(comment)\n );\n return {\n doc: lineSuffix([hardline, isLineBeforeEmpty ? hardline : \"\", printed]),\n isBlock,\n hasLineSuffix: true\n };\n }\n if (!isBlock || (previousComment == null ? void 0 : previousComment.hasLineSuffix)) {\n return {\n doc: [lineSuffix([\" \", printed]), breakParent],\n isBlock,\n hasLineSuffix: true\n };\n }\n return { doc: [\" \", printed], isBlock, hasLineSuffix: false };\n}\nfunction printCommentsSeparately(path13, options8) {\n const value = path13.node;\n if (!value) {\n return {};\n }\n const ignored = options8[Symbol.for(\"printedComments\")];\n const comments = (value.comments || []).filter(\n (comment) => !ignored.has(comment)\n );\n if (comments.length === 0) {\n return { leading: \"\", trailing: \"\" };\n }\n const leadingParts = [];\n const trailingParts = [];\n let printedTrailingComment;\n path13.each(() => {\n const comment = path13.node;\n if (ignored == null ? void 0 : ignored.has(comment)) {\n return;\n }\n const { leading, trailing } = comment;\n if (leading) {\n leadingParts.push(printLeadingComment(path13, options8));\n } else if (trailing) {\n printedTrailingComment = printTrailingComment(\n path13,\n options8,\n printedTrailingComment\n );\n trailingParts.push(printedTrailingComment.doc);\n }\n }, \"comments\");\n return { leading: leadingParts, trailing: trailingParts };\n}\nfunction printComments(path13, doc2, options8) {\n const { leading, trailing } = printCommentsSeparately(path13, options8);\n if (!leading && !trailing) {\n return doc2;\n }\n return inheritLabel(doc2, (doc3) => [leading, doc3, trailing]);\n}\nfunction ensureAllCommentsPrinted(options8) {\n const {\n [Symbol.for(\"comments\")]: comments,\n [Symbol.for(\"printedComments\")]: printedComments\n } = options8;\n for (const comment of comments) {\n if (!comment.printed && !printedComments.has(comment)) {\n throw new Error(\n 'Comment \"' + comment.value.trim() + '\" was not printed. Please report this error!'\n );\n }\n delete comment.printed;\n }\n}\n\n// src/main/create-print-pre-check-function.js\nfunction createPrintPreCheckFunction(options8) {\n if (true) {\n return () => {\n };\n }\n const getVisitorKeys = create_get_visitor_keys_function_default(\n options8.printer.getVisitorKeys\n );\n return function(path13) {\n if (path13.isRoot) {\n return;\n }\n const { key: key2, parent } = path13;\n const visitorKeys = getVisitorKeys(parent);\n if (visitorKeys.includes(key2)) {\n return;\n }\n throw Object.assign(new Error(\"Calling `print()` on non-node object.\"), {\n parentNode: parent,\n allowedProperties: visitorKeys,\n printingProperty: key2,\n printingValue: path13.node,\n pathStack: path13.stack.length > 5 ? [\"...\", ...path13.stack.slice(-5)] : [...path13.stack]\n });\n };\n}\nvar create_print_pre_check_function_default = createPrintPreCheckFunction;\n\n// src/main/core-options.evaluate.js\nvar core_options_evaluate_default = {\n \"cursorOffset\": {\n \"category\": \"Special\",\n \"type\": \"int\",\n \"default\": -1,\n \"range\": {\n \"start\": -1,\n \"end\": Infinity,\n \"step\": 1\n },\n \"description\": \"Print (to stderr) where a cursor at the given position would move to after formatting.\",\n \"cliCategory\": \"Editor\"\n },\n \"endOfLine\": {\n \"category\": \"Global\",\n \"type\": \"choice\",\n \"default\": \"lf\",\n \"description\": \"Which end of line characters to apply.\",\n \"choices\": [\n {\n \"value\": \"lf\",\n \"description\": \"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"\n },\n {\n \"value\": \"crlf\",\n \"description\": \"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"\n },\n {\n \"value\": \"cr\",\n \"description\": \"Carriage Return character only (\\\\r), used very rarely\"\n },\n {\n \"value\": \"auto\",\n \"description\": \"Maintain existing\\n(mixed values within one file are normalised by looking at what's used after the first line)\"\n }\n ]\n },\n \"filepath\": {\n \"category\": \"Special\",\n \"type\": \"path\",\n \"description\": \"Specify the input filepath. This will be used to do parser inference.\",\n \"cliName\": \"stdin-filepath\",\n \"cliCategory\": \"Other\",\n \"cliDescription\": \"Path to the file to pretend that stdin comes from.\"\n },\n \"insertPragma\": {\n \"category\": \"Special\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Insert @format pragma into file's first docblock comment.\",\n \"cliCategory\": \"Other\"\n },\n \"parser\": {\n \"category\": \"Global\",\n \"type\": \"choice\",\n \"default\": void 0,\n \"description\": \"Which parser to use.\",\n \"exception\": (value) => typeof value === \"string\" || typeof value === \"function\",\n \"choices\": [\n {\n \"value\": \"flow\",\n \"description\": \"Flow\"\n },\n {\n \"value\": \"babel\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"babel-flow\",\n \"description\": \"Flow\"\n },\n {\n \"value\": \"babel-ts\",\n \"description\": \"TypeScript\"\n },\n {\n \"value\": \"typescript\",\n \"description\": \"TypeScript\"\n },\n {\n \"value\": \"acorn\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"espree\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"meriyah\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"css\",\n \"description\": \"CSS\"\n },\n {\n \"value\": \"less\",\n \"description\": \"Less\"\n },\n {\n \"value\": \"scss\",\n \"description\": \"SCSS\"\n },\n {\n \"value\": \"json\",\n \"description\": \"JSON\"\n },\n {\n \"value\": \"json5\",\n \"description\": \"JSON5\"\n },\n {\n \"value\": \"jsonc\",\n \"description\": \"JSON with Comments\"\n },\n {\n \"value\": \"json-stringify\",\n \"description\": \"JSON.stringify\"\n },\n {\n \"value\": \"graphql\",\n \"description\": \"GraphQL\"\n },\n {\n \"value\": \"markdown\",\n \"description\": \"Markdown\"\n },\n {\n \"value\": \"mdx\",\n \"description\": \"MDX\"\n },\n {\n \"value\": \"vue\",\n \"description\": \"Vue\"\n },\n {\n \"value\": \"yaml\",\n \"description\": \"YAML\"\n },\n {\n \"value\": \"glimmer\",\n \"description\": \"Ember / Handlebars\"\n },\n {\n \"value\": \"html\",\n \"description\": \"HTML\"\n },\n {\n \"value\": \"angular\",\n \"description\": \"Angular\"\n },\n {\n \"value\": \"lwc\",\n \"description\": \"Lightning Web Components\"\n }\n ]\n },\n \"plugins\": {\n \"type\": \"path\",\n \"array\": true,\n \"default\": [\n {\n \"value\": []\n }\n ],\n \"category\": \"Global\",\n \"description\": \"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",\n \"exception\": (value) => typeof value === \"string\" || typeof value === \"object\",\n \"cliName\": \"plugin\",\n \"cliCategory\": \"Config\"\n },\n \"printWidth\": {\n \"category\": \"Global\",\n \"type\": \"int\",\n \"default\": 80,\n \"description\": \"The line length where Prettier will try wrap.\",\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n }\n },\n \"rangeEnd\": {\n \"category\": \"Special\",\n \"type\": \"int\",\n \"default\": Infinity,\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n },\n \"description\": \"Format code ending at a given character offset (exclusive).\\nThe range will extend forwards to the end of the selected statement.\",\n \"cliCategory\": \"Editor\"\n },\n \"rangeStart\": {\n \"category\": \"Special\",\n \"type\": \"int\",\n \"default\": 0,\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n },\n \"description\": \"Format code starting at a given character offset.\\nThe range will extend backwards to the start of the first line containing the selected statement.\",\n \"cliCategory\": \"Editor\"\n },\n \"requirePragma\": {\n \"category\": \"Special\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Require either '@prettier' or '@format' to be present in the file's first docblock comment\\nin order for it to be formatted.\",\n \"cliCategory\": \"Other\"\n },\n \"tabWidth\": {\n \"type\": \"int\",\n \"category\": \"Global\",\n \"default\": 2,\n \"description\": \"Number of spaces per indentation level.\",\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n }\n },\n \"useTabs\": {\n \"category\": \"Global\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Indent with tabs instead of spaces.\"\n },\n \"embeddedLanguageFormatting\": {\n \"category\": \"Global\",\n \"type\": \"choice\",\n \"default\": \"auto\",\n \"description\": \"Control how Prettier formats quoted code embedded in the file.\",\n \"choices\": [\n {\n \"value\": \"auto\",\n \"description\": \"Format embedded code if Prettier can automatically identify it.\"\n },\n {\n \"value\": \"off\",\n \"description\": \"Never automatically format embedded code.\"\n }\n ]\n }\n};\n\n// src/main/support.js\nfunction getSupportInfo({ plugins = [], showDeprecated = false } = {}) {\n const languages2 = plugins.flatMap((plugin) => plugin.languages ?? []);\n const options8 = [];\n for (const option of normalizeOptionSettings(\n Object.assign({}, ...plugins.map(({ options: options9 }) => options9), core_options_evaluate_default)\n )) {\n if (!showDeprecated && option.deprecated) {\n continue;\n }\n if (Array.isArray(option.choices)) {\n if (!showDeprecated) {\n option.choices = option.choices.filter((choice) => !choice.deprecated);\n }\n if (option.name === \"parser\") {\n option.choices = [\n ...option.choices,\n ...collectParsersFromLanguages(option.choices, languages2, plugins)\n ];\n }\n }\n option.pluginDefaults = Object.fromEntries(\n plugins.filter((plugin) => {\n var _a;\n return ((_a = plugin.defaultOptions) == null ? void 0 : _a[option.name]) !== void 0;\n }).map((plugin) => [plugin.name, plugin.defaultOptions[option.name]])\n );\n options8.push(option);\n }\n return { languages: languages2, options: options8 };\n}\nfunction* collectParsersFromLanguages(parserChoices, languages2, plugins) {\n const existingParsers = new Set(parserChoices.map((choice) => choice.value));\n for (const language of languages2) {\n if (language.parsers) {\n for (const parserName of language.parsers) {\n if (!existingParsers.has(parserName)) {\n existingParsers.add(parserName);\n const plugin = plugins.find(\n (plugin2) => plugin2.parsers && Object.prototype.hasOwnProperty.call(plugin2.parsers, parserName)\n );\n let description = language.name;\n if (plugin == null ? void 0 : plugin.name) {\n description += ` (plugin: ${plugin.name})`;\n }\n yield { value: parserName, description };\n }\n }\n }\n }\n}\nfunction normalizeOptionSettings(settings) {\n const options8 = [];\n for (const [name, originalOption] of Object.entries(settings)) {\n const option = { name, ...originalOption };\n if (Array.isArray(option.default)) {\n option.default = at_default(\n /* isOptionalObject */\n false,\n option.default,\n -1\n ).value;\n }\n options8.push(option);\n }\n return options8;\n}\n\n// src/main/normalize-options.js\nvar hasDeprecationWarned;\nfunction normalizeOptions(options8, optionInfos, {\n logger = false,\n isCLI = false,\n passThrough = false,\n FlagSchema,\n descriptor\n} = {}) {\n if (isCLI) {\n if (!FlagSchema) {\n throw new Error(\"'FlagSchema' option is required.\");\n }\n if (!descriptor) {\n throw new Error(\"'descriptor' option is required.\");\n }\n } else {\n descriptor = apiDescriptor;\n }\n const unknown = !passThrough ? (key2, value, options9) => {\n const { _, ...schemas2 } = options9.schemas;\n return levenUnknownHandler(key2, value, {\n ...options9,\n schemas: schemas2\n });\n } : Array.isArray(passThrough) ? (key2, value) => !passThrough.includes(key2) ? void 0 : { [key2]: value } : (key2, value) => ({ [key2]: value });\n const schemas = optionInfosToSchemas(optionInfos, { isCLI, FlagSchema });\n const normalizer = new Normalizer(schemas, {\n logger,\n unknown,\n descriptor\n });\n const shouldSuppressDuplicateDeprecationWarnings = logger !== false;\n if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) {\n normalizer._hasDeprecationWarned = hasDeprecationWarned;\n }\n const normalized = normalizer.normalize(options8);\n if (shouldSuppressDuplicateDeprecationWarnings) {\n hasDeprecationWarned = normalizer._hasDeprecationWarned;\n }\n return normalized;\n}\nfunction optionInfosToSchemas(optionInfos, { isCLI, FlagSchema }) {\n const schemas = [];\n if (isCLI) {\n schemas.push(AnySchema.create({ name: \"_\" }));\n }\n for (const optionInfo of optionInfos) {\n schemas.push(\n optionInfoToSchema(optionInfo, {\n isCLI,\n optionInfos,\n FlagSchema\n })\n );\n if (optionInfo.alias && isCLI) {\n schemas.push(\n AliasSchema.create({\n // @ts-expect-error\n name: optionInfo.alias,\n sourceName: optionInfo.name\n })\n );\n }\n }\n return schemas;\n}\nfunction optionInfoToSchema(optionInfo, { isCLI, optionInfos, FlagSchema }) {\n const { name } = optionInfo;\n const parameters = { name };\n let SchemaConstructor;\n const handlers = {};\n switch (optionInfo.type) {\n case \"int\":\n SchemaConstructor = IntegerSchema;\n if (isCLI) {\n parameters.preprocess = Number;\n }\n break;\n case \"string\":\n SchemaConstructor = StringSchema;\n break;\n case \"choice\":\n SchemaConstructor = ChoiceSchema;\n parameters.choices = optionInfo.choices.map(\n (choiceInfo) => (choiceInfo == null ? void 0 : choiceInfo.redirect) ? {\n ...choiceInfo,\n redirect: {\n to: { key: optionInfo.name, value: choiceInfo.redirect }\n }\n } : choiceInfo\n );\n break;\n case \"boolean\":\n SchemaConstructor = BooleanSchema;\n break;\n case \"flag\":\n SchemaConstructor = FlagSchema;\n parameters.flags = optionInfos.flatMap(\n (optionInfo2) => [\n optionInfo2.alias,\n optionInfo2.description && optionInfo2.name,\n optionInfo2.oppositeDescription && `no-${optionInfo2.name}`\n ].filter(Boolean)\n );\n break;\n case \"path\":\n SchemaConstructor = StringSchema;\n break;\n default:\n throw new Error(`Unexpected type ${optionInfo.type}`);\n }\n if (optionInfo.exception) {\n parameters.validate = (value, schema2, utils) => optionInfo.exception(value) || schema2.validate(value, utils);\n } else {\n parameters.validate = (value, schema2, utils) => value === void 0 || schema2.validate(value, utils);\n }\n if (optionInfo.redirect) {\n handlers.redirect = (value) => !value ? void 0 : {\n to: typeof optionInfo.redirect === \"string\" ? optionInfo.redirect : {\n key: optionInfo.redirect.option,\n value: optionInfo.redirect.value\n }\n };\n }\n if (optionInfo.deprecated) {\n handlers.deprecated = true;\n }\n if (isCLI && !optionInfo.array) {\n const originalPreprocess = parameters.preprocess || ((x) => x);\n parameters.preprocess = (value, schema2, utils) => schema2.preprocess(\n originalPreprocess(Array.isArray(value) ? at_default(\n /* isOptionalObject */\n false,\n value,\n -1\n ) : value),\n utils\n );\n }\n return optionInfo.array ? ArraySchema.create({\n ...isCLI ? { preprocess: (v) => Array.isArray(v) ? v : [v] } : {},\n ...handlers,\n // @ts-expect-error\n valueSchema: SchemaConstructor.create(parameters)\n }) : SchemaConstructor.create({ ...parameters, ...handlers });\n}\nvar normalize_options_default = normalizeOptions;\n\n// scripts/build/shims/array-find-last.js\nvar arrayFindLast = (isOptionalObject, array2, callback) => {\n if (isOptionalObject && (array2 === void 0 || array2 === null)) {\n return;\n }\n if (array2.findLast) {\n return array2.findLast(callback);\n }\n for (let index = array2.length - 1; index >= 0; index--) {\n const element = array2[index];\n if (callback(element, index, array2)) {\n return element;\n }\n }\n};\nvar array_find_last_default = arrayFindLast;\n\n// src/main/parser-and-printer.js\nfunction getParserPluginByParserName(plugins, parserName) {\n if (!parserName) {\n throw new Error(\"parserName is required.\");\n }\n const plugin = array_find_last_default(\n /* isOptionalObject */\n false,\n plugins,\n (plugin2) => plugin2.parsers && Object.prototype.hasOwnProperty.call(plugin2.parsers, parserName)\n );\n if (plugin) {\n return plugin;\n }\n let message = `Couldn't resolve parser \"${parserName}\".`;\n if (false) {\n message += \" Plugins must be explicitly added to the standalone bundle.\";\n }\n throw new ConfigError(message);\n}\nfunction getPrinterPluginByAstFormat(plugins, astFormat) {\n if (!astFormat) {\n throw new Error(\"astFormat is required.\");\n }\n const plugin = array_find_last_default(\n /* isOptionalObject */\n false,\n plugins,\n (plugin2) => plugin2.printers && Object.prototype.hasOwnProperty.call(plugin2.printers, astFormat)\n );\n if (plugin) {\n return plugin;\n }\n let message = `Couldn't find plugin for AST format \"${astFormat}\".`;\n if (false) {\n message += \" Plugins must be explicitly added to the standalone bundle.\";\n }\n throw new ConfigError(message);\n}\nfunction resolveParser({ plugins, parser }) {\n const plugin = getParserPluginByParserName(plugins, parser);\n return initParser(plugin, parser);\n}\nfunction initParser(plugin, parserName) {\n const parserOrParserInitFunction = plugin.parsers[parserName];\n return typeof parserOrParserInitFunction === \"function\" ? parserOrParserInitFunction() : parserOrParserInitFunction;\n}\nfunction initPrinter(plugin, astFormat) {\n const printerOrPrinterInitFunction = plugin.printers[astFormat];\n return typeof printerOrPrinterInitFunction === \"function\" ? printerOrPrinterInitFunction() : printerOrPrinterInitFunction;\n}\n\n// src/main/normalize-format-options.js\nvar formatOptionsHiddenDefaults = {\n astFormat: \"estree\",\n printer: {},\n originalText: void 0,\n locStart: null,\n locEnd: null\n};\nasync function normalizeFormatOptions(options8, opts = {}) {\n var _a;\n const rawOptions = { ...options8 };\n if (!rawOptions.parser) {\n if (!rawOptions.filepath) {\n throw new UndefinedParserError(\n \"No parser and no file path given, couldn't infer a parser.\"\n );\n } else {\n rawOptions.parser = infer_parser_default(rawOptions, {\n physicalFile: rawOptions.filepath\n });\n if (!rawOptions.parser) {\n throw new UndefinedParserError(\n `No parser could be inferred for file \"${rawOptions.filepath}\".`\n );\n }\n }\n }\n const supportOptions = getSupportInfo({\n plugins: options8.plugins,\n showDeprecated: true\n }).options;\n const defaults = {\n ...formatOptionsHiddenDefaults,\n ...Object.fromEntries(\n supportOptions.filter((optionInfo) => optionInfo.default !== void 0).map((option) => [option.name, option.default])\n )\n };\n const parserPlugin = getParserPluginByParserName(\n rawOptions.plugins,\n rawOptions.parser\n );\n const parser = await initParser(parserPlugin, rawOptions.parser);\n rawOptions.astFormat = parser.astFormat;\n rawOptions.locEnd = parser.locEnd;\n rawOptions.locStart = parser.locStart;\n const printerPlugin = ((_a = parserPlugin.printers) == null ? void 0 : _a[parser.astFormat]) ? parserPlugin : getPrinterPluginByAstFormat(rawOptions.plugins, parser.astFormat);\n const printer = await initPrinter(printerPlugin, parser.astFormat);\n rawOptions.printer = printer;\n const pluginDefaults = printerPlugin.defaultOptions ? Object.fromEntries(\n Object.entries(printerPlugin.defaultOptions).filter(\n ([, value]) => value !== void 0\n )\n ) : {};\n const mixedDefaults = { ...defaults, ...pluginDefaults };\n for (const [k, value] of Object.entries(mixedDefaults)) {\n if (rawOptions[k] === null || rawOptions[k] === void 0) {\n rawOptions[k] = value;\n }\n }\n if (rawOptions.parser === \"json\") {\n rawOptions.trailingComma = \"none\";\n }\n return normalize_options_default(rawOptions, supportOptions, {\n passThrough: Object.keys(formatOptionsHiddenDefaults),\n ...opts\n });\n}\nvar normalize_format_options_default = normalizeFormatOptions;\n\n// src/main/parse.js\nvar import_code_frame2 = __toESM(require_lib2(), 1);\nasync function parse5(originalText, options8) {\n const parser = await resolveParser(options8);\n const text = parser.preprocess ? parser.preprocess(originalText, options8) : originalText;\n options8.originalText = text;\n let ast;\n try {\n ast = await parser.parse(\n text,\n options8,\n // TODO: remove the third argument in v4\n // The duplicated argument is passed as intended, see #10156\n options8\n );\n } catch (error) {\n handleParseError(error, originalText);\n }\n return { text, ast };\n}\nfunction handleParseError(error, text) {\n const { loc } = error;\n if (loc) {\n const codeFrame = (0, import_code_frame2.codeFrameColumns)(text, loc, { highlightCode: true });\n error.message += \"\\n\" + codeFrame;\n error.codeFrame = codeFrame;\n throw error;\n }\n throw error;\n}\nvar parse_default = parse5;\n\n// src/main/multiparser.js\nasync function printEmbeddedLanguages(path13, genericPrint, options8, printAstToDoc2, embeds) {\n const {\n embeddedLanguageFormatting,\n printer: {\n embed,\n hasPrettierIgnore = () => false,\n getVisitorKeys: printerGetVisitorKeys\n }\n } = options8;\n if (!embed || embeddedLanguageFormatting !== \"auto\") {\n return;\n }\n if (embed.length > 2) {\n throw new Error(\n \"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed\"\n );\n }\n const getVisitorKeys = create_get_visitor_keys_function_default(\n embed.getVisitorKeys ?? printerGetVisitorKeys\n );\n const embedCallResults = [];\n recurse();\n const originalPathStack = path13.stack;\n for (const { print, node, pathStack } of embedCallResults) {\n try {\n path13.stack = pathStack;\n const doc2 = await print(textToDocForEmbed, genericPrint, path13, options8);\n if (doc2) {\n embeds.set(node, doc2);\n }\n } catch (error) {\n if (process.env.PRETTIER_DEBUG) {\n throw error;\n }\n }\n }\n path13.stack = originalPathStack;\n function textToDocForEmbed(text, partialNextOptions) {\n return textToDoc(text, partialNextOptions, options8, printAstToDoc2);\n }\n function recurse() {\n const { node } = path13;\n if (node === null || typeof node !== \"object\" || hasPrettierIgnore(path13)) {\n return;\n }\n for (const key2 of getVisitorKeys(node)) {\n if (Array.isArray(node[key2])) {\n path13.each(recurse, key2);\n } else {\n path13.call(recurse, key2);\n }\n }\n const result = embed(path13, options8);\n if (!result) {\n return;\n }\n if (typeof result === \"function\") {\n embedCallResults.push({\n print: result,\n node,\n pathStack: [...path13.stack]\n });\n return;\n }\n if (false) {\n throw new Error(\n \"`embed` should return an async function instead of Promise.\"\n );\n }\n embeds.set(node, result);\n }\n}\nasync function textToDoc(text, partialNextOptions, parentOptions, printAstToDoc2) {\n const options8 = await normalize_format_options_default(\n {\n ...parentOptions,\n ...partialNextOptions,\n parentParser: parentOptions.parser,\n originalText: text\n },\n { passThrough: true }\n );\n const { ast } = await parse_default(text, options8);\n const doc2 = await printAstToDoc2(ast, options8);\n return stripTrailingHardline(doc2);\n}\n\n// src/main/print-ignored.js\nfunction printIgnored(path13, options8) {\n const {\n originalText,\n [Symbol.for(\"comments\")]: comments,\n locStart,\n locEnd,\n [Symbol.for(\"printedComments\")]: printedComments\n } = options8;\n const { node } = path13;\n const start = locStart(node);\n const end = locEnd(node);\n for (const comment of comments) {\n if (locStart(comment) >= start && locEnd(comment) <= end) {\n printedComments.add(comment);\n }\n }\n return originalText.slice(start, end);\n}\nvar print_ignored_default = printIgnored;\n\n// src/main/ast-to-doc.js\nasync function printAstToDoc(ast, options8) {\n ({ ast } = await prepareToPrint(ast, options8));\n const cache3 = /* @__PURE__ */ new Map();\n const path13 = new ast_path_default(ast);\n const ensurePrintingNode = create_print_pre_check_function_default(options8);\n const embeds = /* @__PURE__ */ new Map();\n await printEmbeddedLanguages(path13, mainPrint, options8, printAstToDoc, embeds);\n const doc2 = await callPluginPrintFunction(\n path13,\n options8,\n mainPrint,\n void 0,\n embeds\n );\n ensureAllCommentsPrinted(options8);\n if (options8.nodeAfterCursor && !options8.nodeBeforeCursor) {\n return [cursor, doc2];\n }\n if (options8.nodeBeforeCursor && !options8.nodeAfterCursor) {\n return [doc2, cursor];\n }\n return doc2;\n function mainPrint(selector, args) {\n if (selector === void 0 || selector === path13) {\n return mainPrintInternal(args);\n }\n if (Array.isArray(selector)) {\n return path13.call(() => mainPrintInternal(args), ...selector);\n }\n return path13.call(() => mainPrintInternal(args), selector);\n }\n function mainPrintInternal(args) {\n ensurePrintingNode(path13);\n const value = path13.node;\n if (value === void 0 || value === null) {\n return \"\";\n }\n const shouldCache = value && typeof value === \"object\" && args === void 0;\n if (shouldCache && cache3.has(value)) {\n return cache3.get(value);\n }\n const doc3 = callPluginPrintFunction(path13, options8, mainPrint, args, embeds);\n if (shouldCache) {\n cache3.set(value, doc3);\n }\n return doc3;\n }\n}\nfunction callPluginPrintFunction(path13, options8, printPath, args, embeds) {\n var _a;\n const { node } = path13;\n const { printer } = options8;\n let doc2;\n if ((_a = printer.hasPrettierIgnore) == null ? void 0 : _a.call(printer, path13)) {\n doc2 = print_ignored_default(path13, options8);\n } else if (embeds.has(node)) {\n doc2 = embeds.get(node);\n } else {\n doc2 = printer.print(path13, options8, printPath, args);\n }\n switch (node) {\n case options8.cursorNode:\n doc2 = inheritLabel(doc2, (doc3) => [cursor, doc3, cursor]);\n break;\n case options8.nodeBeforeCursor:\n doc2 = inheritLabel(doc2, (doc3) => [doc3, cursor]);\n break;\n case options8.nodeAfterCursor:\n doc2 = inheritLabel(doc2, (doc3) => [cursor, doc3]);\n break;\n }\n if (printer.printComment && (!printer.willPrintOwnComments || !printer.willPrintOwnComments(path13, options8))) {\n doc2 = printComments(path13, doc2, options8);\n }\n return doc2;\n}\nasync function prepareToPrint(ast, options8) {\n const comments = ast.comments ?? [];\n options8[Symbol.for(\"comments\")] = comments;\n options8[Symbol.for(\"tokens\")] = ast.tokens ?? [];\n options8[Symbol.for(\"printedComments\")] = /* @__PURE__ */ new Set();\n attachComments(ast, options8);\n const {\n printer: { preprocess }\n } = options8;\n ast = preprocess ? await preprocess(ast, options8) : ast;\n return { ast, comments };\n}\n\n// src/main/get-cursor-node.js\nfunction getCursorLocation(ast, options8) {\n const { cursorOffset, locStart, locEnd } = options8;\n const getVisitorKeys = create_get_visitor_keys_function_default(\n options8.printer.getVisitorKeys\n );\n const nodeContainsCursor = (node) => locStart(node) <= cursorOffset && locEnd(node) >= cursorOffset;\n let cursorNode = ast;\n const nodesContainingCursor = [ast];\n for (const node of getDescendants(ast, {\n getVisitorKeys,\n filter: nodeContainsCursor\n })) {\n nodesContainingCursor.push(node);\n cursorNode = node;\n }\n if (isLeaf(cursorNode, { getVisitorKeys })) {\n return { cursorNode };\n }\n let nodeBeforeCursor;\n let nodeAfterCursor;\n let nodeBeforeCursorEndIndex = -1;\n let nodeAfterCursorStartIndex = Number.POSITIVE_INFINITY;\n while (nodesContainingCursor.length > 0 && (nodeBeforeCursor === void 0 || nodeAfterCursor === void 0)) {\n cursorNode = nodesContainingCursor.pop();\n const foundBeforeNode = nodeBeforeCursor !== void 0;\n const foundAfterNode = nodeAfterCursor !== void 0;\n for (const node of getChildren(cursorNode, { getVisitorKeys })) {\n if (!foundBeforeNode) {\n const nodeEnd = locEnd(node);\n if (nodeEnd <= cursorOffset && nodeEnd > nodeBeforeCursorEndIndex) {\n nodeBeforeCursor = node;\n nodeBeforeCursorEndIndex = nodeEnd;\n }\n }\n if (!foundAfterNode) {\n const nodeStart = locStart(node);\n if (nodeStart >= cursorOffset && nodeStart < nodeAfterCursorStartIndex) {\n nodeAfterCursor = node;\n nodeAfterCursorStartIndex = nodeStart;\n }\n }\n }\n }\n return {\n nodeBeforeCursor,\n nodeAfterCursor\n };\n}\nvar get_cursor_node_default = getCursorLocation;\n\n// src/main/massage-ast.js\nfunction massageAst(ast, options8) {\n const {\n printer: {\n massageAstNode: cleanFunction,\n getVisitorKeys: printerGetVisitorKeys\n }\n } = options8;\n if (!cleanFunction) {\n return ast;\n }\n const getVisitorKeys = create_get_visitor_keys_function_default(printerGetVisitorKeys);\n const ignoredProperties = cleanFunction.ignoredProperties ?? /* @__PURE__ */ new Set();\n return recurse(ast);\n function recurse(original, parent) {\n if (!(original !== null && typeof original === \"object\")) {\n return original;\n }\n if (Array.isArray(original)) {\n return original.map((child) => recurse(child, parent)).filter(Boolean);\n }\n const cloned = {};\n const childrenKeys = new Set(getVisitorKeys(original));\n for (const key2 in original) {\n if (!Object.prototype.hasOwnProperty.call(original, key2) || ignoredProperties.has(key2)) {\n continue;\n }\n if (childrenKeys.has(key2)) {\n cloned[key2] = recurse(original[key2], original);\n } else {\n cloned[key2] = original[key2];\n }\n }\n const result = cleanFunction(original, cloned, parent);\n if (result === null) {\n return;\n }\n return result ?? cloned;\n }\n}\nvar massage_ast_default = massageAst;\n\n// scripts/build/shims/array-find-last-index.js\nvar arrayFindLastIndex = (isOptionalObject, array2, callback) => {\n if (isOptionalObject && (array2 === void 0 || array2 === null)) {\n return;\n }\n if (array2.findLastIndex) {\n return array2.findLastIndex(callback);\n }\n for (let index = array2.length - 1; index >= 0; index--) {\n const element = array2[index];\n if (callback(element, index, array2)) {\n return index;\n }\n }\n return -1;\n};\nvar array_find_last_index_default = arrayFindLastIndex;\n\n// src/main/range-util.js\nimport assert5 from \"assert\";\nvar isJsonParser = ({ parser }) => parser === \"json\" || parser === \"json5\" || parser === \"jsonc\" || parser === \"json-stringify\";\nfunction findCommonAncestor(startNodeAndParents, endNodeAndParents) {\n const startNodeAndAncestors = [\n startNodeAndParents.node,\n ...startNodeAndParents.parentNodes\n ];\n const endNodeAndAncestors = /* @__PURE__ */ new Set([\n endNodeAndParents.node,\n ...endNodeAndParents.parentNodes\n ]);\n return startNodeAndAncestors.find(\n (node) => jsonSourceElements.has(node.type) && endNodeAndAncestors.has(node)\n );\n}\nfunction dropRootParents(parents) {\n const index = array_find_last_index_default(\n /* isOptionalObject */\n false,\n parents,\n (node) => node.type !== \"Program\" && node.type !== \"File\"\n );\n if (index === -1) {\n return parents;\n }\n return parents.slice(0, index + 1);\n}\nfunction findSiblingAncestors(startNodeAndParents, endNodeAndParents, { locStart, locEnd }) {\n let resultStartNode = startNodeAndParents.node;\n let resultEndNode = endNodeAndParents.node;\n if (resultStartNode === resultEndNode) {\n return {\n startNode: resultStartNode,\n endNode: resultEndNode\n };\n }\n const startNodeStart = locStart(startNodeAndParents.node);\n for (const endParent of dropRootParents(endNodeAndParents.parentNodes)) {\n if (locStart(endParent) >= startNodeStart) {\n resultEndNode = endParent;\n } else {\n break;\n }\n }\n const endNodeEnd = locEnd(endNodeAndParents.node);\n for (const startParent of dropRootParents(startNodeAndParents.parentNodes)) {\n if (locEnd(startParent) <= endNodeEnd) {\n resultStartNode = startParent;\n } else {\n break;\n }\n if (resultStartNode === resultEndNode) {\n break;\n }\n }\n return {\n startNode: resultStartNode,\n endNode: resultEndNode\n };\n}\nfunction findNodeAtOffset(node, offset, options8, predicate, parentNodes = [], type2) {\n const { locStart, locEnd } = options8;\n const start = locStart(node);\n const end = locEnd(node);\n if (offset > end || offset < start || type2 === \"rangeEnd\" && offset === start || type2 === \"rangeStart\" && offset === end) {\n return;\n }\n for (const childNode of getSortedChildNodes(node, options8)) {\n const childResult = findNodeAtOffset(\n childNode,\n offset,\n options8,\n predicate,\n [node, ...parentNodes],\n type2\n );\n if (childResult) {\n return childResult;\n }\n }\n if (!predicate || predicate(node, parentNodes[0])) {\n return {\n node,\n parentNodes\n };\n }\n}\nfunction isJsSourceElement(type2, parentType) {\n return parentType !== \"DeclareExportDeclaration\" && type2 !== \"TypeParameterDeclaration\" && (type2 === \"Directive\" || type2 === \"TypeAlias\" || type2 === \"TSExportAssignment\" || type2.startsWith(\"Declare\") || type2.startsWith(\"TSDeclare\") || type2.endsWith(\"Statement\") || type2.endsWith(\"Declaration\"));\n}\nvar jsonSourceElements = /* @__PURE__ */ new Set([\n \"JsonRoot\",\n \"ObjectExpression\",\n \"ArrayExpression\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BooleanLiteral\",\n \"NullLiteral\",\n \"UnaryExpression\",\n \"TemplateLiteral\"\n]);\nvar graphqlSourceElements = /* @__PURE__ */ new Set([\n \"OperationDefinition\",\n \"FragmentDefinition\",\n \"VariableDefinition\",\n \"TypeExtensionDefinition\",\n \"ObjectTypeDefinition\",\n \"FieldDefinition\",\n \"DirectiveDefinition\",\n \"EnumTypeDefinition\",\n \"EnumValueDefinition\",\n \"InputValueDefinition\",\n \"InputObjectTypeDefinition\",\n \"SchemaDefinition\",\n \"OperationTypeDefinition\",\n \"InterfaceTypeDefinition\",\n \"UnionTypeDefinition\",\n \"ScalarTypeDefinition\"\n]);\nfunction isSourceElement(opts, node, parentNode) {\n if (!node) {\n return false;\n }\n switch (opts.parser) {\n case \"flow\":\n case \"babel\":\n case \"babel-flow\":\n case \"babel-ts\":\n case \"typescript\":\n case \"acorn\":\n case \"espree\":\n case \"meriyah\":\n case \"__babel_estree\":\n return isJsSourceElement(node.type, parentNode == null ? void 0 : parentNode.type);\n case \"json\":\n case \"json5\":\n case \"jsonc\":\n case \"json-stringify\":\n return jsonSourceElements.has(node.type);\n case \"graphql\":\n return graphqlSourceElements.has(node.kind);\n case \"vue\":\n return node.tag !== \"root\";\n }\n return false;\n}\nfunction calculateRange(text, opts, ast) {\n let { rangeStart: start, rangeEnd: end, locStart, locEnd } = opts;\n assert5.ok(end > start);\n const firstNonWhitespaceCharacterIndex = text.slice(start, end).search(/\\S/u);\n const isAllWhitespace = firstNonWhitespaceCharacterIndex === -1;\n if (!isAllWhitespace) {\n start += firstNonWhitespaceCharacterIndex;\n for (; end > start; --end) {\n if (/\\S/u.test(text[end - 1])) {\n break;\n }\n }\n }\n const startNodeAndParents = findNodeAtOffset(\n ast,\n start,\n opts,\n (node, parentNode) => isSourceElement(opts, node, parentNode),\n [],\n \"rangeStart\"\n );\n const endNodeAndParents = (\n // No need find Node at `end`, it will be the same as `startNodeAndParents`\n isAllWhitespace ? startNodeAndParents : findNodeAtOffset(\n ast,\n end,\n opts,\n (node) => isSourceElement(opts, node),\n [],\n \"rangeEnd\"\n )\n );\n if (!startNodeAndParents || !endNodeAndParents) {\n return {\n rangeStart: 0,\n rangeEnd: 0\n };\n }\n let startNode;\n let endNode;\n if (isJsonParser(opts)) {\n const commonAncestor = findCommonAncestor(\n startNodeAndParents,\n endNodeAndParents\n );\n startNode = commonAncestor;\n endNode = commonAncestor;\n } else {\n ({ startNode, endNode } = findSiblingAncestors(\n startNodeAndParents,\n endNodeAndParents,\n opts\n ));\n }\n return {\n rangeStart: Math.min(locStart(startNode), locStart(endNode)),\n rangeEnd: Math.max(locEnd(startNode), locEnd(endNode))\n };\n}\n\n// src/main/core.js\nvar BOM = \"\\uFEFF\";\nvar CURSOR = Symbol(\"cursor\");\nasync function coreFormat(originalText, opts, addAlignmentSize = 0) {\n if (!originalText || originalText.trim().length === 0) {\n return { formatted: \"\", cursorOffset: -1, comments: [] };\n }\n const { ast, text } = await parse_default(originalText, opts);\n if (opts.cursorOffset >= 0) {\n opts = {\n ...opts,\n ...get_cursor_node_default(ast, opts)\n };\n }\n let doc2 = await printAstToDoc(ast, opts, addAlignmentSize);\n if (addAlignmentSize > 0) {\n doc2 = addAlignmentToDoc([hardline, doc2], addAlignmentSize, opts.tabWidth);\n }\n const result = printDocToString(doc2, opts);\n if (addAlignmentSize > 0) {\n const trimmed = result.formatted.trim();\n if (result.cursorNodeStart !== void 0) {\n result.cursorNodeStart -= result.formatted.indexOf(trimmed);\n if (result.cursorNodeStart < 0) {\n result.cursorNodeStart = 0;\n result.cursorNodeText = result.cursorNodeText.trimStart();\n }\n if (result.cursorNodeStart + result.cursorNodeText.length > trimmed.length) {\n result.cursorNodeText = result.cursorNodeText.trimEnd();\n }\n }\n result.formatted = trimmed + convertEndOfLineToChars(opts.endOfLine);\n }\n const comments = opts[Symbol.for(\"comments\")];\n if (opts.cursorOffset >= 0) {\n let oldCursorRegionStart;\n let oldCursorRegionText;\n let newCursorRegionStart;\n let newCursorRegionText;\n if ((opts.cursorNode || opts.nodeBeforeCursor || opts.nodeAfterCursor) && result.cursorNodeText) {\n newCursorRegionStart = result.cursorNodeStart;\n newCursorRegionText = result.cursorNodeText;\n if (opts.cursorNode) {\n oldCursorRegionStart = opts.locStart(opts.cursorNode);\n oldCursorRegionText = text.slice(\n oldCursorRegionStart,\n opts.locEnd(opts.cursorNode)\n );\n } else {\n if (!opts.nodeBeforeCursor && !opts.nodeAfterCursor) {\n throw new Error(\n \"Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor\"\n );\n }\n oldCursorRegionStart = opts.nodeBeforeCursor ? opts.locEnd(opts.nodeBeforeCursor) : 0;\n const oldCursorRegionEnd = opts.nodeAfterCursor ? opts.locStart(opts.nodeAfterCursor) : text.length;\n oldCursorRegionText = text.slice(\n oldCursorRegionStart,\n oldCursorRegionEnd\n );\n }\n } else {\n oldCursorRegionStart = 0;\n oldCursorRegionText = text;\n newCursorRegionStart = 0;\n newCursorRegionText = result.formatted;\n }\n const cursorOffsetRelativeToOldCursorRegionStart = opts.cursorOffset - oldCursorRegionStart;\n if (oldCursorRegionText === newCursorRegionText) {\n return {\n formatted: result.formatted,\n cursorOffset: newCursorRegionStart + cursorOffsetRelativeToOldCursorRegionStart,\n comments\n };\n }\n const oldCursorNodeCharArray = oldCursorRegionText.split(\"\");\n oldCursorNodeCharArray.splice(\n cursorOffsetRelativeToOldCursorRegionStart,\n 0,\n CURSOR\n );\n const newCursorNodeCharArray = newCursorRegionText.split(\"\");\n const cursorNodeDiff = diffArrays(\n oldCursorNodeCharArray,\n newCursorNodeCharArray\n );\n let cursorOffset = newCursorRegionStart;\n for (const entry of cursorNodeDiff) {\n if (entry.removed) {\n if (entry.value.includes(CURSOR)) {\n break;\n }\n } else {\n cursorOffset += entry.count;\n }\n }\n return { formatted: result.formatted, cursorOffset, comments };\n }\n return { formatted: result.formatted, cursorOffset: -1, comments };\n}\nasync function formatRange(originalText, opts) {\n const { ast, text } = await parse_default(originalText, opts);\n const { rangeStart, rangeEnd } = calculateRange(text, opts, ast);\n const rangeString = text.slice(rangeStart, rangeEnd);\n const rangeStart2 = Math.min(\n rangeStart,\n text.lastIndexOf(\"\\n\", rangeStart) + 1\n );\n const indentString = text.slice(rangeStart2, rangeStart).match(/^\\s*/u)[0];\n const alignmentSize = get_alignment_size_default(indentString, opts.tabWidth);\n const rangeResult = await coreFormat(\n rangeString,\n {\n ...opts,\n rangeStart: 0,\n rangeEnd: Number.POSITIVE_INFINITY,\n // Track the cursor offset only if it's within our range\n cursorOffset: opts.cursorOffset > rangeStart && opts.cursorOffset <= rangeEnd ? opts.cursorOffset - rangeStart : -1,\n // Always use `lf` to format, we'll replace it later\n endOfLine: \"lf\"\n },\n alignmentSize\n );\n const rangeTrimmed = rangeResult.formatted.trimEnd();\n let { cursorOffset } = opts;\n if (cursorOffset > rangeEnd) {\n cursorOffset += rangeTrimmed.length - rangeString.length;\n } else if (rangeResult.cursorOffset >= 0) {\n cursorOffset = rangeResult.cursorOffset + rangeStart;\n }\n let formatted = text.slice(0, rangeStart) + rangeTrimmed + text.slice(rangeEnd);\n if (opts.endOfLine !== \"lf\") {\n const eol = convertEndOfLineToChars(opts.endOfLine);\n if (cursorOffset >= 0 && eol === \"\\r\\n\") {\n cursorOffset += countEndOfLineChars(\n formatted.slice(0, cursorOffset),\n \"\\n\"\n );\n }\n formatted = string_replace_all_default(\n /* isOptionalObject */\n false,\n formatted,\n \"\\n\",\n eol\n );\n }\n return { formatted, cursorOffset, comments: rangeResult.comments };\n}\nfunction ensureIndexInText(text, index, defaultValue) {\n if (typeof index !== \"number\" || Number.isNaN(index) || index < 0 || index > text.length) {\n return defaultValue;\n }\n return index;\n}\nfunction normalizeIndexes(text, options8) {\n let { cursorOffset, rangeStart, rangeEnd } = options8;\n cursorOffset = ensureIndexInText(text, cursorOffset, -1);\n rangeStart = ensureIndexInText(text, rangeStart, 0);\n rangeEnd = ensureIndexInText(text, rangeEnd, text.length);\n return { ...options8, cursorOffset, rangeStart, rangeEnd };\n}\nfunction normalizeInputAndOptions(text, options8) {\n let { cursorOffset, rangeStart, rangeEnd, endOfLine } = normalizeIndexes(\n text,\n options8\n );\n const hasBOM = text.charAt(0) === BOM;\n if (hasBOM) {\n text = text.slice(1);\n cursorOffset--;\n rangeStart--;\n rangeEnd--;\n }\n if (endOfLine === \"auto\") {\n endOfLine = guessEndOfLine(text);\n }\n if (text.includes(\"\\r\")) {\n const countCrlfBefore = (index) => countEndOfLineChars(text.slice(0, Math.max(index, 0)), \"\\r\\n\");\n cursorOffset -= countCrlfBefore(cursorOffset);\n rangeStart -= countCrlfBefore(rangeStart);\n rangeEnd -= countCrlfBefore(rangeEnd);\n text = normalizeEndOfLine(text);\n }\n return {\n hasBOM,\n text,\n options: normalizeIndexes(text, {\n ...options8,\n cursorOffset,\n rangeStart,\n rangeEnd,\n endOfLine\n })\n };\n}\nasync function hasPragma(text, options8) {\n const selectedParser = await resolveParser(options8);\n return !selectedParser.hasPragma || selectedParser.hasPragma(text);\n}\nasync function formatWithCursor(originalText, originalOptions) {\n let { hasBOM, text, options: options8 } = normalizeInputAndOptions(\n originalText,\n await normalize_format_options_default(originalOptions)\n );\n if (options8.rangeStart >= options8.rangeEnd && text !== \"\" || options8.requirePragma && !await hasPragma(text, options8)) {\n return {\n formatted: originalText,\n cursorOffset: originalOptions.cursorOffset,\n comments: []\n };\n }\n let result;\n if (options8.rangeStart > 0 || options8.rangeEnd < text.length) {\n result = await formatRange(text, options8);\n } else {\n if (!options8.requirePragma && options8.insertPragma && options8.printer.insertPragma && !await hasPragma(text, options8)) {\n text = options8.printer.insertPragma(text);\n }\n result = await coreFormat(text, options8);\n }\n if (hasBOM) {\n result.formatted = BOM + result.formatted;\n if (result.cursorOffset >= 0) {\n result.cursorOffset++;\n }\n }\n return result;\n}\nasync function parse6(originalText, originalOptions, devOptions) {\n const { text, options: options8 } = normalizeInputAndOptions(\n originalText,\n await normalize_format_options_default(originalOptions)\n );\n const parsed = await parse_default(text, options8);\n if (devOptions) {\n if (devOptions.preprocessForPrint) {\n parsed.ast = await prepareToPrint(parsed.ast, options8);\n }\n if (devOptions.massage) {\n parsed.ast = massage_ast_default(parsed.ast, options8);\n }\n }\n return parsed;\n}\nasync function formatAst(ast, options8) {\n options8 = await normalize_format_options_default(options8);\n const doc2 = await printAstToDoc(ast, options8);\n return printDocToString(doc2, options8);\n}\nasync function formatDoc(doc2, options8) {\n const text = printDocToDebug(doc2);\n const { formatted } = await formatWithCursor(text, {\n ...options8,\n parser: \"__js_expression\"\n });\n return formatted;\n}\nasync function printToDoc(originalText, options8) {\n options8 = await normalize_format_options_default(options8);\n const { ast } = await parse_default(originalText, options8);\n return printAstToDoc(ast, options8);\n}\nasync function printDocToString2(doc2, options8) {\n return printDocToString(\n doc2,\n await normalize_format_options_default(options8)\n );\n}\n\n// src/main/option-categories.js\nvar option_categories_exports = {};\n__export(option_categories_exports, {\n CATEGORY_CONFIG: () => CATEGORY_CONFIG,\n CATEGORY_EDITOR: () => CATEGORY_EDITOR,\n CATEGORY_FORMAT: () => CATEGORY_FORMAT,\n CATEGORY_GLOBAL: () => CATEGORY_GLOBAL,\n CATEGORY_OTHER: () => CATEGORY_OTHER,\n CATEGORY_OUTPUT: () => CATEGORY_OUTPUT,\n CATEGORY_SPECIAL: () => CATEGORY_SPECIAL\n});\nvar CATEGORY_CONFIG = \"Config\";\nvar CATEGORY_EDITOR = \"Editor\";\nvar CATEGORY_FORMAT = \"Format\";\nvar CATEGORY_OTHER = \"Other\";\nvar CATEGORY_OUTPUT = \"Output\";\nvar CATEGORY_GLOBAL = \"Global\";\nvar CATEGORY_SPECIAL = \"Special\";\n\n// src/plugins/builtin-plugins-proxy.js\nvar builtin_plugins_proxy_exports = {};\n__export(builtin_plugins_proxy_exports, {\n languages: () => languages,\n options: () => options7,\n parsers: () => parsers,\n printers: () => printers\n});\n\n// src/language-css/languages.evaluate.js\nvar languages_evaluate_default = [\n {\n \"linguistLanguageId\": 50,\n \"name\": \"CSS\",\n \"type\": \"markup\",\n \"tmScope\": \"source.css\",\n \"aceMode\": \"css\",\n \"codemirrorMode\": \"css\",\n \"codemirrorMimeType\": \"text/css\",\n \"color\": \"#563d7c\",\n \"extensions\": [\n \".css\",\n \".wxss\"\n ],\n \"parsers\": [\n \"css\"\n ],\n \"vscodeLanguageIds\": [\n \"css\"\n ]\n },\n {\n \"linguistLanguageId\": 262764437,\n \"name\": \"PostCSS\",\n \"type\": \"markup\",\n \"color\": \"#dc3a0c\",\n \"tmScope\": \"source.postcss\",\n \"group\": \"CSS\",\n \"extensions\": [\n \".pcss\",\n \".postcss\"\n ],\n \"aceMode\": \"text\",\n \"parsers\": [\n \"css\"\n ],\n \"vscodeLanguageIds\": [\n \"postcss\"\n ]\n },\n {\n \"linguistLanguageId\": 198,\n \"name\": \"Less\",\n \"type\": \"markup\",\n \"color\": \"#1d365d\",\n \"aliases\": [\n \"less-css\"\n ],\n \"extensions\": [\n \".less\"\n ],\n \"tmScope\": \"source.css.less\",\n \"aceMode\": \"less\",\n \"codemirrorMode\": \"css\",\n \"codemirrorMimeType\": \"text/css\",\n \"parsers\": [\n \"less\"\n ],\n \"vscodeLanguageIds\": [\n \"less\"\n ]\n },\n {\n \"linguistLanguageId\": 329,\n \"name\": \"SCSS\",\n \"type\": \"markup\",\n \"color\": \"#c6538c\",\n \"tmScope\": \"source.css.scss\",\n \"aceMode\": \"scss\",\n \"codemirrorMode\": \"css\",\n \"codemirrorMimeType\": \"text/x-scss\",\n \"extensions\": [\n \".scss\"\n ],\n \"parsers\": [\n \"scss\"\n ],\n \"vscodeLanguageIds\": [\n \"scss\"\n ]\n }\n];\n\n// src/common/common-options.evaluate.js\nvar common_options_evaluate_default = {\n \"bracketSpacing\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Print spaces between brackets.\",\n \"oppositeDescription\": \"Do not print spaces between brackets.\"\n },\n \"singleQuote\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Use single quotes instead of double quotes.\"\n },\n \"proseWrap\": {\n \"category\": \"Common\",\n \"type\": \"choice\",\n \"default\": \"preserve\",\n \"description\": \"How to wrap prose.\",\n \"choices\": [\n {\n \"value\": \"always\",\n \"description\": \"Wrap prose if it exceeds the print width.\"\n },\n {\n \"value\": \"never\",\n \"description\": \"Do not wrap prose.\"\n },\n {\n \"value\": \"preserve\",\n \"description\": \"Wrap prose as-is.\"\n }\n ]\n },\n \"bracketSameLine\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Put > of opening tags on the last line instead of on a new line.\"\n },\n \"singleAttributePerLine\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Enforce single attribute per line in HTML, Vue and JSX.\"\n }\n};\n\n// src/language-css/options.js\nvar options = {\n singleQuote: common_options_evaluate_default.singleQuote\n};\nvar options_default = options;\n\n// src/language-graphql/languages.evaluate.js\nvar languages_evaluate_default2 = [\n {\n \"linguistLanguageId\": 139,\n \"name\": \"GraphQL\",\n \"type\": \"data\",\n \"color\": \"#e10098\",\n \"extensions\": [\n \".graphql\",\n \".gql\",\n \".graphqls\"\n ],\n \"tmScope\": \"source.graphql\",\n \"aceMode\": \"text\",\n \"parsers\": [\n \"graphql\"\n ],\n \"vscodeLanguageIds\": [\n \"graphql\"\n ]\n }\n];\n\n// src/language-graphql/options.js\nvar options2 = {\n bracketSpacing: common_options_evaluate_default.bracketSpacing\n};\nvar options_default2 = options2;\n\n// src/language-handlebars/languages.evaluate.js\nvar languages_evaluate_default3 = [\n {\n \"linguistLanguageId\": 155,\n \"name\": \"Handlebars\",\n \"type\": \"markup\",\n \"color\": \"#f7931e\",\n \"aliases\": [\n \"hbs\",\n \"htmlbars\"\n ],\n \"extensions\": [\n \".handlebars\",\n \".hbs\"\n ],\n \"tmScope\": \"text.html.handlebars\",\n \"aceMode\": \"handlebars\",\n \"parsers\": [\n \"glimmer\"\n ],\n \"vscodeLanguageIds\": [\n \"handlebars\"\n ]\n }\n];\n\n// src/language-html/languages.evaluate.js\nvar languages_evaluate_default4 = [\n {\n \"linguistLanguageId\": 146,\n \"name\": \"Angular\",\n \"type\": \"markup\",\n \"tmScope\": \"text.html.basic\",\n \"aceMode\": \"html\",\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"color\": \"#e34c26\",\n \"aliases\": [\n \"xhtml\"\n ],\n \"extensions\": [\n \".component.html\"\n ],\n \"parsers\": [\n \"angular\"\n ],\n \"vscodeLanguageIds\": [\n \"html\"\n ],\n \"filenames\": []\n },\n {\n \"linguistLanguageId\": 146,\n \"name\": \"HTML\",\n \"type\": \"markup\",\n \"tmScope\": \"text.html.basic\",\n \"aceMode\": \"html\",\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"color\": \"#e34c26\",\n \"aliases\": [\n \"xhtml\"\n ],\n \"extensions\": [\n \".html\",\n \".hta\",\n \".htm\",\n \".html.hl\",\n \".inc\",\n \".xht\",\n \".xhtml\",\n \".mjml\"\n ],\n \"parsers\": [\n \"html\"\n ],\n \"vscodeLanguageIds\": [\n \"html\"\n ]\n },\n {\n \"linguistLanguageId\": 146,\n \"name\": \"Lightning Web Components\",\n \"type\": \"markup\",\n \"tmScope\": \"text.html.basic\",\n \"aceMode\": \"html\",\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"color\": \"#e34c26\",\n \"aliases\": [\n \"xhtml\"\n ],\n \"extensions\": [],\n \"parsers\": [\n \"lwc\"\n ],\n \"vscodeLanguageIds\": [\n \"html\"\n ],\n \"filenames\": []\n },\n {\n \"linguistLanguageId\": 391,\n \"name\": \"Vue\",\n \"type\": \"markup\",\n \"color\": \"#41b883\",\n \"extensions\": [\n \".vue\"\n ],\n \"tmScope\": \"text.html.vue\",\n \"aceMode\": \"html\",\n \"parsers\": [\n \"vue\"\n ],\n \"vscodeLanguageIds\": [\n \"vue\"\n ]\n }\n];\n\n// src/language-html/options.js\nvar CATEGORY_HTML = \"HTML\";\nvar options3 = {\n bracketSameLine: common_options_evaluate_default.bracketSameLine,\n htmlWhitespaceSensitivity: {\n category: CATEGORY_HTML,\n type: \"choice\",\n default: \"css\",\n description: \"How to handle whitespaces in HTML.\",\n choices: [\n {\n value: \"css\",\n description: \"Respect the default value of CSS display property.\"\n },\n {\n value: \"strict\",\n description: \"Whitespaces are considered sensitive.\"\n },\n {\n value: \"ignore\",\n description: \"Whitespaces are considered insensitive.\"\n }\n ]\n },\n singleAttributePerLine: common_options_evaluate_default.singleAttributePerLine,\n vueIndentScriptAndStyle: {\n category: CATEGORY_HTML,\n type: \"boolean\",\n default: false,\n description: \"Indent script and style tags in Vue files.\"\n }\n};\nvar options_default3 = options3;\n\n// src/language-js/languages.evaluate.js\nvar languages_evaluate_default5 = [\n {\n \"linguistLanguageId\": 183,\n \"name\": \"JavaScript\",\n \"type\": \"programming\",\n \"tmScope\": \"source.js\",\n \"aceMode\": \"javascript\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"text/javascript\",\n \"color\": \"#f1e05a\",\n \"aliases\": [\n \"js\",\n \"node\"\n ],\n \"extensions\": [\n \".js\",\n \"._js\",\n \".bones\",\n \".cjs\",\n \".es\",\n \".es6\",\n \".frag\",\n \".gs\",\n \".jake\",\n \".javascript\",\n \".jsb\",\n \".jscad\",\n \".jsfl\",\n \".jslib\",\n \".jsm\",\n \".jspre\",\n \".jss\",\n \".mjs\",\n \".njs\",\n \".pac\",\n \".sjs\",\n \".ssjs\",\n \".xsjs\",\n \".xsjslib\",\n \".wxs\"\n ],\n \"filenames\": [\n \"Jakefile\"\n ],\n \"interpreters\": [\n \"chakra\",\n \"d8\",\n \"gjs\",\n \"js\",\n \"node\",\n \"nodejs\",\n \"qjs\",\n \"rhino\",\n \"v8\",\n \"v8-shell\",\n \"zx\"\n ],\n \"parsers\": [\n \"babel\",\n \"acorn\",\n \"espree\",\n \"meriyah\",\n \"babel-flow\",\n \"babel-ts\",\n \"flow\",\n \"typescript\"\n ],\n \"vscodeLanguageIds\": [\n \"javascript\",\n \"mongo\"\n ]\n },\n {\n \"linguistLanguageId\": 183,\n \"name\": \"Flow\",\n \"type\": \"programming\",\n \"tmScope\": \"source.js\",\n \"aceMode\": \"javascript\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"text/javascript\",\n \"color\": \"#f1e05a\",\n \"aliases\": [],\n \"extensions\": [\n \".js.flow\"\n ],\n \"filenames\": [],\n \"interpreters\": [\n \"chakra\",\n \"d8\",\n \"gjs\",\n \"js\",\n \"node\",\n \"nodejs\",\n \"qjs\",\n \"rhino\",\n \"v8\",\n \"v8-shell\"\n ],\n \"parsers\": [\n \"flow\",\n \"babel-flow\"\n ],\n \"vscodeLanguageIds\": [\n \"javascript\"\n ]\n },\n {\n \"linguistLanguageId\": 183,\n \"name\": \"JSX\",\n \"type\": \"programming\",\n \"tmScope\": \"source.js.jsx\",\n \"aceMode\": \"javascript\",\n \"codemirrorMode\": \"jsx\",\n \"codemirrorMimeType\": \"text/jsx\",\n \"color\": void 0,\n \"aliases\": void 0,\n \"extensions\": [\n \".jsx\"\n ],\n \"filenames\": void 0,\n \"interpreters\": void 0,\n \"parsers\": [\n \"babel\",\n \"babel-flow\",\n \"babel-ts\",\n \"flow\",\n \"typescript\",\n \"espree\",\n \"meriyah\"\n ],\n \"vscodeLanguageIds\": [\n \"javascriptreact\"\n ],\n \"group\": \"JavaScript\"\n },\n {\n \"linguistLanguageId\": 378,\n \"name\": \"TypeScript\",\n \"type\": \"programming\",\n \"color\": \"#3178c6\",\n \"aliases\": [\n \"ts\"\n ],\n \"interpreters\": [\n \"deno\",\n \"ts-node\"\n ],\n \"extensions\": [\n \".ts\",\n \".cts\",\n \".mts\"\n ],\n \"tmScope\": \"source.ts\",\n \"aceMode\": \"typescript\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/typescript\",\n \"parsers\": [\n \"typescript\",\n \"babel-ts\"\n ],\n \"vscodeLanguageIds\": [\n \"typescript\"\n ]\n },\n {\n \"linguistLanguageId\": 94901924,\n \"name\": \"TSX\",\n \"type\": \"programming\",\n \"color\": \"#3178c6\",\n \"group\": \"TypeScript\",\n \"extensions\": [\n \".tsx\"\n ],\n \"tmScope\": \"source.tsx\",\n \"aceMode\": \"javascript\",\n \"codemirrorMode\": \"jsx\",\n \"codemirrorMimeType\": \"text/jsx\",\n \"parsers\": [\n \"typescript\",\n \"babel-ts\"\n ],\n \"vscodeLanguageIds\": [\n \"typescriptreact\"\n ]\n }\n];\n\n// src/language-js/options.js\nvar CATEGORY_JAVASCRIPT = \"JavaScript\";\nvar options4 = {\n arrowParens: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"always\",\n description: \"Include parentheses around a sole arrow function parameter.\",\n choices: [\n {\n value: \"always\",\n description: \"Always include parens. Example: `(x) => x`\"\n },\n {\n value: \"avoid\",\n description: \"Omit parens when possible. Example: `x => x`\"\n }\n ]\n },\n bracketSameLine: common_options_evaluate_default.bracketSameLine,\n bracketSpacing: common_options_evaluate_default.bracketSpacing,\n jsxBracketSameLine: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n description: \"Put > on the last line instead of at a new line.\",\n deprecated: \"2.4.0\"\n },\n semi: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n default: true,\n description: \"Print semicolons.\",\n oppositeDescription: \"Do not print semicolons, except at the beginning of lines which may need them.\"\n },\n experimentalTernaries: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n default: false,\n description: \"Use curious ternaries, with the question mark after the condition.\",\n oppositeDescription: \"Default behavior of ternaries; keep question marks on the same line as the consequent.\"\n },\n singleQuote: common_options_evaluate_default.singleQuote,\n jsxSingleQuote: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n default: false,\n description: \"Use single quotes in JSX.\"\n },\n quoteProps: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"as-needed\",\n description: \"Change when properties in objects are quoted.\",\n choices: [\n {\n value: \"as-needed\",\n description: \"Only add quotes around object properties where required.\"\n },\n {\n value: \"consistent\",\n description: \"If at least one property in an object requires quotes, quote all properties.\"\n },\n {\n value: \"preserve\",\n description: \"Respect the input use of quotes in object properties.\"\n }\n ]\n },\n trailingComma: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"all\",\n description: \"Print trailing commas wherever possible when multi-line.\",\n choices: [\n {\n value: \"all\",\n description: \"Trailing commas wherever possible (including function arguments).\"\n },\n {\n value: \"es5\",\n description: \"Trailing commas where valid in ES5 (objects, arrays, etc.)\"\n },\n { value: \"none\", description: \"No trailing commas.\" }\n ]\n },\n singleAttributePerLine: common_options_evaluate_default.singleAttributePerLine\n};\nvar options_default4 = options4;\n\n// src/language-json/languages.evaluate.js\nvar languages_evaluate_default6 = [\n {\n \"linguistLanguageId\": 174,\n \"name\": \"JSON.stringify\",\n \"type\": \"data\",\n \"color\": \"#292929\",\n \"tmScope\": \"source.json\",\n \"aceMode\": \"json\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/json\",\n \"aliases\": [\n \"geojson\",\n \"jsonl\",\n \"topojson\"\n ],\n \"extensions\": [\n \".importmap\"\n ],\n \"filenames\": [\n \"package.json\",\n \"package-lock.json\",\n \"composer.json\"\n ],\n \"parsers\": [\n \"json-stringify\"\n ],\n \"vscodeLanguageIds\": [\n \"json\"\n ]\n },\n {\n \"linguistLanguageId\": 174,\n \"name\": \"JSON\",\n \"type\": \"data\",\n \"color\": \"#292929\",\n \"tmScope\": \"source.json\",\n \"aceMode\": \"json\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/json\",\n \"aliases\": [\n \"geojson\",\n \"jsonl\",\n \"topojson\"\n ],\n \"extensions\": [\n \".json\",\n \".4DForm\",\n \".4DProject\",\n \".avsc\",\n \".geojson\",\n \".gltf\",\n \".har\",\n \".ice\",\n \".JSON-tmLanguage\",\n \".mcmeta\",\n \".tfstate\",\n \".tfstate.backup\",\n \".topojson\",\n \".webapp\",\n \".webmanifest\",\n \".yy\",\n \".yyp\"\n ],\n \"filenames\": [\n \".all-contributorsrc\",\n \".arcconfig\",\n \".auto-changelog\",\n \".c8rc\",\n \".htmlhintrc\",\n \".imgbotconfig\",\n \".nycrc\",\n \".tern-config\",\n \".tern-project\",\n \".watchmanconfig\",\n \"Pipfile.lock\",\n \"composer.lock\",\n \"flake.lock\",\n \"mcmod.info\",\n \".babelrc\",\n \".jscsrc\",\n \".jshintrc\",\n \".jslintrc\",\n \".swcrc\"\n ],\n \"parsers\": [\n \"json\"\n ],\n \"vscodeLanguageIds\": [\n \"json\"\n ]\n },\n {\n \"linguistLanguageId\": 423,\n \"name\": \"JSON with Comments\",\n \"type\": \"data\",\n \"color\": \"#292929\",\n \"group\": \"JSON\",\n \"tmScope\": \"source.js\",\n \"aceMode\": \"javascript\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"text/javascript\",\n \"aliases\": [\n \"jsonc\"\n ],\n \"extensions\": [\n \".jsonc\",\n \".code-snippets\",\n \".code-workspace\",\n \".sublime-build\",\n \".sublime-commands\",\n \".sublime-completions\",\n \".sublime-keymap\",\n \".sublime-macro\",\n \".sublime-menu\",\n \".sublime-mousemap\",\n \".sublime-project\",\n \".sublime-settings\",\n \".sublime-theme\",\n \".sublime-workspace\",\n \".sublime_metrics\",\n \".sublime_session\"\n ],\n \"filenames\": [],\n \"parsers\": [\n \"jsonc\"\n ],\n \"vscodeLanguageIds\": [\n \"jsonc\"\n ]\n },\n {\n \"linguistLanguageId\": 175,\n \"name\": \"JSON5\",\n \"type\": \"data\",\n \"color\": \"#267CB9\",\n \"extensions\": [\n \".json5\"\n ],\n \"tmScope\": \"source.js\",\n \"aceMode\": \"javascript\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/json\",\n \"parsers\": [\n \"json5\"\n ],\n \"vscodeLanguageIds\": [\n \"json5\"\n ]\n }\n];\n\n// src/language-markdown/languages.evaluate.js\nvar languages_evaluate_default7 = [\n {\n \"linguistLanguageId\": 222,\n \"name\": \"Markdown\",\n \"type\": \"prose\",\n \"color\": \"#083fa1\",\n \"aliases\": [\n \"md\",\n \"pandoc\"\n ],\n \"aceMode\": \"markdown\",\n \"codemirrorMode\": \"gfm\",\n \"codemirrorMimeType\": \"text/x-gfm\",\n \"wrap\": true,\n \"extensions\": [\n \".md\",\n \".livemd\",\n \".markdown\",\n \".mdown\",\n \".mdwn\",\n \".mkd\",\n \".mkdn\",\n \".mkdown\",\n \".ronn\",\n \".scd\",\n \".workbook\"\n ],\n \"filenames\": [\n \"contents.lr\",\n \"README\"\n ],\n \"tmScope\": \"text.md\",\n \"parsers\": [\n \"markdown\"\n ],\n \"vscodeLanguageIds\": [\n \"markdown\"\n ]\n },\n {\n \"linguistLanguageId\": 222,\n \"name\": \"MDX\",\n \"type\": \"prose\",\n \"color\": \"#083fa1\",\n \"aliases\": [\n \"md\",\n \"pandoc\"\n ],\n \"aceMode\": \"markdown\",\n \"codemirrorMode\": \"gfm\",\n \"codemirrorMimeType\": \"text/x-gfm\",\n \"wrap\": true,\n \"extensions\": [\n \".mdx\"\n ],\n \"filenames\": [],\n \"tmScope\": \"text.md\",\n \"parsers\": [\n \"mdx\"\n ],\n \"vscodeLanguageIds\": [\n \"mdx\"\n ]\n }\n];\n\n// src/language-markdown/options.js\nvar options5 = {\n proseWrap: common_options_evaluate_default.proseWrap,\n singleQuote: common_options_evaluate_default.singleQuote\n};\nvar options_default5 = options5;\n\n// src/language-yaml/languages.evaluate.js\nvar languages_evaluate_default8 = [\n {\n \"linguistLanguageId\": 407,\n \"name\": \"YAML\",\n \"type\": \"data\",\n \"color\": \"#cb171e\",\n \"tmScope\": \"source.yaml\",\n \"aliases\": [\n \"yml\"\n ],\n \"extensions\": [\n \".yml\",\n \".mir\",\n \".reek\",\n \".rviz\",\n \".sublime-syntax\",\n \".syntax\",\n \".yaml\",\n \".yaml-tmlanguage\",\n \".yaml.sed\",\n \".yml.mysql\"\n ],\n \"filenames\": [\n \".clang-format\",\n \".clang-tidy\",\n \".gemrc\",\n \"CITATION.cff\",\n \"glide.lock\",\n \".prettierrc\",\n \".stylelintrc\",\n \".lintstagedrc\"\n ],\n \"aceMode\": \"yaml\",\n \"codemirrorMode\": \"yaml\",\n \"codemirrorMimeType\": \"text/x-yaml\",\n \"parsers\": [\n \"yaml\"\n ],\n \"vscodeLanguageIds\": [\n \"yaml\",\n \"ansible\",\n \"home-assistant\"\n ]\n }\n];\n\n// src/language-yaml/options.js\nvar options6 = {\n bracketSpacing: common_options_evaluate_default.bracketSpacing,\n singleQuote: common_options_evaluate_default.singleQuote,\n proseWrap: common_options_evaluate_default.proseWrap\n};\nvar options_default6 = options6;\n\n// src/plugins/builtin-plugins-proxy.js\nfunction createParsersAndPrinters(modules) {\n const parsers2 = /* @__PURE__ */ Object.create(null);\n const printers2 = /* @__PURE__ */ Object.create(null);\n for (const {\n importPlugin: importPlugin2,\n parsers: parserNames = [],\n printers: printerNames = []\n } of modules) {\n const loadPlugin2 = async () => {\n const plugin = await importPlugin2();\n Object.assign(parsers2, plugin.parsers);\n Object.assign(printers2, plugin.printers);\n return plugin;\n };\n for (const parserName of parserNames) {\n parsers2[parserName] = async () => (await loadPlugin2()).parsers[parserName];\n }\n for (const printerName of printerNames) {\n printers2[printerName] = async () => (await loadPlugin2()).printers[printerName];\n }\n }\n return { parsers: parsers2, printers: printers2 };\n}\nvar options7 = {\n ...options_default,\n ...options_default2,\n ...options_default3,\n ...options_default4,\n ...options_default5,\n ...options_default6\n};\nvar languages = [\n ...languages_evaluate_default,\n ...languages_evaluate_default2,\n ...languages_evaluate_default3,\n ...languages_evaluate_default4,\n ...languages_evaluate_default5,\n ...languages_evaluate_default6,\n ...languages_evaluate_default7,\n ...languages_evaluate_default8\n];\nvar { parsers, printers } = createParsersAndPrinters([\n {\n importPlugin: () => import(\"./plugins/acorn.mjs\"),\n parsers: [\"acorn\", \"espree\"]\n },\n {\n importPlugin: () => import(\"./plugins/angular.mjs\"),\n parsers: [\n \"__ng_action\",\n \"__ng_binding\",\n \"__ng_interpolation\",\n \"__ng_directive\"\n ]\n },\n {\n importPlugin: () => import(\"./plugins/babel.mjs\"),\n parsers: [\n \"babel\",\n \"babel-flow\",\n \"babel-ts\",\n \"__js_expression\",\n \"__ts_expression\",\n \"__vue_expression\",\n \"__vue_ts_expression\",\n \"__vue_event_binding\",\n \"__vue_ts_event_binding\",\n \"__babel_estree\",\n \"json\",\n \"json5\",\n \"jsonc\",\n \"json-stringify\"\n ]\n },\n {\n importPlugin: () => import(\"./plugins/estree.mjs\"),\n printers: [\"estree\", \"estree-json\"]\n },\n {\n importPlugin: () => import(\"./plugins/flow.mjs\"),\n parsers: [\"flow\"]\n },\n {\n importPlugin: () => import(\"./plugins/glimmer.mjs\"),\n parsers: [\"glimmer\"],\n printers: [\"glimmer\"]\n },\n {\n importPlugin: () => import(\"./plugins/graphql.mjs\"),\n parsers: [\"graphql\"],\n printers: [\"graphql\"]\n },\n {\n importPlugin: () => import(\"./plugins/html.mjs\"),\n parsers: [\"html\", \"angular\", \"vue\", \"lwc\"],\n printers: [\"html\"]\n },\n {\n importPlugin: () => import(\"./plugins/markdown.mjs\"),\n parsers: [\"markdown\", \"mdx\", \"remark\"],\n printers: [\"mdast\"]\n },\n {\n importPlugin: () => import(\"./plugins/meriyah.mjs\"),\n parsers: [\"meriyah\"]\n },\n {\n importPlugin: () => import(\"./plugins/postcss.mjs\"),\n parsers: [\"css\", \"less\", \"scss\"],\n printers: [\"postcss\"]\n },\n {\n importPlugin: () => import(\"./plugins/typescript.mjs\"),\n parsers: [\"typescript\"]\n },\n {\n importPlugin: () => import(\"./plugins/yaml.mjs\"),\n parsers: [\"yaml\"],\n printers: [\"yaml\"]\n }\n]);\n\n// src/main/plugins/load-builtin-plugins.js\nfunction loadBuiltinPlugins() {\n return [builtin_plugins_proxy_exports];\n}\nvar load_builtin_plugins_default = loadBuiltinPlugins;\n\n// src/main/plugins/load-plugin.js\nimport path12 from \"path\";\nimport { pathToFileURL as pathToFileURL5 } from \"url\";\n\n// src/utils/import-from-directory.js\nimport path11 from \"path\";\nfunction importFromDirectory(specifier, directory) {\n return import_from_file_default(specifier, path11.join(directory, \"noop.js\"));\n}\nvar import_from_directory_default = importFromDirectory;\n\n// src/main/plugins/load-plugin.js\nasync function importPlugin(name, cwd) {\n if (path12.isAbsolute(name)) {\n return import(pathToFileURL5(name).href);\n }\n try {\n return await import(pathToFileURL5(path12.resolve(name)).href);\n } catch {\n return import_from_directory_default(name, cwd);\n }\n}\nasync function loadPluginWithoutCache(plugin, cwd) {\n const module = await importPlugin(plugin, cwd);\n return { name: plugin, ...module.default ?? module };\n}\nvar cache2 = /* @__PURE__ */ new Map();\nfunction loadPlugin(plugin) {\n if (typeof plugin !== \"string\") {\n return plugin;\n }\n const cwd = process.cwd();\n const cacheKey = JSON.stringify({ name: plugin, cwd });\n if (!cache2.has(cacheKey)) {\n cache2.set(cacheKey, loadPluginWithoutCache(plugin, cwd));\n }\n return cache2.get(cacheKey);\n}\nfunction clearCache2() {\n cache2.clear();\n}\n\n// src/main/plugins/load-plugins.js\nfunction loadPlugins(plugins = []) {\n return Promise.all(plugins.map((plugin) => loadPlugin(plugin)));\n}\nvar load_plugins_default = loadPlugins;\n\n// src/utils/object-omit.js\nfunction omit(object, keys) {\n keys = new Set(keys);\n return Object.fromEntries(\n Object.entries(object).filter(([key2]) => !keys.has(key2))\n );\n}\nvar object_omit_default = omit;\n\n// src/index.js\nimport * as doc from \"./doc.mjs\";\n\n// src/main/version.evaluate.cjs\nvar version_evaluate_default = \"3.4.2\";\n\n// src/utils/public.js\nvar public_exports = {};\n__export(public_exports, {\n addDanglingComment: () => addDanglingComment,\n addLeadingComment: () => addLeadingComment,\n addTrailingComment: () => addTrailingComment,\n getAlignmentSize: () => get_alignment_size_default,\n getIndentSize: () => get_indent_size_default,\n getMaxContinuousCount: () => get_max_continuous_count_default,\n getNextNonSpaceNonCommentCharacter: () => get_next_non_space_non_comment_character_default,\n getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex2,\n getPreferredQuote: () => get_preferred_quote_default,\n getStringWidth: () => get_string_width_default,\n hasNewline: () => has_newline_default,\n hasNewlineInRange: () => has_newline_in_range_default,\n hasSpaces: () => has_spaces_default,\n isNextLineEmpty: () => isNextLineEmpty2,\n isNextLineEmptyAfterIndex: () => is_next_line_empty_default,\n isPreviousLineEmpty: () => isPreviousLineEmpty2,\n makeString: () => make_string_default,\n skip: () => skip,\n skipEverythingButNewLine: () => skipEverythingButNewLine,\n skipInlineComment: () => skip_inline_comment_default,\n skipNewline: () => skip_newline_default,\n skipSpaces: () => skipSpaces,\n skipToLineEnd: () => skipToLineEnd,\n skipTrailingComment: () => skip_trailing_comment_default,\n skipWhitespace: () => skipWhitespace\n});\n\n// src/utils/skip-inline-comment.js\nfunction skipInlineComment(text, startIndex) {\n if (startIndex === false) {\n return false;\n }\n if (text.charAt(startIndex) === \"/\" && text.charAt(startIndex + 1) === \"*\") {\n for (let i = startIndex + 2; i < text.length; ++i) {\n if (text.charAt(i) === \"*\" && text.charAt(i + 1) === \"/\") {\n return i + 2;\n }\n }\n }\n return startIndex;\n}\nvar skip_inline_comment_default = skipInlineComment;\n\n// src/utils/skip-trailing-comment.js\nfunction skipTrailingComment(text, startIndex) {\n if (startIndex === false) {\n return false;\n }\n if (text.charAt(startIndex) === \"/\" && text.charAt(startIndex + 1) === \"/\") {\n return skipEverythingButNewLine(text, startIndex);\n }\n return startIndex;\n}\nvar skip_trailing_comment_default = skipTrailingComment;\n\n// src/utils/get-next-non-space-non-comment-character-index.js\nfunction getNextNonSpaceNonCommentCharacterIndex(text, startIndex) {\n let oldIdx = null;\n let nextIdx = startIndex;\n while (nextIdx !== oldIdx) {\n oldIdx = nextIdx;\n nextIdx = skipSpaces(text, nextIdx);\n nextIdx = skip_inline_comment_default(text, nextIdx);\n nextIdx = skip_trailing_comment_default(text, nextIdx);\n nextIdx = skip_newline_default(text, nextIdx);\n }\n return nextIdx;\n}\nvar get_next_non_space_non_comment_character_index_default = getNextNonSpaceNonCommentCharacterIndex;\n\n// src/utils/is-next-line-empty.js\nfunction isNextLineEmpty(text, startIndex) {\n let oldIdx = null;\n let idx = startIndex;\n while (idx !== oldIdx) {\n oldIdx = idx;\n idx = skipToLineEnd(text, idx);\n idx = skip_inline_comment_default(text, idx);\n idx = skipSpaces(text, idx);\n }\n idx = skip_trailing_comment_default(text, idx);\n idx = skip_newline_default(text, idx);\n return idx !== false && has_newline_default(text, idx);\n}\nvar is_next_line_empty_default = isNextLineEmpty;\n\n// src/utils/get-indent-size.js\nfunction getIndentSize(value, tabWidth) {\n const lastNewlineIndex = value.lastIndexOf(\"\\n\");\n if (lastNewlineIndex === -1) {\n return 0;\n }\n return get_alignment_size_default(\n // All the leading whitespaces\n value.slice(lastNewlineIndex + 1).match(/^[\\t ]*/u)[0],\n tabWidth\n );\n}\nvar get_indent_size_default = getIndentSize;\n\n// node_modules/escape-string-regexp/index.js\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n// src/utils/get-max-continuous-count.js\nfunction getMaxContinuousCount(text, searchString) {\n const results = text.match(\n new RegExp(`(${escapeStringRegexp(searchString)})+`, \"gu\")\n );\n if (results === null) {\n return 0;\n }\n return results.reduce(\n (maxCount, result) => Math.max(maxCount, result.length / searchString.length),\n 0\n );\n}\nvar get_max_continuous_count_default = getMaxContinuousCount;\n\n// src/utils/get-next-non-space-non-comment-character.js\nfunction getNextNonSpaceNonCommentCharacter(text, startIndex) {\n const index = get_next_non_space_non_comment_character_index_default(text, startIndex);\n return index === false ? \"\" : text.charAt(index);\n}\nvar get_next_non_space_non_comment_character_default = getNextNonSpaceNonCommentCharacter;\n\n// src/utils/get-preferred-quote.js\nvar SINGLE_QUOTE = \"'\";\nvar DOUBLE_QUOTE = '\"';\nfunction getPreferredQuote(text, preferredQuoteOrPreferSingleQuote) {\n const preferred = preferredQuoteOrPreferSingleQuote === true || preferredQuoteOrPreferSingleQuote === SINGLE_QUOTE ? SINGLE_QUOTE : DOUBLE_QUOTE;\n const alternate = preferred === SINGLE_QUOTE ? DOUBLE_QUOTE : SINGLE_QUOTE;\n let preferredQuoteCount = 0;\n let alternateQuoteCount = 0;\n for (const character of text) {\n if (character === preferred) {\n preferredQuoteCount++;\n } else if (character === alternate) {\n alternateQuoteCount++;\n }\n }\n return preferredQuoteCount > alternateQuoteCount ? alternate : preferred;\n}\nvar get_preferred_quote_default = getPreferredQuote;\n\n// src/utils/has-newline-in-range.js\nfunction hasNewlineInRange(text, startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; ++i) {\n if (text.charAt(i) === \"\\n\") {\n return true;\n }\n }\n return false;\n}\nvar has_newline_in_range_default = hasNewlineInRange;\n\n// src/utils/has-spaces.js\nfunction hasSpaces(text, startIndex, options8 = {}) {\n const idx = skipSpaces(\n text,\n options8.backwards ? startIndex - 1 : startIndex,\n options8\n );\n return idx !== startIndex;\n}\nvar has_spaces_default = hasSpaces;\n\n// src/utils/make-string.js\nfunction makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) {\n const otherQuote = enclosingQuote === '\"' ? \"'\" : '\"';\n const regex = /\\\\(.)|([\"'])/gsu;\n const raw = string_replace_all_default(\n /* isOptionalObject */\n false,\n rawText,\n regex,\n (match, escaped, quote) => {\n if (escaped === otherQuote) {\n return escaped;\n }\n if (quote === enclosingQuote) {\n return \"\\\\\" + quote;\n }\n if (quote) {\n return quote;\n }\n return unescapeUnnecessaryEscapes && /^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(escaped) ? escaped : \"\\\\\" + escaped;\n }\n );\n return enclosingQuote + raw + enclosingQuote;\n}\nvar make_string_default = makeString;\n\n// src/utils/public.js\nfunction legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) {\n return get_next_non_space_non_comment_character_index_default(\n text,\n locEnd(node)\n );\n}\nfunction getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? get_next_non_space_non_comment_character_index_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments)\n );\n}\nfunction legacyIsPreviousLineEmpty(text, node, locStart) {\n return is_previous_line_empty_default(text, locStart(node));\n}\nfunction isPreviousLineEmpty2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? is_previous_line_empty_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyIsPreviousLineEmpty(...arguments)\n );\n}\nfunction legacyIsNextLineEmpty(text, node, locEnd) {\n return is_next_line_empty_default(text, locEnd(node));\n}\nfunction isNextLineEmpty2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? is_next_line_empty_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyIsNextLineEmpty(...arguments)\n );\n}\n\n// src/index.js\nfunction withPlugins(fn, optionsArgumentIndex = 1) {\n return async (...args) => {\n const options8 = args[optionsArgumentIndex] ?? {};\n const { plugins = [] } = options8;\n args[optionsArgumentIndex] = {\n ...options8,\n plugins: (await Promise.all([\n load_builtin_plugins_default(),\n // TODO: standalone version allow `plugins` to be `prettierPlugins` which is an object, should allow that too\n load_plugins_default(plugins)\n ])).flat()\n };\n return fn(...args);\n };\n}\nvar formatWithCursor2 = withPlugins(formatWithCursor);\nasync function format2(text, options8) {\n const { formatted } = await formatWithCursor2(text, {\n ...options8,\n cursorOffset: -1\n });\n return formatted;\n}\nasync function check(text, options8) {\n return await format2(text, options8) === text;\n}\nasync function clearCache3() {\n clearCache();\n clearCache2();\n}\nvar getFileInfo2 = withPlugins(get_file_info_default);\nvar getSupportInfo2 = withPlugins(getSupportInfo, 0);\nvar sharedWithCli = {\n errors: errors_exports,\n optionCategories: option_categories_exports,\n createIsIgnoredFunction,\n formatOptionsHiddenDefaults,\n normalizeOptions: normalize_options_default,\n getSupportInfoWithoutPlugins: getSupportInfo,\n normalizeOptionSettings,\n vnopts: {\n ChoiceSchema,\n apiDescriptor\n },\n fastGlob: import_fast_glob.default,\n createTwoFilesPatch,\n utils: {\n omit: object_omit_default\n },\n mockable: mockable_default\n};\nvar debugApis = {\n parse: withPlugins(parse6),\n formatAST: withPlugins(formatAst),\n formatDoc: withPlugins(formatDoc),\n printToDoc: withPlugins(printToDoc),\n printDocToString: withPlugins(printDocToString2),\n mockable: mockable_default\n};\n\n// with-default-export:src/index.js\nvar src_default = src_exports;\nexport {\n debugApis as __debug,\n sharedWithCli as __internal,\n check,\n clearCache3 as clearConfigCache,\n src_default as default,\n doc,\n format2 as format,\n formatWithCursor2 as formatWithCursor,\n getFileInfo2 as getFileInfo,\n getSupportInfo2 as getSupportInfo,\n resolveConfig,\n resolveConfigFile,\n public_exports as util,\n version_evaluate_default as version\n};\n", "(function (factory) {\n function interopModuleDefault() {\n var module = factory();\n return module.default || module;\n }\n\n if (typeof exports === \"object\" && typeof module === \"object\") {\n module.exports = interopModuleDefault();\n } else if (typeof define === \"function\" && define.amd) {\n define(interopModuleDefault);\n } else {\n var root =\n typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof global !== \"undefined\"\n ? global\n : typeof self !== \"undefined\"\n ? self\n : this || {};\n root.doc = interopModuleDefault();\n }\n})(function () {\n \"use strict\";\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n // src/document/public.js\n var public_exports = {};\n __export(public_exports, {\n builders: () => builders,\n printer: () => printer,\n utils: () => utils\n });\n\n // src/document/constants.js\n var DOC_TYPE_STRING = \"string\";\n var DOC_TYPE_ARRAY = \"array\";\n var DOC_TYPE_CURSOR = \"cursor\";\n var DOC_TYPE_INDENT = \"indent\";\n var DOC_TYPE_ALIGN = \"align\";\n var DOC_TYPE_TRIM = \"trim\";\n var DOC_TYPE_GROUP = \"group\";\n var DOC_TYPE_FILL = \"fill\";\n var DOC_TYPE_IF_BREAK = \"if-break\";\n var DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\n var DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\n var DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\n var DOC_TYPE_LINE = \"line\";\n var DOC_TYPE_LABEL = \"label\";\n var DOC_TYPE_BREAK_PARENT = \"break-parent\";\n var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([\n DOC_TYPE_CURSOR,\n DOC_TYPE_INDENT,\n DOC_TYPE_ALIGN,\n DOC_TYPE_TRIM,\n DOC_TYPE_GROUP,\n DOC_TYPE_FILL,\n DOC_TYPE_IF_BREAK,\n DOC_TYPE_INDENT_IF_BREAK,\n DOC_TYPE_LINE_SUFFIX,\n DOC_TYPE_LINE_SUFFIX_BOUNDARY,\n DOC_TYPE_LINE,\n DOC_TYPE_LABEL,\n DOC_TYPE_BREAK_PARENT\n ]);\n\n // src/document/utils/get-doc-type.js\n function getDocType(doc) {\n if (typeof doc === \"string\") {\n return DOC_TYPE_STRING;\n }\n if (Array.isArray(doc)) {\n return DOC_TYPE_ARRAY;\n }\n if (!doc) {\n return;\n }\n const { type } = doc;\n if (VALID_OBJECT_DOC_TYPES.has(type)) {\n return type;\n }\n }\n var get_doc_type_default = getDocType;\n\n // src/document/invalid-doc-error.js\n var disjunctionListFormat = (list) => new Intl.ListFormat(\"en-US\", { type: \"disjunction\" }).format(list);\n function getDocErrorMessage(doc) {\n const type = doc === null ? \"null\" : typeof doc;\n if (type !== \"string\" && type !== \"object\") {\n return `Unexpected doc '${type}', \nExpected it to be 'string' or 'object'.`;\n }\n if (get_doc_type_default(doc)) {\n throw new Error(\"doc is valid.\");\n }\n const objectType = Object.prototype.toString.call(doc);\n if (objectType !== \"[object Object]\") {\n return `Unexpected doc '${objectType}'.`;\n }\n const EXPECTED_TYPE_VALUES = disjunctionListFormat(\n [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)\n );\n return `Unexpected doc.type '${doc.type}'.\nExpected it to be ${EXPECTED_TYPE_VALUES}.`;\n }\n var InvalidDocError = class extends Error {\n name = \"InvalidDocError\";\n constructor(doc) {\n super(getDocErrorMessage(doc));\n this.doc = doc;\n }\n };\n var invalid_doc_error_default = InvalidDocError;\n\n // src/document/utils/traverse-doc.js\n var traverseDocOnExitStackMarker = {};\n function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc];\n while (docsStack.length > 0) {\n const doc2 = docsStack.pop();\n if (doc2 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc2, traverseDocOnExitStackMarker);\n }\n const docType = get_doc_type_default(doc2);\n if (!docType) {\n throw new invalid_doc_error_default(doc2);\n }\n if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {\n continue;\n }\n switch (docType) {\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n docsStack.push(doc2.flatContents, doc2.breakContents);\n break;\n case DOC_TYPE_GROUP:\n if (shouldTraverseConditionalGroups && doc2.expandedStates) {\n for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc2.expandedStates[i]);\n }\n } else {\n docsStack.push(doc2.contents);\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n docsStack.push(doc2.contents);\n break;\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n }\n var traverse_doc_default = traverseDoc;\n\n // src/document/utils/assert-doc.js\n var noop = () => {\n };\n var assertDoc = true ? noop : function(doc) {\n traverse_doc_default(doc, (doc2) => {\n if (checked.has(doc2)) {\n return false;\n }\n if (typeof doc2 !== \"string\") {\n checked.add(doc2);\n }\n });\n };\n var assertDocArray = true ? noop : function(docs, optional = false) {\n if (optional && !docs) {\n return;\n }\n if (!Array.isArray(docs)) {\n throw new TypeError(\"Unexpected doc array.\");\n }\n for (const doc of docs) {\n assertDoc(doc);\n }\n };\n\n // src/document/builders.js\n function indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n }\n function align(widthOrString, contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n }\n function group(contents, opts = {}) {\n assertDoc(contents);\n assertDocArray(\n opts.expandedStates,\n /* optional */\n true\n );\n return {\n type: DOC_TYPE_GROUP,\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\n }\n function dedentToRoot(contents) {\n return align(Number.NEGATIVE_INFINITY, contents);\n }\n function markAsRoot(contents) {\n return align({ type: \"root\" }, contents);\n }\n function dedent(contents) {\n return align(-1, contents);\n }\n function conditionalGroup(states, opts) {\n return group(states[0], { ...opts, expandedStates: states });\n }\n function fill(parts) {\n assertDocArray(parts);\n return { type: DOC_TYPE_FILL, parts };\n }\n function ifBreak(breakContents, flatContents = \"\", opts = {}) {\n assertDoc(breakContents);\n if (flatContents !== \"\") {\n assertDoc(flatContents);\n }\n return {\n type: DOC_TYPE_IF_BREAK,\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n }\n function indentIfBreak(contents, opts) {\n assertDoc(contents);\n return {\n type: DOC_TYPE_INDENT_IF_BREAK,\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n }\n function lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n }\n var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\n var breakParent = { type: DOC_TYPE_BREAK_PARENT };\n var trim = { type: DOC_TYPE_TRIM };\n var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\n var literallineWithoutBreakParent = {\n type: DOC_TYPE_LINE,\n hard: true,\n literal: true\n };\n var line = { type: DOC_TYPE_LINE };\n var softline = { type: DOC_TYPE_LINE, soft: true };\n var hardline = [hardlineWithoutBreakParent, breakParent];\n var literalline = [literallineWithoutBreakParent, breakParent];\n var cursor = { type: DOC_TYPE_CURSOR };\n function join(separator, docs) {\n assertDoc(separator);\n assertDocArray(docs);\n const parts = [];\n for (let i = 0; i < docs.length; i++) {\n if (i !== 0) {\n parts.push(separator);\n }\n parts.push(docs[i]);\n }\n return parts;\n }\n function addAlignmentToDoc(doc, size, tabWidth) {\n assertDoc(doc);\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n }\n function label(label2, contents) {\n assertDoc(contents);\n return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n }\n\n // scripts/build/shims/at.js\n var at = (isOptionalObject, object, index) => {\n if (isOptionalObject && (object === void 0 || object === null)) {\n return;\n }\n if (Array.isArray(object) || typeof object === \"string\") {\n return object[index < 0 ? object.length + index : index];\n }\n return object.at(index);\n };\n var at_default = at;\n\n // scripts/build/shims/string-replace-all.js\n var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n };\n var string_replace_all_default = stringReplaceAll;\n\n // src/common/end-of-line.js\n function convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\n\";\n }\n }\n\n // node_modules/emoji-regex/index.mjs\n var emoji_regex_default = () => {\n return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n };\n\n // node_modules/get-east-asian-width/lookup.js\n function isFullWidth(x) {\n return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n }\n function isWide(x) {\n return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n }\n\n // node_modules/get-east-asian-width/index.js\n var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n\n // src/utils/get-string-width.js\n var notAsciiRegex = /[^\\x20-\\x7F]/u;\n function getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n width += _isNarrowWidth(codePoint) ? 1 : 2;\n }\n return width;\n }\n var get_string_width_default = getStringWidth;\n\n // src/document/utils.js\n function mapDoc(doc, cb) {\n if (typeof doc === \"string\") {\n return cb(doc);\n }\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc);\n function rec(doc2) {\n if (mapped.has(doc2)) {\n return mapped.get(doc2);\n }\n const result = process2(doc2);\n mapped.set(doc2, result);\n return result;\n }\n function process2(doc2) {\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_ARRAY:\n return cb(doc2.map(rec));\n case DOC_TYPE_FILL:\n return cb({ ...doc2, parts: doc2.parts.map(rec) });\n case DOC_TYPE_IF_BREAK:\n return cb({\n ...doc2,\n breakContents: rec(doc2.breakContents),\n flatContents: rec(doc2.flatContents)\n });\n case DOC_TYPE_GROUP: {\n let { expandedStates, contents } = doc2;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({ ...doc2, contents, expandedStates });\n }\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n return cb({ ...doc2, contents: rec(doc2.contents) });\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n return cb(doc2);\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n }\n function findInDoc(doc, fn, defaultValue) {\n let result = defaultValue;\n let shouldSkipFurtherProcessing = false;\n function findInDocOnEnterFn(doc2) {\n if (shouldSkipFurtherProcessing) {\n return false;\n }\n const maybeResult = fn(doc2);\n if (maybeResult !== void 0) {\n shouldSkipFurtherProcessing = true;\n result = maybeResult;\n }\n }\n traverse_doc_default(doc, findInDocOnEnterFn);\n return result;\n }\n function willBreakFn(doc) {\n if (doc.type === DOC_TYPE_GROUP && doc.break) {\n return true;\n }\n if (doc.type === DOC_TYPE_LINE && doc.hard) {\n return true;\n }\n if (doc.type === DOC_TYPE_BREAK_PARENT) {\n return true;\n }\n }\n function willBreak(doc) {\n return findInDoc(doc, willBreakFn, false);\n }\n function breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = at_default(\n /* isOptionalObject */\n false,\n groupStack,\n -1\n );\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n }\n function propagateBreaks(doc) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc2) {\n if (doc2.type === DOC_TYPE_BREAK_PARENT) {\n breakParentGroup(groupStack);\n }\n if (doc2.type === DOC_TYPE_GROUP) {\n groupStack.push(doc2);\n if (alreadyVisitedSet.has(doc2)) {\n return false;\n }\n alreadyVisitedSet.add(doc2);\n }\n }\n function propagateBreaksOnExitFn(doc2) {\n if (doc2.type === DOC_TYPE_GROUP) {\n const group2 = groupStack.pop();\n if (group2.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverse_doc_default(\n doc,\n propagateBreaksOnEnterFn,\n propagateBreaksOnExitFn,\n /* shouldTraverseConditionalGroups */\n true\n );\n }\n function removeLinesFn(doc) {\n if (doc.type === DOC_TYPE_LINE && !doc.hard) {\n return doc.soft ? \"\" : \" \";\n }\n if (doc.type === DOC_TYPE_IF_BREAK) {\n return doc.flatContents;\n }\n return doc;\n }\n function removeLines(doc) {\n return mapDoc(doc, removeLinesFn);\n }\n function stripTrailingHardlineFromParts(parts) {\n parts = [...parts];\n while (parts.length >= 2 && at_default(\n /* isOptionalObject */\n false,\n parts,\n -2\n ).type === DOC_TYPE_LINE && at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ));\n parts[parts.length - 1] = lastPart;\n }\n return parts;\n }\n function stripTrailingHardlineFromDoc(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_GROUP:\n case DOC_TYPE_LINE_SUFFIX:\n case DOC_TYPE_LABEL: {\n const contents = stripTrailingHardlineFromDoc(doc.contents);\n return { ...doc, contents };\n }\n case DOC_TYPE_IF_BREAK:\n return {\n ...doc,\n breakContents: stripTrailingHardlineFromDoc(doc.breakContents),\n flatContents: stripTrailingHardlineFromDoc(doc.flatContents)\n };\n case DOC_TYPE_FILL:\n return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc);\n case DOC_TYPE_STRING:\n return doc.replace(/[\\n\\r]*$/u, \"\");\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n }\n function stripTrailingHardline(doc) {\n return stripTrailingHardlineFromDoc(cleanDoc(doc));\n }\n function cleanDocFn(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_FILL:\n if (doc.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case DOC_TYPE_GROUP:\n if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n return \"\";\n }\n if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n return doc.contents;\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LINE_SUFFIX:\n if (!doc.contents) {\n return \"\";\n }\n break;\n case DOC_TYPE_IF_BREAK:\n if (!doc.flatContents && !doc.breakContents) {\n return \"\";\n }\n break;\n case DOC_TYPE_ARRAY: {\n const parts = [];\n for (const part of doc) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];\n if (typeof currentPart === \"string\" && typeof at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return parts;\n }\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n }\n function cleanDoc(doc) {\n return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n }\n function replaceEndOfLine(doc, replacement = literalline) {\n return mapDoc(\n doc,\n (currentDoc) => typeof currentDoc === \"string\" ? join(replacement, currentDoc.split(\"\\n\")) : currentDoc\n );\n }\n function canBreakFn(doc) {\n if (doc.type === DOC_TYPE_LINE) {\n return true;\n }\n }\n function canBreak(doc) {\n return findInDoc(doc, canBreakFn, false);\n }\n\n // src/document/printer.js\n var MODE_BREAK = Symbol(\"MODE_BREAK\");\n var MODE_FLAT = Symbol(\"MODE_FLAT\");\n var CURSOR_PLACEHOLDER = Symbol(\"cursor\");\n var DOC_FILL_PRINTED_LENGTH = Symbol(\"DOC_FILL_PRINTED_LENGTH\");\n function rootIndent() {\n return { value: \"\", length: 0, queue: [] };\n }\n function makeIndent(ind, options) {\n return generateInd(ind, { type: \"indent\" }, options);\n }\n function makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, { type: \"dedent\" }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return { ...indent2, root: indent2 };\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);\n }\n function generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(`Unexpected type '${part.type}'`);\n }\n }\n flushSpaces();\n return { ...ind, value, length, queue };\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n }\n function trim2(out) {\n let trimCount = 0;\n let cursorCount = 0;\n let outIndex = out.length;\n outer: while (outIndex--) {\n const last = out[outIndex];\n if (last === CURSOR_PLACEHOLDER) {\n cursorCount++;\n continue;\n }\n if (false) {\n throw new Error(`Unexpected value in trim: '${typeof last}'`);\n }\n for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n const char = last[charIndex];\n if (char === \" \" || char === \"\t\") {\n trimCount++;\n } else {\n out[outIndex] = last.slice(0, charIndex + 1);\n break outer;\n }\n }\n }\n if (trimCount > 0 || cursorCount > 0) {\n out.length = outIndex + 1;\n while (cursorCount-- > 0) {\n out.push(CURSOR_PLACEHOLDER);\n }\n }\n return trimCount;\n }\n function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (width === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[--restIdx]);\n continue;\n }\n const { mode, doc } = cmds.pop();\n const docType = get_doc_type_default(doc);\n switch (docType) {\n case DOC_TYPE_STRING:\n out.push(doc);\n width -= get_string_width_default(doc);\n break;\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;\n const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0;\n for (let i = parts.length - 1; i >= end; i--) {\n cmds.push({ mode, doc: parts[i] });\n }\n break;\n }\n case DOC_TYPE_INDENT:\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n cmds.push({ mode, doc: doc.contents });\n break;\n case DOC_TYPE_TRIM:\n width += trim2(out);\n break;\n case DOC_TYPE_GROUP: {\n if (mustBeFlat && doc.break) {\n return false;\n }\n const groupMode = doc.break ? MODE_BREAK : mode;\n const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(\n /* isOptionalObject */\n false,\n doc.expandedStates,\n -1\n ) : doc.contents;\n cmds.push({ mode: groupMode, doc: contents });\n break;\n }\n case DOC_TYPE_IF_BREAK: {\n const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;\n const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;\n if (contents) {\n cmds.push({ mode, doc: contents });\n }\n break;\n }\n case DOC_TYPE_LINE:\n if (mode === MODE_BREAK || doc.hard) {\n return true;\n }\n if (!doc.soft) {\n out.push(\" \");\n width--;\n }\n break;\n case DOC_TYPE_LINE_SUFFIX:\n hasLineSuffix = true;\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (hasLineSuffix) {\n return false;\n }\n break;\n }\n }\n return false;\n }\n function printDocToString(doc, options) {\n const groupModeMap = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];\n const out = [];\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n let printedCursorCount = 0;\n propagateBreaks(doc);\n while (cmds.length > 0) {\n const { ind, mode, doc: doc2 } = cmds.pop();\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_STRING: {\n const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n /* isOptionalObject */\n false,\n doc2,\n \"\\n\",\n newLine\n ) : doc2;\n out.push(formatted);\n if (cmds.length > 0) {\n pos += get_string_width_default(formatted);\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let i = doc2.length - 1; i >= 0; i--) {\n cmds.push({ ind, mode, doc: doc2[i] });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (printedCursorCount >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n out.push(CURSOR_PLACEHOLDER);\n printedCursorCount++;\n break;\n case DOC_TYPE_INDENT:\n cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });\n break;\n case DOC_TYPE_ALIGN:\n cmds.push({\n ind: makeAlign(ind, doc2.n, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_TRIM:\n pos -= trim2(out);\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push({\n ind,\n mode: doc2.break ? MODE_BREAK : MODE_FLAT,\n doc: doc2.contents\n });\n break;\n }\n // fallthrough\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = { ind, mode: MODE_FLAT, doc: doc2.contents };\n const rem = width - pos;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = at_default(\n /* isOptionalObject */\n false,\n doc2.expandedStates,\n -1\n );\n if (doc2.break) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = { ind, mode: MODE_FLAT, doc: state };\n if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = at_default(\n /* isOptionalObject */\n false,\n cmds,\n -1\n ).mode;\n }\n break;\n // Fills each line with as much code as possible before moving to a new\n // line with the same indentation.\n //\n // Expects doc.parts to be an array of alternating content and\n // whitespace. The whitespace contains the linebreaks.\n //\n // For example:\n // [\"I\", line, \"love\", line, \"monkeys\"]\n // or\n // [{ type: group, ... }, softline, { type: group, ... }]\n //\n // It uses this parts structure to handle three main layout cases:\n // * The first two content items fit on the same line without\n // breaking\n // -> output the first content item and the whitespace \"flat\".\n // * Only the first content item fits on the line without breaking\n // -> output the first content item \"flat\" and the whitespace with\n // \"break\".\n // * Neither content item fits on the line without breaking\n // -> output the first content item and the whitespace with \"break\".\n case DOC_TYPE_FILL: {\n const rem = width - pos;\n const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;\n const { parts } = doc2;\n const length = parts.length - offset;\n if (length === 0) {\n break;\n }\n const content = parts[offset + 0];\n const whitespace = parts[offset + 1];\n const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };\n const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };\n const contentFits = fits(\n contentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };\n const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };\n if (length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n const secondContent = parts[offset + 2];\n const remainingCmd = {\n ind,\n mode,\n doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }\n };\n const firstAndSecondContentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(\n firstAndSecondContentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n case DOC_TYPE_INDENT_IF_BREAK: {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n if (breakContents) {\n cmds.push({ ind, mode, doc: breakContents });\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n if (flatContents) {\n cmds.push({ ind, mode, doc: flatContents });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n // fallthrough\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim2(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n cmds.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n if (cmds.length === 0 && lineSuffix2.length > 0) {\n cmds.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(\n CURSOR_PLACEHOLDER,\n cursorPlaceholderIndex + 1\n );\n if (otherCursorPlaceholderIndex === -1) {\n return {\n formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join(\"\")\n };\n }\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return { formatted: out.join(\"\") };\n }\n\n // src/document/public.js\n var builders = {\n join,\n line,\n softline,\n hardline,\n literalline,\n group,\n conditionalGroup,\n fill,\n lineSuffix,\n lineSuffixBoundary,\n cursor,\n breakParent,\n ifBreak,\n trim,\n indent,\n indentIfBreak,\n align,\n addAlignmentToDoc,\n markAsRoot,\n dedentToRoot,\n dedent,\n hardlineWithoutBreakParent,\n literallineWithoutBreakParent,\n label,\n // TODO: Remove this in v4\n concat: (parts) => parts\n };\n var printer = { printDocToString };\n var utils = {\n willBreak,\n traverseDoc: traverse_doc_default,\n findInDoc,\n mapDoc,\n removeLines,\n stripTrailingHardline,\n replaceEndOfLine,\n canBreak\n };\n return __toCommonJS(public_exports);\n});", "\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils/skip.js\nfunction skip(characters) {\n return (text, startIndex, options) => {\n const backwards = Boolean(options == null ? void 0 : options.backwards);\n if (startIndex === false) {\n return false;\n }\n const { length } = text;\n let cursor = startIndex;\n while (cursor >= 0 && cursor < length) {\n const character = text.charAt(cursor);\n if (characters instanceof RegExp) {\n if (!characters.test(character)) {\n return cursor;\n }\n } else if (!characters.includes(character)) {\n return cursor;\n }\n backwards ? cursor-- : cursor++;\n }\n if (cursor === -1 || cursor === length) {\n return cursor;\n }\n return false;\n };\n}\nvar skipWhitespace, skipSpaces, skipToLineEnd, skipEverythingButNewLine;\nvar init_skip = __esm({\n \"src/utils/skip.js\"() {\n skipWhitespace = skip(/\\s/u);\n skipSpaces = skip(\" \t\");\n skipToLineEnd = skip(\",; \t\");\n skipEverythingButNewLine = skip(/[^\\n\\r]/u);\n }\n});\n\n// src/utils/skip-inline-comment.js\nfunction skipInlineComment(text, startIndex) {\n if (startIndex === false) {\n return false;\n }\n if (text.charAt(startIndex) === \"/\" && text.charAt(startIndex + 1) === \"*\") {\n for (let i = startIndex + 2; i < text.length; ++i) {\n if (text.charAt(i) === \"*\" && text.charAt(i + 1) === \"/\") {\n return i + 2;\n }\n }\n }\n return startIndex;\n}\nvar skip_inline_comment_default;\nvar init_skip_inline_comment = __esm({\n \"src/utils/skip-inline-comment.js\"() {\n skip_inline_comment_default = skipInlineComment;\n }\n});\n\n// src/utils/skip-newline.js\nfunction skipNewline(text, startIndex, options) {\n const backwards = Boolean(options == null ? void 0 : options.backwards);\n if (startIndex === false) {\n return false;\n }\n const character = text.charAt(startIndex);\n if (backwards) {\n if (text.charAt(startIndex - 1) === \"\\r\" && character === \"\\n\") {\n return startIndex - 2;\n }\n if (character === \"\\n\" || character === \"\\r\" || character === \"\\u2028\" || character === \"\\u2029\") {\n return startIndex - 1;\n }\n } else {\n if (character === \"\\r\" && text.charAt(startIndex + 1) === \"\\n\") {\n return startIndex + 2;\n }\n if (character === \"\\n\" || character === \"\\r\" || character === \"\\u2028\" || character === \"\\u2029\") {\n return startIndex + 1;\n }\n }\n return startIndex;\n}\nvar skip_newline_default;\nvar init_skip_newline = __esm({\n \"src/utils/skip-newline.js\"() {\n skip_newline_default = skipNewline;\n }\n});\n\n// src/utils/skip-trailing-comment.js\nfunction skipTrailingComment(text, startIndex) {\n if (startIndex === false) {\n return false;\n }\n if (text.charAt(startIndex) === \"/\" && text.charAt(startIndex + 1) === \"/\") {\n return skipEverythingButNewLine(text, startIndex);\n }\n return startIndex;\n}\nvar skip_trailing_comment_default;\nvar init_skip_trailing_comment = __esm({\n \"src/utils/skip-trailing-comment.js\"() {\n init_skip();\n skip_trailing_comment_default = skipTrailingComment;\n }\n});\n\n// src/utils/get-next-non-space-non-comment-character-index.js\nfunction getNextNonSpaceNonCommentCharacterIndex(text, startIndex) {\n let oldIdx = null;\n let nextIdx = startIndex;\n while (nextIdx !== oldIdx) {\n oldIdx = nextIdx;\n nextIdx = skipSpaces(text, nextIdx);\n nextIdx = skip_inline_comment_default(text, nextIdx);\n nextIdx = skip_trailing_comment_default(text, nextIdx);\n nextIdx = skip_newline_default(text, nextIdx);\n }\n return nextIdx;\n}\nvar get_next_non_space_non_comment_character_index_default;\nvar init_get_next_non_space_non_comment_character_index = __esm({\n \"src/utils/get-next-non-space-non-comment-character-index.js\"() {\n init_skip();\n init_skip_inline_comment();\n init_skip_newline();\n init_skip_trailing_comment();\n get_next_non_space_non_comment_character_index_default = getNextNonSpaceNonCommentCharacterIndex;\n }\n});\n\n// src/utils/has-newline.js\nfunction hasNewline(text, startIndex, options = {}) {\n const idx = skipSpaces(\n text,\n options.backwards ? startIndex - 1 : startIndex,\n options\n );\n const idx2 = skip_newline_default(text, idx, options);\n return idx !== idx2;\n}\nvar has_newline_default;\nvar init_has_newline = __esm({\n \"src/utils/has-newline.js\"() {\n init_skip();\n init_skip_newline();\n has_newline_default = hasNewline;\n }\n});\n\n// src/utils/is-next-line-empty.js\nfunction isNextLineEmpty(text, startIndex) {\n let oldIdx = null;\n let idx = startIndex;\n while (idx !== oldIdx) {\n oldIdx = idx;\n idx = skipToLineEnd(text, idx);\n idx = skip_inline_comment_default(text, idx);\n idx = skipSpaces(text, idx);\n }\n idx = skip_trailing_comment_default(text, idx);\n idx = skip_newline_default(text, idx);\n return idx !== false && has_newline_default(text, idx);\n}\nvar is_next_line_empty_default;\nvar init_is_next_line_empty = __esm({\n \"src/utils/is-next-line-empty.js\"() {\n init_has_newline();\n init_skip();\n init_skip_inline_comment();\n init_skip_newline();\n init_skip_trailing_comment();\n is_next_line_empty_default = isNextLineEmpty;\n }\n});\n\n// src/utils/is-previous-line-empty.js\nfunction isPreviousLineEmpty(text, startIndex) {\n let idx = startIndex - 1;\n idx = skipSpaces(text, idx, { backwards: true });\n idx = skip_newline_default(text, idx, { backwards: true });\n idx = skipSpaces(text, idx, { backwards: true });\n const idx2 = skip_newline_default(text, idx, { backwards: true });\n return idx !== idx2;\n}\nvar is_previous_line_empty_default;\nvar init_is_previous_line_empty = __esm({\n \"src/utils/is-previous-line-empty.js\"() {\n init_skip();\n init_skip_newline();\n is_previous_line_empty_default = isPreviousLineEmpty;\n }\n});\n\n// src/main/comments/utils.js\nfunction describeNodeForDebugging(node) {\n const nodeType = node.type || node.kind || \"(unknown type)\";\n let nodeName = String(\n node.name || node.id && (typeof node.id === \"object\" ? node.id.name : node.id) || node.key && (typeof node.key === \"object\" ? node.key.name : node.key) || node.value && (typeof node.value === \"object\" ? \"\" : String(node.value)) || node.operator || \"\"\n );\n if (nodeName.length > 20) {\n nodeName = nodeName.slice(0, 19) + \"\\u2026\";\n }\n return nodeType + (nodeName ? \" \" + nodeName : \"\");\n}\nfunction addCommentHelper(node, comment) {\n const comments = node.comments ?? (node.comments = []);\n comments.push(comment);\n comment.printed = false;\n comment.nodeDescription = describeNodeForDebugging(node);\n}\nfunction addLeadingComment(node, comment) {\n comment.leading = true;\n comment.trailing = false;\n addCommentHelper(node, comment);\n}\nfunction addDanglingComment(node, comment, marker) {\n comment.leading = false;\n comment.trailing = false;\n if (marker) {\n comment.marker = marker;\n }\n addCommentHelper(node, comment);\n}\nfunction addTrailingComment(node, comment) {\n comment.leading = false;\n comment.trailing = true;\n addCommentHelper(node, comment);\n}\nvar init_utils = __esm({\n \"src/main/comments/utils.js\"() {\n }\n});\n\n// src/utils/get-alignment-size.js\nfunction getAlignmentSize(text, tabWidth, startIndex = 0) {\n let size = 0;\n for (let i = startIndex; i < text.length; ++i) {\n if (text[i] === \"\t\") {\n size = size + tabWidth - size % tabWidth;\n } else {\n size++;\n }\n }\n return size;\n}\nvar get_alignment_size_default;\nvar init_get_alignment_size = __esm({\n \"src/utils/get-alignment-size.js\"() {\n get_alignment_size_default = getAlignmentSize;\n }\n});\n\n// src/utils/get-indent-size.js\nfunction getIndentSize(value, tabWidth) {\n const lastNewlineIndex = value.lastIndexOf(\"\\n\");\n if (lastNewlineIndex === -1) {\n return 0;\n }\n return get_alignment_size_default(\n // All the leading whitespaces\n value.slice(lastNewlineIndex + 1).match(/^[\\t ]*/u)[0],\n tabWidth\n );\n}\nvar get_indent_size_default;\nvar init_get_indent_size = __esm({\n \"src/utils/get-indent-size.js\"() {\n init_get_alignment_size();\n get_indent_size_default = getIndentSize;\n }\n});\n\n// node_modules/escape-string-regexp/index.js\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nvar init_escape_string_regexp = __esm({\n \"node_modules/escape-string-regexp/index.js\"() {\n }\n});\n\n// src/utils/get-max-continuous-count.js\nfunction getMaxContinuousCount(text, searchString) {\n const results = text.match(\n new RegExp(`(${escapeStringRegexp(searchString)})+`, \"gu\")\n );\n if (results === null) {\n return 0;\n }\n return results.reduce(\n (maxCount, result) => Math.max(maxCount, result.length / searchString.length),\n 0\n );\n}\nvar get_max_continuous_count_default;\nvar init_get_max_continuous_count = __esm({\n \"src/utils/get-max-continuous-count.js\"() {\n init_escape_string_regexp();\n get_max_continuous_count_default = getMaxContinuousCount;\n }\n});\n\n// src/utils/get-next-non-space-non-comment-character.js\nfunction getNextNonSpaceNonCommentCharacter(text, startIndex) {\n const index = get_next_non_space_non_comment_character_index_default(text, startIndex);\n return index === false ? \"\" : text.charAt(index);\n}\nvar get_next_non_space_non_comment_character_default;\nvar init_get_next_non_space_non_comment_character = __esm({\n \"src/utils/get-next-non-space-non-comment-character.js\"() {\n init_get_next_non_space_non_comment_character_index();\n get_next_non_space_non_comment_character_default = getNextNonSpaceNonCommentCharacter;\n }\n});\n\n// src/utils/get-preferred-quote.js\nfunction getPreferredQuote(text, preferredQuoteOrPreferSingleQuote) {\n const preferred = preferredQuoteOrPreferSingleQuote === true || preferredQuoteOrPreferSingleQuote === SINGLE_QUOTE ? SINGLE_QUOTE : DOUBLE_QUOTE;\n const alternate = preferred === SINGLE_QUOTE ? DOUBLE_QUOTE : SINGLE_QUOTE;\n let preferredQuoteCount = 0;\n let alternateQuoteCount = 0;\n for (const character of text) {\n if (character === preferred) {\n preferredQuoteCount++;\n } else if (character === alternate) {\n alternateQuoteCount++;\n }\n }\n return preferredQuoteCount > alternateQuoteCount ? alternate : preferred;\n}\nvar SINGLE_QUOTE, DOUBLE_QUOTE, get_preferred_quote_default;\nvar init_get_preferred_quote = __esm({\n \"src/utils/get-preferred-quote.js\"() {\n SINGLE_QUOTE = \"'\";\n DOUBLE_QUOTE = '\"';\n get_preferred_quote_default = getPreferredQuote;\n }\n});\n\n// node_modules/emoji-regex/index.mjs\nvar emoji_regex_default;\nvar init_emoji_regex = __esm({\n \"node_modules/emoji-regex/index.mjs\"() {\n emoji_regex_default = () => {\n return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n };\n }\n});\n\n// node_modules/get-east-asian-width/lookup.js\nfunction isFullWidth(x) {\n return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n}\nfunction isWide(x) {\n return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\nvar init_lookup = __esm({\n \"node_modules/get-east-asian-width/lookup.js\"() {\n }\n});\n\n// node_modules/get-east-asian-width/index.js\nvar _isNarrowWidth;\nvar init_get_east_asian_width = __esm({\n \"node_modules/get-east-asian-width/index.js\"() {\n init_lookup();\n _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n }\n});\n\n// src/utils/get-string-width.js\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n width += _isNarrowWidth(codePoint) ? 1 : 2;\n }\n return width;\n}\nvar notAsciiRegex, get_string_width_default;\nvar init_get_string_width = __esm({\n \"src/utils/get-string-width.js\"() {\n init_emoji_regex();\n init_get_east_asian_width();\n notAsciiRegex = /[^\\x20-\\x7F]/u;\n get_string_width_default = getStringWidth;\n }\n});\n\n// src/utils/has-newline-in-range.js\nfunction hasNewlineInRange(text, startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; ++i) {\n if (text.charAt(i) === \"\\n\") {\n return true;\n }\n }\n return false;\n}\nvar has_newline_in_range_default;\nvar init_has_newline_in_range = __esm({\n \"src/utils/has-newline-in-range.js\"() {\n has_newline_in_range_default = hasNewlineInRange;\n }\n});\n\n// src/utils/has-spaces.js\nfunction hasSpaces(text, startIndex, options = {}) {\n const idx = skipSpaces(\n text,\n options.backwards ? startIndex - 1 : startIndex,\n options\n );\n return idx !== startIndex;\n}\nvar has_spaces_default;\nvar init_has_spaces = __esm({\n \"src/utils/has-spaces.js\"() {\n init_skip();\n has_spaces_default = hasSpaces;\n }\n});\n\n// scripts/build/shims/string-replace-all.js\nvar stringReplaceAll, string_replace_all_default;\nvar init_string_replace_all = __esm({\n \"scripts/build/shims/string-replace-all.js\"() {\n stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n };\n string_replace_all_default = stringReplaceAll;\n }\n});\n\n// src/utils/make-string.js\nfunction makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) {\n const otherQuote = enclosingQuote === '\"' ? \"'\" : '\"';\n const regex = /\\\\(.)|([\"'])/gsu;\n const raw = string_replace_all_default(\n /* isOptionalObject */\n false,\n rawText,\n regex,\n (match, escaped, quote) => {\n if (escaped === otherQuote) {\n return escaped;\n }\n if (quote === enclosingQuote) {\n return \"\\\\\" + quote;\n }\n if (quote) {\n return quote;\n }\n return unescapeUnnecessaryEscapes && /^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(escaped) ? escaped : \"\\\\\" + escaped;\n }\n );\n return enclosingQuote + raw + enclosingQuote;\n}\nvar make_string_default;\nvar init_make_string = __esm({\n \"src/utils/make-string.js\"() {\n init_string_replace_all();\n make_string_default = makeString;\n }\n});\n\n// src/utils/public.js\nvar public_exports = {};\n__export(public_exports, {\n addDanglingComment: () => addDanglingComment,\n addLeadingComment: () => addLeadingComment,\n addTrailingComment: () => addTrailingComment,\n getAlignmentSize: () => get_alignment_size_default,\n getIndentSize: () => get_indent_size_default,\n getMaxContinuousCount: () => get_max_continuous_count_default,\n getNextNonSpaceNonCommentCharacter: () => get_next_non_space_non_comment_character_default,\n getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex2,\n getPreferredQuote: () => get_preferred_quote_default,\n getStringWidth: () => get_string_width_default,\n hasNewline: () => has_newline_default,\n hasNewlineInRange: () => has_newline_in_range_default,\n hasSpaces: () => has_spaces_default,\n isNextLineEmpty: () => isNextLineEmpty2,\n isNextLineEmptyAfterIndex: () => is_next_line_empty_default,\n isPreviousLineEmpty: () => isPreviousLineEmpty2,\n makeString: () => make_string_default,\n skip: () => skip,\n skipEverythingButNewLine: () => skipEverythingButNewLine,\n skipInlineComment: () => skip_inline_comment_default,\n skipNewline: () => skip_newline_default,\n skipSpaces: () => skipSpaces,\n skipToLineEnd: () => skipToLineEnd,\n skipTrailingComment: () => skip_trailing_comment_default,\n skipWhitespace: () => skipWhitespace\n});\nfunction legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) {\n return get_next_non_space_non_comment_character_index_default(\n text,\n locEnd(node)\n );\n}\nfunction getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? get_next_non_space_non_comment_character_index_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments)\n );\n}\nfunction legacyIsPreviousLineEmpty(text, node, locStart) {\n return is_previous_line_empty_default(text, locStart(node));\n}\nfunction isPreviousLineEmpty2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? is_previous_line_empty_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyIsPreviousLineEmpty(...arguments)\n );\n}\nfunction legacyIsNextLineEmpty(text, node, locEnd) {\n return is_next_line_empty_default(text, locEnd(node));\n}\nfunction isNextLineEmpty2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? is_next_line_empty_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyIsNextLineEmpty(...arguments)\n );\n}\nvar init_public = __esm({\n \"src/utils/public.js\"() {\n init_get_next_non_space_non_comment_character_index();\n init_is_next_line_empty();\n init_is_previous_line_empty();\n init_utils();\n init_get_alignment_size();\n init_get_indent_size();\n init_get_max_continuous_count();\n init_get_next_non_space_non_comment_character();\n init_get_preferred_quote();\n init_get_string_width();\n init_has_newline();\n init_has_newline_in_range();\n init_has_spaces();\n init_make_string();\n init_skip();\n init_skip_inline_comment();\n init_skip_newline();\n init_skip_trailing_comment();\n }\n});\n\n// src/main/version.evaluate.cjs\nvar require_version_evaluate = __commonJS({\n \"src/main/version.evaluate.cjs\"(exports2, module2) {\n module2.exports = \"3.4.2\";\n }\n});\n\n// src/index.cjs\nvar prettierPromise = import(\"./index.mjs\");\nvar functionNames = [\n \"formatWithCursor\",\n \"format\",\n \"check\",\n \"resolveConfig\",\n \"resolveConfigFile\",\n \"clearConfigCache\",\n \"getFileInfo\",\n \"getSupportInfo\"\n];\nvar prettier = /* @__PURE__ */ Object.create(null);\nfor (const name of functionNames) {\n prettier[name] = async (...args) => {\n const prettier2 = await prettierPromise;\n return prettier2[name](...args);\n };\n}\nvar debugApiFunctionNames = [\n \"parse\",\n \"formatAST\",\n \"formatDoc\",\n \"printToDoc\",\n \"printDocToString\"\n];\nvar debugApis = /* @__PURE__ */ Object.create(null);\nfor (const name of debugApiFunctionNames) {\n debugApis[name] = async (...args) => {\n const prettier2 = await prettierPromise;\n return prettier2.__debug[name](...args);\n };\n}\nprettier.__debug = debugApis;\nif (true) {\n prettier.util = (init_public(), __toCommonJS(public_exports));\n prettier.doc = require(\"./doc.js\");\n} else {\n Object.defineProperties(prettier, {\n util: {\n get() {\n throw new Error(\n \"prettier.util is not available in development CommonJS version\"\n );\n }\n },\n doc: {\n get() {\n throw new Error(\n \"prettier.doc is not available in development CommonJS version\"\n );\n }\n }\n });\n}\nprettier.version = require_version_evaluate();\nmodule.exports = prettier;\n", "const doneWritingPromise = Symbol('doneWritingPromise');\nconst doneWritingResolve = Symbol('doneWritingResolve');\nconst doneWritingReject = Symbol('doneWritingReject');\n\nconst readingIndex = Symbol('readingIndex');\n\nclass ArrayStream extends Array {\n constructor() {\n super();\n // ES5 patch, see https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work\n Object.setPrototypeOf(this, ArrayStream.prototype);\n\n this[doneWritingPromise] = new Promise((resolve, reject) => {\n this[doneWritingResolve] = resolve;\n this[doneWritingReject] = reject;\n });\n this[doneWritingPromise].catch(() => {});\n }\n}\n\nArrayStream.prototype.getReader = function() {\n if (this[readingIndex] === undefined) {\n this[readingIndex] = 0;\n }\n return {\n read: async () => {\n await this[doneWritingPromise];\n if (this[readingIndex] === this.length) {\n return { value: undefined, done: true };\n }\n return { value: this[this[readingIndex]++], done: false };\n }\n };\n};\n\nArrayStream.prototype.readToEnd = async function(join) {\n await this[doneWritingPromise];\n const result = join(this.slice(this[readingIndex]));\n this.length = 0;\n return result;\n};\n\nArrayStream.prototype.clone = function() {\n const clone = new ArrayStream();\n clone[doneWritingPromise] = this[doneWritingPromise].then(() => {\n clone.push(...this);\n });\n return clone;\n};\n\n/**\n * Check whether data is an ArrayStream\n * @param {Any} input data to check\n * @returns {boolean}\n */\nfunction isArrayStream(input) {\n return input && input.getReader && Array.isArray(input);\n}\n\n/**\n * A wrapper class over the native WritableStreamDefaultWriter.\n * It also lets you \"write data to\" array streams instead of streams.\n * @class\n */\nfunction Writer(input) {\n if (!isArrayStream(input)) {\n const writer = input.getWriter();\n const releaseLock = writer.releaseLock;\n writer.releaseLock = () => {\n writer.closed.catch(function() {});\n releaseLock.call(writer);\n };\n return writer;\n }\n this.stream = input;\n}\n\n/**\n * Write a chunk of data.\n * @returns {Promise}\n * @async\n */\nWriter.prototype.write = async function(chunk) {\n this.stream.push(chunk);\n};\n\n/**\n * Close the stream.\n * @returns {Promise}\n * @async\n */\nWriter.prototype.close = async function() {\n this.stream[doneWritingResolve]();\n};\n\n/**\n * Error the stream.\n * @returns {Promise}\n * @async\n */\nWriter.prototype.abort = async function(reason) {\n this.stream[doneWritingReject](reason);\n return reason;\n};\n\n/**\n * Release the writer's lock.\n * @returns {undefined}\n * @async\n */\nWriter.prototype.releaseLock = function() {};\n\nexport { ArrayStream, isArrayStream, Writer, doneWritingPromise };\n", "/* eslint-disable no-prototype-builtins */\nimport { isArrayStream } from './writer.js';\nconst isNode = typeof globalThis.process === 'object' &&\n typeof globalThis.process.versions === 'object';\n\n/**\n * Check whether data is a Stream, and if so of which type\n * @param {Any} input data to check\n * @returns {'web'|'node'|'array'|'web-like'|false}\n */\nfunction isStream(input) {\n if (isArrayStream(input)) {\n return 'array';\n }\n if (globalThis.ReadableStream && globalThis.ReadableStream.prototype.isPrototypeOf(input)) {\n return 'web';\n }\n // try and detect a node native stream without having to import its class\n if (input &&\n !(globalThis.ReadableStream && input instanceof globalThis.ReadableStream) &&\n typeof input._read === 'function' && typeof input._readableState === 'object') {\n throw new Error('Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`');\n }\n if (input && input.getReader) {\n return 'web-like';\n }\n return false;\n}\n\n/**\n * Check whether data is a Uint8Array\n * @param {Any} input data to check\n * @returns {Boolean}\n */\nfunction isUint8Array(input) {\n return Uint8Array.prototype.isPrototypeOf(input);\n}\n\n/**\n * Concat Uint8Arrays\n * @param {Array} Array of Uint8Arrays to concatenate\n * @returns {Uint8array} Concatenated array\n */\nfunction concatUint8Array(arrays) {\n if (arrays.length === 1) return arrays[0];\n\n let totalLength = 0;\n for (let i = 0; i < arrays.length; i++) {\n if (!isUint8Array(arrays[i])) {\n throw new Error('concatUint8Array: Data must be in the form of a Uint8Array');\n }\n\n totalLength += arrays[i].length;\n }\n\n const result = new Uint8Array(totalLength);\n let pos = 0;\n arrays.forEach(function (element) {\n result.set(element, pos);\n pos += element.length;\n });\n\n return result;\n}\n\nexport { isNode, isStream, isArrayStream, isUint8Array, concatUint8Array };\n", "import { isUint8Array, isStream, isArrayStream } from './util.js';\nimport * as streams from './streams.js';\n\nconst doneReadingSet = new WeakSet();\n/**\n * The external buffer is used to store values that have been peeked or unshifted from the original stream.\n * Because of how streams are implemented, such values cannot be \"put back\" in the original stream,\n * but they need to be returned first when reading from the input again.\n */\nconst externalBuffer = Symbol('externalBuffer');\n\n/**\n * A wrapper class over the native ReadableStreamDefaultReader.\n * This additionally implements pushing back data on the stream, which\n * lets us implement peeking and a host of convenience functions.\n * It also lets you read data other than streams, such as a Uint8Array.\n * @class\n */\nfunction Reader(input) {\n this.stream = input;\n if (input[externalBuffer]) {\n this[externalBuffer] = input[externalBuffer].slice();\n }\n if (isArrayStream(input)) {\n const reader = input.getReader();\n this._read = reader.read.bind(reader);\n this._releaseLock = () => {};\n this._cancel = () => {};\n return;\n }\n let streamType = isStream(input);\n if (streamType) {\n const reader = input.getReader();\n this._read = reader.read.bind(reader);\n this._releaseLock = () => {\n reader.closed.catch(function() {});\n reader.releaseLock();\n };\n this._cancel = reader.cancel.bind(reader);\n return;\n }\n let doneReading = false;\n this._read = async () => {\n if (doneReading || doneReadingSet.has(input)) {\n return { value: undefined, done: true };\n }\n doneReading = true;\n return { value: input, done: false };\n };\n this._releaseLock = () => {\n if (doneReading) {\n try {\n doneReadingSet.add(input);\n } catch(e) {}\n }\n };\n}\n\n/**\n * Read a chunk of data.\n * @returns {Promise} Either { done: false, value: Uint8Array | String } or { done: true, value: undefined }\n * @async\n */\nReader.prototype.read = async function() {\n if (this[externalBuffer] && this[externalBuffer].length) {\n const value = this[externalBuffer].shift();\n return { done: false, value };\n }\n return this._read();\n};\n\n/**\n * Allow others to read the stream.\n */\nReader.prototype.releaseLock = function() {\n if (this[externalBuffer]) {\n this.stream[externalBuffer] = this[externalBuffer];\n }\n this._releaseLock();\n};\n\n/**\n * Cancel the stream.\n */\nReader.prototype.cancel = function(reason) {\n return this._cancel(reason);\n};\n\n/**\n * Read up to and including the first \\n character.\n * @returns {Promise}\n * @async\n */\nReader.prototype.readLine = async function() {\n let buffer = [];\n let returnVal;\n while (!returnVal) {\n let { done, value } = await this.read();\n value += '';\n if (done) {\n if (buffer.length) return streams.concat(buffer);\n return;\n }\n const lineEndIndex = value.indexOf('\\n') + 1;\n if (lineEndIndex) {\n returnVal = streams.concat(buffer.concat(value.substr(0, lineEndIndex)));\n buffer = [];\n }\n if (lineEndIndex !== value.length) {\n buffer.push(value.substr(lineEndIndex));\n }\n }\n this.unshift(...buffer);\n return returnVal;\n};\n\n/**\n * Read a single byte/character.\n * @returns {Promise}\n * @async\n */\nReader.prototype.readByte = async function() {\n const { done, value } = await this.read();\n if (done) return;\n const byte = value[0];\n this.unshift(streams.slice(value, 1));\n return byte;\n};\n\n/**\n * Read a specific amount of bytes/characters, unless the stream ends before that amount.\n * @returns {Promise}\n * @async\n */\nReader.prototype.readBytes = async function(length) {\n const buffer = [];\n let bufferLength = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { done, value } = await this.read();\n if (done) {\n if (buffer.length) return streams.concat(buffer);\n return;\n }\n buffer.push(value);\n bufferLength += value.length;\n if (bufferLength >= length) {\n const bufferConcat = streams.concat(buffer);\n this.unshift(streams.slice(bufferConcat, length));\n return streams.slice(bufferConcat, 0, length);\n }\n }\n};\n\n/**\n * Peek (look ahead) a specific amount of bytes/characters, unless the stream ends before that amount.\n * @returns {Promise}\n * @async\n */\nReader.prototype.peekBytes = async function(length) {\n const bytes = await this.readBytes(length);\n this.unshift(bytes);\n return bytes;\n};\n\n/**\n * Push data to the front of the stream.\n * Data must have been read in the last call to read*.\n * @param {...(Uint8Array|String|Undefined)} values\n */\nReader.prototype.unshift = function(...values) {\n if (!this[externalBuffer]) {\n this[externalBuffer] = [];\n }\n if (\n values.length === 1 && isUint8Array(values[0]) &&\n this[externalBuffer].length && values[0].length &&\n this[externalBuffer][0].byteOffset >= values[0].length\n ) {\n this[externalBuffer][0] = new Uint8Array(\n this[externalBuffer][0].buffer,\n this[externalBuffer][0].byteOffset - values[0].length,\n this[externalBuffer][0].byteLength + values[0].length\n );\n return;\n }\n this[externalBuffer].unshift(...values.filter(value => value && value.length));\n};\n\n/**\n * Read the stream to the end and return its contents, concatenated by the join function (defaults to streams.concat).\n * @param {Function} join\n * @returns {Promise} the return value of join()\n * @async\n */\nReader.prototype.readToEnd = async function(join=streams.concat) {\n const result = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { done, value } = await this.read();\n if (done) break;\n result.push(value);\n }\n return join(result);\n};\n\nexport { Reader, externalBuffer };\n", "import { isStream, isArrayStream, isUint8Array, concatUint8Array } from './util.js';\nimport { Reader, externalBuffer } from './reader.js';\nimport { ArrayStream, Writer } from './writer.js';\n\n/**\n * Convert data to Stream\n * @param {ReadableStream|Uint8array|String} input data to convert\n * @returns {ReadableStream} Converted data\n */\nfunction toStream(input) {\n let streamType = isStream(input);\n if (streamType) {\n return input;\n }\n return new ReadableStream({\n start(controller) {\n controller.enqueue(input);\n controller.close();\n }\n });\n}\n\n/**\n * Convert non-streamed data to ArrayStream; this is a noop if `input` is already a stream.\n * @param {Object} input data to convert\n * @returns {ArrayStream} Converted data\n */\nfunction toArrayStream(input) {\n if (isStream(input)) {\n return input;\n }\n const stream = new ArrayStream();\n (async () => {\n const writer = getWriter(stream);\n await writer.write(input);\n await writer.close();\n })();\n return stream;\n}\n\n/**\n * Concat a list of Uint8Arrays, Strings or Streams\n * The caller should not mix Uint8Arrays with Strings, but may mix Streams with non-Streams.\n * @param {Array} Array of Uint8Arrays/Strings/Streams to concatenate\n * @returns {Uint8array|String|ReadableStream} Concatenated array\n */\nfunction concat(list) {\n if (list.some(stream => isStream(stream) && !isArrayStream(stream))) {\n return concatStream(list);\n }\n if (list.some(stream => isArrayStream(stream))) {\n return concatArrayStream(list);\n }\n if (typeof list[0] === 'string') {\n return list.join('');\n }\n return concatUint8Array(list);\n}\n\n/**\n * Concat a list of Streams\n * @param {Array} list Array of Uint8Arrays/Strings/Streams to concatenate\n * @returns {ReadableStream} Concatenated list\n */\nfunction concatStream(list) {\n list = list.map(toStream);\n const transform = transformWithCancel(async function(reason) {\n await Promise.all(transforms.map(stream => cancel(stream, reason)));\n });\n let prev = Promise.resolve();\n const transforms = list.map((stream, i) => transformPair(stream, (readable, writable) => {\n prev = prev.then(() => pipe(readable, transform.writable, {\n preventClose: i !== list.length - 1\n }));\n return prev;\n }));\n return transform.readable;\n}\n\n/**\n * Concat a list of ArrayStreams\n * @param {Array} list Array of Uint8Arrays/Strings/ArrayStreams to concatenate\n * @returns {ArrayStream} Concatenated streams\n */\nfunction concatArrayStream(list) {\n const result = new ArrayStream();\n let prev = Promise.resolve();\n list.forEach((stream, i) => {\n prev = prev.then(() => pipe(stream, result, {\n preventClose: i !== list.length - 1\n }));\n return prev;\n });\n return result;\n}\n\n/**\n * Pipe a readable stream to a writable stream. Don't throw on input stream errors, but forward them to the output stream.\n * @param {ReadableStream|Uint8array|String} input\n * @param {WritableStream} target\n * @param {Object} (optional) options\n * @returns {Promise} Promise indicating when piping has finished (input stream closed or errored)\n * @async\n */\nasync function pipe(input, target, {\n preventClose = false,\n preventAbort = false,\n preventCancel = false\n} = {}) {\n if (isStream(input) && !isArrayStream(input)) {\n input = toStream(input);\n try {\n if (input[externalBuffer]) {\n const writer = getWriter(target);\n for (let i = 0; i < input[externalBuffer].length; i++) {\n await writer.ready;\n await writer.write(input[externalBuffer][i]);\n }\n writer.releaseLock();\n }\n await input.pipeTo(target, {\n preventClose,\n preventAbort,\n preventCancel\n });\n } catch(e) {}\n return;\n }\n input = toArrayStream(input);\n const reader = getReader(input);\n const writer = getWriter(target);\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n await writer.ready;\n const { done, value } = await reader.read();\n if (done) {\n if (!preventClose) await writer.close();\n break;\n }\n await writer.write(value);\n }\n } catch (e) {\n if (!preventAbort) await writer.abort(e);\n } finally {\n reader.releaseLock();\n writer.releaseLock();\n }\n}\n\n/**\n * Pipe a readable stream through a transform stream.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Object} (optional) options\n * @returns {ReadableStream} transformed stream\n */\nfunction transformRaw(input, options) {\n const transformStream = new TransformStream(options);\n pipe(input, transformStream.writable);\n return transformStream.readable;\n}\n\n/**\n * Create a cancelable TransformStream.\n * @param {Function} cancel\n * @returns {TransformStream}\n */\nfunction transformWithCancel(customCancel) {\n let pulled = false;\n let cancelled = false;\n let backpressureChangePromiseResolve, backpressureChangePromiseReject;\n let outputController;\n return {\n readable: new ReadableStream({\n start(controller) {\n outputController = controller;\n },\n pull() {\n if (backpressureChangePromiseResolve) {\n backpressureChangePromiseResolve();\n } else {\n pulled = true;\n }\n },\n async cancel(reason) {\n cancelled = true;\n if (customCancel) {\n await customCancel(reason);\n }\n if (backpressureChangePromiseReject) {\n backpressureChangePromiseReject(reason);\n }\n }\n }, {highWaterMark: 0}),\n writable: new WritableStream({\n write: async function(chunk) {\n if (cancelled) {\n throw new Error('Stream is cancelled');\n }\n outputController.enqueue(chunk);\n if (!pulled) {\n await new Promise((resolve, reject) => {\n backpressureChangePromiseResolve = resolve;\n backpressureChangePromiseReject = reject;\n });\n backpressureChangePromiseResolve = null;\n backpressureChangePromiseReject = null;\n } else {\n pulled = false;\n }\n },\n close: outputController.close.bind(outputController),\n abort: outputController.error.bind(outputController)\n })\n };\n}\n\n/**\n * Transform a stream using helper functions which are called on each chunk, and on stream close, respectively.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} process\n * @param {Function} finish\n * @returns {ReadableStream|Uint8array|String}\n */\nfunction transform(input, process = () => undefined, finish = () => undefined) {\n if (isArrayStream(input)) {\n const output = new ArrayStream();\n (async () => {\n const writer = getWriter(output);\n try {\n const data = await readToEnd(input);\n const result1 = process(data);\n const result2 = finish();\n let result;\n if (result1 !== undefined && result2 !== undefined) result = concat([result1, result2]);\n else result = result1 !== undefined ? result1 : result2;\n await writer.write(result);\n await writer.close();\n } catch (e) {\n await writer.abort(e);\n }\n })();\n return output;\n }\n if (isStream(input)) {\n return transformRaw(input, {\n async transform(value, controller) {\n try {\n const result = await process(value);\n if (result !== undefined) controller.enqueue(result);\n } catch(e) {\n controller.error(e);\n }\n },\n async flush(controller) {\n try {\n const result = await finish();\n if (result !== undefined) controller.enqueue(result);\n } catch(e) {\n controller.error(e);\n }\n }\n });\n }\n const result1 = process(input);\n const result2 = finish();\n if (result1 !== undefined && result2 !== undefined) return concat([result1, result2]);\n return result1 !== undefined ? result1 : result2;\n}\n\n/**\n * Transform a stream using a helper function which is passed a readable and a writable stream.\n * This function also maintains the possibility to cancel the input stream,\n * and does so on cancelation of the output stream, despite cancelation\n * normally being impossible when the input stream is being read from.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} fn\n * @returns {ReadableStream}\n */\nfunction transformPair(input, fn) {\n if (isStream(input) && !isArrayStream(input)) {\n let incomingTransformController;\n const incoming = new TransformStream({\n start(controller) {\n incomingTransformController = controller;\n }\n });\n\n const pipeDonePromise = pipe(input, incoming.writable);\n\n const outgoing = transformWithCancel(async function(reason) {\n incomingTransformController.error(reason);\n await pipeDonePromise;\n await new Promise(setTimeout);\n });\n fn(incoming.readable, outgoing.writable);\n return outgoing.readable;\n }\n input = toArrayStream(input);\n const output = new ArrayStream();\n fn(input, output);\n return output;\n}\n\n/**\n * Parse a stream using a helper function which is passed a Reader.\n * The reader additionally has a remainder() method which returns a\n * stream pointing to the remainder of input, and is linked to input\n * for cancelation.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} fn\n * @returns {Any} the return value of fn()\n */\nfunction parse(input, fn) {\n let returnValue;\n const transformed = transformPair(input, (readable, writable) => {\n const reader = getReader(readable);\n reader.remainder = () => {\n reader.releaseLock();\n pipe(readable, writable);\n return transformed;\n };\n returnValue = fn(reader);\n });\n return returnValue;\n}\n\n/**\n * Tee a Stream for reading it twice. The input stream can no longer be read after tee()ing.\n * Reading either of the two returned streams will pull from the input stream.\n * The input stream will only be canceled if both of the returned streams are canceled.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {Array} array containing two copies of input\n */\nfunction tee(input) {\n if (isArrayStream(input)) {\n throw new Error('ArrayStream cannot be tee()d, use clone() instead');\n }\n if (isStream(input)) {\n const teed = toStream(input).tee();\n teed[0][externalBuffer] = teed[1][externalBuffer] = input[externalBuffer];\n return teed;\n }\n return [slice(input), slice(input)];\n}\n\n/**\n * Clone a Stream for reading it twice. The input stream can still be read after clone()ing.\n * Reading from the clone will pull from the input stream.\n * The input stream will only be canceled if both the clone and the input stream are canceled.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {ReadableStream|Uint8array|String} cloned input\n */\nfunction clone(input) {\n if (isArrayStream(input)) {\n return input.clone();\n }\n if (isStream(input)) {\n const teed = tee(input);\n overwrite(input, teed[0]);\n return teed[1];\n }\n return slice(input);\n}\n\n/**\n * Clone a Stream for reading it twice. Data will arrive at the same rate as the input stream is being read.\n * Reading from the clone will NOT pull from the input stream. Data only arrives when reading the input stream.\n * The input stream will NOT be canceled if the clone is canceled, only if the input stream are canceled.\n * If the input stream is canceled, the clone will be errored.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {ReadableStream|Uint8array|String} cloned input\n */\nfunction passiveClone(input) {\n if (isArrayStream(input)) {\n return clone(input);\n }\n if (isStream(input)) {\n return new ReadableStream({\n start(controller) {\n const transformed = transformPair(input, async (readable, writable) => {\n const reader = getReader(readable);\n const writer = getWriter(writable);\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n await writer.ready;\n const { done, value } = await reader.read();\n if (done) {\n try { controller.close(); } catch(e) {}\n await writer.close();\n return;\n }\n try { controller.enqueue(value); } catch(e) {}\n await writer.write(value);\n }\n } catch(e) {\n controller.error(e);\n await writer.abort(e);\n }\n });\n overwrite(input, transformed);\n }\n });\n }\n return slice(input);\n}\n\n/**\n * Modify a stream object to point to a different stream object.\n * This is used internally by clone() and passiveClone() to provide an abstraction over tee().\n * @param {ReadableStream} input\n * @param {ReadableStream} clone\n */\nfunction overwrite(input, clone) {\n // Overwrite input.getReader, input.locked, etc to point to clone\n Object.entries(Object.getOwnPropertyDescriptors(input.constructor.prototype)).forEach(([name, descriptor]) => {\n if (name === 'constructor') {\n return;\n }\n if (descriptor.value) {\n descriptor.value = descriptor.value.bind(clone);\n } else {\n descriptor.get = descriptor.get.bind(clone);\n }\n Object.defineProperty(input, name, descriptor);\n });\n}\n\n/**\n * Return a stream pointing to a part of the input stream.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {ReadableStream|Uint8array|String} clone\n */\nfunction slice(input, begin=0, end=Infinity) {\n if (isArrayStream(input)) {\n throw new Error('Not implemented');\n }\n if (isStream(input)) {\n if (begin >= 0 && end >= 0) {\n let bytesRead = 0;\n return transformRaw(input, {\n transform(value, controller) {\n if (bytesRead < end) {\n if (bytesRead + value.length >= begin) {\n controller.enqueue(slice(value, Math.max(begin - bytesRead, 0), end - bytesRead));\n }\n bytesRead += value.length;\n } else {\n controller.terminate();\n }\n }\n });\n }\n if (begin < 0 && (end < 0 || end === Infinity)) {\n let lastBytes = [];\n return transform(input, value => {\n if (value.length >= -begin) lastBytes = [value];\n else lastBytes.push(value);\n }, () => slice(concat(lastBytes), begin, end));\n }\n if (begin === 0 && end < 0) {\n let lastBytes;\n return transform(input, value => {\n const returnValue = lastBytes ? concat([lastBytes, value]) : value;\n if (returnValue.length >= -end) {\n lastBytes = slice(returnValue, end);\n return slice(returnValue, begin, end);\n }\n lastBytes = returnValue;\n });\n }\n console.warn(`stream.slice(input, ${begin}, ${end}) not implemented efficiently.`);\n return fromAsync(async () => slice(await readToEnd(input), begin, end));\n }\n if (input[externalBuffer]) {\n input = concat(input[externalBuffer].concat([input]));\n }\n if (isUint8Array(input)) {\n return input.subarray(begin, end === Infinity ? input.length : end);\n }\n return input.slice(begin, end);\n}\n\n/**\n * Read a stream to the end and return its contents, concatenated by the join function (defaults to concat).\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} join\n * @returns {Promise} the return value of join()\n * @async\n */\nasync function readToEnd(input, join=concat) {\n if (isArrayStream(input)) {\n return input.readToEnd(join);\n }\n if (isStream(input)) {\n return getReader(input).readToEnd(join);\n }\n return input;\n}\n\n/**\n * Cancel a stream.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Any} reason\n * @returns {Promise} indicates when the stream has been canceled\n * @async\n */\nasync function cancel(input, reason) {\n if (isStream(input)) {\n if (input.cancel) {\n const cancelled = await input.cancel(reason);\n // the stream is not always cancelled at this point, so we wait some more\n await new Promise(setTimeout);\n return cancelled;\n }\n if (input.destroy) {\n input.destroy(reason);\n await new Promise(setTimeout);\n return reason;\n }\n }\n}\n\n/**\n * Convert an async function to an ArrayStream. When the function returns, its return value is written to the stream.\n * @param {Function} fn\n * @returns {ArrayStream}\n */\nfunction fromAsync(fn) {\n const arrayStream = new ArrayStream();\n (async () => {\n const writer = getWriter(arrayStream);\n try {\n await writer.write(await fn());\n await writer.close();\n } catch (e) {\n await writer.abort(e);\n }\n })();\n return arrayStream;\n}\n\n/**\n * Get a Reader\n * @param {ReadableStream|Uint8array|String} input\n * @returns {Reader}\n */\nfunction getReader(input) {\n return new Reader(input);\n}\n\n/**\n * Get a Writer\n * @param {WritableStream} input\n * @returns {Writer}\n */\nfunction getWriter(input) {\n return new Writer(input);\n}\n\n\nexport {\n ArrayStream,\n toStream,\n concatStream,\n concat,\n getReader,\n getWriter,\n pipe,\n transformRaw,\n transform,\n transformPair,\n parse,\n clone,\n passiveClone,\n slice,\n readToEnd,\n cancel,\n fromAsync\n};\n", "/**\n * @module enums\n */\n\nconst byValue = Symbol('byValue');\n\nexport default {\n\n /** Maps curve names under various standards to one\n * @see {@link https://wiki.gnupg.org/ECC|ECC - GnuPG wiki}\n * @enum {String}\n * @readonly\n */\n curve: {\n /** NIST P-256 Curve */\n 'nistP256': 'nistP256',\n /** @deprecated use `nistP256` instead */\n 'p256': 'nistP256',\n\n /** NIST P-384 Curve */\n 'nistP384': 'nistP384',\n /** @deprecated use `nistP384` instead */\n 'p384': 'nistP384',\n\n /** NIST P-521 Curve */\n 'nistP521': 'nistP521',\n /** @deprecated use `nistP521` instead */\n 'p521': 'nistP521',\n\n /** SECG SECP256k1 Curve */\n 'secp256k1': 'secp256k1',\n\n /** Ed25519 - deprecated by crypto-refresh (replaced by standaone Ed25519 algo) */\n 'ed25519Legacy': 'ed25519Legacy',\n /** @deprecated use `ed25519Legacy` instead */\n 'ed25519': 'ed25519Legacy',\n\n /** Curve25519 - deprecated by crypto-refresh (replaced by standaone X25519 algo) */\n 'curve25519Legacy': 'curve25519Legacy',\n /** @deprecated use `curve25519Legacy` instead */\n 'curve25519': 'curve25519Legacy',\n\n /** BrainpoolP256r1 Curve */\n 'brainpoolP256r1': 'brainpoolP256r1',\n\n /** BrainpoolP384r1 Curve */\n 'brainpoolP384r1': 'brainpoolP384r1',\n\n /** BrainpoolP512r1 Curve */\n 'brainpoolP512r1': 'brainpoolP512r1'\n },\n\n /** A string to key specifier type\n * @enum {Integer}\n * @readonly\n */\n s2k: {\n simple: 0,\n salted: 1,\n iterated: 3,\n argon2: 4,\n gnu: 101\n },\n\n /** {@link https://tools.ietf.org/html/draft-ietf-openpgp-crypto-refresh-08.html#section-9.1|crypto-refresh RFC, section 9.1}\n * @enum {Integer}\n * @readonly\n */\n publicKey: {\n /** RSA (Encrypt or Sign) [HAC] */\n rsaEncryptSign: 1,\n /** RSA (Encrypt only) [HAC] */\n rsaEncrypt: 2,\n /** RSA (Sign only) [HAC] */\n rsaSign: 3,\n /** Elgamal (Encrypt only) [ELGAMAL] [HAC] */\n elgamal: 16,\n /** DSA (Sign only) [FIPS186] [HAC] */\n dsa: 17,\n /** ECDH (Encrypt only) [RFC6637] */\n ecdh: 18,\n /** ECDSA (Sign only) [RFC6637] */\n ecdsa: 19,\n /** EdDSA (Sign only) - deprecated by crypto-refresh (replaced by `ed25519` identifier below)\n * [{@link https://tools.ietf.org/html/draft-koch-eddsa-for-openpgp-04|Draft RFC}] */\n eddsaLegacy: 22,\n /** Reserved for AEDH */\n aedh: 23,\n /** Reserved for AEDSA */\n aedsa: 24,\n /** X25519 (Encrypt only) */\n x25519: 25,\n /** X448 (Encrypt only) */\n x448: 26,\n /** Ed25519 (Sign only) */\n ed25519: 27,\n /** Ed448 (Sign only) */\n ed448: 28\n },\n\n /** {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC4880, section 9.2}\n * @enum {Integer}\n * @readonly\n */\n symmetric: {\n /** Not implemented! */\n idea: 1,\n tripledes: 2,\n cast5: 3,\n blowfish: 4,\n aes128: 7,\n aes192: 8,\n aes256: 9,\n twofish: 10\n },\n\n /** {@link https://tools.ietf.org/html/rfc4880#section-9.3|RFC4880, section 9.3}\n * @enum {Integer}\n * @readonly\n */\n compression: {\n uncompressed: 0,\n /** RFC1951 */\n zip: 1,\n /** RFC1950 */\n zlib: 2,\n bzip2: 3\n },\n\n /** {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC4880, section 9.4}\n * @enum {Integer}\n * @readonly\n */\n hash: {\n md5: 1,\n sha1: 2,\n ripemd: 3,\n sha256: 8,\n sha384: 9,\n sha512: 10,\n sha224: 11,\n sha3_256: 12,\n sha3_512: 14\n },\n\n /** A list of hash names as accepted by webCrypto functions.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest|Parameters, algo}\n * @enum {String}\n */\n webHash: {\n 'SHA-1': 2,\n 'SHA-256': 8,\n 'SHA-384': 9,\n 'SHA-512': 10\n },\n\n /** {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-9.6|RFC4880bis-04, section 9.6}\n * @enum {Integer}\n * @readonly\n */\n aead: {\n eax: 1,\n ocb: 2,\n gcm: 3,\n experimentalGCM: 100 // Private algorithm\n },\n\n /** A list of packet types and numeric tags associated with them.\n * @enum {Integer}\n * @readonly\n */\n packet: {\n publicKeyEncryptedSessionKey: 1,\n signature: 2,\n symEncryptedSessionKey: 3,\n onePassSignature: 4,\n secretKey: 5,\n publicKey: 6,\n secretSubkey: 7,\n compressedData: 8,\n symmetricallyEncryptedData: 9,\n marker: 10,\n literalData: 11,\n trust: 12,\n userID: 13,\n publicSubkey: 14,\n userAttribute: 17,\n symEncryptedIntegrityProtectedData: 18,\n modificationDetectionCode: 19,\n aeadEncryptedData: 20, // see IETF draft: https://tools.ietf.org/html/draft-ford-openpgp-format-00#section-2.1\n padding: 21\n },\n\n /** Data types in the literal packet\n * @enum {Integer}\n * @readonly\n */\n literal: {\n /** Binary data 'b' */\n binary: 'b'.charCodeAt(),\n /** Text data 't' */\n text: 't'.charCodeAt(),\n /** Utf8 data 'u' */\n utf8: 'u'.charCodeAt(),\n /** MIME message body part 'm' */\n mime: 'm'.charCodeAt()\n },\n\n\n /** One pass signature packet type\n * @enum {Integer}\n * @readonly\n */\n signature: {\n /** 0x00: Signature of a binary document. */\n binary: 0,\n /** 0x01: Signature of a canonical text document.\n *\n * Canonicalyzing the document by converting line endings. */\n text: 1,\n /** 0x02: Standalone signature.\n *\n * This signature is a signature of only its own subpacket contents.\n * It is calculated identically to a signature over a zero-lengh\n * binary document. Note that it doesn't make sense to have a V3\n * standalone signature. */\n standalone: 2,\n /** 0x10: Generic certification of a User ID and Public-Key packet.\n *\n * The issuer of this certification does not make any particular\n * assertion as to how well the certifier has checked that the owner\n * of the key is in fact the person described by the User ID. */\n certGeneric: 16,\n /** 0x11: Persona certification of a User ID and Public-Key packet.\n *\n * The issuer of this certification has not done any verification of\n * the claim that the owner of this key is the User ID specified. */\n certPersona: 17,\n /** 0x12: Casual certification of a User ID and Public-Key packet.\n *\n * The issuer of this certification has done some casual\n * verification of the claim of identity. */\n certCasual: 18,\n /** 0x13: Positive certification of a User ID and Public-Key packet.\n *\n * The issuer of this certification has done substantial\n * verification of the claim of identity.\n *\n * Most OpenPGP implementations make their \"key signatures\" as 0x10\n * certifications. Some implementations can issue 0x11-0x13\n * certifications, but few differentiate between the types. */\n certPositive: 19,\n /** 0x30: Certification revocation signature\n *\n * This signature revokes an earlier User ID certification signature\n * (signature class 0x10 through 0x13) or direct-key signature\n * (0x1F). It should be issued by the same key that issued the\n * revoked signature or an authorized revocation key. The signature\n * is computed over the same data as the certificate that it\n * revokes, and should have a later creation date than that\n * certificate. */\n certRevocation: 48,\n /** 0x18: Subkey Binding Signature\n *\n * This signature is a statement by the top-level signing key that\n * indicates that it owns the subkey. This signature is calculated\n * directly on the primary key and subkey, and not on any User ID or\n * other packets. A signature that binds a signing subkey MUST have\n * an Embedded Signature subpacket in this binding signature that\n * contains a 0x19 signature made by the signing subkey on the\n * primary key and subkey. */\n subkeyBinding: 24,\n /** 0x19: Primary Key Binding Signature\n *\n * This signature is a statement by a signing subkey, indicating\n * that it is owned by the primary key and subkey. This signature\n * is calculated the same way as a 0x18 signature: directly on the\n * primary key and subkey, and not on any User ID or other packets.\n *\n * When a signature is made over a key, the hash data starts with the\n * octet 0x99, followed by a two-octet length of the key, and then body\n * of the key packet. (Note that this is an old-style packet header for\n * a key packet with two-octet length.) A subkey binding signature\n * (type 0x18) or primary key binding signature (type 0x19) then hashes\n * the subkey using the same format as the main key (also using 0x99 as\n * the first octet). */\n keyBinding: 25,\n /** 0x1F: Signature directly on a key\n *\n * This signature is calculated directly on a key. It binds the\n * information in the Signature subpackets to the key, and is\n * appropriate to be used for subpackets that provide information\n * about the key, such as the Revocation Key subpacket. It is also\n * appropriate for statements that non-self certifiers want to make\n * about the key itself, rather than the binding between a key and a\n * name. */\n key: 31,\n /** 0x20: Key revocation signature\n *\n * The signature is calculated directly on the key being revoked. A\n * revoked key is not to be used. Only revocation signatures by the\n * key being revoked, or by an authorized revocation key, should be\n * considered valid revocation signatures.a */\n keyRevocation: 32,\n /** 0x28: Subkey revocation signature\n *\n * The signature is calculated directly on the subkey being revoked.\n * A revoked subkey is not to be used. Only revocation signatures\n * by the top-level signature key that is bound to this subkey, or\n * by an authorized revocation key, should be considered valid\n * revocation signatures.\n *\n * Key revocation signatures (types 0x20 and 0x28)\n * hash only the key being revoked. */\n subkeyRevocation: 40,\n /** 0x40: Timestamp signature.\n * This signature is only meaningful for the timestamp contained in\n * it. */\n timestamp: 64,\n /** 0x50: Third-Party Confirmation signature.\n *\n * This signature is a signature over some other OpenPGP Signature\n * packet(s). It is analogous to a notary seal on the signed data.\n * A third-party signature SHOULD include Signature Target\n * subpacket(s) to give easy identification. Note that we really do\n * mean SHOULD. There are plausible uses for this (such as a blind\n * party that only sees the signature, not the key or source\n * document) that cannot include a target subpacket. */\n thirdParty: 80\n },\n\n /** Signature subpacket type\n * @enum {Integer}\n * @readonly\n */\n signatureSubpacket: {\n signatureCreationTime: 2,\n signatureExpirationTime: 3,\n exportableCertification: 4,\n trustSignature: 5,\n regularExpression: 6,\n revocable: 7,\n keyExpirationTime: 9,\n placeholderBackwardsCompatibility: 10,\n preferredSymmetricAlgorithms: 11,\n revocationKey: 12,\n issuerKeyID: 16,\n notationData: 20,\n preferredHashAlgorithms: 21,\n preferredCompressionAlgorithms: 22,\n keyServerPreferences: 23,\n preferredKeyServer: 24,\n primaryUserID: 25,\n policyURI: 26,\n keyFlags: 27,\n signersUserID: 28,\n reasonForRevocation: 29,\n features: 30,\n signatureTarget: 31,\n embeddedSignature: 32,\n issuerFingerprint: 33,\n preferredAEADAlgorithms: 34,\n preferredCipherSuites: 39\n },\n\n /** Key flags\n * @enum {Integer}\n * @readonly\n */\n keyFlags: {\n /** 0x01 - This key may be used to certify other keys. */\n certifyKeys: 1,\n /** 0x02 - This key may be used to sign data. */\n signData: 2,\n /** 0x04 - This key may be used to encrypt communications. */\n encryptCommunication: 4,\n /** 0x08 - This key may be used to encrypt storage. */\n encryptStorage: 8,\n /** 0x10 - The private component of this key may have been split\n * by a secret-sharing mechanism. */\n splitPrivateKey: 16,\n /** 0x20 - This key may be used for authentication. */\n authentication: 32,\n /** 0x80 - The private component of this key may be in the\n * possession of more than one person. */\n sharedPrivateKey: 128\n },\n\n /** Armor type\n * @enum {Integer}\n * @readonly\n */\n armor: {\n multipartSection: 0,\n multipartLast: 1,\n signed: 2,\n message: 3,\n publicKey: 4,\n privateKey: 5,\n signature: 6\n },\n\n /** {@link https://tools.ietf.org/html/rfc4880#section-5.2.3.23|RFC4880, section 5.2.3.23}\n * @enum {Integer}\n * @readonly\n */\n reasonForRevocation: {\n /** No reason specified (key revocations or cert revocations) */\n noReason: 0,\n /** Key is superseded (key revocations) */\n keySuperseded: 1,\n /** Key material has been compromised (key revocations) */\n keyCompromised: 2,\n /** Key is retired and no longer used (key revocations) */\n keyRetired: 3,\n /** User ID information is no longer valid (cert revocations) */\n userIDInvalid: 32\n },\n\n /** {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.2.3.25|RFC4880bis-04, section 5.2.3.25}\n * @enum {Integer}\n * @readonly\n */\n features: {\n /** 0x01 - Modification Detection (packets 18 and 19) */\n modificationDetection: 1,\n /** 0x02 - AEAD Encrypted Data Packet (packet 20) and version 5\n * Symmetric-Key Encrypted Session Key Packets (packet 3) */\n aead: 2,\n /** 0x04 - Version 5 Public-Key Packet format and corresponding new\n * fingerprint format */\n v5Keys: 4,\n seipdv2: 8\n },\n\n /**\n * Asserts validity of given value and converts from string/integer to integer.\n * @param {Object} type target enum type\n * @param {String|Integer} e value to check and/or convert\n * @returns {Integer} enum value if it exists\n * @throws {Error} if the value is invalid\n */\n write: function(type, e) {\n if (typeof e === 'number') {\n e = this.read(type, e);\n }\n\n if (type[e] !== undefined) {\n return type[e];\n }\n\n throw new Error('Invalid enum value.');\n },\n\n /**\n * Converts enum integer value to the corresponding string, if it exists.\n * @param {Object} type target enum type\n * @param {Integer} e value to convert\n * @returns {String} name of enum value if it exists\n * @throws {Error} if the value is invalid\n */\n read: function(type, e) {\n if (!type[byValue]) {\n type[byValue] = [];\n Object.entries(type).forEach(([key, value]) => {\n type[byValue][value] = key;\n });\n }\n\n if (type[byValue][e] !== undefined) {\n return type[byValue][e];\n }\n\n throw new Error('Invalid enum value.');\n }\n};\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * Global configuration values.\n */\n\nimport enums from '../enums';\n\nexport default {\n /**\n * @memberof module:config\n * @property {Integer} preferredHashAlgorithm Default hash algorithm {@link module:enums.hash}\n */\n preferredHashAlgorithm: enums.hash.sha512,\n /**\n * @memberof module:config\n * @property {Integer} preferredSymmetricAlgorithm Default encryption cipher {@link module:enums.symmetric}\n */\n preferredSymmetricAlgorithm: enums.symmetric.aes256,\n /**\n * @memberof module:config\n * @property {Integer} compression Default compression algorithm {@link module:enums.compression}\n */\n preferredCompressionAlgorithm: enums.compression.uncompressed,\n /**\n * Use Authenticated Encryption with Additional Data (AEAD) protection for symmetric encryption.\n * This option is applicable to:\n * - key generation (encryption key preferences),\n * - password-based message encryption, and\n * - private key encryption.\n * In the case of message encryption using public keys, the encryption key preferences are respected instead.\n * Note: not all OpenPGP implementations are compatible with this option.\n * @see {@link https://tools.ietf.org/html/draft-ietf-openpgp-crypto-refresh-10.html|draft-crypto-refresh-10}\n * @memberof module:config\n * @property {Boolean} aeadProtect\n */\n aeadProtect: false,\n /**\n * When reading OpenPGP v4 private keys (e.g. those generated in OpenPGP.js when not setting `config.v5Keys = true`)\n * which were encrypted by OpenPGP.js v5 (or older) using `config.aeadProtect = true`,\n * this option must be set, otherwise key parsing and/or key decryption will fail.\n * Note: only set this flag if you know that the keys are of the legacy type, as non-legacy keys\n * will be processed incorrectly.\n */\n parseAEADEncryptedV4KeysAsLegacy: false,\n /**\n * Default Authenticated Encryption with Additional Data (AEAD) encryption mode\n * Only has an effect when aeadProtect is set to true.\n * @memberof module:config\n * @property {Integer} preferredAEADAlgorithm Default AEAD mode {@link module:enums.aead}\n */\n preferredAEADAlgorithm: enums.aead.gcm,\n /**\n * Chunk Size Byte for Authenticated Encryption with Additional Data (AEAD) mode\n * Only has an effect when aeadProtect is set to true.\n * Must be an integer value from 0 to 56.\n * @memberof module:config\n * @property {Integer} aeadChunkSizeByte\n */\n aeadChunkSizeByte: 12,\n /**\n * Use v6 keys.\n * Note: not all OpenPGP implementations are compatible with this option.\n * **FUTURE OPENPGP.JS VERSIONS MAY BREAK COMPATIBILITY WHEN USING THIS OPTION**\n * @memberof module:config\n * @property {Boolean} v6Keys\n */\n v6Keys: false,\n /**\n * Enable parsing v5 keys and v5 signatures (which is different from the AEAD-encrypted SEIPDv2 packet).\n * These are non-standard entities, which in the crypto-refresh have been superseded\n * by v6 keys and v6 signatures, respectively.\n * However, generation of v5 entities was supported behind config flag in OpenPGP.js v5, and some other libraries,\n * hence parsing them might be necessary in some cases.\n */\n enableParsingV5Entities: false,\n /**\n * S2K (String to Key) type, used for key derivation in the context of secret key encryption\n * and password-encrypted data. Weaker s2k options are not allowed.\n * Note: Argon2 is the strongest option but not all OpenPGP implementations are compatible with it\n * (pending standardisation).\n * @memberof module:config\n * @property {enums.s2k.argon2|enums.s2k.iterated} s2kType {@link module:enums.s2k}\n */\n s2kType: enums.s2k.iterated,\n /**\n * {@link https://tools.ietf.org/html/rfc4880#section-3.7.1.3| RFC4880 3.7.1.3}:\n * Iteration Count Byte for Iterated and Salted S2K (String to Key).\n * Only relevant if `config.s2kType` is set to `enums.s2k.iterated`.\n * Note: this is the exponent value, not the final number of iterations (refer to specs for more details).\n * @memberof module:config\n * @property {Integer} s2kIterationCountByte\n */\n s2kIterationCountByte: 224,\n /**\n * {@link https://tools.ietf.org/html/draft-ietf-openpgp-crypto-refresh-07.html#section-3.7.1.4| draft-crypto-refresh 3.7.1.4}:\n * Argon2 parameters for S2K (String to Key).\n * Only relevant if `config.s2kType` is set to `enums.s2k.argon2`.\n * Default settings correspond to the second recommendation from RFC9106 (\"uniformly safe option\"),\n * to ensure compatibility with memory-constrained environments.\n * For more details on the choice of parameters, see https://tools.ietf.org/html/rfc9106#section-4.\n * @memberof module:config\n * @property {Object} params\n * @property {Integer} params.passes - number of iterations t\n * @property {Integer} params.parallelism - degree of parallelism p\n * @property {Integer} params.memoryExponent - one-octet exponent indicating the memory size, which will be: 2**memoryExponent kibibytes.\n */\n s2kArgon2Params: {\n passes: 3,\n parallelism: 4, // lanes\n memoryExponent: 16 // 64 MiB of RAM\n },\n /**\n * Allow decryption of messages without integrity protection.\n * This is an **insecure** setting:\n * - message modifications cannot be detected, thus processing the decrypted data is potentially unsafe.\n * - it enables downgrade attacks against integrity-protected messages.\n * @memberof module:config\n * @property {Boolean} allowUnauthenticatedMessages\n */\n allowUnauthenticatedMessages: false,\n /**\n * Allow streaming unauthenticated data before its integrity has been checked. This would allow the application to\n * process large streams while limiting memory usage by releasing the decrypted chunks as soon as possible\n * and deferring checking their integrity until the decrypted stream has been read in full.\n *\n * This setting is **insecure** if the encrypted data has been corrupted by a malicious entity:\n * - if the partially decrypted message is processed further or displayed to the user, it opens up the possibility of attacks such as EFAIL\n * (see https://efail.de/).\n * - an attacker with access to traces or timing info of internal processing errors could learn some info about the data.\n *\n * NB: this setting does not apply to AEAD-encrypted data, where the AEAD data chunk is never released until integrity is confirmed.\n * @memberof module:config\n * @property {Boolean} allowUnauthenticatedStream\n */\n allowUnauthenticatedStream: false,\n /**\n * Minimum RSA key size allowed for key generation and message signing, verification and encryption.\n * The default is 2047 since due to a bug, previous versions of OpenPGP.js could generate 2047-bit keys instead of 2048-bit ones.\n * @memberof module:config\n * @property {Number} minRSABits\n */\n minRSABits: 2047,\n /**\n * Work-around for rare GPG decryption bug when encrypting with multiple passwords.\n * **Slower and slightly less secure**\n * @memberof module:config\n * @property {Boolean} passwordCollisionCheck\n */\n passwordCollisionCheck: false,\n /**\n * Allow decryption using RSA keys without `encrypt` flag.\n * This setting is potentially insecure, but it is needed to get around an old openpgpjs bug\n * where key flags were ignored when selecting a key for encryption.\n * @memberof module:config\n * @property {Boolean} allowInsecureDecryptionWithSigningKeys\n */\n allowInsecureDecryptionWithSigningKeys: false,\n /**\n * Allow verification of message signatures with keys whose validity at the time of signing cannot be determined.\n * Instead, a verification key will also be consider valid as long as it is valid at the current time.\n * This setting is potentially insecure, but it is needed to verify messages signed with keys that were later reformatted,\n * and have self-signature's creation date that does not match the primary key creation date.\n * @memberof module:config\n * @property {Boolean} allowInsecureDecryptionWithSigningKeys\n */\n allowInsecureVerificationWithReformattedKeys: false,\n /**\n * Allow using keys that do not have any key flags set.\n * Key flags are needed to restrict key usage to specific purposes: for instance, a signing key could only be allowed to certify other keys, and not sign messages\n * (see https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-10.html#section-5.2.3.29).\n * Some older keys do not declare any key flags, which means they are not allowed to be used for any operation.\n * This setting allows using such keys for any operation for which they are compatible, based on their public key algorithm.\n */\n allowMissingKeyFlags: false,\n /**\n * Enable constant-time decryption of RSA- and ElGamal-encrypted session keys, to hinder Bleichenbacher-like attacks (https://link.springer.com/chapter/10.1007/BFb0055716).\n * This setting has measurable performance impact and it is only helpful in application scenarios where both of the following conditions apply:\n * - new/incoming messages are automatically decrypted (without user interaction);\n * - an attacker can determine how long it takes to decrypt each message (e.g. due to decryption errors being logged remotely).\n * See also `constantTimePKCS1DecryptionSupportedSymmetricAlgorithms`.\n * @memberof module:config\n * @property {Boolean} constantTimePKCS1Decryption\n */\n constantTimePKCS1Decryption: false,\n /**\n * This setting is only meaningful if `constantTimePKCS1Decryption` is enabled.\n * Decryption of RSA- and ElGamal-encrypted session keys of symmetric algorithms different from the ones specified here will fail.\n * However, the more algorithms are added, the slower the decryption procedure becomes.\n * @memberof module:config\n * @property {Set} constantTimePKCS1DecryptionSupportedSymmetricAlgorithms {@link module:enums.symmetric}\n */\n constantTimePKCS1DecryptionSupportedSymmetricAlgorithms: new Set([enums.symmetric.aes128, enums.symmetric.aes192, enums.symmetric.aes256]),\n /**\n * @memberof module:config\n * @property {Boolean} ignoreUnsupportedPackets Ignore unsupported/unrecognizable packets on parsing instead of throwing an error\n */\n ignoreUnsupportedPackets: true,\n /**\n * @memberof module:config\n * @property {Boolean} ignoreMalformedPackets Ignore malformed packets on parsing instead of throwing an error\n */\n ignoreMalformedPackets: false,\n /**\n * Parsing of packets is normally restricted to a predefined set of packets. For example a Sym. Encrypted Integrity Protected Data Packet can only\n * contain a certain set of packets including LiteralDataPacket. With this setting we can allow additional packets, which is probably not advisable\n * as a global config setting, but can be used for specific function calls (e.g. decrypt method of Message).\n * @memberof module:config\n * @property {Array} additionalAllowedPackets Allow additional packets on parsing. Defined as array of packet classes, e.g. [PublicKeyPacket]\n */\n additionalAllowedPackets: [],\n /**\n * @memberof module:config\n * @property {Boolean} showVersion Whether to include {@link module:config/config.versionString} in armored messages\n */\n showVersion: false,\n /**\n * @memberof module:config\n * @property {Boolean} showComment Whether to include {@link module:config/config.commentString} in armored messages\n */\n showComment: false,\n /**\n * @memberof module:config\n * @property {String} versionString A version string to be included in armored messages\n */\n versionString: 'OpenPGP.js VERSION',\n /**\n * @memberof module:config\n * @property {String} commentString A comment string to be included in armored messages\n */\n commentString: 'https://openpgpjs.org',\n\n /**\n * Max userID string length (used for parsing)\n * @memberof module:config\n * @property {Integer} maxUserIDLength\n */\n maxUserIDLength: 1024 * 5,\n /**\n * Contains notatations that are considered \"known\". Known notations do not trigger\n * validation error when the notation is marked as critical.\n * @memberof module:config\n * @property {Array} knownNotations\n */\n knownNotations: [],\n /**\n * If true, a salt notation is used to randomize signatures generated by v4 and v5 keys (v6 signatures are always non-deterministic, by design).\n * This protects EdDSA signatures from potentially leaking the secret key in case of faults (i.e. bitflips) which, in principle, could occur\n * during the signing computation. It is added to signatures of any algo for simplicity, and as it may also serve as protection in case of\n * weaknesses in the hash algo, potentially hindering e.g. some chosen-prefix attacks.\n * NOTE: the notation is interoperable, but will reveal that the signature has been generated using OpenPGP.js, which may not be desirable in some cases.\n */\n nonDeterministicSignaturesViaNotation: true,\n /**\n * Whether to use the the noble-curves library for curves (other than Curve25519) that are not supported by the available native crypto API.\n * When false, certain standard curves will not be supported (depending on the platform).\n * @memberof module:config\n * @property {Boolean} useEllipticFallback\n */\n useEllipticFallback: true,\n /**\n * Reject insecure hash algorithms\n * @memberof module:config\n * @property {Set} rejectHashAlgorithms {@link module:enums.hash}\n */\n rejectHashAlgorithms: new Set([enums.hash.md5, enums.hash.ripemd]),\n /**\n * Reject insecure message hash algorithms\n * @memberof module:config\n * @property {Set} rejectMessageHashAlgorithms {@link module:enums.hash}\n */\n rejectMessageHashAlgorithms: new Set([enums.hash.md5, enums.hash.ripemd, enums.hash.sha1]),\n /**\n * Reject insecure public key algorithms for key generation and message encryption, signing or verification\n * @memberof module:config\n * @property {Set} rejectPublicKeyAlgorithms {@link module:enums.publicKey}\n */\n rejectPublicKeyAlgorithms: new Set([enums.publicKey.elgamal, enums.publicKey.dsa]),\n /**\n * Reject non-standard curves for key generation, message encryption, signing or verification\n * @memberof module:config\n * @property {Set} rejectCurves {@link module:enums.curve}\n */\n rejectCurves: new Set([enums.curve.secp256k1])\n};\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/* eslint-disable no-console */\n\n/**\n * This object contains utility functions\n * @module util\n */\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport { createRequire } from 'module'; // Must be stripped in browser built\nimport enums from './enums';\nimport defaultConfig from './config';\n\nconst debugMode = (() => {\n try {\n return process.env.NODE_ENV === 'development'; // eslint-disable-line no-process-env\n } catch (e) {}\n return false;\n})();\n\nconst util = {\n isString: function(data) {\n return typeof data === 'string' || data instanceof String;\n },\n\n nodeRequire: createRequire(import.meta.url),\n\n isArray: function(data) {\n return data instanceof Array;\n },\n\n isUint8Array: stream.isUint8Array,\n\n isStream: stream.isStream,\n\n /**\n * Load noble-curves lib on demand and return the requested curve function\n * @param {enums.publicKey} publicKeyAlgo\n * @param {enums.curve} [curveName] - for algos supporting different curves (e.g. ECDSA)\n * @returns curve implementation\n * @throws on unrecognized curve, or curve not implemented by noble-curve\n */\n getNobleCurve: async (publicKeyAlgo, curveName) => {\n if (!defaultConfig.useEllipticFallback) {\n throw new Error('This curve is only supported in the full build of OpenPGP.js');\n }\n\n const { nobleCurves } = await import('./crypto/public_key/elliptic/noble_curves');\n switch (publicKeyAlgo) {\n case enums.publicKey.ecdh:\n case enums.publicKey.ecdsa: {\n const curve = nobleCurves.get(curveName);\n if (!curve) throw new Error('Unsupported curve');\n return curve;\n }\n case enums.publicKey.x448:\n return nobleCurves.get('x448');\n case enums.publicKey.ed448:\n return nobleCurves.get('ed448');\n default:\n throw new Error('Unsupported curve');\n }\n },\n\n readNumber: function (bytes) {\n let n = 0;\n for (let i = 0; i < bytes.length; i++) {\n n += (256 ** i) * bytes[bytes.length - 1 - i];\n }\n return n;\n },\n\n writeNumber: function (n, bytes) {\n const b = new Uint8Array(bytes);\n for (let i = 0; i < bytes; i++) {\n b[i] = (n >> (8 * (bytes - i - 1))) & 0xFF;\n }\n\n return b;\n },\n\n readDate: function (bytes) {\n const n = util.readNumber(bytes);\n const d = new Date(n * 1000);\n return d;\n },\n\n writeDate: function (time) {\n const numeric = Math.floor(time.getTime() / 1000);\n\n return util.writeNumber(numeric, 4);\n },\n\n normalizeDate: function (time = Date.now()) {\n return time === null || time === Infinity ? time : new Date(Math.floor(+time / 1000) * 1000);\n },\n\n /**\n * Read one MPI from bytes in input\n * @param {Uint8Array} bytes - Input data to parse\n * @returns {Uint8Array} Parsed MPI.\n */\n readMPI: function (bytes) {\n const bits = (bytes[0] << 8) | bytes[1];\n const bytelen = (bits + 7) >>> 3;\n // There is a decryption oracle risk here by enforcing the MPI length using `readExactSubarray` in the context of SEIPDv1 encrypted signatures,\n // where unauthenticated streamed decryption is done (via `config.allowUnauthenticatedStream`), since the decrypted signature data being processed\n // has not been authenticated (yet).\n // However, such config setting is known to be insecure, and there are other packet parsing errors that can cause similar issues.\n // Also, AEAD is also not affected.\n return util.readExactSubarray(bytes, 2, 2 + bytelen);\n },\n\n /**\n * Read exactly `end - start` bytes from input.\n * This is a stricter version of `.subarray`.\n * @param {Uint8Array} input - Input data to parse\n * @returns {Uint8Array} subarray of size always equal to `end - start`\n * @throws if the input array is too short.\n */\n readExactSubarray: function (input, start, end) {\n if (input.length < (end - start)) {\n throw new Error('Input array too short');\n }\n return input.subarray(start, end);\n },\n\n /**\n * Left-pad Uint8Array to length by adding 0x0 bytes\n * @param {Uint8Array} bytes - Data to pad\n * @param {Number} length - Padded length\n * @returns {Uint8Array} Padded bytes.\n */\n leftPad(bytes, length) {\n if (bytes.length > length) {\n throw new Error('Input array too long');\n }\n const padded = new Uint8Array(length);\n const offset = length - bytes.length;\n padded.set(bytes, offset);\n return padded;\n },\n\n /**\n * Convert a Uint8Array to an MPI-formatted Uint8Array.\n * @param {Uint8Array} bin - An array of 8-bit integers to convert\n * @returns {Uint8Array} MPI-formatted Uint8Array.\n */\n uint8ArrayToMPI: function (bin) {\n const bitSize = util.uint8ArrayBitLength(bin);\n if (bitSize === 0) {\n throw new Error('Zero MPI');\n }\n const stripped = bin.subarray(bin.length - Math.ceil(bitSize / 8));\n const prefix = new Uint8Array([(bitSize & 0xFF00) >> 8, bitSize & 0xFF]);\n return util.concatUint8Array([prefix, stripped]);\n },\n\n /**\n * Return bit length of the input data\n * @param {Uint8Array} bin input data (big endian)\n * @returns bit length\n */\n uint8ArrayBitLength: function (bin) {\n let i; // index of leading non-zero byte\n for (i = 0; i < bin.length; i++) if (bin[i] !== 0) break;\n if (i === bin.length) {\n return 0;\n }\n const stripped = bin.subarray(i);\n return (stripped.length - 1) * 8 + util.nbits(stripped[0]);\n },\n\n /**\n * Convert a hex string to an array of 8-bit integers\n * @param {String} hex - A hex string to convert\n * @returns {Uint8Array} An array of 8-bit integers.\n */\n hexToUint8Array: function (hex) {\n const result = new Uint8Array(hex.length >> 1);\n for (let k = 0; k < hex.length >> 1; k++) {\n result[k] = parseInt(hex.substr(k << 1, 2), 16);\n }\n return result;\n },\n\n /**\n * Convert an array of 8-bit integers to a hex string\n * @param {Uint8Array} bytes - Array of 8-bit integers to convert\n * @returns {String} Hexadecimal representation of the array.\n */\n uint8ArrayToHex: function (bytes) {\n const hexAlphabet = '0123456789abcdef';\n let s = '';\n bytes.forEach(v => { s += hexAlphabet[v >> 4] + hexAlphabet[v & 15]; });\n return s;\n },\n\n /**\n * Convert a string to an array of 8-bit integers\n * @param {String} str - String to convert\n * @returns {Uint8Array} An array of 8-bit integers.\n */\n stringToUint8Array: function (str) {\n return stream.transform(str, str => {\n if (!util.isString(str)) {\n throw new Error('stringToUint8Array: Data must be in the form of a string');\n }\n\n const result = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n result[i] = str.charCodeAt(i);\n }\n return result;\n });\n },\n\n /**\n * Convert an array of 8-bit integers to a string\n * @param {Uint8Array} bytes - An array of 8-bit integers to convert\n * @returns {String} String representation of the array.\n */\n uint8ArrayToString: function (bytes) {\n bytes = new Uint8Array(bytes);\n const result = [];\n const bs = 1 << 14;\n const j = bytes.length;\n\n for (let i = 0; i < j; i += bs) {\n result.push(String.fromCharCode.apply(String, bytes.subarray(i, i + bs < j ? i + bs : j)));\n }\n return result.join('');\n },\n\n /**\n * Convert a native javascript string to a Uint8Array of utf8 bytes\n * @param {String|ReadableStream} str - The string to convert\n * @returns {Uint8Array|ReadableStream} A valid squence of utf8 bytes.\n */\n encodeUTF8: function (str) {\n const encoder = new TextEncoder('utf-8');\n // eslint-disable-next-line no-inner-declarations\n function process(value, lastChunk = false) {\n return encoder.encode(value, { stream: !lastChunk });\n }\n return stream.transform(str, process, () => process('', true));\n },\n\n /**\n * Convert a Uint8Array of utf8 bytes to a native javascript string\n * @param {Uint8Array|ReadableStream} utf8 - A valid squence of utf8 bytes\n * @returns {String|ReadableStream} A native javascript string.\n */\n decodeUTF8: function (utf8) {\n const decoder = new TextDecoder('utf-8');\n // eslint-disable-next-line no-inner-declarations\n function process(value, lastChunk = false) {\n return decoder.decode(value, { stream: !lastChunk });\n }\n return stream.transform(utf8, process, () => process(new Uint8Array(), true));\n },\n\n /**\n * Concat a list of Uint8Arrays, Strings or Streams\n * The caller must not mix Uint8Arrays with Strings, but may mix Streams with non-Streams.\n * @param {Array} Array - Of Uint8Arrays/Strings/Streams to concatenate\n * @returns {Uint8Array|String|ReadableStream} Concatenated array.\n */\n concat: stream.concat,\n\n /**\n * Concat Uint8Arrays\n * @param {Array} Array - Of Uint8Arrays to concatenate\n * @returns {Uint8Array} Concatenated array.\n */\n concatUint8Array: stream.concatUint8Array,\n\n /**\n * Check Uint8Array equality\n * @param {Uint8Array} array1 - First array\n * @param {Uint8Array} array2 - Second array\n * @returns {Boolean} Equality.\n */\n equalsUint8Array: function (array1, array2) {\n if (!util.isUint8Array(array1) || !util.isUint8Array(array2)) {\n throw new Error('Data must be in the form of a Uint8Array');\n }\n\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n },\n\n /**\n * Calculates a 16bit sum of a Uint8Array by adding each character\n * codes modulus 65535\n * @param {Uint8Array} Uint8Array - To create a sum of\n * @returns {Uint8Array} 2 bytes containing the sum of all charcodes % 65535.\n */\n writeChecksum: function (text) {\n let s = 0;\n for (let i = 0; i < text.length; i++) {\n s = (s + text[i]) & 0xFFFF;\n }\n return util.writeNumber(s, 2);\n },\n\n /**\n * Helper function to print a debug message. Debug\n * messages are only printed if\n * @param {String} str - String of the debug message\n */\n printDebug: function (str) {\n if (debugMode) {\n console.log('[OpenPGP.js debug]', str);\n }\n },\n\n /**\n * Helper function to print a debug error. Debug\n * messages are only printed if\n * @param {String} str - String of the debug message\n */\n printDebugError: function (error) {\n if (debugMode) {\n console.error('[OpenPGP.js debug]', error);\n }\n },\n\n // returns bit length of the integer x\n nbits: function (x) {\n let r = 1;\n let t = x >>> 16;\n if (t !== 0) {\n x = t;\n r += 16;\n }\n t = x >> 8;\n if (t !== 0) {\n x = t;\n r += 8;\n }\n t = x >> 4;\n if (t !== 0) {\n x = t;\n r += 4;\n }\n t = x >> 2;\n if (t !== 0) {\n x = t;\n r += 2;\n }\n t = x >> 1;\n if (t !== 0) {\n x = t;\n r += 1;\n }\n return r;\n },\n\n /**\n * If S[1] == 0, then double(S) == (S[2..128] || 0);\n * otherwise, double(S) == (S[2..128] || 0) xor\n * (zeros(120) || 10000111).\n *\n * Both OCB and EAX (through CMAC) require this function to be constant-time.\n *\n * @param {Uint8Array} data\n */\n double: function(data) {\n const doubleVar = new Uint8Array(data.length);\n const last = data.length - 1;\n for (let i = 0; i < last; i++) {\n doubleVar[i] = (data[i] << 1) ^ (data[i + 1] >> 7);\n }\n doubleVar[last] = (data[last] << 1) ^ ((data[0] >> 7) * 0x87);\n return doubleVar;\n },\n\n /**\n * Shift a Uint8Array to the right by n bits\n * @param {Uint8Array} array - The array to shift\n * @param {Integer} bits - Amount of bits to shift (MUST be smaller\n * than 8)\n * @returns {String} Resulting array.\n */\n shiftRight: function (array, bits) {\n if (bits) {\n for (let i = array.length - 1; i >= 0; i--) {\n array[i] >>= bits;\n if (i > 0) {\n array[i] |= (array[i - 1] << (8 - bits));\n }\n }\n }\n return array;\n },\n\n /**\n * Get native Web Cryptography API.\n * @returns {Object} The SubtleCrypto API\n * @throws if the API is not available\n */\n getWebCrypto: function() {\n const globalWebCrypto = typeof globalThis !== 'undefined' && globalThis.crypto && globalThis.crypto.subtle;\n // Fallback for Node 16, which does not expose WebCrypto as a global\n const webCrypto = globalWebCrypto || this.getNodeCrypto()?.webcrypto.subtle;\n if (!webCrypto) {\n throw new Error('The WebCrypto API is not available');\n }\n return webCrypto;\n },\n\n /**\n * Get native Node.js crypto api.\n * @returns {Object} The crypto module or 'undefined'.\n */\n getNodeCrypto: function() {\n return this.nodeRequire('crypto');\n },\n\n getNodeZlib: function() {\n return this.nodeRequire('zlib');\n },\n\n /**\n * Get native Node.js Buffer constructor. This should be used since\n * Buffer is not available under browserify.\n * @returns {Function} The Buffer constructor or 'undefined'.\n */\n getNodeBuffer: function() {\n return (this.nodeRequire('buffer') || {}).Buffer;\n },\n\n getHardwareConcurrency: function() {\n if (typeof navigator !== 'undefined') {\n return navigator.hardwareConcurrency || 1;\n }\n\n const os = this.nodeRequire('os'); // Assume we're on Node.js.\n return os.cpus().length;\n },\n\n /**\n * Test email format to ensure basic compliance:\n * - must include a single @\n * - no control or space unicode chars allowed\n * - no backslash and square brackets (as the latter can mess with the userID parsing)\n * - cannot end with a punctuation char\n * These checks are not meant to be exhaustive; applications are strongly encouraged to implement stricter validation,\n * e.g. based on the W3C HTML spec (https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email)).\n */\n isEmailAddress: function(data) {\n if (!util.isString(data)) {\n return false;\n }\n const re = /^[^\\p{C}\\p{Z}@<>\\\\]+@[^\\p{C}\\p{Z}@<>\\\\]+[^\\p{C}\\p{Z}\\p{P}]$/u;\n return re.test(data);\n },\n\n /**\n * Normalize line endings to \n * Support any encoding where CR=0x0D, LF=0x0A\n */\n canonicalizeEOL: function(data) {\n const CR = 13;\n const LF = 10;\n let carryOverCR = false;\n\n return stream.transform(data, bytes => {\n if (carryOverCR) {\n bytes = util.concatUint8Array([new Uint8Array([CR]), bytes]);\n }\n\n if (bytes[bytes.length - 1] === CR) {\n carryOverCR = true;\n bytes = bytes.subarray(0, -1);\n } else {\n carryOverCR = false;\n }\n\n let index;\n const indices = [];\n for (let i = 0; ; i = index) {\n index = bytes.indexOf(LF, i) + 1;\n if (index) {\n if (bytes[index - 2] !== CR) indices.push(index);\n } else {\n break;\n }\n }\n if (!indices.length) {\n return bytes;\n }\n\n const normalized = new Uint8Array(bytes.length + indices.length);\n let j = 0;\n for (let i = 0; i < indices.length; i++) {\n const sub = bytes.subarray(indices[i - 1] || 0, indices[i]);\n normalized.set(sub, j);\n j += sub.length;\n normalized[j - 1] = CR;\n normalized[j] = LF;\n j++;\n }\n normalized.set(bytes.subarray(indices[indices.length - 1] || 0), j);\n return normalized;\n }, () => (carryOverCR ? new Uint8Array([CR]) : undefined));\n },\n\n /**\n * Convert line endings from canonicalized to native \n * Support any encoding where CR=0x0D, LF=0x0A\n */\n nativeEOL: function(data) {\n const CR = 13;\n const LF = 10;\n let carryOverCR = false;\n\n return stream.transform(data, bytes => {\n if (carryOverCR && bytes[0] !== LF) {\n bytes = util.concatUint8Array([new Uint8Array([CR]), bytes]);\n } else {\n bytes = new Uint8Array(bytes); // Don't mutate passed bytes\n }\n\n if (bytes[bytes.length - 1] === CR) {\n carryOverCR = true;\n bytes = bytes.subarray(0, -1);\n } else {\n carryOverCR = false;\n }\n\n let index;\n let j = 0;\n for (let i = 0; i !== bytes.length; i = index) {\n index = bytes.indexOf(CR, i) + 1;\n if (!index) index = bytes.length;\n const last = index - (bytes[index] === LF ? 1 : 0);\n if (i) bytes.copyWithin(j, i, last);\n j += last - i;\n }\n return bytes.subarray(0, j);\n }, () => (carryOverCR ? new Uint8Array([CR]) : undefined));\n },\n\n /**\n * Remove trailing spaces, carriage returns and tabs from each line\n */\n removeTrailingSpaces: function(text) {\n return text.split('\\n').map(line => {\n let i = line.length - 1;\n for (; i >= 0 && (line[i] === ' ' || line[i] === '\\t' || line[i] === '\\r'); i--);\n return line.substr(0, i + 1);\n }).join('\\n');\n },\n\n wrapError: function(message, error) {\n if (!error) {\n return new Error(message);\n }\n\n // update error message\n try {\n error.message = message + ': ' + error.message;\n } catch (e) {}\n\n return error;\n },\n\n /**\n * Map allowed packet tags to corresponding classes\n * Meant to be used to format `allowedPacket` for Packetlist.read\n * @param {Array} allowedClasses\n * @returns {Object} map from enum.packet to corresponding *Packet class\n */\n constructAllowedPackets: function(allowedClasses) {\n const map = {};\n allowedClasses.forEach(PacketClass => {\n if (!PacketClass.tag) {\n throw new Error('Invalid input: expected a packet class');\n }\n map[PacketClass.tag] = PacketClass;\n });\n return map;\n },\n\n /**\n * Return a Promise that will resolve as soon as one of the promises in input resolves\n * or will reject if all input promises all rejected\n * (similar to Promise.any, but with slightly different error handling)\n * @param {Array} promises\n * @return {Promise} Promise resolving to the result of the fastest fulfilled promise\n * or rejected with the Error of the last resolved Promise (if all promises are rejected)\n */\n anyPromise: function(promises) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n let exception;\n await Promise.all(promises.map(async promise => {\n try {\n resolve(await promise);\n } catch (e) {\n exception = e;\n }\n }));\n reject(exception);\n });\n },\n\n /**\n * Return either `a` or `b` based on `cond`, in algorithmic constant time.\n * @param {Boolean} cond\n * @param {Uint8Array} a\n * @param {Uint8Array} b\n * @returns `a` if `cond` is true, `b` otherwise\n */\n selectUint8Array: function(cond, a, b) {\n const length = Math.max(a.length, b.length);\n const result = new Uint8Array(length);\n let end = 0;\n for (let i = 0; i < result.length; i++) {\n result[i] = (a[i] & (256 - cond)) | (b[i] & (255 + cond));\n end += (cond & i < a.length) | ((1 - cond) & i < b.length);\n }\n return result.subarray(0, end);\n },\n /**\n * Return either `a` or `b` based on `cond`, in algorithmic constant time.\n * NB: it only supports `a, b` with values between 0-255.\n * @param {Boolean} cond\n * @param {Uint8} a\n * @param {Uint8} b\n * @returns `a` if `cond` is true, `b` otherwise\n */\n selectUint8: function(cond, a, b) {\n return (a & (256 - cond)) | (b & (255 + cond));\n },\n /**\n * @param {module:enums.symmetric} cipherAlgo\n */\n isAES: function(cipherAlgo) {\n return cipherAlgo === enums.symmetric.aes128 || cipherAlgo === enums.symmetric.aes192 || cipherAlgo === enums.symmetric.aes256;\n }\n};\n\nexport default util;\n", "/* OpenPGP radix-64/base64 string encoding/decoding\n * Copyright 2005 Herbert Hanewinkel, www.haneWIN.de\n * version 1.0, check www.haneWIN.de for the latest version\n *\n * This software is provided as-is, without express or implied warranty.\n * Permission to use, copy, modify, distribute or sell this software, with or\n * without fee, for any purpose and by any individual or organization, is hereby\n * granted, provided that the above copyright notice and this paragraph appear\n * in all copies. Distribution as a part of an application or binary must\n * include the above copyright notice in the documentation and/or other materials\n * provided with the application or distribution.\n */\n\n/**\n * @module encoding/base64\n */\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport util from '../util';\n\nconst Buffer = util.getNodeBuffer();\n\nlet encodeChunk;\nlet decodeChunk;\nif (Buffer) {\n encodeChunk = buf => Buffer.from(buf).toString('base64');\n decodeChunk = str => {\n const b = Buffer.from(str, 'base64');\n return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);\n };\n} else {\n encodeChunk = buf => btoa(util.uint8ArrayToString(buf));\n decodeChunk = str => util.stringToUint8Array(atob(str));\n}\n\n/**\n * Convert binary array to radix-64\n * @param {Uint8Array | ReadableStream} data - Uint8Array to convert\n * @returns {String | ReadableStream} Radix-64 version of input string.\n * @static\n */\nexport function encode(data) {\n let buf = new Uint8Array();\n return stream.transform(data, value => {\n buf = util.concatUint8Array([buf, value]);\n const r = [];\n const bytesPerLine = 45; // 60 chars per line * (3 bytes / 4 chars of base64).\n const lines = Math.floor(buf.length / bytesPerLine);\n const bytes = lines * bytesPerLine;\n const encoded = encodeChunk(buf.subarray(0, bytes));\n for (let i = 0; i < lines; i++) {\n r.push(encoded.substr(i * 60, 60));\n r.push('\\n');\n }\n buf = buf.subarray(bytes);\n return r.join('');\n }, () => (buf.length ? encodeChunk(buf) + '\\n' : ''));\n}\n\n/**\n * Convert radix-64 to binary array\n * @param {String | ReadableStream} data - Radix-64 string to convert\n * @returns {Uint8Array | ReadableStream} Binary array version of input string.\n * @static\n */\nexport function decode(data) {\n let buf = '';\n return stream.transform(data, value => {\n buf += value;\n\n // Count how many whitespace characters there are in buf\n let spaces = 0;\n const spacechars = [' ', '\\t', '\\r', '\\n'];\n for (let i = 0; i < spacechars.length; i++) {\n const spacechar = spacechars[i];\n for (let pos = buf.indexOf(spacechar); pos !== -1; pos = buf.indexOf(spacechar, pos + 1)) {\n spaces++;\n }\n }\n\n // Backtrack until we have 4n non-whitespace characters\n // that we can safely base64-decode\n let length = buf.length;\n for (; length > 0 && (length - spaces) % 4 !== 0; length--) {\n if (spacechars.includes(buf[length])) spaces--;\n }\n\n const decoded = decodeChunk(buf.substr(0, length));\n buf = buf.substr(length);\n return decoded;\n }, () => decodeChunk(buf));\n}\n\n/**\n * Convert a Base-64 encoded string an array of 8-bit integer\n *\n * Note: accepts both Radix-64 and URL-safe strings\n * @param {String} base64 - Base-64 encoded string to convert\n * @returns {Uint8Array} An array of 8-bit integers.\n */\nexport function b64ToUint8Array(base64) {\n return decode(base64.replace(/-/g, '+').replace(/_/g, '/'));\n}\n\n/**\n * Convert an array of 8-bit integer to a Base-64 encoded string\n * @param {Uint8Array} bytes - An array of 8-bit integers to convert\n * @param {bool} url - If true, output is URL-safe\n * @returns {String} Base-64 encoded string.\n */\nexport function uint8ArrayToB64(bytes, url) {\n let encoded = encode(bytes).replace(/[\\r\\n]/g, '');\n if (url) {\n encoded = encoded.replace(/[+]/g, '-').replace(/[/]/g, '_').replace(/[=]/g, '');\n }\n return encoded;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport * as base64 from './base64';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\n\n/**\n * Finds out which Ascii Armoring type is used. Throws error if unknown type.\n * @param {String} text - ascii armored text\n * @returns {Integer} 0 = MESSAGE PART n of m.\n * 1 = MESSAGE PART n\n * 2 = SIGNED MESSAGE\n * 3 = PGP MESSAGE\n * 4 = PUBLIC KEY BLOCK\n * 5 = PRIVATE KEY BLOCK\n * 6 = SIGNATURE\n * @private\n */\nfunction getType(text) {\n const reHeader = /^-----BEGIN PGP (MESSAGE, PART \\d+\\/\\d+|MESSAGE, PART \\d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m;\n\n const header = text.match(reHeader);\n\n if (!header) {\n throw new Error('Unknown ASCII armor type');\n }\n\n // BEGIN PGP MESSAGE, PART X/Y\n // Used for multi-part messages, where the armor is split amongst Y\n // parts, and this is the Xth part out of Y.\n if (/MESSAGE, PART \\d+\\/\\d+/.test(header[1])) {\n return enums.armor.multipartSection;\n }\n // BEGIN PGP MESSAGE, PART X\n // Used for multi-part messages, where this is the Xth part of an\n // unspecified number of parts. Requires the MESSAGE-ID Armor\n // Header to be used.\n if (/MESSAGE, PART \\d+/.test(header[1])) {\n return enums.armor.multipartLast;\n }\n // BEGIN PGP SIGNED MESSAGE\n if (/SIGNED MESSAGE/.test(header[1])) {\n return enums.armor.signed;\n }\n // BEGIN PGP MESSAGE\n // Used for signed, encrypted, or compressed files.\n if (/MESSAGE/.test(header[1])) {\n return enums.armor.message;\n }\n // BEGIN PGP PUBLIC KEY BLOCK\n // Used for armoring public keys.\n if (/PUBLIC KEY BLOCK/.test(header[1])) {\n return enums.armor.publicKey;\n }\n // BEGIN PGP PRIVATE KEY BLOCK\n // Used for armoring private keys.\n if (/PRIVATE KEY BLOCK/.test(header[1])) {\n return enums.armor.privateKey;\n }\n // BEGIN PGP SIGNATURE\n // Used for detached signatures, OpenPGP/MIME signatures, and\n // cleartext signatures. Note that PGP 2.x uses BEGIN PGP MESSAGE\n // for detached signatures.\n if (/SIGNATURE/.test(header[1])) {\n return enums.armor.signature;\n }\n}\n\n/**\n * Add additional information to the armor version of an OpenPGP binary\n * packet block.\n * @author Alex\n * @version 2011-12-16\n * @param {String} [customComment] - Additional comment to add to the armored string\n * @returns {String} The header information.\n * @private\n */\nfunction addheader(customComment, config) {\n let result = '';\n if (config.showVersion) {\n result += 'Version: ' + config.versionString + '\\n';\n }\n if (config.showComment) {\n result += 'Comment: ' + config.commentString + '\\n';\n }\n if (customComment) {\n result += 'Comment: ' + customComment + '\\n';\n }\n result += '\\n';\n return result;\n}\n\n/**\n * Calculates a checksum over the given data and returns it base64 encoded\n * @param {String | ReadableStream} data - Data to create a CRC-24 checksum for\n * @returns {String | ReadableStream} Base64 encoded checksum.\n * @private\n */\nfunction getCheckSum(data) {\n const crc = createcrc24(data);\n return base64.encode(crc);\n}\n\n// https://create.stephan-brumme.com/crc32/#slicing-by-8-overview\n\nconst crc_table = [\n new Array(0xFF),\n new Array(0xFF),\n new Array(0xFF),\n new Array(0xFF)\n];\n\nfor (let i = 0; i <= 0xFF; i++) {\n let crc = i << 16;\n for (let j = 0; j < 8; j++) {\n crc = (crc << 1) ^ ((crc & 0x800000) !== 0 ? 0x864CFB : 0);\n }\n crc_table[0][i] =\n ((crc & 0xFF0000) >> 16) |\n (crc & 0x00FF00) |\n ((crc & 0x0000FF) << 16);\n}\nfor (let i = 0; i <= 0xFF; i++) {\n crc_table[1][i] = (crc_table[0][i] >> 8) ^ crc_table[0][crc_table[0][i] & 0xFF];\n}\nfor (let i = 0; i <= 0xFF; i++) {\n crc_table[2][i] = (crc_table[1][i] >> 8) ^ crc_table[0][crc_table[1][i] & 0xFF];\n}\nfor (let i = 0; i <= 0xFF; i++) {\n crc_table[3][i] = (crc_table[2][i] >> 8) ^ crc_table[0][crc_table[2][i] & 0xFF];\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView#Endianness\nconst isLittleEndian = (function() {\n const buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 0xFF, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 0xFF;\n}());\n\n/**\n * Internal function to calculate a CRC-24 checksum over a given string (data)\n * @param {String | ReadableStream} input - Data to create a CRC-24 checksum for\n * @returns {Uint8Array | ReadableStream} The CRC-24 checksum.\n * @private\n */\nfunction createcrc24(input) {\n let crc = 0xCE04B7;\n return stream.transform(input, value => {\n const len32 = isLittleEndian ? Math.floor(value.length / 4) : 0;\n const arr32 = new Uint32Array(value.buffer, value.byteOffset, len32);\n for (let i = 0; i < len32; i++) {\n crc ^= arr32[i];\n crc =\n crc_table[0][(crc >> 24) & 0xFF] ^\n crc_table[1][(crc >> 16) & 0xFF] ^\n crc_table[2][(crc >> 8) & 0xFF] ^\n crc_table[3][(crc >> 0) & 0xFF];\n }\n for (let i = len32 * 4; i < value.length; i++) {\n crc = (crc >> 8) ^ crc_table[0][(crc & 0xFF) ^ value[i]];\n }\n }, () => new Uint8Array([crc, crc >> 8, crc >> 16]));\n}\n\n/**\n * Verify armored headers. crypto-refresh-06, section 6.2:\n * \"An OpenPGP implementation may consider improperly formatted Armor\n * Headers to be corruption of the ASCII Armor, but SHOULD make an\n * effort to recover.\"\n * @private\n * @param {Array} headers - Armor headers\n */\nfunction verifyHeaders(headers) {\n for (let i = 0; i < headers.length; i++) {\n if (!/^([^\\s:]|[^\\s:][^:]*[^\\s:]): .+$/.test(headers[i])) {\n util.printDebugError(new Error('Improperly formatted armor header: ' + headers[i]));\n }\n if (!/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(headers[i])) {\n util.printDebugError(new Error('Unknown header: ' + headers[i]));\n }\n }\n}\n\n/**\n * Remove the (optional) checksum from an armored message.\n * @param {String} text - OpenPGP armored message\n * @returns {String} The body of the armored message.\n * @private\n */\nfunction removeChecksum(text) {\n let body = text;\n\n const lastEquals = text.lastIndexOf('=');\n\n if (lastEquals >= 0 && lastEquals !== text.length - 1) { // '=' as the last char means no checksum\n body = text.slice(0, lastEquals);\n }\n\n return body;\n}\n\n/**\n * Dearmor an OpenPGP armored message; verify the checksum and return\n * the encoded bytes\n * @param {String} input - OpenPGP armored message\n * @returns {Promise} An object with attribute \"text\" containing the message text,\n * an attribute \"data\" containing a stream of bytes and \"type\" for the ASCII armor type\n * @async\n * @static\n */\nexport function unarmor(input) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n const reSplit = /^-----[^-]+-----$/m;\n const reEmptyLine = /^[ \\f\\r\\t\\u00a0\\u2000-\\u200a\\u202f\\u205f\\u3000]*$/;\n\n let type;\n const headers = [];\n let lastHeaders = headers;\n let headersDone;\n let text = [];\n let textDone;\n const data = base64.decode(stream.transformPair(input, async (readable, writable) => {\n const reader = stream.getReader(readable);\n try {\n while (true) {\n let line = await reader.readLine();\n if (line === undefined) {\n throw new Error('Misformed armored text');\n }\n // remove trailing whitespace at end of lines\n line = util.removeTrailingSpaces(line.replace(/[\\r\\n]/g, ''));\n if (!type) {\n if (reSplit.test(line)) {\n type = getType(line);\n }\n } else if (!headersDone) {\n if (reSplit.test(line)) {\n reject(new Error('Mandatory blank line missing between armor headers and armor data'));\n }\n if (!reEmptyLine.test(line)) {\n lastHeaders.push(line);\n } else {\n verifyHeaders(lastHeaders);\n headersDone = true;\n if (textDone || type !== enums.armor.signed) {\n resolve({ text, data, headers, type });\n break;\n }\n }\n } else if (!textDone && type === enums.armor.signed) {\n if (!reSplit.test(line)) {\n // Reverse dash-escaping for msg\n text.push(line.replace(/^- /, ''));\n } else {\n text = text.join('\\r\\n');\n textDone = true;\n verifyHeaders(lastHeaders);\n lastHeaders = [];\n headersDone = false;\n }\n }\n }\n } catch (e) {\n reject(e);\n return;\n }\n const writer = stream.getWriter(writable);\n try {\n while (true) {\n await writer.ready;\n const { done, value } = await reader.read();\n if (done) {\n throw new Error('Misformed armored text');\n }\n const line = value + '';\n if (line.indexOf('=') === -1 && line.indexOf('-') === -1) {\n await writer.write(line);\n } else {\n let remainder = await reader.readToEnd();\n if (!remainder.length) remainder = '';\n remainder = line + remainder;\n remainder = util.removeTrailingSpaces(remainder.replace(/\\r/g, ''));\n const parts = remainder.split(reSplit);\n if (parts.length === 1) {\n throw new Error('Misformed armored text');\n }\n const body = removeChecksum(parts[0].slice(0, -1));\n await writer.write(body);\n break;\n }\n }\n await writer.ready;\n await writer.close();\n } catch (e) {\n await writer.abort(e);\n }\n }));\n } catch (e) {\n reject(e);\n }\n }).then(async result => {\n if (stream.isArrayStream(result.data)) {\n result.data = await stream.readToEnd(result.data);\n }\n return result;\n });\n}\n\n\n/**\n * Armor an OpenPGP binary packet block\n * @param {module:enums.armor} messageType - Type of the message\n * @param {Uint8Array | ReadableStream} body - The message body to armor\n * @param {Integer} [partIndex]\n * @param {Integer} [partTotal]\n * @param {String} [customComment] - Additional comment to add to the armored string\n * @param {Boolean} [emitChecksum] - Whether to compute and include the CRC checksum\n * (NB: some types of data must not include it, but compliance is left as responsibility of the caller: this function does not carry out any checks)\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {String | ReadableStream} Armored text.\n * @static\n */\nexport function armor(messageType, body, partIndex, partTotal, customComment, emitChecksum = false, config = defaultConfig) {\n let text;\n let hash;\n if (messageType === enums.armor.signed) {\n text = body.text;\n hash = body.hash;\n body = body.data;\n }\n // unless explicitly forbidden by the spec, we need to include the checksum to work around a GnuPG bug\n // where data fails to be decoded if the base64 ends with no padding chars (=) (see https://dev.gnupg.org/T7071)\n const maybeBodyClone = emitChecksum && stream.passiveClone(body);\n\n const result = [];\n switch (messageType) {\n case enums.armor.multipartSection:\n result.push('-----BEGIN PGP MESSAGE, PART ' + partIndex + '/' + partTotal + '-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP MESSAGE, PART ' + partIndex + '/' + partTotal + '-----\\n');\n break;\n case enums.armor.multipartLast:\n result.push('-----BEGIN PGP MESSAGE, PART ' + partIndex + '-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP MESSAGE, PART ' + partIndex + '-----\\n');\n break;\n case enums.armor.signed:\n result.push('-----BEGIN PGP SIGNED MESSAGE-----\\n');\n result.push(hash ? `Hash: ${hash}\\n\\n` : '\\n');\n result.push(text.replace(/^-/mg, '- -'));\n result.push('\\n-----BEGIN PGP SIGNATURE-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP SIGNATURE-----\\n');\n break;\n case enums.armor.message:\n result.push('-----BEGIN PGP MESSAGE-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP MESSAGE-----\\n');\n break;\n case enums.armor.publicKey:\n result.push('-----BEGIN PGP PUBLIC KEY BLOCK-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP PUBLIC KEY BLOCK-----\\n');\n break;\n case enums.armor.privateKey:\n result.push('-----BEGIN PGP PRIVATE KEY BLOCK-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP PRIVATE KEY BLOCK-----\\n');\n break;\n case enums.armor.signature:\n result.push('-----BEGIN PGP SIGNATURE-----\\n');\n result.push(addheader(customComment, config));\n result.push(base64.encode(body));\n maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n result.push('-----END PGP SIGNATURE-----\\n');\n break;\n }\n\n return util.concat(result);\n}\n", "import enums from '../../enums';\n\nexport async function getLegacyCipher(algo) {\n switch (algo) {\n case enums.symmetric.aes128:\n case enums.symmetric.aes192:\n case enums.symmetric.aes256:\n throw new Error('Not a legacy cipher');\n case enums.symmetric.cast5:\n case enums.symmetric.blowfish:\n case enums.symmetric.twofish:\n case enums.symmetric.tripledes: {\n const { legacyCiphers } = await import('./legacy_ciphers');\n const cipher = legacyCiphers.get(algo);\n if (!cipher) {\n throw new Error('Unsupported cipher algorithm');\n }\n return cipher;\n }\n default:\n throw new Error('Unsupported cipher algorithm');\n }\n}\n\n/**\n * Get block size for given cipher algo\n * @param {module:enums.symmetric} algo - alrogithm identifier\n */\nfunction getCipherBlockSize(algo) {\n switch (algo) {\n case enums.symmetric.aes128:\n case enums.symmetric.aes192:\n case enums.symmetric.aes256:\n case enums.symmetric.twofish:\n return 16;\n case enums.symmetric.blowfish:\n case enums.symmetric.cast5:\n case enums.symmetric.tripledes:\n return 8;\n default:\n throw new Error('Unsupported cipher');\n }\n}\n\n/**\n * Get key size for given cipher algo\n * @param {module:enums.symmetric} algo - alrogithm identifier\n */\nfunction getCipherKeySize(algo) {\n switch (algo) {\n case enums.symmetric.aes128:\n case enums.symmetric.blowfish:\n case enums.symmetric.cast5:\n return 16;\n case enums.symmetric.aes192:\n case enums.symmetric.tripledes:\n return 24;\n case enums.symmetric.aes256:\n case enums.symmetric.twofish:\n return 32;\n default:\n throw new Error('Unsupported cipher');\n }\n}\n\n/**\n * Get block and key size for given cipher algo\n * @param {module:enums.symmetric} algo - alrogithm identifier\n */\nexport function getCipherParams(algo) {\n return { keySize: getCipherKeySize(algo), blockSize: getCipherBlockSize(algo) };\n}\n", "/**\n * A fast MD5 JavaScript implementation\n * Copyright (c) 2012 Joseph Myers\n * http://www.myersdaily.org/joseph/javascript/md5-text.html\n *\n * Permission to use, copy, modify, and distribute this software\n * and its documentation for any purposes and without\n * fee is hereby granted provided that this copyright notice\n * appears in all copies.\n *\n * Of course, this soft is provided \"as is\" without express or implied\n * warranty of any kind.\n */\n\nimport util from '../../util';\n\n// MD5 Digest\nasync function md5(entree) {\n const digest = md51(util.uint8ArrayToString(entree));\n return util.hexToUint8Array(hex(digest));\n}\n\nfunction md5cycle(x, k) {\n let a = x[0];\n let b = x[1];\n let c = x[2];\n let d = x[3];\n\n a = ff(a, b, c, d, k[0], 7, -680876936);\n d = ff(d, a, b, c, k[1], 12, -389564586);\n c = ff(c, d, a, b, k[2], 17, 606105819);\n b = ff(b, c, d, a, k[3], 22, -1044525330);\n a = ff(a, b, c, d, k[4], 7, -176418897);\n d = ff(d, a, b, c, k[5], 12, 1200080426);\n c = ff(c, d, a, b, k[6], 17, -1473231341);\n b = ff(b, c, d, a, k[7], 22, -45705983);\n a = ff(a, b, c, d, k[8], 7, 1770035416);\n d = ff(d, a, b, c, k[9], 12, -1958414417);\n c = ff(c, d, a, b, k[10], 17, -42063);\n b = ff(b, c, d, a, k[11], 22, -1990404162);\n a = ff(a, b, c, d, k[12], 7, 1804603682);\n d = ff(d, a, b, c, k[13], 12, -40341101);\n c = ff(c, d, a, b, k[14], 17, -1502002290);\n b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n a = gg(a, b, c, d, k[1], 5, -165796510);\n d = gg(d, a, b, c, k[6], 9, -1069501632);\n c = gg(c, d, a, b, k[11], 14, 643717713);\n b = gg(b, c, d, a, k[0], 20, -373897302);\n a = gg(a, b, c, d, k[5], 5, -701558691);\n d = gg(d, a, b, c, k[10], 9, 38016083);\n c = gg(c, d, a, b, k[15], 14, -660478335);\n b = gg(b, c, d, a, k[4], 20, -405537848);\n a = gg(a, b, c, d, k[9], 5, 568446438);\n d = gg(d, a, b, c, k[14], 9, -1019803690);\n c = gg(c, d, a, b, k[3], 14, -187363961);\n b = gg(b, c, d, a, k[8], 20, 1163531501);\n a = gg(a, b, c, d, k[13], 5, -1444681467);\n d = gg(d, a, b, c, k[2], 9, -51403784);\n c = gg(c, d, a, b, k[7], 14, 1735328473);\n b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n a = hh(a, b, c, d, k[5], 4, -378558);\n d = hh(d, a, b, c, k[8], 11, -2022574463);\n c = hh(c, d, a, b, k[11], 16, 1839030562);\n b = hh(b, c, d, a, k[14], 23, -35309556);\n a = hh(a, b, c, d, k[1], 4, -1530992060);\n d = hh(d, a, b, c, k[4], 11, 1272893353);\n c = hh(c, d, a, b, k[7], 16, -155497632);\n b = hh(b, c, d, a, k[10], 23, -1094730640);\n a = hh(a, b, c, d, k[13], 4, 681279174);\n d = hh(d, a, b, c, k[0], 11, -358537222);\n c = hh(c, d, a, b, k[3], 16, -722521979);\n b = hh(b, c, d, a, k[6], 23, 76029189);\n a = hh(a, b, c, d, k[9], 4, -640364487);\n d = hh(d, a, b, c, k[12], 11, -421815835);\n c = hh(c, d, a, b, k[15], 16, 530742520);\n b = hh(b, c, d, a, k[2], 23, -995338651);\n\n a = ii(a, b, c, d, k[0], 6, -198630844);\n d = ii(d, a, b, c, k[7], 10, 1126891415);\n c = ii(c, d, a, b, k[14], 15, -1416354905);\n b = ii(b, c, d, a, k[5], 21, -57434055);\n a = ii(a, b, c, d, k[12], 6, 1700485571);\n d = ii(d, a, b, c, k[3], 10, -1894986606);\n c = ii(c, d, a, b, k[10], 15, -1051523);\n b = ii(b, c, d, a, k[1], 21, -2054922799);\n a = ii(a, b, c, d, k[8], 6, 1873313359);\n d = ii(d, a, b, c, k[15], 10, -30611744);\n c = ii(c, d, a, b, k[6], 15, -1560198380);\n b = ii(b, c, d, a, k[13], 21, 1309151649);\n a = ii(a, b, c, d, k[4], 6, -145523070);\n d = ii(d, a, b, c, k[11], 10, -1120210379);\n c = ii(c, d, a, b, k[2], 15, 718787259);\n b = ii(b, c, d, a, k[9], 21, -343485551);\n\n x[0] = add32(a, x[0]);\n x[1] = add32(b, x[1]);\n x[2] = add32(c, x[2]);\n x[3] = add32(d, x[3]);\n}\n\nfunction cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n\nfunction md51(s) {\n const n = s.length;\n const state = [1732584193, -271733879, -1732584194, 271733878];\n let i;\n for (i = 64; i <= s.length; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n const tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i++) {\n tail[i] = 0;\n }\n }\n tail[14] = n * 8;\n md5cycle(state, tail);\n return state;\n}\n\n/* there needs to be support for Unicode here,\n * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps\n * by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise\n * I suggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then\n * how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something\n * like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard\n * itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8\n * 8-bit unsigned value arrays.\n */\nfunction md5blk(s) { /* I figured global was faster. */\n const md5blks = [];\n let i; /* Andy King said do it this way. */\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) <<\n 24);\n }\n return md5blks;\n}\n\nconst hex_chr = '0123456789abcdef'.split('');\n\nfunction rhex(n) {\n let s = '';\n let j = 0;\n for (; j < 4; j++) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n}\n\nfunction hex(x) {\n for (let i = 0; i < x.length; i++) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n}\n\n/* this function is much faster,\nso if possible we use it. Some IEs\nare the only ones I know of that\nneed the idiotic second function,\ngenerated by an if clause. */\n\nfunction add32(a, b) {\n return (a + b) & 0xFFFFFFFF;\n}\n\nexport default md5;\n", "/**\n * @fileoverview Provides an interface to hashing functions available in Node.js or external libraries.\n * @see {@link https://github.com/asmcrypto/asmcrypto.js|asmCrypto}\n * @see {@link https://github.com/indutny/hash.js|hash.js}\n * @module crypto/hash\n */\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport md5 from './md5';\nimport util from '../../util';\nimport enums from '../../enums';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\nconst nodeCryptoHashes = nodeCrypto && nodeCrypto.getHashes();\n\nfunction nodeHash(type) {\n if (!nodeCrypto || !nodeCryptoHashes.includes(type)) {\n return;\n }\n return async function (data) {\n const shasum = nodeCrypto.createHash(type);\n return stream.transform(data, value => {\n shasum.update(value);\n }, () => new Uint8Array(shasum.digest()));\n };\n}\n\nfunction nobleHash(nobleHashName, webCryptoHashName) {\n const getNobleHash = async () => {\n const { nobleHashes } = await import('./noble_hashes');\n const hash = nobleHashes.get(nobleHashName);\n if (!hash) throw new Error('Unsupported hash');\n return hash;\n };\n\n return async function(data) {\n if (stream.isArrayStream(data)) {\n data = await stream.readToEnd(data);\n }\n if (util.isStream(data)) {\n const hash = await getNobleHash();\n\n const hashInstance = hash.create();\n return stream.transform(data, value => {\n hashInstance.update(value);\n }, () => hashInstance.digest());\n } else if (webCrypto && webCryptoHashName) {\n return new Uint8Array(await webCrypto.digest(webCryptoHashName, data));\n } else {\n const hash = await getNobleHash();\n\n return hash(data);\n }\n };\n}\n\nexport default {\n\n /** @see module:md5 */\n md5: nodeHash('md5') || md5,\n sha1: nodeHash('sha1') || nobleHash('sha1', 'SHA-1'),\n sha224: nodeHash('sha224') || nobleHash('sha224'),\n sha256: nodeHash('sha256') || nobleHash('sha256', 'SHA-256'),\n sha384: nodeHash('sha384') || nobleHash('sha384', 'SHA-384'),\n sha512: nodeHash('sha512') || nobleHash('sha512', 'SHA-512'),\n ripemd: nodeHash('ripemd160') || nobleHash('ripemd160'),\n sha3_256: nodeHash('sha3-256') || nobleHash('sha3_256'),\n sha3_512: nodeHash('sha3-512') || nobleHash('sha3_512'),\n\n /**\n * Create a hash on the specified data using the specified algorithm\n * @param {module:enums.hash} algo - Hash algorithm type (see {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4})\n * @param {Uint8Array} data - Data to be hashed\n * @returns {Promise} Hash value.\n */\n digest: function(algo, data) {\n switch (algo) {\n case enums.hash.md5:\n return this.md5(data);\n case enums.hash.sha1:\n return this.sha1(data);\n case enums.hash.ripemd:\n return this.ripemd(data);\n case enums.hash.sha256:\n return this.sha256(data);\n case enums.hash.sha384:\n return this.sha384(data);\n case enums.hash.sha512:\n return this.sha512(data);\n case enums.hash.sha224:\n return this.sha224(data);\n case enums.hash.sha3_256:\n return this.sha3_256(data);\n case enums.hash.sha3_512:\n return this.sha3_512(data);\n default:\n throw new Error('Unsupported hash function');\n }\n },\n\n /**\n * Returns the hash size in bytes of the specified hash algorithm type\n * @param {module:enums.hash} algo - Hash algorithm type (See {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4})\n * @returns {Integer} Size in bytes of the resulting hash.\n */\n getHashByteLength: function(algo) {\n switch (algo) {\n case enums.hash.md5:\n return 16;\n case enums.hash.sha1:\n case enums.hash.ripemd:\n return 20;\n case enums.hash.sha256:\n return 32;\n case enums.hash.sha384:\n return 48;\n case enums.hash.sha512:\n return 64;\n case enums.hash.sha224:\n return 28;\n case enums.hash.sha3_256:\n return 32;\n case enums.hash.sha3_512:\n return 64;\n default:\n throw new Error('Invalid hash algorithm.');\n }\n }\n};\n", "function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('hash must be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map", "/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */\nimport { bytes as abytes, isBytes } from './_assert.js';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u16 = (arr) => new Uint16Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 2));\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// big-endian hardware is rare. Just in case someone still decides to run ciphers:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`string expected, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * @example bytesToUtf8(new Uint8Array([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n else if (isBytes(data))\n data = copyBytes(data);\n else\n throw new Error(`Uint8Array expected, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts == null || typeof opts !== 'object')\n throw new Error('options must be defined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n// For runtime check if class implements interface\nexport class Hash {\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nexport const wrapCipher = (params, c) => {\n Object.assign(c, params);\n return c;\n};\n// Polyfill for Safari 14\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\nexport function u64Lengths(ciphertext, AAD) {\n const num = new Uint8Array(16);\n const view = createView(num);\n setBigUint64(view, 0, BigInt(AAD ? AAD.length : 0), true);\n setBigUint64(view, 8, BigInt(ciphertext.length), true);\n return num;\n}\n// Is byte array aligned to 4 byte offset (u32)?\nexport function isAligned32(bytes) {\n return bytes.byteOffset % 4 === 0;\n}\n// copy bytes to new u8a (aligned). Because Buffer.slice is broken.\nexport function copyBytes(bytes) {\n return Uint8Array.from(bytes);\n}\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n//# sourceMappingURL=utils.js.map", "import { bytes as abytes, exists as aexists, output as aoutput } from './_assert.js';\nimport { clean, copyBytes, createView, toBytes, u32 } from './utils.js';\n// GHash from AES-GCM and its little-endian \"mirror image\" Polyval from AES-SIV.\n// Implemented in terms of GHash with conversion function for keys\n// GCM GHASH from NIST SP800-38d, SIV from RFC 8452.\n// https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf\n// GHASH modulo: x^128 + x^7 + x^2 + x + 1\n// POLYVAL modulo: x^128 + x^127 + x^126 + x^121 + 1\nconst BLOCK_SIZE = 16;\n// TODO: rewrite\n// temporary padding buffer\nconst ZEROS16 = /* @__PURE__ */ new Uint8Array(16);\nconst ZEROS32 = u32(ZEROS16);\nconst POLY = 0xe1; // v = 2*v % POLY\n// v = 2*v % POLY\n// NOTE: because x + x = 0 (add/sub is same), mul2(x) != x+x\n// We can multiply any number using montgomery ladder and this function (works as double, add is simple xor)\nconst mul2 = (s0, s1, s2, s3) => {\n const hiBit = s3 & 1;\n return {\n s3: (s2 << 31) | (s3 >>> 1),\n s2: (s1 << 31) | (s2 >>> 1),\n s1: (s0 << 31) | (s1 >>> 1),\n s0: (s0 >>> 1) ^ ((POLY << 24) & -(hiBit & 1)), // reduce % poly\n };\n};\nconst swapLE = (n) => (((n >>> 0) & 0xff) << 24) |\n (((n >>> 8) & 0xff) << 16) |\n (((n >>> 16) & 0xff) << 8) |\n ((n >>> 24) & 0xff) |\n 0;\n/**\n * `mulX_POLYVAL(ByteReverse(H))` from spec\n * @param k mutated in place\n */\nexport function _toGHASHKey(k) {\n k.reverse();\n const hiBit = k[15] & 1;\n // k >>= 1\n let carry = 0;\n for (let i = 0; i < k.length; i++) {\n const t = k[i];\n k[i] = (t >>> 1) | carry;\n carry = (t & 1) << 7;\n }\n k[0] ^= -hiBit & 0xe1; // if (hiBit) n ^= 0xe1000000000000000000000000000000;\n return k;\n}\nconst estimateWindow = (bytes) => {\n if (bytes > 64 * 1024)\n return 8;\n if (bytes > 1024)\n return 4;\n return 2;\n};\nclass GHASH {\n // We select bits per window adaptively based on expectedLength\n constructor(key, expectedLength) {\n this.blockLen = BLOCK_SIZE;\n this.outputLen = BLOCK_SIZE;\n this.s0 = 0;\n this.s1 = 0;\n this.s2 = 0;\n this.s3 = 0;\n this.finished = false;\n key = toBytes(key);\n abytes(key, 16);\n const kView = createView(key);\n let k0 = kView.getUint32(0, false);\n let k1 = kView.getUint32(4, false);\n let k2 = kView.getUint32(8, false);\n let k3 = kView.getUint32(12, false);\n // generate table of doubled keys (half of montgomery ladder)\n const doubles = [];\n for (let i = 0; i < 128; i++) {\n doubles.push({ s0: swapLE(k0), s1: swapLE(k1), s2: swapLE(k2), s3: swapLE(k3) });\n ({ s0: k0, s1: k1, s2: k2, s3: k3 } = mul2(k0, k1, k2, k3));\n }\n const W = estimateWindow(expectedLength || 1024);\n if (![1, 2, 4, 8].includes(W))\n throw new Error(`ghash: wrong window size=${W}, should be 2, 4 or 8`);\n this.W = W;\n const bits = 128; // always 128 bits;\n const windows = bits / W;\n const windowSize = (this.windowSize = 2 ** W);\n const items = [];\n // Create precompute table for window of W bits\n for (let w = 0; w < windows; w++) {\n // truth table: 00, 01, 10, 11\n for (let byte = 0; byte < windowSize; byte++) {\n // prettier-ignore\n let s0 = 0, s1 = 0, s2 = 0, s3 = 0;\n for (let j = 0; j < W; j++) {\n const bit = (byte >>> (W - j - 1)) & 1;\n if (!bit)\n continue;\n const { s0: d0, s1: d1, s2: d2, s3: d3 } = doubles[W * w + j];\n (s0 ^= d0), (s1 ^= d1), (s2 ^= d2), (s3 ^= d3);\n }\n items.push({ s0, s1, s2, s3 });\n }\n }\n this.t = items;\n }\n _updateBlock(s0, s1, s2, s3) {\n (s0 ^= this.s0), (s1 ^= this.s1), (s2 ^= this.s2), (s3 ^= this.s3);\n const { W, t, windowSize } = this;\n // prettier-ignore\n let o0 = 0, o1 = 0, o2 = 0, o3 = 0;\n const mask = (1 << W) - 1; // 2**W will kill performance.\n let w = 0;\n for (const num of [s0, s1, s2, s3]) {\n for (let bytePos = 0; bytePos < 4; bytePos++) {\n const byte = (num >>> (8 * bytePos)) & 0xff;\n for (let bitPos = 8 / W - 1; bitPos >= 0; bitPos--) {\n const bit = (byte >>> (W * bitPos)) & mask;\n const { s0: e0, s1: e1, s2: e2, s3: e3 } = t[w * windowSize + bit];\n (o0 ^= e0), (o1 ^= e1), (o2 ^= e2), (o3 ^= e3);\n w += 1;\n }\n }\n }\n this.s0 = o0;\n this.s1 = o1;\n this.s2 = o2;\n this.s3 = o3;\n }\n update(data) {\n data = toBytes(data);\n aexists(this);\n const b32 = u32(data);\n const blocks = Math.floor(data.length / BLOCK_SIZE);\n const left = data.length % BLOCK_SIZE;\n for (let i = 0; i < blocks; i++) {\n this._updateBlock(b32[i * 4 + 0], b32[i * 4 + 1], b32[i * 4 + 2], b32[i * 4 + 3]);\n }\n if (left) {\n ZEROS16.set(data.subarray(blocks * BLOCK_SIZE));\n this._updateBlock(ZEROS32[0], ZEROS32[1], ZEROS32[2], ZEROS32[3]);\n clean(ZEROS32); // clean tmp buffer\n }\n return this;\n }\n destroy() {\n const { t } = this;\n // clean precompute table\n for (const elm of t) {\n (elm.s0 = 0), (elm.s1 = 0), (elm.s2 = 0), (elm.s3 = 0);\n }\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n const { s0, s1, s2, s3 } = this;\n const o32 = u32(out);\n o32[0] = s0;\n o32[1] = s1;\n o32[2] = s2;\n o32[3] = s3;\n return out;\n }\n digest() {\n const res = new Uint8Array(BLOCK_SIZE);\n this.digestInto(res);\n this.destroy();\n return res;\n }\n}\nclass Polyval extends GHASH {\n constructor(key, expectedLength) {\n key = toBytes(key);\n const ghKey = _toGHASHKey(copyBytes(key));\n super(ghKey, expectedLength);\n clean(ghKey);\n }\n update(data) {\n data = toBytes(data);\n aexists(this);\n const b32 = u32(data);\n const left = data.length % BLOCK_SIZE;\n const blocks = Math.floor(data.length / BLOCK_SIZE);\n for (let i = 0; i < blocks; i++) {\n this._updateBlock(swapLE(b32[i * 4 + 3]), swapLE(b32[i * 4 + 2]), swapLE(b32[i * 4 + 1]), swapLE(b32[i * 4 + 0]));\n }\n if (left) {\n ZEROS16.set(data.subarray(blocks * BLOCK_SIZE));\n this._updateBlock(swapLE(ZEROS32[3]), swapLE(ZEROS32[2]), swapLE(ZEROS32[1]), swapLE(ZEROS32[0]));\n clean(ZEROS32);\n }\n return this;\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // tmp ugly hack\n const { s0, s1, s2, s3 } = this;\n const o32 = u32(out);\n o32[0] = s0;\n o32[1] = s1;\n o32[2] = s2;\n o32[3] = s3;\n return out.reverse();\n }\n}\nfunction wrapConstructorWithKey(hashCons) {\n const hashC = (msg, key) => hashCons(key, msg.length).update(toBytes(msg)).digest();\n const tmp = hashCons(new Uint8Array(16), 0);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (key, expectedLength) => hashCons(key, expectedLength);\n return hashC;\n}\nexport const ghash = wrapConstructorWithKey((key, expectedLength) => new GHASH(key, expectedLength));\nexport const polyval = wrapConstructorWithKey((key, expectedLength) => new Polyval(key, expectedLength));\n//# sourceMappingURL=_polyval.js.map", "// prettier-ignore\nimport { bytes as abytes } from './_assert.js';\nimport { ghash, polyval } from './_polyval.js';\nimport { clean, concatBytes, copyBytes, createView, equalBytes, isAligned32, setBigUint64, u32, u8, wrapCipher, } from './utils.js';\n/*\nAES (Advanced Encryption Standard) aka Rijndael block cipher.\n\nData is split into 128-bit blocks. Encrypted in 10/12/14 rounds (128/192/256 bits). In every round:\n1. **S-box**, table substitution\n2. **Shift rows**, cyclic shift left of all rows of data array\n3. **Mix columns**, multiplying every column by fixed polynomial\n4. **Add round key**, round_key xor i-th column of array\n\nResources:\n- FIPS-197 https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf\n- Original proposal: https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf\n*/\nconst BLOCK_SIZE = 16;\nconst BLOCK_SIZE32 = 4;\nconst EMPTY_BLOCK = new Uint8Array(BLOCK_SIZE);\nconst POLY = 0x11b; // 1 + x + x**3 + x**4 + x**8\n// TODO: remove multiplication, binary ops only\nfunction mul2(n) {\n return (n << 1) ^ (POLY & -(n >> 7));\n}\nfunction mul(a, b) {\n let res = 0;\n for (; b > 0; b >>= 1) {\n // Montgomery ladder\n res ^= a & -(b & 1); // if (b&1) res ^=a (but const-time).\n a = mul2(a); // a = 2*a\n }\n return res;\n}\n// AES S-box is generated using finite field inversion,\n// an affine transform, and xor of a constant 0x63.\nconst sbox = /* @__PURE__ */ (() => {\n const t = new Uint8Array(256);\n for (let i = 0, x = 1; i < 256; i++, x ^= mul2(x))\n t[i] = x;\n const box = new Uint8Array(256);\n box[0] = 0x63; // first elm\n for (let i = 0; i < 255; i++) {\n let x = t[255 - i];\n x |= x << 8;\n box[t[i]] = (x ^ (x >> 4) ^ (x >> 5) ^ (x >> 6) ^ (x >> 7) ^ 0x63) & 0xff;\n }\n clean(t);\n return box;\n})();\n// Inverted S-box\nconst invSbox = /* @__PURE__ */ sbox.map((_, j) => sbox.indexOf(j));\n// Rotate u32 by 8\nconst rotr32_8 = (n) => (n << 24) | (n >>> 8);\nconst rotl32_8 = (n) => (n << 8) | (n >>> 24);\n// The byte swap operation for uint32 (LE<->BE)\nconst byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// T-table is optimization suggested in 5.2 of original proposal (missed from FIPS-197). Changes:\n// - LE instead of BE\n// - bigger tables: T0 and T1 are merged into T01 table and T2 & T3 into T23;\n// so index is u16, instead of u8. This speeds up things, unexpectedly\nfunction genTtable(sbox, fn) {\n if (sbox.length !== 256)\n throw new Error('Wrong sbox length');\n const T0 = new Uint32Array(256).map((_, j) => fn(sbox[j]));\n const T1 = T0.map(rotl32_8);\n const T2 = T1.map(rotl32_8);\n const T3 = T2.map(rotl32_8);\n const T01 = new Uint32Array(256 * 256);\n const T23 = new Uint32Array(256 * 256);\n const sbox2 = new Uint16Array(256 * 256);\n for (let i = 0; i < 256; i++) {\n for (let j = 0; j < 256; j++) {\n const idx = i * 256 + j;\n T01[idx] = T0[i] ^ T1[j];\n T23[idx] = T2[i] ^ T3[j];\n sbox2[idx] = (sbox[i] << 8) | sbox[j];\n }\n }\n return { sbox, sbox2, T0, T1, T2, T3, T01, T23 };\n}\nconst tableEncoding = /* @__PURE__ */ genTtable(sbox, (s) => (mul(s, 3) << 24) | (s << 16) | (s << 8) | mul(s, 2));\nconst tableDecoding = /* @__PURE__ */ genTtable(invSbox, (s) => (mul(s, 11) << 24) | (mul(s, 13) << 16) | (mul(s, 9) << 8) | mul(s, 14));\nconst xPowers = /* @__PURE__ */ (() => {\n const p = new Uint8Array(16);\n for (let i = 0, x = 1; i < 16; i++, x = mul2(x))\n p[i] = x;\n return p;\n})();\nexport function expandKeyLE(key) {\n abytes(key);\n const len = key.length;\n if (![16, 24, 32].includes(len))\n throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${len}`);\n const { sbox2 } = tableEncoding;\n const toClean = [];\n if (!isAligned32(key))\n toClean.push((key = copyBytes(key)));\n const k32 = u32(key);\n const Nk = k32.length;\n const subByte = (n) => applySbox(sbox2, n, n, n, n);\n const xk = new Uint32Array(len + 28); // expanded key\n xk.set(k32);\n // 4.3.1 Key expansion\n for (let i = Nk; i < xk.length; i++) {\n let t = xk[i - 1];\n if (i % Nk === 0)\n t = subByte(rotr32_8(t)) ^ xPowers[i / Nk - 1];\n else if (Nk > 6 && i % Nk === 4)\n t = subByte(t);\n xk[i] = xk[i - Nk] ^ t;\n }\n clean(...toClean);\n return xk;\n}\nexport function expandKeyDecLE(key) {\n const encKey = expandKeyLE(key);\n const xk = encKey.slice();\n const Nk = encKey.length;\n const { sbox2 } = tableEncoding;\n const { T0, T1, T2, T3 } = tableDecoding;\n // Inverse key by chunks of 4 (rounds)\n for (let i = 0; i < Nk; i += 4) {\n for (let j = 0; j < 4; j++)\n xk[i + j] = encKey[Nk - i - 4 + j];\n }\n clean(encKey);\n // apply InvMixColumn except first & last round\n for (let i = 4; i < Nk - 4; i++) {\n const x = xk[i];\n const w = applySbox(sbox2, x, x, x, x);\n xk[i] = T0[w & 0xff] ^ T1[(w >>> 8) & 0xff] ^ T2[(w >>> 16) & 0xff] ^ T3[w >>> 24];\n }\n return xk;\n}\n// Apply tables\nfunction apply0123(T01, T23, s0, s1, s2, s3) {\n return (T01[((s0 << 8) & 0xff00) | ((s1 >>> 8) & 0xff)] ^\n T23[((s2 >>> 8) & 0xff00) | ((s3 >>> 24) & 0xff)]);\n}\nfunction applySbox(sbox2, s0, s1, s2, s3) {\n return (sbox2[(s0 & 0xff) | (s1 & 0xff00)] |\n (sbox2[((s2 >>> 16) & 0xff) | ((s3 >>> 16) & 0xff00)] << 16));\n}\nfunction encrypt(xk, s0, s1, s2, s3) {\n const { sbox2, T01, T23 } = tableEncoding;\n let k = 0;\n (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]);\n const rounds = xk.length / 4 - 2;\n for (let i = 0; i < rounds; i++) {\n const t0 = xk[k++] ^ apply0123(T01, T23, s0, s1, s2, s3);\n const t1 = xk[k++] ^ apply0123(T01, T23, s1, s2, s3, s0);\n const t2 = xk[k++] ^ apply0123(T01, T23, s2, s3, s0, s1);\n const t3 = xk[k++] ^ apply0123(T01, T23, s3, s0, s1, s2);\n (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3);\n }\n // last round (without mixcolumns, so using SBOX2 table)\n const t0 = xk[k++] ^ applySbox(sbox2, s0, s1, s2, s3);\n const t1 = xk[k++] ^ applySbox(sbox2, s1, s2, s3, s0);\n const t2 = xk[k++] ^ applySbox(sbox2, s2, s3, s0, s1);\n const t3 = xk[k++] ^ applySbox(sbox2, s3, s0, s1, s2);\n return { s0: t0, s1: t1, s2: t2, s3: t3 };\n}\n// Can't be merged with encrypt: arg positions for apply0123 / applySbox are different\nfunction decrypt(xk, s0, s1, s2, s3) {\n const { sbox2, T01, T23 } = tableDecoding;\n let k = 0;\n (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]);\n const rounds = xk.length / 4 - 2;\n for (let i = 0; i < rounds; i++) {\n const t0 = xk[k++] ^ apply0123(T01, T23, s0, s3, s2, s1);\n const t1 = xk[k++] ^ apply0123(T01, T23, s1, s0, s3, s2);\n const t2 = xk[k++] ^ apply0123(T01, T23, s2, s1, s0, s3);\n const t3 = xk[k++] ^ apply0123(T01, T23, s3, s2, s1, s0);\n (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3);\n }\n // Last round\n const t0 = xk[k++] ^ applySbox(sbox2, s0, s3, s2, s1);\n const t1 = xk[k++] ^ applySbox(sbox2, s1, s0, s3, s2);\n const t2 = xk[k++] ^ applySbox(sbox2, s2, s1, s0, s3);\n const t3 = xk[k++] ^ applySbox(sbox2, s3, s2, s1, s0);\n return { s0: t0, s1: t1, s2: t2, s3: t3 };\n}\nfunction getDst(len, dst) {\n if (dst === undefined)\n return new Uint8Array(len);\n abytes(dst);\n if (dst.length < len)\n throw new Error(`aes: wrong destination length, expected at least ${len}, got: ${dst.length}`);\n if (!isAligned32(dst))\n throw new Error('unaligned dst');\n return dst;\n}\n// TODO: investigate merging with ctr32\nfunction ctrCounter(xk, nonce, src, dst) {\n abytes(nonce, BLOCK_SIZE);\n abytes(src);\n const srcLen = src.length;\n dst = getDst(srcLen, dst);\n const ctr = nonce;\n const c32 = u32(ctr);\n // Fill block (empty, ctr=0)\n let { s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]);\n const src32 = u32(src);\n const dst32 = u32(dst);\n // process blocks\n for (let i = 0; i + 4 <= src32.length; i += 4) {\n dst32[i + 0] = src32[i + 0] ^ s0;\n dst32[i + 1] = src32[i + 1] ^ s1;\n dst32[i + 2] = src32[i + 2] ^ s2;\n dst32[i + 3] = src32[i + 3] ^ s3;\n // Full 128 bit counter with wrap around\n let carry = 1;\n for (let i = ctr.length - 1; i >= 0; i--) {\n carry = (carry + (ctr[i] & 0xff)) | 0;\n ctr[i] = carry & 0xff;\n carry >>>= 8;\n }\n ({ s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]));\n }\n // leftovers (less than block)\n // It's possible to handle > u32 fast, but is it worth it?\n const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n if (start < srcLen) {\n const b32 = new Uint32Array([s0, s1, s2, s3]);\n const buf = u8(b32);\n for (let i = start, pos = 0; i < srcLen; i++, pos++)\n dst[i] = src[i] ^ buf[pos];\n clean(b32);\n }\n return dst;\n}\n// AES CTR with overflowing 32 bit counter\n// It's possible to do 32le significantly simpler (and probably faster) by using u32.\n// But, we need both, and perf bottleneck is in ghash anyway.\nfunction ctr32(xk, isLE, nonce, src, dst) {\n abytes(nonce, BLOCK_SIZE);\n abytes(src);\n dst = getDst(src.length, dst);\n const ctr = nonce; // write new value to nonce, so it can be re-used\n const c32 = u32(ctr);\n const view = createView(ctr);\n const src32 = u32(src);\n const dst32 = u32(dst);\n const ctrPos = isLE ? 0 : 12;\n const srcLen = src.length;\n // Fill block (empty, ctr=0)\n let ctrNum = view.getUint32(ctrPos, isLE); // read current counter value\n let { s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]);\n // process blocks\n for (let i = 0; i + 4 <= src32.length; i += 4) {\n dst32[i + 0] = src32[i + 0] ^ s0;\n dst32[i + 1] = src32[i + 1] ^ s1;\n dst32[i + 2] = src32[i + 2] ^ s2;\n dst32[i + 3] = src32[i + 3] ^ s3;\n ctrNum = (ctrNum + 1) >>> 0; // u32 wrap\n view.setUint32(ctrPos, ctrNum, isLE);\n ({ s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]));\n }\n // leftovers (less than a block)\n const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n if (start < srcLen) {\n const b32 = new Uint32Array([s0, s1, s2, s3]);\n const buf = u8(b32);\n for (let i = start, pos = 0; i < srcLen; i++, pos++)\n dst[i] = src[i] ^ buf[pos];\n clean(b32);\n }\n return dst;\n}\n/**\n * CTR: counter mode. Creates stream cipher.\n * Requires good IV. Parallelizable. OK, but no MAC.\n */\nexport const ctr = wrapCipher({ blockSize: 16, nonceLength: 16 }, function ctr(key, nonce) {\n abytes(key);\n abytes(nonce, BLOCK_SIZE);\n function processCtr(buf, dst) {\n abytes(buf);\n if (dst !== undefined) {\n abytes(dst);\n if (!isAligned32(dst))\n throw new Error('unaligned destination');\n }\n const xk = expandKeyLE(key);\n const n = copyBytes(nonce); // align + avoid changing\n const toClean = [xk, n];\n if (!isAligned32(buf))\n toClean.push((buf = copyBytes(buf)));\n const out = ctrCounter(xk, n, buf, dst);\n clean(...toClean);\n return out;\n }\n return {\n encrypt: (plaintext, dst) => processCtr(plaintext, dst),\n decrypt: (ciphertext, dst) => processCtr(ciphertext, dst),\n };\n});\nfunction validateBlockDecrypt(data) {\n abytes(data);\n if (data.length % BLOCK_SIZE !== 0) {\n throw new Error(`aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size ${BLOCK_SIZE}`);\n }\n}\nfunction validateBlockEncrypt(plaintext, pcks5, dst) {\n abytes(plaintext);\n let outLen = plaintext.length;\n const remaining = outLen % BLOCK_SIZE;\n if (!pcks5 && remaining !== 0)\n throw new Error('aec/(cbc-ecb): unpadded plaintext with disabled padding');\n if (!isAligned32(plaintext))\n plaintext = copyBytes(plaintext);\n const b = u32(plaintext);\n if (pcks5) {\n let left = BLOCK_SIZE - remaining;\n if (!left)\n left = BLOCK_SIZE; // if no bytes left, create empty padding block\n outLen = outLen + left;\n }\n const out = getDst(outLen, dst);\n const o = u32(out);\n return { b, o, out };\n}\nfunction validatePCKS(data, pcks5) {\n if (!pcks5)\n return data;\n const len = data.length;\n if (!len)\n throw new Error('aes/pcks5: empty ciphertext not allowed');\n const lastByte = data[len - 1];\n if (lastByte <= 0 || lastByte > 16)\n throw new Error('aes/pcks5: wrong padding');\n const out = data.subarray(0, -lastByte);\n for (let i = 0; i < lastByte; i++)\n if (data[len - i - 1] !== lastByte)\n throw new Error('aes/pcks5: wrong padding');\n return out;\n}\nfunction padPCKS(left) {\n const tmp = new Uint8Array(16);\n const tmp32 = u32(tmp);\n tmp.set(left);\n const paddingByte = BLOCK_SIZE - left.length;\n for (let i = BLOCK_SIZE - paddingByte; i < BLOCK_SIZE; i++)\n tmp[i] = paddingByte;\n return tmp32;\n}\n/**\n * ECB: Electronic CodeBook. Simple deterministic replacement.\n * Dangerous: always map x to y. See [AES Penguin](https://words.filippo.io/the-ecb-penguin/).\n */\nexport const ecb = wrapCipher({ blockSize: 16 }, function ecb(key, opts = {}) {\n abytes(key);\n const pcks5 = !opts.disablePadding;\n return {\n encrypt(plaintext, dst) {\n const { b, o, out: _out } = validateBlockEncrypt(plaintext, pcks5, dst);\n const xk = expandKeyLE(key);\n let i = 0;\n for (; i + 4 <= b.length;) {\n const { s0, s1, s2, s3 } = encrypt(xk, b[i + 0], b[i + 1], b[i + 2], b[i + 3]);\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n if (pcks5) {\n const tmp32 = padPCKS(plaintext.subarray(i * 4));\n const { s0, s1, s2, s3 } = encrypt(xk, tmp32[0], tmp32[1], tmp32[2], tmp32[3]);\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n clean(xk);\n return _out;\n },\n decrypt(ciphertext, dst) {\n validateBlockDecrypt(ciphertext);\n const xk = expandKeyDecLE(key);\n const out = getDst(ciphertext.length, dst);\n const toClean = [xk];\n if (!isAligned32(ciphertext))\n toClean.push((ciphertext = copyBytes(ciphertext)));\n const b = u32(ciphertext);\n const o = u32(out);\n for (let i = 0; i + 4 <= b.length;) {\n const { s0, s1, s2, s3 } = decrypt(xk, b[i + 0], b[i + 1], b[i + 2], b[i + 3]);\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n clean(...toClean);\n return validatePCKS(out, pcks5);\n },\n };\n});\n/**\n * CBC: Cipher-Block-Chaining. Key is previous round’s block.\n * Fragile: needs proper padding. Unauthenticated: needs MAC.\n */\nexport const cbc = wrapCipher({ blockSize: 16, nonceLength: 16 }, function cbc(key, iv, opts = {}) {\n abytes(key);\n abytes(iv, 16);\n const pcks5 = !opts.disablePadding;\n return {\n encrypt(plaintext, dst) {\n const xk = expandKeyLE(key);\n const { b, o, out: _out } = validateBlockEncrypt(plaintext, pcks5, dst);\n let _iv = iv;\n const toClean = [xk];\n if (!isAligned32(_iv))\n toClean.push((_iv = copyBytes(_iv)));\n const n32 = u32(_iv);\n // prettier-ignore\n let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n let i = 0;\n for (; i + 4 <= b.length;) {\n (s0 ^= b[i + 0]), (s1 ^= b[i + 1]), (s2 ^= b[i + 2]), (s3 ^= b[i + 3]);\n ({ s0, s1, s2, s3 } = encrypt(xk, s0, s1, s2, s3));\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n if (pcks5) {\n const tmp32 = padPCKS(plaintext.subarray(i * 4));\n (s0 ^= tmp32[0]), (s1 ^= tmp32[1]), (s2 ^= tmp32[2]), (s3 ^= tmp32[3]);\n ({ s0, s1, s2, s3 } = encrypt(xk, s0, s1, s2, s3));\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n clean(...toClean);\n return _out;\n },\n decrypt(ciphertext, dst) {\n validateBlockDecrypt(ciphertext);\n const xk = expandKeyDecLE(key);\n let _iv = iv;\n const toClean = [xk];\n if (!isAligned32(_iv))\n toClean.push((_iv = copyBytes(_iv)));\n const n32 = u32(_iv);\n const out = getDst(ciphertext.length, dst);\n if (!isAligned32(ciphertext))\n toClean.push((ciphertext = copyBytes(ciphertext)));\n const b = u32(ciphertext);\n const o = u32(out);\n // prettier-ignore\n let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n for (let i = 0; i + 4 <= b.length;) {\n // prettier-ignore\n const ps0 = s0, ps1 = s1, ps2 = s2, ps3 = s3;\n (s0 = b[i + 0]), (s1 = b[i + 1]), (s2 = b[i + 2]), (s3 = b[i + 3]);\n const { s0: o0, s1: o1, s2: o2, s3: o3 } = decrypt(xk, s0, s1, s2, s3);\n (o[i++] = o0 ^ ps0), (o[i++] = o1 ^ ps1), (o[i++] = o2 ^ ps2), (o[i++] = o3 ^ ps3);\n }\n clean(...toClean);\n return validatePCKS(out, pcks5);\n },\n };\n});\n/**\n * CFB: Cipher Feedback Mode. The input for the block cipher is the previous cipher output.\n * Unauthenticated: needs MAC.\n */\nexport const cfb = wrapCipher({ blockSize: 16, nonceLength: 16 }, function cfb(key, iv) {\n abytes(key);\n abytes(iv, 16);\n function processCfb(src, isEncrypt, dst) {\n abytes(src);\n const srcLen = src.length;\n dst = getDst(srcLen, dst);\n const xk = expandKeyLE(key);\n let _iv = iv;\n const toClean = [xk];\n if (!isAligned32(_iv))\n toClean.push((_iv = copyBytes(_iv)));\n if (!isAligned32(src))\n toClean.push((src = copyBytes(src)));\n const src32 = u32(src);\n const dst32 = u32(dst);\n const next32 = isEncrypt ? dst32 : src32;\n const n32 = u32(_iv);\n // prettier-ignore\n let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n for (let i = 0; i + 4 <= src32.length;) {\n const { s0: e0, s1: e1, s2: e2, s3: e3 } = encrypt(xk, s0, s1, s2, s3);\n dst32[i + 0] = src32[i + 0] ^ e0;\n dst32[i + 1] = src32[i + 1] ^ e1;\n dst32[i + 2] = src32[i + 2] ^ e2;\n dst32[i + 3] = src32[i + 3] ^ e3;\n (s0 = next32[i++]), (s1 = next32[i++]), (s2 = next32[i++]), (s3 = next32[i++]);\n }\n // leftovers (less than block)\n const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n if (start < srcLen) {\n ({ s0, s1, s2, s3 } = encrypt(xk, s0, s1, s2, s3));\n const buf = u8(new Uint32Array([s0, s1, s2, s3]));\n for (let i = start, pos = 0; i < srcLen; i++, pos++)\n dst[i] = src[i] ^ buf[pos];\n clean(buf);\n }\n clean(...toClean);\n return dst;\n }\n return {\n encrypt: (plaintext, dst) => processCfb(plaintext, true, dst),\n decrypt: (ciphertext, dst) => processCfb(ciphertext, false, dst),\n };\n});\n// TODO: merge with chacha, however gcm has bitLen while chacha has byteLen\nfunction computeTag(fn, isLE, key, data, AAD) {\n const aadLength = AAD == null ? 0 : AAD.length;\n const h = fn.create(key, data.length + aadLength);\n if (AAD)\n h.update(AAD);\n h.update(data);\n const num = new Uint8Array(16);\n const view = createView(num);\n if (AAD)\n setBigUint64(view, 0, BigInt(aadLength * 8), isLE);\n setBigUint64(view, 8, BigInt(data.length * 8), isLE);\n h.update(num);\n const res = h.digest();\n clean(num);\n return res;\n}\n/**\n * GCM: Galois/Counter Mode.\n * Modern, parallel version of CTR, with MAC.\n * Be careful: MACs can be forged.\n * Unsafe to use random nonces under the same key, due to collision chance.\n * As for nonce size, prefer 12-byte, instead of 8-byte.\n */\nexport const gcm = wrapCipher({ blockSize: 16, nonceLength: 12, tagLength: 16 }, function gcm(key, nonce, AAD) {\n abytes(key);\n abytes(nonce);\n if (AAD !== undefined)\n abytes(AAD);\n // NIST 800-38d doesn't enforce minimum nonce length.\n // We enforce 8 bytes for compat with openssl.\n // 12 bytes are recommended. More than 12 bytes would be converted into 12.\n if (nonce.length < 8)\n throw new Error('aes/gcm: invalid nonce length');\n const tagLength = 16;\n function _computeTag(authKey, tagMask, data) {\n const tag = computeTag(ghash, false, authKey, data, AAD);\n for (let i = 0; i < tagMask.length; i++)\n tag[i] ^= tagMask[i];\n return tag;\n }\n function deriveKeys() {\n const xk = expandKeyLE(key);\n const authKey = EMPTY_BLOCK.slice();\n const counter = EMPTY_BLOCK.slice();\n ctr32(xk, false, counter, counter, authKey);\n // NIST 800-38d, page 15: different behavior for 96-bit and non-96-bit nonces\n if (nonce.length === 12) {\n counter.set(nonce);\n }\n else {\n const nonceLen = EMPTY_BLOCK.slice();\n const view = createView(nonceLen);\n setBigUint64(view, 8, BigInt(nonce.length * 8), false);\n // ghash(nonce || u64be(0) || u64be(nonceLen*8))\n const g = ghash.create(authKey).update(nonce).update(nonceLen);\n g.digestInto(counter); // digestInto doesn't trigger '.destroy'\n g.destroy();\n }\n const tagMask = ctr32(xk, false, counter, EMPTY_BLOCK);\n return { xk, authKey, counter, tagMask };\n }\n return {\n encrypt(plaintext) {\n abytes(plaintext);\n const { xk, authKey, counter, tagMask } = deriveKeys();\n const out = new Uint8Array(plaintext.length + tagLength);\n const toClean = [xk, authKey, counter, tagMask];\n if (!isAligned32(plaintext))\n toClean.push((plaintext = copyBytes(plaintext)));\n ctr32(xk, false, counter, plaintext, out);\n const tag = _computeTag(authKey, tagMask, out.subarray(0, out.length - tagLength));\n toClean.push(tag);\n out.set(tag, plaintext.length);\n clean(...toClean);\n return out;\n },\n decrypt(ciphertext) {\n abytes(ciphertext);\n if (ciphertext.length < tagLength)\n throw new Error(`aes/gcm: ciphertext less than tagLen (${tagLength})`);\n const { xk, authKey, counter, tagMask } = deriveKeys();\n const toClean = [xk, authKey, tagMask, counter];\n if (!isAligned32(ciphertext))\n toClean.push((ciphertext = copyBytes(ciphertext)));\n const data = ciphertext.subarray(0, -tagLength);\n const passedTag = ciphertext.subarray(-tagLength);\n const tag = _computeTag(authKey, tagMask, data);\n toClean.push(tag);\n if (!equalBytes(tag, passedTag))\n throw new Error('aes/gcm: invalid ghash tag');\n const out = ctr32(xk, false, counter, data);\n clean(...toClean);\n return out;\n },\n };\n});\nconst limit = (name, min, max) => (value) => {\n if (!Number.isSafeInteger(value) || min > value || value > max)\n throw new Error(`${name}: invalid value=${value}, must be [${min}..${max}]`);\n};\n/**\n * AES-GCM-SIV: classic AES-GCM with nonce-misuse resistance.\n * Guarantees that, when a nonce is repeated, the only security loss is that identical\n * plaintexts will produce identical ciphertexts.\n * RFC 8452, https://datatracker.ietf.org/doc/html/rfc8452\n */\nexport const siv = wrapCipher({ blockSize: 16, nonceLength: 12, tagLength: 16 }, function siv(key, nonce, AAD) {\n const tagLength = 16;\n // From RFC 8452: Section 6\n const AAD_LIMIT = limit('AAD', 0, 2 ** 36);\n const PLAIN_LIMIT = limit('plaintext', 0, 2 ** 36);\n const NONCE_LIMIT = limit('nonce', 12, 12);\n const CIPHER_LIMIT = limit('ciphertext', 16, 2 ** 36 + 16);\n abytes(key, 16, 24, 32);\n abytes(nonce);\n NONCE_LIMIT(nonce.length);\n if (AAD !== undefined) {\n abytes(AAD);\n AAD_LIMIT(AAD.length);\n }\n function deriveKeys() {\n const xk = expandKeyLE(key);\n const encKey = new Uint8Array(key.length);\n const authKey = new Uint8Array(16);\n const toClean = [xk, encKey];\n let _nonce = nonce;\n if (!isAligned32(_nonce))\n toClean.push((_nonce = copyBytes(_nonce)));\n const n32 = u32(_nonce);\n // prettier-ignore\n let s0 = 0, s1 = n32[0], s2 = n32[1], s3 = n32[2];\n let counter = 0;\n for (const derivedKey of [authKey, encKey].map(u32)) {\n const d32 = u32(derivedKey);\n for (let i = 0; i < d32.length; i += 2) {\n // aes(u32le(0) || nonce)[:8] || aes(u32le(1) || nonce)[:8] ...\n const { s0: o0, s1: o1 } = encrypt(xk, s0, s1, s2, s3);\n d32[i + 0] = o0;\n d32[i + 1] = o1;\n s0 = ++counter; // increment counter inside state\n }\n }\n const res = { authKey, encKey: expandKeyLE(encKey) };\n // Cleanup\n clean(...toClean);\n return res;\n }\n function _computeTag(encKey, authKey, data) {\n const tag = computeTag(polyval, true, authKey, data, AAD);\n // Compute the expected tag by XORing S_s and the nonce, clearing the\n // most significant bit of the last byte and encrypting with the\n // message-encryption key.\n for (let i = 0; i < 12; i++)\n tag[i] ^= nonce[i];\n tag[15] &= 0x7f; // Clear the highest bit\n // encrypt tag as block\n const t32 = u32(tag);\n // prettier-ignore\n let s0 = t32[0], s1 = t32[1], s2 = t32[2], s3 = t32[3];\n ({ s0, s1, s2, s3 } = encrypt(encKey, s0, s1, s2, s3));\n (t32[0] = s0), (t32[1] = s1), (t32[2] = s2), (t32[3] = s3);\n return tag;\n }\n // actual decrypt/encrypt of message.\n function processSiv(encKey, tag, input) {\n let block = copyBytes(tag);\n block[15] |= 0x80; // Force highest bit\n const res = ctr32(encKey, true, block, input);\n // Cleanup\n clean(block);\n return res;\n }\n return {\n encrypt(plaintext) {\n abytes(plaintext);\n PLAIN_LIMIT(plaintext.length);\n const { encKey, authKey } = deriveKeys();\n const tag = _computeTag(encKey, authKey, plaintext);\n const toClean = [encKey, authKey, tag];\n if (!isAligned32(plaintext))\n toClean.push((plaintext = copyBytes(plaintext)));\n const out = new Uint8Array(plaintext.length + tagLength);\n out.set(tag, plaintext.length);\n out.set(processSiv(encKey, tag, plaintext));\n // Cleanup\n clean(...toClean);\n return out;\n },\n decrypt(ciphertext) {\n abytes(ciphertext);\n CIPHER_LIMIT(ciphertext.length);\n const tag = ciphertext.subarray(-tagLength);\n const { encKey, authKey } = deriveKeys();\n const toClean = [encKey, authKey];\n if (!isAligned32(ciphertext))\n toClean.push((ciphertext = copyBytes(ciphertext)));\n const plaintext = processSiv(encKey, tag, ciphertext.subarray(0, -tagLength));\n const expectedTag = _computeTag(encKey, authKey, plaintext);\n toClean.push(expectedTag);\n if (!equalBytes(tag, expectedTag)) {\n clean(...toClean);\n throw new Error('invalid polyval tag');\n }\n // Cleanup\n clean(...toClean);\n return plaintext;\n },\n };\n});\nfunction isBytes32(a) {\n return (a != null &&\n typeof a === 'object' &&\n (a instanceof Uint32Array || a.constructor.name === 'Uint32Array'));\n}\nfunction encryptBlock(xk, block) {\n abytes(block, 16);\n if (!isBytes32(xk))\n throw new Error('_encryptBlock accepts result of expandKeyLE');\n const b32 = u32(block);\n let { s0, s1, s2, s3 } = encrypt(xk, b32[0], b32[1], b32[2], b32[3]);\n (b32[0] = s0), (b32[1] = s1), (b32[2] = s2), (b32[3] = s3);\n return block;\n}\nfunction decryptBlock(xk, block) {\n abytes(block, 16);\n if (!isBytes32(xk))\n throw new Error('_decryptBlock accepts result of expandKeyLE');\n const b32 = u32(block);\n let { s0, s1, s2, s3 } = decrypt(xk, b32[0], b32[1], b32[2], b32[3]);\n (b32[0] = s0), (b32[1] = s1), (b32[2] = s2), (b32[3] = s3);\n return block;\n}\n/**\n * AES-W (base for AESKW/AESKWP).\n * Specs: [SP800-38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf),\n * [RFC 3394](https://datatracker.ietf.org/doc/rfc3394/),\n * [RFC 5649](https://datatracker.ietf.org/doc/rfc5649/).\n */\nconst AESW = {\n /*\n High-level pseudocode:\n ```\n A: u64 = IV\n out = []\n for (let i=0, ctr = 0; i<6; i++) {\n for (const chunk of chunks(plaintext, 8)) {\n A ^= swapEndianess(ctr++)\n [A, res] = chunks(encrypt(A || chunk), 8);\n out ||= res\n }\n }\n out = A || out\n ```\n Decrypt is the same, but reversed.\n */\n encrypt(kek, out) {\n // Size is limited to 4GB, otherwise ctr will overflow and we'll need to switch to bigints.\n // If you need it larger, open an issue.\n if (out.length >= 2 ** 32)\n throw new Error('plaintext should be less than 4gb');\n const xk = expandKeyLE(kek);\n if (out.length === 16)\n encryptBlock(xk, out);\n else {\n const o32 = u32(out);\n // prettier-ignore\n let a0 = o32[0], a1 = o32[1]; // A\n for (let j = 0, ctr = 1; j < 6; j++) {\n for (let pos = 2; pos < o32.length; pos += 2, ctr++) {\n const { s0, s1, s2, s3 } = encrypt(xk, a0, a1, o32[pos], o32[pos + 1]);\n // A = MSB(64, B) ^ t where t = (n*j)+i\n (a0 = s0), (a1 = s1 ^ byteSwap(ctr)), (o32[pos] = s2), (o32[pos + 1] = s3);\n }\n }\n (o32[0] = a0), (o32[1] = a1); // out = A || out\n }\n xk.fill(0);\n },\n decrypt(kek, out) {\n if (out.length - 8 >= 2 ** 32)\n throw new Error('ciphertext should be less than 4gb');\n const xk = expandKeyDecLE(kek);\n const chunks = out.length / 8 - 1; // first chunk is IV\n if (chunks === 1)\n decryptBlock(xk, out);\n else {\n const o32 = u32(out);\n // prettier-ignore\n let a0 = o32[0], a1 = o32[1]; // A\n for (let j = 0, ctr = chunks * 6; j < 6; j++) {\n for (let pos = chunks * 2; pos >= 1; pos -= 2, ctr--) {\n a1 ^= byteSwap(ctr);\n const { s0, s1, s2, s3 } = decrypt(xk, a0, a1, o32[pos], o32[pos + 1]);\n (a0 = s0), (a1 = s1), (o32[pos] = s2), (o32[pos + 1] = s3);\n }\n }\n (o32[0] = a0), (o32[1] = a1);\n }\n xk.fill(0);\n },\n};\nconst AESKW_IV = new Uint8Array(8).fill(0xa6); // A6A6A6A6A6A6A6A6\n/**\n * AES-KW (key-wrap). Injects static IV into plaintext, adds counter, encrypts 6 times.\n * Reduces block size from 16 to 8 bytes.\n * For padded version, use aeskwp.\n * [RFC 3394](https://datatracker.ietf.org/doc/rfc3394/),\n * [NIST.SP.800-38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf).\n */\nexport const aeskw = wrapCipher({ blockSize: 8 }, (kek) => ({\n encrypt(plaintext) {\n abytes(plaintext);\n if (!plaintext.length || plaintext.length % 8 !== 0)\n throw new Error('invalid plaintext length');\n if (plaintext.length === 8)\n throw new Error('8-byte keys not allowed in AESKW, use AESKWP instead');\n const out = concatBytes(AESKW_IV, plaintext);\n AESW.encrypt(kek, out);\n return out;\n },\n decrypt(ciphertext) {\n abytes(ciphertext);\n // ciphertext must be at least 24 bytes and a multiple of 8 bytes\n // 24 because should have at least two block (1 iv + 2).\n // Replace with 16 to enable '8-byte keys'\n if (ciphertext.length % 8 !== 0 || ciphertext.length < 3 * 8)\n throw new Error('invalid ciphertext length');\n const out = copyBytes(ciphertext);\n AESW.decrypt(kek, out);\n if (!equalBytes(out.subarray(0, 8), AESKW_IV))\n throw new Error('integrity check failed');\n out.subarray(0, 8).fill(0); // ciphertext.subarray(0, 8) === IV, but we clean it anyway\n return out.subarray(8);\n },\n}));\n/*\nWe don't support 8-byte keys. The rabbit hole:\n\n- Wycheproof says: \"NIST SP 800-38F does not define the wrapping of 8 byte keys.\n RFC 3394 Section 2 on the other hand specifies that 8 byte keys are wrapped\n by directly encrypting one block with AES.\"\n - https://github.com/C2SP/wycheproof/blob/master/doc/key_wrap.md\n - \"RFC 3394 specifies in Section 2, that the input for the key wrap\n algorithm must be at least two blocks and otherwise the constant\n field and key are simply encrypted with ECB as a single block\"\n- What RFC 3394 actually says (in Section 2):\n - \"Before being wrapped, the key data is parsed into n blocks of 64 bits.\n The only restriction the key wrap algorithm places on n is that n be\n at least two\"\n - \"For key data with length less than or equal to 64 bits, the constant\n field used in this specification and the key data form a single\n 128-bit codebook input making this key wrap unnecessary.\"\n- Which means \"assert(n >= 2)\" and \"use something else for 8 byte keys\"\n- NIST SP800-38F actually prohibits 8-byte in \"5.3.1 Mandatory Limits\".\n It states that plaintext for KW should be \"2 to 2^54 -1 semiblocks\".\n- So, where does \"directly encrypt single block with AES\" come from?\n - Not RFC 3394. Pseudocode of key wrap in 2.2 explicitly uses\n loop of 6 for any code path\n - There is a weird W3C spec:\n https://www.w3.org/TR/2002/REC-xmlenc-core-20021210/Overview.html#kw-aes128\n - This spec is outdated, as admitted by Wycheproof authors\n - There is RFC 5649 for padded key wrap, which is padding construction on\n top of AESKW. In '4.1.2' it says: \"If the padded plaintext contains exactly\n eight octets, then prepend the AIV as defined in Section 3 above to P[1] and\n encrypt the resulting 128-bit block using AES in ECB mode [Modes] with key\n K (the KEK). In this case, the output is two 64-bit blocks C[0] and C[1]:\"\n - Browser subtle crypto is actually crashes on wrapping keys less than 16 bytes:\n `Error: error:1C8000E6:Provider routines::invalid input length] { opensslErrorStack: [ 'error:030000BD:digital envelope routines::update error' ]`\n\nIn the end, seems like a bug in Wycheproof.\nThe 8-byte check can be easily disabled inside of AES_W.\n*/\nconst AESKWP_IV = 0xa65959a6; // single u32le value\n/**\n * AES-KW, but with padding and allows random keys.\n * Second u32 of IV is used as counter for length.\n * [RFC 5649](https://www.rfc-editor.org/rfc/rfc5649)\n */\nexport const aeskwp = wrapCipher({ blockSize: 8 }, (kek) => ({\n encrypt(plaintext) {\n abytes(plaintext);\n if (!plaintext.length)\n throw new Error('invalid plaintext length');\n const padded = Math.ceil(plaintext.length / 8) * 8;\n const out = new Uint8Array(8 + padded);\n out.set(plaintext, 8);\n const out32 = u32(out);\n out32[0] = AESKWP_IV;\n out32[1] = byteSwap(plaintext.length);\n AESW.encrypt(kek, out);\n return out;\n },\n decrypt(ciphertext) {\n abytes(ciphertext);\n // 16 because should have at least one block\n if (ciphertext.length < 16)\n throw new Error('invalid ciphertext length');\n const out = copyBytes(ciphertext);\n const o32 = u32(out);\n AESW.decrypt(kek, out);\n const len = byteSwap(o32[1]) >>> 0;\n const padded = Math.ceil(len / 8) * 8;\n if (o32[0] !== AESKWP_IV || out.length - 8 !== padded)\n throw new Error('integrity check failed');\n for (let i = len; i < padded; i++)\n if (out[8 + i] !== 0)\n throw new Error('integrity check failed');\n out.subarray(0, 8).fill(0); // ciphertext.subarray(0, 8) === IV, but we clean it anyway\n return out.subarray(8, 8 + len);\n },\n}));\n// Private, unsafe low-level methods. Can change at any time.\nexport const unsafe = {\n expandKeyLE,\n expandKeyDecLE,\n encrypt,\n decrypt,\n encryptBlock,\n decryptBlock,\n ctrCounter,\n ctr32,\n};\n//# sourceMappingURL=aes.js.map", "// Modified by ProtonTech AG\n\n// Modified by Recurity Labs GmbH\n\n// modified version of https://www.hanewin.net/encrypt/PGdecode.js:\n\n/* OpenPGP encryption using RSA/AES\n * Copyright 2005-2006 Herbert Hanewinkel, www.haneWIN.de\n * version 2.0, check www.haneWIN.de for the latest version\n\n * This software is provided as-is, without express or implied warranty.\n * Permission to use, copy, modify, distribute or sell this software, with or\n * without fee, for any purpose and by any individual or organization, is hereby\n * granted, provided that the above copyright notice and this paragraph appear\n * in all copies. Distribution as a part of an application or binary must\n * include the above copyright notice in the documentation and/or other\n * materials provided with the application or distribution.\n */\n\n/**\n * @module crypto/mode/cfb\n */\n\nimport { cfb as nobleAesCfb, unsafe as nobleAesHelpers } from '@noble/ciphers/aes';\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport util from '../../util';\nimport enums from '../../enums';\nimport { getLegacyCipher, getCipherParams } from '../cipher';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\n\nconst knownAlgos = nodeCrypto ? nodeCrypto.getCiphers() : [];\nconst nodeAlgos = {\n idea: knownAlgos.includes('idea-cfb') ? 'idea-cfb' : undefined, /* Unused, not implemented */\n tripledes: knownAlgos.includes('des-ede3-cfb') ? 'des-ede3-cfb' : undefined,\n cast5: knownAlgos.includes('cast5-cfb') ? 'cast5-cfb' : undefined,\n blowfish: knownAlgos.includes('bf-cfb') ? 'bf-cfb' : undefined,\n aes128: knownAlgos.includes('aes-128-cfb') ? 'aes-128-cfb' : undefined,\n aes192: knownAlgos.includes('aes-192-cfb') ? 'aes-192-cfb' : undefined,\n aes256: knownAlgos.includes('aes-256-cfb') ? 'aes-256-cfb' : undefined\n /* twofish is not implemented in OpenSSL */\n};\n\n/**\n * CFB encryption\n * @param {enums.symmetric} algo - block cipher algorithm\n * @param {Uint8Array} key\n * @param {MaybeStream} plaintext\n * @param {Uint8Array} iv\n * @param {Object} config - full configuration, defaults to openpgp.config\n * @returns MaybeStream\n */\nexport async function encrypt(algo, key, plaintext, iv, config) {\n const algoName = enums.read(enums.symmetric, algo);\n if (util.getNodeCrypto() && nodeAlgos[algoName]) { // Node crypto library.\n return nodeEncrypt(algo, key, plaintext, iv);\n }\n if (util.isAES(algo)) {\n return aesEncrypt(algo, key, plaintext, iv, config);\n }\n\n const LegacyCipher = await getLegacyCipher(algo);\n const cipherfn = new LegacyCipher(key);\n const block_size = cipherfn.blockSize;\n\n const blockc = iv.slice();\n let pt = new Uint8Array();\n const process = chunk => {\n if (chunk) {\n pt = util.concatUint8Array([pt, chunk]);\n }\n const ciphertext = new Uint8Array(pt.length);\n let i;\n let j = 0;\n while (chunk ? pt.length >= block_size : pt.length) {\n const encblock = cipherfn.encrypt(blockc);\n for (i = 0; i < block_size; i++) {\n blockc[i] = pt[i] ^ encblock[i];\n ciphertext[j++] = blockc[i];\n }\n pt = pt.subarray(block_size);\n }\n return ciphertext.subarray(0, j);\n };\n return stream.transform(plaintext, process, process);\n}\n\n/**\n * CFB decryption\n * @param {enums.symmetric} algo - block cipher algorithm\n * @param {Uint8Array} key\n * @param {MaybeStream} ciphertext\n * @param {Uint8Array} iv\n * @returns MaybeStream\n */\nexport async function decrypt(algo, key, ciphertext, iv) {\n const algoName = enums.read(enums.symmetric, algo);\n if (nodeCrypto && nodeAlgos[algoName]) { // Node crypto library.\n return nodeDecrypt(algo, key, ciphertext, iv);\n }\n if (util.isAES(algo)) {\n return aesDecrypt(algo, key, ciphertext, iv);\n }\n\n const LegacyCipher = await getLegacyCipher(algo);\n const cipherfn = new LegacyCipher(key);\n const block_size = cipherfn.blockSize;\n\n let blockp = iv;\n let ct = new Uint8Array();\n const process = chunk => {\n if (chunk) {\n ct = util.concatUint8Array([ct, chunk]);\n }\n const plaintext = new Uint8Array(ct.length);\n let i;\n let j = 0;\n while (chunk ? ct.length >= block_size : ct.length) {\n const decblock = cipherfn.encrypt(blockp);\n blockp = ct.subarray(0, block_size);\n for (i = 0; i < block_size; i++) {\n plaintext[j++] = blockp[i] ^ decblock[i];\n }\n ct = ct.subarray(block_size);\n }\n return plaintext.subarray(0, j);\n };\n return stream.transform(ciphertext, process, process);\n}\n\nclass WebCryptoEncryptor {\n constructor(algo, key, iv) {\n const { blockSize } = getCipherParams(algo);\n this.key = key;\n this.prevBlock = iv;\n this.nextBlock = new Uint8Array(blockSize);\n this.i = 0; // pointer inside next block\n this.blockSize = blockSize;\n this.zeroBlock = new Uint8Array(this.blockSize);\n }\n\n static async isSupported(algo) {\n const { keySize } = getCipherParams(algo);\n return webCrypto.importKey('raw', new Uint8Array(keySize), 'aes-cbc', false, ['encrypt'])\n .then(() => true, () => false);\n }\n\n async _runCBC(plaintext, nonZeroIV) {\n const mode = 'AES-CBC';\n this.keyRef = this.keyRef || await webCrypto.importKey('raw', this.key, mode, false, ['encrypt']);\n const ciphertext = await webCrypto.encrypt(\n { name: mode, iv: nonZeroIV || this.zeroBlock },\n this.keyRef,\n plaintext\n );\n return new Uint8Array(ciphertext).subarray(0, plaintext.length);\n }\n\n async encryptChunk(value) {\n const missing = this.nextBlock.length - this.i;\n const added = value.subarray(0, missing);\n this.nextBlock.set(added, this.i);\n if ((this.i + value.length) >= (2 * this.blockSize)) {\n const leftover = (value.length - missing) % this.blockSize;\n const plaintext = util.concatUint8Array([\n this.nextBlock,\n value.subarray(missing, value.length - leftover)\n ]);\n const toEncrypt = util.concatUint8Array([\n this.prevBlock,\n plaintext.subarray(0, plaintext.length - this.blockSize) // stop one block \"early\", since we only need to xor the plaintext and pass it over as prevBlock\n ]);\n\n const encryptedBlocks = await this._runCBC(toEncrypt);\n xorMut(encryptedBlocks, plaintext);\n this.prevBlock = encryptedBlocks.slice(-this.blockSize);\n\n // take care of leftover data\n if (leftover > 0) this.nextBlock.set(value.subarray(-leftover));\n this.i = leftover;\n\n return encryptedBlocks;\n }\n\n this.i += added.length;\n let encryptedBlock;\n if (this.i === this.nextBlock.length) { // block ready to be encrypted\n const curBlock = this.nextBlock;\n encryptedBlock = await this._runCBC(this.prevBlock);\n xorMut(encryptedBlock, curBlock);\n this.prevBlock = encryptedBlock.slice();\n this.i = 0;\n\n const remaining = value.subarray(added.length);\n this.nextBlock.set(remaining, this.i);\n this.i += remaining.length;\n } else {\n encryptedBlock = new Uint8Array();\n }\n\n return encryptedBlock;\n }\n\n async finish() {\n let result;\n if (this.i === 0) { // nothing more to encrypt\n result = new Uint8Array();\n } else {\n this.nextBlock = this.nextBlock.subarray(0, this.i);\n const curBlock = this.nextBlock;\n const encryptedBlock = await this._runCBC(this.prevBlock);\n xorMut(encryptedBlock, curBlock);\n result = encryptedBlock.subarray(0, curBlock.length);\n }\n\n this.clearSensitiveData();\n return result;\n }\n\n clearSensitiveData() {\n this.nextBlock.fill(0);\n this.prevBlock.fill(0);\n this.keyRef = null;\n this.key = null;\n }\n\n async encrypt(plaintext) {\n // plaintext is internally padded to block length before encryption\n const encryptedWithPadding = await this._runCBC(\n util.concatUint8Array([new Uint8Array(this.blockSize), plaintext]),\n this.iv\n );\n // drop encrypted padding\n const ct = encryptedWithPadding.subarray(0, plaintext.length);\n xorMut(ct, plaintext);\n this.clearSensitiveData();\n return ct;\n }\n}\n\nclass NobleStreamProcessor {\n constructor(forEncryption, algo, key, iv) {\n this.forEncryption = forEncryption;\n const { blockSize } = getCipherParams(algo);\n this.key = nobleAesHelpers.expandKeyLE(key);\n\n if (iv.byteOffset % 4 !== 0) iv = iv.slice(); // aligned arrays required by noble-ciphers\n this.prevBlock = getUint32Array(iv);\n this.nextBlock = new Uint8Array(blockSize);\n this.i = 0; // pointer inside next block\n this.blockSize = blockSize;\n }\n\n _runCFB(src) {\n const src32 = getUint32Array(src);\n const dst = new Uint8Array(src.length);\n const dst32 = getUint32Array(dst);\n for (let i = 0; i + 4 <= dst32.length; i += 4) {\n const { s0: e0, s1: e1, s2: e2, s3: e3 } = nobleAesHelpers.encrypt(this.key, this.prevBlock[0], this.prevBlock[1], this.prevBlock[2], this.prevBlock[3]);\n dst32[i + 0] = src32[i + 0] ^ e0;\n dst32[i + 1] = src32[i + 1] ^ e1;\n dst32[i + 2] = src32[i + 2] ^ e2;\n dst32[i + 3] = src32[i + 3] ^ e3;\n this.prevBlock = (this.forEncryption ? dst32 : src32).slice(i, i + 4);\n }\n return dst;\n }\n\n async processChunk(value) {\n const missing = this.nextBlock.length - this.i;\n const added = value.subarray(0, missing);\n this.nextBlock.set(added, this.i);\n\n if ((this.i + value.length) >= (2 * this.blockSize)) {\n const leftover = (value.length - missing) % this.blockSize;\n const toProcess = util.concatUint8Array([\n this.nextBlock,\n value.subarray(missing, value.length - leftover)\n ]);\n\n const processedBlocks = this._runCFB(toProcess);\n\n // take care of leftover data\n if (leftover > 0) this.nextBlock.set(value.subarray(-leftover));\n this.i = leftover;\n\n return processedBlocks;\n }\n\n this.i += added.length;\n\n let processedBlock;\n if (this.i === this.nextBlock.length) { // block ready to be encrypted\n processedBlock = this._runCFB(this.nextBlock);\n this.i = 0;\n\n const remaining = value.subarray(added.length);\n this.nextBlock.set(remaining, this.i);\n this.i += remaining.length;\n } else {\n processedBlock = new Uint8Array();\n }\n\n return processedBlock;\n }\n\n async finish() {\n let result;\n if (this.i === 0) { // nothing more to encrypt\n result = new Uint8Array();\n } else {\n const processedBlock = this._runCFB(this.nextBlock);\n\n result = processedBlock.subarray(0, this.i);\n }\n\n this.clearSensitiveData();\n return result;\n }\n\n clearSensitiveData() {\n this.nextBlock.fill(0);\n this.prevBlock.fill(0);\n this.key.fill(0);\n }\n}\n\n\nasync function aesEncrypt(algo, key, pt, iv) {\n if (webCrypto && await WebCryptoEncryptor.isSupported(algo)) { // Chromium does not implement AES with 192-bit keys\n const cfb = new WebCryptoEncryptor(algo, key, iv);\n return util.isStream(pt) ? stream.transform(pt, value => cfb.encryptChunk(value), () => cfb.finish()) : cfb.encrypt(pt);\n } else if (util.isStream(pt)) { // async callbacks are not accepted by stream.transform unless the input is a stream\n const cfb = new NobleStreamProcessor(true, algo, key, iv);\n return stream.transform(pt, value => cfb.processChunk(value), () => cfb.finish());\n }\n return nobleAesCfb(key, iv).encrypt(pt);\n}\n\nasync function aesDecrypt(algo, key, ct, iv) {\n if (util.isStream(ct)) {\n const cfb = new NobleStreamProcessor(false, algo, key, iv);\n return stream.transform(ct, value => cfb.processChunk(value), () => cfb.finish());\n }\n return nobleAesCfb(key, iv).decrypt(ct);\n}\n\nfunction xorMut(a, b) {\n const aLength = Math.min(a.length, b.length);\n for (let i = 0; i < aLength; i++) {\n a[i] = a[i] ^ b[i];\n }\n}\n\nconst getUint32Array = arr => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\nfunction nodeEncrypt(algo, key, pt, iv) {\n const algoName = enums.read(enums.symmetric, algo);\n const cipherObj = new nodeCrypto.createCipheriv(nodeAlgos[algoName], key, iv);\n return stream.transform(pt, value => new Uint8Array(cipherObj.update(value)));\n}\n\nfunction nodeDecrypt(algo, key, ct, iv) {\n const algoName = enums.read(enums.symmetric, algo);\n const decipherObj = new nodeCrypto.createDecipheriv(nodeAlgos[algoName], key, iv);\n return stream.transform(ct, value => new Uint8Array(decipherObj.update(value)));\n}\n", "/**\n * @fileoverview This module implements AES-CMAC on top of\n * native AES-CBC using either the WebCrypto API or Node.js' crypto API.\n * @module crypto/cmac\n */\n\nimport { cbc as nobleAesCbc } from '@noble/ciphers/aes';\nimport util from '../util';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\n\n\n/**\n * This implementation of CMAC is based on the description of OMAC in\n * http://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf. As per that\n * document:\n *\n * We have made a small modification to the OMAC algorithm as it was\n * originally presented, changing one of its two constants.\n * Specifically, the constant 4 at line 85 was the constant 1/2 (the\n * multiplicative inverse of 2) in the original definition of OMAC [14].\n * The OMAC authors indicate that they will promulgate this modification\n * [15], which slightly simplifies implementations.\n */\n\nconst blockLength = 16;\n\n\n/**\n * xor `padding` into the end of `data`. This function implements \"the\n * operation xor→ [which] xors the shorter string into the end of longer\n * one\". Since data is always as least as long as padding, we can\n * simplify the implementation.\n * @param {Uint8Array} data\n * @param {Uint8Array} padding\n */\nfunction rightXORMut(data, padding) {\n const offset = data.length - blockLength;\n for (let i = 0; i < blockLength; i++) {\n data[i + offset] ^= padding[i];\n }\n return data;\n}\n\nfunction pad(data, padding, padding2) {\n // if |M| in {n, 2n, 3n, ...}\n if (data.length && data.length % blockLength === 0) {\n // then return M xor→ B,\n return rightXORMut(data, padding);\n }\n // else return (M || 10^(n−1−(|M| mod n))) xor→ P\n const padded = new Uint8Array(data.length + (blockLength - (data.length % blockLength)));\n padded.set(data);\n padded[data.length] = 0b10000000;\n return rightXORMut(padded, padding2);\n}\n\nconst zeroBlock = new Uint8Array(blockLength);\n\nexport default async function CMAC(key) {\n const cbc = await CBC(key);\n\n // L ← E_K(0^n); B ← 2L; P ← 4L\n const padding = util.double(await cbc(zeroBlock));\n const padding2 = util.double(padding);\n\n return async function(data) {\n // return CBC_K(pad(M; B, P))\n return (await cbc(pad(data, padding, padding2))).subarray(-blockLength);\n };\n}\n\nasync function CBC(key) {\n if (util.getNodeCrypto()) { // Node crypto library\n return async function(pt) {\n const en = new nodeCrypto.createCipheriv('aes-' + (key.length * 8) + '-cbc', key, zeroBlock);\n const ct = en.update(pt);\n return new Uint8Array(ct);\n };\n }\n\n if (util.getWebCrypto()) {\n try {\n key = await webCrypto.importKey('raw', key, { name: 'AES-CBC', length: key.length * 8 }, false, ['encrypt']);\n return async function(pt) {\n const ct = await webCrypto.encrypt({ name: 'AES-CBC', iv: zeroBlock, length: blockLength * 8 }, key, pt);\n return new Uint8Array(ct).subarray(0, ct.byteLength - blockLength);\n };\n } catch (err) {\n // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n if (err.name !== 'NotSupportedError' &&\n !(key.length === 24 && err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support operation: ' + err.message);\n }\n }\n\n return async function(pt) {\n return nobleAesCbc(key, zeroBlock, { disablePadding: true }).encrypt(pt);\n };\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 ProtonTech AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview This module implements AES-EAX en/decryption on top of\n * native AES-CTR using either the WebCrypto API or Node.js' crypto API.\n * @module crypto/mode/eax\n */\n\nimport { ctr as nobleAesCtr } from '@noble/ciphers/aes';\nimport CMAC from '../cmac';\nimport util from '../../util';\nimport enums from '../../enums';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\nconst Buffer = util.getNodeBuffer();\n\n\nconst blockLength = 16;\nconst ivLength = blockLength;\nconst tagLength = blockLength;\n\nconst zero = new Uint8Array(blockLength);\nconst one = new Uint8Array(blockLength); one[blockLength - 1] = 1;\nconst two = new Uint8Array(blockLength); two[blockLength - 1] = 2;\n\nasync function OMAC(key) {\n const cmac = await CMAC(key);\n return function(t, message) {\n return cmac(util.concatUint8Array([t, message]));\n };\n}\n\nasync function CTR(key) {\n if (util.getNodeCrypto()) { // Node crypto library\n return async function(pt, iv) {\n const en = new nodeCrypto.createCipheriv('aes-' + (key.length * 8) + '-ctr', key, iv);\n const ct = Buffer.concat([en.update(pt), en.final()]);\n return new Uint8Array(ct);\n };\n }\n\n if (util.getWebCrypto()) {\n try {\n const keyRef = await webCrypto.importKey('raw', key, { name: 'AES-CTR', length: key.length * 8 }, false, ['encrypt']);\n return async function(pt, iv) {\n const ct = await webCrypto.encrypt({ name: 'AES-CTR', counter: iv, length: blockLength * 8 }, keyRef, pt);\n return new Uint8Array(ct);\n };\n } catch (err) {\n // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n if (err.name !== 'NotSupportedError' &&\n !(key.length === 24 && err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support operation: ' + err.message);\n }\n }\n\n return async function(pt, iv) {\n return nobleAesCtr(key, iv).encrypt(pt);\n };\n}\n\n\n/**\n * Class to en/decrypt using EAX mode.\n * @param {enums.symmetric} cipher - The symmetric cipher algorithm to use\n * @param {Uint8Array} key - The encryption key\n */\nasync function EAX(cipher, key) {\n if (cipher !== enums.symmetric.aes128 &&\n cipher !== enums.symmetric.aes192 &&\n cipher !== enums.symmetric.aes256) {\n throw new Error('EAX mode supports only AES cipher');\n }\n\n const [\n omac,\n ctr\n ] = await Promise.all([\n OMAC(key),\n CTR(key)\n ]);\n\n return {\n /**\n * Encrypt plaintext input.\n * @param {Uint8Array} plaintext - The cleartext input to be encrypted\n * @param {Uint8Array} nonce - The nonce (16 bytes)\n * @param {Uint8Array} adata - Associated data to sign\n * @returns {Promise} The ciphertext output.\n */\n encrypt: async function(plaintext, nonce, adata) {\n const [\n omacNonce,\n omacAdata\n ] = await Promise.all([\n omac(zero, nonce),\n omac(one, adata)\n ]);\n const ciphered = await ctr(plaintext, omacNonce);\n const omacCiphered = await omac(two, ciphered);\n const tag = omacCiphered; // Assumes that omac(*).length === tagLength.\n for (let i = 0; i < tagLength; i++) {\n tag[i] ^= omacAdata[i] ^ omacNonce[i];\n }\n return util.concatUint8Array([ciphered, tag]);\n },\n\n /**\n * Decrypt ciphertext input.\n * @param {Uint8Array} ciphertext - The ciphertext input to be decrypted\n * @param {Uint8Array} nonce - The nonce (16 bytes)\n * @param {Uint8Array} adata - Associated data to verify\n * @returns {Promise} The plaintext output.\n */\n decrypt: async function(ciphertext, nonce, adata) {\n if (ciphertext.length < tagLength) throw new Error('Invalid EAX ciphertext');\n const ciphered = ciphertext.subarray(0, -tagLength);\n const ctTag = ciphertext.subarray(-tagLength);\n const [\n omacNonce,\n omacAdata,\n omacCiphered\n ] = await Promise.all([\n omac(zero, nonce),\n omac(one, adata),\n omac(two, ciphered)\n ]);\n const tag = omacCiphered; // Assumes that omac(*).length === tagLength.\n for (let i = 0; i < tagLength; i++) {\n tag[i] ^= omacAdata[i] ^ omacNonce[i];\n }\n if (!util.equalsUint8Array(ctTag, tag)) throw new Error('Authentication tag mismatch');\n const plaintext = await ctr(ciphered, omacNonce);\n return plaintext;\n }\n };\n}\n\n\n/**\n * Get EAX nonce as defined by {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16.1|RFC4880bis-04, section 5.16.1}.\n * @param {Uint8Array} iv - The initialization vector (16 bytes)\n * @param {Uint8Array} chunkIndex - The chunk index (8 bytes)\n */\nEAX.getNonce = function(iv, chunkIndex) {\n const nonce = iv.slice();\n for (let i = 0; i < chunkIndex.length; i++) {\n nonce[8 + i] ^= chunkIndex[i];\n }\n return nonce;\n};\n\nEAX.blockLength = blockLength;\nEAX.ivLength = ivLength;\nEAX.tagLength = tagLength;\n\nexport default EAX;\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 ProtonTech AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview This module implements AES-OCB en/decryption.\n * @module crypto/mode/ocb\n */\n\nimport { cbc as nobleAesCbc } from '@noble/ciphers/aes';\nimport { getCipherParams } from '../cipher';\nimport util from '../../util';\n\nconst blockLength = 16;\nconst ivLength = 15;\n\n// https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16.2:\n// While OCB [RFC7253] allows the authentication tag length to be of any\n// number up to 128 bits long, this document requires a fixed\n// authentication tag length of 128 bits (16 octets) for simplicity.\nconst tagLength = 16;\n\n\nfunction ntz(n) {\n let ntz = 0;\n for (let i = 1; (n & i) === 0; i <<= 1) {\n ntz++;\n }\n return ntz;\n}\n\nfunction xorMut(S, T) {\n for (let i = 0; i < S.length; i++) {\n S[i] ^= T[i];\n }\n return S;\n}\n\nfunction xor(S, T) {\n return xorMut(S.slice(), T);\n}\n\nconst zeroBlock = new Uint8Array(blockLength);\nconst one = new Uint8Array([1]);\n\n/**\n * Class to en/decrypt using OCB mode.\n * @param {enums.symmetric} cipher - The symmetric cipher algorithm to use\n * @param {Uint8Array} key - The encryption key\n */\nasync function OCB(cipher, key) {\n const { keySize } = getCipherParams(cipher);\n // sanity checks\n if (!util.isAES(cipher) || key.length !== keySize) {\n throw new Error('Unexpected algorithm or key size');\n }\n\n let maxNtz = 0;\n\n // `encipher` and `decipher` cannot be async, since `crypt` shares state across calls,\n // hence its execution cannot be broken up.\n // As a result, WebCrypto cannot currently be used for `encipher`.\n const aes = nobleAesCbc(key, zeroBlock, { disablePadding: true });\n const encipher = block => aes.encrypt(block);\n const decipher = block => aes.decrypt(block);\n let mask;\n\n constructKeyVariables(cipher, key);\n\n function constructKeyVariables() {\n const mask_x = encipher(zeroBlock);\n const mask_$ = util.double(mask_x);\n mask = [];\n mask[0] = util.double(mask_$);\n\n\n mask.x = mask_x;\n mask.$ = mask_$;\n }\n\n function extendKeyVariables(text, adata) {\n const newMaxNtz = util.nbits(Math.max(text.length, adata.length) / blockLength | 0) - 1;\n for (let i = maxNtz + 1; i <= newMaxNtz; i++) {\n mask[i] = util.double(mask[i - 1]);\n }\n maxNtz = newMaxNtz;\n }\n\n function hash(adata) {\n if (!adata.length) {\n // Fast path\n return zeroBlock;\n }\n\n //\n // Consider A as a sequence of 128-bit blocks\n //\n const m = adata.length / blockLength | 0;\n\n const offset = new Uint8Array(blockLength);\n const sum = new Uint8Array(blockLength);\n for (let i = 0; i < m; i++) {\n xorMut(offset, mask[ntz(i + 1)]);\n xorMut(sum, encipher(xor(offset, adata)));\n adata = adata.subarray(blockLength);\n }\n\n //\n // Process any final partial block; compute final hash value\n //\n if (adata.length) {\n xorMut(offset, mask.x);\n\n const cipherInput = new Uint8Array(blockLength);\n cipherInput.set(adata, 0);\n cipherInput[adata.length] = 0b10000000;\n xorMut(cipherInput, offset);\n\n xorMut(sum, encipher(cipherInput));\n }\n\n return sum;\n }\n\n /**\n * Encrypt/decrypt data.\n * @param {encipher|decipher} fn - Encryption/decryption block cipher function\n * @param {Uint8Array} text - The cleartext or ciphertext (without tag) input\n * @param {Uint8Array} nonce - The nonce (15 bytes)\n * @param {Uint8Array} adata - Associated data to sign\n * @returns {Promise} The ciphertext or plaintext output, with tag appended in both cases.\n */\n function crypt(fn, text, nonce, adata) {\n //\n // Consider P as a sequence of 128-bit blocks\n //\n const m = text.length / blockLength | 0;\n\n //\n // Key-dependent variables\n //\n extendKeyVariables(text, adata);\n\n //\n // Nonce-dependent and per-encryption variables\n //\n // Nonce = num2str(TAGLEN mod 128,7) || zeros(120-bitlen(N)) || 1 || N\n // Note: We assume here that tagLength mod 16 == 0.\n const paddedNonce = util.concatUint8Array([zeroBlock.subarray(0, ivLength - nonce.length), one, nonce]);\n // bottom = str2num(Nonce[123..128])\n const bottom = paddedNonce[blockLength - 1] & 0b111111;\n // Ktop = ENCIPHER(K, Nonce[1..122] || zeros(6))\n paddedNonce[blockLength - 1] &= 0b11000000;\n const kTop = encipher(paddedNonce);\n // Stretch = Ktop || (Ktop[1..64] xor Ktop[9..72])\n const stretched = util.concatUint8Array([kTop, xor(kTop.subarray(0, 8), kTop.subarray(1, 9))]);\n // Offset_0 = Stretch[1+bottom..128+bottom]\n const offset = util.shiftRight(stretched.subarray(0 + (bottom >> 3), 17 + (bottom >> 3)), 8 - (bottom & 7)).subarray(1);\n // Checksum_0 = zeros(128)\n const checksum = new Uint8Array(blockLength);\n\n const ct = new Uint8Array(text.length + tagLength);\n\n //\n // Process any whole blocks\n //\n let i;\n let pos = 0;\n for (i = 0; i < m; i++) {\n // Offset_i = Offset_{i-1} xor L_{ntz(i)}\n xorMut(offset, mask[ntz(i + 1)]);\n // C_i = Offset_i xor ENCIPHER(K, P_i xor Offset_i)\n // P_i = Offset_i xor DECIPHER(K, C_i xor Offset_i)\n ct.set(xorMut(fn(xor(offset, text)), offset), pos);\n // Checksum_i = Checksum_{i-1} xor P_i\n xorMut(checksum, fn === encipher ? text : ct.subarray(pos));\n\n text = text.subarray(blockLength);\n pos += blockLength;\n }\n\n //\n // Process any final partial block and compute raw tag\n //\n if (text.length) {\n // Offset_* = Offset_m xor L_*\n xorMut(offset, mask.x);\n // Pad = ENCIPHER(K, Offset_*)\n const padding = encipher(offset);\n // C_* = P_* xor Pad[1..bitlen(P_*)]\n ct.set(xor(text, padding), pos);\n\n // Checksum_* = Checksum_m xor (P_* || 1 || new Uint8Array(127-bitlen(P_*)))\n const xorInput = new Uint8Array(blockLength);\n xorInput.set(fn === encipher ? text : ct.subarray(pos, -tagLength), 0);\n xorInput[text.length] = 0b10000000;\n xorMut(checksum, xorInput);\n pos += text.length;\n }\n // Tag = ENCIPHER(K, Checksum_* xor Offset_* xor L_$) xor HASH(K,A)\n const tag = xorMut(encipher(xorMut(xorMut(checksum, offset), mask.$)), hash(adata));\n\n //\n // Assemble ciphertext\n //\n // C = C_1 || C_2 || ... || C_m || C_* || Tag[1..TAGLEN]\n ct.set(tag, pos);\n return ct;\n }\n\n\n return {\n /**\n * Encrypt plaintext input.\n * @param {Uint8Array} plaintext - The cleartext input to be encrypted\n * @param {Uint8Array} nonce - The nonce (15 bytes)\n * @param {Uint8Array} adata - Associated data to sign\n * @returns {Promise} The ciphertext output.\n */\n encrypt: async function(plaintext, nonce, adata) {\n return crypt(encipher, plaintext, nonce, adata);\n },\n\n /**\n * Decrypt ciphertext input.\n * @param {Uint8Array} ciphertext - The ciphertext input to be decrypted\n * @param {Uint8Array} nonce - The nonce (15 bytes)\n * @param {Uint8Array} adata - Associated data to sign\n * @returns {Promise} The ciphertext output.\n */\n decrypt: async function(ciphertext, nonce, adata) {\n if (ciphertext.length < tagLength) throw new Error('Invalid OCB ciphertext');\n\n const tag = ciphertext.subarray(-tagLength);\n ciphertext = ciphertext.subarray(0, -tagLength);\n\n const crypted = crypt(decipher, ciphertext, nonce, adata);\n // if (Tag[1..TAGLEN] == T)\n if (util.equalsUint8Array(tag, crypted.subarray(-tagLength))) {\n return crypted.subarray(0, -tagLength);\n }\n throw new Error('Authentication tag mismatch');\n }\n };\n}\n\n\n/**\n * Get OCB nonce as defined by {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16.2|RFC4880bis-04, section 5.16.2}.\n * @param {Uint8Array} iv - The initialization vector (15 bytes)\n * @param {Uint8Array} chunkIndex - The chunk index (8 bytes)\n */\nOCB.getNonce = function(iv, chunkIndex) {\n const nonce = iv.slice();\n for (let i = 0; i < chunkIndex.length; i++) {\n nonce[7 + i] ^= chunkIndex[i];\n }\n return nonce;\n};\n\nOCB.blockLength = blockLength;\nOCB.ivLength = ivLength;\nOCB.tagLength = tagLength;\n\nexport default OCB;\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2016 Tankred Hase\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview This module wraps native AES-GCM en/decryption for both\n * the WebCrypto api as well as node.js' crypto api.\n * @module crypto/mode/gcm\n */\n\nimport { gcm as nobleAesGcm } from '@noble/ciphers/aes';\nimport util from '../../util';\nimport enums from '../../enums';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\nconst Buffer = util.getNodeBuffer();\n\nconst blockLength = 16;\nconst ivLength = 12; // size of the IV in bytes\nconst tagLength = 16; // size of the tag in bytes\nconst ALGO = 'AES-GCM';\n\n/**\n * Class to en/decrypt using GCM mode.\n * @param {enums.symmetric} cipher - The symmetric cipher algorithm to use\n * @param {Uint8Array} key - The encryption key\n */\nasync function GCM(cipher, key) {\n if (cipher !== enums.symmetric.aes128 &&\n cipher !== enums.symmetric.aes192 &&\n cipher !== enums.symmetric.aes256) {\n throw new Error('GCM mode supports only AES cipher');\n }\n\n if (util.getNodeCrypto()) { // Node crypto library\n return {\n encrypt: async function(pt, iv, adata = new Uint8Array()) {\n const en = new nodeCrypto.createCipheriv('aes-' + (key.length * 8) + '-gcm', key, iv);\n en.setAAD(adata);\n const ct = Buffer.concat([en.update(pt), en.final(), en.getAuthTag()]); // append auth tag to ciphertext\n return new Uint8Array(ct);\n },\n\n decrypt: async function(ct, iv, adata = new Uint8Array()) {\n const de = new nodeCrypto.createDecipheriv('aes-' + (key.length * 8) + '-gcm', key, iv);\n de.setAAD(adata);\n de.setAuthTag(ct.slice(ct.length - tagLength, ct.length)); // read auth tag at end of ciphertext\n const pt = Buffer.concat([de.update(ct.slice(0, ct.length - tagLength)), de.final()]);\n return new Uint8Array(pt);\n }\n };\n }\n\n if (util.getWebCrypto()) {\n try {\n const _key = await webCrypto.importKey('raw', key, { name: ALGO }, false, ['encrypt', 'decrypt']);\n // Safari 13 and Safari iOS 14 does not support GCM-en/decrypting empty messages\n const webcryptoEmptyMessagesUnsupported = navigator.userAgent.match(/Version\\/13\\.\\d(\\.\\d)* Safari/) ||\n navigator.userAgent.match(/Version\\/(13|14)\\.\\d(\\.\\d)* Mobile\\/\\S* Safari/);\n return {\n encrypt: async function(pt, iv, adata = new Uint8Array()) {\n if (webcryptoEmptyMessagesUnsupported && !pt.length) {\n return nobleAesGcm(key, iv, adata).encrypt(pt);\n }\n const ct = await webCrypto.encrypt({ name: ALGO, iv, additionalData: adata, tagLength: tagLength * 8 }, _key, pt);\n return new Uint8Array(ct);\n },\n\n decrypt: async function(ct, iv, adata = new Uint8Array()) {\n if (webcryptoEmptyMessagesUnsupported && ct.length === tagLength) {\n return nobleAesGcm(key, iv, adata).decrypt(ct);\n }\n try {\n const pt = await webCrypto.decrypt({ name: ALGO, iv, additionalData: adata, tagLength: tagLength * 8 }, _key, ct);\n return new Uint8Array(pt);\n } catch (e) {\n if (e.name === 'OperationError') {\n throw new Error('Authentication tag mismatch');\n }\n }\n }\n };\n } catch (err) {\n // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n if (err.name !== 'NotSupportedError' &&\n !(key.length === 24 && err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support operation: ' + err.message);\n }\n }\n\n return {\n encrypt: async function(pt, iv, adata) {\n return nobleAesGcm(key, iv, adata).encrypt(pt);\n },\n\n decrypt: async function(ct, iv, adata) {\n return nobleAesGcm(key, iv, adata).decrypt(ct);\n }\n };\n}\n\n\n/**\n * Get GCM nonce. Note: this operation is not defined by the standard.\n * A future version of the standard may define GCM mode differently,\n * hopefully under a different ID (we use Private/Experimental algorithm\n * ID 100) so that we can maintain backwards compatibility.\n * @param {Uint8Array} iv - The initialization vector (12 bytes)\n * @param {Uint8Array} chunkIndex - The chunk index (8 bytes)\n */\nGCM.getNonce = function(iv, chunkIndex) {\n const nonce = iv.slice();\n for (let i = 0; i < chunkIndex.length; i++) {\n nonce[4 + i] ^= chunkIndex[i];\n }\n return nonce;\n};\n\nGCM.blockLength = blockLength;\nGCM.ivLength = ivLength;\nGCM.tagLength = tagLength;\n\nexport default GCM;\n", "/**\n * @fileoverview Cipher modes\n * @module crypto/mode\n */\n\nimport * as cfb from './cfb';\nimport eax from './eax';\nimport ocb from './ocb';\nimport gcm from './gcm';\n\nexport default {\n /** @see module:crypto/mode/cfb */\n cfb: cfb,\n /** @see module:crypto/mode/gcm */\n gcm: gcm,\n experimentalGCM: gcm,\n /** @see module:crypto/mode/eax */\n eax: eax,\n /** @see module:crypto/mode/ocb */\n ocb: ocb\n};\n", "// Operations are not constant time, but we try and limit timing leakage where we can\n\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport function uint8ArrayToBigInt(bytes: Uint8Array) {\n const hexAlphabet = '0123456789ABCDEF';\n let s = '';\n bytes.forEach(v => {\n s += hexAlphabet[v >> 4] + hexAlphabet[v & 15];\n });\n return BigInt('0x0' + s);\n}\n\nexport function mod(a: bigint, m: bigint) {\n const reduced = a % m;\n return reduced < _0n ? reduced + m : reduced;\n}\n\n/**\n * Compute modular exponentiation using square and multiply\n * @param {BigInt} a - Base\n * @param {BigInt} e - Exponent\n * @param {BigInt} n - Modulo\n * @returns {BigInt} b ** e mod n.\n */\nexport function modExp(b: bigint, e: bigint, n: bigint) {\n if (n === _0n) throw Error('Modulo cannot be zero');\n if (n === _1n) return BigInt(0);\n if (e < _0n) throw Error('Unsopported negative exponent');\n\n let exp = e;\n let x = b;\n\n x %= n;\n let r = BigInt(1);\n while (exp > _0n) {\n const lsb = exp & _1n;\n exp >>= _1n; // e / 2\n // Always compute multiplication step, to reduce timing leakage\n const rx = (r * x) % n;\n // Update r only if lsb is 1 (odd exponent)\n r = lsb ? rx : r;\n x = (x * x) % n; // Square\n }\n return r;\n}\n\n\nfunction abs(x: bigint) {\n return x >= _0n ? x : -x;\n}\n\n/**\n * Extended Eucleadian algorithm (http://anh.cs.luc.edu/331/notes/xgcd.pdf)\n * Given a and b, compute (x, y) such that ax + by = gdc(a, b).\n * Negative numbers are also supported.\n * @param {BigInt} a - First operand\n * @param {BigInt} b - Second operand\n * @returns {{ gcd, x, y: bigint }}\n */\nfunction _egcd(aInput: bigint, bInput: bigint) {\n let x = BigInt(0);\n let y = BigInt(1);\n let xPrev = BigInt(1);\n let yPrev = BigInt(0);\n\n // Deal with negative numbers: run algo over absolute values,\n // and \"move\" the sign to the returned x and/or y.\n // See https://math.stackexchange.com/questions/37806/extended-euclidean-algorithm-with-negative-numbers\n let a = abs(aInput);\n let b = abs(bInput);\n const aNegated = aInput < _0n;\n const bNegated = bInput < _0n;\n\n while (b !== _0n) {\n const q = a / b;\n let tmp = x;\n x = xPrev - q * x;\n xPrev = tmp;\n\n tmp = y;\n y = yPrev - q * y;\n yPrev = tmp;\n\n tmp = b;\n b = a % b;\n a = tmp;\n }\n\n return {\n x: aNegated ? -xPrev : xPrev,\n y: bNegated ? -yPrev : yPrev,\n gcd: a\n };\n}\n\n/**\n * Compute the inverse of `a` modulo `n`\n * Note: `a` and and `n` must be relatively prime\n * @param {BigInt} a\n * @param {BigInt} n - Modulo\n * @returns {BigInt} x such that a*x = 1 mod n\n * @throws {Error} if the inverse does not exist\n */\nexport function modInv(a: bigint, n: bigint) {\n const { gcd, x } = _egcd(a, n);\n if (gcd !== _1n) {\n throw new Error('Inverse does not exist');\n }\n return mod(x + n, n);\n}\n\n/**\n * Compute greatest common divisor between this and n\n * @param {BigInt} aInput - Operand\n * @param {BigInt} bInput - Operand\n * @returns {BigInt} gcd\n */\nexport function gcd(aInput: bigint, bInput: bigint) {\n let a = aInput;\n let b = bInput;\n while (b !== _0n) {\n const tmp = b;\n b = a % b;\n a = tmp;\n }\n return a;\n}\n\n/**\n * Get this value as an exact Number (max 53 bits)\n * Fails if this value is too large\n * @returns {Number}\n */\nexport function bigIntToNumber(x: bigint) {\n const number = Number(x);\n if (number > Number.MAX_SAFE_INTEGER) {\n // We throw and error to conform with the bn.js implementation\n throw new Error('Number can only safely store up to 53 bits');\n }\n return number;\n}\n\n/**\n * Get value of i-th bit\n * @param {BigInt} x\n * @param {Number} i - Bit index\n * @returns {Number} Bit value.\n */\nexport function getBit(x:bigint, i: number) {\n const bit = (x >> BigInt(i)) & _1n;\n return bit === _0n ? 0 : 1;\n}\n\n/**\n * Compute bit length\n */\nexport function bitLength(x: bigint) {\n // -1n >> -1n is -1n\n // 1n >> 1n is 0n\n const target = x < _0n ? BigInt(-1) : _0n;\n let bitlen = 1;\n let tmp = x;\n // eslint-disable-next-line no-cond-assign\n while ((tmp >>= _1n) !== target) {\n bitlen++;\n }\n return bitlen;\n}\n\n/**\n * Compute byte length\n */\nexport function byteLength(x: bigint) {\n const target = x < _0n ? BigInt(-1) : _0n;\n const _8n = BigInt(8);\n let len = 1;\n let tmp = x;\n // eslint-disable-next-line no-cond-assign\n while ((tmp >>= _8n) !== target) {\n len++;\n }\n return len;\n}\n\n/**\n * Get Uint8Array representation of this number\n * @param {String} endian - Endianess of output array (defaults to 'be')\n * @param {Number} length - Of output array\n * @returns {Uint8Array}\n */\nexport function bigIntToUint8Array(x: bigint, endian = 'be', length: number) {\n // we get and parse the hex string (https://coolaj86.com/articles/convert-js-bigints-to-typedarrays/)\n // this is faster than shift+mod iterations\n let hex = x.toString(16);\n if (hex.length % 2 === 1) {\n hex = '0' + hex;\n }\n\n const rawLength = hex.length / 2;\n const bytes = new Uint8Array(length || rawLength);\n // parse hex\n const offset = length ? length - rawLength : 0;\n let i = 0;\n while (i < rawLength) {\n bytes[i + offset] = parseInt(hex.slice(2 * i, 2 * i + 2), 16);\n i++;\n }\n\n if (endian !== 'be') {\n bytes.reverse();\n }\n\n return bytes;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n// The GPG4Browsers crypto interface\n\n/**\n * @fileoverview Provides tools for retrieving secure randomness from browsers or Node.js\n * @module crypto/random\n */\nimport { byteLength, mod, uint8ArrayToBigInt } from './biginteger';\nimport util from '../util';\n\nconst nodeCrypto = util.getNodeCrypto();\n\n/**\n * Retrieve secure random byte array of the specified length\n * @param {Integer} length - Length in bytes to generate\n * @returns {Uint8Array} Random byte array.\n */\nexport function getRandomBytes(length) {\n const webcrypto = typeof crypto !== 'undefined' ? crypto : nodeCrypto?.webcrypto;\n if (webcrypto?.getRandomValues) {\n const buf = new Uint8Array(length);\n return webcrypto.getRandomValues(buf);\n } else {\n throw new Error('No secure random number generator available.');\n }\n}\n\n/**\n * Create a secure random BigInt that is greater than or equal to min and less than max.\n * @param {bigint} min - Lower bound, included\n * @param {bigint} max - Upper bound, excluded\n * @returns {bigint} Random BigInt.\n * @async\n */\nexport function getRandomBigInteger(min, max) {\n if (max < min) {\n throw new Error('Illegal parameter value: max <= min');\n }\n\n const modulus = max - min;\n const bytes = byteLength(modulus);\n\n // Using a while loop is necessary to avoid bias introduced by the mod operation.\n // However, we request 64 extra random bits so that the bias is negligible.\n // Section B.1.1 here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf\n const r = uint8ArrayToBigInt(getRandomBytes(bytes + 8));\n return mod(r, modulus) + min;\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 Proton Technologies AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Algorithms for probabilistic random prime generation\n * @module crypto/public_key/prime\n */\nimport { bigIntToNumber, bitLength, gcd, getBit, mod, modExp } from '../biginteger';\nimport { getRandomBigInteger } from '../random';\n\nconst _1n = BigInt(1);\n\n/**\n * Generate a probably prime random number\n * @param bits - Bit length of the prime\n * @param e - Optional RSA exponent to check against the prime\n * @param k - Optional number of iterations of Miller-Rabin test\n */\nexport function randomProbablePrime(bits: number, e: bigint, k: number) {\n const _30n = BigInt(30);\n const min = _1n << BigInt(bits - 1);\n /*\n * We can avoid any multiples of 3 and 5 by looking at n mod 30\n * n mod 30 = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29\n * the next possible prime is mod 30:\n * 1 7 7 7 7 7 7 11 11 11 11 13 13 17 17 17 17 19 19 23 23 23 23 29 29 29 29 29 29 1\n */\n const adds = [1, 6, 5, 4, 3, 2, 1, 4, 3, 2, 1, 2, 1, 4, 3, 2, 1, 2, 1, 4, 3, 2, 1, 6, 5, 4, 3, 2, 1, 2];\n\n let n = getRandomBigInteger(min, min << _1n);\n let i = bigIntToNumber(mod(n, _30n));\n\n do {\n n += BigInt(adds[i]);\n i = (i + adds[i]) % adds.length;\n // If reached the maximum, go back to the minimum.\n if (bitLength(n) > bits) {\n n = mod(n, min << _1n); n += min;\n i = bigIntToNumber(mod(n, _30n));\n }\n } while (!isProbablePrime(n, e, k));\n return n;\n}\n\n/**\n * Probabilistic primality testing\n * @param n - Number to test\n * @param e - Optional RSA exponent to check against the prime\n * @param k - Optional number of iterations of Miller-Rabin test\n */\nexport function isProbablePrime(n: bigint, e: bigint, k: number) {\n if (e && gcd(n - _1n, e) !== _1n) {\n return false;\n }\n if (!divisionTest(n)) {\n return false;\n }\n if (!fermat(n)) {\n return false;\n }\n if (!millerRabin(n, k)) {\n return false;\n }\n // TODO implement the Lucas test\n // See Section C.3.3 here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf\n return true;\n}\n\n/**\n * Tests whether n is probably prime or not using Fermat's test with b = 2.\n * Fails if b^(n-1) mod n != 1.\n * @param n - Number to test\n * @param b - Optional Fermat test base\n */\nexport function fermat(n: bigint, b = BigInt(2)) {\n return modExp(b, n - _1n, n) === _1n;\n}\n\nexport function divisionTest(n: bigint) {\n const _0n = BigInt(0);\n return smallPrimes.every(m => mod(n, m) !== _0n);\n}\n\n// https://github.com/gpg/libgcrypt/blob/master/cipher/primegen.c\nconst smallPrimes = [\n 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,\n 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101,\n 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,\n 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,\n 211, 223, 227, 229, 233, 239, 241, 251, 257, 263,\n 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,\n 331, 337, 347, 349, 353, 359, 367, 373, 379, 383,\n 389, 397, 401, 409, 419, 421, 431, 433, 439, 443,\n 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,\n 509, 521, 523, 541, 547, 557, 563, 569, 571, 577,\n 587, 593, 599, 601, 607, 613, 617, 619, 631, 641,\n 643, 647, 653, 659, 661, 673, 677, 683, 691, 701,\n 709, 719, 727, 733, 739, 743, 751, 757, 761, 769,\n 773, 787, 797, 809, 811, 821, 823, 827, 829, 839,\n 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,\n 919, 929, 937, 941, 947, 953, 967, 971, 977, 983,\n 991, 997, 1009, 1013, 1019, 1021, 1031, 1033,\n 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091,\n 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151,\n 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213,\n 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277,\n 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307,\n 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399,\n 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451,\n 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493,\n 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559,\n 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609,\n 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667,\n 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733,\n 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789,\n 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871,\n 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931,\n 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997,\n 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053,\n 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111,\n 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161,\n 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243,\n 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297,\n 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357,\n 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411,\n 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473,\n 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551,\n 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633,\n 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687,\n 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729,\n 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791,\n 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851,\n 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917,\n 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999,\n 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061,\n 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137,\n 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209,\n 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271,\n 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331,\n 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391,\n 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467,\n 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533,\n 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583,\n 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643,\n 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709,\n 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779,\n 3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851,\n 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917,\n 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989,\n 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049,\n 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111,\n 4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177,\n 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243,\n 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297,\n 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391,\n 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457,\n 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519,\n 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597,\n 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657,\n 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729,\n 4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799,\n 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889,\n 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951,\n 4957, 4967, 4969, 4973, 4987, 4993, 4999\n].map(n => BigInt(n));\n\n\n// Miller-Rabin - Miller Rabin algorithm for primality test\n// Copyright Fedor Indutny, 2014.\n//\n// This software is licensed under the MIT License.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Adapted on Jan 2018 from version 4.0.1 at https://github.com/indutny/miller-rabin\n\n// Sample syntax for Fixed-Base Miller-Rabin:\n// millerRabin(n, k, () => new BN(small_primes[Math.random() * small_primes.length | 0]))\n\n/**\n * Tests whether n is probably prime or not using the Miller-Rabin test.\n * See HAC Remark 4.28.\n * @param n - Number to test\n * @param k - Optional number of iterations of Miller-Rabin test\n * @param rand - Optional function to generate potential witnesses\n * @returns {boolean}\n * @async\n */\nexport function millerRabin(n: bigint, k: number, rand?: () => bigint) {\n const len = bitLength(n);\n\n if (!k) {\n k = Math.max(1, (len / 48) | 0);\n }\n\n const n1 = n - _1n; // n - 1\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n let s = 0;\n while (!getBit(n1, s)) { s++; }\n const d = n >> BigInt(s);\n\n for (; k > 0; k--) {\n const a = rand ? rand() : getRandomBigInteger(BigInt(2), n1);\n\n let x = modExp(a, d, n);\n if (x === _1n || x === n1) {\n continue;\n }\n\n let i;\n for (i = 1; i < s; i++) {\n x = mod(x * x, n);\n\n if (x === _1n) {\n return false;\n }\n if (x === n1) {\n break;\n }\n }\n\n if (i === s) {\n return false;\n }\n }\n\n return true;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Provides EME-PKCS1-v1_5 encoding and decoding and EMSA-PKCS1-v1_5 encoding function\n * @see module:crypto/public_key/rsa\n * @see module:crypto/public_key/elliptic/ecdh\n * @see PublicKeyEncryptedSessionKeyPacket\n * @module crypto/pkcs1\n */\n\nimport { getRandomBytes } from './random';\nimport hash from './hash';\nimport util from '../util';\n\n/**\n * ASN1 object identifiers for hashes\n * @see {@link https://tools.ietf.org/html/rfc4880#section-5.2.2}\n */\nconst hash_headers = [];\nhash_headers[1] = [0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x04,\n 0x10];\nhash_headers[2] = [0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14];\nhash_headers[3] = [0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x24, 0x03, 0x02, 0x01, 0x05, 0x00, 0x04, 0x14];\nhash_headers[8] = [0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,\n 0x04, 0x20];\nhash_headers[9] = [0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00,\n 0x04, 0x30];\nhash_headers[10] = [0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05,\n 0x00, 0x04, 0x40];\nhash_headers[11] = [0x30, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, 0x05,\n 0x00, 0x04, 0x1C];\n\n/**\n * Create padding with secure random data\n * @private\n * @param {Integer} length - Length of the padding in bytes\n * @returns {Uint8Array} Random padding.\n */\nfunction getPKCS1Padding(length) {\n const result = new Uint8Array(length);\n let count = 0;\n while (count < length) {\n const randomBytes = getRandomBytes(length - count);\n for (let i = 0; i < randomBytes.length; i++) {\n if (randomBytes[i] !== 0) {\n result[count++] = randomBytes[i];\n }\n }\n }\n return result;\n}\n\n/**\n * Create a EME-PKCS1-v1_5 padded message\n * @see {@link https://tools.ietf.org/html/rfc4880#section-13.1.1|RFC 4880 13.1.1}\n * @param {Uint8Array} message - Message to be encoded\n * @param {Integer} keyLength - The length in octets of the key modulus\n * @returns {Uint8Array} EME-PKCS1 padded message.\n */\nexport function emeEncode(message, keyLength) {\n const mLength = message.length;\n // length checking\n if (mLength > keyLength - 11) {\n throw new Error('Message too long');\n }\n // Generate an octet string PS of length k - mLen - 3 consisting of\n // pseudo-randomly generated nonzero octets\n const PS = getPKCS1Padding(keyLength - mLength - 3);\n // Concatenate PS, the message M, and other padding to form an\n // encoded message EM of length k octets as EM = 0x00 || 0x02 || PS || 0x00 || M.\n const encoded = new Uint8Array(keyLength);\n // 0x00 byte\n encoded[1] = 2;\n encoded.set(PS, 2);\n // 0x00 bytes\n encoded.set(message, keyLength - mLength);\n return encoded;\n}\n\n/**\n * Decode a EME-PKCS1-v1_5 padded message\n * @see {@link https://tools.ietf.org/html/rfc4880#section-13.1.2|RFC 4880 13.1.2}\n * @param {Uint8Array} encoded - Encoded message bytes\n * @param {Uint8Array} randomPayload - Data to return in case of decoding error (needed for constant-time processing)\n * @returns {Uint8Array} decoded data or `randomPayload` (on error, if given)\n * @throws {Error} on decoding failure, unless `randomPayload` is provided\n */\nexport function emeDecode(encoded, randomPayload) {\n // encoded format: 0x00 0x02 0x00 \n let offset = 2;\n let separatorNotFound = 1;\n for (let j = offset; j < encoded.length; j++) {\n separatorNotFound &= encoded[j] !== 0;\n offset += separatorNotFound;\n }\n\n const psLen = offset - 2;\n const payload = encoded.subarray(offset + 1); // discard the 0x00 separator\n const isValidPadding = encoded[0] === 0 & encoded[1] === 2 & psLen >= 8 & !separatorNotFound;\n\n if (randomPayload) {\n return util.selectUint8Array(isValidPadding, payload, randomPayload);\n }\n\n if (isValidPadding) {\n return payload;\n }\n\n throw new Error('Decryption error');\n}\n\n/**\n * Create a EMSA-PKCS1-v1_5 padded message\n * @see {@link https://tools.ietf.org/html/rfc4880#section-13.1.3|RFC 4880 13.1.3}\n * @param {Integer} algo - Hash algorithm type used\n * @param {Uint8Array} hashed - Message to be encoded\n * @param {Integer} emLen - Intended length in octets of the encoded message\n * @returns {Uint8Array} Encoded message.\n */\nexport function emsaEncode(algo, hashed, emLen) {\n let i;\n if (hashed.length !== hash.getHashByteLength(algo)) {\n throw new Error('Invalid hash length');\n }\n // produce an ASN.1 DER value for the hash function used.\n // Let T be the full hash prefix\n const hashPrefix = new Uint8Array(hash_headers[algo].length);\n for (i = 0; i < hash_headers[algo].length; i++) {\n hashPrefix[i] = hash_headers[algo][i];\n }\n // and let tLen be the length in octets prefix and hashed data\n const tLen = hashPrefix.length + hashed.length;\n if (emLen < tLen + 11) {\n throw new Error('Intended encoded message length too short');\n }\n // an octet string PS consisting of emLen - tLen - 3 octets with hexadecimal value 0xFF\n // The length of PS will be at least 8 octets\n const PS = new Uint8Array(emLen - tLen - 3).fill(0xff);\n\n // Concatenate PS, the hash prefix, hashed data, and other padding to form the\n // encoded message EM as EM = 0x00 || 0x01 || PS || 0x00 || prefix || hashed\n const EM = new Uint8Array(emLen);\n EM[1] = 0x01;\n EM.set(PS, 2);\n EM.set(hashPrefix, emLen - tLen);\n EM.set(hashed, emLen - hashed.length);\n return EM;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview RSA implementation\n * @module crypto/public_key/rsa\n */\nimport { randomProbablePrime } from './prime';\nimport { getRandomBigInteger } from '../random';\nimport util from '../../util';\nimport { uint8ArrayToB64, b64ToUint8Array } from '../../encoding/base64';\nimport { emsaEncode, emeEncode, emeDecode } from '../pkcs1';\nimport enums from '../../enums';\nimport { bigIntToNumber, bigIntToUint8Array, bitLength, byteLength, mod, modExp, modInv, uint8ArrayToBigInt } from '../biginteger';\nimport hash from '../hash';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\nconst _1n = BigInt(1);\n\n/** Create signature\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Uint8Array} data - Message\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} d - RSA private exponent\n * @param {Uint8Array} p - RSA private prime p\n * @param {Uint8Array} q - RSA private prime q\n * @param {Uint8Array} u - RSA private coefficient\n * @param {Uint8Array} hashed - Hashed message\n * @returns {Promise} RSA Signature.\n * @async\n */\nexport async function sign(hashAlgo, data, n, e, d, p, q, u, hashed) {\n if (hash.getHashByteLength(hashAlgo) >= n.length) {\n // Throw here instead of `emsaEncode` below, to provide a clearer and consistent error\n // e.g. if a 512-bit RSA key is used with a SHA-512 digest.\n // The size limit is actually slightly different but here we only care about throwing\n // on common key sizes.\n throw new Error('Digest size cannot exceed key modulus size');\n }\n\n if (data && !util.isStream(data)) {\n if (util.getWebCrypto()) {\n try {\n return await webSign(enums.read(enums.webHash, hashAlgo), data, n, e, d, p, q, u);\n } catch (err) {\n util.printDebugError(err);\n }\n } else if (util.getNodeCrypto()) {\n return nodeSign(hashAlgo, data, n, e, d, p, q, u);\n }\n }\n return bnSign(hashAlgo, n, d, hashed);\n}\n\n/**\n * Verify signature\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Uint8Array} data - Message\n * @param {Uint8Array} s - Signature\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} hashed - Hashed message\n * @returns {Boolean}\n * @async\n */\nexport async function verify(hashAlgo, data, s, n, e, hashed) {\n if (data && !util.isStream(data)) {\n if (util.getWebCrypto()) {\n try {\n return await webVerify(enums.read(enums.webHash, hashAlgo), data, s, n, e);\n } catch (err) {\n util.printDebugError(err);\n }\n } else if (util.getNodeCrypto()) {\n return nodeVerify(hashAlgo, data, s, n, e);\n }\n }\n return bnVerify(hashAlgo, s, n, e, hashed);\n}\n\n/**\n * Encrypt message\n * @param {Uint8Array} data - Message\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @returns {Promise} RSA Ciphertext.\n * @async\n */\nexport async function encrypt(data, n, e) {\n if (util.getNodeCrypto()) {\n return nodeEncrypt(data, n, e);\n }\n return bnEncrypt(data, n, e);\n}\n\n/**\n * Decrypt RSA message\n * @param {Uint8Array} m - Message\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} d - RSA private exponent\n * @param {Uint8Array} p - RSA private prime p\n * @param {Uint8Array} q - RSA private prime q\n * @param {Uint8Array} u - RSA private coefficient\n * @param {Uint8Array} randomPayload - Data to return on decryption error, instead of throwing\n * (needed for constant-time processing)\n * @returns {Promise} RSA Plaintext.\n * @throws {Error} on decryption error, unless `randomPayload` is given\n * @async\n */\nexport async function decrypt(data, n, e, d, p, q, u, randomPayload) {\n // Node v18.19.1, 20.11.1 and 21.6.2 have disabled support for PKCS#1 decryption,\n // and we want to avoid checking the error type to decide if the random payload\n // should indeed be returned.\n if (util.getNodeCrypto() && !randomPayload) {\n try {\n return await nodeDecrypt(data, n, e, d, p, q, u);\n } catch (err) {\n util.printDebugError(err);\n }\n }\n return bnDecrypt(data, n, e, d, p, q, u, randomPayload);\n}\n\n/**\n * Generate a new random private key B bits long with public exponent E.\n *\n * When possible, webCrypto or nodeCrypto is used. Otherwise, primes are generated using\n * 40 rounds of the Miller-Rabin probabilistic random prime generation algorithm.\n * @see module:crypto/public_key/prime\n * @param {Integer} bits - RSA bit length\n * @param {Integer} e - RSA public exponent\n * @returns {{n, e, d,\n * p, q ,u: Uint8Array}} RSA public modulus, RSA public exponent, RSA private exponent,\n * RSA private prime p, RSA private prime q, u = p ** -1 mod q\n * @async\n */\nexport async function generate(bits, e) {\n e = BigInt(e);\n\n // Native RSA keygen using Web Crypto\n if (util.getWebCrypto()) {\n const keyGenOpt = {\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits, // the specified keysize in bits\n publicExponent: bigIntToUint8Array(e), // take three bytes (max 65537) for exponent\n hash: {\n name: 'SHA-1' // not required for actual RSA keys, but for crypto api 'sign' and 'verify'\n }\n };\n const keyPair = await webCrypto.generateKey(keyGenOpt, true, ['sign', 'verify']);\n\n // export the generated keys as JsonWebKey (JWK)\n // https://tools.ietf.org/html/draft-ietf-jose-json-web-key-33\n const jwk = await webCrypto.exportKey('jwk', keyPair.privateKey);\n // map JWK parameters to corresponding OpenPGP names\n return jwkToPrivate(jwk, e);\n } else if (util.getNodeCrypto()) {\n const opts = {\n modulusLength: bits,\n publicExponent: bigIntToNumber(e),\n publicKeyEncoding: { type: 'pkcs1', format: 'jwk' },\n privateKeyEncoding: { type: 'pkcs1', format: 'jwk' }\n };\n const jwk = await new Promise((resolve, reject) => {\n nodeCrypto.generateKeyPair('rsa', opts, (err, _, jwkPrivateKey) => {\n if (err) {\n reject(err);\n } else {\n resolve(jwkPrivateKey);\n }\n });\n });\n return jwkToPrivate(jwk, e);\n }\n\n // RSA keygen fallback using 40 iterations of the Miller-Rabin test\n // See https://stackoverflow.com/a/6330138 for justification\n // Also see section C.3 here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST\n let p;\n let q;\n let n;\n do {\n q = randomProbablePrime(bits - (bits >> 1), e, 40);\n p = randomProbablePrime(bits >> 1, e, 40);\n n = p * q;\n } while (bitLength(n) !== bits);\n\n const phi = (p - _1n) * (q - _1n);\n\n if (q < p) {\n [p, q] = [q, p];\n }\n\n return {\n n: bigIntToUint8Array(n),\n e: bigIntToUint8Array(e),\n d: bigIntToUint8Array(modInv(e, phi)),\n p: bigIntToUint8Array(p),\n q: bigIntToUint8Array(q),\n // dp: d.mod(p.subn(1)),\n // dq: d.mod(q.subn(1)),\n u: bigIntToUint8Array(modInv(p, q))\n };\n}\n\n/**\n * Validate RSA parameters\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} d - RSA private exponent\n * @param {Uint8Array} p - RSA private prime p\n * @param {Uint8Array} q - RSA private prime q\n * @param {Uint8Array} u - RSA inverse of p w.r.t. q\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(n, e, d, p, q, u) {\n n = uint8ArrayToBigInt(n);\n p = uint8ArrayToBigInt(p);\n q = uint8ArrayToBigInt(q);\n\n // expect pq = n\n if ((p * q) !== n) {\n return false;\n }\n\n const _2n = BigInt(2);\n // expect p*u = 1 mod q\n u = uint8ArrayToBigInt(u);\n if (mod(p * u, q) !== BigInt(1)) {\n return false;\n }\n\n e = uint8ArrayToBigInt(e);\n d = uint8ArrayToBigInt(d);\n /**\n * In RSA pkcs#1 the exponents (d, e) are inverses modulo lcm(p-1, q-1)\n * We check that [de = 1 mod (p-1)] and [de = 1 mod (q-1)]\n * By CRT on coprime factors of (p-1, q-1) it follows that [de = 1 mod lcm(p-1, q-1)]\n *\n * We blind the multiplication with r, and check that rde = r mod lcm(p-1, q-1)\n */\n const nSizeOver3 = BigInt(Math.floor(bitLength(n) / 3));\n const r = getRandomBigInteger(_2n, _2n << nSizeOver3); // r in [ 2, 2^{|n|/3} ) < p and q\n const rde = r * d * e;\n\n const areInverses = mod(rde, p - _1n) === r && mod(rde, q - _1n) === r;\n if (!areInverses) {\n return false;\n }\n\n return true;\n}\n\nasync function bnSign(hashAlgo, n, d, hashed) {\n n = uint8ArrayToBigInt(n);\n const m = uint8ArrayToBigInt(emsaEncode(hashAlgo, hashed, byteLength(n)));\n d = uint8ArrayToBigInt(d);\n return bigIntToUint8Array(modExp(m, d, n), 'be', byteLength(n));\n}\n\nasync function webSign(hashName, data, n, e, d, p, q, u) {\n /** OpenPGP keys require that p < q, and Safari Web Crypto requires that p > q.\n * We swap them in privateToJWK, so it usually works out, but nevertheless,\n * not all OpenPGP keys are compatible with this requirement.\n * OpenPGP.js used to generate RSA keys the wrong way around (p > q), and still\n * does if the underlying Web Crypto does so (though the tested implementations\n * don't do so).\n */\n const jwk = await privateToJWK(n, e, d, p, q, u);\n const algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: hashName }\n };\n const key = await webCrypto.importKey('jwk', jwk, algo, false, ['sign']);\n return new Uint8Array(await webCrypto.sign('RSASSA-PKCS1-v1_5', key, data));\n}\n\nasync function nodeSign(hashAlgo, data, n, e, d, p, q, u) {\n const sign = nodeCrypto.createSign(enums.read(enums.hash, hashAlgo));\n sign.write(data);\n sign.end();\n\n const jwk = await privateToJWK(n, e, d, p, q, u);\n return new Uint8Array(sign.sign({ key: jwk, format: 'jwk', type: 'pkcs1' }));\n}\n\nasync function bnVerify(hashAlgo, s, n, e, hashed) {\n n = uint8ArrayToBigInt(n);\n s = uint8ArrayToBigInt(s);\n e = uint8ArrayToBigInt(e);\n if (s >= n) {\n throw new Error('Signature size cannot exceed modulus size');\n }\n const EM1 = bigIntToUint8Array(modExp(s, e, n), 'be', byteLength(n));\n const EM2 = emsaEncode(hashAlgo, hashed, byteLength(n));\n return util.equalsUint8Array(EM1, EM2);\n}\n\nasync function webVerify(hashName, data, s, n, e) {\n const jwk = publicToJWK(n, e);\n const key = await webCrypto.importKey('jwk', jwk, {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: hashName }\n }, false, ['verify']);\n return webCrypto.verify('RSASSA-PKCS1-v1_5', key, s, data);\n}\n\nasync function nodeVerify(hashAlgo, data, s, n, e) {\n const jwk = publicToJWK(n, e);\n const key = { key: jwk, format: 'jwk', type: 'pkcs1' };\n\n const verify = nodeCrypto.createVerify(enums.read(enums.hash, hashAlgo));\n verify.write(data);\n verify.end();\n\n try {\n return verify.verify(key, s);\n } catch (err) {\n return false;\n }\n}\n\nasync function nodeEncrypt(data, n, e) {\n const jwk = publicToJWK(n, e);\n const key = { key: jwk, format: 'jwk', type: 'pkcs1', padding: nodeCrypto.constants.RSA_PKCS1_PADDING };\n\n return new Uint8Array(nodeCrypto.publicEncrypt(key, data));\n}\n\nasync function bnEncrypt(data, n, e) {\n n = uint8ArrayToBigInt(n);\n data = uint8ArrayToBigInt(emeEncode(data, byteLength(n)));\n e = uint8ArrayToBigInt(e);\n if (data >= n) {\n throw new Error('Message size cannot exceed modulus size');\n }\n return bigIntToUint8Array(modExp(data, e, n), 'be', byteLength(n));\n}\n\nasync function nodeDecrypt(data, n, e, d, p, q, u) {\n const jwk = await privateToJWK(n, e, d, p, q, u);\n const key = { key: jwk, format: 'jwk' , type: 'pkcs1', padding: nodeCrypto.constants.RSA_PKCS1_PADDING };\n\n try {\n return new Uint8Array(nodeCrypto.privateDecrypt(key, data));\n } catch (err) {\n throw new Error('Decryption error');\n }\n}\n\nasync function bnDecrypt(data, n, e, d, p, q, u, randomPayload) {\n data = uint8ArrayToBigInt(data);\n n = uint8ArrayToBigInt(n);\n e = uint8ArrayToBigInt(e);\n d = uint8ArrayToBigInt(d);\n p = uint8ArrayToBigInt(p);\n q = uint8ArrayToBigInt(q);\n u = uint8ArrayToBigInt(u);\n if (data >= n) {\n throw new Error('Data too large.');\n }\n const dq = mod(d, q - _1n); // d mod (q-1)\n const dp = mod(d, p - _1n); // d mod (p-1)\n\n const unblinder = getRandomBigInteger(BigInt(2), n);\n const blinder = modExp(modInv(unblinder, n), e, n);\n data = mod(data * blinder, n);\n\n const mp = modExp(data, dp, p); // data**{d mod (q-1)} mod p\n const mq = modExp(data, dq, q); // data**{d mod (p-1)} mod q\n const h = mod(u * (mq - mp), q); // u * (mq-mp) mod q (operands already < q)\n\n let result = h * p + mp; // result < n due to relations above\n\n result = mod(result * unblinder, n);\n\n return emeDecode(bigIntToUint8Array(result, 'be', byteLength(n)), randomPayload);\n}\n\n/** Convert Openpgp private key params to jwk key according to\n * @link https://tools.ietf.org/html/rfc7517\n * @param {String} hashAlgo\n * @param {Uint8Array} n\n * @param {Uint8Array} e\n * @param {Uint8Array} d\n * @param {Uint8Array} p\n * @param {Uint8Array} q\n * @param {Uint8Array} u\n */\nasync function privateToJWK(n, e, d, p, q, u) {\n const pNum = uint8ArrayToBigInt(p);\n const qNum = uint8ArrayToBigInt(q);\n const dNum = uint8ArrayToBigInt(d);\n\n let dq = mod(dNum, qNum - _1n); // d mod (q-1)\n let dp = mod(dNum, pNum - _1n); // d mod (p-1)\n dp = bigIntToUint8Array(dp);\n dq = bigIntToUint8Array(dq);\n return {\n kty: 'RSA',\n n: uint8ArrayToB64(n, true),\n e: uint8ArrayToB64(e, true),\n d: uint8ArrayToB64(d, true),\n // switch p and q\n p: uint8ArrayToB64(q, true),\n q: uint8ArrayToB64(p, true),\n // switch dp and dq\n dp: uint8ArrayToB64(dq, true),\n dq: uint8ArrayToB64(dp, true),\n qi: uint8ArrayToB64(u, true),\n ext: true\n };\n}\n\n/** Convert Openpgp key public params to jwk key according to\n * @link https://tools.ietf.org/html/rfc7517\n * @param {String} hashAlgo\n * @param {Uint8Array} n\n * @param {Uint8Array} e\n */\nfunction publicToJWK(n, e) {\n return {\n kty: 'RSA',\n n: uint8ArrayToB64(n, true),\n e: uint8ArrayToB64(e, true),\n ext: true\n };\n}\n\n/** Convert JWK private key to OpenPGP private key params */\nfunction jwkToPrivate(jwk, e) {\n return {\n n: b64ToUint8Array(jwk.n),\n e: bigIntToUint8Array(e),\n d: b64ToUint8Array(jwk.d),\n // switch p and q\n p: b64ToUint8Array(jwk.q),\n q: b64ToUint8Array(jwk.p),\n // Since p and q are switched in places, u is the inverse of jwk.q\n u: b64ToUint8Array(jwk.qi)\n };\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview ElGamal implementation\n * @module crypto/public_key/elgamal\n */\nimport { getRandomBigInteger } from '../random';\nimport { emeEncode, emeDecode } from '../pkcs1';\nimport { bigIntToUint8Array, bitLength, byteLength, mod, modExp, modInv, uint8ArrayToBigInt } from '../biginteger';\n\nconst _1n = BigInt(1);\n\n/**\n * ElGamal Encryption function\n * Note that in OpenPGP, the message needs to be padded with PKCS#1 (same as RSA)\n * @param {Uint8Array} data - To be padded and encrypted\n * @param {Uint8Array} p\n * @param {Uint8Array} g\n * @param {Uint8Array} y\n * @returns {Promise<{ c1: Uint8Array, c2: Uint8Array }>}\n * @async\n */\nexport async function encrypt(data, p, g, y) {\n p = uint8ArrayToBigInt(p);\n g = uint8ArrayToBigInt(g);\n y = uint8ArrayToBigInt(y);\n\n const padded = emeEncode(data, byteLength(p));\n const m = uint8ArrayToBigInt(padded);\n\n // OpenPGP uses a \"special\" version of ElGamal where g is generator of the full group Z/pZ*\n // hence g has order p-1, and to avoid that k = 0 mod p-1, we need to pick k in [1, p-2]\n const k = getRandomBigInteger(_1n, p - _1n);\n return {\n c1: bigIntToUint8Array(modExp(g, k, p)),\n c2: bigIntToUint8Array(mod(modExp(y, k, p) * m, p))\n };\n}\n\n/**\n * ElGamal Encryption function\n * @param {Uint8Array} c1\n * @param {Uint8Array} c2\n * @param {Uint8Array} p\n * @param {Uint8Array} x\n * @param {Uint8Array} randomPayload - Data to return on unpadding error, instead of throwing\n * (needed for constant-time processing)\n * @returns {Promise} Unpadded message.\n * @throws {Error} on decryption error, unless `randomPayload` is given\n * @async\n */\nexport async function decrypt(c1, c2, p, x, randomPayload) {\n c1 = uint8ArrayToBigInt(c1);\n c2 = uint8ArrayToBigInt(c2);\n p = uint8ArrayToBigInt(p);\n x = uint8ArrayToBigInt(x);\n\n const padded = mod(modInv(modExp(c1, x, p), p) * c2, p);\n return emeDecode(bigIntToUint8Array(padded, 'be', byteLength(p)), randomPayload);\n}\n\n/**\n * Validate ElGamal parameters\n * @param {Uint8Array} p - ElGamal prime\n * @param {Uint8Array} g - ElGamal group generator\n * @param {Uint8Array} y - ElGamal public key\n * @param {Uint8Array} x - ElGamal private exponent\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(p, g, y, x) {\n p = uint8ArrayToBigInt(p);\n g = uint8ArrayToBigInt(g);\n y = uint8ArrayToBigInt(y);\n\n // Check that 1 < g < p\n if (g <= _1n || g >= p) {\n return false;\n }\n\n // Expect p-1 to be large\n const pSize = BigInt(bitLength(p));\n const _1023n = BigInt(1023);\n if (pSize < _1023n) {\n return false;\n }\n\n /**\n * g should have order p-1\n * Check that g ** (p-1) = 1 mod p\n */\n if (modExp(g, p - _1n, p) !== _1n) {\n return false;\n }\n\n /**\n * Since p-1 is not prime, g might have a smaller order that divides p-1\n * We want to make sure that the order is large enough to hinder a small subgroup attack\n *\n * We just check g**i != 1 for all i up to a threshold\n */\n let res = g;\n let i = BigInt(1);\n const _2n = BigInt(2);\n const threshold = _2n << BigInt(17); // we want order > threshold\n while (i < threshold) {\n res = mod(res * g, p);\n if (res === _1n) {\n return false;\n }\n i++;\n }\n\n /**\n * Re-derive public key y' = g ** x mod p\n * Expect y == y'\n *\n * Blinded exponentiation computes g**{r(p-1) + x} to compare to y\n */\n x = uint8ArrayToBigInt(x);\n const r = getRandomBigInteger(_2n << (pSize - _1n), _2n << pSize); // draw r of same size as p-1\n const rqx = (p - _1n) * r + x;\n if (y !== modExp(g, rqx, p)) {\n return false;\n }\n\n return true;\n}\n", "// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\nimport * as nc from 'node:crypto';\nexport const crypto =\n nc && typeof nc === 'object' && 'webcrypto' in nc ? nc.webcrypto : undefined;\n", "import { crypto } from './crypto.js';\n\n'use strict';\nconst nacl = {};\nexport default nacl;\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32;\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.box = {};\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n if (crypto && crypto.getRandomValues) {\n // Browsers and Node v16+\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n})();\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * Wrapper to an OID value\n *\n * {@link https://tools.ietf.org/html/rfc6637#section-11|RFC6637, section 11}:\n * The sequence of octets in the third column is the result of applying\n * the Distinguished Encoding Rules (DER) to the ASN.1 Object Identifier\n * with subsequent truncation. The truncation removes the two fields of\n * encoded Object Identifier. The first omitted field is one octet\n * representing the Object Identifier tag, and the second omitted field\n * is the length of the Object Identifier body. For example, the\n * complete ASN.1 DER encoding for the NIST P-256 curve OID is \"06 08 2A\n * 86 48 CE 3D 03 01 07\", from which the first entry in the table above\n * is constructed by omitting the first two octets. Only the truncated\n * sequence of octets is the valid representation of a curve OID.\n * @module type/oid\n */\n\nimport util from '../util';\nimport enums from '../enums';\n\nconst knownOIDs = {\n '2a8648ce3d030107': enums.curve.nistP256,\n '2b81040022': enums.curve.nistP384,\n '2b81040023': enums.curve.nistP521,\n '2b8104000a': enums.curve.secp256k1,\n '2b06010401da470f01': enums.curve.ed25519Legacy,\n '2b060104019755010501': enums.curve.curve25519Legacy,\n '2b2403030208010107': enums.curve.brainpoolP256r1,\n '2b240303020801010b': enums.curve.brainpoolP384r1,\n '2b240303020801010d': enums.curve.brainpoolP512r1\n};\n\nclass OID {\n constructor(oid) {\n if (oid instanceof OID) {\n this.oid = oid.oid;\n } else if (util.isArray(oid) ||\n util.isUint8Array(oid)) {\n oid = new Uint8Array(oid);\n if (oid[0] === 0x06) { // DER encoded oid byte array\n if (oid[1] !== oid.length - 2) {\n throw new Error('Length mismatch in DER encoded oid');\n }\n oid = oid.subarray(2);\n }\n this.oid = oid;\n } else {\n this.oid = '';\n }\n }\n\n /**\n * Method to read an OID object\n * @param {Uint8Array} input - Where to read the OID from\n * @returns {Number} Number of read bytes.\n */\n read(input) {\n if (input.length >= 1) {\n const length = input[0];\n if (input.length >= 1 + length) {\n this.oid = input.subarray(1, 1 + length);\n return 1 + this.oid.length;\n }\n }\n throw new Error('Invalid oid');\n }\n\n /**\n * Serialize an OID object\n * @returns {Uint8Array} Array with the serialized value the OID.\n */\n write() {\n return util.concatUint8Array([new Uint8Array([this.oid.length]), this.oid]);\n }\n\n /**\n * Serialize an OID object as a hex string\n * @returns {string} String with the hex value of the OID.\n */\n toHex() {\n return util.uint8ArrayToHex(this.oid);\n }\n\n /**\n * If a known curve object identifier, return the canonical name of the curve\n * @returns {enums.curve} String with the canonical name of the curve\n * @throws if unknown\n */\n getName() {\n const name = knownOIDs[this.toHex()];\n if (!name) {\n throw new Error('Unknown curve object identifier.');\n }\n\n return name;\n }\n}\n\nexport default OID;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Functions for reading and writing packets\n * @module packet/packet\n */\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport enums from '../enums';\nimport util from '../util';\n\nexport function readSimpleLength(bytes) {\n let len = 0;\n let offset;\n const type = bytes[0];\n\n\n if (type < 192) {\n [len] = bytes;\n offset = 1;\n } else if (type < 255) {\n len = ((bytes[0] - 192) << 8) + (bytes[1]) + 192;\n offset = 2;\n } else if (type === 255) {\n len = util.readNumber(bytes.subarray(1, 1 + 4));\n offset = 5;\n }\n\n return {\n len: len,\n offset: offset\n };\n}\n\n/**\n * Encodes a given integer of length to the openpgp length specifier to a\n * string\n *\n * @param {Integer} length - The length to encode\n * @returns {Uint8Array} String with openpgp length representation.\n */\nexport function writeSimpleLength(length) {\n if (length < 192) {\n return new Uint8Array([length]);\n } else if (length > 191 && length < 8384) {\n /*\n * let a = (total data packet length) - 192 let bc = two octet\n * representation of a let d = b + 192\n */\n return new Uint8Array([((length - 192) >> 8) + 192, (length - 192) & 0xFF]);\n }\n return util.concatUint8Array([new Uint8Array([255]), util.writeNumber(length, 4)]);\n}\n\nexport function writePartialLength(power) {\n if (power < 0 || power > 30) {\n throw new Error('Partial Length power must be between 1 and 30');\n }\n return new Uint8Array([224 + power]);\n}\n\nexport function writeTag(tag_type) {\n /* we're only generating v4 packet headers here */\n return new Uint8Array([0xC0 | tag_type]);\n}\n\n/**\n * Writes a packet header version 4 with the given tag_type and length to a\n * string\n *\n * @param {Integer} tag_type - Tag type\n * @param {Integer} length - Length of the payload\n * @returns {String} String of the header.\n */\nexport function writeHeader(tag_type, length) {\n /* we're only generating v4 packet headers here */\n return util.concatUint8Array([writeTag(tag_type), writeSimpleLength(length)]);\n}\n\n/**\n * Whether the packet type supports partial lengths per RFC4880\n * @param {Integer} tag - Tag type\n * @returns {Boolean} String of the header.\n */\nexport function supportsStreaming(tag) {\n return [\n enums.packet.literalData,\n enums.packet.compressedData,\n enums.packet.symmetricallyEncryptedData,\n enums.packet.symEncryptedIntegrityProtectedData,\n enums.packet.aeadEncryptedData\n ].includes(tag);\n}\n\n/**\n * Generic static Packet Parser function\n *\n * @param {Uint8Array | ReadableStream} input - Input stream as string\n * @param {Function} callback - Function to call with the parsed packet\n * @returns {Boolean} Returns false if the stream was empty and parsing is done, and true otherwise.\n */\nexport async function readPackets(input, callback) {\n const reader = stream.getReader(input);\n let writer;\n let callbackReturned;\n try {\n const peekedBytes = await reader.peekBytes(2);\n // some sanity checks\n if (!peekedBytes || peekedBytes.length < 2 || (peekedBytes[0] & 0x80) === 0) {\n throw new Error('Error during parsing. This message / key probably does not conform to a valid OpenPGP format.');\n }\n const headerByte = await reader.readByte();\n let tag = -1;\n let format = -1;\n let packetLength;\n\n format = 0; // 0 = old format; 1 = new format\n if ((headerByte & 0x40) !== 0) {\n format = 1;\n }\n\n let packetLengthType;\n if (format) {\n // new format header\n tag = headerByte & 0x3F; // bit 5-0\n } else {\n // old format header\n tag = (headerByte & 0x3F) >> 2; // bit 5-2\n packetLengthType = headerByte & 0x03; // bit 1-0\n }\n\n const packetSupportsStreaming = supportsStreaming(tag);\n let packet = null;\n if (packetSupportsStreaming) {\n if (util.isStream(input) === 'array') {\n const arrayStream = new stream.ArrayStream();\n writer = stream.getWriter(arrayStream);\n packet = arrayStream;\n } else {\n const transform = new TransformStream();\n writer = stream.getWriter(transform.writable);\n packet = transform.readable;\n }\n // eslint-disable-next-line callback-return\n callbackReturned = callback({ tag, packet });\n } else {\n packet = [];\n }\n\n let wasPartialLength;\n do {\n if (!format) {\n // 4.2.1. Old Format Packet Lengths\n switch (packetLengthType) {\n case 0:\n // The packet has a one-octet length. The header is 2 octets\n // long.\n packetLength = await reader.readByte();\n break;\n case 1:\n // The packet has a two-octet length. The header is 3 octets\n // long.\n packetLength = (await reader.readByte() << 8) | await reader.readByte();\n break;\n case 2:\n // The packet has a four-octet length. The header is 5\n // octets long.\n packetLength = (await reader.readByte() << 24) | (await reader.readByte() << 16) | (await reader.readByte() <<\n 8) | await reader.readByte();\n break;\n default:\n // 3 - The packet is of indeterminate length. The header is 1\n // octet long, and the implementation must determine how long\n // the packet is. If the packet is in a file, this means that\n // the packet extends until the end of the file. In general,\n // an implementation SHOULD NOT use indeterminate-length\n // packets except where the end of the data will be clear\n // from the context, and even then it is better to use a\n // definite length, or a new format header. The new format\n // headers described below have a mechanism for precisely\n // encoding data of indeterminate length.\n packetLength = Infinity;\n break;\n }\n } else { // 4.2.2. New Format Packet Lengths\n // 4.2.2.1. One-Octet Lengths\n const lengthByte = await reader.readByte();\n wasPartialLength = false;\n if (lengthByte < 192) {\n packetLength = lengthByte;\n // 4.2.2.2. Two-Octet Lengths\n } else if (lengthByte >= 192 && lengthByte < 224) {\n packetLength = ((lengthByte - 192) << 8) + (await reader.readByte()) + 192;\n // 4.2.2.4. Partial Body Lengths\n } else if (lengthByte > 223 && lengthByte < 255) {\n packetLength = 1 << (lengthByte & 0x1F);\n wasPartialLength = true;\n if (!packetSupportsStreaming) {\n throw new TypeError('This packet type does not support partial lengths.');\n }\n // 4.2.2.3. Five-Octet Lengths\n } else {\n packetLength = (await reader.readByte() << 24) | (await reader.readByte() << 16) | (await reader.readByte() <<\n 8) | await reader.readByte();\n }\n }\n if (packetLength > 0) {\n let bytesRead = 0;\n while (true) {\n if (writer) await writer.ready;\n const { done, value } = await reader.read();\n if (done) {\n if (packetLength === Infinity) break;\n throw new Error('Unexpected end of packet');\n }\n const chunk = packetLength === Infinity ? value : value.subarray(0, packetLength - bytesRead);\n if (writer) await writer.write(chunk);\n else packet.push(chunk);\n bytesRead += value.length;\n if (bytesRead >= packetLength) {\n reader.unshift(value.subarray(packetLength - bytesRead + value.length));\n break;\n }\n }\n }\n } while (wasPartialLength);\n\n // If this was not a packet that \"supports streaming\", we peek to check\n // whether it is the last packet in the message. We peek 2 bytes instead\n // of 1 because the beginning of this function also peeks 2 bytes, and we\n // want to cut a `subarray` of the correct length into `web-stream-tools`'\n // `externalBuffer` as a tiny optimization here.\n //\n // If it *was* a streaming packet (i.e. the data packets), we peek at the\n // entire remainder of the stream, in order to forward errors in the\n // remainder of the stream to the packet data. (Note that this means we\n // read/peek at all signature packets before closing the literal data\n // packet, for example.) This forwards MDC errors to the literal data\n // stream, for example, so that they don't get lost / forgotten on\n // decryptedMessage.packets.stream, which we never look at.\n //\n // An example of what we do when stream-parsing a message containing\n // [ one-pass signature packet, literal data packet, signature packet ]:\n // 1. Read the one-pass signature packet\n // 2. Peek 2 bytes of the literal data packet\n // 3. Parse the one-pass signature packet\n //\n // 4. Read the literal data packet, simultaneously stream-parsing it\n // 5. Peek until the end of the message\n // 6. Finish parsing the literal data packet\n //\n // 7. Read the signature packet again (we already peeked at it in step 5)\n // 8. Peek at the end of the stream again (`peekBytes` returns undefined)\n // 9. Parse the signature packet\n //\n // Note that this means that if there's an error in the very end of the\n // stream, such as an MDC error, we throw in step 5 instead of in step 8\n // (or never), which is the point of this exercise.\n const nextPacket = await reader.peekBytes(packetSupportsStreaming ? Infinity : 2);\n if (writer) {\n await writer.ready;\n await writer.close();\n } else {\n packet = util.concatUint8Array(packet);\n // eslint-disable-next-line callback-return\n await callback({ tag, packet });\n }\n return !nextPacket || !nextPacket.length;\n } catch (e) {\n if (writer) {\n await writer.abort(e);\n return true;\n } else {\n throw e;\n }\n } finally {\n if (writer) {\n await callbackReturned;\n }\n reader.releaseLock();\n }\n}\n\nexport class UnsupportedError extends Error {\n constructor(...params) {\n super(...params);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, UnsupportedError);\n }\n\n this.name = 'UnsupportedError';\n }\n}\n\n// unknown packet types are handled differently depending on the packet criticality\nexport class UnknownPacketError extends UnsupportedError {\n constructor(...params) {\n super(...params);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, UnsupportedError);\n }\n\n this.name = 'UnknownPacketError';\n }\n}\n\nexport class UnparseablePacket {\n constructor(tag, rawContent) {\n this.tag = tag;\n this.rawContent = rawContent;\n }\n\n write() {\n return this.rawContent;\n }\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 Proton Technologies AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Implementation of EdDSA following RFC4880bis-03 for OpenPGP\n * @module crypto/public_key/elliptic/eddsa\n */\n\nimport ed25519 from '@openpgp/tweetnacl';\nimport util from '../../../util';\nimport enums from '../../../enums';\nimport hash from '../../hash';\nimport { getRandomBytes } from '../../random';\nimport { b64ToUint8Array, uint8ArrayToB64 } from '../../../encoding/base64';\n\n\n/**\n * Generate (non-legacy) EdDSA key\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @returns {Promise<{ A: Uint8Array, seed: Uint8Array }>}\n */\nexport async function generate(algo) {\n switch (algo) {\n case enums.publicKey.ed25519:\n try {\n const webCrypto = util.getWebCrypto();\n const webCryptoKey = await webCrypto.generateKey('Ed25519', true, ['sign', 'verify']);\n\n const privateKey = await webCrypto.exportKey('jwk', webCryptoKey.privateKey);\n const publicKey = await webCrypto.exportKey('jwk', webCryptoKey.publicKey);\n\n return {\n A: new Uint8Array(b64ToUint8Array(publicKey.x)),\n seed: b64ToUint8Array(privateKey.d, true)\n };\n } catch (err) {\n if (err.name !== 'NotSupportedError' && err.name !== 'OperationError') { // Temporary (hopefully) fix for WebKit on Linux\n throw err;\n }\n const seed = getRandomBytes(getPayloadSize(algo));\n const { publicKey: A } = ed25519.sign.keyPair.fromSeed(seed);\n return { A, seed };\n }\n\n case enums.publicKey.ed448: {\n const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n const seed = ed448.utils.randomPrivateKey();\n const A = ed448.getPublicKey(seed);\n return { A, seed };\n }\n default:\n throw new Error('Unsupported EdDSA algorithm');\n }\n}\n\n/**\n * Sign a message using the provided key\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used to sign (must be sha256 or stronger)\n * @param {Uint8Array} message - Message to sign\n * @param {Uint8Array} publicKey - Public key\n * @param {Uint8Array} privateKey - Private key used to sign the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<{\n * RS: Uint8Array\n * }>} Signature of the message\n * @async\n */\nexport async function sign(algo, hashAlgo, message, publicKey, privateKey, hashed) {\n if (hash.getHashByteLength(hashAlgo) < hash.getHashByteLength(getPreferredHashAlgo(algo))) {\n // Enforce digest sizes:\n // - Ed25519: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.4-4\n // - Ed448: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.5-4\n throw new Error('Hash algorithm too weak for EdDSA.');\n }\n switch (algo) {\n case enums.publicKey.ed25519:\n try {\n const webCrypto = util.getWebCrypto();\n const jwk = privateKeyToJWK(algo, publicKey, privateKey);\n const key = await webCrypto.importKey('jwk', jwk, 'Ed25519', false, ['sign']);\n\n const signature = new Uint8Array(\n await webCrypto.sign('Ed25519', key, hashed)\n );\n\n return { RS: signature };\n } catch (err) {\n if (err.name !== 'NotSupportedError') {\n throw err;\n }\n const secretKey = util.concatUint8Array([privateKey, publicKey]);\n const signature = ed25519.sign.detached(hashed, secretKey);\n return { RS: signature };\n }\n\n case enums.publicKey.ed448: {\n const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n const signature = ed448.sign(hashed, privateKey);\n return { RS: signature };\n }\n default:\n throw new Error('Unsupported EdDSA algorithm');\n }\n\n}\n\n/**\n * Verifies if a signature is valid for a message\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used in the signature\n * @param {{ RS: Uint8Array }} signature Signature to verify the message\n * @param {Uint8Array} m - Message to verify\n * @param {Uint8Array} publicKey - Public key used to verify the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Boolean}\n * @async\n */\nexport async function verify(algo, hashAlgo, { RS }, m, publicKey, hashed) {\n if (hash.getHashByteLength(hashAlgo) < hash.getHashByteLength(getPreferredHashAlgo(algo))) {\n // Enforce digest sizes:\n // - Ed25519: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.4-4\n // - Ed448: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.5-4\n throw new Error('Hash algorithm too weak for EdDSA.');\n }\n switch (algo) {\n case enums.publicKey.ed25519:\n try {\n const webCrypto = util.getWebCrypto();\n const jwk = publicKeyToJWK(algo, publicKey);\n const key = await webCrypto.importKey('jwk', jwk, 'Ed25519', false, ['verify']);\n const verified = await webCrypto.verify('Ed25519', key, RS, hashed);\n return verified;\n } catch (err) {\n if (err.name !== 'NotSupportedError') {\n throw err;\n }\n return ed25519.sign.detached.verify(hashed, RS, publicKey);\n }\n\n case enums.publicKey.ed448: {\n const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n return ed448.verify(RS, hashed, publicKey);\n }\n default:\n throw new Error('Unsupported EdDSA algorithm');\n }\n}\n/**\n * Validate (non-legacy) EdDSA parameters\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {Uint8Array} A - EdDSA public point\n * @param {Uint8Array} seed - EdDSA secret seed\n * @param {Uint8Array} oid - (legacy only) EdDSA OID\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(algo, A, seed) {\n switch (algo) {\n case enums.publicKey.ed25519: {\n /**\n * Derive public point A' from private key\n * and expect A == A'\n * TODO: move to sign-verify using WebCrypto (same as ECDSA) when curve is more widely implemented\n */\n const { publicKey } = ed25519.sign.keyPair.fromSeed(seed);\n return util.equalsUint8Array(A, publicKey);\n }\n\n case enums.publicKey.ed448: {\n const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n\n const publicKey = ed448.getPublicKey(seed);\n return util.equalsUint8Array(A, publicKey);\n }\n default:\n return false;\n }\n}\n\nexport function getPayloadSize(algo) {\n switch (algo) {\n case enums.publicKey.ed25519:\n return 32;\n\n case enums.publicKey.ed448:\n return 57;\n\n default:\n throw new Error('Unsupported EdDSA algorithm');\n }\n}\n\nexport function getPreferredHashAlgo(algo) {\n switch (algo) {\n case enums.publicKey.ed25519:\n return enums.hash.sha256;\n case enums.publicKey.ed448:\n return enums.hash.sha512;\n default:\n throw new Error('Unknown EdDSA algo');\n }\n}\n\nconst publicKeyToJWK = (algo, publicKey) => {\n switch (algo) {\n case enums.publicKey.ed25519: {\n const jwk = {\n kty: 'OKP',\n crv: 'Ed25519',\n x: uint8ArrayToB64(publicKey, true),\n ext: true\n };\n return jwk;\n }\n default:\n throw new Error('Unsupported EdDSA algorithm');\n }\n};\n\nconst privateKeyToJWK = (algo, publicKey, privateKey) => {\n switch (algo) {\n case enums.publicKey.ed25519: {\n const jwk = publicKeyToJWK(algo, publicKey);\n jwk.d = uint8ArrayToB64(privateKey, true);\n return jwk;\n }\n default:\n throw new Error('Unsupported EdDSA algorithm');\n }\n};\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Implementation of RFC 3394 AES Key Wrap & Key Unwrap funcions\n * @see module:crypto/public_key/elliptic/ecdh\n * @module crypto/aes_kw\n */\n\nimport { aeskw as nobleAesKW } from '@noble/ciphers/aes';\nimport { getCipherParams } from './cipher';\nimport util from '../util';\n\nconst webCrypto = util.getWebCrypto();\n/**\n * AES key wrap\n * @param {enums.symmetric.aes128|enums.symmetric.aes256|enums.symmetric.aes192} algo - AES algo\n * @param {Uint8Array} key - wrapping key\n * @param {Uint8Array} dataToWrap\n * @returns {Uint8Array} wrapped key\n */\nexport async function wrap(algo, key, dataToWrap) {\n const { keySize } = getCipherParams(algo);\n // sanity checks, since WebCrypto does not use the `algo` input\n if (!util.isAES(algo) || key.length !== keySize) {\n throw new Error('Unexpected algorithm or key size');\n }\n\n try {\n const wrappingKey = await webCrypto.importKey('raw', key, { name: 'AES-KW' }, false, ['wrapKey']);\n // Import data as HMAC key, as it has no key length requirements\n const keyToWrap = await webCrypto.importKey('raw', dataToWrap, { name: 'HMAC', hash: 'SHA-256' }, true, ['sign']);\n const wrapped = await webCrypto.wrapKey('raw', keyToWrap, wrappingKey, { name: 'AES-KW' });\n return new Uint8Array(wrapped);\n } catch (err) {\n // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n if (err.name !== 'NotSupportedError' &&\n !(key.length === 24 && err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support operation: ' + err.message);\n }\n\n return nobleAesKW(key).encrypt(dataToWrap);\n}\n\n/**\n * AES key unwrap\n * @param {enums.symmetric.aes128|enums.symmetric.aes256|enums.symmetric.aes192} algo - AES algo\n * @param {Uint8Array} key - wrapping key\n * @param {Uint8Array} wrappedData\n * @returns {Uint8Array} unwrapped data\n */\nexport async function unwrap(algo, key, wrappedData) {\n const { keySize } = getCipherParams(algo);\n // sanity checks, since WebCrypto does not use the `algo` input\n if (!util.isAES(algo) || key.length !== keySize) {\n throw new Error('Unexpected algorithm or key size');\n }\n\n let wrappingKey;\n try {\n wrappingKey = await webCrypto.importKey('raw', key, { name: 'AES-KW' }, false, ['unwrapKey']);\n } catch (err) {\n // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n if (err.name !== 'NotSupportedError' &&\n !(key.length === 24 && err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support operation: ' + err.message);\n return nobleAesKW(key).decrypt(wrappedData);\n }\n\n try {\n const unwrapped = await webCrypto.unwrapKey('raw', wrappedData, wrappingKey, { name: 'AES-KW' }, { name: 'HMAC', hash: 'SHA-256' }, true, ['sign']);\n return new Uint8Array(await webCrypto.exportKey('raw', unwrapped));\n } catch (err) {\n if (err.name === 'OperationError') {\n throw new Error('Key Data Integrity failed');\n }\n throw err;\n }\n}\n", "/**\n * @fileoverview This module implements HKDF using either the WebCrypto API or Node.js' crypto API.\n * @module crypto/hkdf\n */\n\nimport enums from '../enums';\nimport util from '../util';\n\nconst webCrypto = util.getWebCrypto();\n\nexport default async function computeHKDF(hashAlgo, inputKey, salt, info, outLen) {\n const hash = enums.read(enums.webHash, hashAlgo);\n if (!hash) throw new Error('Hash algo not supported with HKDF');\n\n const importedKey = await webCrypto.importKey('raw', inputKey, 'HKDF', false, ['deriveBits']);\n const bits = await webCrypto.deriveBits({ name: 'HKDF', hash, salt, info }, importedKey, outLen * 8);\n return new Uint8Array(bits);\n}\n", "/**\n * @fileoverview Key encryption and decryption for RFC 6637 ECDH\n * @module crypto/public_key/elliptic/ecdh\n */\n\nimport x25519 from '@openpgp/tweetnacl';\nimport * as aesKW from '../../aes_kw';\nimport { getRandomBytes } from '../../random';\n\nimport enums from '../../../enums';\nimport util from '../../../util';\nimport computeHKDF from '../../hkdf';\nimport { getCipherParams } from '../../cipher';\n\nconst HKDF_INFO = {\n x25519: util.encodeUTF8('OpenPGP X25519'),\n x448: util.encodeUTF8('OpenPGP X448')\n};\n\n/**\n * Generate ECDH key for Montgomery curves\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @returns {Promise<{ A: Uint8Array, k: Uint8Array }>}\n */\nexport async function generate(algo) {\n switch (algo) {\n case enums.publicKey.x25519: {\n // k stays in little-endian, unlike legacy ECDH over curve25519\n const k = getRandomBytes(32);\n const { publicKey: A } = x25519.box.keyPair.fromSecretKey(k);\n return { A, k };\n }\n\n case enums.publicKey.x448: {\n const x448 = await util.getNobleCurve(enums.publicKey.x448);\n const k = x448.utils.randomPrivateKey();\n const A = x448.getPublicKey(k);\n return { A, k };\n }\n default:\n throw new Error('Unsupported ECDH algorithm');\n }\n}\n\n/**\n* Validate ECDH parameters\n* @param {module:enums.publicKey} algo - Algorithm identifier\n* @param {Uint8Array} A - ECDH public point\n* @param {Uint8Array} k - ECDH secret scalar\n* @returns {Promise} Whether params are valid.\n* @async\n*/\nexport async function validateParams(algo, A, k) {\n switch (algo) {\n case enums.publicKey.x25519: {\n /**\n * Derive public point A' from private key\n * and expect A == A'\n */\n const { publicKey } = x25519.box.keyPair.fromSecretKey(k);\n return util.equalsUint8Array(A, publicKey);\n }\n case enums.publicKey.x448: {\n const x448 = await util.getNobleCurve(enums.publicKey.x448);\n /**\n * Derive public point A' from private key\n * and expect A == A'\n */\n const publicKey = x448.getPublicKey(k);\n return util.equalsUint8Array(A, publicKey);\n }\n\n default:\n return false;\n }\n}\n\n/**\n * Wrap and encrypt a session key\n *\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {Uint8Array} data - session key data to be encrypted\n * @param {Uint8Array} recipientA - Recipient public key (K_B)\n * @returns {Promise<{\n * ephemeralPublicKey: Uint8Array,\n * wrappedKey: Uint8Array\n * }>} ephemeral public key (K_A) and encrypted key\n * @async\n */\nexport async function encrypt(algo, data, recipientA) {\n const { ephemeralPublicKey, sharedSecret } = await generateEphemeralEncryptionMaterial(algo, recipientA);\n const hkdfInput = util.concatUint8Array([\n ephemeralPublicKey,\n recipientA,\n sharedSecret\n ]);\n switch (algo) {\n case enums.publicKey.x25519: {\n const cipherAlgo = enums.symmetric.aes128;\n const { keySize } = getCipherParams(cipherAlgo);\n const encryptionKey = await computeHKDF(enums.hash.sha256, hkdfInput, new Uint8Array(), HKDF_INFO.x25519, keySize);\n const wrappedKey = await aesKW.wrap(cipherAlgo, encryptionKey, data);\n return { ephemeralPublicKey, wrappedKey };\n }\n case enums.publicKey.x448: {\n const cipherAlgo = enums.symmetric.aes256;\n const { keySize } = getCipherParams(enums.symmetric.aes256);\n const encryptionKey = await computeHKDF(enums.hash.sha512, hkdfInput, new Uint8Array(), HKDF_INFO.x448, keySize);\n const wrappedKey = await aesKW.wrap(cipherAlgo, encryptionKey, data);\n return { ephemeralPublicKey, wrappedKey };\n }\n\n default:\n throw new Error('Unsupported ECDH algorithm');\n }\n}\n\n/**\n * Decrypt and unwrap the session key\n *\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {Uint8Array} ephemeralPublicKey - (K_A)\n * @param {Uint8Array} wrappedKey,\n * @param {Uint8Array} A - Recipient public key (K_b), needed for KDF\n * @param {Uint8Array} k - Recipient secret key (b)\n * @returns {Promise} decrypted session key data\n * @async\n */\nexport async function decrypt(algo, ephemeralPublicKey, wrappedKey, A, k) {\n const sharedSecret = await recomputeSharedSecret(algo, ephemeralPublicKey, A, k);\n const hkdfInput = util.concatUint8Array([\n ephemeralPublicKey,\n A,\n sharedSecret\n ]);\n switch (algo) {\n case enums.publicKey.x25519: {\n const cipherAlgo = enums.symmetric.aes128;\n const { keySize } = getCipherParams(cipherAlgo);\n const encryptionKey = await computeHKDF(enums.hash.sha256, hkdfInput, new Uint8Array(), HKDF_INFO.x25519, keySize);\n return aesKW.unwrap(cipherAlgo, encryptionKey, wrappedKey);\n }\n case enums.publicKey.x448: {\n const cipherAlgo = enums.symmetric.aes256;\n const { keySize } = getCipherParams(enums.symmetric.aes256);\n const encryptionKey = await computeHKDF(enums.hash.sha512, hkdfInput, new Uint8Array(), HKDF_INFO.x448, keySize);\n return aesKW.unwrap(cipherAlgo, encryptionKey, wrappedKey);\n }\n default:\n throw new Error('Unsupported ECDH algorithm');\n }\n}\n\nexport function getPayloadSize(algo) {\n switch (algo) {\n case enums.publicKey.x25519:\n return 32;\n\n case enums.publicKey.x448:\n return 56;\n\n default:\n throw new Error('Unsupported ECDH algorithm');\n }\n}\n\n/**\n * Generate shared secret and ephemeral public key for encryption\n * @returns {Promise<{ ephemeralPublicKey: Uint8Array, sharedSecret: Uint8Array }>} ephemeral public key (K_A) and shared secret\n * @async\n */\nexport async function generateEphemeralEncryptionMaterial(algo, recipientA) {\n switch (algo) {\n case enums.publicKey.x25519: {\n const ephemeralSecretKey = getRandomBytes(getPayloadSize(algo));\n const sharedSecret = x25519.scalarMult(ephemeralSecretKey, recipientA);\n assertNonZeroArray(sharedSecret);\n const { publicKey: ephemeralPublicKey } = x25519.box.keyPair.fromSecretKey(ephemeralSecretKey);\n return { ephemeralPublicKey, sharedSecret };\n }\n case enums.publicKey.x448: {\n const x448 = await util.getNobleCurve(enums.publicKey.x448);\n const ephemeralSecretKey = x448.utils.randomPrivateKey();\n const sharedSecret = x448.getSharedSecret(ephemeralSecretKey, recipientA);\n assertNonZeroArray(sharedSecret);\n const ephemeralPublicKey = x448.getPublicKey(ephemeralSecretKey);\n return { ephemeralPublicKey, sharedSecret };\n }\n default:\n throw new Error('Unsupported ECDH algorithm');\n }\n}\n\nexport async function recomputeSharedSecret(algo, ephemeralPublicKey, A, k) {\n switch (algo) {\n case enums.publicKey.x25519: {\n const sharedSecret = x25519.scalarMult(k, ephemeralPublicKey);\n assertNonZeroArray(sharedSecret);\n return sharedSecret;\n }\n case enums.publicKey.x448: {\n const x448 = await util.getNobleCurve(enums.publicKey.x448);\n const sharedSecret = x448.getSharedSecret(k, ephemeralPublicKey);\n assertNonZeroArray(sharedSecret);\n return sharedSecret;\n }\n default:\n throw new Error('Unsupported ECDH algorithm');\n }\n}\n\n/**\n * x25519 and x448 produce an all-zero value when given as input a point with small order.\n * This does not lead to a security issue in the context of ECDH, but it is still unexpected,\n * hence we throw.\n * @param {Uint8Array} sharedSecret\n */\nfunction assertNonZeroArray(sharedSecret) {\n let acc = 0;\n for (let i = 0; i < sharedSecret.length; i++) {\n acc |= sharedSecret[i];\n }\n if (acc === 0) {\n throw new Error('Unexpected low order point');\n }\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Wrapper of an instance of an Elliptic Curve\n * @module crypto/public_key/elliptic/curve\n */\nimport nacl from '@openpgp/tweetnacl';\nimport enums from '../../../enums';\nimport util from '../../../util';\nimport { uint8ArrayToB64, b64ToUint8Array } from '../../../encoding/base64';\nimport OID from '../../../type/oid';\nimport { UnsupportedError } from '../../../packet/packet';\nimport { generate as eddsaGenerate } from './eddsa';\nimport { generate as ecdhXGenerate } from './ecdh_x';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\n\nconst webCurves = {\n [enums.curve.nistP256]: 'P-256',\n [enums.curve.nistP384]: 'P-384',\n [enums.curve.nistP521]: 'P-521'\n};\nconst knownCurves = nodeCrypto ? nodeCrypto.getCurves() : [];\nconst nodeCurves = nodeCrypto ? {\n [enums.curve.secp256k1]: knownCurves.includes('secp256k1') ? 'secp256k1' : undefined,\n [enums.curve.nistP256]: knownCurves.includes('prime256v1') ? 'prime256v1' : undefined,\n [enums.curve.nistP384]: knownCurves.includes('secp384r1') ? 'secp384r1' : undefined,\n [enums.curve.nistP521]: knownCurves.includes('secp521r1') ? 'secp521r1' : undefined,\n [enums.curve.ed25519Legacy]: knownCurves.includes('ED25519') ? 'ED25519' : undefined,\n [enums.curve.curve25519Legacy]: knownCurves.includes('X25519') ? 'X25519' : undefined,\n [enums.curve.brainpoolP256r1]: knownCurves.includes('brainpoolP256r1') ? 'brainpoolP256r1' : undefined,\n [enums.curve.brainpoolP384r1]: knownCurves.includes('brainpoolP384r1') ? 'brainpoolP384r1' : undefined,\n [enums.curve.brainpoolP512r1]: knownCurves.includes('brainpoolP512r1') ? 'brainpoolP512r1' : undefined\n} : {};\n\nconst curves = {\n [enums.curve.nistP256]: {\n oid: [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha256,\n cipher: enums.symmetric.aes128,\n node: nodeCurves[enums.curve.nistP256],\n web: webCurves[enums.curve.nistP256],\n payloadSize: 32,\n sharedSize: 256,\n wireFormatLeadingByte: 0x04\n },\n [enums.curve.nistP384]: {\n oid: [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x22],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha384,\n cipher: enums.symmetric.aes192,\n node: nodeCurves[enums.curve.nistP384],\n web: webCurves[enums.curve.nistP384],\n payloadSize: 48,\n sharedSize: 384,\n wireFormatLeadingByte: 0x04\n },\n [enums.curve.nistP521]: {\n oid: [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x23],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha512,\n cipher: enums.symmetric.aes256,\n node: nodeCurves[enums.curve.nistP521],\n web: webCurves[enums.curve.nistP521],\n payloadSize: 66,\n sharedSize: 528,\n wireFormatLeadingByte: 0x04\n },\n [enums.curve.secp256k1]: {\n oid: [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x0A],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha256,\n cipher: enums.symmetric.aes128,\n node: nodeCurves[enums.curve.secp256k1],\n payloadSize: 32,\n wireFormatLeadingByte: 0x04\n },\n [enums.curve.ed25519Legacy]: {\n oid: [0x06, 0x09, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xDA, 0x47, 0x0F, 0x01],\n keyType: enums.publicKey.eddsaLegacy,\n hash: enums.hash.sha512,\n node: false, // nodeCurves.ed25519 TODO\n payloadSize: 32,\n wireFormatLeadingByte: 0x40\n },\n [enums.curve.curve25519Legacy]: {\n oid: [0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x97, 0x55, 0x01, 0x05, 0x01],\n keyType: enums.publicKey.ecdh,\n hash: enums.hash.sha256,\n cipher: enums.symmetric.aes128,\n node: false, // nodeCurves.curve25519 TODO\n payloadSize: 32,\n wireFormatLeadingByte: 0x40\n },\n [enums.curve.brainpoolP256r1]: {\n oid: [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha256,\n cipher: enums.symmetric.aes128,\n node: nodeCurves[enums.curve.brainpoolP256r1],\n payloadSize: 32,\n wireFormatLeadingByte: 0x04\n },\n [enums.curve.brainpoolP384r1]: {\n oid: [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0B],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha384,\n cipher: enums.symmetric.aes192,\n node: nodeCurves[enums.curve.brainpoolP384r1],\n payloadSize: 48,\n wireFormatLeadingByte: 0x04\n },\n [enums.curve.brainpoolP512r1]: {\n oid: [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0D],\n keyType: enums.publicKey.ecdsa,\n hash: enums.hash.sha512,\n cipher: enums.symmetric.aes256,\n node: nodeCurves[enums.curve.brainpoolP512r1],\n payloadSize: 64,\n wireFormatLeadingByte: 0x04\n }\n};\n\nclass CurveWithOID {\n constructor(oidOrName) {\n try {\n this.name = oidOrName instanceof OID ?\n oidOrName.getName() :\n enums.write(enums.curve,oidOrName);\n } catch (err) {\n throw new UnsupportedError('Unknown curve');\n }\n const params = curves[this.name];\n\n this.keyType = params.keyType;\n\n this.oid = params.oid;\n this.hash = params.hash;\n this.cipher = params.cipher;\n this.node = params.node;\n this.web = params.web;\n this.payloadSize = params.payloadSize;\n this.sharedSize = params.sharedSize;\n this.wireFormatLeadingByte = params.wireFormatLeadingByte;\n if (this.web && util.getWebCrypto()) {\n this.type = 'web';\n } else if (this.node && util.getNodeCrypto()) {\n this.type = 'node';\n } else if (this.name === enums.curve.curve25519Legacy) {\n this.type = 'curve25519Legacy';\n } else if (this.name === enums.curve.ed25519Legacy) {\n this.type = 'ed25519Legacy';\n }\n }\n\n async genKeyPair() {\n switch (this.type) {\n case 'web':\n try {\n return await webGenKeyPair(this.name, this.wireFormatLeadingByte);\n } catch (err) {\n util.printDebugError('Browser did not support generating ec key ' + err.message);\n return jsGenKeyPair(this.name);\n }\n case 'node':\n return nodeGenKeyPair(this.name);\n case 'curve25519Legacy': {\n // the private key must be stored in big endian and already clamped: https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-13.html#section-5.5.5.6.1.1-3\n const { k, A } = await ecdhXGenerate(enums.publicKey.x25519);\n const privateKey = k.slice().reverse();\n privateKey[0] = (privateKey[0] & 127) | 64;\n privateKey[31] &= 248;\n const publicKey = util.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]), A]);\n return { publicKey, privateKey };\n }\n case 'ed25519Legacy': {\n const { seed: privateKey, A } = await eddsaGenerate(enums.publicKey.ed25519);\n const publicKey = util.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]), A]);\n return { publicKey, privateKey };\n }\n default:\n return jsGenKeyPair(this.name);\n }\n }\n}\n\nasync function generate(curveName) {\n const curve = new CurveWithOID(curveName);\n const { oid, hash, cipher } = curve;\n const keyPair = await curve.genKeyPair();\n return {\n oid,\n Q: keyPair.publicKey,\n secret: util.leftPad(keyPair.privateKey, curve.payloadSize),\n hash,\n cipher\n };\n}\n\n/**\n * Get preferred hash algo to use with the given curve\n * @param {module:type/oid} oid - curve oid\n * @returns {enums.hash} hash algorithm\n */\nfunction getPreferredHashAlgo(oid) {\n return curves[oid.getName()].hash;\n}\n\n/**\n * Validate ECDH and ECDSA parameters\n * Not suitable for EdDSA (different secret key format)\n * @param {module:enums.publicKey} algo - EC algorithm, to filter supported curves\n * @param {module:type/oid} oid - EC object identifier\n * @param {Uint8Array} Q - EC public point\n * @param {Uint8Array} d - EC secret scalar\n * @returns {Promise} Whether params are valid.\n * @async\n */\nasync function validateStandardParams(algo, oid, Q, d) {\n const supportedCurves = {\n [enums.curve.nistP256]: true,\n [enums.curve.nistP384]: true,\n [enums.curve.nistP521]: true,\n [enums.curve.secp256k1]: true,\n [enums.curve.curve25519Legacy]: algo === enums.publicKey.ecdh,\n [enums.curve.brainpoolP256r1]: true,\n [enums.curve.brainpoolP384r1]: true,\n [enums.curve.brainpoolP512r1]: true\n };\n\n // Check whether the given curve is supported\n const curveName = oid.getName();\n if (!supportedCurves[curveName]) {\n return false;\n }\n\n if (curveName === enums.curve.curve25519Legacy) {\n d = d.slice().reverse();\n // Re-derive public point Q'\n const { publicKey } = nacl.box.keyPair.fromSecretKey(d);\n\n Q = new Uint8Array(Q);\n const dG = new Uint8Array([0x40, ...publicKey]); // Add public key prefix\n if (!util.equalsUint8Array(dG, Q)) {\n return false;\n }\n\n return true;\n }\n\n const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, curveName); // excluding curve25519Legacy, ecdh and ecdsa use the same curves\n /*\n * Re-derive public point Q' = dG from private key\n * Expect Q == Q'\n */\n const dG = nobleCurve.getPublicKey(d, false);\n if (!util.equalsUint8Array(dG, Q)) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Check whether the public point has a valid encoding.\n * NB: this function does not check e.g. whether the point belongs to the curve.\n */\nfunction checkPublicPointEnconding(curve, V) {\n const { payloadSize, wireFormatLeadingByte, name: curveName } = curve;\n\n const pointSize = (curveName === enums.curve.curve25519Legacy || curveName === enums.curve.ed25519Legacy) ? payloadSize : payloadSize * 2;\n\n if (V[0] !== wireFormatLeadingByte || V.length !== pointSize + 1) {\n throw new Error('Invalid point encoding');\n }\n}\n\nexport {\n CurveWithOID, curves, webCurves, nodeCurves, generate, getPreferredHashAlgo, jwkToRawPublic, rawPublicToJWK, privateToJWK, validateStandardParams, checkPublicPointEnconding\n};\n\n//////////////////////////\n// //\n// Helper functions //\n// //\n//////////////////////////\nasync function jsGenKeyPair(name) {\n const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, name); // excluding curve25519Legacy, ecdh and ecdsa use the same curves\n const privateKey = nobleCurve.utils.randomPrivateKey();\n const publicKey = nobleCurve.getPublicKey(privateKey, false);\n return { publicKey, privateKey };\n}\n\nasync function webGenKeyPair(name, wireFormatLeadingByte) {\n // Note: keys generated with ECDSA and ECDH are structurally equivalent\n const webCryptoKey = await webCrypto.generateKey({ name: 'ECDSA', namedCurve: webCurves[name] }, true, ['sign', 'verify']);\n\n const privateKey = await webCrypto.exportKey('jwk', webCryptoKey.privateKey);\n const publicKey = await webCrypto.exportKey('jwk', webCryptoKey.publicKey);\n\n return {\n publicKey: jwkToRawPublic(publicKey, wireFormatLeadingByte),\n privateKey: b64ToUint8Array(privateKey.d, true)\n };\n}\n\nasync function nodeGenKeyPair(name) {\n // Note: ECDSA and ECDH key generation is structurally equivalent\n const ecdh = nodeCrypto.createECDH(nodeCurves[name]);\n await ecdh.generateKeys();\n return {\n publicKey: new Uint8Array(ecdh.getPublicKey()),\n privateKey: new Uint8Array(ecdh.getPrivateKey())\n };\n}\n\n//////////////////////////\n// //\n// Helper functions //\n// //\n//////////////////////////\n\n/**\n * @param {JsonWebKey} jwk - key for conversion\n *\n * @returns {Uint8Array} Raw public key.\n */\nfunction jwkToRawPublic(jwk, wireFormatLeadingByte) {\n const bufX = b64ToUint8Array(jwk.x);\n const bufY = b64ToUint8Array(jwk.y);\n const publicKey = new Uint8Array(bufX.length + bufY.length + 1);\n publicKey[0] = wireFormatLeadingByte;\n publicKey.set(bufX, 1);\n publicKey.set(bufY, bufX.length + 1);\n return publicKey;\n}\n\n/**\n * @param {Integer} payloadSize - ec payload size\n * @param {String} name - curve name\n * @param {Uint8Array} publicKey - public key\n *\n * @returns {JsonWebKey} Public key in jwk format.\n */\nfunction rawPublicToJWK(payloadSize, name, publicKey) {\n const len = payloadSize;\n const bufX = publicKey.slice(1, len + 1);\n const bufY = publicKey.slice(len + 1, len * 2 + 1);\n // https://www.rfc-editor.org/rfc/rfc7518.txt\n const jwk = {\n kty: 'EC',\n crv: name,\n x: uint8ArrayToB64(bufX, true),\n y: uint8ArrayToB64(bufY, true),\n ext: true\n };\n return jwk;\n}\n\n/**\n * @param {Integer} payloadSize - ec payload size\n * @param {String} name - curve name\n * @param {Uint8Array} publicKey - public key\n * @param {Uint8Array} privateKey - private key\n *\n * @returns {JsonWebKey} Private key in jwk format.\n */\nfunction privateToJWK(payloadSize, name, publicKey, privateKey) {\n const jwk = rawPublicToJWK(payloadSize, name, publicKey);\n jwk.d = uint8ArrayToB64(privateKey, true);\n return jwk;\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Implementation of ECDSA following RFC6637 for Openpgpjs\n * @module crypto/public_key/elliptic/ecdsa\n */\n\nimport enums from '../../../enums';\nimport util from '../../../util';\nimport { getRandomBytes } from '../../random';\nimport hash from '../../hash';\nimport { CurveWithOID, webCurves, privateToJWK, rawPublicToJWK, validateStandardParams, nodeCurves, checkPublicPointEnconding } from './oid_curves';\nimport { bigIntToUint8Array } from '../../biginteger';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\n\n/**\n * Sign a message using the provided key\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used to sign\n * @param {Uint8Array} message - Message to sign\n * @param {Uint8Array} publicKey - Public key\n * @param {Uint8Array} privateKey - Private key used to sign the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<{\n * r: Uint8Array,\n * s: Uint8Array\n * }>} Signature of the message\n * @async\n */\nexport async function sign(oid, hashAlgo, message, publicKey, privateKey, hashed) {\n const curve = new CurveWithOID(oid);\n checkPublicPointEnconding(curve, publicKey);\n if (message && !util.isStream(message)) {\n const keyPair = { publicKey, privateKey };\n switch (curve.type) {\n case 'web':\n // If browser doesn't support a curve, we'll catch it\n try {\n // Need to await to make sure browser succeeds\n return await webSign(curve, hashAlgo, message, keyPair);\n } catch (err) {\n // We do not fallback if the error is related to key integrity\n // Unfortunaley Safari does not support nistP521 and throws a DataError when using it\n // So we need to always fallback for that curve\n if (curve.name !== 'nistP521' && (err.name === 'DataError' || err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support signing: ' + err.message);\n }\n break;\n case 'node':\n return nodeSign(curve, hashAlgo, message, privateKey);\n }\n }\n\n const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, curve.name);\n // lowS: non-canonical sig: https://stackoverflow.com/questions/74338846/ecdsa-signature-verification-mismatch\n const signature = nobleCurve.sign(hashed, privateKey, { lowS: false });\n return {\n r: bigIntToUint8Array(signature.r, 'be', curve.payloadSize),\n s: bigIntToUint8Array(signature.s, 'be', curve.payloadSize)\n };\n}\n\n/**\n * Verifies if a signature is valid for a message\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used in the signature\n * @param {{r: Uint8Array,\n s: Uint8Array}} signature Signature to verify\n * @param {Uint8Array} message - Message to verify\n * @param {Uint8Array} publicKey - Public key used to verify the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Boolean}\n * @async\n */\nexport async function verify(oid, hashAlgo, signature, message, publicKey, hashed) {\n const curve = new CurveWithOID(oid);\n checkPublicPointEnconding(curve, publicKey);\n // See https://github.com/openpgpjs/openpgpjs/pull/948.\n // NB: the impact was more likely limited to Brainpool curves, since thanks\n // to WebCrypto availability, NIST curve should not have been affected.\n // Similarly, secp256k1 should have been used rarely enough.\n // However, we implement the fix for all curves, since it's only needed in case of\n // verification failure, which is unexpected, hence a minor slowdown is acceptable.\n const tryFallbackVerificationForOldBug = async () => (\n hashed[0] === 0 ?\n jsVerify(curve, signature, hashed.subarray(1), publicKey) :\n false\n );\n\n if (message && !util.isStream(message)) {\n switch (curve.type) {\n case 'web':\n try {\n // Need to await to make sure browser succeeds\n const verified = await webVerify(curve, hashAlgo, signature, message, publicKey);\n return verified || tryFallbackVerificationForOldBug();\n } catch (err) {\n // We do not fallback if the error is related to key integrity\n // Unfortunately Safari does not support nistP521 and throws a DataError when using it\n // So we need to always fallback for that curve\n if (curve.name !== 'nistP521' && (err.name === 'DataError' || err.name === 'OperationError')) {\n throw err;\n }\n util.printDebugError('Browser did not support verifying: ' + err.message);\n }\n break;\n case 'node': {\n const verified = await nodeVerify(curve, hashAlgo, signature, message, publicKey);\n return verified || tryFallbackVerificationForOldBug();\n }\n }\n }\n\n const verified = await jsVerify(curve, signature, hashed, publicKey);\n return verified || tryFallbackVerificationForOldBug();\n}\n\n/**\n * Validate ECDSA parameters\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {Uint8Array} Q - ECDSA public point\n * @param {Uint8Array} d - ECDSA secret scalar\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(oid, Q, d) {\n const curve = new CurveWithOID(oid);\n // Reject curves x25519 and ed25519\n if (curve.keyType !== enums.publicKey.ecdsa) {\n return false;\n }\n\n // To speed up the validation, we try to use node- or webcrypto when available\n // and sign + verify a random message\n switch (curve.type) {\n case 'web':\n case 'node': {\n const message = getRandomBytes(8);\n const hashAlgo = enums.hash.sha256;\n const hashed = await hash.digest(hashAlgo, message);\n try {\n const signature = await sign(oid, hashAlgo, message, Q, d, hashed);\n // eslint-disable-next-line @typescript-eslint/return-await\n return await verify(oid, hashAlgo, signature, message, Q, hashed);\n } catch (err) {\n return false;\n }\n }\n default:\n return validateStandardParams(enums.publicKey.ecdsa, oid, Q, d);\n }\n}\n\n\n//////////////////////////\n// //\n// Helper functions //\n// //\n//////////////////////////\n\n/**\n * Fallback javascript implementation of ECDSA verification.\n * To be used if no native implementation is available for the given curve/operation.\n */\nasync function jsVerify(curve, signature, hashed, publicKey) {\n const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, curve.name);\n // lowS: non-canonical sig: https://stackoverflow.com/questions/74338846/ecdsa-signature-verification-mismatch\n return nobleCurve.verify(util.concatUint8Array([signature.r, signature.s]), hashed, publicKey, { lowS: false });\n}\n\nasync function webSign(curve, hashAlgo, message, keyPair) {\n const len = curve.payloadSize;\n const jwk = privateToJWK(curve.payloadSize, webCurves[curve.name], keyPair.publicKey, keyPair.privateKey);\n const key = await webCrypto.importKey(\n 'jwk',\n jwk,\n {\n 'name': 'ECDSA',\n 'namedCurve': webCurves[curve.name],\n 'hash': { name: enums.read(enums.webHash, curve.hash) }\n },\n false,\n ['sign']\n );\n\n const signature = new Uint8Array(await webCrypto.sign(\n {\n 'name': 'ECDSA',\n 'namedCurve': webCurves[curve.name],\n 'hash': { name: enums.read(enums.webHash, hashAlgo) }\n },\n key,\n message\n ));\n\n return {\n r: signature.slice(0, len),\n s: signature.slice(len, len << 1)\n };\n}\n\nasync function webVerify(curve, hashAlgo, { r, s }, message, publicKey) {\n const jwk = rawPublicToJWK(curve.payloadSize, webCurves[curve.name], publicKey);\n const key = await webCrypto.importKey(\n 'jwk',\n jwk,\n {\n 'name': 'ECDSA',\n 'namedCurve': webCurves[curve.name],\n 'hash': { name: enums.read(enums.webHash, curve.hash) }\n },\n false,\n ['verify']\n );\n\n const signature = util.concatUint8Array([r, s]).buffer;\n\n return webCrypto.verify(\n {\n 'name': 'ECDSA',\n 'namedCurve': webCurves[curve.name],\n 'hash': { name: enums.read(enums.webHash, hashAlgo) }\n },\n key,\n signature,\n message\n );\n}\n\nasync function nodeSign(curve, hashAlgo, message, privateKey) {\n // JWT encoding cannot be used for now, as Brainpool curves are not supported\n const ecKeyUtils = util.nodeRequire('eckey-utils');\n const nodeBuffer = util.getNodeBuffer();\n const { privateKey: derPrivateKey } = ecKeyUtils.generateDer({\n curveName: nodeCurves[curve.name],\n privateKey: nodeBuffer.from(privateKey)\n });\n\n const sign = nodeCrypto.createSign(enums.read(enums.hash, hashAlgo));\n sign.write(message);\n sign.end();\n\n const signature = new Uint8Array(sign.sign({ key: derPrivateKey, format: 'der', type: 'sec1', dsaEncoding: 'ieee-p1363' }));\n const len = curve.payloadSize;\n\n return {\n r: signature.subarray(0, len),\n s: signature.subarray(len, len << 1)\n };\n}\n\nasync function nodeVerify(curve, hashAlgo, { r, s }, message, publicKey) {\n const ecKeyUtils = util.nodeRequire('eckey-utils');\n const nodeBuffer = util.getNodeBuffer();\n const { publicKey: derPublicKey } = ecKeyUtils.generateDer({\n curveName: nodeCurves[curve.name],\n publicKey: nodeBuffer.from(publicKey)\n });\n\n const verify = nodeCrypto.createVerify(enums.read(enums.hash, hashAlgo));\n verify.write(message);\n verify.end();\n\n const signature = util.concatUint8Array([r, s]);\n\n try {\n return verify.verify({ key: derPublicKey, format: 'der', type: 'spki', dsaEncoding: 'ieee-p1363' }, signature);\n } catch (err) {\n return false;\n }\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 Proton Technologies AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Implementation of legacy EdDSA following RFC4880bis-03 for OpenPGP.\n * This key type has been deprecated by the crypto-refresh RFC.\n * @module crypto/public_key/elliptic/eddsa_legacy\n */\n\nimport nacl from '@openpgp/tweetnacl';\nimport util from '../../../util';\nimport enums from '../../../enums';\nimport hash from '../../hash';\nimport { CurveWithOID, checkPublicPointEnconding } from './oid_curves';\nimport { sign as eddsaSign, verify as eddsaVerify } from './eddsa';\n\n/**\n * Sign a message using the provided legacy EdDSA key\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used to sign (must be sha256 or stronger)\n * @param {Uint8Array} message - Message to sign\n * @param {Uint8Array} publicKey - Public key\n * @param {Uint8Array} privateKey - Private key used to sign the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<{\n * r: Uint8Array,\n * s: Uint8Array\n * }>} Signature of the message\n * @async\n */\nexport async function sign(oid, hashAlgo, message, publicKey, privateKey, hashed) {\n const curve = new CurveWithOID(oid);\n checkPublicPointEnconding(curve, publicKey);\n if (hash.getHashByteLength(hashAlgo) < hash.getHashByteLength(enums.hash.sha256)) {\n // Enforce digest sizes, since the constraint was already present in RFC4880bis:\n // see https://tools.ietf.org/id/draft-ietf-openpgp-rfc4880bis-10.html#section-15-7.2\n // and https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.3-3\n throw new Error('Hash algorithm too weak for EdDSA.');\n }\n const { RS: signature } = await eddsaSign(enums.publicKey.ed25519, hashAlgo, message, publicKey.subarray(1), privateKey, hashed);\n // EdDSA signature params are returned in little-endian format\n return {\n r: signature.subarray(0, 32),\n s: signature.subarray(32)\n };\n}\n\n/**\n * Verifies if a legacy EdDSA signature is valid for a message\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used in the signature\n * @param {{r: Uint8Array,\n s: Uint8Array}} signature Signature to verify the message\n * @param {Uint8Array} m - Message to verify\n * @param {Uint8Array} publicKey - Public key used to verify the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Boolean}\n * @async\n */\nexport async function verify(oid, hashAlgo, { r, s }, m, publicKey, hashed) {\n const curve = new CurveWithOID(oid);\n checkPublicPointEnconding(curve, publicKey);\n if (hash.getHashByteLength(hashAlgo) < hash.getHashByteLength(enums.hash.sha256)) {\n // Enforce digest sizes, since the constraint was already present in RFC4880bis:\n // see https://tools.ietf.org/id/draft-ietf-openpgp-rfc4880bis-10.html#section-15-7.2\n // and https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.3-3\n throw new Error('Hash algorithm too weak for EdDSA.');\n }\n const RS = util.concatUint8Array([r, s]);\n return eddsaVerify(enums.publicKey.ed25519, hashAlgo, { RS }, m, publicKey.subarray(1), hashed);\n}\n/**\n * Validate legacy EdDSA parameters\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {Uint8Array} Q - EdDSA public point\n * @param {Uint8Array} k - EdDSA secret seed\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(oid, Q, k) {\n // Check whether the given curve is supported\n if (oid.getName() !== enums.curve.ed25519Legacy) {\n return false;\n }\n\n /**\n * Derive public point Q' = dG from private key\n * and expect Q == Q'\n */\n const { publicKey } = nacl.sign.keyPair.fromSeed(k);\n const dG = new Uint8Array([0x40, ...publicKey]); // Add public key prefix\n return util.equalsUint8Array(Q, dG);\n\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport util from '../util';\n\n/**\n * @fileoverview Functions to add and remove PKCS5 padding\n * @see PublicKeyEncryptedSessionKeyPacket\n * @module crypto/pkcs5\n * @private\n */\n\n/**\n * Add pkcs5 padding to a message\n * @param {Uint8Array} message - message to pad\n * @returns {Uint8Array} Padded message.\n */\nexport function encode(message) {\n const c = 8 - (message.length % 8);\n const padded = new Uint8Array(message.length + c).fill(c);\n padded.set(message);\n return padded;\n}\n\n/**\n * Remove pkcs5 padding from a message\n * @param {Uint8Array} message - message to remove padding from\n * @returns {Uint8Array} Message without padding.\n */\nexport function decode(message) {\n const len = message.length;\n if (len > 0) {\n const c = message[len - 1];\n if (c >= 1) {\n const provided = message.subarray(len - c);\n const computed = new Uint8Array(c).fill(c);\n if (util.equalsUint8Array(provided, computed)) {\n return message.subarray(0, len - c);\n }\n }\n }\n throw new Error('Invalid padding');\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview Key encryption and decryption for RFC 6637 ECDH\n * @module crypto/public_key/elliptic/ecdh\n */\n\nimport { CurveWithOID, jwkToRawPublic, rawPublicToJWK, privateToJWK, validateStandardParams, checkPublicPointEnconding } from './oid_curves';\nimport * as aesKW from '../../aes_kw';\nimport hash from '../../hash';\nimport enums from '../../../enums';\nimport util from '../../../util';\nimport { b64ToUint8Array } from '../../../encoding/base64';\nimport * as pkcs5 from '../../pkcs5';\nimport { getCipherParams } from '../../cipher';\nimport { generateEphemeralEncryptionMaterial as ecdhXGenerateEphemeralEncryptionMaterial, recomputeSharedSecret as ecdhXRecomputeSharedSecret } from './ecdh_x';\n\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\n\n/**\n * Validate ECDH parameters\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {Uint8Array} Q - ECDH public point\n * @param {Uint8Array} d - ECDH secret scalar\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(oid, Q, d) {\n return validateStandardParams(enums.publicKey.ecdh, oid, Q, d);\n}\n\n// Build Param for ECDH algorithm (RFC 6637)\nfunction buildEcdhParam(public_algo, oid, kdfParams, fingerprint) {\n return util.concatUint8Array([\n oid.write(),\n new Uint8Array([public_algo]),\n kdfParams.write(),\n util.stringToUint8Array('Anonymous Sender '),\n fingerprint\n ]);\n}\n\n// Key Derivation Function (RFC 6637)\nasync function kdf(hashAlgo, X, length, param, stripLeading = false, stripTrailing = false) {\n // Note: X is little endian for Curve25519, big-endian for all others.\n // This is not ideal, but the RFC's are unclear\n // https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-02#appendix-B\n let i;\n if (stripLeading) {\n // Work around old go crypto bug\n for (i = 0; i < X.length && X[i] === 0; i++);\n X = X.subarray(i);\n }\n if (stripTrailing) {\n // Work around old OpenPGP.js bug\n for (i = X.length - 1; i >= 0 && X[i] === 0; i--);\n X = X.subarray(0, i + 1);\n }\n const digest = await hash.digest(hashAlgo, util.concatUint8Array([\n new Uint8Array([0, 0, 0, 1]),\n X,\n param\n ]));\n return digest.subarray(0, length);\n}\n\n/**\n * Generate ECDHE ephemeral key and secret from public key\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} Q - Recipient public key\n * @returns {Promise<{publicKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function genPublicEphemeralKey(curve, Q) {\n switch (curve.type) {\n case 'curve25519Legacy': {\n const { sharedSecret: sharedKey, ephemeralPublicKey } = await ecdhXGenerateEphemeralEncryptionMaterial(enums.publicKey.x25519, Q.subarray(1));\n const publicKey = util.concatUint8Array([new Uint8Array([curve.wireFormatLeadingByte]), ephemeralPublicKey]);\n return { publicKey, sharedKey }; // Note: sharedKey is little-endian here, unlike below\n }\n case 'web':\n if (curve.web && util.getWebCrypto()) {\n try {\n return await webPublicEphemeralKey(curve, Q);\n } catch (err) {\n util.printDebugError(err);\n return jsPublicEphemeralKey(curve, Q);\n }\n }\n break;\n case 'node':\n return nodePublicEphemeralKey(curve, Q);\n default:\n return jsPublicEphemeralKey(curve, Q);\n\n }\n}\n\n/**\n * Encrypt and wrap a session key\n *\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:type/kdf_params} kdfParams - KDF params including cipher and algorithm to use\n * @param {Uint8Array} data - Unpadded session key data\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} fingerprint - Recipient fingerprint, already truncated depending on the key version\n * @returns {Promise<{publicKey: Uint8Array, wrappedKey: Uint8Array}>}\n * @async\n */\nexport async function encrypt(oid, kdfParams, data, Q, fingerprint) {\n const m = pkcs5.encode(data);\n\n const curve = new CurveWithOID(oid);\n checkPublicPointEnconding(curve, Q);\n const { publicKey, sharedKey } = await genPublicEphemeralKey(curve, Q);\n const param = buildEcdhParam(enums.publicKey.ecdh, oid, kdfParams, fingerprint);\n const { keySize } = getCipherParams(kdfParams.cipher);\n const Z = await kdf(kdfParams.hash, sharedKey, keySize, param);\n const wrappedKey = await aesKW.wrap(kdfParams.cipher, Z, m);\n return { publicKey, wrappedKey };\n}\n\n/**\n * Generate ECDHE secret from private key and public part of ephemeral key\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} d - Recipient private key\n * @returns {Promise<{secretKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function genPrivateEphemeralKey(curve, V, Q, d) {\n if (d.length !== curve.payloadSize) {\n const privateKey = new Uint8Array(curve.payloadSize);\n privateKey.set(d, curve.payloadSize - d.length);\n d = privateKey;\n }\n switch (curve.type) {\n case 'curve25519Legacy': {\n const secretKey = d.slice().reverse();\n const sharedKey = await ecdhXRecomputeSharedSecret(enums.publicKey.x25519, V.subarray(1), Q.subarray(1), secretKey);\n return { secretKey, sharedKey }; // Note: sharedKey is little-endian here, unlike below\n }\n case 'web':\n if (curve.web && util.getWebCrypto()) {\n try {\n return await webPrivateEphemeralKey(curve, V, Q, d);\n } catch (err) {\n util.printDebugError(err);\n return jsPrivateEphemeralKey(curve, V, d);\n }\n }\n break;\n case 'node':\n return nodePrivateEphemeralKey(curve, V, d);\n default:\n return jsPrivateEphemeralKey(curve, V, d);\n }\n}\n\n/**\n * Decrypt and unwrap the value derived from session key\n *\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:type/kdf_params} kdfParams - KDF params including cipher and algorithm to use\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} C - Encrypted and wrapped value derived from session key\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} d - Recipient private key\n * @param {Uint8Array} fingerprint - Recipient fingerprint, already truncated depending on the key version\n * @returns {Promise} Value derived from session key.\n * @async\n */\nexport async function decrypt(oid, kdfParams, V, C, Q, d, fingerprint) {\n const curve = new CurveWithOID(oid);\n checkPublicPointEnconding(curve, Q);\n checkPublicPointEnconding(curve, V);\n const { sharedKey } = await genPrivateEphemeralKey(curve, V, Q, d);\n const param = buildEcdhParam(enums.publicKey.ecdh, oid, kdfParams, fingerprint);\n const { keySize } = getCipherParams(kdfParams.cipher);\n let err;\n for (let i = 0; i < 3; i++) {\n try {\n // Work around old go crypto bug and old OpenPGP.js bug, respectively.\n const Z = await kdf(kdfParams.hash, sharedKey, keySize, param, i === 1, i === 2);\n return pkcs5.decode(await aesKW.unwrap(kdfParams.cipher, Z, C));\n } catch (e) {\n err = e;\n }\n }\n throw err;\n}\n\nasync function jsPrivateEphemeralKey(curve, V, d) {\n const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdh, curve.name);\n // The output includes parity byte\n const sharedSecretWithParity = nobleCurve.getSharedSecret(d, V);\n const sharedKey = sharedSecretWithParity.subarray(1);\n return { secretKey: d, sharedKey };\n}\n\nasync function jsPublicEphemeralKey(curve, Q) {\n const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdh, curve.name);\n const { publicKey: V, privateKey: v } = await curve.genKeyPair();\n\n // The output includes parity byte\n const sharedSecretWithParity = nobleCurve.getSharedSecret(v, Q);\n const sharedKey = sharedSecretWithParity.subarray(1);\n return { publicKey: V, sharedKey };\n}\n\n/**\n * Generate ECDHE secret from private key and public part of ephemeral key using webCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} d - Recipient private key\n * @returns {Promise<{secretKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function webPrivateEphemeralKey(curve, V, Q, d) {\n const recipient = privateToJWK(curve.payloadSize, curve.web, Q, d);\n let privateKey = webCrypto.importKey(\n 'jwk',\n recipient,\n {\n name: 'ECDH',\n namedCurve: curve.web\n },\n true,\n ['deriveKey', 'deriveBits']\n );\n const jwk = rawPublicToJWK(curve.payloadSize, curve.web, V);\n let sender = webCrypto.importKey(\n 'jwk',\n jwk,\n {\n name: 'ECDH',\n namedCurve: curve.web\n },\n true,\n []\n );\n [privateKey, sender] = await Promise.all([privateKey, sender]);\n let S = webCrypto.deriveBits(\n {\n name: 'ECDH',\n namedCurve: curve.web,\n public: sender\n },\n privateKey,\n curve.sharedSize\n );\n let secret = webCrypto.exportKey(\n 'jwk',\n privateKey\n );\n [S, secret] = await Promise.all([S, secret]);\n const sharedKey = new Uint8Array(S);\n const secretKey = b64ToUint8Array(secret.d, true);\n return { secretKey, sharedKey };\n}\n\n/**\n * Generate ECDHE ephemeral key and secret from public key using webCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} Q - Recipient public key\n * @returns {Promise<{publicKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function webPublicEphemeralKey(curve, Q) {\n const jwk = rawPublicToJWK(curve.payloadSize, curve.web, Q);\n let keyPair = webCrypto.generateKey(\n {\n name: 'ECDH',\n namedCurve: curve.web\n },\n true,\n ['deriveKey', 'deriveBits']\n );\n let recipient = webCrypto.importKey(\n 'jwk',\n jwk,\n {\n name: 'ECDH',\n namedCurve: curve.web\n },\n false,\n []\n );\n [keyPair, recipient] = await Promise.all([keyPair, recipient]);\n let s = webCrypto.deriveBits(\n {\n name: 'ECDH',\n namedCurve: curve.web,\n public: recipient\n },\n keyPair.privateKey,\n curve.sharedSize\n );\n let p = webCrypto.exportKey(\n 'jwk',\n keyPair.publicKey\n );\n [s, p] = await Promise.all([s, p]);\n const sharedKey = new Uint8Array(s);\n const publicKey = new Uint8Array(jwkToRawPublic(p, curve.wireFormatLeadingByte));\n return { publicKey, sharedKey };\n}\n\n/**\n * Generate ECDHE secret from private key and public part of ephemeral key using nodeCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} d - Recipient private key\n * @returns {Promise<{secretKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function nodePrivateEphemeralKey(curve, V, d) {\n const recipient = nodeCrypto.createECDH(curve.node);\n recipient.setPrivateKey(d);\n const sharedKey = new Uint8Array(recipient.computeSecret(V));\n const secretKey = new Uint8Array(recipient.getPrivateKey());\n return { secretKey, sharedKey };\n}\n\n/**\n * Generate ECDHE ephemeral key and secret from public key using nodeCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} Q - Recipient public key\n * @returns {Promise<{publicKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function nodePublicEphemeralKey(curve, Q) {\n const sender = nodeCrypto.createECDH(curve.node);\n sender.generateKeys();\n const sharedKey = new Uint8Array(sender.computeSecret(Q));\n const publicKey = new Uint8Array(sender.getPublicKey());\n return { publicKey, sharedKey };\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @fileoverview A Digital signature algorithm implementation\n * @module crypto/public_key/dsa\n */\nimport { getRandomBigInteger } from '../random';\nimport util from '../../util';\nimport { isProbablePrime } from './prime';\nimport { bigIntToUint8Array, bitLength, byteLength, mod, modExp, modInv, uint8ArrayToBigInt } from '../biginteger';\n\n/*\n TODO regarding the hash function, read:\n https://tools.ietf.org/html/rfc4880#section-13.6\n https://tools.ietf.org/html/rfc4880#section-14\n*/\n\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\n/**\n * DSA Sign function\n * @param {Integer} hashAlgo\n * @param {Uint8Array} hashed\n * @param {Uint8Array} g\n * @param {Uint8Array} p\n * @param {Uint8Array} q\n * @param {Uint8Array} x\n * @returns {Promise<{ r: Uint8Array, s: Uint8Array }>}\n * @async\n */\nexport async function sign(hashAlgo, hashed, g, p, q, x) {\n const _0n = BigInt(0);\n p = uint8ArrayToBigInt(p);\n q = uint8ArrayToBigInt(q);\n g = uint8ArrayToBigInt(g);\n x = uint8ArrayToBigInt(x);\n\n let k;\n let r;\n let s;\n let t;\n g = mod(g, p);\n x = mod(x, q);\n // If the output size of the chosen hash is larger than the number of\n // bits of q, the hash result is truncated to fit by taking the number\n // of leftmost bits equal to the number of bits of q. This (possibly\n // truncated) hash function result is treated as a number and used\n // directly in the DSA signature algorithm.\n const h = mod(uint8ArrayToBigInt(hashed.subarray(0, byteLength(q))), q);\n // FIPS-186-4, section 4.6:\n // The values of r and s shall be checked to determine if r = 0 or s = 0.\n // If either r = 0 or s = 0, a new value of k shall be generated, and the\n // signature shall be recalculated. It is extremely unlikely that r = 0\n // or s = 0 if signatures are generated properly.\n while (true) {\n // See Appendix B here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf\n k = getRandomBigInteger(_1n, q); // returns in [1, q-1]\n r = mod(modExp(g, k, p), q); // (g**k mod p) mod q\n if (r === _0n) {\n continue;\n }\n const xr = mod(x * r, q);\n t = mod(h + xr, q); // H(m) + x*r mod q\n s = mod(modInv(k, q) * t, q); // k**-1 * (H(m) + x*r) mod q\n if (s === _0n) {\n continue;\n }\n break;\n }\n return {\n r: bigIntToUint8Array(r, 'be', byteLength(p)),\n s: bigIntToUint8Array(s, 'be', byteLength(p))\n };\n}\n\n/**\n * DSA Verify function\n * @param {Integer} hashAlgo\n * @param {Uint8Array} r\n * @param {Uint8Array} s\n * @param {Uint8Array} hashed\n * @param {Uint8Array} g\n * @param {Uint8Array} p\n * @param {Uint8Array} q\n * @param {Uint8Array} y\n * @returns {boolean}\n * @async\n */\nexport async function verify(hashAlgo, r, s, hashed, g, p, q, y) {\n r = uint8ArrayToBigInt(r);\n s = uint8ArrayToBigInt(s);\n\n p = uint8ArrayToBigInt(p);\n q = uint8ArrayToBigInt(q);\n g = uint8ArrayToBigInt(g);\n y = uint8ArrayToBigInt(y);\n\n if (r <= _0n || r >= q ||\n s <= _0n || s >= q) {\n util.printDebug('invalid DSA Signature');\n return false;\n }\n const h = mod(uint8ArrayToBigInt(hashed.subarray(0, byteLength(q))), q);\n const w = modInv(s, q); // s**-1 mod q\n if (w === _0n) {\n util.printDebug('invalid DSA Signature');\n return false;\n }\n\n g = mod(g, p);\n y = mod(y, p);\n const u1 = mod(h * w, q); // H(m) * w mod q\n const u2 = mod(r * w, q); // r * w mod q\n const t1 = modExp(g, u1, p); // g**u1 mod p\n const t2 = modExp(y, u2, p); // y**u2 mod p\n const v = mod(mod(t1 * t2, p), q); // (g**u1 * y**u2 mod p) mod q\n return v === r;\n}\n\n/**\n * Validate DSA parameters\n * @param {Uint8Array} p - DSA prime\n * @param {Uint8Array} q - DSA group order\n * @param {Uint8Array} g - DSA sub-group generator\n * @param {Uint8Array} y - DSA public key\n * @param {Uint8Array} x - DSA private key\n * @returns {Promise} Whether params are valid.\n * @async\n */\nexport async function validateParams(p, q, g, y, x) {\n p = uint8ArrayToBigInt(p);\n q = uint8ArrayToBigInt(q);\n g = uint8ArrayToBigInt(g);\n y = uint8ArrayToBigInt(y);\n // Check that 1 < g < p\n if (g <= _1n || g >= p) {\n return false;\n }\n\n /**\n * Check that subgroup order q divides p-1\n */\n if (mod(p - _1n, q) !== _0n) {\n return false;\n }\n\n /**\n * g has order q\n * Check that g ** q = 1 mod p\n */\n if (modExp(g, q, p) !== _1n) {\n return false;\n }\n\n /**\n * Check q is large and probably prime (we mainly want to avoid small factors)\n */\n const qSize = BigInt(bitLength(q));\n const _150n = BigInt(150);\n if (qSize < _150n || !isProbablePrime(q, null, 32)) {\n return false;\n }\n\n /**\n * Re-derive public key y' = g ** x mod p\n * Expect y == y'\n *\n * Blinded exponentiation computes g**{rq + x} to compare to y\n */\n x = uint8ArrayToBigInt(x);\n const _2n = BigInt(2);\n const r = getRandomBigInteger(_2n << (qSize - _1n), _2n << qSize); // draw r of same size as q\n const rqx = q * r + x;\n if (y !== modExp(g, rqx, p)) {\n return false;\n }\n\n return true;\n}\n", "/**\n * @fileoverview Asymmetric cryptography functions\n * @module crypto/public_key\n */\n\nimport * as rsa from './rsa';\nimport * as elgamal from './elgamal';\nimport * as elliptic from './elliptic';\nimport * as dsa from './dsa';\n\nexport default {\n /** @see module:crypto/public_key/rsa */\n rsa: rsa,\n /** @see module:crypto/public_key/elgamal */\n elgamal: elgamal,\n /** @see module:crypto/public_key/elliptic */\n elliptic: elliptic,\n /** @see module:crypto/public_key/dsa */\n dsa: dsa\n};\n", "/**\n * @fileoverview Provides functions for asymmetric signing and signature verification\n * @module crypto/signature\n */\n\nimport publicKey from './public_key';\nimport enums from '../enums';\nimport util from '../util';\nimport { UnsupportedError } from '../packet/packet';\n\n/**\n * Parse signature in binary form to get the parameters.\n * The returned values are only padded for EdDSA, since in the other cases their expected length\n * depends on the key params, hence we delegate the padding to the signature verification function.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1}\n * See {@link https://tools.ietf.org/html/rfc4880#section-5.2.2|RFC 4880 5.2.2.}\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {Uint8Array} signature - Data for which the signature was created\n * @returns {Promise} True if signature is valid.\n * @async\n */\nexport function parseSignatureParams(algo, signature) {\n let read = 0;\n switch (algo) {\n // Algorithm-Specific Fields for RSA signatures:\n // - MPI of RSA signature value m**d mod n.\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaSign: {\n const s = util.readMPI(signature.subarray(read)); read += s.length + 2;\n // The signature needs to be the same length as the public key modulo n.\n // We pad s on signature verification, where we have access to n.\n return { read, signatureParams: { s } };\n }\n // Algorithm-Specific Fields for DSA or ECDSA signatures:\n // - MPI of DSA or ECDSA value r.\n // - MPI of DSA or ECDSA value s.\n case enums.publicKey.dsa:\n case enums.publicKey.ecdsa:\n {\n // If the signature payload sizes are unexpected, we will throw on verification,\n // where we also have access to the OID curve from the key.\n const r = util.readMPI(signature.subarray(read)); read += r.length + 2;\n const s = util.readMPI(signature.subarray(read)); read += s.length + 2;\n return { read, signatureParams: { r, s } };\n }\n // Algorithm-Specific Fields for legacy EdDSA signatures:\n // - MPI of an EC point r.\n // - EdDSA value s, in MPI, in the little endian representation\n case enums.publicKey.eddsaLegacy: {\n // Only Curve25519Legacy is supported (no Curve448Legacy), but the relevant checks are done on key parsing and signature\n // verification: if the signature payload sizes are unexpected, we will throw on verification,\n // where we also have access to the OID curve from the key.\n const r = util.readMPI(signature.subarray(read)); read += r.length + 2;\n const s = util.readMPI(signature.subarray(read)); read += s.length + 2;\n return { read, signatureParams: { r, s } };\n }\n // Algorithm-Specific Fields for Ed25519 signatures:\n // - 64 octets of the native signature\n // Algorithm-Specific Fields for Ed448 signatures:\n // - 114 octets of the native signature\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448: {\n const rsSize = 2 * publicKey.elliptic.eddsa.getPayloadSize(algo);\n const RS = util.readExactSubarray(signature, read, read + rsSize); read += RS.length;\n return { read, signatureParams: { RS } };\n }\n\n default:\n throw new UnsupportedError('Unknown signature algorithm.');\n }\n}\n\n/**\n * Verifies the signature provided for data using specified algorithms and public key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1}\n * and {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4}\n * for public key and hash algorithms.\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Object} signature - Named algorithm-specific signature parameters\n * @param {Object} publicParams - Algorithm-specific public key parameters\n * @param {Uint8Array} data - Data for which the signature was created\n * @param {Uint8Array} hashed - The hashed data\n * @returns {Promise} True if signature is valid.\n * @async\n */\nexport async function verify(algo, hashAlgo, signature, publicParams, data, hashed) {\n switch (algo) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaSign: {\n const { n, e } = publicParams;\n const s = util.leftPad(signature.s, n.length); // padding needed for webcrypto and node crypto\n return publicKey.rsa.verify(hashAlgo, data, s, n, e, hashed);\n }\n case enums.publicKey.dsa: {\n const { g, p, q, y } = publicParams;\n const { r, s } = signature; // no need to pad, since we always handle them as BigIntegers\n return publicKey.dsa.verify(hashAlgo, r, s, hashed, g, p, q, y);\n }\n case enums.publicKey.ecdsa: {\n const { oid, Q } = publicParams;\n const curveSize = new publicKey.elliptic.CurveWithOID(oid).payloadSize;\n // padding needed for webcrypto\n const r = util.leftPad(signature.r, curveSize);\n const s = util.leftPad(signature.s, curveSize);\n return publicKey.elliptic.ecdsa.verify(oid, hashAlgo, { r, s }, data, Q, hashed);\n }\n case enums.publicKey.eddsaLegacy: {\n const { oid, Q } = publicParams;\n const curveSize = new publicKey.elliptic.CurveWithOID(oid).payloadSize;\n // When dealing little-endian MPI data, we always need to left-pad it, as done with big-endian values:\n // https://www.ietf.org/archive/id/draft-ietf-openpgp-rfc4880bis-10.html#section-3.2-9\n const r = util.leftPad(signature.r, curveSize);\n const s = util.leftPad(signature.s, curveSize);\n return publicKey.elliptic.eddsaLegacy.verify(oid, hashAlgo, { r, s }, data, Q, hashed);\n }\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448: {\n const { A } = publicParams;\n return publicKey.elliptic.eddsa.verify(algo, hashAlgo, signature, data, A, hashed);\n }\n default:\n throw new Error('Unknown signature algorithm.');\n }\n}\n\n/**\n * Creates a signature on data using specified algorithms and private key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1}\n * and {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4}\n * for public key and hash algorithms.\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Object} publicKeyParams - Algorithm-specific public and private key parameters\n * @param {Object} privateKeyParams - Algorithm-specific public and private key parameters\n * @param {Uint8Array} data - Data to be signed\n * @param {Uint8Array} hashed - The hashed data\n * @returns {Promise} Signature Object containing named signature parameters.\n * @async\n */\nexport async function sign(algo, hashAlgo, publicKeyParams, privateKeyParams, data, hashed) {\n if (!publicKeyParams || !privateKeyParams) {\n throw new Error('Missing key parameters');\n }\n switch (algo) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaSign: {\n const { n, e } = publicKeyParams;\n const { d, p, q, u } = privateKeyParams;\n const s = await publicKey.rsa.sign(hashAlgo, data, n, e, d, p, q, u, hashed);\n return { s };\n }\n case enums.publicKey.dsa: {\n const { g, p, q } = publicKeyParams;\n const { x } = privateKeyParams;\n return publicKey.dsa.sign(hashAlgo, hashed, g, p, q, x);\n }\n case enums.publicKey.elgamal:\n throw new Error('Signing with Elgamal is not defined in the OpenPGP standard.');\n case enums.publicKey.ecdsa: {\n const { oid, Q } = publicKeyParams;\n const { d } = privateKeyParams;\n return publicKey.elliptic.ecdsa.sign(oid, hashAlgo, data, Q, d, hashed);\n }\n case enums.publicKey.eddsaLegacy: {\n const { oid, Q } = publicKeyParams;\n const { seed } = privateKeyParams;\n return publicKey.elliptic.eddsaLegacy.sign(oid, hashAlgo, data, Q, seed, hashed);\n }\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448: {\n const { A } = publicKeyParams;\n const { seed } = privateKeyParams;\n return publicKey.elliptic.eddsa.sign(algo, hashAlgo, data, A, seed, hashed);\n }\n default:\n throw new Error('Unknown signature algorithm.');\n }\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * Encoded symmetric key for ECDH (incl. legacy x25519)\n *\n * @module type/ecdh_symkey\n */\n\nimport util from '../util';\n\nclass ECDHSymmetricKey {\n constructor(data) {\n if (data) {\n this.data = data;\n }\n }\n\n /**\n * Read an ECDHSymmetricKey from an Uint8Array:\n * - 1 octect for the length `l`\n * - `l` octects of encoded session key data\n * @param {Uint8Array} bytes\n * @returns {Number} Number of read bytes.\n */\n read(bytes) {\n if (bytes.length >= 1) {\n const length = bytes[0];\n if (bytes.length >= 1 + length) {\n this.data = bytes.subarray(1, 1 + length);\n return 1 + this.data.length;\n }\n }\n throw new Error('Invalid symmetric key');\n }\n\n /**\n * Write an ECDHSymmetricKey as an Uint8Array\n * @returns {Uint8Array} Serialised data\n */\n write() {\n return util.concatUint8Array([new Uint8Array([this.data.length]), this.data]);\n }\n}\n\nexport default ECDHSymmetricKey;\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { UnsupportedError } from '../packet/packet';\n\n/**\n * Implementation of type KDF parameters\n *\n * {@link https://tools.ietf.org/html/rfc6637#section-7|RFC 6637 7}:\n * A key derivation function (KDF) is necessary to implement the EC\n * encryption. The Concatenation Key Derivation Function (Approved\n * Alternative 1) [NIST-SP800-56A] with the KDF hash function that is\n * SHA2-256 [FIPS-180-3] or stronger is REQUIRED.\n * @module type/kdf_params\n * @private\n */\n\nclass KDFParams {\n /**\n * @param {enums.hash} hash - Hash algorithm\n * @param {enums.symmetric} cipher - Symmetric algorithm\n */\n constructor(data) {\n if (data) {\n const { hash, cipher } = data;\n this.hash = hash;\n this.cipher = cipher;\n } else {\n this.hash = null;\n this.cipher = null;\n }\n }\n\n /**\n * Read KDFParams from an Uint8Array\n * @param {Uint8Array} input - Where to read the KDFParams from\n * @returns {Number} Number of read bytes.\n */\n read(input) {\n if (input.length < 4 || input[0] !== 3 || input[1] !== 1) {\n throw new UnsupportedError('Cannot read KDFParams');\n }\n this.hash = input[2];\n this.cipher = input[3];\n return 4;\n }\n\n /**\n * Write KDFParams to an Uint8Array\n * @returns {Uint8Array} Array with the KDFParams value\n */\n write() {\n return new Uint8Array([3, 1, this.hash, this.cipher]);\n }\n}\n\nexport default KDFParams;\n", "/**\n * Encoded symmetric key for x25519 and x448\n * The payload format varies for v3 and v6 PKESK:\n * the former includes an algorithm byte preceeding the encrypted session key.\n *\n * @module type/x25519x448_symkey\n */\n\nimport util from '../util';\n\nclass ECDHXSymmetricKey {\n static fromObject({ wrappedKey, algorithm }) {\n const instance = new ECDHXSymmetricKey();\n instance.wrappedKey = wrappedKey;\n instance.algorithm = algorithm;\n return instance;\n }\n\n /**\n * - 1 octect for the length `l`\n * - `l` octects of encoded session key data (with optional leading algorithm byte)\n * @param {Uint8Array} bytes\n * @returns {Number} Number of read bytes.\n */\n read(bytes) {\n let read = 0;\n let followLength = bytes[read++];\n this.algorithm = followLength % 2 ? bytes[read++] : null; // session key size is always even\n followLength -= followLength % 2;\n this.wrappedKey = util.readExactSubarray(bytes, read, read + followLength); read += followLength;\n }\n\n /**\n * Write an MontgomerySymmetricKey as an Uint8Array\n * @returns {Uint8Array} Serialised data\n */\n write() {\n return util.concatUint8Array([\n this.algorithm ?\n new Uint8Array([this.wrappedKey.length + 1, this.algorithm]) :\n new Uint8Array([this.wrappedKey.length]),\n this.wrappedKey\n ]);\n }\n}\n\nexport default ECDHXSymmetricKey;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n// The GPG4Browsers crypto interface\n\n/**\n * @fileoverview Provides functions for asymmetric encryption and decryption as\n * well as key generation and parameter handling for all public-key cryptosystems.\n * @module crypto/crypto\n */\n\nimport publicKey from './public_key';\nimport mode from './mode';\nimport { getRandomBytes } from './random';\nimport { getCipherParams } from './cipher';\nimport ECDHSymkey from '../type/ecdh_symkey';\nimport KDFParams from '../type/kdf_params';\nimport enums from '../enums';\nimport util from '../util';\nimport OID from '../type/oid';\nimport { UnsupportedError } from '../packet/packet';\nimport ECDHXSymmetricKey from '../type/ecdh_x_symkey';\n\n/**\n * Encrypts data using specified algorithm and public key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1} for public key algorithms.\n * @param {module:enums.publicKey} keyAlgo - Public key algorithm\n * @param {module:enums.symmetric|null} symmetricAlgo - Cipher algorithm (v3 only)\n * @param {Object} publicParams - Algorithm-specific public key parameters\n * @param {Uint8Array} data - Session key data to be encrypted\n * @param {Uint8Array} fingerprint - Recipient fingerprint\n * @returns {Promise} Encrypted session key parameters.\n * @async\n */\nexport async function publicKeyEncrypt(keyAlgo, symmetricAlgo, publicParams, data, fingerprint) {\n switch (keyAlgo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign: {\n const { n, e } = publicParams;\n const c = await publicKey.rsa.encrypt(data, n, e);\n return { c };\n }\n case enums.publicKey.elgamal: {\n const { p, g, y } = publicParams;\n return publicKey.elgamal.encrypt(data, p, g, y);\n }\n case enums.publicKey.ecdh: {\n const { oid, Q, kdfParams } = publicParams;\n const { publicKey: V, wrappedKey: C } = await publicKey.elliptic.ecdh.encrypt(\n oid, kdfParams, data, Q, fingerprint);\n return { V, C: new ECDHSymkey(C) };\n }\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n if (symmetricAlgo && !util.isAES(symmetricAlgo)) {\n // see https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/276\n throw new Error('X25519 and X448 keys can only encrypt AES session keys');\n }\n const { A } = publicParams;\n const { ephemeralPublicKey, wrappedKey } = await publicKey.elliptic.ecdhX.encrypt(\n keyAlgo, data, A);\n const C = ECDHXSymmetricKey.fromObject({ algorithm: symmetricAlgo, wrappedKey });\n return { ephemeralPublicKey, C };\n }\n default:\n return [];\n }\n}\n\n/**\n * Decrypts data using specified algorithm and private key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-5.5.3|RFC 4880 5.5.3}\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {Object} publicKeyParams - Algorithm-specific public key parameters\n * @param {Object} privateKeyParams - Algorithm-specific private key parameters\n * @param {Object} sessionKeyParams - Encrypted session key parameters\n * @param {Uint8Array} fingerprint - Recipient fingerprint\n * @param {Uint8Array} [randomPayload] - Data to return on decryption error, instead of throwing\n * (needed for constant-time processing in RSA and ElGamal)\n * @returns {Promise} Decrypted data.\n * @throws {Error} on sensitive decryption error, unless `randomPayload` is given\n * @async\n */\nexport async function publicKeyDecrypt(algo, publicKeyParams, privateKeyParams, sessionKeyParams, fingerprint, randomPayload) {\n switch (algo) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaEncrypt: {\n const { c } = sessionKeyParams;\n const { n, e } = publicKeyParams;\n const { d, p, q, u } = privateKeyParams;\n return publicKey.rsa.decrypt(c, n, e, d, p, q, u, randomPayload);\n }\n case enums.publicKey.elgamal: {\n const { c1, c2 } = sessionKeyParams;\n const p = publicKeyParams.p;\n const x = privateKeyParams.x;\n return publicKey.elgamal.decrypt(c1, c2, p, x, randomPayload);\n }\n case enums.publicKey.ecdh: {\n const { oid, Q, kdfParams } = publicKeyParams;\n const { d } = privateKeyParams;\n const { V, C } = sessionKeyParams;\n return publicKey.elliptic.ecdh.decrypt(\n oid, kdfParams, V, C.data, Q, d, fingerprint);\n }\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n const { A } = publicKeyParams;\n const { k } = privateKeyParams;\n const { ephemeralPublicKey, C } = sessionKeyParams;\n if (C.algorithm !== null && !util.isAES(C.algorithm)) {\n throw new Error('AES session key expected');\n }\n return publicKey.elliptic.ecdhX.decrypt(\n algo, ephemeralPublicKey, C.wrappedKey, A, k);\n }\n default:\n throw new Error('Unknown public key encryption algorithm.');\n }\n}\n\n/**\n * Parse public key material in binary form to get the key parameters\n * @param {module:enums.publicKey} algo - The key algorithm\n * @param {Uint8Array} bytes - The key material to parse\n * @returns {{ read: Number, publicParams: Object }} Number of read bytes plus key parameters referenced by name.\n */\nexport function parsePublicKeyParams(algo, bytes) {\n let read = 0;\n switch (algo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign: {\n const n = util.readMPI(bytes.subarray(read)); read += n.length + 2;\n const e = util.readMPI(bytes.subarray(read)); read += e.length + 2;\n return { read, publicParams: { n, e } };\n }\n case enums.publicKey.dsa: {\n const p = util.readMPI(bytes.subarray(read)); read += p.length + 2;\n const q = util.readMPI(bytes.subarray(read)); read += q.length + 2;\n const g = util.readMPI(bytes.subarray(read)); read += g.length + 2;\n const y = util.readMPI(bytes.subarray(read)); read += y.length + 2;\n return { read, publicParams: { p, q, g, y } };\n }\n case enums.publicKey.elgamal: {\n const p = util.readMPI(bytes.subarray(read)); read += p.length + 2;\n const g = util.readMPI(bytes.subarray(read)); read += g.length + 2;\n const y = util.readMPI(bytes.subarray(read)); read += y.length + 2;\n return { read, publicParams: { p, g, y } };\n }\n case enums.publicKey.ecdsa: {\n const oid = new OID(); read += oid.read(bytes);\n checkSupportedCurve(oid);\n const Q = util.readMPI(bytes.subarray(read)); read += Q.length + 2;\n return { read: read, publicParams: { oid, Q } };\n }\n case enums.publicKey.eddsaLegacy: {\n const oid = new OID(); read += oid.read(bytes);\n checkSupportedCurve(oid);\n if (oid.getName() !== enums.curve.ed25519Legacy) {\n throw new Error('Unexpected OID for eddsaLegacy');\n }\n let Q = util.readMPI(bytes.subarray(read)); read += Q.length + 2;\n Q = util.leftPad(Q, 33);\n return { read: read, publicParams: { oid, Q } };\n }\n case enums.publicKey.ecdh: {\n const oid = new OID(); read += oid.read(bytes);\n checkSupportedCurve(oid);\n const Q = util.readMPI(bytes.subarray(read)); read += Q.length + 2;\n const kdfParams = new KDFParams(); read += kdfParams.read(bytes.subarray(read));\n return { read: read, publicParams: { oid, Q, kdfParams } };\n }\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448:\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n const A = util.readExactSubarray(bytes, read, read + getCurvePayloadSize(algo)); read += A.length;\n return { read, publicParams: { A } };\n }\n default:\n throw new UnsupportedError('Unknown public key encryption algorithm.');\n }\n}\n\n/**\n * Parse private key material in binary form to get the key parameters\n * @param {module:enums.publicKey} algo - The key algorithm\n * @param {Uint8Array} bytes - The key material to parse\n * @param {Object} publicParams - (ECC only) public params, needed to format some private params\n * @returns {{ read: Number, privateParams: Object }} Number of read bytes plus the key parameters referenced by name.\n */\nexport function parsePrivateKeyParams(algo, bytes, publicParams) {\n let read = 0;\n switch (algo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign: {\n const d = util.readMPI(bytes.subarray(read)); read += d.length + 2;\n const p = util.readMPI(bytes.subarray(read)); read += p.length + 2;\n const q = util.readMPI(bytes.subarray(read)); read += q.length + 2;\n const u = util.readMPI(bytes.subarray(read)); read += u.length + 2;\n return { read, privateParams: { d, p, q, u } };\n }\n case enums.publicKey.dsa:\n case enums.publicKey.elgamal: {\n const x = util.readMPI(bytes.subarray(read)); read += x.length + 2;\n return { read, privateParams: { x } };\n }\n case enums.publicKey.ecdsa:\n case enums.publicKey.ecdh: {\n const payloadSize = getCurvePayloadSize(algo, publicParams.oid);\n let d = util.readMPI(bytes.subarray(read)); read += d.length + 2;\n d = util.leftPad(d, payloadSize);\n return { read, privateParams: { d } };\n }\n case enums.publicKey.eddsaLegacy: {\n const payloadSize = getCurvePayloadSize(algo, publicParams.oid);\n if (publicParams.oid.getName() !== enums.curve.ed25519Legacy) {\n throw new Error('Unexpected OID for eddsaLegacy');\n }\n let seed = util.readMPI(bytes.subarray(read)); read += seed.length + 2;\n seed = util.leftPad(seed, payloadSize);\n return { read, privateParams: { seed } };\n }\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448: {\n const payloadSize = getCurvePayloadSize(algo);\n const seed = util.readExactSubarray(bytes, read, read + payloadSize); read += seed.length;\n return { read, privateParams: { seed } };\n }\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n const payloadSize = getCurvePayloadSize(algo);\n const k = util.readExactSubarray(bytes, read, read + payloadSize); read += k.length;\n return { read, privateParams: { k } };\n }\n default:\n throw new UnsupportedError('Unknown public key encryption algorithm.');\n }\n}\n\n/** Returns the types comprising the encrypted session key of an algorithm\n * @param {module:enums.publicKey} algo - The key algorithm\n * @param {Uint8Array} bytes - The key material to parse\n * @returns {Object} The session key parameters referenced by name.\n */\nexport function parseEncSessionKeyParams(algo, bytes) {\n let read = 0;\n switch (algo) {\n // Algorithm-Specific Fields for RSA encrypted session keys:\n // - MPI of RSA encrypted value m**e mod n.\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign: {\n const c = util.readMPI(bytes.subarray(read));\n return { c };\n }\n\n // Algorithm-Specific Fields for Elgamal encrypted session keys:\n // - MPI of Elgamal value g**k mod p\n // - MPI of Elgamal value m * y**k mod p\n case enums.publicKey.elgamal: {\n const c1 = util.readMPI(bytes.subarray(read)); read += c1.length + 2;\n const c2 = util.readMPI(bytes.subarray(read));\n return { c1, c2 };\n }\n // Algorithm-Specific Fields for ECDH encrypted session keys:\n // - MPI containing the ephemeral key used to establish the shared secret\n // - ECDH Symmetric Key\n case enums.publicKey.ecdh: {\n const V = util.readMPI(bytes.subarray(read)); read += V.length + 2;\n const C = new ECDHSymkey(); C.read(bytes.subarray(read));\n return { V, C };\n }\n // Algorithm-Specific Fields for X25519 or X448 encrypted session keys:\n // - 32 octets representing an ephemeral X25519 public key (or 57 octets for X448).\n // - A one-octet size of the following fields.\n // - The one-octet algorithm identifier, if it was passed (in the case of a v3 PKESK packet).\n // - The encrypted session key.\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n const pointSize = getCurvePayloadSize(algo);\n const ephemeralPublicKey = util.readExactSubarray(bytes, read, read + pointSize); read += ephemeralPublicKey.length;\n const C = new ECDHXSymmetricKey(); C.read(bytes.subarray(read));\n return { ephemeralPublicKey, C };\n }\n default:\n throw new UnsupportedError('Unknown public key encryption algorithm.');\n }\n}\n\n/**\n * Convert params to MPI and serializes them in the proper order\n * @param {module:enums.publicKey} algo - The public key algorithm\n * @param {Object} params - The key parameters indexed by name\n * @returns {Uint8Array} The array containing the MPIs.\n */\nexport function serializeParams(algo, params) {\n // Some algorithms do not rely on MPIs to store the binary params\n const algosWithNativeRepresentation = new Set([\n enums.publicKey.ed25519,\n enums.publicKey.x25519,\n enums.publicKey.ed448,\n enums.publicKey.x448\n ]);\n const orderedParams = Object.keys(params).map(name => {\n const param = params[name];\n if (!util.isUint8Array(param)) return param.write();\n return algosWithNativeRepresentation.has(algo) ? param : util.uint8ArrayToMPI(param);\n });\n return util.concatUint8Array(orderedParams);\n}\n\n/**\n * Generate algorithm-specific key parameters\n * @param {module:enums.publicKey} algo - The public key algorithm\n * @param {Integer} bits - Bit length for RSA keys\n * @param {module:type/oid} oid - Object identifier for ECC keys\n * @returns {Promise<{ publicParams: {Object}, privateParams: {Object} }>} The parameters referenced by name.\n * @async\n */\nexport function generateParams(algo, bits, oid) {\n switch (algo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign:\n return publicKey.rsa.generate(bits, 65537).then(({ n, e, d, p, q, u }) => ({\n privateParams: { d, p, q, u },\n publicParams: { n, e }\n }));\n case enums.publicKey.ecdsa:\n return publicKey.elliptic.generate(oid).then(({ oid, Q, secret }) => ({\n privateParams: { d: secret },\n publicParams: { oid: new OID(oid), Q }\n }));\n case enums.publicKey.eddsaLegacy:\n return publicKey.elliptic.generate(oid).then(({ oid, Q, secret }) => ({\n privateParams: { seed: secret },\n publicParams: { oid: new OID(oid), Q }\n }));\n case enums.publicKey.ecdh:\n return publicKey.elliptic.generate(oid).then(({ oid, Q, secret, hash, cipher }) => ({\n privateParams: { d: secret },\n publicParams: {\n oid: new OID(oid),\n Q,\n kdfParams: new KDFParams({ hash, cipher })\n }\n }));\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448:\n return publicKey.elliptic.eddsa.generate(algo).then(({ A, seed }) => ({\n privateParams: { seed },\n publicParams: { A }\n }));\n case enums.publicKey.x25519:\n case enums.publicKey.x448:\n return publicKey.elliptic.ecdhX.generate(algo).then(({ A, k }) => ({\n privateParams: { k },\n publicParams: { A }\n }));\n case enums.publicKey.dsa:\n case enums.publicKey.elgamal:\n throw new Error('Unsupported algorithm for key generation.');\n default:\n throw new Error('Unknown public key algorithm.');\n }\n}\n\n/**\n * Validate algorithm-specific key parameters\n * @param {module:enums.publicKey} algo - The public key algorithm\n * @param {Object} publicParams - Algorithm-specific public key parameters\n * @param {Object} privateParams - Algorithm-specific private key parameters\n * @returns {Promise} Whether the parameters are valid.\n * @async\n */\nexport async function validateParams(algo, publicParams, privateParams) {\n if (!publicParams || !privateParams) {\n throw new Error('Missing key parameters');\n }\n switch (algo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign: {\n const { n, e } = publicParams;\n const { d, p, q, u } = privateParams;\n return publicKey.rsa.validateParams(n, e, d, p, q, u);\n }\n case enums.publicKey.dsa: {\n const { p, q, g, y } = publicParams;\n const { x } = privateParams;\n return publicKey.dsa.validateParams(p, q, g, y, x);\n }\n case enums.publicKey.elgamal: {\n const { p, g, y } = publicParams;\n const { x } = privateParams;\n return publicKey.elgamal.validateParams(p, g, y, x);\n }\n case enums.publicKey.ecdsa:\n case enums.publicKey.ecdh: {\n const algoModule = publicKey.elliptic[enums.read(enums.publicKey, algo)];\n const { oid, Q } = publicParams;\n const { d } = privateParams;\n return algoModule.validateParams(oid, Q, d);\n }\n case enums.publicKey.eddsaLegacy: {\n const { Q, oid } = publicParams;\n const { seed } = privateParams;\n return publicKey.elliptic.eddsaLegacy.validateParams(oid, Q, seed);\n }\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448: {\n const { A } = publicParams;\n const { seed } = privateParams;\n return publicKey.elliptic.eddsa.validateParams(algo, A, seed);\n }\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n const { A } = publicParams;\n const { k } = privateParams;\n return publicKey.elliptic.ecdhX.validateParams(algo, A, k);\n }\n default:\n throw new Error('Unknown public key algorithm.');\n }\n}\n\n/**\n * Generates a random byte prefix for the specified algorithm\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n * @param {module:enums.symmetric} algo - Symmetric encryption algorithm\n * @returns {Promise} Random bytes with length equal to the block size of the cipher, plus the last two bytes repeated.\n * @async\n */\nexport async function getPrefixRandom(algo) {\n const { blockSize } = getCipherParams(algo);\n const prefixrandom = await getRandomBytes(blockSize);\n const repeat = new Uint8Array([prefixrandom[prefixrandom.length - 2], prefixrandom[prefixrandom.length - 1]]);\n return util.concat([prefixrandom, repeat]);\n}\n\n/**\n * Generating a session key for the specified symmetric algorithm\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n * @param {module:enums.symmetric} algo - Symmetric encryption algorithm\n * @returns {Uint8Array} Random bytes as a string to be used as a key.\n */\nexport function generateSessionKey(algo) {\n const { keySize } = getCipherParams(algo);\n return getRandomBytes(keySize);\n}\n\n/**\n * Get implementation of the given AEAD mode\n * @param {enums.aead} algo\n * @returns {Object}\n * @throws {Error} on invalid algo\n */\nexport function getAEADMode(algo) {\n const algoName = enums.read(enums.aead, algo);\n return mode[algoName];\n}\n\n/**\n * Check whether the given curve OID is supported\n * @param {module:type/oid} oid - EC object identifier\n * @throws {UnsupportedError} if curve is not supported\n */\nfunction checkSupportedCurve(oid) {\n try {\n oid.getName();\n } catch (e) {\n throw new UnsupportedError('Unknown curve OID');\n }\n}\n\n/**\n * Get encoded secret size for a given elliptic algo\n * @param {module:enums.publicKey} algo - alrogithm identifier\n * @param {module:type/oid} [oid] - curve OID if needed by algo\n */\nexport function getCurvePayloadSize(algo, oid) {\n switch (algo) {\n case enums.publicKey.ecdsa:\n case enums.publicKey.ecdh:\n case enums.publicKey.eddsaLegacy:\n return new publicKey.elliptic.CurveWithOID(oid).payloadSize;\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448:\n return publicKey.elliptic.eddsa.getPayloadSize(algo);\n case enums.publicKey.x25519:\n case enums.publicKey.x448:\n return publicKey.elliptic.ecdhX.getPayloadSize(algo);\n default:\n throw new Error('Unknown elliptic algo');\n }\n}\n\n/**\n * Get preferred signing hash algo for a given elliptic algo\n * @param {module:enums.publicKey} algo - alrogithm identifier\n * @param {module:type/oid} [oid] - curve OID if needed by algo\n */\nexport function getPreferredCurveHashAlgo(algo, oid) {\n switch (algo) {\n case enums.publicKey.ecdsa:\n case enums.publicKey.eddsaLegacy:\n return publicKey.elliptic.getPreferredHashAlgo(oid);\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448:\n return publicKey.elliptic.eddsa.getPreferredHashAlgo(algo);\n default:\n throw new Error('Unknown elliptic signing algo');\n }\n}\n\n\nexport { getCipherParams };\n", "/**\n * @fileoverview Provides access to all cryptographic primitives used in OpenPGP.js\n * @see module:crypto/crypto\n * @see module:crypto/signature\n * @see module:crypto/public_key\n * @see module:crypto/cipher\n * @see module:crypto/random\n * @see module:crypto/hash\n * @module crypto\n */\n\nimport * as cipher from './cipher';\nimport hash from './hash';\nimport mode from './mode';\nimport publicKey from './public_key';\nimport * as signature from './signature';\nimport * as random from './random';\nimport * as pkcs1 from './pkcs1';\nimport * as pkcs5 from './pkcs5';\nimport * as crypto from './crypto';\nimport * as aesKW from './aes_kw';\n\n// TODO move cfb and gcm to cipher\nconst mod = {\n /** @see module:crypto/cipher */\n cipher: cipher,\n /** @see module:crypto/hash */\n hash: hash,\n /** @see module:crypto/mode */\n mode: mode,\n /** @see module:crypto/public_key */\n publicKey: publicKey,\n /** @see module:crypto/signature */\n signature: signature,\n /** @see module:crypto/random */\n random: random,\n /** @see module:crypto/pkcs1 */\n pkcs1: pkcs1,\n /** @see module:crypto/pkcs5 */\n pkcs5: pkcs5,\n /** @see module:crypto/aes_kw */\n aesKW: aesKW\n};\n\nObject.assign(mod, crypto);\n\nexport default mod;\n", "import defaultConfig from '../../config';\nimport enums from '../../enums';\nimport util from '../../util';\nimport crypto from '../../crypto';\n\nconst ARGON2_TYPE = 0x02; // id\nconst ARGON2_VERSION = 0x13;\nconst ARGON2_SALT_SIZE = 16;\n\nexport class Argon2OutOfMemoryError extends Error {\n constructor(...params) {\n super(...params);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Argon2OutOfMemoryError);\n }\n\n this.name = 'Argon2OutOfMemoryError';\n }\n}\n\n// cache argon wasm module\nlet loadArgonWasmModule;\nlet argon2Promise;\n// reload wasm module above this treshold, to deallocated used memory\nconst ARGON2_WASM_MEMORY_THRESHOLD_RELOAD = 2 << 19;\n\nclass Argon2S2K {\n /**\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(config = defaultConfig) {\n const { passes, parallelism, memoryExponent } = config.s2kArgon2Params;\n\n this.type = 'argon2';\n /**\n * 16 bytes of salt\n * @type {Uint8Array}\n */\n this.salt = null;\n /**\n * number of passes\n * @type {Integer}\n */\n this.t = passes;\n /**\n * degree of parallelism (lanes)\n * @type {Integer}\n */\n this.p = parallelism;\n /**\n * exponent indicating memory size\n * @type {Integer}\n */\n this.encodedM = memoryExponent;\n }\n\n generateSalt() {\n this.salt = crypto.random.getRandomBytes(ARGON2_SALT_SIZE);\n }\n\n /**\n * Parsing function for argon2 string-to-key specifier.\n * @param {Uint8Array} bytes - Payload of argon2 string-to-key specifier\n * @returns {Integer} Actual length of the object.\n */\n read(bytes) {\n let i = 0;\n\n this.salt = bytes.subarray(i, i + 16);\n i += 16;\n\n this.t = bytes[i++];\n this.p = bytes[i++];\n this.encodedM = bytes[i++]; // memory size exponent, one-octect\n\n return i;\n }\n\n /**\n * Serializes s2k information\n * @returns {Uint8Array} Binary representation of s2k.\n */\n write() {\n const arr = [\n new Uint8Array([enums.write(enums.s2k, this.type)]),\n this.salt,\n new Uint8Array([this.t, this.p, this.encodedM])\n ];\n\n return util.concatUint8Array(arr);\n }\n\n /**\n * Produces a key using the specified passphrase and the defined\n * hashAlgorithm\n * @param {String} passphrase - Passphrase containing user input\n * @returns {Promise} Produced key with a length corresponding to `keySize`\n * @throws {Argon2OutOfMemoryError|Errors}\n * @async\n */\n async produceKey(passphrase, keySize) {\n const decodedM = 2 << (this.encodedM - 1);\n\n try {\n // on first load, the argon2 lib is imported and the WASM module is initialized.\n // the two steps need to be atomic to avoid race conditions causing multiple wasm modules\n // being loaded when `argon2Promise` is not initialized.\n loadArgonWasmModule = loadArgonWasmModule || (await import('argon2id')).default;\n argon2Promise = argon2Promise || loadArgonWasmModule();\n\n // important to keep local ref to argon2 in case the module is reloaded by another instance\n const argon2 = await argon2Promise;\n\n const passwordBytes = util.encodeUTF8(passphrase);\n const hash = argon2({\n version: ARGON2_VERSION,\n type: ARGON2_TYPE,\n password: passwordBytes,\n salt: this.salt,\n tagLength: keySize,\n memorySize: decodedM,\n parallelism: this.p,\n passes: this.t\n });\n\n // a lot of memory was used, reload to deallocate\n if (decodedM > ARGON2_WASM_MEMORY_THRESHOLD_RELOAD) {\n // it will be awaited if needed at the next `produceKey` invocation\n argon2Promise = loadArgonWasmModule();\n argon2Promise.catch(() => {});\n }\n return hash;\n } catch (e) {\n if (e.message && (\n e.message.includes('Unable to grow instance memory') || // Chrome\n e.message.includes('failed to grow memory') || // Firefox\n e.message.includes('WebAssembly.Memory.grow') || // Safari\n e.message.includes('Out of memory') // Safari iOS\n )) {\n throw new Argon2OutOfMemoryError('Could not allocate required memory for Argon2');\n } else {\n throw e;\n }\n }\n }\n}\n\nexport default Argon2S2K;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * Implementation of the String-to-key specifier\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-3.7|RFC4880 3.7}:\n * String-to-key (S2K) specifiers are used to convert passphrase strings\n * into symmetric-key encryption/decryption keys. They are used in two\n * places, currently: to encrypt the secret part of private keys in the\n * private keyring, and to convert passphrases to encryption keys for\n * symmetrically encrypted messages.\n * @module type/s2k\n */\n\nimport defaultConfig from '../../config';\nimport crypto from '../../crypto';\nimport enums from '../../enums';\nimport { UnsupportedError } from '../../packet/packet';\nimport util from '../../util';\n\nclass GenericS2K {\n /**\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(s2kType, config = defaultConfig) {\n /**\n * Hash function identifier, or 0 for gnu-dummy keys\n * @type {module:enums.hash | 0}\n */\n this.algorithm = enums.hash.sha256;\n /**\n * enums.s2k identifier or 'gnu-dummy'\n * @type {String}\n */\n this.type = enums.read(enums.s2k, s2kType);\n /** @type {Integer} */\n this.c = config.s2kIterationCountByte;\n /** Eight bytes of salt in a binary string.\n * @type {Uint8Array}\n */\n this.salt = null;\n }\n\n generateSalt() {\n switch (this.type) {\n case 'salted':\n case 'iterated':\n this.salt = crypto.random.getRandomBytes(8);\n }\n }\n\n getCount() {\n // Exponent bias, defined in RFC4880\n const expbias = 6;\n\n return (16 + (this.c & 15)) << ((this.c >> 4) + expbias);\n }\n\n /**\n * Parsing function for a string-to-key specifier ({@link https://tools.ietf.org/html/rfc4880#section-3.7|RFC 4880 3.7}).\n * @param {Uint8Array} bytes - Payload of string-to-key specifier\n * @returns {Integer} Actual length of the object.\n */\n read(bytes) {\n let i = 0;\n this.algorithm = bytes[i++];\n\n switch (this.type) {\n case 'simple':\n break;\n\n case 'salted':\n this.salt = bytes.subarray(i, i + 8);\n i += 8;\n break;\n\n case 'iterated':\n this.salt = bytes.subarray(i, i + 8);\n i += 8;\n\n // Octet 10: count, a one-octet, coded value\n this.c = bytes[i++];\n break;\n\n case 'gnu':\n if (util.uint8ArrayToString(bytes.subarray(i, i + 3)) === 'GNU') {\n i += 3; // GNU\n const gnuExtType = 1000 + bytes[i++];\n if (gnuExtType === 1001) {\n this.type = 'gnu-dummy';\n // GnuPG extension mode 1001 -- don't write secret key at all\n } else {\n throw new UnsupportedError('Unknown s2k gnu protection mode.');\n }\n } else {\n throw new UnsupportedError('Unknown s2k type.');\n }\n break;\n\n default:\n throw new UnsupportedError('Unknown s2k type.'); // unreachable\n }\n\n return i;\n }\n\n /**\n * Serializes s2k information\n * @returns {Uint8Array} Binary representation of s2k.\n */\n write() {\n if (this.type === 'gnu-dummy') {\n return new Uint8Array([101, 0, ...util.stringToUint8Array('GNU'), 1]);\n }\n const arr = [new Uint8Array([enums.write(enums.s2k, this.type), this.algorithm])];\n\n switch (this.type) {\n case 'simple':\n break;\n case 'salted':\n arr.push(this.salt);\n break;\n case 'iterated':\n arr.push(this.salt);\n arr.push(new Uint8Array([this.c]));\n break;\n case 'gnu':\n throw new Error('GNU s2k type not supported.');\n default:\n throw new Error('Unknown s2k type.');\n }\n\n return util.concatUint8Array(arr);\n }\n\n /**\n * Produces a key using the specified passphrase and the defined\n * hashAlgorithm\n * @param {String} passphrase - Passphrase containing user input\n * @returns {Promise} Produced key with a length corresponding to.\n * hashAlgorithm hash length\n * @async\n */\n async produceKey(passphrase, numBytes) {\n passphrase = util.encodeUTF8(passphrase);\n\n const arr = [];\n let rlength = 0;\n\n let prefixlen = 0;\n while (rlength < numBytes) {\n let toHash;\n switch (this.type) {\n case 'simple':\n toHash = util.concatUint8Array([new Uint8Array(prefixlen), passphrase]);\n break;\n case 'salted':\n toHash = util.concatUint8Array([new Uint8Array(prefixlen), this.salt, passphrase]);\n break;\n case 'iterated': {\n const data = util.concatUint8Array([this.salt, passphrase]);\n let datalen = data.length;\n const count = Math.max(this.getCount(), datalen);\n toHash = new Uint8Array(prefixlen + count);\n toHash.set(data, prefixlen);\n for (let pos = prefixlen + datalen; pos < count; pos += datalen, datalen *= 2) {\n toHash.copyWithin(pos, prefixlen, pos);\n }\n break;\n }\n case 'gnu':\n throw new Error('GNU s2k type not supported.');\n default:\n throw new Error('Unknown s2k type.');\n }\n const result = await crypto.hash.digest(this.algorithm, toHash);\n arr.push(result);\n rlength += result.length;\n prefixlen++;\n }\n\n return util.concatUint8Array(arr).subarray(0, numBytes);\n }\n}\n\nexport default GenericS2K;\n", "import defaultConfig from '../../config';\nimport Argon2S2K, { Argon2OutOfMemoryError } from './argon2';\nimport GenericS2K from './generic';\nimport enums from '../../enums';\nimport { UnsupportedError } from '../../packet/packet';\n\nconst allowedS2KTypesForEncryption = new Set([enums.s2k.argon2, enums.s2k.iterated]);\n\n/**\n * Instantiate a new S2K instance of the given type\n * @param {module:enums.s2k} type\n * @oaram {Object} [config]\n * @returns {Object} New s2k object\n * @throws {Error} for unknown or unsupported types\n */\nexport function newS2KFromType(type, config = defaultConfig) {\n switch (type) {\n case enums.s2k.argon2:\n return new Argon2S2K(config);\n case enums.s2k.iterated:\n case enums.s2k.gnu:\n case enums.s2k.salted:\n case enums.s2k.simple:\n return new GenericS2K(type, config);\n default:\n throw new UnsupportedError('Unsupported S2K type');\n }\n}\n\n/**\n * Instantiate a new S2K instance based on the config settings\n * @oaram {Object} config\n * @returns {Object} New s2k object\n * @throws {Error} for unknown or unsupported types\n */\nexport function newS2KFromConfig(config) {\n const { s2kType } = config;\n\n if (!allowedS2KTypesForEncryption.has(s2kType)) {\n throw new Error('The provided `config.s2kType` value is not allowed');\n }\n\n return newS2KFromType(s2kType, config);\n}\n\nexport { Argon2OutOfMemoryError };\n", "import { createRequire } from 'module';\nvar require = createRequire('/');\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\n// Mediocre shim\nvar Worker;\nvar workerAdd = \";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global\";\ntry {\n Worker = require('worker_threads').Worker;\n}\ncatch (e) {\n}\nvar wk = Worker ? function (c, _, msg, transfer, cb) {\n var done = false;\n var w = new Worker(c + workerAdd, { eval: true })\n .on('error', function (e) { return cb(e, null); })\n .on('message', function (m) { return cb(null, m); })\n .on('exit', function (c) {\n if (c && !done)\n cb(new Error('exited with code ' + c), null);\n });\n w.postMessage(msg, transfer);\n w.terminate = function () {\n done = true;\n return Worker.prototype.terminate.call(w);\n };\n return w;\n} : function (_, __, ___, ____, cb) {\n setImmediate(function () { return cb(new Error('async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)'), null); });\n var NOP = function () { };\n return {\n terminate: NOP,\n postMessage: NOP\n };\n};\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || (st && st.f && !st.l))\n return buf || new u8(0);\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[pos >> 3] = lst;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if (d[1] & 32)\n err(6, 'invalid zlib data: preset dictionaries not supported');\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n err(6, 'invalid gzip data');\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return [r, slc(d, i - 1)];\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), ch = _a[0], np = _a[1];\n if (final) {\n if (np.length)\n err(8);\n this.p = null;\n }\n else\n this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td)\n return td.decode(dat);\n else {\n var _a = dutf8(dat), out = _a[0], ext = _a[1];\n if (ext.length)\n err(8);\n return out;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport enums from '../enums';\nimport util from '../util';\n\n/**\n * Implementation of the Literal Data Packet (Tag 11)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.9|RFC4880 5.9}:\n * A Literal Data packet contains the body of a message; data that is not to be\n * further interpreted.\n */\nclass LiteralDataPacket {\n static get tag() {\n return enums.packet.literalData;\n }\n\n /**\n * @param {Date} date - The creation date of the literal package\n */\n constructor(date = new Date()) {\n this.format = enums.literal.utf8; // default format for literal data packets\n this.date = util.normalizeDate(date);\n this.text = null; // textual data representation\n this.data = null; // literal data representation\n this.filename = '';\n }\n\n /**\n * Set the packet data to a javascript native string, end of line\n * will be normalized to \\r\\n and by default text is converted to UTF8\n * @param {String | ReadableStream} text - Any native javascript string\n * @param {enums.literal} [format] - The format of the string of bytes\n */\n setText(text, format = enums.literal.utf8) {\n this.format = format;\n this.text = text;\n this.data = null;\n }\n\n /**\n * Returns literal data packets as native JavaScript string\n * with normalized end of line to \\n\n * @param {Boolean} [clone] - Whether to return a clone so that getBytes/getText can be called again\n * @returns {String | ReadableStream} Literal data as text.\n */\n getText(clone = false) {\n if (this.text === null || util.isStream(this.text)) { // Assume that this.text has been read\n this.text = util.decodeUTF8(util.nativeEOL(this.getBytes(clone)));\n }\n return this.text;\n }\n\n /**\n * Set the packet data to value represented by the provided string of bytes.\n * @param {Uint8Array | ReadableStream} bytes - The string of bytes\n * @param {enums.literal} format - The format of the string of bytes\n */\n setBytes(bytes, format) {\n this.format = format;\n this.data = bytes;\n this.text = null;\n }\n\n\n /**\n * Get the byte sequence representing the literal packet data\n * @param {Boolean} [clone] - Whether to return a clone so that getBytes/getText can be called again\n * @returns {Uint8Array | ReadableStream} A sequence of bytes.\n */\n getBytes(clone = false) {\n if (this.data === null) {\n // encode UTF8 and normalize EOL to \\r\\n\n this.data = util.canonicalizeEOL(util.encodeUTF8(this.text));\n }\n if (clone) {\n return stream.passiveClone(this.data);\n }\n return this.data;\n }\n\n\n /**\n * Sets the filename of the literal packet data\n * @param {String} filename - Any native javascript string\n */\n setFilename(filename) {\n this.filename = filename;\n }\n\n\n /**\n * Get the filename of the literal packet data\n * @returns {String} Filename.\n */\n getFilename() {\n return this.filename;\n }\n\n /**\n * Parsing function for a literal data packet (tag 11).\n *\n * @param {Uint8Array | ReadableStream} input - Payload of a tag 11 packet\n * @returns {Promise} Object representation.\n * @async\n */\n async read(bytes) {\n await stream.parse(bytes, async reader => {\n // - A one-octet field that describes how the data is formatted.\n const format = await reader.readByte(); // enums.literal\n\n const filename_len = await reader.readByte();\n this.filename = util.decodeUTF8(await reader.readBytes(filename_len));\n\n this.date = util.readDate(await reader.readBytes(4));\n\n let data = reader.remainder();\n if (stream.isArrayStream(data)) data = await stream.readToEnd(data);\n this.setBytes(data, format);\n });\n }\n\n /**\n * Creates a Uint8Array representation of the packet, excluding the data\n *\n * @returns {Uint8Array} Uint8Array representation of the packet.\n */\n writeHeader() {\n const filename = util.encodeUTF8(this.filename);\n const filename_length = new Uint8Array([filename.length]);\n\n const format = new Uint8Array([this.format]);\n const date = util.writeDate(this.date);\n\n return util.concatUint8Array([format, filename_length, filename, date]);\n }\n\n /**\n * Creates a Uint8Array representation of the packet\n *\n * @returns {Uint8Array | ReadableStream} Uint8Array representation of the packet.\n */\n write() {\n const header = this.writeHeader();\n const data = this.getBytes();\n\n return util.concat([header, data]);\n }\n}\n\nexport default LiteralDataPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n/**\n * @module type/keyid\n */\n\nimport util from '../util';\n\n/**\n * Implementation of type key id\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-3.3|RFC4880 3.3}:\n * A Key ID is an eight-octet scalar that identifies a key.\n * Implementations SHOULD NOT assume that Key IDs are unique. The\n * section \"Enhanced Key Formats\" below describes how Key IDs are\n * formed.\n */\nclass KeyID {\n constructor() {\n this.bytes = '';\n }\n\n /**\n * Parsing method for a key id\n * @param {Uint8Array} bytes - Input to read the key id from\n */\n read(bytes) {\n this.bytes = util.uint8ArrayToString(bytes.subarray(0, 8));\n return this.bytes.length;\n }\n\n /**\n * Serializes the Key ID\n * @returns {Uint8Array} Key ID as a Uint8Array.\n */\n write() {\n return util.stringToUint8Array(this.bytes);\n }\n\n /**\n * Returns the Key ID represented as a hexadecimal string\n * @returns {String} Key ID as a hexadecimal string.\n */\n toHex() {\n return util.uint8ArrayToHex(util.stringToUint8Array(this.bytes));\n }\n\n /**\n * Checks equality of Key ID's\n * @param {KeyID} keyID\n * @param {Boolean} matchWildcard - Indicates whether to check if either keyID is a wildcard\n */\n equals(keyID, matchWildcard = false) {\n return (matchWildcard && (keyID.isWildcard() || this.isWildcard())) || this.bytes === keyID.bytes;\n }\n\n /**\n * Checks to see if the Key ID is unset\n * @returns {Boolean} True if the Key ID is null.\n */\n isNull() {\n return this.bytes === '';\n }\n\n /**\n * Checks to see if the Key ID is a \"wildcard\" Key ID (all zeros)\n * @returns {Boolean} True if this is a wildcard Key ID.\n */\n isWildcard() {\n return /^0+$/.test(this.toHex());\n }\n\n static mapToHex(keyID) {\n return keyID.toHex();\n }\n\n static fromID(hex) {\n const keyID = new KeyID();\n keyID.read(util.hexToUint8Array(hex));\n return keyID;\n }\n\n static wildcard() {\n const keyID = new KeyID();\n keyID.read(new Uint8Array(8));\n return keyID;\n }\n}\n\nexport default KeyID;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport { readSimpleLength, UnsupportedError, writeSimpleLength } from './packet';\nimport KeyID from '../type/keyid';\nimport crypto from '../crypto';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\n\n// Symbol to store cryptographic validity of the signature, to avoid recomputing multiple times on verification.\nconst verified = Symbol('verified');\n\n// A salt notation is used to randomize signatures.\n// This is to protect EdDSA signatures in particular, which are known to be vulnerable to fault attacks\n// leading to secret key extraction if two signatures over the same data can be collected (see https://github.com/jedisct1/libsodium/issues/170).\n// For simplicity, we add the salt to all algos, as it may also serve as protection in case of weaknesses in the hash algo, potentially hindering e.g.\n// some chosen-prefix attacks.\n// v6 signatures do not need to rely on this notation, as they already include a separate, built-in salt.\nconst SALT_NOTATION_NAME = 'salt@notations.openpgpjs.org';\n\n// GPG puts the Issuer and Signature subpackets in the unhashed area.\n// Tampering with those invalidates the signature, so we still trust them and parse them.\n// All other unhashed subpackets are ignored.\nconst allowedUnhashedSubpackets = new Set([\n enums.signatureSubpacket.issuerKeyID,\n enums.signatureSubpacket.issuerFingerprint,\n enums.signatureSubpacket.embeddedSignature\n]);\n\n/**\n * Implementation of the Signature Packet (Tag 2)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.2|RFC4480 5.2}:\n * A Signature packet describes a binding between some public key and\n * some data. The most common signatures are a signature of a file or a\n * block of text, and a signature that is a certification of a User ID.\n */\nclass SignaturePacket {\n static get tag() {\n return enums.packet.signature;\n }\n\n constructor() {\n this.version = null;\n /** @type {enums.signature} */\n this.signatureType = null;\n /** @type {enums.hash} */\n this.hashAlgorithm = null;\n /** @type {enums.publicKey} */\n this.publicKeyAlgorithm = null;\n\n this.signatureData = null;\n this.unhashedSubpackets = [];\n this.unknownSubpackets = [];\n this.signedHashValue = null;\n this.salt = null;\n\n this.created = null;\n this.signatureExpirationTime = null;\n this.signatureNeverExpires = true;\n this.exportable = null;\n this.trustLevel = null;\n this.trustAmount = null;\n this.regularExpression = null;\n this.revocable = null;\n this.keyExpirationTime = null;\n this.keyNeverExpires = null;\n this.preferredSymmetricAlgorithms = null;\n this.revocationKeyClass = null;\n this.revocationKeyAlgorithm = null;\n this.revocationKeyFingerprint = null;\n this.issuerKeyID = new KeyID();\n this.rawNotations = [];\n this.notations = {};\n this.preferredHashAlgorithms = null;\n this.preferredCompressionAlgorithms = null;\n this.keyServerPreferences = null;\n this.preferredKeyServer = null;\n this.isPrimaryUserID = null;\n this.policyURI = null;\n this.keyFlags = null;\n this.signersUserID = null;\n this.reasonForRevocationFlag = null;\n this.reasonForRevocationString = null;\n this.features = null;\n this.signatureTargetPublicKeyAlgorithm = null;\n this.signatureTargetHashAlgorithm = null;\n this.signatureTargetHash = null;\n this.embeddedSignature = null;\n this.issuerKeyVersion = null;\n this.issuerFingerprint = null;\n this.preferredAEADAlgorithms = null;\n this.preferredCipherSuites = null;\n\n this.revoked = null;\n this[verified] = null;\n }\n\n /**\n * parsing function for a signature packet (tag 2).\n * @param {String} bytes - Payload of a tag 2 packet\n * @returns {SignaturePacket} Object representation.\n */\n read(bytes, config = defaultConfig) {\n let i = 0;\n this.version = bytes[i++];\n if (this.version === 5 && !config.enableParsingV5Entities) {\n throw new UnsupportedError('Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed');\n }\n\n if (this.version !== 4 && this.version !== 5 && this.version !== 6) {\n throw new UnsupportedError(`Version ${this.version} of the signature packet is unsupported.`);\n }\n\n this.signatureType = bytes[i++];\n this.publicKeyAlgorithm = bytes[i++];\n this.hashAlgorithm = bytes[i++];\n\n // hashed subpackets\n i += this.readSubPackets(bytes.subarray(i, bytes.length), true);\n if (!this.created) {\n throw new Error('Missing signature creation time subpacket.');\n }\n\n // A V4 signature hashes the packet body\n // starting from its first field, the version number, through the end\n // of the hashed subpacket data. Thus, the fields hashed are the\n // signature version, the signature type, the public-key algorithm, the\n // hash algorithm, the hashed subpacket length, and the hashed\n // subpacket body.\n this.signatureData = bytes.subarray(0, i);\n\n // unhashed subpackets\n i += this.readSubPackets(bytes.subarray(i, bytes.length), false);\n\n // Two-octet field holding left 16 bits of signed hash value.\n this.signedHashValue = bytes.subarray(i, i + 2);\n i += 2;\n\n // Only for v6 signatures, a variable-length field containing:\n if (this.version === 6) {\n // A one-octet salt size. The value MUST match the value defined\n // for the hash algorithm as specified in Table 23 (Hash algorithm registry).\n // To allow parsing unknown hash algos, we only check the expected salt length when verifying.\n const saltLength = bytes[i++];\n\n // The salt; a random value value of the specified size.\n this.salt = bytes.subarray(i, i + saltLength);\n i += saltLength;\n }\n\n const signatureMaterial = bytes.subarray(i, bytes.length);\n const { read, signatureParams } = crypto.signature.parseSignatureParams(this.publicKeyAlgorithm, signatureMaterial);\n if (read < signatureMaterial.length) {\n throw new Error('Error reading MPIs');\n }\n this.params = signatureParams;\n }\n\n /**\n * @returns {Uint8Array | ReadableStream}\n */\n writeParams() {\n if (this.params instanceof Promise) {\n return stream.fromAsync(\n async () => crypto.serializeParams(this.publicKeyAlgorithm, await this.params)\n );\n }\n return crypto.serializeParams(this.publicKeyAlgorithm, this.params);\n }\n\n write() {\n const arr = [];\n arr.push(this.signatureData);\n arr.push(this.writeUnhashedSubPackets());\n arr.push(this.signedHashValue);\n if (this.version === 6) {\n arr.push(new Uint8Array([this.salt.length]));\n arr.push(this.salt);\n }\n arr.push(this.writeParams());\n return util.concat(arr);\n }\n\n /**\n * Signs provided data. This needs to be done prior to serialization.\n * @param {SecretKeyPacket} key - Private key used to sign the message.\n * @param {Object} data - Contains packets to be signed.\n * @param {Date} [date] - The signature creation time.\n * @param {Boolean} [detached] - Whether to create a detached signature\n * @throws {Error} if signing failed\n * @async\n */\n async sign(key, data, date = new Date(), detached = false, config) {\n this.version = key.version;\n\n this.created = util.normalizeDate(date);\n this.issuerKeyVersion = key.version;\n this.issuerFingerprint = key.getFingerprintBytes();\n this.issuerKeyID = key.getKeyID();\n\n const arr = [new Uint8Array([this.version, this.signatureType, this.publicKeyAlgorithm, this.hashAlgorithm])];\n\n // add randomness to the signature\n if (this.version === 6) {\n const saltLength = saltLengthForHash(this.hashAlgorithm);\n if (this.salt === null) {\n this.salt = crypto.random.getRandomBytes(saltLength);\n } else if (saltLength !== this.salt.length) {\n throw new Error('Provided salt does not have the required length');\n }\n } else if (config.nonDeterministicSignaturesViaNotation) {\n const saltNotations = this.rawNotations.filter(({ name }) => (name === SALT_NOTATION_NAME));\n // since re-signing the same object is not supported, it's not expected to have multiple salt notations,\n // but we guard against it as a sanity check\n if (saltNotations.length === 0) {\n const saltValue = crypto.random.getRandomBytes(saltLengthForHash(this.hashAlgorithm));\n this.rawNotations.push({\n name: SALT_NOTATION_NAME,\n value: saltValue,\n humanReadable: false,\n critical: false\n });\n } else {\n throw new Error('Unexpected existing salt notation');\n }\n }\n\n // Add hashed subpackets\n arr.push(this.writeHashedSubPackets());\n\n // Remove unhashed subpackets, in case some allowed unhashed\n // subpackets existed, in order not to duplicate them (in both\n // the hashed and unhashed subpackets) when re-signing.\n this.unhashedSubpackets = [];\n\n this.signatureData = util.concat(arr);\n\n const toHash = this.toHash(this.signatureType, data, detached);\n const hash = await this.hash(this.signatureType, data, toHash, detached);\n\n this.signedHashValue = stream.slice(stream.clone(hash), 0, 2);\n const signed = async () => crypto.signature.sign(\n this.publicKeyAlgorithm, this.hashAlgorithm, key.publicParams, key.privateParams, toHash, await stream.readToEnd(hash)\n );\n if (util.isStream(hash)) {\n this.params = signed();\n } else {\n this.params = await signed();\n\n // Store the fact that this signature is valid, e.g. for when we call `await\n // getLatestValidSignature(this.revocationSignatures, key, data)` later.\n // Note that this only holds up if the key and data passed to verify are the\n // same as the ones passed to sign.\n this[verified] = true;\n }\n }\n\n /**\n * Creates Uint8Array of bytes of all subpacket data except Issuer and Embedded Signature subpackets\n * @returns {Uint8Array} Subpacket data.\n */\n writeHashedSubPackets() {\n const sub = enums.signatureSubpacket;\n const arr = [];\n let bytes;\n if (this.created === null) {\n throw new Error('Missing signature creation time');\n }\n arr.push(writeSubPacket(sub.signatureCreationTime, true, util.writeDate(this.created)));\n if (this.signatureExpirationTime !== null) {\n arr.push(writeSubPacket(sub.signatureExpirationTime, true, util.writeNumber(this.signatureExpirationTime, 4)));\n }\n if (this.exportable !== null) {\n arr.push(writeSubPacket(sub.exportableCertification, true, new Uint8Array([this.exportable ? 1 : 0])));\n }\n if (this.trustLevel !== null) {\n bytes = new Uint8Array([this.trustLevel, this.trustAmount]);\n arr.push(writeSubPacket(sub.trustSignature, true, bytes));\n }\n if (this.regularExpression !== null) {\n arr.push(writeSubPacket(sub.regularExpression, true, this.regularExpression));\n }\n if (this.revocable !== null) {\n arr.push(writeSubPacket(sub.revocable, true, new Uint8Array([this.revocable ? 1 : 0])));\n }\n if (this.keyExpirationTime !== null) {\n arr.push(writeSubPacket(sub.keyExpirationTime, true, util.writeNumber(this.keyExpirationTime, 4)));\n }\n if (this.preferredSymmetricAlgorithms !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredSymmetricAlgorithms));\n arr.push(writeSubPacket(sub.preferredSymmetricAlgorithms, false, bytes));\n }\n if (this.revocationKeyClass !== null) {\n bytes = new Uint8Array([this.revocationKeyClass, this.revocationKeyAlgorithm]);\n bytes = util.concat([bytes, this.revocationKeyFingerprint]);\n arr.push(writeSubPacket(sub.revocationKey, false, bytes));\n }\n if (!this.issuerKeyID.isNull() && this.issuerKeyVersion < 5) {\n // If the version of [the] key is greater than 4, this subpacket\n // MUST NOT be included in the signature.\n arr.push(writeSubPacket(sub.issuerKeyID, true, this.issuerKeyID.write()));\n }\n this.rawNotations.forEach(({ name, value, humanReadable, critical }) => {\n bytes = [new Uint8Array([humanReadable ? 0x80 : 0, 0, 0, 0])];\n const encodedName = util.encodeUTF8(name);\n // 2 octets of name length\n bytes.push(util.writeNumber(encodedName.length, 2));\n // 2 octets of value length\n bytes.push(util.writeNumber(value.length, 2));\n bytes.push(encodedName);\n bytes.push(value);\n bytes = util.concat(bytes);\n arr.push(writeSubPacket(sub.notationData, critical, bytes));\n });\n if (this.preferredHashAlgorithms !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredHashAlgorithms));\n arr.push(writeSubPacket(sub.preferredHashAlgorithms, false, bytes));\n }\n if (this.preferredCompressionAlgorithms !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredCompressionAlgorithms));\n arr.push(writeSubPacket(sub.preferredCompressionAlgorithms, false, bytes));\n }\n if (this.keyServerPreferences !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.keyServerPreferences));\n arr.push(writeSubPacket(sub.keyServerPreferences, false, bytes));\n }\n if (this.preferredKeyServer !== null) {\n arr.push(writeSubPacket(sub.preferredKeyServer, false, util.encodeUTF8(this.preferredKeyServer)));\n }\n if (this.isPrimaryUserID !== null) {\n arr.push(writeSubPacket(sub.primaryUserID, false, new Uint8Array([this.isPrimaryUserID ? 1 : 0])));\n }\n if (this.policyURI !== null) {\n arr.push(writeSubPacket(sub.policyURI, false, util.encodeUTF8(this.policyURI)));\n }\n if (this.keyFlags !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.keyFlags));\n arr.push(writeSubPacket(sub.keyFlags, true, bytes));\n }\n if (this.signersUserID !== null) {\n arr.push(writeSubPacket(sub.signersUserID, false, util.encodeUTF8(this.signersUserID)));\n }\n if (this.reasonForRevocationFlag !== null) {\n bytes = util.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag) + this.reasonForRevocationString);\n arr.push(writeSubPacket(sub.reasonForRevocation, true, bytes));\n }\n if (this.features !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.features));\n arr.push(writeSubPacket(sub.features, false, bytes));\n }\n if (this.signatureTargetPublicKeyAlgorithm !== null) {\n bytes = [new Uint8Array([this.signatureTargetPublicKeyAlgorithm, this.signatureTargetHashAlgorithm])];\n bytes.push(util.stringToUint8Array(this.signatureTargetHash));\n bytes = util.concat(bytes);\n arr.push(writeSubPacket(sub.signatureTarget, true, bytes));\n }\n if (this.embeddedSignature !== null) {\n arr.push(writeSubPacket(sub.embeddedSignature, true, this.embeddedSignature.write()));\n }\n if (this.issuerFingerprint !== null) {\n bytes = [new Uint8Array([this.issuerKeyVersion]), this.issuerFingerprint];\n bytes = util.concat(bytes);\n arr.push(writeSubPacket(sub.issuerFingerprint, this.version >= 5, bytes));\n }\n if (this.preferredAEADAlgorithms !== null) {\n bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredAEADAlgorithms));\n arr.push(writeSubPacket(sub.preferredAEADAlgorithms, false, bytes));\n }\n if (this.preferredCipherSuites !== null) {\n bytes = new Uint8Array([].concat(...this.preferredCipherSuites));\n arr.push(writeSubPacket(sub.preferredCipherSuites, false, bytes));\n }\n\n const result = util.concat(arr);\n const length = util.writeNumber(result.length, this.version === 6 ? 4 : 2);\n\n return util.concat([length, result]);\n }\n\n /**\n * Creates an Uint8Array containing the unhashed subpackets\n * @returns {Uint8Array} Subpacket data.\n */\n writeUnhashedSubPackets() {\n const arr = this.unhashedSubpackets.map(({ type, critical, body }) => {\n return writeSubPacket(type, critical, body);\n });\n\n const result = util.concat(arr);\n const length = util.writeNumber(result.length, this.version === 6 ? 4 : 2);\n\n return util.concat([length, result]);\n }\n\n // Signature subpackets\n readSubPacket(bytes, hashed = true) {\n let mypos = 0;\n\n // The leftmost bit denotes a \"critical\" packet\n const critical = !!(bytes[mypos] & 0x80);\n const type = bytes[mypos] & 0x7F;\n\n mypos++;\n\n if (!hashed) {\n this.unhashedSubpackets.push({\n type,\n critical,\n body: bytes.subarray(mypos, bytes.length)\n });\n if (!allowedUnhashedSubpackets.has(type)) {\n return;\n }\n }\n\n // subpacket type\n switch (type) {\n case enums.signatureSubpacket.signatureCreationTime:\n // Signature Creation Time\n this.created = util.readDate(bytes.subarray(mypos, bytes.length));\n break;\n case enums.signatureSubpacket.signatureExpirationTime: {\n // Signature Expiration Time in seconds\n const seconds = util.readNumber(bytes.subarray(mypos, bytes.length));\n\n this.signatureNeverExpires = seconds === 0;\n this.signatureExpirationTime = seconds;\n\n break;\n }\n case enums.signatureSubpacket.exportableCertification:\n // Exportable Certification\n this.exportable = bytes[mypos++] === 1;\n break;\n case enums.signatureSubpacket.trustSignature:\n // Trust Signature\n this.trustLevel = bytes[mypos++];\n this.trustAmount = bytes[mypos++];\n break;\n case enums.signatureSubpacket.regularExpression:\n // Regular Expression\n this.regularExpression = bytes[mypos];\n break;\n case enums.signatureSubpacket.revocable:\n // Revocable\n this.revocable = bytes[mypos++] === 1;\n break;\n case enums.signatureSubpacket.keyExpirationTime: {\n // Key Expiration Time in seconds\n const seconds = util.readNumber(bytes.subarray(mypos, bytes.length));\n\n this.keyExpirationTime = seconds;\n this.keyNeverExpires = seconds === 0;\n\n break;\n }\n case enums.signatureSubpacket.preferredSymmetricAlgorithms:\n // Preferred Symmetric Algorithms\n this.preferredSymmetricAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.revocationKey:\n // Revocation Key\n // (1 octet of class, 1 octet of public-key algorithm ID, 20\n // octets of\n // fingerprint)\n this.revocationKeyClass = bytes[mypos++];\n this.revocationKeyAlgorithm = bytes[mypos++];\n this.revocationKeyFingerprint = bytes.subarray(mypos, mypos + 20);\n break;\n\n case enums.signatureSubpacket.issuerKeyID:\n // Issuer\n if (this.version === 4) {\n this.issuerKeyID.read(bytes.subarray(mypos, bytes.length));\n } else if (hashed) {\n // If the version of the key is greater than 4, this subpacket MUST NOT be included in the signature,\n // since the Issuer Fingerprint subpacket is to be used instead.\n // The `issuerKeyID` value will be set when reading the issuerFingerprint packet.\n // For this reason, if the issuer Key ID packet is present but unhashed, we simply ignore it,\n // to avoid situations where `.getSigningKeyIDs()` returns a keyID potentially different from the (signed)\n // issuerFingerprint.\n // If the packet is hashed, then we reject the signature, to avoid verifying data different from\n // what was parsed.\n throw new Error('Unexpected Issuer Key ID subpacket');\n }\n break;\n\n case enums.signatureSubpacket.notationData: {\n // Notation Data\n const humanReadable = !!(bytes[mypos] & 0x80);\n\n // We extract key/value tuple from the byte stream.\n mypos += 4;\n const m = util.readNumber(bytes.subarray(mypos, mypos + 2));\n mypos += 2;\n const n = util.readNumber(bytes.subarray(mypos, mypos + 2));\n mypos += 2;\n\n const name = util.decodeUTF8(bytes.subarray(mypos, mypos + m));\n const value = bytes.subarray(mypos + m, mypos + m + n);\n\n this.rawNotations.push({ name, humanReadable, value, critical });\n\n if (humanReadable) {\n this.notations[name] = util.decodeUTF8(value);\n }\n break;\n }\n case enums.signatureSubpacket.preferredHashAlgorithms:\n // Preferred Hash Algorithms\n this.preferredHashAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.preferredCompressionAlgorithms:\n // Preferred Compression Algorithms\n this.preferredCompressionAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.keyServerPreferences:\n // Key Server Preferences\n this.keyServerPreferences = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.preferredKeyServer:\n // Preferred Key Server\n this.preferredKeyServer = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n break;\n case enums.signatureSubpacket.primaryUserID:\n // Primary User ID\n this.isPrimaryUserID = bytes[mypos++] !== 0;\n break;\n case enums.signatureSubpacket.policyURI:\n // Policy URI\n this.policyURI = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n break;\n case enums.signatureSubpacket.keyFlags:\n // Key Flags\n this.keyFlags = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.signersUserID:\n // Signer's User ID\n this.signersUserID = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n break;\n case enums.signatureSubpacket.reasonForRevocation:\n // Reason for Revocation\n this.reasonForRevocationFlag = bytes[mypos++];\n this.reasonForRevocationString = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n break;\n case enums.signatureSubpacket.features:\n // Features\n this.features = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.signatureTarget: {\n // Signature Target\n // (1 octet public-key algorithm, 1 octet hash algorithm, N octets hash)\n this.signatureTargetPublicKeyAlgorithm = bytes[mypos++];\n this.signatureTargetHashAlgorithm = bytes[mypos++];\n\n const len = crypto.getHashByteLength(this.signatureTargetHashAlgorithm);\n\n this.signatureTargetHash = util.uint8ArrayToString(bytes.subarray(mypos, mypos + len));\n break;\n }\n case enums.signatureSubpacket.embeddedSignature:\n // Embedded Signature\n this.embeddedSignature = new SignaturePacket();\n this.embeddedSignature.read(bytes.subarray(mypos, bytes.length));\n break;\n case enums.signatureSubpacket.issuerFingerprint:\n // Issuer Fingerprint\n this.issuerKeyVersion = bytes[mypos++];\n this.issuerFingerprint = bytes.subarray(mypos, bytes.length);\n if (this.issuerKeyVersion >= 5) {\n this.issuerKeyID.read(this.issuerFingerprint);\n } else {\n this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));\n }\n break;\n case enums.signatureSubpacket.preferredAEADAlgorithms:\n // Preferred AEAD Algorithms\n this.preferredAEADAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n break;\n case enums.signatureSubpacket.preferredCipherSuites:\n // Preferred AEAD Cipher Suites\n this.preferredCipherSuites = [];\n for (let i = mypos; i < bytes.length; i += 2) {\n this.preferredCipherSuites.push([bytes[i], bytes[i + 1]]);\n }\n break;\n default:\n this.unknownSubpackets.push({\n type,\n critical,\n body: bytes.subarray(mypos, bytes.length)\n });\n break;\n }\n }\n\n readSubPackets(bytes, trusted = true, config) {\n const subpacketLengthBytes = this.version === 6 ? 4 : 2;\n\n // Two-octet scalar octet count for following subpacket data.\n const subpacketLength = util.readNumber(bytes.subarray(0, subpacketLengthBytes));\n\n let i = subpacketLengthBytes;\n\n // subpacket data set (zero or more subpackets)\n while (i < 2 + subpacketLength) {\n const len = readSimpleLength(bytes.subarray(i, bytes.length));\n i += len.offset;\n\n this.readSubPacket(bytes.subarray(i, i + len.len), trusted, config);\n\n i += len.len;\n }\n\n return i;\n }\n\n // Produces data to produce signature on\n toSign(type, data) {\n const t = enums.signature;\n\n switch (type) {\n case t.binary:\n if (data.text !== null) {\n return util.encodeUTF8(data.getText(true));\n }\n return data.getBytes(true);\n\n case t.text: {\n const bytes = data.getBytes(true);\n // normalize EOL to \\r\\n\n return util.canonicalizeEOL(bytes);\n }\n case t.standalone:\n return new Uint8Array(0);\n\n case t.certGeneric:\n case t.certPersona:\n case t.certCasual:\n case t.certPositive:\n case t.certRevocation: {\n let packet;\n let tag;\n\n if (data.userID) {\n tag = 0xB4;\n packet = data.userID;\n } else if (data.userAttribute) {\n tag = 0xD1;\n packet = data.userAttribute;\n } else {\n throw new Error('Either a userID or userAttribute packet needs to be ' +\n 'supplied for certification.');\n }\n\n const bytes = packet.write();\n\n return util.concat([this.toSign(t.key, data),\n new Uint8Array([tag]),\n util.writeNumber(bytes.length, 4),\n bytes]);\n }\n case t.subkeyBinding:\n case t.subkeyRevocation:\n case t.keyBinding:\n return util.concat([this.toSign(t.key, data), this.toSign(t.key, {\n key: data.bind\n })]);\n\n case t.key:\n if (data.key === undefined) {\n throw new Error('Key packet is required for this signature.');\n }\n return data.key.writeForHash(this.version);\n\n case t.keyRevocation:\n return this.toSign(t.key, data);\n case t.timestamp:\n return new Uint8Array(0);\n case t.thirdParty:\n throw new Error('Not implemented');\n default:\n throw new Error('Unknown signature type.');\n }\n }\n\n calculateTrailer(data, detached) {\n let length = 0;\n return stream.transform(stream.clone(this.signatureData), value => {\n length += value.length;\n }, () => {\n const arr = [];\n if (this.version === 5 && (this.signatureType === enums.signature.binary || this.signatureType === enums.signature.text)) {\n if (detached) {\n arr.push(new Uint8Array(6));\n } else {\n arr.push(data.writeHeader());\n }\n }\n arr.push(new Uint8Array([this.version, 0xFF]));\n if (this.version === 5) {\n arr.push(new Uint8Array(4));\n }\n arr.push(util.writeNumber(length, 4));\n // For v5, this should really be writeNumber(length, 8) rather than the\n // hardcoded 4 zero bytes above\n return util.concat(arr);\n });\n }\n\n toHash(signatureType, data, detached = false) {\n const bytes = this.toSign(signatureType, data);\n\n return util.concat([this.salt || new Uint8Array(), bytes, this.signatureData, this.calculateTrailer(data, detached)]);\n }\n\n async hash(signatureType, data, toHash, detached = false) {\n if (this.version === 6 && this.salt.length !== saltLengthForHash(this.hashAlgorithm)) {\n // avoid hashing unexpected salt size\n throw new Error('Signature salt does not have the expected length');\n }\n\n if (!toHash) toHash = this.toHash(signatureType, data, detached);\n return crypto.hash.digest(this.hashAlgorithm, toHash);\n }\n\n /**\n * verifies the signature packet. Note: not all signature types are implemented\n * @param {PublicSubkeyPacket|PublicKeyPacket|\n * SecretSubkeyPacket|SecretKeyPacket} key - the public key to verify the signature\n * @param {module:enums.signature} signatureType - Expected signature type\n * @param {Uint8Array|Object} data - Data which on the signature applies\n * @param {Date} [date] - Use the given date instead of the current time to check for signature validity and expiration\n * @param {Boolean} [detached] - Whether to verify a detached signature\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if signature validation failed\n * @async\n */\n async verify(key, signatureType, data, date = new Date(), detached = false, config = defaultConfig) {\n if (!this.issuerKeyID.equals(key.getKeyID())) {\n throw new Error('Signature was not issued by the given public key');\n }\n if (this.publicKeyAlgorithm !== key.algorithm) {\n throw new Error('Public key algorithm used to sign signature does not match issuer key algorithm.');\n }\n\n const isMessageSignature = signatureType === enums.signature.binary || signatureType === enums.signature.text;\n // Cryptographic validity is cached after one successful verification.\n // However, for message signatures, we always re-verify, since the passed `data` can change\n const skipVerify = this[verified] && !isMessageSignature;\n if (!skipVerify) {\n let toHash;\n let hash;\n if (this.hashed) {\n hash = await this.hashed;\n } else {\n toHash = this.toHash(signatureType, data, detached);\n hash = await this.hash(signatureType, data, toHash);\n }\n hash = await stream.readToEnd(hash);\n if (this.signedHashValue[0] !== hash[0] ||\n this.signedHashValue[1] !== hash[1]) {\n throw new Error('Signed digest did not match');\n }\n\n this.params = await this.params;\n\n this[verified] = await crypto.signature.verify(\n this.publicKeyAlgorithm, this.hashAlgorithm, this.params, key.publicParams,\n toHash, hash\n );\n\n if (!this[verified]) {\n throw new Error('Signature verification failed');\n }\n }\n\n const normDate = util.normalizeDate(date);\n if (normDate && this.created > normDate) {\n throw new Error('Signature creation time is in the future');\n }\n if (normDate && normDate >= this.getExpirationTime()) {\n throw new Error('Signature is expired');\n }\n if (config.rejectHashAlgorithms.has(this.hashAlgorithm)) {\n throw new Error('Insecure hash algorithm: ' + enums.read(enums.hash, this.hashAlgorithm).toUpperCase());\n }\n if (config.rejectMessageHashAlgorithms.has(this.hashAlgorithm) &&\n [enums.signature.binary, enums.signature.text].includes(this.signatureType)) {\n throw new Error('Insecure message hash algorithm: ' + enums.read(enums.hash, this.hashAlgorithm).toUpperCase());\n }\n this.unknownSubpackets.forEach(({ type, critical }) => {\n if (critical) {\n throw new Error(`Unknown critical signature subpacket type ${type}`);\n }\n });\n this.rawNotations.forEach(({ name, critical }) => {\n if (critical && (config.knownNotations.indexOf(name) < 0)) {\n throw new Error(`Unknown critical notation: ${name}`);\n }\n });\n if (this.revocationKeyClass !== null) {\n throw new Error('This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.');\n }\n }\n\n /**\n * Verifies signature expiration date\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @returns {Boolean} True if expired.\n */\n isExpired(date = new Date()) {\n const normDate = util.normalizeDate(date);\n if (normDate !== null) {\n return !(this.created <= normDate && normDate < this.getExpirationTime());\n }\n return false;\n }\n\n /**\n * Returns the expiration time of the signature or Infinity if signature does not expire\n * @returns {Date | Infinity} Expiration time.\n */\n getExpirationTime() {\n return this.signatureNeverExpires ? Infinity : new Date(this.created.getTime() + this.signatureExpirationTime * 1000);\n }\n}\n\nexport default SignaturePacket;\n\n/**\n * Creates a Uint8Array representation of a sub signature packet\n * @see {@link https://tools.ietf.org/html/rfc4880#section-5.2.3.1|RFC4880 5.2.3.1}\n * @see {@link https://tools.ietf.org/html/rfc4880#section-5.2.3.2|RFC4880 5.2.3.2}\n * @param {Integer} type - Subpacket signature type.\n * @param {Boolean} critical - Whether the subpacket should be critical.\n * @param {String} data - Data to be included\n * @returns {Uint8Array} The signature subpacket.\n * @private\n */\nfunction writeSubPacket(type, critical, data) {\n const arr = [];\n arr.push(writeSimpleLength(data.length + 1));\n arr.push(new Uint8Array([(critical ? 0x80 : 0) | type]));\n arr.push(data);\n return util.concat(arr);\n}\n\n/**\n * Select the required salt length for the given hash algorithm, as per Table 23 (Hash algorithm registry) of the crypto refresh.\n * @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#section-9.5|Crypto Refresh Section 9.5}\n * @param {enums.hash} hashAlgorithm - Hash algorithm.\n * @returns {Integer} Salt length.\n * @private\n */\nfunction saltLengthForHash(hashAlgorithm) {\n switch (hashAlgorithm) {\n case enums.hash.sha256: return 16;\n case enums.hash.sha384: return 24;\n case enums.hash.sha512: return 32;\n case enums.hash.sha224: return 16;\n case enums.hash.sha3_256: return 16;\n case enums.hash.sha3_512: return 32;\n default: throw new Error('Unsupported hash function');\n }\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport SignaturePacket from './signature';\nimport KeyID from '../type/keyid';\nimport enums from '../enums';\nimport util from '../util';\nimport { UnsupportedError } from './packet';\n\n/**\n * Implementation of the One-Pass Signature Packets (Tag 4)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.4|RFC4880 5.4}:\n * The One-Pass Signature packet precedes the signed data and contains\n * enough information to allow the receiver to begin calculating any\n * hashes needed to verify the signature. It allows the Signature\n * packet to be placed at the end of the message, so that the signer\n * can compute the entire signed message in one pass.\n */\nclass OnePassSignaturePacket {\n static get tag() {\n return enums.packet.onePassSignature;\n }\n\n static fromSignaturePacket(signaturePacket, isLast) {\n const onePassSig = new OnePassSignaturePacket();\n onePassSig.version = signaturePacket.version === 6 ? 6 : 3;\n onePassSig.signatureType = signaturePacket.signatureType;\n onePassSig.hashAlgorithm = signaturePacket.hashAlgorithm;\n onePassSig.publicKeyAlgorithm = signaturePacket.publicKeyAlgorithm;\n onePassSig.issuerKeyID = signaturePacket.issuerKeyID;\n onePassSig.salt = signaturePacket.salt; // v6 only\n onePassSig.issuerFingerprint = signaturePacket.issuerFingerprint; // v6 only\n\n onePassSig.flags = isLast ? 1 : 0;\n return onePassSig;\n }\n\n constructor() {\n /** A one-octet version number. The current versions are 3 and 6. */\n this.version = null;\n /**\n * A one-octet signature type.\n * Signature types are described in\n * {@link https://tools.ietf.org/html/rfc4880#section-5.2.1|RFC4880 Section 5.2.1}.\n * @type {enums.signature}\n\n */\n this.signatureType = null;\n /**\n * A one-octet number describing the hash algorithm used.\n * @see {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC4880 9.4}\n * @type {enums.hash}\n */\n this.hashAlgorithm = null;\n /**\n * A one-octet number describing the public-key algorithm used.\n * @see {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC4880 9.1}\n * @type {enums.publicKey}\n */\n this.publicKeyAlgorithm = null;\n /** Only for v6, a variable-length field containing the salt. */\n this.salt = null;\n /** Only for v3 packets, an eight-octet number holding the Key ID of the signing key. */\n this.issuerKeyID = null;\n /** Only for v6 packets, 32 octets of the fingerprint of the signing key. */\n this.issuerFingerprint = null;\n /**\n * A one-octet number holding a flag showing whether the signature is nested.\n * A zero value indicates that the next packet is another One-Pass Signature packet\n * that describes another signature to be applied to the same message data.\n */\n this.flags = null;\n }\n\n /**\n * parsing function for a one-pass signature packet (tag 4).\n * @param {Uint8Array} bytes - Payload of a tag 4 packet\n * @returns {OnePassSignaturePacket} Object representation.\n */\n read(bytes) {\n let mypos = 0;\n // A one-octet version number. The current versions are 3 or 6.\n this.version = bytes[mypos++];\n if (this.version !== 3 && this.version !== 6) {\n throw new UnsupportedError(`Version ${this.version} of the one-pass signature packet is unsupported.`);\n }\n\n // A one-octet signature type. Signature types are described in\n // Section 5.2.1.\n this.signatureType = bytes[mypos++];\n\n // A one-octet number describing the hash algorithm used.\n this.hashAlgorithm = bytes[mypos++];\n\n // A one-octet number describing the public-key algorithm used.\n this.publicKeyAlgorithm = bytes[mypos++];\n\n if (this.version === 6) {\n // Only for v6 signatures, a variable-length field containing:\n\n // A one-octet salt size. The value MUST match the value defined\n // for the hash algorithm as specified in Table 23 (Hash algorithm registry).\n // To allow parsing unknown hash algos, we only check the expected salt length when verifying.\n const saltLength = bytes[mypos++];\n\n // The salt; a random value value of the specified size.\n this.salt = bytes.subarray(mypos, mypos + saltLength);\n mypos += saltLength;\n\n // Only for v6 packets, 32 octets of the fingerprint of the signing key.\n this.issuerFingerprint = bytes.subarray(mypos, mypos + 32);\n mypos += 32;\n this.issuerKeyID = new KeyID();\n // For v6 the Key ID is the high-order 64 bits of the fingerprint.\n this.issuerKeyID.read(this.issuerFingerprint);\n } else {\n // Only for v3 packets, an eight-octet number holding the Key ID of the signing key.\n this.issuerKeyID = new KeyID();\n this.issuerKeyID.read(bytes.subarray(mypos, mypos + 8));\n mypos += 8;\n }\n\n // A one-octet number holding a flag showing whether the signature\n // is nested. A zero value indicates that the next packet is\n // another One-Pass Signature packet that describes another\n // signature to be applied to the same message data.\n this.flags = bytes[mypos++];\n return this;\n }\n\n /**\n * creates a string representation of a one-pass signature packet\n * @returns {Uint8Array} A Uint8Array representation of a one-pass signature packet.\n */\n write() {\n const arr = [new Uint8Array([\n this.version,\n this.signatureType,\n this.hashAlgorithm,\n this.publicKeyAlgorithm\n ])];\n if (this.version === 6) {\n arr.push(\n new Uint8Array([this.salt.length]),\n this.salt,\n this.issuerFingerprint\n );\n } else {\n arr.push(this.issuerKeyID.write());\n }\n arr.push(new Uint8Array([this.flags]));\n return util.concatUint8Array(arr);\n }\n\n calculateTrailer(...args) {\n return stream.fromAsync(async () => SignaturePacket.prototype.calculateTrailer.apply(await this.correspondingSig, args));\n }\n\n async verify() {\n const correspondingSig = await this.correspondingSig;\n if (!correspondingSig || correspondingSig.constructor.tag !== enums.packet.signature) {\n throw new Error('Corresponding signature packet missing');\n }\n if (\n correspondingSig.signatureType !== this.signatureType ||\n correspondingSig.hashAlgorithm !== this.hashAlgorithm ||\n correspondingSig.publicKeyAlgorithm !== this.publicKeyAlgorithm ||\n !correspondingSig.issuerKeyID.equals(this.issuerKeyID) ||\n (this.version === 3 && correspondingSig.version === 6) ||\n (this.version === 6 && correspondingSig.version !== 6) ||\n (this.version === 6 && !util.equalsUint8Array(correspondingSig.issuerFingerprint, this.issuerFingerprint)) ||\n (this.version === 6 && !util.equalsUint8Array(correspondingSig.salt, this.salt))\n ) {\n throw new Error('Corresponding signature packet does not match one-pass signature packet');\n }\n correspondingSig.hashed = this.hashed;\n return correspondingSig.verify.apply(correspondingSig, arguments);\n }\n}\n\nOnePassSignaturePacket.prototype.hash = SignaturePacket.prototype.hash;\nOnePassSignaturePacket.prototype.toHash = SignaturePacket.prototype.toHash;\nOnePassSignaturePacket.prototype.toSign = SignaturePacket.prototype.toSign;\n\nexport default OnePassSignaturePacket;\n", "import * as stream from '@openpgp/web-stream-tools';\nimport {\n readPackets, supportsStreaming,\n writeTag, writeHeader,\n writePartialLength, writeSimpleLength,\n UnparseablePacket,\n UnsupportedError,\n UnknownPacketError\n} from './packet';\nimport util from '../util';\nimport enums from '../enums';\nimport defaultConfig from '../config';\n\n/**\n * Instantiate a new packet given its tag\n * @function newPacketFromTag\n * @param {module:enums.packet} tag - Property value from {@link module:enums.packet}\n * @param {Object} allowedPackets - mapping where keys are allowed packet tags, pointing to their Packet class\n * @returns {Object} New packet object with type based on tag\n * @throws {Error|UnsupportedError} for disallowed or unknown packets\n */\nexport function newPacketFromTag(tag, allowedPackets) {\n if (!allowedPackets[tag]) {\n // distinguish between disallowed packets and unknown ones\n let packetType;\n try {\n packetType = enums.read(enums.packet, tag);\n } catch (e) {\n throw new UnknownPacketError(`Unknown packet type with tag: ${tag}`);\n }\n throw new Error(`Packet not allowed in this context: ${packetType}`);\n }\n return new allowedPackets[tag]();\n}\n\n/**\n * This class represents a list of openpgp packets.\n * Take care when iterating over it - the packets themselves\n * are stored as numerical indices.\n * @extends Array\n */\nclass PacketList extends Array {\n /**\n * Parses the given binary data and returns a list of packets.\n * Equivalent to calling `read` on an empty PacketList instance.\n * @param {Uint8Array | ReadableStream} bytes - binary data to parse\n * @param {Object} allowedPackets - mapping where keys are allowed packet tags, pointing to their Packet class\n * @param {Object} [config] - full configuration, defaults to openpgp.config\n * @returns {PacketList} parsed list of packets\n * @throws on parsing errors\n * @async\n */\n static async fromBinary(bytes, allowedPackets, config = defaultConfig) {\n const packets = new PacketList();\n await packets.read(bytes, allowedPackets, config);\n return packets;\n }\n\n /**\n * Reads a stream of binary data and interprets it as a list of packets.\n * @param {Uint8Array | ReadableStream} bytes - binary data to parse\n * @param {Object} allowedPackets - mapping where keys are allowed packet tags, pointing to their Packet class\n * @param {Object} [config] - full configuration, defaults to openpgp.config\n * @throws on parsing errors\n * @async\n */\n async read(bytes, allowedPackets, config = defaultConfig) {\n if (config.additionalAllowedPackets.length) {\n allowedPackets = { ...allowedPackets, ...util.constructAllowedPackets(config.additionalAllowedPackets) };\n }\n this.stream = stream.transformPair(bytes, async (readable, writable) => {\n const writer = stream.getWriter(writable);\n try {\n while (true) {\n await writer.ready;\n const done = await readPackets(readable, async parsed => {\n try {\n if (parsed.tag === enums.packet.marker || parsed.tag === enums.packet.trust || parsed.tag === enums.packet.padding) {\n // According to the spec, these packet types should be ignored and not cause parsing errors, even if not esplicitly allowed:\n // - Marker packets MUST be ignored when received: https://github.com/openpgpjs/openpgpjs/issues/1145\n // - Trust packets SHOULD be ignored outside of keyrings (unsupported): https://datatracker.ietf.org/doc/html/rfc4880#section-5.10\n // - [Padding Packets] MUST be ignored when received: https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#name-padding-packet-tag-21\n return;\n }\n const packet = newPacketFromTag(parsed.tag, allowedPackets);\n packet.packets = new PacketList();\n packet.fromStream = util.isStream(parsed.packet);\n await packet.read(parsed.packet, config);\n await writer.write(packet);\n } catch (e) {\n // If an implementation encounters a critical packet where the packet type is unknown in a packet sequence,\n // it MUST reject the whole packet sequence. On the other hand, an unknown non-critical packet MUST be ignored.\n // Packet Tags from 0 to 39 are critical. Packet Tags from 40 to 63 are non-critical.\n if (e instanceof UnknownPacketError) {\n if (parsed.tag <= 39) {\n await writer.abort(e);\n } else {\n return;\n }\n }\n\n const throwUnsupportedError = !config.ignoreUnsupportedPackets && e instanceof UnsupportedError;\n const throwMalformedError = !config.ignoreMalformedPackets && !(e instanceof UnsupportedError);\n if (throwUnsupportedError || throwMalformedError || supportsStreaming(parsed.tag)) {\n // The packets that support streaming are the ones that contain message data.\n // Those are also the ones we want to be more strict about and throw on parse errors\n // (since we likely cannot process the message without these packets anyway).\n await writer.abort(e);\n } else {\n const unparsedPacket = new UnparseablePacket(parsed.tag, parsed.packet);\n await writer.write(unparsedPacket);\n }\n util.printDebugError(e);\n }\n });\n if (done) {\n await writer.ready;\n await writer.close();\n return;\n }\n }\n } catch (e) {\n await writer.abort(e);\n }\n });\n\n // Wait until first few packets have been read\n const reader = stream.getReader(this.stream);\n while (true) {\n const { done, value } = await reader.read();\n if (!done) {\n this.push(value);\n } else {\n this.stream = null;\n }\n if (done || supportsStreaming(value.constructor.tag)) {\n break;\n }\n }\n reader.releaseLock();\n }\n\n /**\n * Creates a binary representation of openpgp objects contained within the\n * class instance.\n * @returns {Uint8Array} A Uint8Array containing valid openpgp packets.\n */\n write() {\n const arr = [];\n\n for (let i = 0; i < this.length; i++) {\n const tag = this[i] instanceof UnparseablePacket ? this[i].tag : this[i].constructor.tag;\n const packetbytes = this[i].write();\n if (util.isStream(packetbytes) && supportsStreaming(this[i].constructor.tag)) {\n let buffer = [];\n let bufferLength = 0;\n const minLength = 512;\n arr.push(writeTag(tag));\n arr.push(stream.transform(packetbytes, value => {\n buffer.push(value);\n bufferLength += value.length;\n if (bufferLength >= minLength) {\n const powerOf2 = Math.min(Math.log(bufferLength) / Math.LN2 | 0, 30);\n const chunkSize = 2 ** powerOf2;\n const bufferConcat = util.concat([writePartialLength(powerOf2)].concat(buffer));\n buffer = [bufferConcat.subarray(1 + chunkSize)];\n bufferLength = buffer[0].length;\n return bufferConcat.subarray(0, 1 + chunkSize);\n }\n }, () => util.concat([writeSimpleLength(bufferLength)].concat(buffer))));\n } else {\n if (util.isStream(packetbytes)) {\n let length = 0;\n arr.push(stream.transform(stream.clone(packetbytes), value => {\n length += value.length;\n }, () => writeHeader(tag, length)));\n } else {\n arr.push(writeHeader(tag, packetbytes.length));\n }\n arr.push(packetbytes);\n }\n }\n\n return util.concat(arr);\n }\n\n /**\n * Creates a new PacketList with all packets matching the given tag(s)\n * @param {...module:enums.packet} tags - packet tags to look for\n * @returns {PacketList}\n */\n filterByTag(...tags) {\n const filtered = new PacketList();\n\n const handle = tag => packetType => tag === packetType;\n\n for (let i = 0; i < this.length; i++) {\n if (tags.some(handle(this[i].constructor.tag))) {\n filtered.push(this[i]);\n }\n }\n\n return filtered;\n }\n\n /**\n * Traverses packet list and returns first packet with matching tag\n * @param {module:enums.packet} tag - The packet tag\n * @returns {Packet|undefined}\n */\n findPacket(tag) {\n return this.find(packet => packet.constructor.tag === tag);\n }\n\n /**\n * Find indices of packets with the given tag(s)\n * @param {...module:enums.packet} tags - packet tags to look for\n * @returns {Integer[]} packet indices\n */\n indexOfTag(...tags) {\n const tagIndex = [];\n const that = this;\n\n const handle = tag => packetType => tag === packetType;\n\n for (let i = 0; i < this.length; i++) {\n if (tags.some(handle(that[i].constructor.tag))) {\n tagIndex.push(i);\n }\n }\n return tagIndex;\n }\n}\n\nexport default PacketList;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { Inflate, Deflate, Zlib, Unzlib } from 'fflate';\nimport * as stream from '@openpgp/web-stream-tools';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\n\nimport LiteralDataPacket from './literal_data';\nimport OnePassSignaturePacket from './one_pass_signature';\nimport SignaturePacket from './signature';\nimport PacketList from './packetlist';\n\n// A Compressed Data packet can contain the following packet types\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([\n LiteralDataPacket,\n OnePassSignaturePacket,\n SignaturePacket\n]);\n\n/**\n * Implementation of the Compressed Data Packet (Tag 8)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.6|RFC4880 5.6}:\n * The Compressed Data packet contains compressed data. Typically,\n * this packet is found as the contents of an encrypted packet, or following\n * a Signature or One-Pass Signature packet, and contains a literal data packet.\n */\nclass CompressedDataPacket {\n static get tag() {\n return enums.packet.compressedData;\n }\n\n /**\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(config = defaultConfig) {\n /**\n * List of packets\n * @type {PacketList}\n */\n this.packets = null;\n /**\n * Compression algorithm\n * @type {enums.compression}\n */\n this.algorithm = config.preferredCompressionAlgorithm;\n\n /**\n * Compressed packet data\n * @type {Uint8Array | ReadableStream}\n */\n this.compressed = null;\n }\n\n /**\n * Parsing function for the packet.\n * @param {Uint8Array | ReadableStream} bytes - Payload of a tag 8 packet\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n async read(bytes, config = defaultConfig) {\n await stream.parse(bytes, async reader => {\n\n // One octet that gives the algorithm used to compress the packet.\n this.algorithm = await reader.readByte();\n\n // Compressed data, which makes up the remainder of the packet.\n this.compressed = reader.remainder();\n\n await this.decompress(config);\n });\n }\n\n\n /**\n * Return the compressed packet.\n * @returns {Uint8Array | ReadableStream} Binary compressed packet.\n */\n write() {\n if (this.compressed === null) {\n this.compress();\n }\n\n return util.concat([new Uint8Array([this.algorithm]), this.compressed]);\n }\n\n\n /**\n * Decompression method for decompressing the compressed data\n * read by read_packet\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n async decompress(config = defaultConfig) {\n const compressionName = enums.read(enums.compression, this.algorithm);\n const decompressionFn = decompress_fns[compressionName]; // bzip decompression is async\n if (!decompressionFn) {\n throw new Error(`${compressionName} decompression not supported`);\n }\n\n this.packets = await PacketList.fromBinary(await decompressionFn(this.compressed), allowedPackets, config);\n }\n\n /**\n * Compress the packet data (member decompressedData)\n */\n compress() {\n const compressionName = enums.read(enums.compression, this.algorithm);\n const compressionFn = compress_fns[compressionName];\n if (!compressionFn) {\n throw new Error(`${compressionName} compression not supported`);\n }\n\n this.compressed = compressionFn(this.packets.write());\n }\n}\n\nexport default CompressedDataPacket;\n\n//////////////////////////\n// //\n// Helper functions //\n// //\n//////////////////////////\n\n/**\n * Zlib processor relying on Compression Stream API if available, or falling back to fflate otherwise.\n * @param {function(): CompressionStream|function(): DecompressionStream} compressionStreamInstantiator\n * @param {FunctionConstructor} ZlibStreamedConstructor - fflate constructor\n * @returns {ReadableStream} compressed or decompressed data\n */\nfunction zlib(compressionStreamInstantiator, ZlibStreamedConstructor) {\n return data => {\n if (!util.isStream(data) || stream.isArrayStream(data)) {\n return stream.fromAsync(() => stream.readToEnd(data).then(inputData => {\n return new Promise((resolve, reject) => {\n const zlibStream = new ZlibStreamedConstructor();\n zlibStream.ondata = processedData => {\n resolve(processedData);\n };\n try {\n zlibStream.push(inputData, true); // only one chunk to push\n } catch (err) {\n reject(err);\n }\n });\n }));\n }\n\n // Use Compression Streams API if available (see https://developer.mozilla.org/en-US/docs/Web/API/Compression_Streams_API)\n if (compressionStreamInstantiator) {\n try {\n const compressorOrDecompressor = compressionStreamInstantiator();\n return data.pipeThrough(compressorOrDecompressor);\n } catch (err) {\n // If format is unsupported in Compression/DecompressionStream, then a TypeError in thrown, and we fallback to fflate.\n if (err.name !== 'TypeError') {\n throw err;\n }\n }\n }\n\n // JS fallback\n const inputReader = data.getReader();\n const zlibStream = new ZlibStreamedConstructor();\n\n return new ReadableStream({\n async start(controller) {\n zlibStream.ondata = async (value, isLast) => {\n controller.enqueue(value);\n if (isLast) {\n controller.close();\n }\n };\n\n while (true) {\n const { done, value } = await inputReader.read();\n if (done) {\n zlibStream.push(new Uint8Array(), true);\n return;\n } else if (value.length) {\n zlibStream.push(value);\n }\n }\n }\n });\n };\n}\n\nfunction bzip2Decompress() {\n return async function(data) {\n const { decode: bunzipDecode } = await import('@openpgp/seek-bzip');\n return stream.fromAsync(async () => bunzipDecode(await stream.readToEnd(data)));\n };\n}\n\n/**\n * Get Compression Stream API instatiators if the constructors are implemented.\n * NB: the return instatiator functions will throw when called if the provided `compressionFormat` is not supported\n * (supported formats cannot be determined in advance).\n * @param {'deflate-raw'|'deflate'|'gzip'|string} compressionFormat\n * @returns {{ compressor: function(): CompressionStream | false, decompressor: function(): DecompressionStream | false }}\n */\nconst getCompressionStreamInstantiators = compressionFormat => ({\n compressor: typeof CompressionStream !== 'undefined' && (() => new CompressionStream(compressionFormat)),\n decompressor: typeof DecompressionStream !== 'undefined' && (() => new DecompressionStream(compressionFormat))\n});\n\nconst compress_fns = {\n zip: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate-raw').compressor, Deflate),\n zlib: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate').compressor, Zlib)\n};\n\nconst decompress_fns = {\n uncompressed: data => data,\n zip: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate-raw').decompressor, Inflate),\n zlib: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate').decompressor, Unzlib),\n bzip2: /*#__PURE__*/ bzip2Decompress() // NB: async due to dynamic lib import\n};\n\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport crypto from '../crypto';\nimport computeHKDF from '../crypto/hkdf';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\n\nimport LiteralDataPacket from './literal_data';\nimport CompressedDataPacket from './compressed_data';\nimport OnePassSignaturePacket from './one_pass_signature';\nimport SignaturePacket from './signature';\nimport PacketList from './packetlist';\nimport { UnsupportedError } from './packet';\n\n// A SEIP packet can contain the following packet types\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([\n LiteralDataPacket,\n CompressedDataPacket,\n OnePassSignaturePacket,\n SignaturePacket\n]);\n\n/**\n * Implementation of the Sym. Encrypted Integrity Protected Data Packet (Tag 18)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.13|RFC4880 5.13}:\n * The Symmetrically Encrypted Integrity Protected Data packet is\n * a variant of the Symmetrically Encrypted Data packet. It is a new feature\n * created for OpenPGP that addresses the problem of detecting a modification to\n * encrypted data. It is used in combination with a Modification Detection Code\n * packet.\n */\nclass SymEncryptedIntegrityProtectedDataPacket {\n static get tag() {\n return enums.packet.symEncryptedIntegrityProtectedData;\n }\n\n static fromObject({ version, aeadAlgorithm }) {\n if (version !== 1 && version !== 2) {\n throw new Error('Unsupported SEIPD version');\n }\n\n const seip = new SymEncryptedIntegrityProtectedDataPacket();\n seip.version = version;\n if (version === 2) {\n seip.aeadAlgorithm = aeadAlgorithm;\n }\n\n return seip;\n }\n\n constructor() {\n this.version = null;\n\n // The following 4 fields are for V2 only.\n /** @type {enums.symmetric} */\n this.cipherAlgorithm = null;\n /** @type {enums.aead} */\n this.aeadAlgorithm = null;\n this.chunkSizeByte = null;\n this.salt = null;\n\n this.encrypted = null;\n this.packets = null;\n }\n\n async read(bytes) {\n await stream.parse(bytes, async reader => {\n this.version = await reader.readByte();\n // - A one-octet version number with value 1 or 2.\n if (this.version !== 1 && this.version !== 2) {\n throw new UnsupportedError(`Version ${this.version} of the SEIP packet is unsupported.`);\n }\n\n if (this.version === 2) {\n // - A one-octet cipher algorithm.\n this.cipherAlgorithm = await reader.readByte();\n // - A one-octet AEAD algorithm.\n this.aeadAlgorithm = await reader.readByte();\n // - A one-octet chunk size.\n this.chunkSizeByte = await reader.readByte();\n // - Thirty-two octets of salt. The salt is used to derive the message key and must be unique.\n this.salt = await reader.readBytes(32);\n }\n\n // For V1:\n // - Encrypted data, the output of the selected symmetric-key cipher\n // operating in Cipher Feedback mode with shift amount equal to the\n // block size of the cipher (CFB-n where n is the block size).\n // For V2:\n // - Encrypted data, the output of the selected symmetric-key cipher operating in the given AEAD mode.\n // - A final, summary authentication tag for the AEAD mode.\n this.encrypted = reader.remainder();\n });\n }\n\n write() {\n if (this.version === 2) {\n return util.concat([new Uint8Array([this.version, this.cipherAlgorithm, this.aeadAlgorithm, this.chunkSizeByte]), this.salt, this.encrypted]);\n }\n return util.concat([new Uint8Array([this.version]), this.encrypted]);\n }\n\n /**\n * Encrypt the payload in the packet.\n * @param {enums.symmetric} sessionKeyAlgorithm - The symmetric encryption algorithm to use\n * @param {Uint8Array} key - The key of cipher blocksize length to be used\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise}\n * @throws {Error} on encryption failure\n * @async\n */\n async encrypt(sessionKeyAlgorithm, key, config = defaultConfig) {\n // We check that the session key size matches the one expected by the symmetric algorithm.\n // This is especially important for SEIPDv2 session keys, as a key derivation step is run where the resulting key will always match the expected cipher size,\n // but we want to ensure that the input key isn't e.g. too short.\n // The check is done here, instead of on encrypted session key (ESK) encryption, because v6 ESK packets do not store the session key algorithm,\n // which is instead included in the SEIPDv2 data.\n const { blockSize, keySize } = crypto.getCipherParams(sessionKeyAlgorithm);\n if (key.length !== keySize) {\n throw new Error('Unexpected session key size');\n }\n\n let bytes = this.packets.write();\n if (stream.isArrayStream(bytes)) bytes = await stream.readToEnd(bytes);\n\n if (this.version === 2) {\n this.cipherAlgorithm = sessionKeyAlgorithm;\n\n this.salt = crypto.random.getRandomBytes(32);\n this.chunkSizeByte = config.aeadChunkSizeByte;\n this.encrypted = await runAEAD(this, 'encrypt', key, bytes);\n } else {\n const prefix = await crypto.getPrefixRandom(sessionKeyAlgorithm);\n const mdc = new Uint8Array([0xD3, 0x14]); // modification detection code packet\n\n const tohash = util.concat([prefix, bytes, mdc]);\n const hash = await crypto.hash.sha1(stream.passiveClone(tohash));\n const plaintext = util.concat([tohash, hash]);\n\n this.encrypted = await crypto.mode.cfb.encrypt(sessionKeyAlgorithm, key, plaintext, new Uint8Array(blockSize), config);\n }\n return true;\n }\n\n /**\n * Decrypts the encrypted data contained in the packet.\n * @param {enums.symmetric} sessionKeyAlgorithm - The selected symmetric encryption algorithm to be used\n * @param {Uint8Array} key - The key of cipher blocksize length to be used\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise}\n * @throws {Error} on decryption failure\n * @async\n */\n async decrypt(sessionKeyAlgorithm, key, config = defaultConfig) {\n // We check that the session key size matches the one expected by the symmetric algorithm.\n // This is especially important for SEIPDv2 session keys, as a key derivation step is run where the resulting key will always match the expected cipher size,\n // but we want to ensure that the input key isn't e.g. too short.\n // The check is done here, instead of on encrypted session key (ESK) decryption, because v6 ESK packets do not store the session key algorithm,\n // which is instead included in the SEIPDv2 data.\n if (key.length !== crypto.getCipherParams(sessionKeyAlgorithm).keySize) {\n throw new Error('Unexpected session key size');\n }\n\n let encrypted = stream.clone(this.encrypted);\n if (stream.isArrayStream(encrypted)) encrypted = await stream.readToEnd(encrypted);\n\n let packetbytes;\n if (this.version === 2) {\n if (this.cipherAlgorithm !== sessionKeyAlgorithm) {\n // sanity check\n throw new Error('Unexpected session key algorithm');\n }\n packetbytes = await runAEAD(this, 'decrypt', key, encrypted);\n } else {\n const { blockSize } = crypto.getCipherParams(sessionKeyAlgorithm);\n const decrypted = await crypto.mode.cfb.decrypt(sessionKeyAlgorithm, key, encrypted, new Uint8Array(blockSize));\n\n // there must be a modification detection code packet as the\n // last packet and everything gets hashed except the hash itself\n const realHash = stream.slice(stream.passiveClone(decrypted), -20);\n const tohash = stream.slice(decrypted, 0, -20);\n const verifyHash = Promise.all([\n stream.readToEnd(await crypto.hash.sha1(stream.passiveClone(tohash))),\n stream.readToEnd(realHash)\n ]).then(([hash, mdc]) => {\n if (!util.equalsUint8Array(hash, mdc)) {\n throw new Error('Modification detected.');\n }\n return new Uint8Array();\n });\n const bytes = stream.slice(tohash, blockSize + 2); // Remove random prefix\n packetbytes = stream.slice(bytes, 0, -2); // Remove MDC packet\n packetbytes = stream.concat([packetbytes, stream.fromAsync(() => verifyHash)]);\n if (!util.isStream(encrypted) || !config.allowUnauthenticatedStream) {\n packetbytes = await stream.readToEnd(packetbytes);\n }\n }\n\n this.packets = await PacketList.fromBinary(packetbytes, allowedPackets, config);\n return true;\n }\n}\n\nexport default SymEncryptedIntegrityProtectedDataPacket;\n\n/**\n * En/decrypt the payload.\n * @param {encrypt|decrypt} fn - Whether to encrypt or decrypt\n * @param {Uint8Array} key - The session key used to en/decrypt the payload\n * @param {Uint8Array | ReadableStream} data - The data to en/decrypt\n * @returns {Promise>}\n * @async\n */\nexport async function runAEAD(packet, fn, key, data) {\n const isSEIPDv2 = packet instanceof SymEncryptedIntegrityProtectedDataPacket && packet.version === 2;\n const isAEADP = !isSEIPDv2 && packet.constructor.tag === enums.packet.aeadEncryptedData; // no `instanceof` to avoid importing the corresponding class (circular import)\n if (!isSEIPDv2 && !isAEADP) throw new Error('Unexpected packet type');\n\n const mode = crypto.getAEADMode(packet.aeadAlgorithm);\n const tagLengthIfDecrypting = fn === 'decrypt' ? mode.tagLength : 0;\n const tagLengthIfEncrypting = fn === 'encrypt' ? mode.tagLength : 0;\n const chunkSize = 2 ** (packet.chunkSizeByte + 6) + tagLengthIfDecrypting; // ((uint64_t)1 << (c + 6))\n const chunkIndexSizeIfAEADEP = isAEADP ? 8 : 0;\n const adataBuffer = new ArrayBuffer(13 + chunkIndexSizeIfAEADEP);\n const adataArray = new Uint8Array(adataBuffer, 0, 5 + chunkIndexSizeIfAEADEP);\n const adataTagArray = new Uint8Array(adataBuffer);\n const adataView = new DataView(adataBuffer);\n const chunkIndexArray = new Uint8Array(adataBuffer, 5, 8);\n adataArray.set([0xC0 | packet.constructor.tag, packet.version, packet.cipherAlgorithm, packet.aeadAlgorithm, packet.chunkSizeByte], 0);\n let chunkIndex = 0;\n let latestPromise = Promise.resolve();\n let cryptedBytes = 0;\n let queuedBytes = 0;\n let iv;\n let ivView;\n if (isSEIPDv2) {\n const { keySize } = crypto.getCipherParams(packet.cipherAlgorithm);\n const { ivLength } = mode;\n const info = new Uint8Array(adataBuffer, 0, 5);\n const derived = await computeHKDF(enums.hash.sha256, key, packet.salt, info, keySize + ivLength);\n key = derived.subarray(0, keySize);\n iv = derived.subarray(keySize); // The last 8 bytes of HKDF output are unneeded, but this avoids one copy.\n iv.fill(0, iv.length - 8);\n ivView = new DataView(iv.buffer, iv.byteOffset, iv.byteLength);\n } else { // AEADEncryptedDataPacket\n iv = packet.iv;\n // ivView is unused in this case\n }\n const modeInstance = await mode(packet.cipherAlgorithm, key);\n return stream.transformPair(data, async (readable, writable) => {\n if (util.isStream(readable) !== 'array') {\n const buffer = new TransformStream({}, {\n highWaterMark: util.getHardwareConcurrency() * 2 ** (packet.chunkSizeByte + 6),\n size: array => array.length\n });\n stream.pipe(buffer.readable, writable);\n writable = buffer.writable;\n }\n const reader = stream.getReader(readable);\n const writer = stream.getWriter(writable);\n try {\n while (true) {\n let chunk = await reader.readBytes(chunkSize + tagLengthIfDecrypting) || new Uint8Array();\n const finalChunk = chunk.subarray(chunk.length - tagLengthIfDecrypting);\n chunk = chunk.subarray(0, chunk.length - tagLengthIfDecrypting);\n let cryptedPromise;\n let done;\n let nonce;\n if (isSEIPDv2) { // SEIPD V2\n nonce = iv;\n } else { // AEADEncryptedDataPacket\n nonce = iv.slice();\n for (let i = 0; i < 8; i++) {\n nonce[iv.length - 8 + i] ^= chunkIndexArray[i];\n }\n }\n if (!chunkIndex || chunk.length) {\n reader.unshift(finalChunk);\n cryptedPromise = modeInstance[fn](chunk, nonce, adataArray);\n cryptedPromise.catch(() => {});\n queuedBytes += chunk.length - tagLengthIfDecrypting + tagLengthIfEncrypting;\n } else {\n // After the last chunk, we either encrypt a final, empty\n // data chunk to get the final authentication tag or\n // validate that final authentication tag.\n adataView.setInt32(5 + chunkIndexSizeIfAEADEP + 4, cryptedBytes); // Should be setInt64(5 + chunkIndexSizeIfAEADEP, ...)\n cryptedPromise = modeInstance[fn](finalChunk, nonce, adataTagArray);\n cryptedPromise.catch(() => {});\n queuedBytes += tagLengthIfEncrypting;\n done = true;\n }\n cryptedBytes += chunk.length - tagLengthIfDecrypting;\n // eslint-disable-next-line @typescript-eslint/no-loop-func\n latestPromise = latestPromise.then(() => cryptedPromise).then(async crypted => {\n await writer.ready;\n await writer.write(crypted);\n queuedBytes -= crypted.length;\n }).catch(err => writer.abort(err));\n if (done || queuedBytes > writer.desiredSize) {\n await latestPromise; // Respect backpressure\n }\n if (!done) {\n if (isSEIPDv2) { // SEIPD V2\n ivView.setInt32(iv.length - 4, ++chunkIndex); // Should be setInt64(iv.length - 8, ...)\n } else { // AEADEncryptedDataPacket\n adataView.setInt32(5 + 4, ++chunkIndex); // Should be setInt64(5, ...)\n }\n } else {\n await writer.close();\n break;\n }\n }\n } catch (e) {\n await writer.ready.catch(() => {});\n await writer.abort(e);\n }\n });\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2016 Tankred Hase\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport crypto from '../crypto';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\nimport { UnsupportedError } from './packet';\nimport { runAEAD } from './sym_encrypted_integrity_protected_data';\n\nimport LiteralDataPacket from './literal_data';\nimport CompressedDataPacket from './compressed_data';\nimport OnePassSignaturePacket from './one_pass_signature';\nimport SignaturePacket from './signature';\nimport PacketList from './packetlist';\n\n// An AEAD-encrypted Data packet can contain the following packet types\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([\n LiteralDataPacket,\n CompressedDataPacket,\n OnePassSignaturePacket,\n SignaturePacket\n]);\n\nconst VERSION = 1; // A one-octet version number of the data packet.\n\n/**\n * Implementation of the Symmetrically Encrypted Authenticated Encryption with\n * Additional Data (AEAD) Protected Data Packet\n *\n * {@link https://tools.ietf.org/html/draft-ford-openpgp-format-00#section-2.1}:\n * AEAD Protected Data Packet\n */\nclass AEADEncryptedDataPacket {\n static get tag() {\n return enums.packet.aeadEncryptedData;\n }\n\n constructor() {\n this.version = VERSION;\n /** @type {enums.symmetric} */\n this.cipherAlgorithm = null;\n /** @type {enums.aead} */\n this.aeadAlgorithm = enums.aead.eax;\n this.chunkSizeByte = null;\n this.iv = null;\n this.encrypted = null;\n this.packets = null;\n }\n\n /**\n * Parse an encrypted payload of bytes in the order: version, IV, ciphertext (see specification)\n * @param {Uint8Array | ReadableStream} bytes\n * @throws {Error} on parsing failure\n */\n async read(bytes) {\n await stream.parse(bytes, async reader => {\n const version = await reader.readByte();\n if (version !== VERSION) { // The only currently defined value is 1.\n throw new UnsupportedError(`Version ${version} of the AEAD-encrypted data packet is not supported.`);\n }\n this.cipherAlgorithm = await reader.readByte();\n this.aeadAlgorithm = await reader.readByte();\n this.chunkSizeByte = await reader.readByte();\n\n const mode = crypto.getAEADMode(this.aeadAlgorithm);\n this.iv = await reader.readBytes(mode.ivLength);\n this.encrypted = reader.remainder();\n });\n }\n\n /**\n * Write the encrypted payload of bytes in the order: version, IV, ciphertext (see specification)\n * @returns {Uint8Array | ReadableStream} The encrypted payload.\n */\n write() {\n return util.concat([new Uint8Array([this.version, this.cipherAlgorithm, this.aeadAlgorithm, this.chunkSizeByte]), this.iv, this.encrypted]);\n }\n\n /**\n * Decrypt the encrypted payload.\n * @param {enums.symmetric} sessionKeyAlgorithm - The session key's cipher algorithm\n * @param {Uint8Array} key - The session key used to encrypt the payload\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if decryption was not successful\n * @async\n */\n async decrypt(sessionKeyAlgorithm, key, config = defaultConfig) {\n this.packets = await PacketList.fromBinary(\n await runAEAD(this, 'decrypt', key, stream.clone(this.encrypted)),\n allowedPackets,\n config\n );\n }\n\n /**\n * Encrypt the packet payload.\n * @param {enums.symmetric} sessionKeyAlgorithm - The session key's cipher algorithm\n * @param {Uint8Array} key - The session key used to encrypt the payload\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if encryption was not successful\n * @async\n */\n async encrypt(sessionKeyAlgorithm, key, config = defaultConfig) {\n this.cipherAlgorithm = sessionKeyAlgorithm;\n\n const { ivLength } = crypto.getAEADMode(this.aeadAlgorithm);\n this.iv = crypto.random.getRandomBytes(ivLength); // generate new random IV\n this.chunkSizeByte = config.aeadChunkSizeByte;\n const data = this.packets.write();\n this.encrypted = await runAEAD(this, 'encrypt', key, data);\n }\n}\n\nexport default AEADEncryptedDataPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport KeyID from '../type/keyid';\nimport crypto from '../crypto';\nimport enums from '../enums';\nimport util from '../util';\nimport { UnsupportedError } from './packet';\n\n/**\n * Public-Key Encrypted Session Key Packets (Tag 1)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.1|RFC4880 5.1}:\n * A Public-Key Encrypted Session Key packet holds the session key\n * used to encrypt a message. Zero or more Public-Key Encrypted Session Key\n * packets and/or Symmetric-Key Encrypted Session Key packets may precede a\n * Symmetrically Encrypted Data Packet, which holds an encrypted message. The\n * message is encrypted with the session key, and the session key is itself\n * encrypted and stored in the Encrypted Session Key packet(s). The\n * Symmetrically Encrypted Data Packet is preceded by one Public-Key Encrypted\n * Session Key packet for each OpenPGP key to which the message is encrypted.\n * The recipient of the message finds a session key that is encrypted to their\n * public key, decrypts the session key, and then uses the session key to\n * decrypt the message.\n */\nclass PublicKeyEncryptedSessionKeyPacket {\n static get tag() {\n return enums.packet.publicKeyEncryptedSessionKey;\n }\n\n constructor() {\n this.version = null;\n\n // For version 3, but also used internally by v6 in e.g. `getEncryptionKeyIDs()`\n this.publicKeyID = new KeyID();\n\n // For version 6:\n this.publicKeyVersion = null;\n this.publicKeyFingerprint = null;\n\n // For all versions:\n this.publicKeyAlgorithm = null;\n\n this.sessionKey = null;\n /**\n * Algorithm to encrypt the message with\n * @type {enums.symmetric}\n */\n this.sessionKeyAlgorithm = null;\n\n /** @type {Object} */\n this.encrypted = {};\n }\n\n static fromObject({\n version, encryptionKeyPacket, anonymousRecipient, sessionKey, sessionKeyAlgorithm\n }) {\n const pkesk = new PublicKeyEncryptedSessionKeyPacket();\n\n if (version !== 3 && version !== 6) {\n throw new Error('Unsupported PKESK version');\n }\n\n pkesk.version = version;\n\n if (version === 6) {\n pkesk.publicKeyVersion = anonymousRecipient ? null : encryptionKeyPacket.version;\n pkesk.publicKeyFingerprint = anonymousRecipient ? null : encryptionKeyPacket.getFingerprintBytes();\n }\n\n pkesk.publicKeyID = anonymousRecipient ? KeyID.wildcard() : encryptionKeyPacket.getKeyID();\n pkesk.publicKeyAlgorithm = encryptionKeyPacket.algorithm;\n pkesk.sessionKey = sessionKey;\n pkesk.sessionKeyAlgorithm = sessionKeyAlgorithm;\n\n return pkesk;\n }\n\n /**\n * Parsing function for a publickey encrypted session key packet (tag 1).\n *\n * @param {Uint8Array} bytes - Payload of a tag 1 packet\n */\n read(bytes) {\n let offset = 0;\n this.version = bytes[offset++];\n if (this.version !== 3 && this.version !== 6) {\n throw new UnsupportedError(`Version ${this.version} of the PKESK packet is unsupported.`);\n }\n if (this.version === 6) {\n // A one-octet size of the following two fields:\n // - A one octet key version number.\n // - The fingerprint of the public key or subkey to which the session key is encrypted.\n // The size may also be zero.\n const versionAndFingerprintLength = bytes[offset++];\n if (versionAndFingerprintLength) {\n this.publicKeyVersion = bytes[offset++];\n const fingerprintLength = versionAndFingerprintLength - 1;\n this.publicKeyFingerprint = bytes.subarray(offset, offset + fingerprintLength); offset += fingerprintLength;\n if (this.publicKeyVersion >= 5) {\n // For v5/6 the Key ID is the high-order 64 bits of the fingerprint.\n this.publicKeyID.read(this.publicKeyFingerprint);\n } else {\n // For v4 The Key ID is the low-order 64 bits of the fingerprint.\n this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8));\n }\n } else {\n // The size may also be zero, and the key version and\n // fingerprint omitted for an \"anonymous recipient\"\n this.publicKeyID = KeyID.wildcard();\n }\n } else {\n offset += this.publicKeyID.read(bytes.subarray(offset, offset + 8));\n }\n this.publicKeyAlgorithm = bytes[offset++];\n this.encrypted = crypto.parseEncSessionKeyParams(this.publicKeyAlgorithm, bytes.subarray(offset));\n if (this.publicKeyAlgorithm === enums.publicKey.x25519 || this.publicKeyAlgorithm === enums.publicKey.x448) {\n if (this.version === 3) {\n this.sessionKeyAlgorithm = enums.write(enums.symmetric, this.encrypted.C.algorithm);\n } else if (this.encrypted.C.algorithm !== null) {\n throw new Error('Unexpected cleartext symmetric algorithm');\n }\n }\n }\n\n /**\n * Create a binary representation of a tag 1 packet\n *\n * @returns {Uint8Array} The Uint8Array representation.\n */\n write() {\n const arr = [\n new Uint8Array([this.version])\n ];\n\n if (this.version === 6) {\n if (this.publicKeyFingerprint !== null) {\n arr.push(new Uint8Array([\n this.publicKeyFingerprint.length + 1,\n this.publicKeyVersion]\n ));\n arr.push(this.publicKeyFingerprint);\n } else {\n arr.push(new Uint8Array([0]));\n }\n } else {\n arr.push(this.publicKeyID.write());\n }\n\n arr.push(\n new Uint8Array([this.publicKeyAlgorithm]),\n crypto.serializeParams(this.publicKeyAlgorithm, this.encrypted)\n );\n\n return util.concatUint8Array(arr);\n }\n\n /**\n * Encrypt session key packet\n * @param {PublicKeyPacket} key - Public key\n * @throws {Error} if encryption failed\n * @async\n */\n async encrypt(key) {\n const algo = enums.write(enums.publicKey, this.publicKeyAlgorithm);\n // No symmetric encryption algorithm identifier is passed to the public-key algorithm for a\n // v6 PKESK packet, as it is included in the v2 SEIPD packet.\n const sessionKeyAlgorithm = this.version === 3 ? this.sessionKeyAlgorithm : null;\n const fingerprint = key.version === 5 ? key.getFingerprintBytes().subarray(0, 20) : key.getFingerprintBytes();\n const encoded = encodeSessionKey(this.version, algo, sessionKeyAlgorithm, this.sessionKey);\n this.encrypted = await crypto.publicKeyEncrypt(\n algo, sessionKeyAlgorithm, key.publicParams, encoded, fingerprint);\n }\n\n /**\n * Decrypts the session key (only for public key encrypted session key packets (tag 1)\n * @param {SecretKeyPacket} key - decrypted private key\n * @param {Object} [randomSessionKey] - Bogus session key to use in case of sensitive decryption error, or if the decrypted session key is of a different type/size.\n * This is needed for constant-time processing. Expected object of the form: { sessionKey: Uint8Array, sessionKeyAlgorithm: enums.symmetric }\n * @throws {Error} if decryption failed, unless `randomSessionKey` is given\n * @async\n */\n async decrypt(key, randomSessionKey) {\n // check that session key algo matches the secret key algo\n if (this.publicKeyAlgorithm !== key.algorithm) {\n throw new Error('Decryption error');\n }\n\n const randomPayload = randomSessionKey ?\n encodeSessionKey(this.version, this.publicKeyAlgorithm, randomSessionKey.sessionKeyAlgorithm, randomSessionKey.sessionKey) :\n null;\n const fingerprint = key.version === 5 ? key.getFingerprintBytes().subarray(0, 20) : key.getFingerprintBytes();\n const decryptedData = await crypto.publicKeyDecrypt(this.publicKeyAlgorithm, key.publicParams, key.privateParams, this.encrypted, fingerprint, randomPayload);\n\n const { sessionKey, sessionKeyAlgorithm } = decodeSessionKey(this.version, this.publicKeyAlgorithm, decryptedData, randomSessionKey);\n\n if (this.version === 3) {\n // v3 Montgomery curves have cleartext cipher algo\n const hasEncryptedAlgo = this.publicKeyAlgorithm !== enums.publicKey.x25519 && this.publicKeyAlgorithm !== enums.publicKey.x448;\n this.sessionKeyAlgorithm = hasEncryptedAlgo ? sessionKeyAlgorithm : this.sessionKeyAlgorithm;\n\n if (sessionKey.length !== crypto.getCipherParams(this.sessionKeyAlgorithm).keySize) {\n throw new Error('Unexpected session key size');\n }\n }\n this.sessionKey = sessionKey;\n }\n}\n\nexport default PublicKeyEncryptedSessionKeyPacket;\n\n\nfunction encodeSessionKey(version, keyAlgo, cipherAlgo, sessionKeyData) {\n switch (keyAlgo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.elgamal:\n case enums.publicKey.ecdh:\n // add checksum\n return util.concatUint8Array([\n new Uint8Array(version === 6 ? [] : [cipherAlgo]),\n sessionKeyData,\n util.writeChecksum(sessionKeyData.subarray(sessionKeyData.length % 8))\n ]);\n case enums.publicKey.x25519:\n case enums.publicKey.x448:\n return sessionKeyData;\n default:\n throw new Error('Unsupported public key algorithm');\n }\n}\n\n\nfunction decodeSessionKey(version, keyAlgo, decryptedData, randomSessionKey) {\n switch (keyAlgo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.elgamal:\n case enums.publicKey.ecdh: {\n // verify checksum in constant time\n const result = decryptedData.subarray(0, decryptedData.length - 2);\n const checksum = decryptedData.subarray(decryptedData.length - 2);\n const computedChecksum = util.writeChecksum(result.subarray(result.length % 8));\n const isValidChecksum = computedChecksum[0] === checksum[0] & computedChecksum[1] === checksum[1];\n const decryptedSessionKey = version === 6 ?\n { sessionKeyAlgorithm: null, sessionKey: result } :\n { sessionKeyAlgorithm: result[0], sessionKey: result.subarray(1) };\n if (randomSessionKey) {\n // We must not leak info about the validity of the decrypted checksum or cipher algo.\n // The decrypted session key must be of the same algo and size as the random session key, otherwise we discard it and use the random data.\n const isValidPayload = isValidChecksum &\n decryptedSessionKey.sessionKeyAlgorithm === randomSessionKey.sessionKeyAlgorithm &\n decryptedSessionKey.sessionKey.length === randomSessionKey.sessionKey.length;\n return {\n sessionKey: util.selectUint8Array(isValidPayload, decryptedSessionKey.sessionKey, randomSessionKey.sessionKey),\n sessionKeyAlgorithm: version === 6 ? null : util.selectUint8(\n isValidPayload,\n decryptedSessionKey.sessionKeyAlgorithm,\n randomSessionKey.sessionKeyAlgorithm\n )\n };\n } else {\n const isValidPayload = isValidChecksum && (\n version === 6 || enums.read(enums.symmetric, decryptedSessionKey.sessionKeyAlgorithm));\n if (isValidPayload) {\n return decryptedSessionKey;\n } else {\n throw new Error('Decryption error');\n }\n }\n }\n case enums.publicKey.x25519:\n case enums.publicKey.x448:\n return {\n sessionKeyAlgorithm: null,\n sessionKey: decryptedData\n };\n default:\n throw new Error('Unsupported public key algorithm');\n }\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { newS2KFromConfig, newS2KFromType } from '../type/s2k';\nimport defaultConfig from '../config';\nimport crypto from '../crypto';\nimport computeHKDF from '../crypto/hkdf';\nimport enums from '../enums';\nimport util from '../util';\nimport { UnsupportedError } from './packet';\n\n/**\n * Symmetric-Key Encrypted Session Key Packets (Tag 3)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.3|RFC4880 5.3}:\n * The Symmetric-Key Encrypted Session Key packet holds the\n * symmetric-key encryption of a session key used to encrypt a message.\n * Zero or more Public-Key Encrypted Session Key packets and/or\n * Symmetric-Key Encrypted Session Key packets may precede a\n * Symmetrically Encrypted Data packet that holds an encrypted message.\n * The message is encrypted with a session key, and the session key is\n * itself encrypted and stored in the Encrypted Session Key packet or\n * the Symmetric-Key Encrypted Session Key packet.\n */\nclass SymEncryptedSessionKeyPacket {\n static get tag() {\n return enums.packet.symEncryptedSessionKey;\n }\n\n /**\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(config = defaultConfig) {\n this.version = config.aeadProtect ? 6 : 4;\n this.sessionKey = null;\n /**\n * Algorithm to encrypt the session key with\n * @type {enums.symmetric}\n */\n this.sessionKeyEncryptionAlgorithm = null;\n /**\n * Algorithm to encrypt the message with\n * @type {enums.symmetric}\n */\n this.sessionKeyAlgorithm = null;\n /**\n * AEAD mode to encrypt the session key with (if AEAD protection is enabled)\n * @type {enums.aead}\n */\n this.aeadAlgorithm = enums.write(enums.aead, config.preferredAEADAlgorithm);\n this.encrypted = null;\n this.s2k = null;\n this.iv = null;\n }\n\n /**\n * Parsing function for a symmetric encrypted session key packet (tag 3).\n *\n * @param {Uint8Array} bytes - Payload of a tag 3 packet\n */\n read(bytes) {\n let offset = 0;\n\n // A one-octet version number with value 4, 5 or 6.\n this.version = bytes[offset++];\n if (this.version !== 4 && this.version !== 5 && this.version !== 6) {\n throw new UnsupportedError(`Version ${this.version} of the SKESK packet is unsupported.`);\n }\n\n if (this.version === 6) {\n // A one-octet scalar octet count of the following 5 fields.\n offset++;\n }\n\n // A one-octet number describing the symmetric algorithm used.\n const algo = bytes[offset++];\n\n if (this.version >= 5) {\n // A one-octet AEAD algorithm.\n this.aeadAlgorithm = bytes[offset++];\n\n if (this.version === 6) {\n // A one-octet scalar octet count of the following field.\n offset++;\n }\n }\n\n // A string-to-key (S2K) specifier, length as defined above.\n const s2kType = bytes[offset++];\n this.s2k = newS2KFromType(s2kType);\n offset += this.s2k.read(bytes.subarray(offset, bytes.length));\n\n if (this.version >= 5) {\n const mode = crypto.getAEADMode(this.aeadAlgorithm);\n\n // A starting initialization vector of size specified by the AEAD\n // algorithm.\n this.iv = bytes.subarray(offset, offset += mode.ivLength);\n }\n\n // The encrypted session key itself, which is decrypted with the\n // string-to-key object. This is optional in version 4.\n if (this.version >= 5 || offset < bytes.length) {\n this.encrypted = bytes.subarray(offset, bytes.length);\n this.sessionKeyEncryptionAlgorithm = algo;\n } else {\n this.sessionKeyAlgorithm = algo;\n }\n }\n\n /**\n * Create a binary representation of a tag 3 packet\n *\n * @returns {Uint8Array} The Uint8Array representation.\n */\n write() {\n const algo = this.encrypted === null ?\n this.sessionKeyAlgorithm :\n this.sessionKeyEncryptionAlgorithm;\n\n let bytes;\n\n const s2k = this.s2k.write();\n if (this.version === 6) {\n const s2kLen = s2k.length;\n const fieldsLen = 3 + s2kLen + this.iv.length;\n bytes = util.concatUint8Array([new Uint8Array([this.version, fieldsLen, algo, this.aeadAlgorithm, s2kLen]), s2k, this.iv, this.encrypted]);\n } else if (this.version === 5) {\n bytes = util.concatUint8Array([new Uint8Array([this.version, algo, this.aeadAlgorithm]), s2k, this.iv, this.encrypted]);\n } else {\n bytes = util.concatUint8Array([new Uint8Array([this.version, algo]), s2k]);\n\n if (this.encrypted !== null) {\n bytes = util.concatUint8Array([bytes, this.encrypted]);\n }\n }\n\n return bytes;\n }\n\n /**\n * Decrypts the session key with the given passphrase\n * @param {String} passphrase - The passphrase in string form\n * @throws {Error} if decryption was not successful\n * @async\n */\n async decrypt(passphrase) {\n const algo = this.sessionKeyEncryptionAlgorithm !== null ?\n this.sessionKeyEncryptionAlgorithm :\n this.sessionKeyAlgorithm;\n\n const { blockSize, keySize } = crypto.getCipherParams(algo);\n const key = await this.s2k.produceKey(passphrase, keySize);\n\n if (this.version >= 5) {\n const mode = crypto.getAEADMode(this.aeadAlgorithm);\n const adata = new Uint8Array([0xC0 | SymEncryptedSessionKeyPacket.tag, this.version, this.sessionKeyEncryptionAlgorithm, this.aeadAlgorithm]);\n const encryptionKey = this.version === 6 ? await computeHKDF(enums.hash.sha256, key, new Uint8Array(), adata, keySize) : key;\n const modeInstance = await mode(algo, encryptionKey);\n this.sessionKey = await modeInstance.decrypt(this.encrypted, this.iv, adata);\n } else if (this.encrypted !== null) {\n const decrypted = await crypto.mode.cfb.decrypt(algo, key, this.encrypted, new Uint8Array(blockSize));\n\n this.sessionKeyAlgorithm = enums.write(enums.symmetric, decrypted[0]);\n this.sessionKey = decrypted.subarray(1, decrypted.length);\n if (this.sessionKey.length !== crypto.getCipherParams(this.sessionKeyAlgorithm).keySize) {\n throw new Error('Unexpected session key size');\n }\n } else {\n // session key size is checked as part of SEIPDv2 decryption, where we know the expected symmetric algo\n this.sessionKey = key;\n }\n }\n\n /**\n * Encrypts the session key with the given passphrase\n * @param {String} passphrase - The passphrase in string form\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if encryption was not successful\n * @async\n */\n async encrypt(passphrase, config = defaultConfig) {\n const algo = this.sessionKeyEncryptionAlgorithm !== null ?\n this.sessionKeyEncryptionAlgorithm :\n this.sessionKeyAlgorithm;\n\n this.sessionKeyEncryptionAlgorithm = algo;\n\n this.s2k = newS2KFromConfig(config);\n this.s2k.generateSalt();\n\n const { blockSize, keySize } = crypto.getCipherParams(algo);\n const key = await this.s2k.produceKey(passphrase, keySize);\n\n if (this.sessionKey === null) {\n this.sessionKey = crypto.generateSessionKey(this.sessionKeyAlgorithm);\n }\n\n if (this.version >= 5) {\n const mode = crypto.getAEADMode(this.aeadAlgorithm);\n this.iv = crypto.random.getRandomBytes(mode.ivLength); // generate new random IV\n const adata = new Uint8Array([0xC0 | SymEncryptedSessionKeyPacket.tag, this.version, this.sessionKeyEncryptionAlgorithm, this.aeadAlgorithm]);\n const encryptionKey = this.version === 6 ? await computeHKDF(enums.hash.sha256, key, new Uint8Array(), adata, keySize) : key;\n const modeInstance = await mode(algo, encryptionKey);\n this.encrypted = await modeInstance.encrypt(this.sessionKey, this.iv, adata);\n } else {\n const toEncrypt = util.concatUint8Array([\n new Uint8Array([this.sessionKeyAlgorithm]),\n this.sessionKey\n ]);\n this.encrypted = await crypto.mode.cfb.encrypt(algo, key, toEncrypt, new Uint8Array(blockSize), config);\n }\n }\n}\n\nexport default SymEncryptedSessionKeyPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport KeyID from '../type/keyid';\nimport defaultConfig from '../config';\nimport crypto from '../crypto';\nimport enums from '../enums';\nimport util from '../util';\nimport { UnsupportedError } from './packet';\n\n/**\n * Implementation of the Key Material Packet (Tag 5,6,7,14)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.5|RFC4480 5.5}:\n * A key material packet contains all the information about a public or\n * private key. There are four variants of this packet type, and two\n * major versions.\n *\n * A Public-Key packet starts a series of packets that forms an OpenPGP\n * key (sometimes called an OpenPGP certificate).\n */\nclass PublicKeyPacket {\n static get tag() {\n return enums.packet.publicKey;\n }\n\n /**\n * @param {Date} [date] - Creation date\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(date = new Date(), config = defaultConfig) {\n /**\n * Packet version\n * @type {Integer}\n */\n this.version = config.v6Keys ? 6 : 4;\n /**\n * Key creation date.\n * @type {Date}\n */\n this.created = util.normalizeDate(date);\n /**\n * Public key algorithm.\n * @type {enums.publicKey}\n */\n this.algorithm = null;\n /**\n * Algorithm specific public params\n * @type {Object}\n */\n this.publicParams = null;\n /**\n * Time until expiration in days (V3 only)\n * @type {Integer}\n */\n this.expirationTimeV3 = 0;\n /**\n * Fingerprint bytes\n * @type {Uint8Array}\n */\n this.fingerprint = null;\n /**\n * KeyID\n * @type {module:type/keyid~KeyID}\n */\n this.keyID = null;\n }\n\n /**\n * Create a PublicKeyPacket from a SecretKeyPacket\n * @param {SecretKeyPacket} secretKeyPacket - key packet to convert\n * @returns {PublicKeyPacket} public key packet\n * @static\n */\n static fromSecretKeyPacket(secretKeyPacket) {\n const keyPacket = new PublicKeyPacket();\n const { version, created, algorithm, publicParams, keyID, fingerprint } = secretKeyPacket;\n keyPacket.version = version;\n keyPacket.created = created;\n keyPacket.algorithm = algorithm;\n keyPacket.publicParams = publicParams;\n keyPacket.keyID = keyID;\n keyPacket.fingerprint = fingerprint;\n return keyPacket;\n }\n\n /**\n * Internal Parser for public keys as specified in {@link https://tools.ietf.org/html/rfc4880#section-5.5.2|RFC 4880 section 5.5.2 Public-Key Packet Formats}\n * @param {Uint8Array} bytes - Input array to read the packet from\n * @returns {Object} This object with attributes set by the parser\n * @async\n */\n async read(bytes, config = defaultConfig) {\n let pos = 0;\n // A one-octet version number (4, 5 or 6).\n this.version = bytes[pos++];\n if (this.version === 5 && !config.enableParsingV5Entities) {\n throw new UnsupportedError('Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed');\n }\n\n if (this.version === 4 || this.version === 5 || this.version === 6) {\n // - A four-octet number denoting the time that the key was created.\n this.created = util.readDate(bytes.subarray(pos, pos + 4));\n pos += 4;\n\n // - A one-octet number denoting the public-key algorithm of this key.\n this.algorithm = bytes[pos++];\n\n if (this.version >= 5) {\n // - A four-octet scalar octet count for the following key material.\n pos += 4;\n }\n\n // - A series of values comprising the key material.\n const { read, publicParams } = crypto.parsePublicKeyParams(this.algorithm, bytes.subarray(pos));\n // The deprecated OIDs for Ed25519Legacy and Curve25519Legacy are used in legacy version 4 keys and signatures.\n // Implementations MUST NOT accept or generate v6 key material using the deprecated OIDs.\n if (\n this.version === 6 &&\n publicParams.oid && (\n publicParams.oid.getName() === enums.curve.curve25519Legacy ||\n publicParams.oid.getName() === enums.curve.ed25519Legacy\n )\n ) {\n throw new Error('Legacy curve25519 cannot be used with v6 keys');\n }\n this.publicParams = publicParams;\n pos += read;\n\n // we set the fingerprint and keyID already to make it possible to put together the key packets directly in the Key constructor\n await this.computeFingerprintAndKeyID();\n return pos;\n }\n throw new UnsupportedError(`Version ${this.version} of the key packet is unsupported.`);\n }\n\n /**\n * Creates an OpenPGP public key packet for the given key.\n * @returns {Uint8Array} Bytes encoding the public key OpenPGP packet.\n */\n write() {\n const arr = [];\n // Version\n arr.push(new Uint8Array([this.version]));\n arr.push(util.writeDate(this.created));\n // A one-octet number denoting the public-key algorithm of this key\n arr.push(new Uint8Array([this.algorithm]));\n\n const params = crypto.serializeParams(this.algorithm, this.publicParams);\n if (this.version >= 5) {\n // A four-octet scalar octet count for the following key material\n arr.push(util.writeNumber(params.length, 4));\n }\n // Algorithm-specific params\n arr.push(params);\n return util.concatUint8Array(arr);\n }\n\n /**\n * Write packet in order to be hashed; either for a signature or a fingerprint\n * @param {Integer} version - target version of signature or key\n */\n writeForHash(version) {\n const bytes = this.writePublicKey();\n\n const versionOctet = 0x95 + version;\n const lengthOctets = version >= 5 ? 4 : 2;\n return util.concatUint8Array([new Uint8Array([versionOctet]), util.writeNumber(bytes.length, lengthOctets), bytes]);\n }\n\n /**\n * Check whether secret-key data is available in decrypted form. Returns null for public keys.\n * @returns {Boolean|null}\n */\n isDecrypted() {\n return null;\n }\n\n /**\n * Returns the creation time of the key\n * @returns {Date}\n */\n getCreationTime() {\n return this.created;\n }\n\n /**\n * Return the key ID of the key\n * @returns {module:type/keyid~KeyID} The 8-byte key ID\n */\n getKeyID() {\n return this.keyID;\n }\n\n /**\n * Computes and set the key ID and fingerprint of the key\n * @async\n */\n async computeFingerprintAndKeyID() {\n await this.computeFingerprint();\n this.keyID = new KeyID();\n\n if (this.version >= 5) {\n this.keyID.read(this.fingerprint.subarray(0, 8));\n } else if (this.version === 4) {\n this.keyID.read(this.fingerprint.subarray(12, 20));\n } else {\n throw new Error('Unsupported key version');\n }\n }\n\n /**\n * Computes and set the fingerprint of the key\n */\n async computeFingerprint() {\n const toHash = this.writeForHash(this.version);\n\n if (this.version >= 5) {\n this.fingerprint = await crypto.hash.sha256(toHash);\n } else if (this.version === 4) {\n this.fingerprint = await crypto.hash.sha1(toHash);\n } else {\n throw new Error('Unsupported key version');\n }\n }\n\n /**\n * Returns the fingerprint of the key, as an array of bytes\n * @returns {Uint8Array} A Uint8Array containing the fingerprint\n */\n getFingerprintBytes() {\n return this.fingerprint;\n }\n\n /**\n * Calculates and returns the fingerprint of the key, as a string\n * @returns {String} A string containing the fingerprint in lowercase hex\n */\n getFingerprint() {\n return util.uint8ArrayToHex(this.getFingerprintBytes());\n }\n\n /**\n * Calculates whether two keys have the same fingerprint without actually calculating the fingerprint\n * @returns {Boolean} Whether the two keys have the same version and public key data.\n */\n hasSameFingerprintAs(other) {\n return this.version === other.version && util.equalsUint8Array(this.writePublicKey(), other.writePublicKey());\n }\n\n /**\n * Returns algorithm information\n * @returns {Object} An object of the form {algorithm: String, bits:int, curve:String}.\n */\n getAlgorithmInfo() {\n const result = {};\n result.algorithm = enums.read(enums.publicKey, this.algorithm);\n // RSA, DSA or ElGamal public modulo\n const modulo = this.publicParams.n || this.publicParams.p;\n if (modulo) {\n result.bits = util.uint8ArrayBitLength(modulo);\n } else if (this.publicParams.oid) {\n result.curve = this.publicParams.oid.getName();\n }\n return result;\n }\n}\n\n/**\n * Alias of read()\n * @see PublicKeyPacket#read\n */\nPublicKeyPacket.prototype.readPublicKey = PublicKeyPacket.prototype.read;\n\n/**\n * Alias of write()\n * @see PublicKeyPacket#write\n */\nPublicKeyPacket.prototype.writePublicKey = PublicKeyPacket.prototype.write;\n\nexport default PublicKeyPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport crypto from '../crypto';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\n\nimport LiteralDataPacket from './literal_data';\nimport CompressedDataPacket from './compressed_data';\nimport OnePassSignaturePacket from './one_pass_signature';\nimport SignaturePacket from './signature';\nimport PacketList from './packetlist';\n\n// A SE packet can contain the following packet types\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([\n LiteralDataPacket,\n CompressedDataPacket,\n OnePassSignaturePacket,\n SignaturePacket\n]);\n\n/**\n * Implementation of the Symmetrically Encrypted Data Packet (Tag 9)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.7|RFC4880 5.7}:\n * The Symmetrically Encrypted Data packet contains data encrypted with a\n * symmetric-key algorithm. When it has been decrypted, it contains other\n * packets (usually a literal data packet or compressed data packet, but in\n * theory other Symmetrically Encrypted Data packets or sequences of packets\n * that form whole OpenPGP messages).\n */\nclass SymmetricallyEncryptedDataPacket {\n static get tag() {\n return enums.packet.symmetricallyEncryptedData;\n }\n\n constructor() {\n /**\n * Encrypted secret-key data\n */\n this.encrypted = null;\n /**\n * Decrypted packets contained within.\n * @type {PacketList}\n */\n this.packets = null;\n }\n\n read(bytes) {\n this.encrypted = bytes;\n }\n\n write() {\n return this.encrypted;\n }\n\n /**\n * Decrypt the symmetrically-encrypted packet data\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n * @param {module:enums.symmetric} sessionKeyAlgorithm - Symmetric key algorithm to use\n * @param {Uint8Array} key - The key of cipher blocksize length to be used\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n\n * @throws {Error} if decryption was not successful\n * @async\n */\n async decrypt(sessionKeyAlgorithm, key, config = defaultConfig) {\n // If MDC errors are not being ignored, all missing MDC packets in symmetrically encrypted data should throw an error\n if (!config.allowUnauthenticatedMessages) {\n throw new Error('Message is not authenticated.');\n }\n\n const { blockSize } = crypto.getCipherParams(sessionKeyAlgorithm);\n const encrypted = await stream.readToEnd(stream.clone(this.encrypted));\n const decrypted = await crypto.mode.cfb.decrypt(sessionKeyAlgorithm, key,\n encrypted.subarray(blockSize + 2),\n encrypted.subarray(2, blockSize + 2)\n );\n\n this.packets = await PacketList.fromBinary(decrypted, allowedPackets, config);\n }\n\n /**\n * Encrypt the symmetrically-encrypted packet data\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n * @param {module:enums.symmetric} sessionKeyAlgorithm - Symmetric key algorithm to use\n * @param {Uint8Array} key - The key of cipher blocksize length to be used\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if encryption was not successful\n * @async\n */\n async encrypt(sessionKeyAlgorithm, key, config = defaultConfig) {\n const data = this.packets.write();\n const { blockSize } = crypto.getCipherParams(sessionKeyAlgorithm);\n\n const prefix = await crypto.getPrefixRandom(sessionKeyAlgorithm);\n const FRE = await crypto.mode.cfb.encrypt(sessionKeyAlgorithm, key, prefix, new Uint8Array(blockSize), config);\n const ciphertext = await crypto.mode.cfb.encrypt(sessionKeyAlgorithm, key, data, FRE.subarray(2), config);\n this.encrypted = util.concat([FRE, ciphertext]);\n }\n}\n\nexport default SymmetricallyEncryptedDataPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport PublicKeyPacket from './public_key';\nimport enums from '../enums';\n\n/**\n * A Public-Subkey packet (tag 14) has exactly the same format as a\n * Public-Key packet, but denotes a subkey. One or more subkeys may be\n * associated with a top-level key. By convention, the top-level key\n * provides signature services, and the subkeys provide encryption\n * services.\n * @extends PublicKeyPacket\n */\nclass PublicSubkeyPacket extends PublicKeyPacket {\n static get tag() {\n return enums.packet.publicSubkey;\n }\n\n /**\n * @param {Date} [date] - Creation date\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(date, config) {\n super(date, config);\n }\n\n /**\n * Create a PublicSubkeyPacket from a SecretSubkeyPacket\n * @param {SecretSubkeyPacket} secretSubkeyPacket - subkey packet to convert\n * @returns {SecretSubkeyPacket} public key packet\n * @static\n */\n static fromSecretSubkeyPacket(secretSubkeyPacket) {\n const keyPacket = new PublicSubkeyPacket();\n const { version, created, algorithm, publicParams, keyID, fingerprint } = secretSubkeyPacket;\n keyPacket.version = version;\n keyPacket.created = created;\n keyPacket.algorithm = algorithm;\n keyPacket.publicParams = publicParams;\n keyPacket.keyID = keyID;\n keyPacket.fingerprint = fingerprint;\n return keyPacket;\n }\n}\n\nexport default PublicSubkeyPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { readSimpleLength, writeSimpleLength } from './packet';\nimport enums from '../enums';\nimport util from '../util';\n\n/**\n * Implementation of the User Attribute Packet (Tag 17)\n *\n * The User Attribute packet is a variation of the User ID packet. It\n * is capable of storing more types of data than the User ID packet,\n * which is limited to text. Like the User ID packet, a User Attribute\n * packet may be certified by the key owner (\"self-signed\") or any other\n * key owner who cares to certify it. Except as noted, a User Attribute\n * packet may be used anywhere that a User ID packet may be used.\n *\n * While User Attribute packets are not a required part of the OpenPGP\n * standard, implementations SHOULD provide at least enough\n * compatibility to properly handle a certification signature on the\n * User Attribute packet. A simple way to do this is by treating the\n * User Attribute packet as a User ID packet with opaque contents, but\n * an implementation may use any method desired.\n */\nclass UserAttributePacket {\n static get tag() {\n return enums.packet.userAttribute;\n }\n\n constructor() {\n this.attributes = [];\n }\n\n /**\n * parsing function for a user attribute packet (tag 17).\n * @param {Uint8Array} input - Payload of a tag 17 packet\n */\n read(bytes) {\n let i = 0;\n while (i < bytes.length) {\n const len = readSimpleLength(bytes.subarray(i, bytes.length));\n i += len.offset;\n\n this.attributes.push(util.uint8ArrayToString(bytes.subarray(i, i + len.len)));\n i += len.len;\n }\n }\n\n /**\n * Creates a binary representation of the user attribute packet\n * @returns {Uint8Array} String representation.\n */\n write() {\n const arr = [];\n for (let i = 0; i < this.attributes.length; i++) {\n arr.push(writeSimpleLength(this.attributes[i].length));\n arr.push(util.stringToUint8Array(this.attributes[i]));\n }\n return util.concatUint8Array(arr);\n }\n\n /**\n * Compare for equality\n * @param {UserAttributePacket} usrAttr\n * @returns {Boolean} True if equal.\n */\n equals(usrAttr) {\n if (!usrAttr || !(usrAttr instanceof UserAttributePacket)) {\n return false;\n }\n return this.attributes.every(function(attr, index) {\n return attr === usrAttr.attributes[index];\n });\n }\n}\n\nexport default UserAttributePacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport PublicKeyPacket from './public_key';\nimport { newS2KFromConfig, newS2KFromType } from '../type/s2k';\nimport crypto from '../crypto';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\nimport { UnsupportedError, writeTag } from './packet';\nimport computeHKDF from '../crypto/hkdf';\n\n/**\n * A Secret-Key packet contains all the information that is found in a\n * Public-Key packet, including the public-key material, but also\n * includes the secret-key material after all the public-key fields.\n * @extends PublicKeyPacket\n */\nclass SecretKeyPacket extends PublicKeyPacket {\n static get tag() {\n return enums.packet.secretKey;\n }\n\n /**\n * @param {Date} [date] - Creation date\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(date = new Date(), config = defaultConfig) {\n super(date, config);\n /**\n * Secret-key data\n */\n this.keyMaterial = null;\n /**\n * Indicates whether secret-key data is encrypted. `this.isEncrypted === false` means data is available in decrypted form.\n */\n this.isEncrypted = null;\n /**\n * S2K usage\n * @type {enums.symmetric}\n */\n this.s2kUsage = 0;\n /**\n * S2K object\n * @type {type/s2k}\n */\n this.s2k = null;\n /**\n * Symmetric algorithm to encrypt the key with\n * @type {enums.symmetric}\n */\n this.symmetric = null;\n /**\n * AEAD algorithm to encrypt the key with (if AEAD protection is enabled)\n * @type {enums.aead}\n */\n this.aead = null;\n /**\n * Whether the key is encrypted using the legacy AEAD format proposal from RFC4880bis\n * (i.e. it was encrypted with the flag `config.aeadProtect` in OpenPGP.js v5 or older).\n * This value is only relevant to know how to decrypt the key:\n * if AEAD is enabled, a v4 key is always re-encrypted using the standard AEAD mechanism.\n * @type {Boolean}\n * @private\n */\n this.isLegacyAEAD = null;\n /**\n * Decrypted private parameters, referenced by name\n * @type {Object}\n */\n this.privateParams = null;\n /**\n * `true` for keys whose integrity is already confirmed, based on\n * the AEAD encryption mechanism\n * @type {Boolean}\n * @private\n */\n this.usedModernAEAD = null;\n }\n\n // 5.5.3. Secret-Key Packet Formats\n\n /**\n * Internal parser for private keys as specified in\n * {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.5.3|RFC4880bis-04 section 5.5.3}\n * @param {Uint8Array} bytes - Input string to read the packet from\n * @async\n */\n async read(bytes, config = defaultConfig) {\n // - A Public-Key or Public-Subkey packet, as described above.\n let i = await this.readPublicKey(bytes, config);\n const startOfSecretKeyData = i;\n\n // - One octet indicating string-to-key usage conventions. Zero\n // indicates that the secret-key data is not encrypted. 255 or 254\n // indicates that a string-to-key specifier is being given. Any\n // other value is a symmetric-key encryption algorithm identifier.\n this.s2kUsage = bytes[i++];\n\n // - Only for a version 5 packet, a one-octet scalar octet count of\n // the next 4 optional fields.\n if (this.version === 5) {\n i++;\n }\n\n // - Only for a version 6 packet where the secret key material is\n // encrypted (that is, where the previous octet is not zero), a one-\n // octet scalar octet count of the cumulative length of all the\n // following optional string-to-key parameter fields.\n if (this.version === 6 && this.s2kUsage) {\n i++;\n }\n\n try {\n // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n // one-octet symmetric encryption algorithm.\n if (this.s2kUsage === 255 || this.s2kUsage === 254 || this.s2kUsage === 253) {\n this.symmetric = bytes[i++];\n\n // - [Optional] If string-to-key usage octet was 253, a one-octet\n // AEAD algorithm.\n if (this.s2kUsage === 253) {\n this.aead = bytes[i++];\n }\n\n // - [Optional] Only for a version 6 packet, and if string-to-key usage\n // octet was 255, 254, or 253, an one-octet count of the following field.\n if (this.version === 6) {\n i++;\n }\n\n // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n // string-to-key specifier. The length of the string-to-key\n // specifier is implied by its type, as described above.\n const s2kType = bytes[i++];\n this.s2k = newS2KFromType(s2kType);\n i += this.s2k.read(bytes.subarray(i, bytes.length));\n\n if (this.s2k.type === 'gnu-dummy') {\n return;\n }\n } else if (this.s2kUsage) {\n this.symmetric = this.s2kUsage;\n }\n\n\n if (this.s2kUsage) {\n // OpenPGP.js up to v5 used to support encrypting v4 keys using AEAD as specified by draft RFC4880bis (https://www.ietf.org/archive/id/draft-ietf-openpgp-rfc4880bis-10.html#section-5.5.3-3.5).\n // This legacy format is incompatible, but fundamentally indistinguishable, from that of the crypto-refresh for v4 keys (v5 keys are always in legacy format).\n // While parsing the key may succeed (if IV and AES block sizes match), key decryption will always\n // fail if the key was parsed according to the wrong format, since the keys are processed differently.\n // Thus, for v4 keys, we rely on the caller to instruct us to process the key as legacy, via config flag.\n this.isLegacyAEAD = this.s2kUsage === 253 && (\n this.version === 5 || (this.version === 4 && config.parseAEADEncryptedV4KeysAsLegacy));\n // - crypto-refresh: If string-to-key usage octet was 255, 254 [..], an initialization vector (IV)\n // of the same length as the cipher's block size.\n // - RFC4880bis (v5 keys, regardless of AEAD): an Initial Vector (IV) of the same length as the\n // cipher's block size. If string-to-key usage octet was 253 the IV is used as the nonce for the AEAD algorithm.\n // If the AEAD algorithm requires a shorter nonce, the high-order bits of the IV are used and the remaining bits MUST be zero\n if (this.s2kUsage !== 253 || this.isLegacyAEAD) {\n this.iv = bytes.subarray(\n i,\n i + crypto.getCipherParams(this.symmetric).blockSize\n );\n this.usedModernAEAD = false;\n } else {\n // crypto-refresh: If string-to-key usage octet was 253 (that is, the secret data is AEAD-encrypted),\n // an initialization vector (IV) of size specified by the AEAD algorithm (see Section 5.13.2), which\n // is used as the nonce for the AEAD algorithm.\n this.iv = bytes.subarray(\n i,\n i + crypto.getAEADMode(this.aead).ivLength\n );\n // the non-legacy AEAD encryption mechanism also authenticates public key params; no need for manual validation.\n this.usedModernAEAD = true;\n }\n\n i += this.iv.length;\n }\n } catch (e) {\n // if the s2k is unsupported, we still want to support encrypting and verifying with the given key\n if (!this.s2kUsage) throw e; // always throw for decrypted keys\n this.unparseableKeyMaterial = bytes.subarray(startOfSecretKeyData);\n this.isEncrypted = true;\n }\n\n // - Only for a version 5 packet, a four-octet scalar octet count for\n // the following key material.\n if (this.version === 5) {\n i += 4;\n }\n\n // - Plain or encrypted multiprecision integers comprising the secret\n // key data. These algorithm-specific fields are as described\n // below.\n this.keyMaterial = bytes.subarray(i);\n this.isEncrypted = !!this.s2kUsage;\n\n if (!this.isEncrypted) {\n let cleartext;\n if (this.version === 6) {\n cleartext = this.keyMaterial;\n } else {\n cleartext = this.keyMaterial.subarray(0, -2);\n if (!util.equalsUint8Array(util.writeChecksum(cleartext), this.keyMaterial.subarray(-2))) {\n throw new Error('Key checksum mismatch');\n }\n }\n try {\n const { read, privateParams } = crypto.parsePrivateKeyParams(this.algorithm, cleartext, this.publicParams);\n if (read < cleartext.length) {\n throw new Error('Error reading MPIs');\n }\n this.privateParams = privateParams;\n } catch (err) {\n if (err instanceof UnsupportedError) throw err;\n // avoid throwing potentially sensitive errors\n throw new Error('Error reading MPIs');\n }\n }\n }\n\n /**\n * Creates an OpenPGP key packet for the given key.\n * @returns {Uint8Array} A string of bytes containing the secret key OpenPGP packet.\n */\n write() {\n const serializedPublicKey = this.writePublicKey();\n if (this.unparseableKeyMaterial) {\n return util.concatUint8Array([\n serializedPublicKey,\n this.unparseableKeyMaterial\n ]);\n }\n\n const arr = [serializedPublicKey];\n arr.push(new Uint8Array([this.s2kUsage]));\n\n const optionalFieldsArr = [];\n // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n // one- octet symmetric encryption algorithm.\n if (this.s2kUsage === 255 || this.s2kUsage === 254 || this.s2kUsage === 253) {\n optionalFieldsArr.push(this.symmetric);\n\n // - [Optional] If string-to-key usage octet was 253, a one-octet\n // AEAD algorithm.\n if (this.s2kUsage === 253) {\n optionalFieldsArr.push(this.aead);\n }\n\n const s2k = this.s2k.write();\n\n // - [Optional] Only for a version 6 packet, and if string-to-key usage\n // octet was 255, 254, or 253, an one-octet count of the following field.\n if (this.version === 6) {\n optionalFieldsArr.push(s2k.length);\n }\n\n // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n // string-to-key specifier. The length of the string-to-key\n // specifier is implied by its type, as described above.\n optionalFieldsArr.push(...s2k);\n }\n\n // - [Optional] If secret data is encrypted (string-to-key usage octet\n // not zero), an Initial Vector (IV) of the same length as the\n // cipher's block size.\n if (this.s2kUsage && this.s2k.type !== 'gnu-dummy') {\n optionalFieldsArr.push(...this.iv);\n }\n\n if (this.version === 5 || (this.version === 6 && this.s2kUsage)) {\n arr.push(new Uint8Array([optionalFieldsArr.length]));\n }\n arr.push(new Uint8Array(optionalFieldsArr));\n\n if (!this.isDummy()) {\n if (!this.s2kUsage) {\n this.keyMaterial = crypto.serializeParams(this.algorithm, this.privateParams);\n }\n\n if (this.version === 5) {\n arr.push(util.writeNumber(this.keyMaterial.length, 4));\n }\n arr.push(this.keyMaterial);\n\n if (!this.s2kUsage && this.version !== 6) {\n arr.push(util.writeChecksum(this.keyMaterial));\n }\n }\n\n return util.concatUint8Array(arr);\n }\n\n /**\n * Check whether secret-key data is available in decrypted form.\n * Returns false for gnu-dummy keys and null for public keys.\n * @returns {Boolean|null}\n */\n isDecrypted() {\n return this.isEncrypted === false;\n }\n\n /**\n * Check whether the key includes secret key material.\n * Some secret keys do not include it, and can thus only be used\n * for public-key operations (encryption and verification).\n * Such keys are:\n * - GNU-dummy keys, where the secret material has been stripped away\n * - encrypted keys with unsupported S2K or cipher\n */\n isMissingSecretKeyMaterial() {\n return this.unparseableKeyMaterial !== undefined || this.isDummy();\n }\n\n /**\n * Check whether this is a gnu-dummy key\n * @returns {Boolean}\n */\n isDummy() {\n return !!(this.s2k && this.s2k.type === 'gnu-dummy');\n }\n\n /**\n * Remove private key material, converting the key to a dummy one.\n * The resulting key cannot be used for signing/decrypting but can still verify signatures.\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n makeDummy(config = defaultConfig) {\n if (this.isDummy()) {\n return;\n }\n if (this.isDecrypted()) {\n this.clearPrivateParams();\n }\n delete this.unparseableKeyMaterial;\n this.isEncrypted = null;\n this.keyMaterial = null;\n this.s2k = newS2KFromType(enums.s2k.gnu, config);\n this.s2k.algorithm = 0;\n this.s2k.c = 0;\n this.s2k.type = 'gnu-dummy';\n this.s2kUsage = 254;\n this.symmetric = enums.symmetric.aes256;\n this.isLegacyAEAD = null;\n this.usedModernAEAD = null;\n }\n\n /**\n * Encrypt the payload. By default, we use aes256 and iterated, salted string\n * to key specifier. If the key is in a decrypted state (isEncrypted === false)\n * and the passphrase is empty or undefined, the key will be set as not encrypted.\n * This can be used to remove passphrase protection after calling decrypt().\n * @param {String} passphrase\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if encryption was not successful\n * @async\n */\n async encrypt(passphrase, config = defaultConfig) {\n if (this.isDummy()) {\n return;\n }\n\n if (!this.isDecrypted()) {\n throw new Error('Key packet is already encrypted');\n }\n\n if (!passphrase) {\n throw new Error('A non-empty passphrase is required for key encryption.');\n }\n\n this.s2k = newS2KFromConfig(config);\n this.s2k.generateSalt();\n const cleartext = crypto.serializeParams(this.algorithm, this.privateParams);\n this.symmetric = enums.symmetric.aes256;\n\n const { blockSize } = crypto.getCipherParams(this.symmetric);\n\n if (config.aeadProtect) {\n this.s2kUsage = 253;\n this.aead = config.preferredAEADAlgorithm;\n const mode = crypto.getAEADMode(this.aead);\n this.isLegacyAEAD = this.version === 5; // v4 is always re-encrypted with standard format instead.\n this.usedModernAEAD = !this.isLegacyAEAD; // legacy AEAD does not guarantee integrity of public key material\n\n const serializedPacketTag = writeTag(this.constructor.tag);\n const key = await produceEncryptionKey(this.version, this.s2k, passphrase, this.symmetric, this.aead, serializedPacketTag, this.isLegacyAEAD);\n\n const modeInstance = await mode(this.symmetric, key);\n this.iv = this.isLegacyAEAD ? crypto.random.getRandomBytes(blockSize) : crypto.random.getRandomBytes(mode.ivLength);\n const associateData = this.isLegacyAEAD ?\n new Uint8Array() :\n util.concatUint8Array([serializedPacketTag, this.writePublicKey()]);\n\n this.keyMaterial = await modeInstance.encrypt(cleartext, this.iv.subarray(0, mode.ivLength), associateData);\n } else {\n this.s2kUsage = 254;\n this.usedModernAEAD = false;\n const key = await produceEncryptionKey(this.version, this.s2k, passphrase, this.symmetric);\n this.iv = crypto.random.getRandomBytes(blockSize);\n this.keyMaterial = await crypto.mode.cfb.encrypt(this.symmetric, key, util.concatUint8Array([\n cleartext,\n await crypto.hash.sha1(cleartext, config)\n ]), this.iv, config);\n }\n }\n\n /**\n * Decrypts the private key params which are needed to use the key.\n * Successful decryption does not imply key integrity, call validate() to confirm that.\n * {@link SecretKeyPacket.isDecrypted} should be false, as\n * otherwise calls to this function will throw an error.\n * @param {String} passphrase - The passphrase for this private key as string\n * @throws {Error} if the key is already decrypted, or if decryption was not successful\n * @async\n */\n async decrypt(passphrase) {\n if (this.isDummy()) {\n return false;\n }\n\n if (this.unparseableKeyMaterial) {\n throw new Error('Key packet cannot be decrypted: unsupported S2K or cipher algo');\n }\n\n if (this.isDecrypted()) {\n throw new Error('Key packet is already decrypted.');\n }\n\n let key;\n const serializedPacketTag = writeTag(this.constructor.tag); // relevant for AEAD only\n if (this.s2kUsage === 254 || this.s2kUsage === 253) {\n key = await produceEncryptionKey(\n this.version, this.s2k, passphrase, this.symmetric, this.aead, serializedPacketTag, this.isLegacyAEAD);\n } else if (this.s2kUsage === 255) {\n throw new Error('Encrypted private key is authenticated using an insecure two-byte hash');\n } else {\n throw new Error('Private key is encrypted using an insecure S2K function: unsalted MD5');\n }\n\n let cleartext;\n if (this.s2kUsage === 253) {\n const mode = crypto.getAEADMode(this.aead);\n const modeInstance = await mode(this.symmetric, key);\n try {\n const associateData = this.isLegacyAEAD ?\n new Uint8Array() :\n util.concatUint8Array([serializedPacketTag, this.writePublicKey()]);\n cleartext = await modeInstance.decrypt(this.keyMaterial, this.iv.subarray(0, mode.ivLength), associateData);\n } catch (err) {\n if (err.message === 'Authentication tag mismatch') {\n throw new Error('Incorrect key passphrase: ' + err.message);\n }\n throw err;\n }\n } else {\n const cleartextWithHash = await crypto.mode.cfb.decrypt(this.symmetric, key, this.keyMaterial, this.iv);\n\n cleartext = cleartextWithHash.subarray(0, -20);\n const hash = await crypto.hash.sha1(cleartext);\n\n if (!util.equalsUint8Array(hash, cleartextWithHash.subarray(-20))) {\n throw new Error('Incorrect key passphrase');\n }\n }\n\n try {\n const { privateParams } = crypto.parsePrivateKeyParams(this.algorithm, cleartext, this.publicParams);\n this.privateParams = privateParams;\n } catch (err) {\n throw new Error('Error reading MPIs');\n }\n this.isEncrypted = false;\n this.keyMaterial = null;\n this.s2kUsage = 0;\n this.aead = null;\n this.symmetric = null;\n this.isLegacyAEAD = null;\n }\n\n /**\n * Checks that the key parameters are consistent\n * @throws {Error} if validation was not successful\n * @async\n */\n async validate() {\n if (this.isDummy()) {\n return;\n }\n\n if (!this.isDecrypted()) {\n throw new Error('Key is not decrypted');\n }\n\n if (this.usedModernAEAD) {\n // key integrity confirmed by successful AEAD decryption\n return;\n }\n\n let validParams;\n try {\n // this can throw if some parameters are undefined\n validParams = await crypto.validateParams(this.algorithm, this.publicParams, this.privateParams);\n } catch (_) {\n validParams = false;\n }\n if (!validParams) {\n throw new Error('Key is invalid');\n }\n }\n\n async generate(bits, curve) {\n // The deprecated OIDs for Ed25519Legacy and Curve25519Legacy are used in legacy version 4 keys and signatures.\n // Implementations MUST NOT accept or generate v6 key material using the deprecated OIDs.\n if (this.version === 6 && (\n (this.algorithm === enums.publicKey.ecdh && curve === enums.curve.curve25519Legacy) ||\n this.algorithm === enums.publicKey.eddsaLegacy\n )) {\n throw new Error(`Cannot generate v6 keys of type 'ecc' with curve ${curve}. Generate a key of type 'curve25519' instead`);\n }\n const { privateParams, publicParams } = await crypto.generateParams(this.algorithm, bits, curve);\n this.privateParams = privateParams;\n this.publicParams = publicParams;\n this.isEncrypted = false;\n }\n\n /**\n * Clear private key parameters\n */\n clearPrivateParams() {\n if (this.isMissingSecretKeyMaterial()) {\n return;\n }\n\n Object.keys(this.privateParams).forEach(name => {\n const param = this.privateParams[name];\n param.fill(0);\n delete this.privateParams[name];\n });\n this.privateParams = null;\n this.isEncrypted = true;\n }\n}\n\n/**\n * Derive encryption key\n * @param {Number} keyVersion - key derivation differs for v5 keys\n * @param {module:type/s2k} s2k\n * @param {String} passphrase\n * @param {module:enums.symmetric} cipherAlgo\n * @param {module:enums.aead} [aeadMode] - for AEAD-encrypted keys only (excluding v5)\n * @param {Uint8Array} [serializedPacketTag] - for AEAD-encrypted keys only (excluding v5)\n * @param {Boolean} [isLegacyAEAD] - for AEAD-encrypted keys from RFC4880bis (v4 and v5 only)\n * @returns encryption key\n */\nasync function produceEncryptionKey(keyVersion, s2k, passphrase, cipherAlgo, aeadMode, serializedPacketTag, isLegacyAEAD) {\n if (s2k.type === 'argon2' && !aeadMode) {\n throw new Error('Using Argon2 S2K without AEAD is not allowed');\n }\n if (s2k.type === 'simple' && keyVersion === 6) {\n throw new Error('Using Simple S2K with version 6 keys is not allowed');\n }\n const { keySize } = crypto.getCipherParams(cipherAlgo);\n const derivedKey = await s2k.produceKey(passphrase, keySize);\n if (!aeadMode || keyVersion === 5 || isLegacyAEAD) {\n return derivedKey;\n }\n const info = util.concatUint8Array([\n serializedPacketTag,\n new Uint8Array([keyVersion, cipherAlgo, aeadMode])\n ]);\n return computeHKDF(enums.hash.sha256, derivedKey, new Uint8Array(), info, keySize);\n}\n\nexport default SecretKeyPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\n\n/**\n * Implementation of the User ID Packet (Tag 13)\n *\n * A User ID packet consists of UTF-8 text that is intended to represent\n * the name and email address of the key holder. By convention, it\n * includes an RFC 2822 [RFC2822] mail name-addr, but there are no\n * restrictions on its content. The packet length in the header\n * specifies the length of the User ID.\n */\nclass UserIDPacket {\n static get tag() {\n return enums.packet.userID;\n }\n\n constructor() {\n /** A string containing the user id. Usually in the form\n * John Doe \n * @type {String}\n */\n this.userID = '';\n\n this.name = '';\n this.email = '';\n this.comment = '';\n }\n\n /**\n * Create UserIDPacket instance from object\n * @param {Object} userID - Object specifying userID name, email and comment\n * @returns {UserIDPacket}\n * @static\n */\n static fromObject(userID) {\n if (util.isString(userID) ||\n (userID.name && !util.isString(userID.name)) ||\n (userID.email && !util.isEmailAddress(userID.email)) ||\n (userID.comment && !util.isString(userID.comment))) {\n throw new Error('Invalid user ID format');\n }\n const packet = new UserIDPacket();\n Object.assign(packet, userID);\n const components = [];\n if (packet.name) components.push(packet.name);\n if (packet.comment) components.push(`(${packet.comment})`);\n if (packet.email) components.push(`<${packet.email}>`);\n packet.userID = components.join(' ');\n return packet;\n }\n\n /**\n * Parsing function for a user id packet (tag 13).\n * @param {Uint8Array} input - Payload of a tag 13 packet\n */\n read(bytes, config = defaultConfig) {\n const userID = util.decodeUTF8(bytes);\n if (userID.length > config.maxUserIDLength) {\n throw new Error('User ID string is too long');\n }\n\n /**\n * We support the conventional cases described in https://www.ietf.org/id/draft-dkg-openpgp-userid-conventions-00.html#section-4.1,\n * as well comments placed between the name (if present) and the bracketed email address:\n * - name (comment) \n * - email\n * In the first case, the `email` is the only required part, and it must contain the `@` symbol.\n * The `name` and `comment` parts can include any letters, whitespace, and symbols, except for `(` and `)`,\n * since they interfere with `comment` parsing.\n */\n const re = /^(?[^()]+\\s+)?(?\\([^()]+\\)\\s+)?(?<\\S+@\\S+>)$/;\n const matches = re.exec(userID);\n if (matches !== null) {\n const { name, comment, email } = matches.groups;\n this.comment = comment?.replace(/^\\(|\\)|\\s$/g, '').trim() || ''; // remove parenthesis and separating whiltespace\n this.name = name?.trim() || '';\n this.email = email.substring(1, email.length - 1); // remove brackets\n } else if (/^[^\\s@]+@[^\\s@]+$/.test(userID)) { // unbracketed email: enforce single @ and no whitespace\n this.email = userID;\n }\n\n this.userID = userID;\n }\n\n /**\n * Creates a binary representation of the user id packet\n * @returns {Uint8Array} Binary representation.\n */\n write() {\n return util.encodeUTF8(this.userID);\n }\n\n equals(otherUserID) {\n return otherUserID && otherUserID.userID === this.userID;\n }\n}\n\nexport default UserIDPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport SecretKeyPacket from './secret_key';\nimport enums from '../enums';\nimport defaultConfig from '../config';\n\n/**\n * A Secret-Subkey packet (tag 7) is the subkey analog of the Secret\n * Key packet and has exactly the same format.\n * @extends SecretKeyPacket\n */\nclass SecretSubkeyPacket extends SecretKeyPacket {\n static get tag() {\n return enums.packet.secretSubkey;\n }\n\n /**\n * @param {Date} [date] - Creation date\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n constructor(date = new Date(), config = defaultConfig) {\n super(date, config);\n }\n}\n\nexport default SecretSubkeyPacket;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { armor, unarmor } from './encoding/armor';\nimport { PacketList, SignaturePacket } from './packet';\nimport enums from './enums';\nimport util from './util';\nimport defaultConfig from './config';\n\n// A Signature can contain the following packets\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\n\n/**\n * Class that represents an OpenPGP signature.\n */\nexport class Signature {\n /**\n * @param {PacketList} packetlist - The signature packets\n */\n constructor(packetlist) {\n this.packets = packetlist || new PacketList();\n }\n\n /**\n * Returns binary encoded signature\n * @returns {ReadableStream} Binary signature.\n */\n write() {\n return this.packets.write();\n }\n\n /**\n * Returns ASCII armored text of signature\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {ReadableStream} ASCII armor.\n */\n armor(config = defaultConfig) {\n // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.\n const emitChecksum = this.packets.some(packet => packet.constructor.tag === SignaturePacket.tag && packet.version !== 6);\n return armor(enums.armor.signature, this.write(), undefined, undefined, undefined, emitChecksum, config);\n }\n\n /**\n * Returns an array of KeyIDs of all of the issuers who created this signature\n * @returns {Array} The Key IDs of the signing keys\n */\n getSigningKeyIDs() {\n return this.packets.map(packet => packet.issuerKeyID);\n }\n}\n\n/**\n * reads an (optionally armored) OpenPGP signature and returns a signature object\n * @param {Object} options\n * @param {String} [options.armoredSignature] - Armored signature to be parsed\n * @param {Uint8Array} [options.binarySignature] - Binary signature to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} New signature object.\n * @async\n * @static\n */\nexport async function readSignature({ armoredSignature, binarySignature, config, ...rest }) {\n config = { ...defaultConfig, ...config };\n let input = armoredSignature || binarySignature;\n if (!input) {\n throw new Error('readSignature: must pass options object containing `armoredSignature` or `binarySignature`');\n }\n if (armoredSignature && !util.isString(armoredSignature)) {\n throw new Error('readSignature: options.armoredSignature must be a string');\n }\n if (binarySignature && !util.isUint8Array(binarySignature)) {\n throw new Error('readSignature: options.binarySignature must be a Uint8Array');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (armoredSignature) {\n const { type, data } = await unarmor(input, config);\n if (type !== enums.armor.signature) {\n throw new Error('Armored text not of type signature');\n }\n input = data;\n }\n const packetlist = await PacketList.fromBinary(input, allowedPackets, config);\n return new Signature(packetlist);\n}\n", "/**\n * @fileoverview Provides helpers methods for key module\n * @module key/helper\n */\n\nimport {\n SecretKeyPacket,\n SecretSubkeyPacket,\n SignaturePacket\n} from '../packet';\nimport enums from '../enums';\nimport crypto from '../crypto';\nimport util from '../util';\nimport defaultConfig from '../config';\n\nexport async function generateSecretSubkey(options, config) {\n const secretSubkeyPacket = new SecretSubkeyPacket(options.date, config);\n secretSubkeyPacket.packets = null;\n secretSubkeyPacket.algorithm = enums.write(enums.publicKey, options.algorithm);\n await secretSubkeyPacket.generate(options.rsaBits, options.curve);\n await secretSubkeyPacket.computeFingerprintAndKeyID();\n return secretSubkeyPacket;\n}\n\nexport async function generateSecretKey(options, config) {\n const secretKeyPacket = new SecretKeyPacket(options.date, config);\n secretKeyPacket.packets = null;\n secretKeyPacket.algorithm = enums.write(enums.publicKey, options.algorithm);\n await secretKeyPacket.generate(options.rsaBits, options.curve, options.config);\n await secretKeyPacket.computeFingerprintAndKeyID();\n return secretKeyPacket;\n}\n\n/**\n * Returns the valid and non-expired signature that has the latest creation date, while ignoring signatures created in the future.\n * @param {Array} signatures - List of signatures\n * @param {PublicKeyPacket|PublicSubkeyPacket} publicKey - Public key packet to verify the signature\n * @param {module:enums.signature} signatureType - Signature type to determine how to hash the data (NB: for userID signatures,\n * `enums.signatures.certGeneric` should be given regardless of the actual trust level)\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} config - full configuration\n * @returns {Promise} The latest valid signature.\n * @async\n */\nexport async function getLatestValidSignature(signatures, publicKey, signatureType, dataToVerify, date = new Date(), config) {\n let latestValid;\n let exception;\n for (let i = signatures.length - 1; i >= 0; i--) {\n try {\n if (\n (!latestValid || signatures[i].created >= latestValid.created)\n ) {\n await signatures[i].verify(publicKey, signatureType, dataToVerify, date, undefined, config);\n latestValid = signatures[i];\n }\n } catch (e) {\n exception = e;\n }\n }\n if (!latestValid) {\n throw util.wrapError(\n `Could not find valid ${enums.read(enums.signature, signatureType)} signature in key ${publicKey.getKeyID().toHex()}`\n .replace('certGeneric ', 'self-')\n .replace(/([a-z])([A-Z])/g, (_, $1, $2) => $1 + ' ' + $2.toLowerCase()),\n exception);\n }\n return latestValid;\n}\n\nexport function isDataExpired(keyPacket, signature, date = new Date()) {\n const normDate = util.normalizeDate(date);\n if (normDate !== null) {\n const expirationTime = getKeyExpirationTime(keyPacket, signature);\n return !(keyPacket.created <= normDate && normDate < expirationTime);\n }\n return false;\n}\n\n/**\n * Create Binding signature to the key according to the {@link https://tools.ietf.org/html/rfc4880#section-5.2.1}\n * @param {SecretSubkeyPacket} subkey - Subkey key packet\n * @param {SecretKeyPacket} primaryKey - Primary key packet\n * @param {Object} options\n * @param {Object} config - Full configuration\n */\nexport async function createBindingSignature(subkey, primaryKey, options, config) {\n const dataToSign = {};\n dataToSign.key = primaryKey;\n dataToSign.bind = subkey;\n const signatureProperties = { signatureType: enums.signature.subkeyBinding };\n if (options.sign) {\n signatureProperties.keyFlags = [enums.keyFlags.signData];\n signatureProperties.embeddedSignature = await createSignaturePacket(dataToSign, [], subkey, {\n signatureType: enums.signature.keyBinding\n }, options.date, undefined, undefined, undefined, config);\n } else {\n signatureProperties.keyFlags = [enums.keyFlags.encryptCommunication | enums.keyFlags.encryptStorage];\n }\n if (options.keyExpirationTime > 0) {\n signatureProperties.keyExpirationTime = options.keyExpirationTime;\n signatureProperties.keyNeverExpires = false;\n }\n const subkeySignaturePacket = await createSignaturePacket(dataToSign, [], primaryKey, signatureProperties, options.date, undefined, undefined, undefined, config);\n return subkeySignaturePacket;\n}\n\n/**\n * Returns the preferred signature hash algorithm for a set of keys.\n * @param {Array} [targetKeys] - The keys to get preferences from\n * @param {SecretKeyPacket|SecretSubkeyPacket} signingKeyPacket - key packet used for signing\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [targetUserID] - User IDs corresponding to `targetKeys` to get preferences from\n * @param {Object} config - full configuration\n * @returns {Promise}\n * @async\n */\nexport async function getPreferredHashAlgo(targetKeys, signingKeyPacket, date = new Date(), targetUserIDs = [], config) {\n /**\n * If `preferredSenderAlgo` appears in the prefs of all recipients, we pick it; otherwise, we use the\n * strongest supported algo (`defaultAlgo` is always implicitly supported by all keys).\n * if no keys are available, `preferredSenderAlgo` is returned.\n * For ECC signing key, the curve preferred hash is taken into account as well (see logic below).\n */\n const defaultAlgo = enums.hash.sha256; // MUST implement\n const preferredSenderAlgo = config.preferredHashAlgorithm;\n\n const supportedAlgosPerTarget = await Promise.all(targetKeys.map(async (key, i) => {\n const selfCertification = await key.getPrimarySelfSignature(date, targetUserIDs[i], config);\n const targetPrefs = selfCertification.preferredHashAlgorithms;\n return targetPrefs;\n }));\n const supportedAlgosMap = new Map(); // use Map over object to preserve numeric keys\n for (const supportedAlgos of supportedAlgosPerTarget) {\n for (const hashAlgo of supportedAlgos) {\n try {\n // ensure that `hashAlgo` is recognized/implemented by us, otherwise e.g. `getHashByteLength` will throw later on\n const supportedAlgo = enums.write(enums.hash, hashAlgo);\n supportedAlgosMap.set(\n supportedAlgo,\n supportedAlgosMap.has(supportedAlgo) ? supportedAlgosMap.get(supportedAlgo) + 1 : 1\n );\n } catch {}\n }\n }\n const isSupportedHashAlgo = hashAlgo => targetKeys.length === 0 || supportedAlgosMap.get(hashAlgo) === targetKeys.length || hashAlgo === defaultAlgo;\n const getStrongestSupportedHashAlgo = () => {\n if (supportedAlgosMap.size === 0) {\n return defaultAlgo;\n }\n const sortedHashAlgos = Array.from(supportedAlgosMap.keys())\n .filter(hashAlgo => isSupportedHashAlgo(hashAlgo))\n .sort((algoA, algoB) => crypto.hash.getHashByteLength(algoA) - crypto.hash.getHashByteLength(algoB));\n const strongestHashAlgo = sortedHashAlgos[0];\n // defaultAlgo is always implicilty supported, and might be stronger than the rest\n return crypto.hash.getHashByteLength(strongestHashAlgo) >= crypto.hash.getHashByteLength(defaultAlgo) ? strongestHashAlgo : defaultAlgo;\n };\n\n const eccAlgos = new Set([\n enums.publicKey.ecdsa,\n enums.publicKey.eddsaLegacy,\n enums.publicKey.ed25519,\n enums.publicKey.ed448\n ]);\n\n if (eccAlgos.has(signingKeyPacket.algorithm)) {\n // For ECC, the returned hash algo MUST be at least as strong as `preferredCurveHashAlgo`, see:\n // - ECDSA: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.2-5\n // - EdDSALegacy: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.3-3\n // - Ed25519: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.4-4\n // - Ed448: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.5-4\n // Hence, we return the `preferredHashAlgo` as long as it's supported and strong enough;\n // Otherwise, we look at the strongest supported algo, and ultimately fallback to the curve\n // preferred algo, even if not supported by all targets.\n const preferredCurveAlgo = crypto.getPreferredCurveHashAlgo(signingKeyPacket.algorithm, signingKeyPacket.publicParams.oid);\n\n const preferredSenderAlgoIsSupported = isSupportedHashAlgo(preferredSenderAlgo);\n const preferredSenderAlgoStrongerThanCurveAlgo = crypto.hash.getHashByteLength(preferredSenderAlgo) >= crypto.hash.getHashByteLength(preferredCurveAlgo);\n\n if (preferredSenderAlgoIsSupported && preferredSenderAlgoStrongerThanCurveAlgo) {\n return preferredSenderAlgo;\n } else {\n const strongestSupportedAlgo = getStrongestSupportedHashAlgo();\n return crypto.hash.getHashByteLength(strongestSupportedAlgo) >= crypto.hash.getHashByteLength(preferredCurveAlgo) ?\n strongestSupportedAlgo :\n preferredCurveAlgo;\n }\n }\n\n // `preferredSenderAlgo` may be weaker than the default, but we do not guard against this,\n // since it was manually set by the sender.\n return isSupportedHashAlgo(preferredSenderAlgo) ? preferredSenderAlgo : getStrongestSupportedHashAlgo();\n}\n\n/**\n * Returns the preferred compression algorithm for a set of keys\n * @param {Array} [keys] - Set of keys\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Array} [userIDs] - User IDs\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} Preferred compression algorithm\n * @async\n */\nexport async function getPreferredCompressionAlgo(keys = [], date = new Date(), userIDs = [], config = defaultConfig) {\n const defaultAlgo = enums.compression.uncompressed;\n const preferredSenderAlgo = config.preferredCompressionAlgorithm;\n\n // if preferredSenderAlgo appears in the prefs of all recipients, we pick it\n // otherwise we use the default algo\n // if no keys are available, preferredSenderAlgo is returned\n const senderAlgoSupport = await Promise.all(keys.map(async function(key, i) {\n const selfCertification = await key.getPrimarySelfSignature(date, userIDs[i], config);\n const recipientPrefs = selfCertification.preferredCompressionAlgorithms;\n return !!recipientPrefs && recipientPrefs.indexOf(preferredSenderAlgo) >= 0;\n }));\n return senderAlgoSupport.every(Boolean) ? preferredSenderAlgo : defaultAlgo;\n}\n\n/**\n * Returns the preferred symmetric and AEAD algorithm (if any) for a set of keys\n * @param {Array} [keys] - Set of keys\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Array} [userIDs] - User IDs\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<{ symmetricAlgo: module:enums.symmetric, aeadAlgo: module:enums.aead | undefined }>} Object containing the preferred symmetric algorithm, and the preferred AEAD algorithm, or undefined if CFB is preferred\n * @async\n */\nexport async function getPreferredCipherSuite(keys = [], date = new Date(), userIDs = [], config = defaultConfig) {\n const selfSigs = await Promise.all(keys.map((key, i) => key.getPrimarySelfSignature(date, userIDs[i], config)));\n const withAEAD = keys.length ?\n selfSigs.every(selfSig => selfSig.features && (selfSig.features[0] & enums.features.seipdv2)) :\n config.aeadProtect;\n\n if (withAEAD) {\n const defaultCipherSuite = { symmetricAlgo: enums.symmetric.aes128, aeadAlgo: enums.aead.ocb };\n const desiredCipherSuites = [\n { symmetricAlgo: config.preferredSymmetricAlgorithm, aeadAlgo: config.preferredAEADAlgorithm },\n { symmetricAlgo: config.preferredSymmetricAlgorithm, aeadAlgo: enums.aead.ocb },\n { symmetricAlgo: enums.symmetric.aes128, aeadAlgo: config.preferredAEADAlgorithm }\n ];\n for (const desiredCipherSuite of desiredCipherSuites) {\n if (selfSigs.every(selfSig => selfSig.preferredCipherSuites && selfSig.preferredCipherSuites.some(\n cipherSuite => cipherSuite[0] === desiredCipherSuite.symmetricAlgo && cipherSuite[1] === desiredCipherSuite.aeadAlgo\n ))) {\n return desiredCipherSuite;\n }\n }\n return defaultCipherSuite;\n }\n const defaultSymAlgo = enums.symmetric.aes128;\n const desiredSymAlgo = config.preferredSymmetricAlgorithm;\n return {\n symmetricAlgo: selfSigs.every(selfSig => selfSig.preferredSymmetricAlgorithms && selfSig.preferredSymmetricAlgorithms.includes(desiredSymAlgo)) ?\n desiredSymAlgo :\n defaultSymAlgo,\n aeadAlgo: undefined\n };\n}\n\n/**\n * Create signature packet\n * @param {Object} dataToSign - Contains packets to be signed\n * @param {Array} recipientKeys - keys to get preferences from\n * @param {SecretKeyPacket|\n * SecretSubkeyPacket} signingKeyPacket secret key packet for signing\n * @param {Object} [signatureProperties] - Properties to write on the signature packet before signing\n * @param {Date} [date] - Override the creationtime of the signature\n * @param {Object} [userID] - User ID\n * @param {Array} [notations] - Notation Data to add to the signature, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Object} [detached] - Whether to create a detached signature packet\n * @param {Object} config - full configuration\n * @returns {Promise} Signature packet.\n */\nexport async function createSignaturePacket(dataToSign, recipientKeys, signingKeyPacket, signatureProperties, date, recipientUserIDs, notations = [], detached = false, config) {\n if (signingKeyPacket.isDummy()) {\n throw new Error('Cannot sign with a gnu-dummy key.');\n }\n if (!signingKeyPacket.isDecrypted()) {\n throw new Error('Signing key is not decrypted.');\n }\n const signaturePacket = new SignaturePacket();\n Object.assign(signaturePacket, signatureProperties);\n signaturePacket.publicKeyAlgorithm = signingKeyPacket.algorithm;\n signaturePacket.hashAlgorithm = await getPreferredHashAlgo(recipientKeys, signingKeyPacket, date, recipientUserIDs, config);\n signaturePacket.rawNotations = [...notations];\n await signaturePacket.sign(signingKeyPacket, dataToSign, date, detached, config);\n return signaturePacket;\n}\n\n/**\n * Merges signatures from source[attr] to dest[attr]\n * @param {Object} source\n * @param {Object} dest\n * @param {String} attr\n * @param {Date} [date] - date to use for signature expiration check, instead of the current time\n * @param {Function} [checkFn] - signature only merged if true\n */\nexport async function mergeSignatures(source, dest, attr, date = new Date(), checkFn) {\n source = source[attr];\n if (source) {\n if (!dest[attr].length) {\n dest[attr] = source;\n } else {\n await Promise.all(source.map(async function(sourceSig) {\n if (!sourceSig.isExpired(date) && (!checkFn || await checkFn(sourceSig)) &&\n !dest[attr].some(function(destSig) {\n return util.equalsUint8Array(destSig.writeParams(), sourceSig.writeParams());\n })) {\n dest[attr].push(sourceSig);\n }\n }));\n }\n }\n}\n\n/**\n * Checks if a given certificate or binding signature is revoked\n * @param {SecretKeyPacket|\n * PublicKeyPacket} primaryKey The primary key packet\n * @param {Object} dataToVerify - The data to check\n * @param {Array} revocations - The revocation signatures to check\n * @param {SignaturePacket} signature - The certificate or signature to check\n * @param {PublicSubkeyPacket|\n * SecretSubkeyPacket|\n * PublicKeyPacket|\n * SecretKeyPacket} key, optional The key packet to verify the signature, instead of the primary key\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise} True if the signature revokes the data.\n * @async\n */\nexport async function isDataRevoked(primaryKey, signatureType, dataToVerify, revocations, signature, key, date = new Date(), config) {\n key = key || primaryKey;\n const revocationKeyIDs = [];\n await Promise.all(revocations.map(async function(revocationSignature) {\n try {\n if (\n // Note: a third-party revocation signature could legitimately revoke a\n // self-signature if the signature has an authorized revocation key.\n // However, we don't support passing authorized revocation keys, nor\n // verifying such revocation signatures. Instead, we indicate an error\n // when parsing a key with an authorized revocation key, and ignore\n // third-party revocation signatures here. (It could also be revoking a\n // third-party key certification, which should only affect\n // `verifyAllCertifications`.)\n !signature || revocationSignature.issuerKeyID.equals(signature.issuerKeyID)\n ) {\n const isHardRevocation = ![\n enums.reasonForRevocation.keyRetired,\n enums.reasonForRevocation.keySuperseded,\n enums.reasonForRevocation.userIDInvalid\n ].includes(revocationSignature.reasonForRevocationFlag);\n\n await revocationSignature.verify(\n key, signatureType, dataToVerify, isHardRevocation ? null : date, false, config\n );\n\n // TODO get an identifier of the revoked object instead\n revocationKeyIDs.push(revocationSignature.issuerKeyID);\n }\n } catch (e) {}\n }));\n // TODO further verify that this is the signature that should be revoked\n if (signature) {\n signature.revoked = revocationKeyIDs.some(keyID => keyID.equals(signature.issuerKeyID)) ? true :\n signature.revoked || false;\n return signature.revoked;\n }\n return revocationKeyIDs.length > 0;\n}\n\n/**\n * Returns key expiration time based on the given certification signature.\n * The expiration time of the signature is ignored.\n * @param {PublicSubkeyPacket|PublicKeyPacket} keyPacket - key to check\n * @param {SignaturePacket} signature - signature to process\n * @returns {Date|Infinity} expiration time or infinity if the key does not expire\n */\nexport function getKeyExpirationTime(keyPacket, signature) {\n let expirationTime;\n // check V4 expiration time\n if (signature.keyNeverExpires === false) {\n expirationTime = keyPacket.created.getTime() + signature.keyExpirationTime * 1000;\n }\n return expirationTime ? new Date(expirationTime) : Infinity;\n}\n\nexport function sanitizeKeyOptions(options, subkeyDefaults = {}) {\n options.type = options.type || subkeyDefaults.type;\n options.curve = options.curve || subkeyDefaults.curve;\n options.rsaBits = options.rsaBits || subkeyDefaults.rsaBits;\n options.keyExpirationTime = options.keyExpirationTime !== undefined ? options.keyExpirationTime : subkeyDefaults.keyExpirationTime;\n options.passphrase = util.isString(options.passphrase) ? options.passphrase : subkeyDefaults.passphrase;\n options.date = options.date || subkeyDefaults.date;\n\n options.sign = options.sign || false;\n\n switch (options.type) {\n case 'ecc': // NB: this case also handles legacy eddsa and x25519 keys, based on `options.curve`\n try {\n options.curve = enums.write(enums.curve, options.curve);\n } catch (e) {\n throw new Error('Unknown curve');\n }\n if (options.curve === enums.curve.ed25519Legacy || options.curve === enums.curve.curve25519Legacy ||\n options.curve === 'ed25519' || options.curve === 'curve25519') { // keep support for curve names without 'Legacy' addition, for now\n options.curve = options.sign ? enums.curve.ed25519Legacy : enums.curve.curve25519Legacy;\n }\n if (options.sign) {\n options.algorithm = options.curve === enums.curve.ed25519Legacy ? enums.publicKey.eddsaLegacy : enums.publicKey.ecdsa;\n } else {\n options.algorithm = enums.publicKey.ecdh;\n }\n break;\n case 'curve25519':\n options.algorithm = options.sign ? enums.publicKey.ed25519 : enums.publicKey.x25519;\n break;\n case 'curve448':\n options.algorithm = options.sign ? enums.publicKey.ed448 : enums.publicKey.x448;\n break;\n case 'rsa':\n options.algorithm = enums.publicKey.rsaEncryptSign;\n break;\n default:\n throw new Error(`Unsupported key type ${options.type}`);\n }\n return options;\n}\n\nexport function validateSigningKeyPacket(keyPacket, signature, config) {\n switch (keyPacket.algorithm) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign:\n case enums.publicKey.dsa:\n case enums.publicKey.ecdsa:\n case enums.publicKey.eddsaLegacy:\n case enums.publicKey.ed25519:\n case enums.publicKey.ed448:\n if (!signature.keyFlags && !config.allowMissingKeyFlags) {\n throw new Error('None of the key flags is set: consider passing `config.allowMissingKeyFlags`');\n }\n return !signature.keyFlags ||\n (signature.keyFlags[0] & enums.keyFlags.signData) !== 0;\n default:\n return false;\n }\n}\n\nexport function validateEncryptionKeyPacket(keyPacket, signature, config) {\n switch (keyPacket.algorithm) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.elgamal:\n case enums.publicKey.ecdh:\n case enums.publicKey.x25519:\n case enums.publicKey.x448:\n if (!signature.keyFlags && !config.allowMissingKeyFlags) {\n throw new Error('None of the key flags is set: consider passing `config.allowMissingKeyFlags`');\n }\n return !signature.keyFlags ||\n (signature.keyFlags[0] & enums.keyFlags.encryptCommunication) !== 0 ||\n (signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0;\n default:\n return false;\n }\n}\n\nexport function validateDecryptionKeyPacket(keyPacket, signature, config) {\n if (!signature.keyFlags && !config.allowMissingKeyFlags) {\n throw new Error('None of the key flags is set: consider passing `config.allowMissingKeyFlags`');\n }\n\n switch (keyPacket.algorithm) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.elgamal:\n case enums.publicKey.ecdh:\n case enums.publicKey.x25519:\n case enums.publicKey.x448: {\n const isValidSigningKeyPacket = !signature.keyFlags || (signature.keyFlags[0] & enums.keyFlags.signData) !== 0;\n if (isValidSigningKeyPacket && config.allowInsecureDecryptionWithSigningKeys) {\n // This is only relevant for RSA keys, all other signing algorithms cannot decrypt\n return true;\n }\n\n return !signature.keyFlags ||\n (signature.keyFlags[0] & enums.keyFlags.encryptCommunication) !== 0 ||\n (signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0;\n }\n default:\n return false;\n }\n}\n\n/**\n * Check key against blacklisted algorithms and minimum strength requirements.\n * @param {SecretKeyPacket|PublicKeyPacket|\n * SecretSubkeyPacket|PublicSubkeyPacket} keyPacket\n * @param {Config} config\n * @throws {Error} if the key packet does not meet the requirements\n */\nexport function checkKeyRequirements(keyPacket, config) {\n const keyAlgo = enums.write(enums.publicKey, keyPacket.algorithm);\n const algoInfo = keyPacket.getAlgorithmInfo();\n if (config.rejectPublicKeyAlgorithms.has(keyAlgo)) {\n throw new Error(`${algoInfo.algorithm} keys are considered too weak.`);\n }\n switch (keyAlgo) {\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign:\n case enums.publicKey.rsaEncrypt:\n if (algoInfo.bits < config.minRSABits) {\n throw new Error(`RSA keys shorter than ${config.minRSABits} bits are considered too weak.`);\n }\n break;\n case enums.publicKey.ecdsa:\n case enums.publicKey.eddsaLegacy:\n case enums.publicKey.ecdh:\n if (config.rejectCurves.has(algoInfo.curve)) {\n throw new Error(`Support for ${algoInfo.algorithm} keys using curve ${algoInfo.curve} is disabled.`);\n }\n break;\n default:\n break;\n }\n}\n", "/**\n * @module key/User\n */\n\nimport enums from '../enums';\nimport util from '../util';\nimport { PacketList } from '../packet';\nimport { mergeSignatures, isDataRevoked, createSignaturePacket } from './helper';\nimport defaultConfig from '../config';\n\n/**\n * Class that represents an user ID or attribute packet and the relevant signatures.\n * @param {UserIDPacket|UserAttributePacket} userPacket - packet containing the user info\n * @param {Key} mainKey - reference to main Key object containing the primary key and subkeys that the user is associated with\n */\nclass User {\n constructor(userPacket, mainKey) {\n this.userID = userPacket.constructor.tag === enums.packet.userID ? userPacket : null;\n this.userAttribute = userPacket.constructor.tag === enums.packet.userAttribute ? userPacket : null;\n this.selfCertifications = [];\n this.otherCertifications = [];\n this.revocationSignatures = [];\n this.mainKey = mainKey;\n }\n\n /**\n * Transforms structured user data to packetlist\n * @returns {PacketList}\n */\n toPacketList() {\n const packetlist = new PacketList();\n packetlist.push(this.userID || this.userAttribute);\n packetlist.push(...this.revocationSignatures);\n packetlist.push(...this.selfCertifications);\n packetlist.push(...this.otherCertifications);\n return packetlist;\n }\n\n /**\n * Shallow clone\n * @returns {User}\n */\n clone() {\n const user = new User(this.userID || this.userAttribute, this.mainKey);\n user.selfCertifications = [...this.selfCertifications];\n user.otherCertifications = [...this.otherCertifications];\n user.revocationSignatures = [...this.revocationSignatures];\n return user;\n }\n\n /**\n * Generate third-party certifications over this user and its primary key\n * @param {Array} signingKeys - Decrypted private keys for signing\n * @param {Date} [date] - Date to use as creation date of the certificate, instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise} New user with new certifications.\n * @async\n */\n async certify(signingKeys, date, config) {\n const primaryKey = this.mainKey.keyPacket;\n const dataToSign = {\n userID: this.userID,\n userAttribute: this.userAttribute,\n key: primaryKey\n };\n const user = new User(dataToSign.userID || dataToSign.userAttribute, this.mainKey);\n user.otherCertifications = await Promise.all(signingKeys.map(async function(privateKey) {\n if (!privateKey.isPrivate()) {\n throw new Error('Need private key for signing');\n }\n if (privateKey.hasSameFingerprintAs(primaryKey)) {\n throw new Error(\"The user's own key can only be used for self-certifications\");\n }\n const signingKey = await privateKey.getSigningKey(undefined, date, undefined, config);\n return createSignaturePacket(dataToSign, [privateKey], signingKey.keyPacket, {\n // Most OpenPGP implementations use generic certification (0x10)\n signatureType: enums.signature.certGeneric,\n keyFlags: [enums.keyFlags.certifyKeys | enums.keyFlags.signData]\n }, date, undefined, undefined, undefined, config);\n }));\n await user.update(this, date, config);\n return user;\n }\n\n /**\n * Checks if a given certificate of the user is revoked\n * @param {SignaturePacket} certificate - The certificate to verify\n * @param {PublicSubkeyPacket|\n * SecretSubkeyPacket|\n * PublicKeyPacket|\n * SecretKeyPacket} [keyPacket] The key packet to verify the signature, instead of the primary key\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise} True if the certificate is revoked.\n * @async\n */\n async isRevoked(certificate, keyPacket, date = new Date(), config = defaultConfig) {\n const primaryKey = this.mainKey.keyPacket;\n return isDataRevoked(primaryKey, enums.signature.certRevocation, {\n key: primaryKey,\n userID: this.userID,\n userAttribute: this.userAttribute\n }, this.revocationSignatures, certificate, keyPacket, date, config);\n }\n\n /**\n * Verifies the user certificate.\n * @param {SignaturePacket} certificate - A certificate of this user\n * @param {Array} verificationKeys - Array of keys to verify certificate signatures\n * @param {Date} [date] - Use the given date instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise} true if the certificate could be verified, or null if the verification keys do not correspond to the certificate\n * @throws if the user certificate is invalid.\n * @async\n */\n async verifyCertificate(certificate, verificationKeys, date = new Date(), config) {\n const that = this;\n const primaryKey = this.mainKey.keyPacket;\n const dataToVerify = {\n userID: this.userID,\n userAttribute: this.userAttribute,\n key: primaryKey\n };\n const { issuerKeyID } = certificate;\n const issuerKeys = verificationKeys.filter(key => key.getKeys(issuerKeyID).length > 0);\n if (issuerKeys.length === 0) {\n return null;\n }\n await Promise.all(issuerKeys.map(async key => {\n const signingKey = await key.getSigningKey(issuerKeyID, certificate.created, undefined, config);\n if (certificate.revoked || await that.isRevoked(certificate, signingKey.keyPacket, date, config)) {\n throw new Error('User certificate is revoked');\n }\n try {\n await certificate.verify(signingKey.keyPacket, enums.signature.certGeneric, dataToVerify, date, undefined, config);\n } catch (e) {\n throw util.wrapError('User certificate is invalid', e);\n }\n }));\n return true;\n }\n\n /**\n * Verifies all user certificates\n * @param {Array} verificationKeys - Array of keys to verify certificate signatures\n * @param {Date} [date] - Use the given date instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise>} List of signer's keyID and validity of signature.\n * Signature validity is null if the verification keys do not correspond to the certificate.\n * @async\n */\n async verifyAllCertifications(verificationKeys, date = new Date(), config) {\n const that = this;\n const certifications = this.selfCertifications.concat(this.otherCertifications);\n return Promise.all(certifications.map(async certification => ({\n keyID: certification.issuerKeyID,\n valid: await that.verifyCertificate(certification, verificationKeys, date, config).catch(() => false)\n })));\n }\n\n /**\n * Verify User. Checks for existence of self signatures, revocation signatures\n * and validity of self signature.\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise} Status of user.\n * @throws {Error} if there are no valid self signatures.\n * @async\n */\n async verify(date = new Date(), config) {\n if (!this.selfCertifications.length) {\n throw new Error('No self-certifications found');\n }\n const that = this;\n const primaryKey = this.mainKey.keyPacket;\n const dataToVerify = {\n userID: this.userID,\n userAttribute: this.userAttribute,\n key: primaryKey\n };\n // TODO replace when Promise.some or Promise.any are implemented\n let exception;\n for (let i = this.selfCertifications.length - 1; i >= 0; i--) {\n try {\n const selfCertification = this.selfCertifications[i];\n if (selfCertification.revoked || await that.isRevoked(selfCertification, undefined, date, config)) {\n throw new Error('Self-certification is revoked');\n }\n try {\n await selfCertification.verify(primaryKey, enums.signature.certGeneric, dataToVerify, date, undefined, config);\n } catch (e) {\n throw util.wrapError('Self-certification is invalid', e);\n }\n return true;\n } catch (e) {\n exception = e;\n }\n }\n throw exception;\n }\n\n /**\n * Update user with new components from specified user\n * @param {User} sourceUser - Source user to merge\n * @param {Date} date - Date to verify the validity of signatures\n * @param {Object} config - Full configuration\n * @returns {Promise}\n * @async\n */\n async update(sourceUser, date, config) {\n const primaryKey = this.mainKey.keyPacket;\n const dataToVerify = {\n userID: this.userID,\n userAttribute: this.userAttribute,\n key: primaryKey\n };\n // self signatures\n await mergeSignatures(sourceUser, this, 'selfCertifications', date, async function(srcSelfSig) {\n try {\n await srcSelfSig.verify(primaryKey, enums.signature.certGeneric, dataToVerify, date, false, config);\n return true;\n } catch (e) {\n return false;\n }\n });\n // other signatures\n await mergeSignatures(sourceUser, this, 'otherCertifications', date);\n // revocation signatures\n await mergeSignatures(sourceUser, this, 'revocationSignatures', date, function(srcRevSig) {\n return isDataRevoked(primaryKey, enums.signature.certRevocation, dataToVerify, [srcRevSig], undefined, undefined, date, config);\n });\n }\n\n /**\n * Revokes the user\n * @param {SecretKeyPacket} primaryKey - decrypted private primary key for revocation\n * @param {Object} reasonForRevocation - optional, object indicating the reason for revocation\n * @param {module:enums.reasonForRevocation} reasonForRevocation.flag optional, flag indicating the reason for revocation\n * @param {String} reasonForRevocation.string optional, string explaining the reason for revocation\n * @param {Date} date - optional, override the creationtime of the revocation signature\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New user with revocation signature.\n * @async\n */\n async revoke(\n primaryKey,\n {\n flag: reasonForRevocationFlag = enums.reasonForRevocation.noReason,\n string: reasonForRevocationString = ''\n } = {},\n date = new Date(),\n config = defaultConfig\n ) {\n const dataToSign = {\n userID: this.userID,\n userAttribute: this.userAttribute,\n key: primaryKey\n };\n const user = new User(dataToSign.userID || dataToSign.userAttribute, this.mainKey);\n user.revocationSignatures.push(await createSignaturePacket(dataToSign, [], primaryKey, {\n signatureType: enums.signature.certRevocation,\n reasonForRevocationFlag: enums.write(enums.reasonForRevocation, reasonForRevocationFlag),\n reasonForRevocationString\n }, date, undefined, undefined, false, config));\n await user.update(this);\n return user;\n }\n}\n\nexport default User;\n", "/**\n * @module key/Subkey\n */\n\nimport enums from '../enums';\nimport * as helper from './helper';\nimport { PacketList } from '../packet';\nimport defaultConfig from '../config';\n\n/**\n * Class that represents a subkey packet and the relevant signatures.\n * @borrows PublicSubkeyPacket#getKeyID as Subkey#getKeyID\n * @borrows PublicSubkeyPacket#getFingerprint as Subkey#getFingerprint\n * @borrows PublicSubkeyPacket#hasSameFingerprintAs as Subkey#hasSameFingerprintAs\n * @borrows PublicSubkeyPacket#getAlgorithmInfo as Subkey#getAlgorithmInfo\n * @borrows PublicSubkeyPacket#getCreationTime as Subkey#getCreationTime\n * @borrows PublicSubkeyPacket#isDecrypted as Subkey#isDecrypted\n */\nclass Subkey {\n /**\n * @param {SecretSubkeyPacket|PublicSubkeyPacket} subkeyPacket - subkey packet to hold in the Subkey\n * @param {Key} mainKey - reference to main Key object, containing the primary key packet corresponding to the subkey\n */\n constructor(subkeyPacket, mainKey) {\n this.keyPacket = subkeyPacket;\n this.bindingSignatures = [];\n this.revocationSignatures = [];\n this.mainKey = mainKey;\n }\n\n /**\n * Transforms structured subkey data to packetlist\n * @returns {PacketList}\n */\n toPacketList() {\n const packetlist = new PacketList();\n packetlist.push(this.keyPacket);\n packetlist.push(...this.revocationSignatures);\n packetlist.push(...this.bindingSignatures);\n return packetlist;\n }\n\n /**\n * Shallow clone\n * @return {Subkey}\n */\n clone() {\n const subkey = new Subkey(this.keyPacket, this.mainKey);\n subkey.bindingSignatures = [...this.bindingSignatures];\n subkey.revocationSignatures = [...this.revocationSignatures];\n return subkey;\n }\n\n /**\n * Checks if a binding signature of a subkey is revoked\n * @param {SignaturePacket} signature - The binding signature to verify\n * @param {PublicSubkeyPacket|\n * SecretSubkeyPacket|\n * PublicKeyPacket|\n * SecretKeyPacket} key, optional The key to verify the signature\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} True if the binding signature is revoked.\n * @async\n */\n async isRevoked(signature, key, date = new Date(), config = defaultConfig) {\n const primaryKey = this.mainKey.keyPacket;\n return helper.isDataRevoked(\n primaryKey, enums.signature.subkeyRevocation, {\n key: primaryKey,\n bind: this.keyPacket\n }, this.revocationSignatures, signature, key, date, config\n );\n }\n\n /**\n * Verify subkey. Checks for revocation signatures, expiration time\n * and valid binding signature.\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise}\n * @throws {Error} if the subkey is invalid.\n * @async\n */\n async verify(date = new Date(), config = defaultConfig) {\n const primaryKey = this.mainKey.keyPacket;\n const dataToVerify = { key: primaryKey, bind: this.keyPacket };\n // check subkey binding signatures\n const bindingSignature = await helper.getLatestValidSignature(this.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config);\n // check binding signature is not revoked\n if (bindingSignature.revoked || await this.isRevoked(bindingSignature, null, date, config)) {\n throw new Error('Subkey is revoked');\n }\n // check for expiration time\n if (helper.isDataExpired(this.keyPacket, bindingSignature, date)) {\n throw new Error('Subkey is expired');\n }\n return bindingSignature;\n }\n\n /**\n * Returns the expiration time of the subkey or Infinity if key does not expire.\n * Returns null if the subkey is invalid.\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise}\n * @async\n */\n async getExpirationTime(date = new Date(), config = defaultConfig) {\n const primaryKey = this.mainKey.keyPacket;\n const dataToVerify = { key: primaryKey, bind: this.keyPacket };\n let bindingSignature;\n try {\n bindingSignature = await helper.getLatestValidSignature(this.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config);\n } catch (e) {\n return null;\n }\n const keyExpiry = helper.getKeyExpirationTime(this.keyPacket, bindingSignature);\n const sigExpiry = bindingSignature.getExpirationTime();\n return keyExpiry < sigExpiry ? keyExpiry : sigExpiry;\n }\n\n /**\n * Update subkey with new components from specified subkey\n * @param {Subkey} subkey - Source subkey to merge\n * @param {Date} [date] - Date to verify validity of signatures\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if update failed\n * @async\n */\n async update(subkey, date = new Date(), config = defaultConfig) {\n const primaryKey = this.mainKey.keyPacket;\n if (!this.hasSameFingerprintAs(subkey)) {\n throw new Error('Subkey update method: fingerprints of subkeys not equal');\n }\n // key packet\n if (this.keyPacket.constructor.tag === enums.packet.publicSubkey &&\n subkey.keyPacket.constructor.tag === enums.packet.secretSubkey) {\n this.keyPacket = subkey.keyPacket;\n }\n // update missing binding signatures\n const that = this;\n const dataToVerify = { key: primaryKey, bind: that.keyPacket };\n await helper.mergeSignatures(subkey, this, 'bindingSignatures', date, async function(srcBindSig) {\n for (let i = 0; i < that.bindingSignatures.length; i++) {\n if (that.bindingSignatures[i].issuerKeyID.equals(srcBindSig.issuerKeyID)) {\n if (srcBindSig.created > that.bindingSignatures[i].created) {\n that.bindingSignatures[i] = srcBindSig;\n }\n return false;\n }\n }\n try {\n await srcBindSig.verify(primaryKey, enums.signature.subkeyBinding, dataToVerify, date, undefined, config);\n return true;\n } catch (e) {\n return false;\n }\n });\n // revocation signatures\n await helper.mergeSignatures(subkey, this, 'revocationSignatures', date, function(srcRevSig) {\n return helper.isDataRevoked(primaryKey, enums.signature.subkeyRevocation, dataToVerify, [srcRevSig], undefined, undefined, date, config);\n });\n }\n\n /**\n * Revokes the subkey\n * @param {SecretKeyPacket} primaryKey - decrypted private primary key for revocation\n * @param {Object} reasonForRevocation - optional, object indicating the reason for revocation\n * @param {module:enums.reasonForRevocation} reasonForRevocation.flag optional, flag indicating the reason for revocation\n * @param {String} reasonForRevocation.string optional, string explaining the reason for revocation\n * @param {Date} date - optional, override the creationtime of the revocation signature\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New subkey with revocation signature.\n * @async\n */\n async revoke(\n primaryKey,\n {\n flag: reasonForRevocationFlag = enums.reasonForRevocation.noReason,\n string: reasonForRevocationString = ''\n } = {},\n date = new Date(),\n config = defaultConfig\n ) {\n const dataToSign = { key: primaryKey, bind: this.keyPacket };\n const subkey = new Subkey(this.keyPacket, this.mainKey);\n subkey.revocationSignatures.push(await helper.createSignaturePacket(dataToSign, [], primaryKey, {\n signatureType: enums.signature.subkeyRevocation,\n reasonForRevocationFlag: enums.write(enums.reasonForRevocation, reasonForRevocationFlag),\n reasonForRevocationString\n }, date, undefined, undefined, false, config));\n await subkey.update(this);\n return subkey;\n }\n\n hasSameFingerprintAs(other) {\n return this.keyPacket.hasSameFingerprintAs(other.keyPacket || other);\n }\n}\n\n['getKeyID', 'getFingerprint', 'getAlgorithmInfo', 'getCreationTime', 'isDecrypted'].forEach(name => {\n Subkey.prototype[name] =\n function() {\n return this.keyPacket[name]();\n };\n});\n\nexport default Subkey;\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { armor, unarmor } from '../encoding/armor';\nimport {\n PacketList,\n SignaturePacket\n} from '../packet';\nimport defaultConfig from '../config';\nimport enums from '../enums';\nimport util from '../util';\nimport User from './user';\nimport Subkey from './subkey';\nimport * as helper from './helper';\nimport { UnparseablePacket } from '../packet/packet';\n\n// A key revocation certificate can contain the following packets\nconst allowedRevocationPackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\nconst mainKeyPacketTags = new Set([enums.packet.publicKey, enums.packet.privateKey]);\nconst keyPacketTags = new Set([\n enums.packet.publicKey, enums.packet.privateKey,\n enums.packet.publicSubkey, enums.packet.privateSubkey\n]);\n\n/**\n * Abstract class that represents an OpenPGP key. Must contain a primary key.\n * Can contain additional subkeys, signatures, user ids, user attributes.\n * @borrows PublicKeyPacket#getKeyID as Key#getKeyID\n * @borrows PublicKeyPacket#getFingerprint as Key#getFingerprint\n * @borrows PublicKeyPacket#hasSameFingerprintAs as Key#hasSameFingerprintAs\n * @borrows PublicKeyPacket#getAlgorithmInfo as Key#getAlgorithmInfo\n * @borrows PublicKeyPacket#getCreationTime as Key#getCreationTime\n */\nclass Key {\n /**\n * Transforms packetlist to structured key data\n * @param {PacketList} packetlist - The packets that form a key\n * @param {Set} disallowedPackets - disallowed packet tags\n */\n packetListToStructure(packetlist, disallowedPackets = new Set()) {\n let user;\n let primaryKeyID;\n let subkey;\n let ignoreUntil;\n\n for (const packet of packetlist) {\n\n if (packet instanceof UnparseablePacket) {\n const isUnparseableKeyPacket = keyPacketTags.has(packet.tag);\n if (isUnparseableKeyPacket && !ignoreUntil) {\n // Since non-key packets apply to the preceding key packet, if a (sub)key is Unparseable we must\n // discard all non-key packets that follow, until another (sub)key packet is found.\n if (mainKeyPacketTags.has(packet.tag)) {\n ignoreUntil = mainKeyPacketTags;\n } else {\n ignoreUntil = keyPacketTags;\n }\n }\n continue;\n }\n\n const tag = packet.constructor.tag;\n if (ignoreUntil) {\n if (!ignoreUntil.has(tag)) continue;\n ignoreUntil = null;\n }\n if (disallowedPackets.has(tag)) {\n throw new Error(`Unexpected packet type: ${tag}`);\n }\n switch (tag) {\n case enums.packet.publicKey:\n case enums.packet.secretKey:\n if (this.keyPacket) {\n throw new Error('Key block contains multiple keys');\n }\n this.keyPacket = packet;\n primaryKeyID = this.getKeyID();\n if (!primaryKeyID) {\n throw new Error('Missing Key ID');\n }\n break;\n case enums.packet.userID:\n case enums.packet.userAttribute:\n user = new User(packet, this);\n this.users.push(user);\n break;\n case enums.packet.publicSubkey:\n case enums.packet.secretSubkey:\n user = null;\n subkey = new Subkey(packet, this);\n this.subkeys.push(subkey);\n break;\n case enums.packet.signature:\n switch (packet.signatureType) {\n case enums.signature.certGeneric:\n case enums.signature.certPersona:\n case enums.signature.certCasual:\n case enums.signature.certPositive:\n if (!user) {\n util.printDebug('Dropping certification signatures without preceding user packet');\n continue;\n }\n if (packet.issuerKeyID.equals(primaryKeyID)) {\n user.selfCertifications.push(packet);\n } else {\n user.otherCertifications.push(packet);\n }\n break;\n case enums.signature.certRevocation:\n if (user) {\n user.revocationSignatures.push(packet);\n } else {\n this.directSignatures.push(packet);\n }\n break;\n case enums.signature.key:\n this.directSignatures.push(packet);\n break;\n case enums.signature.subkeyBinding:\n if (!subkey) {\n util.printDebug('Dropping subkey binding signature without preceding subkey packet');\n continue;\n }\n subkey.bindingSignatures.push(packet);\n break;\n case enums.signature.keyRevocation:\n this.revocationSignatures.push(packet);\n break;\n case enums.signature.subkeyRevocation:\n if (!subkey) {\n util.printDebug('Dropping subkey revocation signature without preceding subkey packet');\n continue;\n }\n subkey.revocationSignatures.push(packet);\n break;\n }\n break;\n }\n }\n }\n\n /**\n * Transforms structured key data to packetlist\n * @returns {PacketList} The packets that form a key.\n */\n toPacketList() {\n const packetlist = new PacketList();\n packetlist.push(this.keyPacket);\n packetlist.push(...this.revocationSignatures);\n packetlist.push(...this.directSignatures);\n this.users.map(user => packetlist.push(...user.toPacketList()));\n this.subkeys.map(subkey => packetlist.push(...subkey.toPacketList()));\n return packetlist;\n }\n\n /**\n * Clones the key object. The copy is shallow, as it references the same packet objects as the original. However, if the top-level API is used, the two key instances are effectively independent.\n * @param {Boolean} [clonePrivateParams=false] Only relevant for private keys: whether the secret key paramenters should be deeply copied. This is needed if e.g. `encrypt()` is to be called either on the clone or the original key.\n * @returns {Promise} Clone of the key.\n */\n clone(clonePrivateParams = false) {\n const key = new this.constructor(this.toPacketList());\n if (clonePrivateParams) {\n key.getKeys().forEach(k => {\n // shallow clone the key packets\n k.keyPacket = Object.create(\n Object.getPrototypeOf(k.keyPacket),\n Object.getOwnPropertyDescriptors(k.keyPacket)\n );\n if (!k.keyPacket.isDecrypted()) return;\n // deep clone the private params, which are cleared during encryption\n const privateParams = {};\n Object.keys(k.keyPacket.privateParams).forEach(name => {\n privateParams[name] = new Uint8Array(k.keyPacket.privateParams[name]);\n });\n k.keyPacket.privateParams = privateParams;\n });\n }\n return key;\n }\n\n /**\n * Returns an array containing all public or private subkeys matching keyID;\n * If no keyID is given, returns all subkeys.\n * @param {type/keyID} [keyID] - key ID to look for\n * @returns {Array} array of subkeys\n */\n getSubkeys(keyID = null) {\n const subkeys = this.subkeys.filter(subkey => (\n !keyID || subkey.getKeyID().equals(keyID, true)\n ));\n return subkeys;\n }\n\n /**\n * Returns an array containing all public or private keys matching keyID.\n * If no keyID is given, returns all keys, starting with the primary key.\n * @param {type/keyid~KeyID} [keyID] - key ID to look for\n * @returns {Array} array of keys\n */\n getKeys(keyID = null) {\n const keys = [];\n if (!keyID || this.getKeyID().equals(keyID, true)) {\n keys.push(this);\n }\n return keys.concat(this.getSubkeys(keyID));\n }\n\n /**\n * Returns key IDs of all keys\n * @returns {Array}\n */\n getKeyIDs() {\n return this.getKeys().map(key => key.getKeyID());\n }\n\n /**\n * Returns userIDs\n * @returns {Array} Array of userIDs.\n */\n getUserIDs() {\n return this.users.map(user => {\n return user.userID ? user.userID.userID : null;\n }).filter(userID => userID !== null);\n }\n\n /**\n * Returns binary encoded key\n * @returns {Uint8Array} Binary key.\n */\n write() {\n return this.toPacketList().write();\n }\n\n /**\n * Returns last created key or key by given keyID that is available for signing and verification\n * @param {module:type/keyid~KeyID} [keyID] - key ID of a specific key to retrieve\n * @param {Date} [date] - use the fiven date date to to check key validity instead of the current date\n * @param {Object} [userID] - filter keys for the given user ID\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} signing key\n * @throws if no valid signing key was found\n * @async\n */\n async getSigningKey(keyID = null, date = new Date(), userID = {}, config = defaultConfig) {\n await this.verifyPrimaryKey(date, userID, config);\n const primaryKey = this.keyPacket;\n try {\n helper.checkKeyRequirements(primaryKey, config);\n } catch (err) {\n throw util.wrapError('Could not verify primary key', err);\n }\n const subkeys = this.subkeys.slice().sort((a, b) => b.keyPacket.created - a.keyPacket.created);\n let exception;\n for (const subkey of subkeys) {\n if (!keyID || subkey.getKeyID().equals(keyID)) {\n try {\n await subkey.verify(date, config);\n const dataToVerify = { key: primaryKey, bind: subkey.keyPacket };\n const bindingSignature = await helper.getLatestValidSignature(\n subkey.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config\n );\n if (!helper.validateSigningKeyPacket(subkey.keyPacket, bindingSignature, config)) {\n continue;\n }\n if (!bindingSignature.embeddedSignature) {\n throw new Error('Missing embedded signature');\n }\n // verify embedded signature\n await helper.getLatestValidSignature(\n [bindingSignature.embeddedSignature], subkey.keyPacket, enums.signature.keyBinding, dataToVerify, date, config\n );\n helper.checkKeyRequirements(subkey.keyPacket, config);\n return subkey;\n } catch (e) {\n exception = e;\n }\n }\n }\n\n try {\n const selfCertification = await this.getPrimarySelfSignature(date, userID, config);\n if ((!keyID || primaryKey.getKeyID().equals(keyID)) &&\n helper.validateSigningKeyPacket(primaryKey, selfCertification, config)) {\n helper.checkKeyRequirements(primaryKey, config);\n return this;\n }\n } catch (e) {\n exception = e;\n }\n throw util.wrapError('Could not find valid signing key packet in key ' + this.getKeyID().toHex(), exception);\n }\n\n /**\n * Returns last created key or key by given keyID that is available for encryption or decryption\n * @param {module:type/keyid~KeyID} [keyID] - key ID of a specific key to retrieve\n * @param {Date} [date] - use the fiven date date to to check key validity instead of the current date\n * @param {Object} [userID] - filter keys for the given user ID\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} encryption key\n * @throws if no valid encryption key was found\n * @async\n */\n async getEncryptionKey(keyID, date = new Date(), userID = {}, config = defaultConfig) {\n await this.verifyPrimaryKey(date, userID, config);\n const primaryKey = this.keyPacket;\n try {\n helper.checkKeyRequirements(primaryKey, config);\n } catch (err) {\n throw util.wrapError('Could not verify primary key', err);\n }\n // V4: by convention subkeys are preferred for encryption service\n const subkeys = this.subkeys.slice().sort((a, b) => b.keyPacket.created - a.keyPacket.created);\n let exception;\n for (const subkey of subkeys) {\n if (!keyID || subkey.getKeyID().equals(keyID)) {\n try {\n await subkey.verify(date, config);\n const dataToVerify = { key: primaryKey, bind: subkey.keyPacket };\n const bindingSignature = await helper.getLatestValidSignature(subkey.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config);\n if (helper.validateEncryptionKeyPacket(subkey.keyPacket, bindingSignature, config)) {\n helper.checkKeyRequirements(subkey.keyPacket, config);\n return subkey;\n }\n } catch (e) {\n exception = e;\n }\n }\n }\n\n try {\n // if no valid subkey for encryption, evaluate primary key\n const selfCertification = await this.getPrimarySelfSignature(date, userID, config);\n if ((!keyID || primaryKey.getKeyID().equals(keyID)) &&\n helper.validateEncryptionKeyPacket(primaryKey, selfCertification, config)) {\n helper.checkKeyRequirements(primaryKey, config);\n return this;\n }\n } catch (e) {\n exception = e;\n }\n throw util.wrapError('Could not find valid encryption key packet in key ' + this.getKeyID().toHex(), exception);\n }\n\n /**\n * Checks if a signature on a key is revoked\n * @param {SignaturePacket} signature - The signature to verify\n * @param {PublicSubkeyPacket|\n * SecretSubkeyPacket|\n * PublicKeyPacket|\n * SecretKeyPacket} key, optional The key to verify the signature\n * @param {Date} [date] - Use the given date for verification, instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} True if the certificate is revoked.\n * @async\n */\n async isRevoked(signature, key, date = new Date(), config = defaultConfig) {\n return helper.isDataRevoked(\n this.keyPacket, enums.signature.keyRevocation, { key: this.keyPacket }, this.revocationSignatures, signature, key, date, config\n );\n }\n\n /**\n * Verify primary key. Checks for revocation signatures, expiration time\n * and valid self signature. Throws if the primary key is invalid.\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [userID] - User ID\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} If key verification failed\n * @async\n */\n async verifyPrimaryKey(date = new Date(), userID = {}, config = defaultConfig) {\n const primaryKey = this.keyPacket;\n // check for key revocation signatures\n if (await this.isRevoked(null, null, date, config)) {\n throw new Error('Primary key is revoked');\n }\n // check for valid, unrevoked, unexpired self signature\n const selfCertification = await this.getPrimarySelfSignature(date, userID, config);\n // check for expiration time in binding signatures\n if (helper.isDataExpired(primaryKey, selfCertification, date)) {\n throw new Error('Primary key is expired');\n }\n if (primaryKey.version !== 6) {\n // check for expiration time in direct signatures (for V6 keys, the above already did so)\n const directSignature = await helper.getLatestValidSignature(\n this.directSignatures, primaryKey, enums.signature.key, { key: primaryKey }, date, config\n ).catch(() => {}); // invalid signatures are discarded, to avoid breaking the key\n\n if (directSignature && helper.isDataExpired(primaryKey, directSignature, date)) {\n throw new Error('Primary key is expired');\n }\n }\n }\n\n /**\n * Returns the expiration date of the primary key, considering self-certifications and direct-key signatures.\n * Returns `Infinity` if the key doesn't expire, or `null` if the key is revoked or invalid.\n * @param {Object} [userID] - User ID to consider instead of the primary user\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise}\n * @async\n */\n async getExpirationTime(userID, config = defaultConfig) {\n let primaryKeyExpiry;\n try {\n const selfCertification = await this.getPrimarySelfSignature(null, userID, config);\n const selfSigKeyExpiry = helper.getKeyExpirationTime(this.keyPacket, selfCertification);\n const selfSigExpiry = selfCertification.getExpirationTime();\n const directSignature = this.keyPacket.version !== 6 && // For V6 keys, the above already returns the direct-key signature.\n await helper.getLatestValidSignature(\n this.directSignatures, this.keyPacket, enums.signature.key, { key: this.keyPacket }, null, config\n ).catch(() => {});\n if (directSignature) {\n const directSigKeyExpiry = helper.getKeyExpirationTime(this.keyPacket, directSignature);\n // We do not support the edge case where the direct signature expires, since it would invalidate the corresponding key expiration,\n // causing a discountinous validy period for the key\n primaryKeyExpiry = Math.min(selfSigKeyExpiry, selfSigExpiry, directSigKeyExpiry);\n } else {\n primaryKeyExpiry = selfSigKeyExpiry < selfSigExpiry ? selfSigKeyExpiry : selfSigExpiry;\n }\n } catch (e) {\n primaryKeyExpiry = null;\n }\n\n return util.normalizeDate(primaryKeyExpiry);\n }\n\n\n /**\n * For V4 keys, returns the self-signature of the primary user.\n * For V5 keys, returns the latest valid direct-key self-signature.\n * This self-signature is to be used to check the key expiration,\n * algorithm preferences, and so on.\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [userID] - User ID to get instead of the primary user for V4 keys, if it exists\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} The primary self-signature\n * @async\n */\n async getPrimarySelfSignature(date = new Date(), userID = {}, config = defaultConfig) {\n const primaryKey = this.keyPacket;\n if (primaryKey.version === 6) {\n return helper.getLatestValidSignature(\n this.directSignatures, primaryKey, enums.signature.key, { key: primaryKey }, date, config\n );\n }\n const { selfCertification } = await this.getPrimaryUser(date, userID, config);\n return selfCertification;\n }\n\n /**\n * Returns primary user and most significant (latest valid) self signature\n * - if multiple primary users exist, returns the one with the latest self signature\n * - otherwise, returns the user with the latest self signature\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [userID] - User ID to get instead of the primary user, if it exists\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<{\n * user: User,\n * selfCertification: SignaturePacket\n * }>} The primary user and the self signature\n * @async\n */\n async getPrimaryUser(date = new Date(), userID = {}, config = defaultConfig) {\n const primaryKey = this.keyPacket;\n const users = [];\n let exception;\n for (let i = 0; i < this.users.length; i++) {\n try {\n const user = this.users[i];\n if (!user.userID) {\n continue;\n }\n if (\n (userID.name !== undefined && user.userID.name !== userID.name) ||\n (userID.email !== undefined && user.userID.email !== userID.email) ||\n (userID.comment !== undefined && user.userID.comment !== userID.comment)\n ) {\n throw new Error('Could not find user that matches that user ID');\n }\n const dataToVerify = { userID: user.userID, key: primaryKey };\n const selfCertification = await helper.getLatestValidSignature(user.selfCertifications, primaryKey, enums.signature.certGeneric, dataToVerify, date, config);\n users.push({ index: i, user, selfCertification });\n } catch (e) {\n exception = e;\n }\n }\n if (!users.length) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw exception || new Error('Could not find primary user');\n }\n await Promise.all(users.map(async function (a) {\n return a.selfCertification.revoked || a.user.isRevoked(a.selfCertification, null, date, config);\n }));\n // sort by primary user flag and signature creation time\n const primaryUser = users.sort(function(a, b) {\n const A = a.selfCertification;\n const B = b.selfCertification;\n return B.revoked - A.revoked || A.isPrimaryUserID - B.isPrimaryUserID || A.created - B.created;\n }).pop();\n const { user, selfCertification: cert } = primaryUser;\n if (cert.revoked || await user.isRevoked(cert, null, date, config)) {\n throw new Error('Primary user is revoked');\n }\n return primaryUser;\n }\n\n /**\n * Update key with new components from specified key with same key ID:\n * users, subkeys, certificates are merged into the destination key,\n * duplicates and expired signatures are ignored.\n *\n * If the source key is a private key and the destination key is public,\n * a private key is returned.\n * @param {Key} sourceKey - Source key to merge\n * @param {Date} [date] - Date to verify validity of signatures and keys\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} updated key\n * @async\n */\n async update(sourceKey, date = new Date(), config = defaultConfig) {\n if (!this.hasSameFingerprintAs(sourceKey)) {\n throw new Error('Primary key fingerprints must be equal to update the key');\n }\n if (!this.isPrivate() && sourceKey.isPrivate()) {\n // check for equal subkey packets\n const equal = (this.subkeys.length === sourceKey.subkeys.length) &&\n (this.subkeys.every(destSubkey => {\n return sourceKey.subkeys.some(srcSubkey => {\n return destSubkey.hasSameFingerprintAs(srcSubkey);\n });\n }));\n if (!equal) {\n throw new Error('Cannot update public key with private key if subkeys mismatch');\n }\n\n return sourceKey.update(this, config);\n }\n // from here on, either:\n // - destination key is private, source key is public\n // - the keys are of the same type\n // hence we don't need to convert the destination key type\n const updatedKey = this.clone();\n // revocation signatures\n await helper.mergeSignatures(sourceKey, updatedKey, 'revocationSignatures', date, srcRevSig => {\n return helper.isDataRevoked(updatedKey.keyPacket, enums.signature.keyRevocation, updatedKey, [srcRevSig], null, sourceKey.keyPacket, date, config);\n });\n // direct signatures\n await helper.mergeSignatures(sourceKey, updatedKey, 'directSignatures', date);\n // update users\n await Promise.all(sourceKey.users.map(async srcUser => {\n // multiple users with the same ID/attribute are not explicitly disallowed by the spec\n // hence we support them, just in case\n const usersToUpdate = updatedKey.users.filter(dstUser => (\n (srcUser.userID && srcUser.userID.equals(dstUser.userID)) ||\n (srcUser.userAttribute && srcUser.userAttribute.equals(dstUser.userAttribute))\n ));\n if (usersToUpdate.length > 0) {\n await Promise.all(\n usersToUpdate.map(userToUpdate => userToUpdate.update(srcUser, date, config))\n );\n } else {\n const newUser = srcUser.clone();\n newUser.mainKey = updatedKey;\n updatedKey.users.push(newUser);\n }\n }));\n // update subkeys\n await Promise.all(sourceKey.subkeys.map(async srcSubkey => {\n // multiple subkeys with same fingerprint might be preset\n const subkeysToUpdate = updatedKey.subkeys.filter(dstSubkey => (\n dstSubkey.hasSameFingerprintAs(srcSubkey)\n ));\n if (subkeysToUpdate.length > 0) {\n await Promise.all(\n subkeysToUpdate.map(subkeyToUpdate => subkeyToUpdate.update(srcSubkey, date, config))\n );\n } else {\n const newSubkey = srcSubkey.clone();\n newSubkey.mainKey = updatedKey;\n updatedKey.subkeys.push(newSubkey);\n }\n }));\n\n return updatedKey;\n }\n\n /**\n * Get revocation certificate from a revoked key.\n * (To get a revocation certificate for an unrevoked key, call revoke() first.)\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} Armored revocation certificate.\n * @async\n */\n async getRevocationCertificate(date = new Date(), config = defaultConfig) {\n const dataToVerify = { key: this.keyPacket };\n const revocationSignature = await helper.getLatestValidSignature(this.revocationSignatures, this.keyPacket, enums.signature.keyRevocation, dataToVerify, date, config);\n const packetlist = new PacketList();\n packetlist.push(revocationSignature);\n // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.\n const emitChecksum = this.keyPacket.version !== 6;\n return armor(enums.armor.publicKey, packetlist.write(), null, null, 'This is a revocation certificate', emitChecksum, config);\n }\n\n /**\n * Applies a revocation certificate to a key\n * This adds the first signature packet in the armored text to the key,\n * if it is a valid revocation signature.\n * @param {String} revocationCertificate - armored revocation certificate\n * @param {Date} [date] - Date to verify the certificate\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} Revoked key.\n * @async\n */\n async applyRevocationCertificate(revocationCertificate, date = new Date(), config = defaultConfig) {\n const input = await unarmor(revocationCertificate, config);\n const packetlist = await PacketList.fromBinary(input.data, allowedRevocationPackets, config);\n const revocationSignature = packetlist.findPacket(enums.packet.signature);\n if (!revocationSignature || revocationSignature.signatureType !== enums.signature.keyRevocation) {\n throw new Error('Could not find revocation signature packet');\n }\n if (!revocationSignature.issuerKeyID.equals(this.getKeyID())) {\n throw new Error('Revocation signature does not match key');\n }\n try {\n await revocationSignature.verify(this.keyPacket, enums.signature.keyRevocation, { key: this.keyPacket }, date, undefined, config);\n } catch (e) {\n throw util.wrapError('Could not verify revocation signature', e);\n }\n const key = this.clone();\n key.revocationSignatures.push(revocationSignature);\n return key;\n }\n\n /**\n * Signs primary user of key\n * @param {Array} privateKeys - decrypted private keys for signing\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [userID] - User ID to get instead of the primary user, if it exists\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} Key with new certificate signature.\n * @async\n */\n async signPrimaryUser(privateKeys, date, userID, config = defaultConfig) {\n const { index, user } = await this.getPrimaryUser(date, userID, config);\n const userSign = await user.certify(privateKeys, date, config);\n const key = this.clone();\n key.users[index] = userSign;\n return key;\n }\n\n /**\n * Signs all users of key\n * @param {Array} privateKeys - decrypted private keys for signing\n * @param {Date} [date] - Use the given date for signing, instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} Key with new certificate signature.\n * @async\n */\n async signAllUsers(privateKeys, date = new Date(), config = defaultConfig) {\n const key = this.clone();\n key.users = await Promise.all(this.users.map(function(user) {\n return user.certify(privateKeys, date, config);\n }));\n return key;\n }\n\n /**\n * Verifies primary user of key\n * - if no arguments are given, verifies the self certificates;\n * - otherwise, verifies all certificates signed with given keys.\n * @param {Array} [verificationKeys] - array of keys to verify certificate signatures, instead of the primary key\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [userID] - User ID to get instead of the primary user, if it exists\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise>} List of signer's keyID and validity of signature.\n * Signature validity is null if the verification keys do not correspond to the certificate.\n * @async\n */\n async verifyPrimaryUser(verificationKeys, date = new Date(), userID, config = defaultConfig) {\n const primaryKey = this.keyPacket;\n const { user } = await this.getPrimaryUser(date, userID, config);\n const results = verificationKeys ?\n await user.verifyAllCertifications(verificationKeys, date, config) :\n [{ keyID: primaryKey.getKeyID(), valid: await user.verify(date, config).catch(() => false) }];\n return results;\n }\n\n /**\n * Verifies all users of key\n * - if no arguments are given, verifies the self certificates;\n * - otherwise, verifies all certificates signed with given keys.\n * @param {Array} [verificationKeys] - array of keys to verify certificate signatures\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise>} List of userID, signer's keyID and validity of signature.\n * Signature validity is null if the verification keys do not correspond to the certificate.\n * @async\n */\n async verifyAllUsers(verificationKeys, date = new Date(), config = defaultConfig) {\n const primaryKey = this.keyPacket;\n const results = [];\n await Promise.all(this.users.map(async user => {\n const signatures = verificationKeys ?\n await user.verifyAllCertifications(verificationKeys, date, config) :\n [{ keyID: primaryKey.getKeyID(), valid: await user.verify(date, config).catch(() => false) }];\n\n results.push(...signatures.map(\n signature => ({\n userID: user.userID ? user.userID.userID : null,\n userAttribute: user.userAttribute,\n keyID: signature.keyID,\n valid: signature.valid\n }))\n );\n }));\n return results;\n }\n}\n\n['getKeyID', 'getFingerprint', 'getAlgorithmInfo', 'getCreationTime', 'hasSameFingerprintAs'].forEach(name => {\n Key.prototype[name] =\n Subkey.prototype[name];\n});\n\nexport default Key;\n", "// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { armor } from '../encoding/armor';\nimport defaultConfig from '../config';\nimport enums from '../enums';\nimport Key from './key';\n\n/**\n * Class that represents an OpenPGP Public Key\n */\nclass PublicKey extends Key {\n /**\n * @param {PacketList} packetlist - The packets that form this key\n */\n constructor(packetlist) {\n super();\n this.keyPacket = null;\n this.revocationSignatures = [];\n this.directSignatures = [];\n this.users = [];\n this.subkeys = [];\n if (packetlist) {\n this.packetListToStructure(packetlist, new Set([enums.packet.secretKey, enums.packet.secretSubkey]));\n if (!this.keyPacket) {\n throw new Error('Invalid key: missing public-key packet');\n }\n }\n }\n\n /**\n * Returns true if this is a private key\n * @returns {false}\n */\n isPrivate() {\n return false;\n }\n\n /**\n * Returns key as public key (shallow copy)\n * @returns {PublicKey} New public Key\n */\n toPublic() {\n return this;\n }\n\n /**\n * Returns ASCII armored text of key\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {ReadableStream} ASCII armor.\n */\n armor(config = defaultConfig) {\n // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.\n const emitChecksum = this.keyPacket.version !== 6;\n return armor(enums.armor.publicKey, this.toPacketList().write(), undefined, undefined, undefined, emitChecksum, config);\n }\n}\n\nexport default PublicKey;\n\n", "import PublicKey from './public_key';\nimport { armor } from '../encoding/armor';\nimport {\n PacketList,\n PublicKeyPacket,\n PublicSubkeyPacket\n} from '../packet';\nimport defaultConfig from '../config';\nimport enums from '../enums';\nimport * as helper from './helper';\n\n/**\n * Class that represents an OpenPGP Private key\n */\nclass PrivateKey extends PublicKey {\n /**\n * @param {PacketList} packetlist - The packets that form this key\n */\n constructor(packetlist) {\n super();\n this.packetListToStructure(packetlist, new Set([enums.packet.publicKey, enums.packet.publicSubkey]));\n if (!this.keyPacket) {\n throw new Error('Invalid key: missing private-key packet');\n }\n }\n\n /**\n * Returns true if this is a private key\n * @returns {Boolean}\n */\n isPrivate() {\n return true;\n }\n\n /**\n * Returns key as public key (shallow copy)\n * @returns {PublicKey} New public Key\n */\n toPublic() {\n const packetlist = new PacketList();\n const keyPackets = this.toPacketList();\n for (const keyPacket of keyPackets) {\n switch (keyPacket.constructor.tag) {\n case enums.packet.secretKey: {\n const pubKeyPacket = PublicKeyPacket.fromSecretKeyPacket(keyPacket);\n packetlist.push(pubKeyPacket);\n break;\n }\n case enums.packet.secretSubkey: {\n const pubSubkeyPacket = PublicSubkeyPacket.fromSecretSubkeyPacket(keyPacket);\n packetlist.push(pubSubkeyPacket);\n break;\n }\n default:\n packetlist.push(keyPacket);\n }\n }\n return new PublicKey(packetlist);\n }\n\n /**\n * Returns ASCII armored text of key\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {ReadableStream} ASCII armor.\n */\n armor(config = defaultConfig) {\n // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.\n const emitChecksum = this.keyPacket.version !== 6;\n return armor(enums.armor.privateKey, this.toPacketList().write(), undefined, undefined, undefined, emitChecksum, config);\n }\n\n /**\n * Returns all keys that are available for decryption, matching the keyID when given\n * This is useful to retrieve keys for session key decryption\n * @param {module:type/keyid~KeyID} keyID, optional\n * @param {Date} date, optional\n * @param {String} userID, optional\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise>} Array of decryption keys.\n * @throws {Error} if no decryption key is found\n * @async\n */\n async getDecryptionKeys(keyID, date = new Date(), userID = {}, config = defaultConfig) {\n const primaryKey = this.keyPacket;\n const keys = [];\n let exception = null;\n for (let i = 0; i < this.subkeys.length; i++) {\n if (!keyID || this.subkeys[i].getKeyID().equals(keyID, true)) {\n if (this.subkeys[i].keyPacket.isDummy()) {\n exception = exception || new Error('Gnu-dummy key packets cannot be used for decryption');\n continue;\n }\n\n try {\n const dataToVerify = { key: primaryKey, bind: this.subkeys[i].keyPacket };\n const bindingSignature = await helper.getLatestValidSignature(this.subkeys[i].bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config);\n if (helper.validateDecryptionKeyPacket(this.subkeys[i].keyPacket, bindingSignature, config)) {\n keys.push(this.subkeys[i]);\n }\n } catch (e) {\n exception = e;\n }\n }\n }\n\n // evaluate primary key\n const selfCertification = await this.getPrimarySelfSignature(date, userID, config);\n if ((!keyID || primaryKey.getKeyID().equals(keyID, true)) && helper.validateDecryptionKeyPacket(primaryKey, selfCertification, config)) {\n if (primaryKey.isDummy()) {\n exception = exception || new Error('Gnu-dummy key packets cannot be used for decryption');\n } else {\n keys.push(this);\n }\n }\n\n if (keys.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw exception || new Error('No decryption key packets found');\n }\n\n return keys;\n }\n\n /**\n * Returns true if the primary key or any subkey is decrypted.\n * A dummy key is considered encrypted.\n */\n isDecrypted() {\n return this.getKeys().some(({ keyPacket }) => keyPacket.isDecrypted());\n }\n\n /**\n * Check whether the private and public primary key parameters correspond\n * Together with verification of binding signatures, this guarantees key integrity\n * In case of gnu-dummy primary key, it is enough to validate any signing subkeys\n * otherwise all encryption subkeys are validated\n * If only gnu-dummy keys are found, we cannot properly validate so we throw an error\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @throws {Error} if validation was not successful and the key cannot be trusted\n * @async\n */\n async validate(config = defaultConfig) {\n if (!this.isPrivate()) {\n throw new Error('Cannot validate a public key');\n }\n\n let signingKeyPacket;\n if (!this.keyPacket.isDummy()) {\n signingKeyPacket = this.keyPacket;\n } else {\n /**\n * It is enough to validate any signing keys\n * since its binding signatures are also checked\n */\n const signingKey = await this.getSigningKey(null, null, undefined, { ...config, rejectPublicKeyAlgorithms: new Set(), minRSABits: 0 });\n // This could again be a dummy key\n if (signingKey && !signingKey.keyPacket.isDummy()) {\n signingKeyPacket = signingKey.keyPacket;\n }\n }\n\n if (signingKeyPacket) {\n return signingKeyPacket.validate();\n } else {\n const keys = this.getKeys();\n const allDummies = keys.map(key => key.keyPacket.isDummy()).every(Boolean);\n if (allDummies) {\n throw new Error('Cannot validate an all-gnu-dummy key');\n }\n\n return Promise.all(keys.map(async key => key.keyPacket.validate()));\n }\n }\n\n /**\n * Clear private key parameters\n */\n clearPrivateParams() {\n this.getKeys().forEach(({ keyPacket }) => {\n if (keyPacket.isDecrypted()) {\n keyPacket.clearPrivateParams();\n }\n });\n }\n\n /**\n * Revokes the key\n * @param {Object} reasonForRevocation - optional, object indicating the reason for revocation\n * @param {module:enums.reasonForRevocation} reasonForRevocation.flag optional, flag indicating the reason for revocation\n * @param {String} reasonForRevocation.string optional, string explaining the reason for revocation\n * @param {Date} date - optional, override the creationtime of the revocation signature\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New key with revocation signature.\n * @async\n */\n async revoke(\n {\n flag: reasonForRevocationFlag = enums.reasonForRevocation.noReason,\n string: reasonForRevocationString = ''\n } = {},\n date = new Date(),\n config = defaultConfig\n ) {\n if (!this.isPrivate()) {\n throw new Error('Need private key for revoking');\n }\n const dataToSign = { key: this.keyPacket };\n const key = this.clone();\n key.revocationSignatures.push(await helper.createSignaturePacket(dataToSign, [], this.keyPacket, {\n signatureType: enums.signature.keyRevocation,\n reasonForRevocationFlag: enums.write(enums.reasonForRevocation, reasonForRevocationFlag),\n reasonForRevocationString\n }, date, undefined, undefined, undefined, config));\n return key;\n }\n\n\n /**\n * Generates a new OpenPGP subkey, and returns a clone of the Key object with the new subkey added.\n * Supports RSA and ECC keys, as well as the newer Curve448 and Curve25519.\n * Defaults to the algorithm and bit size/curve of the primary key. DSA primary keys default to RSA subkeys.\n * @param {ecc|rsa|curve25519|curve448} options.type The subkey algorithm: ECC, RSA, Curve448 or Curve25519 (new format).\n * Note: Curve448 and Curve25519 are not widely supported yet.\n * @param {String} options.curve (optional) Elliptic curve for ECC keys\n * @param {Integer} options.rsaBits (optional) Number of bits for RSA subkeys\n * @param {Number} options.keyExpirationTime (optional) Number of seconds from the key creation time after which the key expires\n * @param {Date} options.date (optional) Override the creation date of the key and the key signatures\n * @param {Boolean} options.sign (optional) Indicates whether the subkey should sign rather than encrypt. Defaults to false\n * @param {Object} options.config (optional) custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise}\n * @async\n */\n async addSubkey(options = {}) {\n const config = { ...defaultConfig, ...options.config };\n if (options.passphrase) {\n throw new Error('Subkey could not be encrypted here, please encrypt whole key');\n }\n if (options.rsaBits < config.minRSABits) {\n throw new Error(`rsaBits should be at least ${config.minRSABits}, got: ${options.rsaBits}`);\n }\n const secretKeyPacket = this.keyPacket;\n if (secretKeyPacket.isDummy()) {\n throw new Error('Cannot add subkey to gnu-dummy primary key');\n }\n if (!secretKeyPacket.isDecrypted()) {\n throw new Error('Key is not decrypted');\n }\n const defaultOptions = secretKeyPacket.getAlgorithmInfo();\n defaultOptions.type = getDefaultSubkeyType(defaultOptions.algorithm);\n defaultOptions.rsaBits = defaultOptions.bits || 4096;\n defaultOptions.curve = defaultOptions.curve || 'curve25519Legacy';\n options = helper.sanitizeKeyOptions(options, defaultOptions);\n // Every subkey for a v4 primary key MUST be a v4 subkey.\n // Every subkey for a v6 primary key MUST be a v6 subkey.\n // For v5 keys, since we dropped generation support, a v4 subkey is added.\n // The config is always overwritten since we cannot tell if the defaultConfig was changed by the user.\n const keyPacket = await helper.generateSecretSubkey(options, { ...config, v6Keys: this.keyPacket.version === 6 });\n helper.checkKeyRequirements(keyPacket, config);\n const bindingSignature = await helper.createBindingSignature(keyPacket, secretKeyPacket, options, config);\n const packetList = this.toPacketList();\n packetList.push(keyPacket, bindingSignature);\n return new PrivateKey(packetList);\n }\n}\n\nfunction getDefaultSubkeyType(algoName) {\n const algo = enums.write(enums.publicKey, algoName);\n // NB: no encryption-only algos, since they cannot be in primary keys\n switch (algo) {\n case enums.publicKey.rsaEncrypt:\n case enums.publicKey.rsaEncryptSign:\n case enums.publicKey.rsaSign:\n case enums.publicKey.dsa:\n return 'rsa';\n case enums.publicKey.ecdsa:\n case enums.publicKey.eddsaLegacy:\n return 'ecc';\n case enums.publicKey.ed25519:\n return 'curve25519';\n case enums.publicKey.ed448:\n return 'curve448';\n default:\n throw new Error('Unsupported algorithm');\n }\n}\n\nexport default PrivateKey;\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport {\n PacketList,\n UserIDPacket,\n SignaturePacket,\n PublicKeyPacket,\n PublicSubkeyPacket,\n SecretKeyPacket,\n SecretSubkeyPacket,\n UserAttributePacket\n} from '../packet';\nimport PrivateKey from './private_key';\nimport PublicKey from './public_key';\nimport * as helper from './helper';\nimport enums from '../enums';\nimport util from '../util';\nimport defaultConfig from '../config';\nimport { unarmor } from '../encoding/armor';\n\n// A Key can contain the following packets\nconst allowedKeyPackets = /*#__PURE__*/ util.constructAllowedPackets([\n PublicKeyPacket,\n PublicSubkeyPacket,\n SecretKeyPacket,\n SecretSubkeyPacket,\n UserIDPacket,\n UserAttributePacket,\n SignaturePacket\n]);\n\n/**\n * Creates a PublicKey or PrivateKey depending on the packetlist in input\n * @param {PacketList} - packets to parse\n * @return {Key} parsed key\n * @throws if no key packet was found\n */\nfunction createKey(packetlist) {\n for (const packet of packetlist) {\n switch (packet.constructor.tag) {\n case enums.packet.secretKey:\n return new PrivateKey(packetlist);\n case enums.packet.publicKey:\n return new PublicKey(packetlist);\n }\n }\n throw new Error('No key packet found');\n}\n\n\n/**\n * Generates a new OpenPGP key. Supports RSA and ECC keys, as well as the newer Curve448 and Curve25519 keys.\n * By default, primary and subkeys will be of same type.\n * @param {ecc|rsa|curve448|curve25519} options.type The primary key algorithm type: ECC, RSA, Curve448 or Curve25519 (new format).\n * @param {String} options.curve Elliptic curve for ECC keys\n * @param {Integer} options.rsaBits Number of bits for RSA keys\n * @param {Array} options.userIDs User IDs as strings or objects: 'Jo Doe ' or { name:'Jo Doe', email:'info@jo.com' }\n * @param {String} options.passphrase Passphrase used to encrypt the resulting private key\n * @param {Number} options.keyExpirationTime (optional) Number of seconds from the key creation time after which the key expires\n * @param {Date} options.date Creation date of the key and the key signatures\n * @param {Object} config - Full configuration\n * @param {Array} options.subkeys (optional) options for each subkey, default to main key options. e.g. [{sign: true, passphrase: '123'}]\n * sign parameter defaults to false, and indicates whether the subkey should sign rather than encrypt\n * @returns {Promise<{{ key: PrivateKey, revocationCertificate: String }}>}\n * @async\n * @static\n * @private\n */\nexport async function generate(options, config) {\n options.sign = true; // primary key is always a signing key\n options = helper.sanitizeKeyOptions(options);\n options.subkeys = options.subkeys.map((subkey, index) => helper.sanitizeKeyOptions(options.subkeys[index], options));\n let promises = [helper.generateSecretKey(options, config)];\n promises = promises.concat(options.subkeys.map(options => helper.generateSecretSubkey(options, config)));\n const packets = await Promise.all(promises);\n\n const key = await wrapKeyObject(packets[0], packets.slice(1), options, config);\n const revocationCertificate = await key.getRevocationCertificate(options.date, config);\n key.revocationSignatures = [];\n return { key, revocationCertificate };\n}\n\n/**\n * Reformats and signs an OpenPGP key with a given User ID. Currently only supports RSA keys.\n * @param {PrivateKey} options.privateKey The private key to reformat\n * @param {Array} options.userIDs User IDs as strings or objects: 'Jo Doe ' or { name:'Jo Doe', email:'info@jo.com' }\n * @param {String} options.passphrase Passphrase used to encrypt the resulting private key\n * @param {Number} options.keyExpirationTime Number of seconds from the key creation time after which the key expires\n * @param {Date} options.date Override the creation date of the key signatures\n * @param {Array} options.subkeys (optional) options for each subkey, default to main key options. e.g. [{sign: true, passphrase: '123'}]\n * @param {Object} config - Full configuration\n *\n * @returns {Promise<{{ key: PrivateKey, revocationCertificate: String }}>}\n * @async\n * @static\n * @private\n */\nexport async function reformat(options, config) {\n options = sanitize(options);\n const { privateKey } = options;\n\n if (!privateKey.isPrivate()) {\n throw new Error('Cannot reformat a public key');\n }\n\n if (privateKey.keyPacket.isDummy()) {\n throw new Error('Cannot reformat a gnu-dummy primary key');\n }\n\n const isDecrypted = privateKey.getKeys().every(({ keyPacket }) => keyPacket.isDecrypted());\n if (!isDecrypted) {\n throw new Error('Key is not decrypted');\n }\n\n const secretKeyPacket = privateKey.keyPacket;\n\n if (!options.subkeys) {\n options.subkeys = await Promise.all(privateKey.subkeys.map(async subkey => {\n const secretSubkeyPacket = subkey.keyPacket;\n const dataToVerify = { key: secretKeyPacket, bind: secretSubkeyPacket };\n const bindingSignature = await (\n helper.getLatestValidSignature(subkey.bindingSignatures, secretKeyPacket, enums.signature.subkeyBinding, dataToVerify, null, config)\n ).catch(() => ({}));\n return {\n sign: bindingSignature.keyFlags && (bindingSignature.keyFlags[0] & enums.keyFlags.signData)\n };\n }));\n }\n\n const secretSubkeyPackets = privateKey.subkeys.map(subkey => subkey.keyPacket);\n if (options.subkeys.length !== secretSubkeyPackets.length) {\n throw new Error('Number of subkey options does not match number of subkeys');\n }\n\n options.subkeys = options.subkeys.map(subkeyOptions => sanitize(subkeyOptions, options));\n\n const key = await wrapKeyObject(secretKeyPacket, secretSubkeyPackets, options, config);\n const revocationCertificate = await key.getRevocationCertificate(options.date, config);\n key.revocationSignatures = [];\n return { key, revocationCertificate };\n\n function sanitize(options, subkeyDefaults = {}) {\n options.keyExpirationTime = options.keyExpirationTime || subkeyDefaults.keyExpirationTime;\n options.passphrase = util.isString(options.passphrase) ? options.passphrase : subkeyDefaults.passphrase;\n options.date = options.date || subkeyDefaults.date;\n\n return options;\n }\n}\n\n/**\n * Construct PrivateKey object from the given key packets, add certification signatures and set passphrase protection\n * The new key includes a revocation certificate that must be removed before returning the key, otherwise the key is considered revoked.\n * @param {SecretKeyPacket} secretKeyPacket\n * @param {SecretSubkeyPacket} secretSubkeyPackets\n * @param {Object} options\n * @param {Object} config - Full configuration\n * @returns {PrivateKey}\n */\nasync function wrapKeyObject(secretKeyPacket, secretSubkeyPackets, options, config) {\n // set passphrase protection\n if (options.passphrase) {\n await secretKeyPacket.encrypt(options.passphrase, config);\n }\n\n await Promise.all(secretSubkeyPackets.map(async function(secretSubkeyPacket, index) {\n const subkeyPassphrase = options.subkeys[index].passphrase;\n if (subkeyPassphrase) {\n await secretSubkeyPacket.encrypt(subkeyPassphrase, config);\n }\n }));\n\n const packetlist = new PacketList();\n packetlist.push(secretKeyPacket);\n\n function createPreferredAlgos(algos, preferredAlgo) {\n return [preferredAlgo, ...algos.filter(algo => algo !== preferredAlgo)];\n }\n\n function getKeySignatureProperties() {\n const signatureProperties = {};\n signatureProperties.keyFlags = [enums.keyFlags.certifyKeys | enums.keyFlags.signData];\n const symmetricAlgorithms = createPreferredAlgos([\n // prefer aes256, aes128, no aes192 (no Web Crypto support in Chrome: https://www.chromium.org/blink/webcrypto#TOC-AES-support)\n enums.symmetric.aes256,\n enums.symmetric.aes128\n ], config.preferredSymmetricAlgorithm);\n signatureProperties.preferredSymmetricAlgorithms = symmetricAlgorithms;\n if (config.aeadProtect) {\n const aeadAlgorithms = createPreferredAlgos([\n enums.aead.gcm,\n enums.aead.eax,\n enums.aead.ocb\n ], config.preferredAEADAlgorithm);\n signatureProperties.preferredCipherSuites = aeadAlgorithms.flatMap(aeadAlgorithm => {\n return symmetricAlgorithms.map(symmetricAlgorithm => {\n return [symmetricAlgorithm, aeadAlgorithm];\n });\n });\n }\n signatureProperties.preferredHashAlgorithms = createPreferredAlgos([\n enums.hash.sha512,\n enums.hash.sha256,\n enums.hash.sha3_512,\n enums.hash.sha3_256\n ], config.preferredHashAlgorithm);\n signatureProperties.preferredCompressionAlgorithms = createPreferredAlgos([\n enums.compression.uncompressed,\n enums.compression.zlib,\n enums.compression.zip\n ], config.preferredCompressionAlgorithm);\n // integrity protection always enabled\n signatureProperties.features = [0];\n signatureProperties.features[0] |= enums.features.modificationDetection;\n if (config.aeadProtect) {\n signatureProperties.features[0] |= enums.features.seipdv2;\n }\n if (options.keyExpirationTime > 0) {\n signatureProperties.keyExpirationTime = options.keyExpirationTime;\n signatureProperties.keyNeverExpires = false;\n }\n return signatureProperties;\n }\n\n if (secretKeyPacket.version === 6) { // add direct key signature with key prefs\n const dataToSign = {\n key: secretKeyPacket\n };\n\n const signatureProperties = getKeySignatureProperties();\n signatureProperties.signatureType = enums.signature.key;\n\n const signaturePacket = await helper.createSignaturePacket(dataToSign, [], secretKeyPacket, signatureProperties, options.date, undefined, undefined, undefined, config);\n packetlist.push(signaturePacket);\n }\n\n await Promise.all(options.userIDs.map(async function(userID, index) {\n const userIDPacket = UserIDPacket.fromObject(userID);\n const dataToSign = {\n userID: userIDPacket,\n key: secretKeyPacket\n };\n const signatureProperties = secretKeyPacket.version !== 6 ? getKeySignatureProperties() : {};\n signatureProperties.signatureType = enums.signature.certPositive;\n if (index === 0) {\n signatureProperties.isPrimaryUserID = true;\n }\n\n const signaturePacket = await helper.createSignaturePacket(dataToSign, [], secretKeyPacket, signatureProperties, options.date, undefined, undefined, undefined, config);\n\n return { userIDPacket, signaturePacket };\n })).then(list => {\n list.forEach(({ userIDPacket, signaturePacket }) => {\n packetlist.push(userIDPacket);\n packetlist.push(signaturePacket);\n });\n });\n\n await Promise.all(secretSubkeyPackets.map(async function(secretSubkeyPacket, index) {\n const subkeyOptions = options.subkeys[index];\n const subkeySignaturePacket = await helper.createBindingSignature(secretSubkeyPacket, secretKeyPacket, subkeyOptions, config);\n return { secretSubkeyPacket, subkeySignaturePacket };\n })).then(packets => {\n packets.forEach(({ secretSubkeyPacket, subkeySignaturePacket }) => {\n packetlist.push(secretSubkeyPacket);\n packetlist.push(subkeySignaturePacket);\n });\n });\n\n // Add revocation signature packet for creating a revocation certificate.\n // This packet should be removed before returning the key.\n const dataToSign = { key: secretKeyPacket };\n packetlist.push(await helper.createSignaturePacket(dataToSign, [], secretKeyPacket, {\n signatureType: enums.signature.keyRevocation,\n reasonForRevocationFlag: enums.reasonForRevocation.noReason,\n reasonForRevocationString: ''\n }, options.date, undefined, undefined, undefined, config));\n\n if (options.passphrase) {\n secretKeyPacket.clearPrivateParams();\n }\n\n await Promise.all(secretSubkeyPackets.map(async function(secretSubkeyPacket, index) {\n const subkeyPassphrase = options.subkeys[index].passphrase;\n if (subkeyPassphrase) {\n secretSubkeyPacket.clearPrivateParams();\n }\n }));\n\n return new PrivateKey(packetlist);\n}\n\n/**\n * Reads an (optionally armored) OpenPGP key and returns a key object\n * @param {Object} options\n * @param {String} [options.armoredKey] - Armored key to be parsed\n * @param {Uint8Array} [options.binaryKey] - Binary key to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} Key object.\n * @async\n * @static\n */\nexport async function readKey({ armoredKey, binaryKey, config, ...rest }) {\n config = { ...defaultConfig, ...config };\n if (!armoredKey && !binaryKey) {\n throw new Error('readKey: must pass options object containing `armoredKey` or `binaryKey`');\n }\n if (armoredKey && !util.isString(armoredKey)) {\n throw new Error('readKey: options.armoredKey must be a string');\n }\n if (binaryKey && !util.isUint8Array(binaryKey)) {\n throw new Error('readKey: options.binaryKey must be a Uint8Array');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n let input;\n if (armoredKey) {\n const { type, data } = await unarmor(armoredKey, config);\n if (!(type === enums.armor.publicKey || type === enums.armor.privateKey)) {\n throw new Error('Armored text not of type key');\n }\n input = data;\n } else {\n input = binaryKey;\n }\n const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config);\n const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n if (keyIndex.length === 0) {\n throw new Error('No key packet found');\n }\n const firstKeyPacketList = packetlist.slice(keyIndex[0], keyIndex[1]);\n return createKey(firstKeyPacketList);\n}\n\n/**\n * Reads an (optionally armored) OpenPGP private key and returns a PrivateKey object\n * @param {Object} options\n * @param {String} [options.armoredKey] - Armored key to be parsed\n * @param {Uint8Array} [options.binaryKey] - Binary key to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} Key object.\n * @async\n * @static\n */\nexport async function readPrivateKey({ armoredKey, binaryKey, config, ...rest }) {\n config = { ...defaultConfig, ...config };\n if (!armoredKey && !binaryKey) {\n throw new Error('readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`');\n }\n if (armoredKey && !util.isString(armoredKey)) {\n throw new Error('readPrivateKey: options.armoredKey must be a string');\n }\n if (binaryKey && !util.isUint8Array(binaryKey)) {\n throw new Error('readPrivateKey: options.binaryKey must be a Uint8Array');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n let input;\n if (armoredKey) {\n const { type, data } = await unarmor(armoredKey, config);\n if (!(type === enums.armor.privateKey)) {\n throw new Error('Armored text not of type private key');\n }\n input = data;\n } else {\n input = binaryKey;\n }\n const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config);\n const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n for (let i = 0; i < keyIndex.length; i++) {\n if (packetlist[keyIndex[i]].constructor.tag === enums.packet.publicKey) {\n continue;\n }\n const firstPrivateKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]);\n return new PrivateKey(firstPrivateKeyList);\n }\n throw new Error('No secret key packet found');\n}\n\n/**\n * Reads an (optionally armored) OpenPGP key block and returns a list of key objects\n * @param {Object} options\n * @param {String} [options.armoredKeys] - Armored keys to be parsed\n * @param {Uint8Array} [options.binaryKeys] - Binary keys to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise>} Key objects.\n * @async\n * @static\n */\nexport async function readKeys({ armoredKeys, binaryKeys, config, ...rest }) {\n config = { ...defaultConfig, ...config };\n let input = armoredKeys || binaryKeys;\n if (!input) {\n throw new Error('readKeys: must pass options object containing `armoredKeys` or `binaryKeys`');\n }\n if (armoredKeys && !util.isString(armoredKeys)) {\n throw new Error('readKeys: options.armoredKeys must be a string');\n }\n if (binaryKeys && !util.isUint8Array(binaryKeys)) {\n throw new Error('readKeys: options.binaryKeys must be a Uint8Array');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (armoredKeys) {\n const { type, data } = await unarmor(armoredKeys, config);\n if (type !== enums.armor.publicKey && type !== enums.armor.privateKey) {\n throw new Error('Armored text not of type key');\n }\n input = data;\n }\n const keys = [];\n const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config);\n const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n if (keyIndex.length === 0) {\n throw new Error('No key packet found');\n }\n for (let i = 0; i < keyIndex.length; i++) {\n const oneKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]);\n const newKey = createKey(oneKeyList);\n keys.push(newKey);\n }\n return keys;\n}\n\n/**\n * Reads an (optionally armored) OpenPGP private key block and returns a list of PrivateKey objects\n * @param {Object} options\n * @param {String} [options.armoredKeys] - Armored keys to be parsed\n * @param {Uint8Array} [options.binaryKeys] - Binary keys to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise>} Key objects.\n * @async\n * @static\n */\nexport async function readPrivateKeys({ armoredKeys, binaryKeys, config }) {\n config = { ...defaultConfig, ...config };\n let input = armoredKeys || binaryKeys;\n if (!input) {\n throw new Error('readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`');\n }\n if (armoredKeys && !util.isString(armoredKeys)) {\n throw new Error('readPrivateKeys: options.armoredKeys must be a string');\n }\n if (binaryKeys && !util.isUint8Array(binaryKeys)) {\n throw new Error('readPrivateKeys: options.binaryKeys must be a Uint8Array');\n }\n if (armoredKeys) {\n const { type, data } = await unarmor(armoredKeys, config);\n if (type !== enums.armor.privateKey) {\n throw new Error('Armored text not of type private key');\n }\n input = data;\n }\n const keys = [];\n const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config);\n const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n for (let i = 0; i < keyIndex.length; i++) {\n if (packetlist[keyIndex[i]].constructor.tag === enums.packet.publicKey) {\n continue;\n }\n const oneKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]);\n const newKey = new PrivateKey(oneKeyList);\n keys.push(newKey);\n }\n if (keys.length === 0) {\n throw new Error('No secret key packet found');\n }\n return keys;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport { armor, unarmor } from './encoding/armor';\nimport { Argon2OutOfMemoryError } from './type/s2k';\nimport defaultConfig from './config';\nimport crypto from './crypto';\nimport enums from './enums';\nimport util from './util';\nimport { Signature } from './signature';\nimport { getPreferredCipherSuite, createSignaturePacket } from './key';\nimport {\n PacketList,\n LiteralDataPacket,\n CompressedDataPacket,\n AEADEncryptedDataPacket,\n SymEncryptedIntegrityProtectedDataPacket,\n SymmetricallyEncryptedDataPacket,\n PublicKeyEncryptedSessionKeyPacket,\n SymEncryptedSessionKeyPacket,\n OnePassSignaturePacket,\n SignaturePacket\n} from './packet';\n\n// A Message can contain the following packets\nconst allowedMessagePackets = /*#__PURE__*/ util.constructAllowedPackets([\n LiteralDataPacket,\n CompressedDataPacket,\n AEADEncryptedDataPacket,\n SymEncryptedIntegrityProtectedDataPacket,\n SymmetricallyEncryptedDataPacket,\n PublicKeyEncryptedSessionKeyPacket,\n SymEncryptedSessionKeyPacket,\n OnePassSignaturePacket,\n SignaturePacket\n]);\n// A SKESK packet can contain the following packets\nconst allowedSymSessionKeyPackets = /*#__PURE__*/ util.constructAllowedPackets([SymEncryptedSessionKeyPacket]);\n// A detached signature can contain the following packets\nconst allowedDetachedSignaturePackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\n\n/**\n * Class that represents an OpenPGP message.\n * Can be an encrypted message, signed message, compressed message or literal message\n * See {@link https://tools.ietf.org/html/rfc4880#section-11.3}\n */\nexport class Message {\n /**\n * @param {PacketList} packetlist - The packets that form this message\n */\n constructor(packetlist) {\n this.packets = packetlist || new PacketList();\n }\n\n /**\n * Returns the key IDs of the keys to which the session key is encrypted\n * @returns {Array} Array of keyID objects.\n */\n getEncryptionKeyIDs() {\n const keyIDs = [];\n const pkESKeyPacketlist = this.packets.filterByTag(enums.packet.publicKeyEncryptedSessionKey);\n pkESKeyPacketlist.forEach(function(packet) {\n keyIDs.push(packet.publicKeyID);\n });\n return keyIDs;\n }\n\n /**\n * Returns the key IDs of the keys that signed the message\n * @returns {Array} Array of keyID objects.\n */\n getSigningKeyIDs() {\n const msg = this.unwrapCompressed();\n // search for one pass signatures\n const onePassSigList = msg.packets.filterByTag(enums.packet.onePassSignature);\n if (onePassSigList.length > 0) {\n return onePassSigList.map(packet => packet.issuerKeyID);\n }\n // if nothing found look for signature packets\n const signatureList = msg.packets.filterByTag(enums.packet.signature);\n return signatureList.map(packet => packet.issuerKeyID);\n }\n\n /**\n * Decrypt the message. Either a private key, a session key, or a password must be specified.\n * @param {Array} [decryptionKeys] - Private keys with decrypted secret data\n * @param {Array} [passwords] - Passwords used to decrypt\n * @param {Array} [sessionKeys] - Session keys in the form: { data:Uint8Array, algorithm:String, [aeadAlgorithm:String] }\n * @param {Date} [date] - Use the given date for key verification instead of the current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New message with decrypted content.\n * @async\n */\n async decrypt(decryptionKeys, passwords, sessionKeys, date = new Date(), config = defaultConfig) {\n const symEncryptedPacketlist = this.packets.filterByTag(\n enums.packet.symmetricallyEncryptedData,\n enums.packet.symEncryptedIntegrityProtectedData,\n enums.packet.aeadEncryptedData\n );\n\n if (symEncryptedPacketlist.length === 0) {\n throw new Error('No encrypted data found');\n }\n\n const symEncryptedPacket = symEncryptedPacketlist[0];\n const expectedSymmetricAlgorithm = symEncryptedPacket.cipherAlgorithm;\n\n const sessionKeyObjects = sessionKeys || await this.decryptSessionKeys(decryptionKeys, passwords, expectedSymmetricAlgorithm, date, config);\n\n let exception = null;\n const decryptedPromise = Promise.all(sessionKeyObjects.map(async ({ algorithm: algorithmName, data }) => {\n if (!util.isUint8Array(data) || (!symEncryptedPacket.cipherAlgorithm && !util.isString(algorithmName))) {\n throw new Error('Invalid session key for decryption.');\n }\n\n try {\n const algo = symEncryptedPacket.cipherAlgorithm || enums.write(enums.symmetric, algorithmName);\n await symEncryptedPacket.decrypt(algo, data, config);\n } catch (e) {\n util.printDebugError(e);\n exception = e;\n }\n }));\n // We don't await stream.cancel here because it only returns when the other copy is canceled too.\n stream.cancel(symEncryptedPacket.encrypted); // Don't keep copy of encrypted data in memory.\n symEncryptedPacket.encrypted = null;\n await decryptedPromise;\n\n if (!symEncryptedPacket.packets || !symEncryptedPacket.packets.length) {\n throw exception || new Error('Decryption failed.');\n }\n\n const resultMsg = new Message(symEncryptedPacket.packets);\n symEncryptedPacket.packets = new PacketList(); // remove packets after decryption\n\n return resultMsg;\n }\n\n /**\n * Decrypt encrypted session keys either with private keys or passwords.\n * @param {Array} [decryptionKeys] - Private keys with decrypted secret data\n * @param {Array} [passwords] - Passwords used to decrypt\n * @param {enums.symmetric} [expectedSymmetricAlgorithm] - The symmetric algorithm the SEIPDv2 / AEAD packet is encrypted with (if applicable)\n * @param {Date} [date] - Use the given date for key verification, instead of current time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise>} array of object with potential sessionKey, algorithm pairs\n * @async\n */\n async decryptSessionKeys(decryptionKeys, passwords, expectedSymmetricAlgorithm, date = new Date(), config = defaultConfig) {\n let decryptedSessionKeyPackets = [];\n\n let exception;\n if (passwords) {\n const skeskPackets = this.packets.filterByTag(enums.packet.symEncryptedSessionKey);\n if (skeskPackets.length === 0) {\n throw new Error('No symmetrically encrypted session key packet found.');\n }\n await Promise.all(passwords.map(async function(password, i) {\n let packets;\n if (i) {\n packets = await PacketList.fromBinary(skeskPackets.write(), allowedSymSessionKeyPackets, config);\n } else {\n packets = skeskPackets;\n }\n await Promise.all(packets.map(async function(skeskPacket) {\n try {\n await skeskPacket.decrypt(password);\n decryptedSessionKeyPackets.push(skeskPacket);\n } catch (err) {\n util.printDebugError(err);\n if (err instanceof Argon2OutOfMemoryError) {\n exception = err;\n }\n }\n }));\n }));\n } else if (decryptionKeys) {\n const pkeskPackets = this.packets.filterByTag(enums.packet.publicKeyEncryptedSessionKey);\n if (pkeskPackets.length === 0) {\n throw new Error('No public key encrypted session key packet found.');\n }\n await Promise.all(pkeskPackets.map(async function(pkeskPacket) {\n await Promise.all(decryptionKeys.map(async function(decryptionKey) {\n let decryptionKeyPackets;\n try {\n // do not check key expiration to allow decryption of old messages\n decryptionKeyPackets = (await decryptionKey.getDecryptionKeys(pkeskPacket.publicKeyID, null, undefined, config)).map(key => key.keyPacket);\n } catch (err) {\n exception = err;\n return;\n }\n\n let algos = [\n enums.symmetric.aes256, // Old OpenPGP.js default fallback\n enums.symmetric.aes128, // RFC4880bis fallback\n enums.symmetric.tripledes, // RFC4880 fallback\n enums.symmetric.cast5 // Golang OpenPGP fallback\n ];\n try {\n const selfCertification = await decryptionKey.getPrimarySelfSignature(date, undefined, config); // TODO: Pass userID from somewhere.\n if (selfCertification.preferredSymmetricAlgorithms) {\n algos = algos.concat(selfCertification.preferredSymmetricAlgorithms);\n }\n } catch (e) {}\n\n await Promise.all(decryptionKeyPackets.map(async function(decryptionKeyPacket) {\n if (!decryptionKeyPacket.isDecrypted()) {\n throw new Error('Decryption key is not decrypted.');\n }\n\n // To hinder CCA attacks against PKCS1, we carry out a constant-time decryption flow if the `constantTimePKCS1Decryption` config option is set.\n const doConstantTimeDecryption = config.constantTimePKCS1Decryption && (\n pkeskPacket.publicKeyAlgorithm === enums.publicKey.rsaEncrypt ||\n pkeskPacket.publicKeyAlgorithm === enums.publicKey.rsaEncryptSign ||\n pkeskPacket.publicKeyAlgorithm === enums.publicKey.rsaSign ||\n pkeskPacket.publicKeyAlgorithm === enums.publicKey.elgamal\n );\n\n if (doConstantTimeDecryption) {\n // The goal is to not reveal whether PKESK decryption (specifically the PKCS1 decoding step) failed, hence, we always proceed to decrypt the message,\n // either with the successfully decrypted session key, or with a randomly generated one.\n // Since the SEIP/AEAD's symmetric algorithm and key size are stored in the encrypted portion of the PKESK, and the execution flow cannot depend on\n // the decrypted payload, we always assume the message to be encrypted with one of the symmetric algorithms specified in `config.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms`:\n // - If the PKESK decryption succeeds, and the session key cipher is in the supported set, then we try to decrypt the data with the decrypted session key as well as with the\n // randomly generated keys of the remaining key types.\n // - If the PKESK decryptions fails, or if it succeeds but support for the cipher is not enabled, then we discard the session key and try to decrypt the data using only the randomly\n // generated session keys.\n // NB: as a result, if the data is encrypted with a non-suported cipher, decryption will always fail.\n\n const serialisedPKESK = pkeskPacket.write(); // make copies to be able to decrypt the PKESK packet multiple times\n await Promise.all((\n expectedSymmetricAlgorithm ?\n [expectedSymmetricAlgorithm] :\n Array.from(config.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)\n ).map(async sessionKeyAlgorithm => {\n const pkeskPacketCopy = new PublicKeyEncryptedSessionKeyPacket();\n pkeskPacketCopy.read(serialisedPKESK);\n const randomSessionKey = {\n sessionKeyAlgorithm,\n sessionKey: crypto.generateSessionKey(sessionKeyAlgorithm)\n };\n try {\n await pkeskPacketCopy.decrypt(decryptionKeyPacket, randomSessionKey);\n decryptedSessionKeyPackets.push(pkeskPacketCopy);\n } catch (err) {\n // `decrypt` can still throw some non-security-sensitive errors\n util.printDebugError(err);\n exception = err;\n }\n }));\n\n } else {\n try {\n await pkeskPacket.decrypt(decryptionKeyPacket);\n const symmetricAlgorithm = expectedSymmetricAlgorithm || pkeskPacket.sessionKeyAlgorithm;\n if (symmetricAlgorithm && !algos.includes(enums.write(enums.symmetric, symmetricAlgorithm))) {\n throw new Error('A non-preferred symmetric algorithm was used.');\n }\n decryptedSessionKeyPackets.push(pkeskPacket);\n } catch (err) {\n util.printDebugError(err);\n exception = err;\n }\n }\n }));\n }));\n stream.cancel(pkeskPacket.encrypted); // Don't keep copy of encrypted data in memory.\n pkeskPacket.encrypted = null;\n }));\n } else {\n throw new Error('No key or password specified.');\n }\n\n if (decryptedSessionKeyPackets.length > 0) {\n // Return only unique session keys\n if (decryptedSessionKeyPackets.length > 1) {\n const seen = new Set();\n decryptedSessionKeyPackets = decryptedSessionKeyPackets.filter(item => {\n const k = item.sessionKeyAlgorithm + util.uint8ArrayToString(item.sessionKey);\n if (seen.has(k)) {\n return false;\n }\n seen.add(k);\n return true;\n });\n }\n\n return decryptedSessionKeyPackets.map(packet => ({\n data: packet.sessionKey,\n algorithm: packet.sessionKeyAlgorithm && enums.read(enums.symmetric, packet.sessionKeyAlgorithm)\n }));\n }\n throw exception || new Error('Session key decryption failed.');\n }\n\n /**\n * Get literal data that is the body of the message\n * @returns {(Uint8Array|null)} Literal body of the message as Uint8Array.\n */\n getLiteralData() {\n const msg = this.unwrapCompressed();\n const literal = msg.packets.findPacket(enums.packet.literalData);\n return (literal && literal.getBytes()) || null;\n }\n\n /**\n * Get filename from literal data packet\n * @returns {(String|null)} Filename of literal data packet as string.\n */\n getFilename() {\n const msg = this.unwrapCompressed();\n const literal = msg.packets.findPacket(enums.packet.literalData);\n return (literal && literal.getFilename()) || null;\n }\n\n /**\n * Get literal data as text\n * @returns {(String|null)} Literal body of the message interpreted as text.\n */\n getText() {\n const msg = this.unwrapCompressed();\n const literal = msg.packets.findPacket(enums.packet.literalData);\n if (literal) {\n return literal.getText();\n }\n return null;\n }\n\n /**\n * Generate a new session key object, taking the algorithm preferences of the passed encryption keys into account, if any.\n * @param {Array} [encryptionKeys] - Public key(s) to select algorithm preferences for\n * @param {Date} [date] - Date to select algorithm preferences at\n * @param {Array} [userIDs] - User IDs to select algorithm preferences for\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<{ data: Uint8Array, algorithm: String, aeadAlgorithm: undefined|String }>} Object with session key data and algorithms.\n * @async\n */\n static async generateSessionKey(encryptionKeys = [], date = new Date(), userIDs = [], config = defaultConfig) {\n const { symmetricAlgo, aeadAlgo } = await getPreferredCipherSuite(encryptionKeys, date, userIDs, config);\n const symmetricAlgoName = enums.read(enums.symmetric, symmetricAlgo);\n const aeadAlgoName = aeadAlgo ? enums.read(enums.aead, aeadAlgo) : undefined;\n\n await Promise.all(encryptionKeys.map(key => key.getEncryptionKey()\n .catch(() => null) // ignore key strength requirements\n .then(maybeKey => {\n if (maybeKey && (maybeKey.keyPacket.algorithm === enums.publicKey.x25519 || maybeKey.keyPacket.algorithm === enums.publicKey.x448) &&\n !aeadAlgoName && !util.isAES(symmetricAlgo)) { // if AEAD is defined, then PKESK v6 are used, and the algo info is encrypted\n throw new Error('Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.');\n }\n })\n ));\n\n const sessionKeyData = crypto.generateSessionKey(symmetricAlgo);\n return { data: sessionKeyData, algorithm: symmetricAlgoName, aeadAlgorithm: aeadAlgoName };\n }\n\n /**\n * Encrypt the message either with public keys, passwords, or both at once.\n * @param {Array} [encryptionKeys] - Public key(s) for message encryption\n * @param {Array} [passwords] - Password(s) for message encryption\n * @param {Object} [sessionKey] - Session key in the form: { data:Uint8Array, algorithm:String, [aeadAlgorithm:String] }\n * @param {Boolean} [wildcard] - Use a key ID of 0 instead of the public key IDs\n * @param {Array} [encryptionKeyIDs] - Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to keys[i]\n * @param {Date} [date] - Override the creation date of the literal package\n * @param {Array} [userIDs] - User IDs to encrypt for, e.g. [{ name:'Robert Receiver', email:'robert@openpgp.org' }]\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New message with encrypted content.\n * @async\n */\n async encrypt(encryptionKeys, passwords, sessionKey, wildcard = false, encryptionKeyIDs = [], date = new Date(), userIDs = [], config = defaultConfig) {\n if (sessionKey) {\n if (!util.isUint8Array(sessionKey.data) || !util.isString(sessionKey.algorithm)) {\n throw new Error('Invalid session key for encryption.');\n }\n } else if (encryptionKeys && encryptionKeys.length) {\n sessionKey = await Message.generateSessionKey(encryptionKeys, date, userIDs, config);\n } else if (passwords && passwords.length) {\n sessionKey = await Message.generateSessionKey(undefined, undefined, undefined, config);\n } else {\n throw new Error('No keys, passwords, or session key provided.');\n }\n\n const { data: sessionKeyData, algorithm: algorithmName, aeadAlgorithm: aeadAlgorithmName } = sessionKey;\n\n const msg = await Message.encryptSessionKey(sessionKeyData, algorithmName, aeadAlgorithmName, encryptionKeys, passwords, wildcard, encryptionKeyIDs, date, userIDs, config);\n\n const symEncryptedPacket = SymEncryptedIntegrityProtectedDataPacket.fromObject({\n version: aeadAlgorithmName ? 2 : 1,\n aeadAlgorithm: aeadAlgorithmName ? enums.write(enums.aead, aeadAlgorithmName) : null\n });\n symEncryptedPacket.packets = this.packets;\n\n const algorithm = enums.write(enums.symmetric, algorithmName);\n await symEncryptedPacket.encrypt(algorithm, sessionKeyData, config);\n\n msg.packets.push(symEncryptedPacket);\n symEncryptedPacket.packets = new PacketList(); // remove packets after encryption\n return msg;\n }\n\n /**\n * Encrypt a session key either with public keys, passwords, or both at once.\n * @param {Uint8Array} sessionKey - session key for encryption\n * @param {String} algorithmName - session key algorithm\n * @param {String} [aeadAlgorithmName] - AEAD algorithm, e.g. 'eax' or 'ocb'\n * @param {Array} [encryptionKeys] - Public key(s) for message encryption\n * @param {Array} [passwords] - For message encryption\n * @param {Boolean} [wildcard] - Use a key ID of 0 instead of the public key IDs\n * @param {Array} [encryptionKeyIDs] - Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to encryptionKeys[i]\n * @param {Date} [date] - Override the date\n * @param {Array} [userIDs] - User IDs to encrypt for, e.g. [{ name:'Robert Receiver', email:'robert@openpgp.org' }]\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New message with encrypted content.\n * @async\n */\n static async encryptSessionKey(sessionKey, algorithmName, aeadAlgorithmName, encryptionKeys, passwords, wildcard = false, encryptionKeyIDs = [], date = new Date(), userIDs = [], config = defaultConfig) {\n const packetlist = new PacketList();\n const symmetricAlgorithm = enums.write(enums.symmetric, algorithmName);\n const aeadAlgorithm = aeadAlgorithmName && enums.write(enums.aead, aeadAlgorithmName);\n\n if (encryptionKeys) {\n const results = await Promise.all(encryptionKeys.map(async function(primaryKey, i) {\n const encryptionKey = await primaryKey.getEncryptionKey(encryptionKeyIDs[i], date, userIDs, config);\n\n const pkESKeyPacket = PublicKeyEncryptedSessionKeyPacket.fromObject({\n version: aeadAlgorithm ? 6 : 3,\n encryptionKeyPacket: encryptionKey.keyPacket,\n anonymousRecipient: wildcard,\n sessionKey,\n sessionKeyAlgorithm: symmetricAlgorithm\n });\n\n await pkESKeyPacket.encrypt(encryptionKey.keyPacket);\n delete pkESKeyPacket.sessionKey; // delete plaintext session key after encryption\n return pkESKeyPacket;\n }));\n packetlist.push(...results);\n }\n if (passwords) {\n const testDecrypt = async function(keyPacket, password) {\n try {\n await keyPacket.decrypt(password);\n return 1;\n } catch (e) {\n return 0;\n }\n };\n\n const sum = (accumulator, currentValue) => accumulator + currentValue;\n\n const encryptPassword = async function(sessionKey, algorithm, aeadAlgorithm, password) {\n const symEncryptedSessionKeyPacket = new SymEncryptedSessionKeyPacket(config);\n symEncryptedSessionKeyPacket.sessionKey = sessionKey;\n symEncryptedSessionKeyPacket.sessionKeyAlgorithm = algorithm;\n if (aeadAlgorithm) {\n symEncryptedSessionKeyPacket.aeadAlgorithm = aeadAlgorithm;\n }\n await symEncryptedSessionKeyPacket.encrypt(password, config);\n\n if (config.passwordCollisionCheck) {\n const results = await Promise.all(passwords.map(pwd => testDecrypt(symEncryptedSessionKeyPacket, pwd)));\n if (results.reduce(sum) !== 1) {\n return encryptPassword(sessionKey, algorithm, password);\n }\n }\n\n delete symEncryptedSessionKeyPacket.sessionKey; // delete plaintext session key after encryption\n return symEncryptedSessionKeyPacket;\n };\n\n const results = await Promise.all(passwords.map(pwd => encryptPassword(sessionKey, symmetricAlgorithm, aeadAlgorithm, pwd)));\n packetlist.push(...results);\n }\n\n return new Message(packetlist);\n }\n\n /**\n * Sign the message (the literal data packet of the message)\n * @param {Array} signingKeys - private keys with decrypted secret key data for signing\n * @param {Array} recipientKeys - recipient keys to get the signing preferences from\n * @param {Signature} [signature] - Any existing detached signature to add to the message\n * @param {Array} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n * @param {Date} [date] - Override the creation time of the signature\n * @param {Array} [signingUserIDs] - User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n * @param {Array} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New message with signed content.\n * @async\n */\n async sign(signingKeys = [], recipientKeys = [], signature = null, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], notations = [], config = defaultConfig) {\n const packetlist = new PacketList();\n\n const literalDataPacket = this.packets.findPacket(enums.packet.literalData);\n if (!literalDataPacket) {\n throw new Error('No literal data packet to sign.');\n }\n\n const signaturePackets = await createSignaturePackets(literalDataPacket, signingKeys, recipientKeys, signature, signingKeyIDs, date, signingUserIDs, recipientUserIDs, notations, false, config); // this returns the existing signature packets as well\n const onePassSignaturePackets = signaturePackets.map(\n (signaturePacket, i) => OnePassSignaturePacket.fromSignaturePacket(signaturePacket, i === 0))\n .reverse(); // innermost OPS refers to the first signature packet\n\n packetlist.push(...onePassSignaturePackets);\n packetlist.push(literalDataPacket);\n packetlist.push(...signaturePackets);\n\n return new Message(packetlist);\n }\n\n /**\n * Compresses the message (the literal and -if signed- signature data packets of the message)\n * @param {module:enums.compression} algo - compression algorithm\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Message} New message with compressed content.\n */\n compress(algo, config = defaultConfig) {\n if (algo === enums.compression.uncompressed) {\n return this;\n }\n\n const compressed = new CompressedDataPacket(config);\n compressed.algorithm = algo;\n compressed.packets = this.packets;\n\n const packetList = new PacketList();\n packetList.push(compressed);\n\n return new Message(packetList);\n }\n\n /**\n * Create a detached signature for the message (the literal data packet of the message)\n * @param {Array} signingKeys - private keys with decrypted secret key data for signing\n * @param {Array} recipientKeys - recipient keys to get the signing preferences from\n * @param {Signature} [signature] - Any existing detached signature\n * @param {Array} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n * @param {Date} [date] - Override the creation time of the signature\n * @param {Array} [signingUserIDs] - User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n * @param {Array} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New detached signature of message content.\n * @async\n */\n async signDetached(signingKeys = [], recipientKeys = [], signature = null, signingKeyIDs = [], recipientKeyIDs = [], date = new Date(), userIDs = [], notations = [], config = defaultConfig) {\n const literalDataPacket = this.packets.findPacket(enums.packet.literalData);\n if (!literalDataPacket) {\n throw new Error('No literal data packet to sign.');\n }\n return new Signature(await createSignaturePackets(literalDataPacket, signingKeys, recipientKeys, signature, signingKeyIDs, recipientKeyIDs, date, userIDs, notations, true, config));\n }\n\n /**\n * Verify message signatures\n * @param {Array} verificationKeys - Array of public keys to verify signatures\n * @param {Date} [date] - Verify the signature against the given date, i.e. check signature creation time < date < expiration time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise,\n * verified: Promise\n * }>>} List of signer's keyID and validity of signatures.\n * @async\n */\n async verify(verificationKeys, date = new Date(), config = defaultConfig) {\n const msg = this.unwrapCompressed();\n const literalDataList = msg.packets.filterByTag(enums.packet.literalData);\n if (literalDataList.length !== 1) {\n throw new Error('Can only verify message with one literal data packet.');\n }\n if (stream.isArrayStream(msg.packets.stream)) {\n msg.packets.push(...await stream.readToEnd(msg.packets.stream, _ => _ || []));\n }\n const onePassSigList = msg.packets.filterByTag(enums.packet.onePassSignature).reverse();\n const signatureList = msg.packets.filterByTag(enums.packet.signature);\n if (onePassSigList.length && !signatureList.length && util.isStream(msg.packets.stream) && !stream.isArrayStream(msg.packets.stream)) {\n await Promise.all(onePassSigList.map(async onePassSig => {\n onePassSig.correspondingSig = new Promise((resolve, reject) => {\n onePassSig.correspondingSigResolve = resolve;\n onePassSig.correspondingSigReject = reject;\n });\n onePassSig.signatureData = stream.fromAsync(async () => (await onePassSig.correspondingSig).signatureData);\n onePassSig.hashed = stream.readToEnd(await onePassSig.hash(onePassSig.signatureType, literalDataList[0], undefined, false));\n onePassSig.hashed.catch(() => {});\n }));\n msg.packets.stream = stream.transformPair(msg.packets.stream, async (readable, writable) => {\n const reader = stream.getReader(readable);\n const writer = stream.getWriter(writable);\n try {\n for (let i = 0; i < onePassSigList.length; i++) {\n const { value: signature } = await reader.read();\n onePassSigList[i].correspondingSigResolve(signature);\n }\n await reader.readToEnd();\n await writer.ready;\n await writer.close();\n } catch (e) {\n onePassSigList.forEach(onePassSig => {\n onePassSig.correspondingSigReject(e);\n });\n await writer.abort(e);\n }\n });\n return createVerificationObjects(onePassSigList, literalDataList, verificationKeys, date, false, config);\n }\n return createVerificationObjects(signatureList, literalDataList, verificationKeys, date, false, config);\n }\n\n /**\n * Verify detached message signature\n * @param {Array} verificationKeys - Array of public keys to verify signatures\n * @param {Signature} signature\n * @param {Date} date - Verify the signature against the given date, i.e. check signature creation time < date < expiration time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise,\n * verified: Promise\n * }>>} List of signer's keyID and validity of signature.\n * @async\n */\n verifyDetached(signature, verificationKeys, date = new Date(), config = defaultConfig) {\n const msg = this.unwrapCompressed();\n const literalDataList = msg.packets.filterByTag(enums.packet.literalData);\n if (literalDataList.length !== 1) {\n throw new Error('Can only verify message with one literal data packet.');\n }\n const signatureList = signature.packets.filterByTag(enums.packet.signature); // drop UnparsablePackets\n return createVerificationObjects(signatureList, literalDataList, verificationKeys, date, true, config);\n }\n\n /**\n * Unwrap compressed message\n * @returns {Message} Message Content of compressed message.\n */\n unwrapCompressed() {\n const compressed = this.packets.filterByTag(enums.packet.compressedData);\n if (compressed.length) {\n return new Message(compressed[0].packets);\n }\n return this;\n }\n\n /**\n * Append signature to unencrypted message object\n * @param {String|Uint8Array} detachedSignature - The detached ASCII-armored or Uint8Array PGP signature\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n */\n async appendSignature(detachedSignature, config = defaultConfig) {\n await this.packets.read(\n util.isUint8Array(detachedSignature) ? detachedSignature : (await unarmor(detachedSignature)).data,\n allowedDetachedSignaturePackets,\n config\n );\n }\n\n /**\n * Returns binary encoded message\n * @returns {ReadableStream} Binary message.\n */\n write() {\n return this.packets.write();\n }\n\n /**\n * Returns ASCII armored text of message\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {ReadableStream} ASCII armor.\n */\n armor(config = defaultConfig) {\n const trailingPacket = this.packets[this.packets.length - 1];\n // An ASCII-armored Encrypted Message packet sequence that ends in an v2 SEIPD packet MUST NOT contain a CRC24 footer.\n // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.\n const emitChecksum = trailingPacket.constructor.tag === SymEncryptedIntegrityProtectedDataPacket.tag ?\n trailingPacket.version !== 2 :\n this.packets.some(packet => packet.constructor.tag === SignaturePacket.tag && packet.version !== 6);\n return armor(enums.armor.message, this.write(), null, null, null, emitChecksum, config);\n }\n}\n\n/**\n * Create signature packets for the message\n * @param {LiteralDataPacket} literalDataPacket - the literal data packet to sign\n * @param {Array} [signingKeys] - private keys with decrypted secret key data for signing\n * @param {Array} [recipientKeys] - recipient keys to get the signing preferences from\n * @param {Signature} [signature] - Any existing detached signature to append\n * @param {Array} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n * @param {Date} [date] - Override the creationtime of the signature\n * @param {Array} [signingUserIDs] - User IDs to sign to, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n * @param {Array} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Array} [signatureSalts] - A list of signature salts matching the number of signingKeys that should be used for v6 signatures\n * @param {Boolean} [detached] - Whether to create detached signature packets\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} List of signature packets.\n * @async\n * @private\n */\nexport async function createSignaturePackets(literalDataPacket, signingKeys, recipientKeys = [], signature = null, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], notations = [], detached = false, config = defaultConfig) {\n const packetlist = new PacketList();\n\n // If data packet was created from Uint8Array, use binary, otherwise use text\n const signatureType = literalDataPacket.text === null ?\n enums.signature.binary : enums.signature.text;\n\n await Promise.all(signingKeys.map(async (primaryKey, i) => {\n const signingUserID = signingUserIDs[i];\n if (!primaryKey.isPrivate()) {\n throw new Error('Need private key for signing');\n }\n const signingKey = await primaryKey.getSigningKey(signingKeyIDs[i], date, signingUserID, config);\n return createSignaturePacket(literalDataPacket, recipientKeys.length ? recipientKeys : [primaryKey], signingKey.keyPacket, { signatureType }, date, recipientUserIDs, notations, detached, config);\n })).then(signatureList => {\n packetlist.push(...signatureList);\n });\n\n if (signature) {\n const existingSigPacketlist = signature.packets.filterByTag(enums.packet.signature);\n packetlist.push(...existingSigPacketlist);\n }\n return packetlist;\n}\n\n/**\n * Create object containing signer's keyID and validity of signature\n * @param {SignaturePacket} signature - Signature packet\n * @param {Array} literalDataList - Array of literal data packets\n * @param {Array} verificationKeys - Array of public keys to verify signatures\n * @param {Date} [date] - Check signature validity with respect to the given date\n * @param {Boolean} [detached] - Whether to verify detached signature packets\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<{\n * keyID: module:type/keyid~KeyID,\n * signature: Promise,\n * verified: Promise\n * }>} signer's keyID and validity of signature\n * @async\n * @private\n */\nasync function createVerificationObject(signature, literalDataList, verificationKeys, date = new Date(), detached = false, config = defaultConfig) {\n let primaryKey;\n let unverifiedSigningKey;\n\n for (const key of verificationKeys) {\n const issuerKeys = key.getKeys(signature.issuerKeyID);\n if (issuerKeys.length > 0) {\n primaryKey = key;\n unverifiedSigningKey = issuerKeys[0];\n break;\n }\n }\n\n const isOnePassSignature = signature instanceof OnePassSignaturePacket;\n const signaturePacketPromise = isOnePassSignature ? signature.correspondingSig : signature;\n\n const verifiedSig = {\n keyID: signature.issuerKeyID,\n verified: (async () => {\n if (!unverifiedSigningKey) {\n throw new Error(`Could not find signing key with key ID ${signature.issuerKeyID.toHex()}`);\n }\n\n await signature.verify(unverifiedSigningKey.keyPacket, signature.signatureType, literalDataList[0], date, detached, config);\n const signaturePacket = await signaturePacketPromise;\n if (unverifiedSigningKey.getCreationTime() > signaturePacket.created) {\n throw new Error('Key is newer than the signature');\n }\n // We pass the signature creation time to check whether the key was expired at the time of signing.\n // We check this after signature verification because for streamed one-pass signatures, the creation time is not available before\n try {\n await primaryKey.getSigningKey(unverifiedSigningKey.getKeyID(), signaturePacket.created, undefined, config);\n } catch (e) {\n // If a key was reformatted then the self-signatures of the signing key might be in the future compared to the message signature,\n // making the key invalid at the time of signing.\n // However, if the key is valid at the given `date`, we still allow using it provided the relevant `config` setting is enabled.\n // Note: we do not support the edge case of a key that was reformatted and it has expired.\n if (config.allowInsecureVerificationWithReformattedKeys && e.message.match(/Signature creation time is in the future/)) {\n await primaryKey.getSigningKey(unverifiedSigningKey.getKeyID(), date, undefined, config);\n } else {\n throw e;\n }\n }\n return true;\n })(),\n signature: (async () => {\n const signaturePacket = await signaturePacketPromise;\n const packetlist = new PacketList();\n signaturePacket && packetlist.push(signaturePacket);\n return new Signature(packetlist);\n })()\n };\n\n // Mark potential promise rejections as \"handled\". This is needed because in\n // some cases, we reject them before the user has a reasonable chance to\n // handle them (e.g. `await readToEnd(result.data); await result.verified` and\n // the data stream errors).\n verifiedSig.signature.catch(() => {});\n verifiedSig.verified.catch(() => {});\n\n return verifiedSig;\n}\n\n/**\n * Create list of objects containing signer's keyID and validity of signature\n * @param {Array} signatureList - Array of signature packets\n * @param {Array} literalDataList - Array of literal data packets\n * @param {Array} verificationKeys - Array of public keys to verify signatures\n * @param {Date} date - Verify the signature against the given date,\n * i.e. check signature creation time < date < expiration time\n * @param {Boolean} [detached] - Whether to verify detached signature packets\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise,\n * verified: Promise\n * }>>} list of signer's keyID and validity of signatures (one entry per signature packet in input)\n * @async\n * @private\n */\nexport async function createVerificationObjects(signatureList, literalDataList, verificationKeys, date = new Date(), detached = false, config = defaultConfig) {\n return Promise.all(signatureList.filter(function(signature) {\n return ['text', 'binary'].includes(enums.read(enums.signature, signature.signatureType));\n }).map(async function(signature) {\n return createVerificationObject(signature, literalDataList, verificationKeys, date, detached, config);\n }));\n}\n\n/**\n * Reads an (optionally armored) OpenPGP message and returns a Message object\n * @param {Object} options\n * @param {String | ReadableStream} [options.armoredMessage] - Armored message to be parsed\n * @param {Uint8Array | ReadableStream} [options.binaryMessage] - Binary to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} New message object.\n * @async\n * @static\n */\nexport async function readMessage({ armoredMessage, binaryMessage, config, ...rest }) {\n config = { ...defaultConfig, ...config };\n let input = armoredMessage || binaryMessage;\n if (!input) {\n throw new Error('readMessage: must pass options object containing `armoredMessage` or `binaryMessage`');\n }\n if (armoredMessage && !util.isString(armoredMessage) && !util.isStream(armoredMessage)) {\n throw new Error('readMessage: options.armoredMessage must be a string or stream');\n }\n if (binaryMessage && !util.isUint8Array(binaryMessage) && !util.isStream(binaryMessage)) {\n throw new Error('readMessage: options.binaryMessage must be a Uint8Array or stream');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n const streamType = util.isStream(input);\n if (armoredMessage) {\n const { type, data } = await unarmor(input, config);\n if (type !== enums.armor.message) {\n throw new Error('Armored text not of type message');\n }\n input = data;\n }\n const packetlist = await PacketList.fromBinary(input, allowedMessagePackets, config);\n const message = new Message(packetlist);\n message.fromStream = streamType;\n return message;\n}\n\n/**\n * Creates new message object from text or binary data.\n * @param {Object} options\n * @param {String | ReadableStream} [options.text] - The text message contents\n * @param {Uint8Array | ReadableStream} [options.binary] - The binary message contents\n * @param {String} [options.filename=\"\"] - Name of the file (if any)\n * @param {Date} [options.date=current date] - Date of the message, or modification date of the file\n * @param {'utf8'|'binary'|'text'|'mime'} [options.format='utf8' if text is passed, 'binary' otherwise] - Data packet type\n * @returns {Promise} New message object.\n * @async\n * @static\n */\nexport async function createMessage({ text, binary, filename, date = new Date(), format = text !== undefined ? 'utf8' : 'binary', ...rest }) {\n const input = text !== undefined ? text : binary;\n if (input === undefined) {\n throw new Error('createMessage: must pass options object containing `text` or `binary`');\n }\n if (text && !util.isString(text) && !util.isStream(text)) {\n throw new Error('createMessage: options.text must be a string or stream');\n }\n if (binary && !util.isUint8Array(binary) && !util.isStream(binary)) {\n throw new Error('createMessage: options.binary must be a Uint8Array or stream');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n const streamType = util.isStream(input);\n const literalDataPacket = new LiteralDataPacket(date);\n if (text !== undefined) {\n literalDataPacket.setText(input, enums.write(enums.literal, format));\n } else {\n literalDataPacket.setBytes(input, enums.write(enums.literal, format));\n }\n if (filename !== undefined) {\n literalDataPacket.setFilename(filename);\n }\n const literalDataPacketlist = new PacketList();\n literalDataPacketlist.push(literalDataPacket);\n const message = new Message(literalDataPacketlist);\n message.fromStream = streamType;\n return message;\n}\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport { armor, unarmor } from './encoding/armor';\nimport enums from './enums';\nimport util from './util';\nimport { PacketList, LiteralDataPacket, SignaturePacket } from './packet';\nimport { Signature } from './signature';\nimport { createVerificationObjects, createSignaturePackets } from './message';\nimport defaultConfig from './config';\n\n// A Cleartext message can contain the following packets\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\n\n/**\n * Class that represents an OpenPGP cleartext signed message.\n * See {@link https://tools.ietf.org/html/rfc4880#section-7}\n */\nexport class CleartextMessage {\n /**\n * @param {String} text - The cleartext of the signed message\n * @param {Signature} signature - The detached signature or an empty signature for unsigned messages\n */\n constructor(text, signature) {\n // remove trailing whitespace and normalize EOL to canonical form \n this.text = util.removeTrailingSpaces(text).replace(/\\r?\\n/g, '\\r\\n');\n if (signature && !(signature instanceof Signature)) {\n throw new Error('Invalid signature input');\n }\n this.signature = signature || new Signature(new PacketList());\n }\n\n /**\n * Returns the key IDs of the keys that signed the cleartext message\n * @returns {Array} Array of keyID objects.\n */\n getSigningKeyIDs() {\n const keyIDs = [];\n const signatureList = this.signature.packets;\n signatureList.forEach(function(packet) {\n keyIDs.push(packet.issuerKeyID);\n });\n return keyIDs;\n }\n\n /**\n * Sign the cleartext message\n * @param {Array} signingKeys - private keys with decrypted secret key data for signing\n * @param {Array} recipientKeys - recipient keys to get the signing preferences from\n * @param {Signature} [signature] - Any existing detached signature\n * @param {Array} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to privateKeys[i]\n * @param {Date} [date] - The creation time of the signature that should be created\n * @param {Array} [signingKeyIDs] - User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n * @param {Array} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise} New cleartext message with signed content.\n * @async\n */\n async sign(signingKeys, recipientKeys = [], signature = null, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], notations = [], config = defaultConfig) {\n const literalDataPacket = new LiteralDataPacket();\n literalDataPacket.setText(this.text);\n const newSignature = new Signature(await createSignaturePackets(literalDataPacket, signingKeys, recipientKeys, signature, signingKeyIDs, date, signingUserIDs, recipientUserIDs, notations, true, config));\n return new CleartextMessage(this.text, newSignature);\n }\n\n /**\n * Verify signatures of cleartext signed message\n * @param {Array} keys - Array of keys to verify signatures\n * @param {Date} [date] - Verify the signature against the given date, i.e. check signature creation time < date < expiration time\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise,\n * verified: Promise\n * }>>} List of signer's keyID and validity of signature.\n * @async\n */\n verify(keys, date = new Date(), config = defaultConfig) {\n const signatureList = this.signature.packets.filterByTag(enums.packet.signature); // drop UnparsablePackets\n const literalDataPacket = new LiteralDataPacket();\n // we assume that cleartext signature is generated based on UTF8 cleartext\n literalDataPacket.setText(this.text);\n return createVerificationObjects(signatureList, [literalDataPacket], keys, date, true, config);\n }\n\n /**\n * Get cleartext\n * @returns {String} Cleartext of message.\n */\n getText() {\n // normalize end of line to \\n\n return this.text.replace(/\\r\\n/g, '\\n');\n }\n\n /**\n * Returns ASCII armored text of cleartext signed message\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {String | ReadableStream} ASCII armor.\n */\n armor(config = defaultConfig) {\n // emit header and checksum if one of the signatures has a version not 6\n const emitHeaderAndChecksum = this.signature.packets.some(packet => packet.version !== 6);\n const hash = emitHeaderAndChecksum ?\n Array.from(new Set(this.signature.packets.map(\n packet => enums.read(enums.hash, packet.hashAlgorithm).toUpperCase()\n ))).join() :\n null;\n\n const body = {\n hash,\n text: this.text,\n data: this.signature.packets.write()\n };\n\n // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.\n return armor(enums.armor.signed, body, undefined, undefined, undefined, emitHeaderAndChecksum, config);\n }\n}\n\n/**\n * Reads an OpenPGP cleartext signed message and returns a CleartextMessage object\n * @param {Object} options\n * @param {String} options.cleartextMessage - Text to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} New cleartext message object.\n * @async\n * @static\n */\nexport async function readCleartextMessage({ cleartextMessage, config, ...rest }) {\n config = { ...defaultConfig, ...config };\n if (!cleartextMessage) {\n throw new Error('readCleartextMessage: must pass options object containing `cleartextMessage`');\n }\n if (!util.isString(cleartextMessage)) {\n throw new Error('readCleartextMessage: options.cleartextMessage must be a string');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n const input = await unarmor(cleartextMessage);\n if (input.type !== enums.armor.signed) {\n throw new Error('No cleartext signed message.');\n }\n const packetlist = await PacketList.fromBinary(input.data, allowedPackets, config);\n verifyHeaders(input.headers, packetlist);\n const signature = new Signature(packetlist);\n return new CleartextMessage(input.text, signature);\n}\n\n/**\n * Compare hash algorithm specified in the armor header with signatures\n * @param {Array} headers - Armor headers\n * @param {PacketList} packetlist - The packetlist with signature packets\n * @private\n */\nfunction verifyHeaders(headers, packetlist) {\n const checkHashAlgos = function(hashAlgos) {\n const check = packet => algo => packet.hashAlgorithm === algo;\n\n for (let i = 0; i < packetlist.length; i++) {\n if (packetlist[i].constructor.tag === enums.packet.signature && !hashAlgos.some(check(packetlist[i]))) {\n return false;\n }\n }\n return true;\n };\n\n const hashAlgos = [];\n headers.forEach(header => {\n const hashHeader = header.match(/^Hash: (.+)$/); // get header value\n if (hashHeader) {\n const parsedHashIDs = hashHeader[1]\n .replace(/\\s/g, '') // remove whitespace\n .split(',')\n .map(hashName => {\n try {\n return enums.write(enums.hash, hashName.toLowerCase());\n } catch (e) {\n throw new Error('Unknown hash algorithm in armor header: ' + hashName.toLowerCase());\n }\n });\n hashAlgos.push(...parsedHashIDs);\n } else {\n throw new Error('Only \"Hash\" header allowed in cleartext signed message');\n }\n });\n\n if (hashAlgos.length && !checkHashAlgos(hashAlgos)) {\n throw new Error('Hash algorithm mismatch in armor header and signature');\n }\n}\n\n/**\n * Creates a new CleartextMessage object from text\n * @param {Object} options\n * @param {String} options.text\n * @static\n * @async\n */\nexport async function createCleartextMessage({ text, ...rest }) {\n if (!text) {\n throw new Error('createCleartextMessage: must pass options object containing `text`');\n }\n if (!util.isString(text)) {\n throw new Error('createCleartextMessage: options.text must be a string');\n }\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n return new CleartextMessage(text);\n}\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2016 Tankred Hase\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport * as stream from '@openpgp/web-stream-tools';\nimport { Message } from './message';\nimport { CleartextMessage } from './cleartext';\nimport { generate, reformat, getPreferredCompressionAlgo } from './key';\nimport defaultConfig from './config';\nimport util from './util';\nimport { checkKeyRequirements } from './key/helper';\n\n\n//////////////////////\n// //\n// Key handling //\n// //\n//////////////////////\n\n\n/**\n * Generates a new OpenPGP key pair. Supports RSA and ECC keys, as well as the newer Curve448 and Curve25519 keys.\n * By default, primary and subkeys will be of same type.\n * The generated primary key will have signing capabilities. By default, one subkey with encryption capabilities is also generated.\n * @param {Object} options\n * @param {Object|Array} options.userIDs - User IDs as objects: `{ name: 'Jo Doe', email: 'info@jo.com' }`\n * @param {'ecc'|'rsa'|'curve448'|'curve25519'} [options.type='ecc'] - The primary key algorithm type: ECC (default for v4 keys), RSA, Curve448 or Curve25519 (new format, default for v6 keys).\n * Note: Curve448 and Curve25519 (new format) are not widely supported yet.\n * @param {String} [options.passphrase=(not protected)] - The passphrase used to encrypt the generated private key. If omitted or empty, the key won't be encrypted.\n * @param {Number} [options.rsaBits=4096] - Number of bits for RSA keys\n * @param {String} [options.curve='curve25519Legacy'] - Elliptic curve for ECC keys:\n * curve25519Legacy (default), nistP256, nistP384, nistP521, secp256k1,\n * brainpoolP256r1, brainpoolP384r1, or brainpoolP512r1\n * @param {Date} [options.date=current date] - Override the creation date of the key and the key signatures\n * @param {Number} [options.keyExpirationTime=0 (never expires)] - Number of seconds from the key creation time after which the key expires\n * @param {Array} [options.subkeys=a single encryption subkey] - Options for each subkey e.g. `[{sign: true, passphrase: '123'}]`\n * default to main key options, except for `sign` parameter that defaults to false, and indicates whether the subkey should sign rather than encrypt\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - format of the output keys\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} The generated key object in the form:\n * { privateKey:PrivateKey|Uint8Array|String, publicKey:PublicKey|Uint8Array|String, revocationCertificate:String }\n * @async\n * @static\n */\nexport async function generateKey({ userIDs = [], passphrase, type, curve, rsaBits = 4096, keyExpirationTime = 0, date = new Date(), subkeys = [{}], format = 'armored', config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n if (!type && !curve) {\n type = config.v6Keys ? 'curve25519' : 'ecc'; // default to new curve25519 for v6 keys (legacy curve25519 cannot be used with them)\n curve = 'curve25519Legacy'; // unused with type != 'ecc'\n } else {\n type = type || 'ecc';\n curve = curve || 'curve25519Legacy';\n }\n userIDs = toArray(userIDs);\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (userIDs.length === 0 && !config.v6Keys) {\n throw new Error('UserIDs are required for V4 keys');\n }\n if (type === 'rsa' && rsaBits < config.minRSABits) {\n throw new Error(`rsaBits should be at least ${config.minRSABits}, got: ${rsaBits}`);\n }\n\n const options = { userIDs, passphrase, type, rsaBits, curve, keyExpirationTime, date, subkeys };\n\n try {\n const { key, revocationCertificate } = await generate(options, config);\n key.getKeys().forEach(({ keyPacket }) => checkKeyRequirements(keyPacket, config));\n\n return {\n privateKey: formatObject(key, format, config),\n publicKey: formatObject(key.toPublic(), format, config),\n revocationCertificate\n };\n } catch (err) {\n throw util.wrapError('Error generating keypair', err);\n }\n}\n\n/**\n * Reformats signature packets for a key and rewraps key object.\n * @param {Object} options\n * @param {PrivateKey} options.privateKey - Private key to reformat\n * @param {Object|Array} options.userIDs - User IDs as objects: `{ name: 'Jo Doe', email: 'info@jo.com' }`\n * @param {String} [options.passphrase=(not protected)] - The passphrase used to encrypt the reformatted private key. If omitted or empty, the key won't be encrypted.\n * @param {Number} [options.keyExpirationTime=0 (never expires)] - Number of seconds from the key creation time after which the key expires\n * @param {Date} [options.date] - Override the creation date of the key signatures. If the key was previously used to sign messages, it is recommended\n * to set the same date as the key creation time to ensure that old message signatures will still be verifiable using the reformatted key.\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - format of the output keys\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} The generated key object in the form:\n * { privateKey:PrivateKey|Uint8Array|String, publicKey:PublicKey|Uint8Array|String, revocationCertificate:String }\n * @async\n * @static\n */\nexport async function reformatKey({ privateKey, userIDs = [], passphrase, keyExpirationTime = 0, date, format = 'armored', config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n userIDs = toArray(userIDs);\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (userIDs.length === 0 && privateKey.keyPacket.version !== 6) {\n throw new Error('UserIDs are required for V4 keys');\n }\n const options = { privateKey, userIDs, passphrase, keyExpirationTime, date };\n\n try {\n const { key: reformattedKey, revocationCertificate } = await reformat(options, config);\n\n return {\n privateKey: formatObject(reformattedKey, format, config),\n publicKey: formatObject(reformattedKey.toPublic(), format, config),\n revocationCertificate\n };\n } catch (err) {\n throw util.wrapError('Error reformatting keypair', err);\n }\n}\n\n/**\n * Revokes a key. Requires either a private key or a revocation certificate.\n * If a revocation certificate is passed, the reasonForRevocation parameter will be ignored.\n * @param {Object} options\n * @param {Key} options.key - Public or private key to revoke\n * @param {String} [options.revocationCertificate] - Revocation certificate to revoke the key with\n * @param {Object} [options.reasonForRevocation] - Object indicating the reason for revocation\n * @param {module:enums.reasonForRevocation} [options.reasonForRevocation.flag=[noReason]{@link module:enums.reasonForRevocation}] - Flag indicating the reason for revocation\n * @param {String} [options.reasonForRevocation.string=\"\"] - String explaining the reason for revocation\n * @param {Date} [options.date] - Use the given date instead of the current time to verify validity of revocation certificate (if provided), or as creation time of the revocation signature\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - format of the output key(s)\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} The revoked key in the form:\n * { privateKey:PrivateKey|Uint8Array|String, publicKey:PublicKey|Uint8Array|String } if private key is passed, or\n * { privateKey: null, publicKey:PublicKey|Uint8Array|String } otherwise\n * @async\n * @static\n */\nexport async function revokeKey({ key, revocationCertificate, reasonForRevocation, date = new Date(), format = 'armored', config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n try {\n const revokedKey = revocationCertificate ?\n await key.applyRevocationCertificate(revocationCertificate, date, config) :\n await key.revoke(reasonForRevocation, date, config);\n\n return revokedKey.isPrivate() ? {\n privateKey: formatObject(revokedKey, format, config),\n publicKey: formatObject(revokedKey.toPublic(), format, config)\n } : {\n privateKey: null,\n publicKey: formatObject(revokedKey, format, config)\n };\n } catch (err) {\n throw util.wrapError('Error revoking key', err);\n }\n}\n\n/**\n * Unlock a private key with the given passphrase.\n * This method does not change the original key.\n * @param {Object} options\n * @param {PrivateKey} options.privateKey - The private key to decrypt\n * @param {String|Array} options.passphrase - The user's passphrase(s)\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} The unlocked key object.\n * @async\n */\nexport async function decryptKey({ privateKey, passphrase, config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (!privateKey.isPrivate()) {\n throw new Error('Cannot decrypt a public key');\n }\n const clonedPrivateKey = privateKey.clone(true);\n const passphrases = util.isArray(passphrase) ? passphrase : [passphrase];\n\n try {\n await Promise.all(clonedPrivateKey.getKeys().map(key => (\n // try to decrypt each key with any of the given passphrases\n util.anyPromise(passphrases.map(passphrase => key.keyPacket.decrypt(passphrase)))\n )));\n\n await clonedPrivateKey.validate(config);\n return clonedPrivateKey;\n } catch (err) {\n clonedPrivateKey.clearPrivateParams();\n throw util.wrapError('Error decrypting private key', err);\n }\n}\n\n/**\n * Lock a private key with the given passphrase.\n * This method does not change the original key.\n * @param {Object} options\n * @param {PrivateKey} options.privateKey - The private key to encrypt\n * @param {String|Array} options.passphrase - If multiple passphrases, they should be in the same order as the packets each should encrypt\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} The locked key object.\n * @async\n */\nexport async function encryptKey({ privateKey, passphrase, config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (!privateKey.isPrivate()) {\n throw new Error('Cannot encrypt a public key');\n }\n const clonedPrivateKey = privateKey.clone(true);\n\n const keys = clonedPrivateKey.getKeys();\n const passphrases = util.isArray(passphrase) ? passphrase : new Array(keys.length).fill(passphrase);\n if (passphrases.length !== keys.length) {\n throw new Error('Invalid number of passphrases given for key encryption');\n }\n\n try {\n await Promise.all(keys.map(async (key, i) => {\n const { keyPacket } = key;\n await keyPacket.encrypt(passphrases[i], config);\n keyPacket.clearPrivateParams();\n }));\n return clonedPrivateKey;\n } catch (err) {\n clonedPrivateKey.clearPrivateParams();\n throw util.wrapError('Error encrypting private key', err);\n }\n}\n\n\n///////////////////////////////////////////\n// //\n// Message encryption and decryption //\n// //\n///////////////////////////////////////////\n\n\n/**\n * Encrypts a message using public keys, passwords or both at once. At least one of `encryptionKeys`, `passwords` or `sessionKeys`\n * must be specified. If signing keys are specified, those will be used to sign the message.\n * @param {Object} options\n * @param {Message} options.message - Message to be encrypted as created by {@link createMessage}\n * @param {PublicKey|PublicKey[]} [options.encryptionKeys] - Array of keys or single key, used to encrypt the message\n * @param {PrivateKey|PrivateKey[]} [options.signingKeys] - Private keys for signing. If omitted message will not be signed\n * @param {String|String[]} [options.passwords] - Array of passwords or a single password to encrypt the message\n * @param {Object} [options.sessionKey] - Session key in the form: `{ data:Uint8Array, algorithm:String }`\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - Format of the returned message\n * @param {Signature} [options.signature] - A detached signature to add to the encrypted message\n * @param {Boolean} [options.wildcard=false] - Use a key ID of 0 instead of the public key IDs\n * @param {KeyID|KeyID[]} [options.signingKeyIDs=latest-created valid signing (sub)keys] - Array of key IDs to use for signing. Each `signingKeyIDs[i]` corresponds to `signingKeys[i]`\n * @param {KeyID|KeyID[]} [options.encryptionKeyIDs=latest-created valid encryption (sub)keys] - Array of key IDs to use for encryption. Each `encryptionKeyIDs[i]` corresponds to `encryptionKeys[i]`\n * @param {Date} [options.date=current date] - Override the creation date of the message signature\n * @param {Object|Object[]} [options.signingUserIDs=primary user IDs] - Array of user IDs to sign with, one per key in `signingKeys`, e.g. `[{ name: 'Steve Sender', email: 'steve@openpgp.org' }]`\n * @param {Object|Object[]} [options.encryptionUserIDs=primary user IDs] - Array of user IDs to encrypt for, one per key in `encryptionKeys`, e.g. `[{ name: 'Robert Receiver', email: 'robert@openpgp.org' }]`\n * @param {Object|Object[]} [options.signatureNotations=[]] - Array of notations to add to the signatures, e.g. `[{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise|MaybeStream>} Encrypted message (string if `armor` was true, the default; Uint8Array if `armor` was false).\n * @async\n * @static\n */\nexport async function encrypt({ message, encryptionKeys, signingKeys, passwords, sessionKey, format = 'armored', signature = null, wildcard = false, signingKeyIDs = [], encryptionKeyIDs = [], date = new Date(), signingUserIDs = [], encryptionUserIDs = [], signatureNotations = [], config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n checkMessage(message); checkOutputMessageFormat(format);\n encryptionKeys = toArray(encryptionKeys); signingKeys = toArray(signingKeys); passwords = toArray(passwords);\n signingKeyIDs = toArray(signingKeyIDs); encryptionKeyIDs = toArray(encryptionKeyIDs); signingUserIDs = toArray(signingUserIDs); encryptionUserIDs = toArray(encryptionUserIDs); signatureNotations = toArray(signatureNotations);\n if (rest.detached) {\n throw new Error(\"The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.\");\n }\n if (rest.publicKeys) throw new Error('The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead');\n if (rest.privateKeys) throw new Error('The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead');\n if (rest.armor !== undefined) throw new Error('The `armor` option has been removed from openpgp.encrypt, pass `format` instead.');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (!signingKeys) {\n signingKeys = [];\n }\n\n try {\n if (signingKeys.length || signature) { // sign the message only if signing keys or signature is specified\n message = await message.sign(signingKeys, encryptionKeys, signature, signingKeyIDs, date, signingUserIDs, encryptionKeyIDs, signatureNotations, config);\n }\n message = message.compress(\n await getPreferredCompressionAlgo(encryptionKeys, date, encryptionUserIDs, config),\n config\n );\n message = await message.encrypt(encryptionKeys, passwords, sessionKey, wildcard, encryptionKeyIDs, date, encryptionUserIDs, config);\n if (format === 'object') return message;\n // serialize data\n const armor = format === 'armored';\n const data = armor ? message.armor(config) : message.write();\n return await convertStream(data);\n } catch (err) {\n throw util.wrapError('Error encrypting message', err);\n }\n}\n\n/**\n * Decrypts a message with the user's private key, a session key or a password.\n * One of `decryptionKeys`, `sessionkeys` or `passwords` must be specified (passing a combination of these options is not supported).\n * @param {Object} options\n * @param {Message} options.message - The message object with the encrypted data\n * @param {PrivateKey|PrivateKey[]} [options.decryptionKeys] - Private keys with decrypted secret key data or session key\n * @param {String|String[]} [options.passwords] - Passwords to decrypt the message\n * @param {Object|Object[]} [options.sessionKeys] - Session keys in the form: { data:Uint8Array, algorithm:String }\n * @param {PublicKey|PublicKey[]} [options.verificationKeys] - Array of public keys or single key, to verify signatures\n * @param {Boolean} [options.expectSigned=false] - If true, data decryption fails if the message is not signed with the provided publicKeys\n * @param {'utf8'|'binary'} [options.format='utf8'] - Whether to return data as a string(Stream) or Uint8Array(Stream). If 'utf8' (the default), also normalize newlines.\n * @param {Signature} [options.signature] - Detached signature for verification\n * @param {Date} [options.date=current date] - Use the given date for verification instead of the current time\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} Object containing decrypted and verified message in the form:\n *\n * {\n * data: MaybeStream, (if format was 'utf8', the default)\n * data: MaybeStream, (if format was 'binary')\n * filename: String,\n * signatures: [\n * {\n * keyID: module:type/keyid~KeyID,\n * verified: Promise,\n * signature: Promise\n * }, ...\n * ]\n * }\n *\n * where `signatures` contains a separate entry for each signature packet found in the input message.\n * @async\n * @static\n */\nexport async function decrypt({ message, decryptionKeys, passwords, sessionKeys, verificationKeys, expectSigned = false, format = 'utf8', signature = null, date = new Date(), config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n checkMessage(message); verificationKeys = toArray(verificationKeys); decryptionKeys = toArray(decryptionKeys); passwords = toArray(passwords); sessionKeys = toArray(sessionKeys);\n if (rest.privateKeys) throw new Error('The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead');\n if (rest.publicKeys) throw new Error('The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n try {\n const decrypted = await message.decrypt(decryptionKeys, passwords, sessionKeys, date, config);\n if (!verificationKeys) {\n verificationKeys = [];\n }\n\n const result = {};\n result.signatures = signature ? await decrypted.verifyDetached(signature, verificationKeys, date, config) : await decrypted.verify(verificationKeys, date, config);\n result.data = format === 'binary' ? decrypted.getLiteralData() : decrypted.getText();\n result.filename = decrypted.getFilename();\n linkStreams(result, message);\n if (expectSigned) {\n if (verificationKeys.length === 0) {\n throw new Error('Verification keys are required to verify message signatures');\n }\n if (result.signatures.length === 0) {\n throw new Error('Message is not signed');\n }\n result.data = stream.concat([\n result.data,\n stream.fromAsync(async () => {\n await util.anyPromise(result.signatures.map(sig => sig.verified));\n return format === 'binary' ? new Uint8Array() : '';\n })\n ]);\n }\n result.data = await convertStream(result.data);\n return result;\n } catch (err) {\n throw util.wrapError('Error decrypting message', err);\n }\n}\n\n\n//////////////////////////////////////////\n// //\n// Message signing and verification //\n// //\n//////////////////////////////////////////\n\n\n/**\n * Signs a message.\n * @param {Object} options\n * @param {CleartextMessage|Message} options.message - (cleartext) message to be signed\n * @param {PrivateKey|PrivateKey[]} options.signingKeys - Array of keys or single key with decrypted secret key data to sign cleartext\n * @param {Key|Key[]} options.recipientKeys - Array of keys or single to get the signing preferences from\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - Format of the returned message\n * @param {Boolean} [options.detached=false] - If the return value should contain a detached signature\n * @param {KeyID|KeyID[]} [options.signingKeyIDs=latest-created valid signing (sub)keys] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n * @param {Date} [options.date=current date] - Override the creation date of the signature\n * @param {Object|Object[]} [options.signingUserIDs=primary user IDs] - Array of user IDs to sign with, one per key in `signingKeys`, e.g. `[{ name: 'Steve Sender', email: 'steve@openpgp.org' }]`\n * @param {Object|Object[]} [options.recipientUserIDs=primary user IDs] - Array of user IDs to get the signing preferences from, one per key in `recipientKeys`\n * @param {Object|Object[]} [options.signatureNotations=[]] - Array of notations to add to the signatures, e.g. `[{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise>} Signed message (string if `armor` was true, the default; Uint8Array if `armor` was false).\n * @async\n * @static\n */\nexport async function sign({ message, signingKeys, recipientKeys = [], format = 'armored', detached = false, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], signatureNotations = [], config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n checkCleartextOrMessage(message); checkOutputMessageFormat(format);\n signingKeys = toArray(signingKeys); signingKeyIDs = toArray(signingKeyIDs); signingUserIDs = toArray(signingUserIDs); recipientKeys = toArray(recipientKeys); recipientUserIDs = toArray(recipientUserIDs); signatureNotations = toArray(signatureNotations);\n\n if (rest.privateKeys) throw new Error('The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead');\n if (rest.armor !== undefined) throw new Error('The `armor` option has been removed from openpgp.sign, pass `format` instead.');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (message instanceof CleartextMessage && format === 'binary') throw new Error('Cannot return signed cleartext message in binary format');\n if (message instanceof CleartextMessage && detached) throw new Error('Cannot detach-sign a cleartext message');\n\n if (!signingKeys || signingKeys.length === 0) {\n throw new Error('No signing keys provided');\n }\n\n try {\n let signature;\n if (detached) {\n signature = await message.signDetached(signingKeys, recipientKeys, undefined, signingKeyIDs, date, signingUserIDs, recipientUserIDs, signatureNotations, config);\n } else {\n signature = await message.sign(signingKeys, recipientKeys, undefined, signingKeyIDs, date, signingUserIDs, recipientUserIDs, signatureNotations, config);\n }\n if (format === 'object') return signature;\n\n const armor = format === 'armored';\n signature = armor ? signature.armor(config) : signature.write();\n if (detached) {\n signature = stream.transformPair(message.packets.write(), async (readable, writable) => {\n await Promise.all([\n stream.pipe(signature, writable),\n stream.readToEnd(readable).catch(() => {})\n ]);\n });\n }\n return await convertStream(signature);\n } catch (err) {\n throw util.wrapError('Error signing message', err);\n }\n}\n\n/**\n * Verifies signatures of cleartext signed message\n * @param {Object} options\n * @param {CleartextMessage|Message} options.message - (cleartext) message object with signatures\n * @param {PublicKey|PublicKey[]} options.verificationKeys - Array of publicKeys or single key, to verify signatures\n * @param {Boolean} [options.expectSigned=false] - If true, verification throws if the message is not signed with the provided publicKeys\n * @param {'utf8'|'binary'} [options.format='utf8'] - Whether to return data as a string(Stream) or Uint8Array(Stream). If 'utf8' (the default), also normalize newlines.\n * @param {Signature} [options.signature] - Detached signature for verification\n * @param {Date} [options.date=current date] - Use the given date for verification instead of the current time\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} Object containing verified message in the form:\n *\n * {\n * data: MaybeStream, (if `message` was a CleartextMessage)\n * data: MaybeStream, (if `message` was a Message)\n * signatures: [\n * {\n * keyID: module:type/keyid~KeyID,\n * verified: Promise,\n * signature: Promise\n * }, ...\n * ]\n * }\n *\n * where `signatures` contains a separate entry for each signature packet found in the input message.\n * @async\n * @static\n */\nexport async function verify({ message, verificationKeys, expectSigned = false, format = 'utf8', signature = null, date = new Date(), config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n checkCleartextOrMessage(message); verificationKeys = toArray(verificationKeys);\n if (rest.publicKeys) throw new Error('The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if (message instanceof CleartextMessage && format === 'binary') throw new Error(\"Can't return cleartext message data as binary\");\n if (message instanceof CleartextMessage && signature) throw new Error(\"Can't verify detached cleartext signature\");\n\n try {\n const result = {};\n if (signature) {\n result.signatures = await message.verifyDetached(signature, verificationKeys, date, config);\n } else {\n result.signatures = await message.verify(verificationKeys, date, config);\n }\n result.data = format === 'binary' ? message.getLiteralData() : message.getText();\n if (message.fromStream && !signature) linkStreams(result, message);\n if (expectSigned) {\n if (result.signatures.length === 0) {\n throw new Error('Message is not signed');\n }\n result.data = stream.concat([\n result.data,\n stream.fromAsync(async () => {\n await util.anyPromise(result.signatures.map(sig => sig.verified));\n return format === 'binary' ? new Uint8Array() : '';\n })\n ]);\n }\n result.data = await convertStream(result.data);\n return result;\n } catch (err) {\n throw util.wrapError('Error verifying signed message', err);\n }\n}\n\n\n///////////////////////////////////////////////\n// //\n// Session key encryption and decryption //\n// //\n///////////////////////////////////////////////\n\n/**\n * Generate a new session key object, taking the algorithm preferences of the passed public keys into account, if any.\n * @param {Object} options\n * @param {PublicKey|PublicKey[]} [options.encryptionKeys] - Array of public keys or single key used to select algorithm preferences for. If no keys are given, the algorithm will be [config.preferredSymmetricAlgorithm]{@link module:config.preferredSymmetricAlgorithm}\n * @param {Date} [options.date=current date] - Date to select algorithm preferences at\n * @param {Object|Object[]} [options.encryptionUserIDs=primary user IDs] - User IDs to select algorithm preferences for\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<{ data: Uint8Array, algorithm: String }>} Object with session key data and algorithm.\n * @async\n * @static\n */\nexport async function generateSessionKey({ encryptionKeys, date = new Date(), encryptionUserIDs = [], config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n encryptionKeys = toArray(encryptionKeys); encryptionUserIDs = toArray(encryptionUserIDs);\n if (rest.publicKeys) throw new Error('The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n try {\n const sessionKeys = await Message.generateSessionKey(encryptionKeys, date, encryptionUserIDs, config);\n return sessionKeys;\n } catch (err) {\n throw util.wrapError('Error generating session key', err);\n }\n}\n\n/**\n * Encrypt a symmetric session key with public keys, passwords, or both at once.\n * At least one of `encryptionKeys` or `passwords` must be specified.\n * @param {Object} options\n * @param {Uint8Array} options.data - The session key to be encrypted e.g. 16 random bytes (for aes128)\n * @param {String} options.algorithm - Algorithm of the symmetric session key e.g. 'aes128' or 'aes256'\n * @param {String} [options.aeadAlgorithm] - AEAD algorithm, e.g. 'eax' or 'ocb'\n * @param {PublicKey|PublicKey[]} [options.encryptionKeys] - Array of public keys or single key, used to encrypt the key\n * @param {String|String[]} [options.passwords] - Passwords for the message\n * @param {'armored'|'binary'} [options.format='armored'] - Format of the returned value\n * @param {Boolean} [options.wildcard=false] - Use a key ID of 0 instead of the public key IDs\n * @param {KeyID|KeyID[]} [options.encryptionKeyIDs=latest-created valid encryption (sub)keys] - Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to encryptionKeys[i]\n * @param {Date} [options.date=current date] - Override the date\n * @param {Object|Object[]} [options.encryptionUserIDs=primary user IDs] - Array of user IDs to encrypt for, one per key in `encryptionKeys`, e.g. `[{ name: 'Phil Zimmermann', email: 'phil@openpgp.org' }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} Encrypted session keys (string if `armor` was true, the default; Uint8Array if `armor` was false).\n * @async\n * @static\n */\nexport async function encryptSessionKey({ data, algorithm, aeadAlgorithm, encryptionKeys, passwords, format = 'armored', wildcard = false, encryptionKeyIDs = [], date = new Date(), encryptionUserIDs = [], config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n checkBinary(data); checkString(algorithm, 'algorithm'); checkOutputMessageFormat(format);\n encryptionKeys = toArray(encryptionKeys); passwords = toArray(passwords); encryptionKeyIDs = toArray(encryptionKeyIDs); encryptionUserIDs = toArray(encryptionUserIDs);\n if (rest.publicKeys) throw new Error('The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n if ((!encryptionKeys || encryptionKeys.length === 0) && (!passwords || passwords.length === 0)) {\n throw new Error('No encryption keys or passwords provided.');\n }\n\n try {\n const message = await Message.encryptSessionKey(data, algorithm, aeadAlgorithm, encryptionKeys, passwords, wildcard, encryptionKeyIDs, date, encryptionUserIDs, config);\n return formatObject(message, format, config);\n } catch (err) {\n throw util.wrapError('Error encrypting session key', err);\n }\n}\n\n/**\n * Decrypt symmetric session keys using private keys or passwords (not both).\n * One of `decryptionKeys` or `passwords` must be specified.\n * @param {Object} options\n * @param {Message} options.message - A message object containing the encrypted session key packets\n * @param {PrivateKey|PrivateKey[]} [options.decryptionKeys] - Private keys with decrypted secret key data\n * @param {String|String[]} [options.passwords] - Passwords to decrypt the session key\n * @param {Date} [options.date] - Date to use for key verification instead of the current time\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise} Array of decrypted session key, algorithm pairs in the form:\n * { data:Uint8Array, algorithm:String }\n * @throws if no session key could be found or decrypted\n * @async\n * @static\n */\nexport async function decryptSessionKeys({ message, decryptionKeys, passwords, date = new Date(), config, ...rest }) {\n config = { ...defaultConfig, ...config }; checkConfig(config);\n checkMessage(message); decryptionKeys = toArray(decryptionKeys); passwords = toArray(passwords);\n if (rest.privateKeys) throw new Error('The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead');\n const unknownOptions = Object.keys(rest); if (unknownOptions.length > 0) throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n\n try {\n const sessionKeys = await message.decryptSessionKeys(decryptionKeys, passwords, undefined, date, config);\n return sessionKeys;\n } catch (err) {\n throw util.wrapError('Error decrypting session keys', err);\n }\n}\n\n\n//////////////////////////\n// //\n// Helper functions //\n// //\n//////////////////////////\n\n\n/**\n * Input validation\n * @private\n */\nfunction checkString(data, name) {\n if (!util.isString(data)) {\n throw new Error('Parameter [' + (name || 'data') + '] must be of type String');\n }\n}\nfunction checkBinary(data, name) {\n if (!util.isUint8Array(data)) {\n throw new Error('Parameter [' + (name || 'data') + '] must be of type Uint8Array');\n }\n}\nfunction checkMessage(message) {\n if (!(message instanceof Message)) {\n throw new Error('Parameter [message] needs to be of type Message');\n }\n}\nfunction checkCleartextOrMessage(message) {\n if (!(message instanceof CleartextMessage) && !(message instanceof Message)) {\n throw new Error('Parameter [message] needs to be of type Message or CleartextMessage');\n }\n}\nfunction checkOutputMessageFormat(format) {\n if (format !== 'armored' && format !== 'binary' && format !== 'object') {\n throw new Error(`Unsupported format ${format}`);\n }\n}\nconst defaultConfigPropsCount = Object.keys(defaultConfig).length;\nfunction checkConfig(config) {\n const inputConfigProps = Object.keys(config);\n if (inputConfigProps.length !== defaultConfigPropsCount) {\n for (const inputProp of inputConfigProps) {\n if (defaultConfig[inputProp] === undefined) {\n throw new Error(`Unknown config property: ${inputProp}`);\n }\n }\n }\n}\n\n/**\n * Normalize parameter to an array if it is not undefined.\n * @param {Object} param - the parameter to be normalized\n * @returns {Array|undefined} The resulting array or undefined.\n * @private\n */\nfunction toArray(param) {\n if (param && !util.isArray(param)) {\n param = [param];\n }\n return param;\n}\n\n/**\n * Convert data to or from Stream\n * @param {Object} data - the data to convert\n * @returns {Promise} The data in the respective format.\n * @async\n * @private\n */\nasync function convertStream(data) {\n const streamType = util.isStream(data);\n if (streamType === 'array') {\n return stream.readToEnd(data);\n }\n return data;\n}\n\n/**\n * Link result.data to the message stream for cancellation.\n * Also, forward errors in the message to result.data.\n * @param {Object} result - the data to convert\n * @param {Message} message - message object\n * @returns {Object}\n * @private\n */\nfunction linkStreams(result, message) {\n result.data = stream.transformPair(message.packets.stream, async (readable, writable) => {\n await stream.pipe(result.data, writable, {\n preventClose: true\n });\n const writer = stream.getWriter(writable);\n try {\n // Forward errors in the message stream to result.data.\n await stream.readToEnd(readable, _ => _);\n await writer.close();\n } catch (e) {\n await writer.abort(e);\n }\n });\n}\n\n/**\n * Convert the object to the given format\n * @param {Key|Message} object\n * @param {'armored'|'binary'|'object'} format\n * @param {Object} config - Full configuration\n * @returns {String|Uint8Array|Object}\n */\nfunction formatObject(object, format, config) {\n switch (format) {\n case 'object':\n return object;\n case 'armored':\n return object.armor(config);\n case 'binary':\n return object.write();\n default:\n throw new Error(`Unsupported format ${format}`);\n }\n}\n", "function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map", "// We prefer WebCrypto aka globalThis.crypto, which exists in node.js 16+.\n// Falls back to Node.js built-in crypto for Node.js <=v14\n// See utils.ts for details.\n// @ts-ignore\nimport * as nc from 'node:crypto';\nexport const crypto = nc && typeof nc === 'object' && 'webcrypto' in nc\n ? nc.webcrypto\n : nc && typeof nc === 'object' && 'randomBytes' in nc\n ? nc\n : undefined;\n//# sourceMappingURL=cryptoNode.js.map", "/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n) => n : (n) => byteSwap(n);\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map", "import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a, b, c) => (a & b) ^ (~a & c);\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_md.js.map", "import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map", "import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nexport function abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nexport function abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nexport function inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport { bitMask, bytesToNumberBE, bytesToNumberLE, ensureBytes, numberToBytesBE, numberToBytesLE, validateObject, } from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nexport function mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nexport function invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nexport function FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nexport function validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nexport function FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nexport function FpLegendre(order) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f, x) => f.pow(x, legendreConst);\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f) {\n const legendre = FpLegendre(f.ORDER);\n return (x) => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n });\n return Object.freeze(f);\n}\nexport function FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexport function FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { validateField, nLength } from './modular.js';\nimport { validateObject, bitLen } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, n, transform) {\n const W = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger(c, field, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error(`wrong point at index ${i}`);\n });\n const wbits = bitLen(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport { validateBasic, wNAF, pippenger, } from './curve.js';\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes, memoized, abool } from './utils.js';\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n abool('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n abool('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 128) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected assertion');\n return hex;\n },\n decode(data) {\n const { Err: E } = DER;\n if (data[0] & 128)\n throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key))\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = memoized((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (sc === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, sc);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n abool('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from './abstract/weierstrass.js';\n// connects noble-curves to noble-hashes\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher } from './abstract/hash-to-curve.js';\nimport { Field } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n// NIST secp256r1 aka p256\n// https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-256\nconst Fp = Field(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));\nconst CURVE_A = Fp.create(BigInt('-3'));\nconst CURVE_B = BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b');\n// prettier-ignore\nexport const p256 = createCurve({\n a: CURVE_A, // Equation params: a, b\n b: CURVE_B,\n Fp, // Field: 2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n\n // Curve order, total count of valid points in the field\n n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),\n // Base (generator) point (x, y)\n Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),\n Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),\n h: BigInt(1),\n lowS: false,\n}, sha256);\nexport const secp256r1 = p256;\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: CURVE_A,\n B: CURVE_B,\n Z: Fp.create(BigInt('-10')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {\n DST: 'P256_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=p256.js.map", "const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map", "import { HashMD } from './_md.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = /* @__PURE__ */ wrapConstructor(() => new SHA512());\nexport const sha512_224 = /* @__PURE__ */ wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = /* @__PURE__ */ wrapConstructor(() => new SHA512_256());\nexport const sha384 = /* @__PURE__ */ wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha384 } from '@noble/hashes/sha512';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher } from './abstract/hash-to-curve.js';\nimport { Field } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n// NIST secp384r1 aka p384\n// https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-384\n// Field over which we'll do calculations.\n// prettier-ignore\nconst P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff');\nconst Fp = Field(P);\nconst CURVE_A = Fp.create(BigInt('-3'));\n// prettier-ignore\nconst CURVE_B = BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef');\n// prettier-ignore\nexport const p384 = createCurve({\n a: CURVE_A, // Equation params: a, b\n b: CURVE_B,\n Fp, // Field: 2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n\n // Curve order, total count of valid points in the field.\n n: BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973'),\n // Base (generator) point (x, y)\n Gx: BigInt('0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7'),\n Gy: BigInt('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f'),\n h: BigInt(1),\n lowS: false,\n}, sha384);\nexport const secp384r1 = p384;\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: CURVE_A,\n B: CURVE_B,\n Z: Fp.create(BigInt('-12')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {\n DST: 'P384_XMD:SHA-384_SSWU_RO_',\n encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 192,\n expand: 'xmd',\n hash: sha384,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=p384.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha512 } from '@noble/hashes/sha512';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher } from './abstract/hash-to-curve.js';\nimport { Field } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n// NIST secp521r1 aka p521\n// Note that it's 521, which differs from 512 of its hash function.\n// https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-521\n// Field over which we'll do calculations.\n// prettier-ignore\nconst P = BigInt('0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nconst Fp = Field(P);\nconst CURVE = {\n a: Fp.create(BigInt('-3')),\n b: BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00'),\n Fp,\n n: BigInt('0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409'),\n Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),\n Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),\n h: BigInt(1),\n};\n// prettier-ignore\nexport const p521 = createCurve({\n a: CURVE.a, // Equation params: a, b\n b: CURVE.b,\n Fp, // Field: 2n**521n - 1n\n // Curve order, total count of valid points in the field\n n: CURVE.n,\n Gx: CURVE.Gx, // Base point (x, y) aka generator point\n Gy: CURVE.Gy,\n h: CURVE.h,\n lowS: false,\n allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b\n}, sha512);\nexport const secp521r1 = p521;\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: CURVE.a,\n B: CURVE.b,\n Z: Fp.create(BigInt('-4')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {\n DST: 'P521_XMD:SHA-512_SSWU_RO_',\n encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 256,\n expand: 'xmd',\n hash: sha512,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=p521.js.map", "import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, isLE, byteSwap32, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n if (!isLE)\n byteSwap32(this.state32);\n keccakP(this.state32, this.rounds);\n if (!isLE)\n byteSwap32(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y²\nimport { validateBasic, wNAF, pippenger, } from './curve.js';\nimport { mod, Field } from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes, memoized, abool } from './utils.js';\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _8n = BigInt(8);\n// verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex:\nconst VERIFY_DEFAULT = { zip215: true };\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(curve, {\n hash: 'function',\n a: 'bigint',\n d: 'bigint',\n randomBytes: 'function',\n }, {\n adjustScalarBytes: 'function',\n domain: 'function',\n uvRatio: 'function',\n mapToCurve: 'function',\n });\n // Set defaults\n return Object.freeze({ ...opts });\n}\n/**\n * Creates Twisted Edwards curve with EdDSA signatures.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, d, p, n, Gx, Gy, h\n * const curve = twistedEdwards({ a, d, Fp: Field(p), n, Gx, Gy, h })\n */\nexport function twistedEdwards(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER, prehash: prehash, hash: cHash, randomBytes, nByteLength, h: cofactor, } = CURVE;\n const MASK = _2n << (BigInt(nByteLength * 8) - _1n);\n const modP = Fp.create; // Function overrides\n const Fn = Field(CURVE.n, CURVE.nBitLength);\n // sqrt(u/v)\n const uvRatio = CURVE.uvRatio ||\n ((u, v) => {\n try {\n return { isValid: true, value: Fp.sqrt(u * Fp.inv(v)) };\n }\n catch (e) {\n return { isValid: false, value: _0n };\n }\n });\n const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes) => bytes); // NOOP\n const domain = CURVE.domain ||\n ((data, ctx, phflag) => {\n abool('phflag', phflag);\n if (ctx.length || phflag)\n throw new Error('Contexts/pre-hash are not supported');\n return data;\n }); // NOOP\n // 0 <= n < MASK\n // Coordinates larger than Fp.ORDER are allowed for zip215\n function aCoordinate(title, n) {\n ut.aInRange('coordinate ' + title, n, _0n, MASK);\n }\n function assertPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ExtendedPoint expected');\n }\n // Converts Extended point to default (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n const toAffineMemo = memoized((p, iz) => {\n const { ex: x, ey: y, ez: z } = p;\n const is0 = p.is0();\n if (iz == null)\n iz = is0 ? _8n : Fp.inv(z); // 8 was chosen arbitrarily\n const ax = modP(x * iz);\n const ay = modP(y * iz);\n const zz = modP(z * iz);\n if (is0)\n return { x: _0n, y: _1n };\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n const assertValidMemo = memoized((p) => {\n const { a, d } = CURVE;\n if (p.is0())\n throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n // Equation in affine coordinates: ax² + y² = 1 + dx²y²\n // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²\n const { ex: X, ey: Y, ez: Z, et: T } = p;\n const X2 = modP(X * X); // X²\n const Y2 = modP(Y * Y); // Y²\n const Z2 = modP(Z * Z); // Z²\n const Z4 = modP(Z2 * Z2); // Z⁴\n const aX2 = modP(X2 * a); // aX²\n const left = modP(Z2 * modP(aX2 + Y2)); // (aX² + Y²)Z²\n const right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z⁴ + dX²Y²\n if (left !== right)\n throw new Error('bad point: equation left != right (1)');\n // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n const XY = modP(X * Y);\n const ZT = modP(Z * T);\n if (XY !== ZT)\n throw new Error('bad point: equation left != right (2)');\n return true;\n });\n // Extended Point works in extended coordinates: (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy).\n // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates\n class Point {\n constructor(ex, ey, ez, et) {\n this.ex = ex;\n this.ey = ey;\n this.ez = ez;\n this.et = et;\n aCoordinate('x', ex);\n aCoordinate('y', ey);\n aCoordinate('z', ez);\n aCoordinate('t', et);\n Object.freeze(this);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n static fromAffine(p) {\n if (p instanceof Point)\n throw new Error('extended point not allowed');\n const { x, y } = p || {};\n aCoordinate('x', x);\n aCoordinate('y', y);\n return new Point(x, y, _1n, modP(x * y));\n }\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.ez));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // Not required for fromHex(), which always creates valid points.\n // Could be useful for fromAffine().\n assertValidity() {\n assertValidMemo(this);\n }\n // Compare one point to another.\n equals(other) {\n assertPoint(other);\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const { ex: X2, ey: Y2, ez: Z2 } = other;\n const X1Z2 = modP(X1 * Z2);\n const X2Z1 = modP(X2 * Z1);\n const Y1Z2 = modP(Y1 * Z2);\n const Y2Z1 = modP(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n negate() {\n // Flips point sign to a negative one (-x, y in affine coords)\n return new Point(modP(-this.ex), this.ey, this.ez, modP(-this.et));\n }\n // Fast algo for doubling Extended Point.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n // Cost: 4M + 4S + 1*a + 6add + 1*2.\n double() {\n const { a } = CURVE;\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const A = modP(X1 * X1); // A = X12\n const B = modP(Y1 * Y1); // B = Y12\n const C = modP(_2n * modP(Z1 * Z1)); // C = 2*Z12\n const D = modP(a * A); // D = a*A\n const x1y1 = X1 + Y1;\n const E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B\n const G = D + B; // G = D+B\n const F = G - C; // F = G-C\n const H = D - B; // H = D-B\n const X3 = modP(E * F); // X3 = E*F\n const Y3 = modP(G * H); // Y3 = G*H\n const T3 = modP(E * H); // T3 = E*H\n const Z3 = modP(F * G); // Z3 = F*G\n return new Point(X3, Y3, Z3, T3);\n }\n // Fast algo for adding 2 Extended Points.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd\n // Cost: 9M + 1*a + 1*d + 7add.\n add(other) {\n assertPoint(other);\n const { a, d } = CURVE;\n const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this;\n const { ex: X2, ey: Y2, ez: Z2, et: T2 } = other;\n // Faster algo for adding 2 Extended Points when curve's a=-1.\n // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-4\n // Cost: 8M + 8add + 2*2.\n // Note: It does not check whether the `other` point is valid.\n if (a === BigInt(-1)) {\n const A = modP((Y1 - X1) * (Y2 + X2));\n const B = modP((Y1 + X1) * (Y2 - X2));\n const F = modP(B - A);\n if (F === _0n)\n return this.double(); // Same point. Tests say it doesn't affect timing\n const C = modP(Z1 * _2n * T2);\n const D = modP(T1 * _2n * Z2);\n const E = D + C;\n const G = B + A;\n const H = D - C;\n const X3 = modP(E * F);\n const Y3 = modP(G * H);\n const T3 = modP(E * H);\n const Z3 = modP(F * G);\n return new Point(X3, Y3, Z3, T3);\n }\n const A = modP(X1 * X2); // A = X1*X2\n const B = modP(Y1 * Y2); // B = Y1*Y2\n const C = modP(T1 * d * T2); // C = T1*d*T2\n const D = modP(Z1 * Z2); // D = Z1*Z2\n const E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B\n const F = D - C; // F = D-C\n const G = D + C; // G = D+C\n const H = modP(B - a * A); // H = B-a*A\n const X3 = modP(E * F); // X3 = E*F\n const Y3 = modP(G * H); // Y3 = G*H\n const T3 = modP(E * H); // T3 = E*H\n const Z3 = modP(F * G); // Z3 = F*G\n return new Point(X3, Y3, Z3, T3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n // Constant-time multiplication.\n multiply(scalar) {\n const n = scalar;\n ut.aInRange('scalar', n, _1n, CURVE_ORDER); // 1 <= scalar < L\n const { p, f } = this.wNAF(n);\n return Point.normalizeZ([p, f])[0];\n }\n // Non-constant-time multiplication. Uses double-and-add algorithm.\n // It's faster, but should only be used when you don't care about\n // an exposed private key e.g. sig verification.\n // Does NOT allow scalars higher than CURVE.n.\n multiplyUnsafe(scalar) {\n const n = scalar;\n ut.aInRange('scalar', n, _0n, CURVE_ORDER); // 0 <= scalar < L\n if (n === _0n)\n return I;\n if (this.equals(I) || n === _1n)\n return this;\n if (this.equals(G))\n return this.wNAF(n).p;\n return wnaf.unsafeLadder(this, n);\n }\n // Checks if point is of small order.\n // If you add something to small order point, you will have \"dirty\"\n // point with torsion component.\n // Multiplies point by cofactor and checks if the result is 0.\n isSmallOrder() {\n return this.multiplyUnsafe(cofactor).is0();\n }\n // Multiplies point by curve order and checks if the result is 0.\n // Returns `false` is the point is dirty.\n isTorsionFree() {\n return wnaf.unsafeLadder(this, CURVE_ORDER).is0();\n }\n // Converts Extended point to default (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n clearCofactor() {\n const { h: cofactor } = CURVE;\n if (cofactor === _1n)\n return this;\n return this.multiplyUnsafe(cofactor);\n }\n // Converts hash string or Uint8Array to Point.\n // Uses algo from RFC8032 5.1.3.\n static fromHex(hex, zip215 = false) {\n const { d, a } = CURVE;\n const len = Fp.BYTES;\n hex = ensureBytes('pointHex', hex, len); // copy hex to a new array\n abool('zip215', zip215);\n const normed = hex.slice(); // copy again, we'll manipulate it\n const lastByte = hex[len - 1]; // select last byte\n normed[len - 1] = lastByte & ~0x80; // clear last bit\n const y = ut.bytesToNumberLE(normed);\n // RFC8032 prohibits >= p, but ZIP215 doesn't\n // zip215=true: 0 <= y < MASK (2^256 for ed25519)\n // zip215=false: 0 <= y < P (2^255-19 for ed25519)\n const max = zip215 ? MASK : Fp.ORDER;\n ut.aInRange('pointHex.y', y, _0n, max);\n // Ed25519: x² = (y²-1)/(dy²+1) mod p. Ed448: x² = (y²-1)/(dy²-1) mod p. Generic case:\n // ax²+y²=1+dx²y² => y²-1=dx²y²-ax² => y²-1=x²(dy²-a) => x²=(y²-1)/(dy²-a)\n const y2 = modP(y * y); // denominator is always non-0 mod p.\n const u = modP(y2 - _1n); // u = y² - 1\n const v = modP(d * y2 - a); // v = d y² + 1.\n let { isValid, value: x } = uvRatio(u, v); // √(u/v)\n if (!isValid)\n throw new Error('Point.fromHex: invalid y coordinate');\n const isXOdd = (x & _1n) === _1n; // There are 2 square roots. Use x_0 bit to select proper\n const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n if (!zip215 && x === _0n && isLastByteOdd)\n // if x=0 and x_0 = 1, fail\n throw new Error('Point.fromHex: x=0 and x_0=1');\n if (isLastByteOdd !== isXOdd)\n x = modP(-x); // if x_0 != x mod 2, set x = p-x\n return Point.fromAffine({ x, y });\n }\n static fromPrivateKey(privKey) {\n return getExtendedPublicKey(privKey).point;\n }\n toRawBytes() {\n const { x, y } = this.toAffine();\n const bytes = ut.numberToBytesLE(y, Fp.BYTES); // each y has 2 x values (x, -y)\n bytes[bytes.length - 1] |= x & _1n ? 0x80 : 0; // when compressing, it's enough to store y\n return bytes; // and use the last byte to encode sign of x\n }\n toHex() {\n return ut.bytesToHex(this.toRawBytes()); // Same as toRawBytes, but returns string.\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, _1n, modP(CURVE.Gx * CURVE.Gy));\n Point.ZERO = new Point(_0n, _1n, _1n, _0n); // 0, 1, 1, 0\n const { BASE: G, ZERO: I } = Point;\n const wnaf = wNAF(Point, nByteLength * 8);\n function modN(a) {\n return mod(a, CURVE_ORDER);\n }\n // Little-endian SHA512 with modulo n\n function modN_LE(hash) {\n return modN(ut.bytesToNumberLE(hash));\n }\n /** Convenience method that creates public key and other stuff. RFC8032 5.1.5 */\n function getExtendedPublicKey(key) {\n const len = nByteLength;\n key = ensureBytes('private key', key, len);\n // Hash private key with curve's hash function to produce uniformingly random input\n // Check byte lengths: ensure(64, h(ensure(32, key)))\n const hashed = ensureBytes('hashed private key', cHash(key), 2 * len);\n const head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE\n const prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6)\n const scalar = modN_LE(head); // The actual private scalar\n const point = G.multiply(scalar); // Point on Edwards curve aka public key\n const pointBytes = point.toRawBytes(); // Uint8Array representation\n return { head, prefix, scalar, point, pointBytes };\n }\n // Calculates EdDSA pub key. RFC8032 5.1.5. Privkey is hashed. Use first half with 3 bits cleared\n function getPublicKey(privKey) {\n return getExtendedPublicKey(privKey).pointBytes;\n }\n // int('LE', SHA512(dom2(F, C) || msgs)) mod N\n function hashDomainToScalar(context = new Uint8Array(), ...msgs) {\n const msg = ut.concatBytes(...msgs);\n return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash)));\n }\n /** Signs message with privateKey. RFC8032 5.1.6 */\n function sign(msg, privKey, options = {}) {\n msg = ensureBytes('message', msg);\n if (prehash)\n msg = prehash(msg); // for ed25519ph etc.\n const { prefix, scalar, pointBytes } = getExtendedPublicKey(privKey);\n const r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)\n const R = G.multiply(r).toRawBytes(); // R = rG\n const k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M)\n const s = modN(r + k * scalar); // S = (r + k * s) mod L\n ut.aInRange('signature.s', s, _0n, CURVE_ORDER); // 0 <= s < l\n const res = ut.concatBytes(R, ut.numberToBytesLE(s, Fp.BYTES));\n return ensureBytes('result', res, nByteLength * 2); // 64-byte signature\n }\n const verifyOpts = VERIFY_DEFAULT;\n function verify(sig, msg, publicKey, options = verifyOpts) {\n const { context, zip215 } = options;\n const len = Fp.BYTES; // Verifies EdDSA signature against message and public key. RFC8032 5.1.7.\n sig = ensureBytes('signature', sig, 2 * len); // An extended group equation is checked.\n msg = ensureBytes('message', msg);\n if (zip215 !== undefined)\n abool('zip215', zip215);\n if (prehash)\n msg = prehash(msg); // for ed25519ph, etc\n const s = ut.bytesToNumberLE(sig.slice(len, 2 * len));\n // zip215: true is good for consensus-critical apps and allows points < 2^256\n // zip215: false follows RFC8032 / NIST186-5 and restricts points to CURVE.p\n let A, R, SB;\n try {\n A = Point.fromHex(publicKey, zip215);\n R = Point.fromHex(sig.slice(0, len), zip215);\n SB = G.multiplyUnsafe(s); // 0 <= s < l is done inside\n }\n catch (error) {\n return false;\n }\n if (!zip215 && A.isSmallOrder())\n return false;\n const k = hashDomainToScalar(context, R.toRawBytes(), A.toRawBytes(), msg);\n const RkA = R.add(A.multiplyUnsafe(k));\n // [8][S]B = [8]R + [8][k]A'\n return RkA.subtract(SB).clearCofactor().equals(Point.ZERO);\n }\n G._setWindowSize(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n const utils = {\n getExtendedPublicKey,\n // ed25519 private keys are uniform 32b. No need to check for modulo bias, like in secp256k1.\n randomPrivateKey: () => randomBytes(Fp.BYTES),\n /**\n * We're doing scalar multiplication (used in getPublicKey etc) with precomputed BASE_POINT\n * values. This slows down first getPublicKey() by milliseconds (see Speed section),\n * but allows to speed-up subsequent getPublicKey() calls up to 20x.\n * @param windowSize 2, 4, 8, 16\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3));\n return point;\n },\n };\n return {\n CURVE,\n getPublicKey,\n sign,\n verify,\n ExtendedPoint: Point,\n utils,\n };\n}\n//# sourceMappingURL=edwards.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { mod, pow } from './modular.js';\nimport { aInRange, bytesToNumberLE, ensureBytes, numberToBytesLE, validateObject, } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction validateOpts(curve) {\n validateObject(curve, {\n a: 'bigint',\n }, {\n montgomeryBits: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n adjustScalarBytes: 'function',\n domain: 'function',\n powPminus2: 'function',\n Gu: 'bigint',\n });\n // Set defaults\n return Object.freeze({ ...curve });\n}\n// NOTE: not really montgomery curve, just bunch of very specific methods for X25519/X448 (RFC 7748, https://www.rfc-editor.org/rfc/rfc7748)\n// Uses only one coordinate instead of two\nexport function montgomery(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { P } = CURVE;\n const modP = (n) => mod(n, P);\n const montgomeryBits = CURVE.montgomeryBits;\n const montgomeryBytes = Math.ceil(montgomeryBits / 8);\n const fieldLen = CURVE.nByteLength;\n const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes) => bytes);\n const powPminus2 = CURVE.powPminus2 || ((x) => pow(x, P - BigInt(2), P));\n // cswap from RFC7748. But it is not from RFC7748!\n /*\n cswap(swap, x_2, x_3):\n dummy = mask(swap) AND (x_2 XOR x_3)\n x_2 = x_2 XOR dummy\n x_3 = x_3 XOR dummy\n Return (x_2, x_3)\n Where mask(swap) is the all-1 or all-0 word of the same length as x_2\n and x_3, computed, e.g., as mask(swap) = 0 - swap.\n */\n function cswap(swap, x_2, x_3) {\n const dummy = modP(swap * (x_2 - x_3));\n x_2 = modP(x_2 - dummy);\n x_3 = modP(x_3 + dummy);\n return [x_2, x_3];\n }\n // x25519 from 4\n // The constant a24 is (486662 - 2) / 4 = 121665 for curve25519/X25519\n const a24 = (CURVE.a - BigInt(2)) / BigInt(4);\n /**\n *\n * @param pointU u coordinate (x) on Montgomery Curve 25519\n * @param scalar by which the point would be multiplied\n * @returns new Point on Montgomery curve\n */\n function montgomeryLadder(u, scalar) {\n aInRange('u', u, _0n, P);\n aInRange('scalar', scalar, _0n, P);\n // Section 5: Implementations MUST accept non-canonical values and process them as\n // if they had been reduced modulo the field prime.\n const k = scalar;\n const x_1 = u;\n let x_2 = _1n;\n let z_2 = _0n;\n let x_3 = u;\n let z_3 = _1n;\n let swap = _0n;\n let sw;\n for (let t = BigInt(montgomeryBits - 1); t >= _0n; t--) {\n const k_t = (k >> t) & _1n;\n swap ^= k_t;\n sw = cswap(swap, x_2, x_3);\n x_2 = sw[0];\n x_3 = sw[1];\n sw = cswap(swap, z_2, z_3);\n z_2 = sw[0];\n z_3 = sw[1];\n swap = k_t;\n const A = x_2 + z_2;\n const AA = modP(A * A);\n const B = x_2 - z_2;\n const BB = modP(B * B);\n const E = AA - BB;\n const C = x_3 + z_3;\n const D = x_3 - z_3;\n const DA = modP(D * A);\n const CB = modP(C * B);\n const dacb = DA + CB;\n const da_cb = DA - CB;\n x_3 = modP(dacb * dacb);\n z_3 = modP(x_1 * modP(da_cb * da_cb));\n x_2 = modP(AA * BB);\n z_2 = modP(E * (AA + modP(a24 * E)));\n }\n // (x_2, x_3) = cswap(swap, x_2, x_3)\n sw = cswap(swap, x_2, x_3);\n x_2 = sw[0];\n x_3 = sw[1];\n // (z_2, z_3) = cswap(swap, z_2, z_3)\n sw = cswap(swap, z_2, z_3);\n z_2 = sw[0];\n z_3 = sw[1];\n // z_2^(p - 2)\n const z2 = powPminus2(z_2);\n // Return x_2 * (z_2^(p - 2))\n return modP(x_2 * z2);\n }\n function encodeUCoordinate(u) {\n return numberToBytesLE(modP(u), montgomeryBytes);\n }\n function decodeUCoordinate(uEnc) {\n // Section 5: When receiving such an array, implementations of X25519\n // MUST mask the most significant bit in the final byte.\n const u = ensureBytes('u coordinate', uEnc, montgomeryBytes);\n if (fieldLen === 32)\n u[31] &= 127; // 0b0111_1111\n return bytesToNumberLE(u);\n }\n function decodeScalar(n) {\n const bytes = ensureBytes('scalar', n);\n const len = bytes.length;\n if (len !== montgomeryBytes && len !== fieldLen)\n throw new Error(`Expected ${montgomeryBytes} or ${fieldLen} bytes, got ${len}`);\n return bytesToNumberLE(adjustScalarBytes(bytes));\n }\n function scalarMult(scalar, u) {\n const pointU = decodeUCoordinate(u);\n const _scalar = decodeScalar(scalar);\n const pu = montgomeryLadder(pointU, _scalar);\n // The result was not contributory\n // https://cr.yp.to/ecdh.html#validate\n if (pu === _0n)\n throw new Error('Invalid private or public key received');\n return encodeUCoordinate(pu);\n }\n // Computes public key from private. By doing scalar multiplication of base point.\n const GuBytes = encodeUCoordinate(CURVE.Gu);\n function scalarMultBase(scalar) {\n return scalarMult(scalar, GuBytes);\n }\n return {\n scalarMult,\n scalarMultBase,\n getSharedSecret: (privateKey, publicKey) => scalarMult(privateKey, publicKey),\n getPublicKey: (privateKey) => scalarMultBase(privateKey),\n utils: { randomPrivateKey: () => CURVE.randomBytes(CURVE.nByteLength) },\n GuBytes: GuBytes,\n };\n}\n//# sourceMappingURL=montgomery.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { shake256 } from '@noble/hashes/sha3';\nimport { concatBytes, randomBytes, utf8ToBytes, wrapConstructor } from '@noble/hashes/utils';\nimport { twistedEdwards } from './abstract/edwards.js';\nimport { createHasher, expand_message_xof } from './abstract/hash-to-curve.js';\nimport { Field, isNegativeLE, mod, pow2 } from './abstract/modular.js';\nimport { montgomery } from './abstract/montgomery.js';\nimport { bytesToHex, bytesToNumberLE, ensureBytes, equalBytes, numberToBytesLE, } from './abstract/utils.js';\n/**\n * Edwards448 (not Ed448-Goldilocks) curve with following addons:\n * - X448 ECDH\n * - Decaf cofactor elimination\n * - Elligator hash-to-group / point indistinguishability\n * Conforms to RFC 8032 https://www.rfc-editor.org/rfc/rfc8032.html#section-5.2\n */\nconst shake256_114 = wrapConstructor(() => shake256.create({ dkLen: 114 }));\nconst shake256_64 = wrapConstructor(() => shake256.create({ dkLen: 64 }));\nconst ed448P = BigInt('726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018365439');\n// prettier-ignore\nconst _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4), _11n = BigInt(11);\n// prettier-ignore\nconst _22n = BigInt(22), _44n = BigInt(44), _88n = BigInt(88), _223n = BigInt(223);\n// powPminus3div4 calculates z = x^k mod p, where k = (p-3)/4.\n// Used for efficient square root calculation.\n// ((P-3)/4).toString(2) would produce bits [223x 1, 0, 222x 1]\nfunction ed448_pow_Pminus3div4(x) {\n const P = ed448P;\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b222 = (pow2(b220, _2n, P) * b2) % P;\n const b223 = (pow2(b222, _1n, P) * x) % P;\n return (pow2(b223, _223n, P) * b222) % P;\n}\nfunction adjustScalarBytes(bytes) {\n // Section 5: Likewise, for X448, set the two least significant bits of the first byte to 0, and the most\n // significant bit of the last byte to 1.\n bytes[0] &= 252; // 0b11111100\n // and the most significant bit of the last byte to 1.\n bytes[55] |= 128; // 0b10000000\n // NOTE: is is NOOP for 56 bytes scalars (X25519/X448)\n bytes[56] = 0; // Byte outside of group (456 buts vs 448 bits)\n return bytes;\n}\n// Constant-time ratio of u to v. Allows to combine inversion and square root u/√v.\n// Uses algo from RFC8032 5.1.3.\nfunction uvRatio(u, v) {\n const P = ed448P;\n // https://www.rfc-editor.org/rfc/rfc8032#section-5.2.3\n // To compute the square root of (u/v), the first step is to compute the\n // candidate root x = (u/v)^((p+1)/4). This can be done using the\n // following trick, to use a single modular powering for both the\n // inversion of v and the square root:\n // x = (u/v)^((p+1)/4) = u³v(u⁵v³)^((p-3)/4) (mod p)\n const u2v = mod(u * u * v, P); // u²v\n const u3v = mod(u2v * u, P); // u³v\n const u5v3 = mod(u3v * u2v * v, P); // u⁵v³\n const root = ed448_pow_Pminus3div4(u5v3);\n const x = mod(u3v * root, P);\n // Verify that root is exists\n const x2 = mod(x * x, P); // x²\n // If vx² = u, the recovered x-coordinate is x. Otherwise, no\n // square root exists, and the decoding fails.\n return { isValid: mod(x2 * v, P) === u, value: x };\n}\nconst Fp = Field(ed448P, 456, true);\nconst ED448_DEF = {\n // Param: a\n a: BigInt(1),\n // -39081. Negative number is P - number\n d: BigInt('726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018326358'),\n // Finite field 𝔽p over which we'll do calculations; 2n**448n - 2n**224n - 1n\n Fp,\n // Subgroup order: how many points curve has;\n // 2n**446n - 13818066809895115352007386748515426880336692474882178609894547503885n\n n: BigInt('181709681073901722637330951972001133588410340171829515070372549795146003961539585716195755291692375963310293709091662304773755859649779'),\n // RFC 7748 has 56-byte keys, RFC 8032 has 57-byte keys\n nBitLength: 456,\n // Cofactor\n h: BigInt(4),\n // Base point (x, y) aka generator point\n Gx: BigInt('224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710'),\n Gy: BigInt('298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660'),\n // SHAKE256(dom4(phflag,context)||x, 114)\n hash: shake256_114,\n randomBytes,\n adjustScalarBytes,\n // dom4\n domain: (data, ctx, phflag) => {\n if (ctx.length > 255)\n throw new Error(`Context is too big: ${ctx.length}`);\n return concatBytes(utf8ToBytes('SigEd448'), new Uint8Array([phflag ? 1 : 0, ctx.length]), ctx, data);\n },\n uvRatio,\n};\nexport const ed448 = /* @__PURE__ */ twistedEdwards(ED448_DEF);\n// NOTE: there is no ed448ctx, since ed448 supports ctx by default\nexport const ed448ph = /* @__PURE__ */ twistedEdwards({ ...ED448_DEF, prehash: shake256_64 });\nexport const x448 = /* @__PURE__ */ (() => montgomery({\n a: BigInt(156326),\n // RFC 7748 has 56-byte keys, RFC 8032 has 57-byte keys\n montgomeryBits: 448,\n nByteLength: 56,\n P: ed448P,\n Gu: BigInt(5),\n powPminus2: (x) => {\n const P = ed448P;\n const Pminus3div4 = ed448_pow_Pminus3div4(x);\n const Pminus3 = pow2(Pminus3div4, BigInt(2), P);\n return mod(Pminus3 * x, P); // Pminus3 * x = Pminus2\n },\n adjustScalarBytes,\n randomBytes,\n}))();\n/**\n * Converts edwards448 public key to x448 public key. Uses formula:\n * * `(u, v) = ((y-1)/(y+1), sqrt(156324)*u/x)`\n * * `(x, y) = (sqrt(156324)*u/v, (1+u)/(1-u))`\n * @example\n * const aPub = ed448.getPublicKey(utils.randomPrivateKey());\n * x448.getSharedSecret(edwardsToMontgomery(aPub), edwardsToMontgomery(someonesPub))\n */\nexport function edwardsToMontgomeryPub(edwardsPub) {\n const { y } = ed448.ExtendedPoint.fromHex(edwardsPub);\n const _1n = BigInt(1);\n return Fp.toBytes(Fp.create((y - _1n) * Fp.inv(y + _1n)));\n}\nexport const edwardsToMontgomery = edwardsToMontgomeryPub; // deprecated\n// TODO: add edwardsToMontgomeryPriv, similar to ed25519 version\n// Hash To Curve Elligator2 Map\nconst ELL2_C1 = (Fp.ORDER - BigInt(3)) / BigInt(4); // 1. c1 = (q - 3) / 4 # Integer arithmetic\nconst ELL2_J = BigInt(156326);\nfunction map_to_curve_elligator2_curve448(u) {\n let tv1 = Fp.sqr(u); // 1. tv1 = u^2\n let e1 = Fp.eql(tv1, Fp.ONE); // 2. e1 = tv1 == 1\n tv1 = Fp.cmov(tv1, Fp.ZERO, e1); // 3. tv1 = CMOV(tv1, 0, e1) # If Z * u^2 == -1, set tv1 = 0\n let xd = Fp.sub(Fp.ONE, tv1); // 4. xd = 1 - tv1\n let x1n = Fp.neg(ELL2_J); // 5. x1n = -J\n let tv2 = Fp.sqr(xd); // 6. tv2 = xd^2\n let gxd = Fp.mul(tv2, xd); // 7. gxd = tv2 * xd # gxd = xd^3\n let gx1 = Fp.mul(tv1, Fp.neg(ELL2_J)); // 8. gx1 = -J * tv1 # x1n + J * xd\n gx1 = Fp.mul(gx1, x1n); // 9. gx1 = gx1 * x1n # x1n^2 + J * x1n * xd\n gx1 = Fp.add(gx1, tv2); // 10. gx1 = gx1 + tv2 # x1n^2 + J * x1n * xd + xd^2\n gx1 = Fp.mul(gx1, x1n); // 11. gx1 = gx1 * x1n # x1n^3 + J * x1n^2 * xd + x1n * xd^2\n let tv3 = Fp.sqr(gxd); // 12. tv3 = gxd^2\n tv2 = Fp.mul(gx1, gxd); // 13. tv2 = gx1 * gxd # gx1 * gxd\n tv3 = Fp.mul(tv3, tv2); // 14. tv3 = tv3 * tv2 # gx1 * gxd^3\n let y1 = Fp.pow(tv3, ELL2_C1); // 15. y1 = tv3^c1 # (gx1 * gxd^3)^((p - 3) / 4)\n y1 = Fp.mul(y1, tv2); // 16. y1 = y1 * tv2 # gx1 * gxd * (gx1 * gxd^3)^((p - 3) / 4)\n let x2n = Fp.mul(x1n, Fp.neg(tv1)); // 17. x2n = -tv1 * x1n # x2 = x2n / xd = -1 * u^2 * x1n / xd\n let y2 = Fp.mul(y1, u); // 18. y2 = y1 * u\n y2 = Fp.cmov(y2, Fp.ZERO, e1); // 19. y2 = CMOV(y2, 0, e1)\n tv2 = Fp.sqr(y1); // 20. tv2 = y1^2\n tv2 = Fp.mul(tv2, gxd); // 21. tv2 = tv2 * gxd\n let e2 = Fp.eql(tv2, gx1); // 22. e2 = tv2 == gx1\n let xn = Fp.cmov(x2n, x1n, e2); // 23. xn = CMOV(x2n, x1n, e2) # If e2, x = x1, else x = x2\n let y = Fp.cmov(y2, y1, e2); // 24. y = CMOV(y2, y1, e2) # If e2, y = y1, else y = y2\n let e3 = Fp.isOdd(y); // 25. e3 = sgn0(y) == 1 # Fix sign of y\n y = Fp.cmov(y, Fp.neg(y), e2 !== e3); // 26. y = CMOV(y, -y, e2 XOR e3)\n return { xn, xd, yn: y, yd: Fp.ONE }; // 27. return (xn, xd, y, 1)\n}\nfunction map_to_curve_elligator2_edwards448(u) {\n let { xn, xd, yn, yd } = map_to_curve_elligator2_curve448(u); // 1. (xn, xd, yn, yd) = map_to_curve_elligator2_curve448(u)\n let xn2 = Fp.sqr(xn); // 2. xn2 = xn^2\n let xd2 = Fp.sqr(xd); // 3. xd2 = xd^2\n let xd4 = Fp.sqr(xd2); // 4. xd4 = xd2^2\n let yn2 = Fp.sqr(yn); // 5. yn2 = yn^2\n let yd2 = Fp.sqr(yd); // 6. yd2 = yd^2\n let xEn = Fp.sub(xn2, xd2); // 7. xEn = xn2 - xd2\n let tv2 = Fp.sub(xEn, xd2); // 8. tv2 = xEn - xd2\n xEn = Fp.mul(xEn, xd2); // 9. xEn = xEn * xd2\n xEn = Fp.mul(xEn, yd); // 10. xEn = xEn * yd\n xEn = Fp.mul(xEn, yn); // 11. xEn = xEn * yn\n xEn = Fp.mul(xEn, _4n); // 12. xEn = xEn * 4\n tv2 = Fp.mul(tv2, xn2); // 13. tv2 = tv2 * xn2\n tv2 = Fp.mul(tv2, yd2); // 14. tv2 = tv2 * yd2\n let tv3 = Fp.mul(yn2, _4n); // 15. tv3 = 4 * yn2\n let tv1 = Fp.add(tv3, yd2); // 16. tv1 = tv3 + yd2\n tv1 = Fp.mul(tv1, xd4); // 17. tv1 = tv1 * xd4\n let xEd = Fp.add(tv1, tv2); // 18. xEd = tv1 + tv2\n tv2 = Fp.mul(tv2, xn); // 19. tv2 = tv2 * xn\n let tv4 = Fp.mul(xn, xd4); // 20. tv4 = xn * xd4\n let yEn = Fp.sub(tv3, yd2); // 21. yEn = tv3 - yd2\n yEn = Fp.mul(yEn, tv4); // 22. yEn = yEn * tv4\n yEn = Fp.sub(yEn, tv2); // 23. yEn = yEn - tv2\n tv1 = Fp.add(xn2, xd2); // 24. tv1 = xn2 + xd2\n tv1 = Fp.mul(tv1, xd2); // 25. tv1 = tv1 * xd2\n tv1 = Fp.mul(tv1, xd); // 26. tv1 = tv1 * xd\n tv1 = Fp.mul(tv1, yn2); // 27. tv1 = tv1 * yn2\n tv1 = Fp.mul(tv1, BigInt(-2)); // 28. tv1 = -2 * tv1\n let yEd = Fp.add(tv2, tv1); // 29. yEd = tv2 + tv1\n tv4 = Fp.mul(tv4, yd2); // 30. tv4 = tv4 * yd2\n yEd = Fp.add(yEd, tv4); // 31. yEd = yEd + tv4\n tv1 = Fp.mul(xEd, yEd); // 32. tv1 = xEd * yEd\n let e = Fp.eql(tv1, Fp.ZERO); // 33. e = tv1 == 0\n xEn = Fp.cmov(xEn, Fp.ZERO, e); // 34. xEn = CMOV(xEn, 0, e)\n xEd = Fp.cmov(xEd, Fp.ONE, e); // 35. xEd = CMOV(xEd, 1, e)\n yEn = Fp.cmov(yEn, Fp.ONE, e); // 36. yEn = CMOV(yEn, 1, e)\n yEd = Fp.cmov(yEd, Fp.ONE, e); // 37. yEd = CMOV(yEd, 1, e)\n const inv = Fp.invertBatch([xEd, yEd]); // batch division\n return { x: Fp.mul(xEn, inv[0]), y: Fp.mul(yEn, inv[1]) }; // 38. return (xEn, xEd, yEn, yEd)\n}\nconst htf = /* @__PURE__ */ (() => createHasher(ed448.ExtendedPoint, (scalars) => map_to_curve_elligator2_edwards448(scalars[0]), {\n DST: 'edwards448_XOF:SHAKE256_ELL2_RO_',\n encodeDST: 'edwards448_XOF:SHAKE256_ELL2_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 224,\n expand: 'xof',\n hash: shake256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\nfunction assertDcfPoint(other) {\n if (!(other instanceof DcfPoint))\n throw new Error('DecafPoint expected');\n}\n// 1-d\nconst ONE_MINUS_D = BigInt('39082');\n// 1-2d\nconst ONE_MINUS_TWO_D = BigInt('78163');\n// √(-d)\nconst SQRT_MINUS_D = BigInt('98944233647732219769177004876929019128417576295529901074099889598043702116001257856802131563896515373927712232092845883226922417596214');\n// 1 / √(-d)\nconst INVSQRT_MINUS_D = BigInt('315019913931389607337177038330951043522456072897266928557328499619017160722351061360252776265186336876723201881398623946864393857820716');\n// Calculates 1/√(number)\nconst invertSqrt = (number) => uvRatio(_1n, number);\nconst MAX_448B = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nconst bytes448ToNumberLE = (bytes) => ed448.CURVE.Fp.create(bytesToNumberLE(bytes) & MAX_448B);\n// Computes Elligator map for Decaf\n// https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448-07#name-element-derivation-2\nfunction calcElligatorDecafMap(r0) {\n const { d } = ed448.CURVE;\n const P = ed448.CURVE.Fp.ORDER;\n const mod = ed448.CURVE.Fp.create;\n const r = mod(-(r0 * r0)); // 1\n const u0 = mod(d * (r - _1n)); // 2\n const u1 = mod((u0 + _1n) * (u0 - r)); // 3\n const { isValid: was_square, value: v } = uvRatio(ONE_MINUS_TWO_D, mod((r + _1n) * u1)); // 4\n let v_prime = v; // 5\n if (!was_square)\n v_prime = mod(r0 * v);\n let sgn = _1n; // 6\n if (!was_square)\n sgn = mod(-_1n);\n const s = mod(v_prime * (r + _1n)); // 7\n let s_abs = s;\n if (isNegativeLE(s, P))\n s_abs = mod(-s);\n const s2 = s * s;\n const W0 = mod(s_abs * _2n); // 8\n const W1 = mod(s2 + _1n); // 9\n const W2 = mod(s2 - _1n); // 10\n const W3 = mod(v_prime * s * (r - _1n) * ONE_MINUS_TWO_D + sgn); // 11\n return new ed448.ExtendedPoint(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2));\n}\n/**\n * Each ed448/ExtendedPoint has 4 different equivalent points. This can be\n * a source of bugs for protocols like ring signatures. Decaf was created to solve this.\n * Decaf point operates in X:Y:Z:T extended coordinates like ExtendedPoint,\n * but it should work in its own namespace: do not combine those two.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448\n */\nclass DcfPoint {\n // Private property to discourage combining ExtendedPoint + DecafPoint\n // Always use Decaf encoding/decoding instead.\n constructor(ep) {\n this.ep = ep;\n }\n static fromAffine(ap) {\n return new DcfPoint(ed448.ExtendedPoint.fromAffine(ap));\n }\n /**\n * Takes uniform output of 112-byte hash function like shake256 and converts it to `DecafPoint`.\n * The hash-to-group operation applies Elligator twice and adds the results.\n * **Note:** this is one-way map, there is no conversion from point to hash.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448-07#name-element-derivation-2\n * @param hex 112-byte output of a hash function\n */\n static hashToCurve(hex) {\n hex = ensureBytes('decafHash', hex, 112);\n const r1 = bytes448ToNumberLE(hex.slice(0, 56));\n const R1 = calcElligatorDecafMap(r1);\n const r2 = bytes448ToNumberLE(hex.slice(56, 112));\n const R2 = calcElligatorDecafMap(r2);\n return new DcfPoint(R1.add(R2));\n }\n /**\n * Converts decaf-encoded string to decaf point.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448-07#name-decode-2\n * @param hex Decaf-encoded 56 bytes. Not every 56-byte string is valid decaf encoding\n */\n static fromHex(hex) {\n hex = ensureBytes('decafHex', hex, 56);\n const { d } = ed448.CURVE;\n const P = ed448.CURVE.Fp.ORDER;\n const mod = ed448.CURVE.Fp.create;\n const emsg = 'DecafPoint.fromHex: the hex is not valid encoding of DecafPoint';\n const s = bytes448ToNumberLE(hex);\n // 1. Check that s_bytes is the canonical encoding of a field element, or else abort.\n // 2. Check that s is non-negative, or else abort\n if (!equalBytes(numberToBytesLE(s, 56), hex) || isNegativeLE(s, P))\n throw new Error(emsg);\n const s2 = mod(s * s); // 1\n const u1 = mod(_1n + s2); // 2\n const u1sq = mod(u1 * u1);\n const u2 = mod(u1sq - _4n * d * s2); // 3\n const { isValid, value: invsqrt } = invertSqrt(mod(u2 * u1sq)); // 4\n let u3 = mod((s + s) * invsqrt * u1 * SQRT_MINUS_D); // 5\n if (isNegativeLE(u3, P))\n u3 = mod(-u3);\n const x = mod(u3 * invsqrt * u2 * INVSQRT_MINUS_D); // 6\n const y = mod((_1n - s2) * invsqrt * u1); // 7\n const t = mod(x * y); // 8\n if (!isValid)\n throw new Error(emsg);\n return new DcfPoint(new ed448.ExtendedPoint(x, y, _1n, t));\n }\n /**\n * Encodes decaf point to Uint8Array.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448-07#name-encode-2\n */\n toRawBytes() {\n let { ex: x, ey: _y, ez: z, et: t } = this.ep;\n const P = ed448.CURVE.Fp.ORDER;\n const mod = ed448.CURVE.Fp.create;\n const u1 = mod(mod(x + t) * mod(x - t)); // 1\n const x2 = mod(x * x);\n const { value: invsqrt } = invertSqrt(mod(u1 * ONE_MINUS_D * x2)); // 2\n let ratio = mod(invsqrt * u1 * SQRT_MINUS_D); // 3\n if (isNegativeLE(ratio, P))\n ratio = mod(-ratio);\n const u2 = mod(INVSQRT_MINUS_D * ratio * z - t); // 4\n let s = mod(ONE_MINUS_D * invsqrt * x * u2); // 5\n if (isNegativeLE(s, P))\n s = mod(-s);\n return numberToBytesLE(s, 56);\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n toString() {\n return this.toHex();\n }\n // Compare one point to another.\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448-07#name-equals-2\n equals(other) {\n assertDcfPoint(other);\n const { ex: X1, ey: Y1 } = this.ep;\n const { ex: X2, ey: Y2 } = other.ep;\n const mod = ed448.CURVE.Fp.create;\n // (x1 * y2 == y1 * x2)\n return mod(X1 * Y2) === mod(Y1 * X2);\n }\n add(other) {\n assertDcfPoint(other);\n return new DcfPoint(this.ep.add(other.ep));\n }\n subtract(other) {\n assertDcfPoint(other);\n return new DcfPoint(this.ep.subtract(other.ep));\n }\n multiply(scalar) {\n return new DcfPoint(this.ep.multiply(scalar));\n }\n multiplyUnsafe(scalar) {\n return new DcfPoint(this.ep.multiplyUnsafe(scalar));\n }\n double() {\n return new DcfPoint(this.ep.double());\n }\n negate() {\n return new DcfPoint(this.ep.negate());\n }\n}\nexport const DecafPoint = /* @__PURE__ */ (() => {\n // decaf448 base point is ed448 base x 2\n // https://github.com/dalek-cryptography/curve25519-dalek/blob/59837c6ecff02b77b9d5ff84dbc239d0cf33ef90/vendor/ristretto.sage#L699\n if (!DcfPoint.BASE)\n DcfPoint.BASE = new DcfPoint(ed448.ExtendedPoint.BASE).multiply(_2n);\n if (!DcfPoint.ZERO)\n DcfPoint.ZERO = new DcfPoint(ed448.ExtendedPoint.ZERO);\n return DcfPoint;\n})();\n// Hashing to decaf448. https://www.rfc-editor.org/rfc/rfc9380#appendix-C\nexport const hashToDecaf448 = (msg, options) => {\n const d = options.DST;\n const DST = typeof d === 'string' ? utf8ToBytes(d) : d;\n const uniform_bytes = expand_message_xof(msg, DST, 112, 224, shake256);\n const P = DcfPoint.hashToCurve(uniform_bytes);\n return P;\n};\nexport const hash_to_decaf448 = hashToDecaf448; // legacy\n//# sourceMappingURL=ed448.js.map", "/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { inRange, aInRange, bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE, } from './abstract/utils.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexport const secp256k1 = createCurve({\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => numberToBytesBE(n, 32);\nconst modP = (x) => mod(x, secp256k1P);\nconst modN = (x) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map", "import { createCurve } from '@noble/curves/_shortw_utils';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { Field } from '@noble/curves/abstract/modular';\n\n// brainpoolP256r1: https://datatracker.ietf.org/doc/html/rfc5639#section-3.4\n\n// eslint-disable-next-line new-cap\nconst Fp = Field(BigInt('0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377'));\nconst CURVE_A = Fp.create(BigInt('0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9'));\nconst CURVE_B = BigInt('0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6');\n\n// prettier-ignore\nexport const brainpoolP256r1 = createCurve({\n a: CURVE_A, // Equation params: a, b\n b: CURVE_B,\n Fp,\n // Curve order (q), total count of valid points in the field\n n: BigInt('0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7'),\n // Base (generator) point (x, y)\n Gx: BigInt('0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262'),\n Gy: BigInt('0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997'),\n h: BigInt(1),\n lowS: false\n} as const, sha256);\n", "import { createCurve } from '@noble/curves/_shortw_utils';\nimport { sha384 } from '@noble/hashes/sha512';\nimport { Field } from '@noble/curves/abstract/modular';\n\n// brainpoolP384 r1: https://datatracker.ietf.org/doc/html/rfc5639#section-3.6\n\n// eslint-disable-next-line new-cap\nconst Fp = Field(BigInt('0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53'));\nconst CURVE_A = Fp.create(BigInt('0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826'));\nconst CURVE_B = BigInt('0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11');\n\n// prettier-ignore\nexport const brainpoolP384r1 = createCurve({\n a: CURVE_A, // Equation params: a, b\n b: CURVE_B,\n Fp,\n // Curve order (q), total count of valid points in the field\n n: BigInt('0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565'),\n // Base (generator) point (x, y)\n Gx: BigInt('0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e'),\n Gy: BigInt('0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315'),\n h: BigInt(1),\n lowS: false\n} as const, sha384);\n", "import { createCurve } from '@noble/curves/_shortw_utils';\nimport { sha512 } from '@noble/hashes/sha512';\nimport { Field } from '@noble/curves/abstract/modular';\n\n// brainpoolP512r1: https://datatracker.ietf.org/doc/html/rfc5639#section-3.7\n\n// eslint-disable-next-line new-cap\nconst Fp = Field(BigInt('0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3'));\nconst CURVE_A = Fp.create(BigInt('0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca'));\nconst CURVE_B = BigInt('0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723');\n\n// prettier-ignore\nexport const brainpoolP512r1 = createCurve({\n a: CURVE_A, // Equation params: a, b\n b: CURVE_B,\n Fp,\n // Curve order (q), total count of valid points in the field\n n: BigInt('0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069'),\n // Base (generator) point (x, y)\n Gx: BigInt('0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822'),\n Gy: BigInt('0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892'),\n h: BigInt(1),\n lowS: false\n} as const, sha512);\n", "/**\n * This file is needed to dynamic import the noble-curves.\n * Separate dynamic imports are not convenient as they result in too many chunks,\n * which share a lot of code anyway.\n */\n\nimport { p256 as nistP256 } from '@noble/curves/p256';\nimport { p384 as nistP384 } from '@noble/curves/p384';\nimport { p521 as nistP521 } from '@noble/curves/p521';\nimport { x448, ed448 } from '@noble/curves/ed448';\nimport { secp256k1 } from '@noble/curves/secp256k1';\nimport { brainpoolP256r1 } from './brainpool/brainpoolP256r1';\nimport { brainpoolP384r1 } from './brainpool/brainpoolP384r1';\nimport { brainpoolP512r1 } from './brainpool/brainpoolP512r1';\n\nexport const nobleCurves = new Map(Object.entries({\n nistP256,\n nistP384,\n nistP521,\n brainpoolP256r1,\n brainpoolP384r1,\n brainpoolP512r1,\n secp256k1,\n x448,\n ed448\n}));\n\n", "//Paul Tero, July 2001\n//http://www.tero.co.uk/des/\n//\n//Optimised for performance with large blocks by Michael Hayworth, November 2001\n//http://www.netdealing.com\n//\n// Modified by Recurity Labs GmbH\n\n//THIS SOFTWARE IS PROVIDED \"AS IS\" AND\n//ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n//ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n//OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n//HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n//OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n//SUCH DAMAGE.\n\n//des\n//this takes the key, the message, and whether to encrypt or decrypt\n\nfunction des(keys, message, encrypt, mode, iv, padding) {\n //declaring this locally speeds things up a bit\n const spfunction1 = [\n 0x1010400, 0, 0x10000, 0x1010404, 0x1010004, 0x10404, 0x4, 0x10000, 0x400, 0x1010400,\n 0x1010404, 0x400, 0x1000404, 0x1010004, 0x1000000, 0x4, 0x404, 0x1000400, 0x1000400, 0x10400, 0x10400, 0x1010000,\n 0x1010000, 0x1000404, 0x10004, 0x1000004, 0x1000004, 0x10004, 0, 0x404, 0x10404, 0x1000000, 0x10000, 0x1010404, 0x4,\n 0x1010000, 0x1010400, 0x1000000, 0x1000000, 0x400, 0x1010004, 0x10000, 0x10400, 0x1000004, 0x400, 0x4, 0x1000404,\n 0x10404, 0x1010404, 0x10004, 0x1010000, 0x1000404, 0x1000004, 0x404, 0x10404, 0x1010400, 0x404, 0x1000400,\n 0x1000400, 0, 0x10004, 0x10400, 0, 0x1010004\n ];\n const spfunction2 = [\n -0x7fef7fe0, -0x7fff8000, 0x8000, 0x108020, 0x100000, 0x20, -0x7fefffe0, -0x7fff7fe0,\n -0x7fffffe0, -0x7fef7fe0, -0x7fef8000, -0x80000000, -0x7fff8000, 0x100000, 0x20, -0x7fefffe0, 0x108000, 0x100020,\n -0x7fff7fe0, 0, -0x80000000, 0x8000, 0x108020, -0x7ff00000, 0x100020, -0x7fffffe0, 0, 0x108000, 0x8020, -0x7fef8000,\n -0x7ff00000, 0x8020, 0, 0x108020, -0x7fefffe0, 0x100000, -0x7fff7fe0, -0x7ff00000, -0x7fef8000, 0x8000, -0x7ff00000,\n -0x7fff8000, 0x20, -0x7fef7fe0, 0x108020, 0x20, 0x8000, -0x80000000, 0x8020, -0x7fef8000, 0x100000, -0x7fffffe0,\n 0x100020, -0x7fff7fe0, -0x7fffffe0, 0x100020, 0x108000, 0, -0x7fff8000, 0x8020, -0x80000000, -0x7fefffe0,\n -0x7fef7fe0, 0x108000\n ];\n const spfunction3 = [\n 0x208, 0x8020200, 0, 0x8020008, 0x8000200, 0, 0x20208, 0x8000200, 0x20008, 0x8000008,\n 0x8000008, 0x20000, 0x8020208, 0x20008, 0x8020000, 0x208, 0x8000000, 0x8, 0x8020200, 0x200, 0x20200, 0x8020000,\n 0x8020008, 0x20208, 0x8000208, 0x20200, 0x20000, 0x8000208, 0x8, 0x8020208, 0x200, 0x8000000, 0x8020200, 0x8000000,\n 0x20008, 0x208, 0x20000, 0x8020200, 0x8000200, 0, 0x200, 0x20008, 0x8020208, 0x8000200, 0x8000008, 0x200, 0,\n 0x8020008, 0x8000208, 0x20000, 0x8000000, 0x8020208, 0x8, 0x20208, 0x20200, 0x8000008, 0x8020000, 0x8000208, 0x208,\n 0x8020000, 0x20208, 0x8, 0x8020008, 0x20200\n ];\n const spfunction4 = [\n 0x802001, 0x2081, 0x2081, 0x80, 0x802080, 0x800081, 0x800001, 0x2001, 0, 0x802000,\n 0x802000, 0x802081, 0x81, 0, 0x800080, 0x800001, 0x1, 0x2000, 0x800000, 0x802001, 0x80, 0x800000, 0x2001, 0x2080,\n 0x800081, 0x1, 0x2080, 0x800080, 0x2000, 0x802080, 0x802081, 0x81, 0x800080, 0x800001, 0x802000, 0x802081, 0x81, 0,\n 0, 0x802000, 0x2080, 0x800080, 0x800081, 0x1, 0x802001, 0x2081, 0x2081, 0x80, 0x802081, 0x81, 0x1, 0x2000, 0x800001,\n 0x2001, 0x802080, 0x800081, 0x2001, 0x2080, 0x800000, 0x802001, 0x80, 0x800000, 0x2000, 0x802080\n ];\n const spfunction5 = [\n 0x100, 0x2080100, 0x2080000, 0x42000100, 0x80000, 0x100, 0x40000000, 0x2080000,\n 0x40080100, 0x80000, 0x2000100, 0x40080100, 0x42000100, 0x42080000, 0x80100, 0x40000000, 0x2000000, 0x40080000,\n 0x40080000, 0, 0x40000100, 0x42080100, 0x42080100, 0x2000100, 0x42080000, 0x40000100, 0, 0x42000000, 0x2080100,\n 0x2000000, 0x42000000, 0x80100, 0x80000, 0x42000100, 0x100, 0x2000000, 0x40000000, 0x2080000, 0x42000100,\n 0x40080100, 0x2000100, 0x40000000, 0x42080000, 0x2080100, 0x40080100, 0x100, 0x2000000, 0x42080000, 0x42080100,\n 0x80100, 0x42000000, 0x42080100, 0x2080000, 0, 0x40080000, 0x42000000, 0x80100, 0x2000100, 0x40000100, 0x80000, 0,\n 0x40080000, 0x2080100, 0x40000100\n ];\n const spfunction6 = [\n 0x20000010, 0x20400000, 0x4000, 0x20404010, 0x20400000, 0x10, 0x20404010, 0x400000,\n 0x20004000, 0x404010, 0x400000, 0x20000010, 0x400010, 0x20004000, 0x20000000, 0x4010, 0, 0x400010, 0x20004010,\n 0x4000, 0x404000, 0x20004010, 0x10, 0x20400010, 0x20400010, 0, 0x404010, 0x20404000, 0x4010, 0x404000, 0x20404000,\n 0x20000000, 0x20004000, 0x10, 0x20400010, 0x404000, 0x20404010, 0x400000, 0x4010, 0x20000010, 0x400000, 0x20004000,\n 0x20000000, 0x4010, 0x20000010, 0x20404010, 0x404000, 0x20400000, 0x404010, 0x20404000, 0, 0x20400010, 0x10, 0x4000,\n 0x20400000, 0x404010, 0x4000, 0x400010, 0x20004010, 0, 0x20404000, 0x20000000, 0x400010, 0x20004010\n ];\n const spfunction7 = [\n 0x200000, 0x4200002, 0x4000802, 0, 0x800, 0x4000802, 0x200802, 0x4200800, 0x4200802,\n 0x200000, 0, 0x4000002, 0x2, 0x4000000, 0x4200002, 0x802, 0x4000800, 0x200802, 0x200002, 0x4000800, 0x4000002,\n 0x4200000, 0x4200800, 0x200002, 0x4200000, 0x800, 0x802, 0x4200802, 0x200800, 0x2, 0x4000000, 0x200800, 0x4000000,\n 0x200800, 0x200000, 0x4000802, 0x4000802, 0x4200002, 0x4200002, 0x2, 0x200002, 0x4000000, 0x4000800, 0x200000,\n 0x4200800, 0x802, 0x200802, 0x4200800, 0x802, 0x4000002, 0x4200802, 0x4200000, 0x200800, 0, 0x2, 0x4200802, 0,\n 0x200802, 0x4200000, 0x800, 0x4000002, 0x4000800, 0x800, 0x200002\n ];\n const spfunction8 = [\n 0x10001040, 0x1000, 0x40000, 0x10041040, 0x10000000, 0x10001040, 0x40, 0x10000000,\n 0x40040, 0x10040000, 0x10041040, 0x41000, 0x10041000, 0x41040, 0x1000, 0x40, 0x10040000, 0x10000040, 0x10001000,\n 0x1040, 0x41000, 0x40040, 0x10040040, 0x10041000, 0x1040, 0, 0, 0x10040040, 0x10000040, 0x10001000, 0x41040,\n 0x40000, 0x41040, 0x40000, 0x10041000, 0x1000, 0x40, 0x10040040, 0x1000, 0x41040, 0x10001000, 0x40, 0x10000040,\n 0x10040000, 0x10040040, 0x10000000, 0x40000, 0x10001040, 0, 0x10041040, 0x40040, 0x10000040, 0x10040000, 0x10001000,\n 0x10001040, 0, 0x10041040, 0x41000, 0x41000, 0x1040, 0x1040, 0x40040, 0x10000000, 0x10041000\n ];\n\n //create the 16 or 48 subkeys we will need\n let m = 0;\n let i;\n let j;\n let temp;\n let right1;\n let right2;\n let left;\n let right;\n let looping;\n let cbcleft;\n let cbcleft2;\n let cbcright;\n let cbcright2;\n let endloop;\n let loopinc;\n let len = message.length;\n\n //set up the loops for single and triple des\n const iterations = keys.length === 32 ? 3 : 9; //single or triple des\n if (iterations === 3) {\n looping = encrypt ? [0, 32, 2] : [30, -2, -2];\n } else {\n looping = encrypt ? [0, 32, 2, 62, 30, -2, 64, 96, 2] : [94, 62, -2, 32, 64, 2, 30, -2, -2];\n }\n\n //pad the message depending on the padding parameter\n //only add padding if encrypting - note that you need to use the same padding option for both encrypt and decrypt\n if (encrypt) {\n message = desAddPadding(message, padding);\n len = message.length;\n }\n\n //store the result here\n let result = new Uint8Array(len);\n let k = 0;\n\n if (mode === 1) { //CBC mode\n cbcleft = (iv[m++] << 24) | (iv[m++] << 16) | (iv[m++] << 8) | iv[m++];\n cbcright = (iv[m++] << 24) | (iv[m++] << 16) | (iv[m++] << 8) | iv[m++];\n m = 0;\n }\n\n //loop through each 64 bit chunk of the message\n while (m < len) {\n left = (message[m++] << 24) | (message[m++] << 16) | (message[m++] << 8) | message[m++];\n right = (message[m++] << 24) | (message[m++] << 16) | (message[m++] << 8) | message[m++];\n\n //for Cipher Block Chaining mode, xor the message with the previous result\n if (mode === 1) {\n if (encrypt) {\n left ^= cbcleft;\n right ^= cbcright;\n } else {\n cbcleft2 = cbcleft;\n cbcright2 = cbcright;\n cbcleft = left;\n cbcright = right;\n }\n }\n\n //first each 64 but chunk of the message must be permuted according to IP\n temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= temp;\n left ^= (temp << 4);\n temp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= temp;\n left ^= (temp << 16);\n temp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= temp;\n right ^= (temp << 2);\n temp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= temp;\n right ^= (temp << 8);\n temp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= temp;\n left ^= (temp << 1);\n\n left = ((left << 1) | (left >>> 31));\n right = ((right << 1) | (right >>> 31));\n\n //do this either 1 or 3 times for each chunk of the message\n for (j = 0; j < iterations; j += 3) {\n endloop = looping[j + 1];\n loopinc = looping[j + 2];\n //now go through and perform the encryption or decryption\n for (i = looping[j]; i !== endloop; i += loopinc) { //for efficiency\n right1 = right ^ keys[i];\n right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];\n //the result is attained by passing these bytes through the S selection functions\n temp = left;\n left = right;\n right = temp ^ (spfunction2[(right1 >>> 24) & 0x3f] | spfunction4[(right1 >>> 16) & 0x3f] | spfunction6[(right1 >>>\n 8) & 0x3f] | spfunction8[right1 & 0x3f] | spfunction1[(right2 >>> 24) & 0x3f] | spfunction3[(right2 >>> 16) &\n 0x3f] | spfunction5[(right2 >>> 8) & 0x3f] | spfunction7[right2 & 0x3f]);\n }\n temp = left;\n left = right;\n right = temp; //unreverse left and right\n } //for either 1 or 3 iterations\n\n //move then each one bit to the right\n left = ((left >>> 1) | (left << 31));\n right = ((right >>> 1) | (right << 31));\n\n //now perform IP-1, which is IP in the opposite direction\n temp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= temp;\n left ^= (temp << 1);\n temp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= temp;\n right ^= (temp << 8);\n temp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= temp;\n right ^= (temp << 2);\n temp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= temp;\n left ^= (temp << 16);\n temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= temp;\n left ^= (temp << 4);\n\n //for Cipher Block Chaining mode, xor the message with the previous result\n if (mode === 1) {\n if (encrypt) {\n cbcleft = left;\n cbcright = right;\n } else {\n left ^= cbcleft2;\n right ^= cbcright2;\n }\n }\n\n result[k++] = (left >>> 24);\n result[k++] = ((left >>> 16) & 0xff);\n result[k++] = ((left >>> 8) & 0xff);\n result[k++] = (left & 0xff);\n result[k++] = (right >>> 24);\n result[k++] = ((right >>> 16) & 0xff);\n result[k++] = ((right >>> 8) & 0xff);\n result[k++] = (right & 0xff);\n } //for every 8 characters, or 64 bits in the message\n\n //only remove padding if decrypting - note that you need to use the same padding option for both encrypt and decrypt\n if (!encrypt) {\n result = desRemovePadding(result, padding);\n }\n\n return result;\n} //end of des\n\n\n//desCreateKeys\n//this takes as input a 64 bit key (even though only 56 bits are used)\n//as an array of 2 integers, and returns 16 48 bit keys\n\nfunction desCreateKeys(key) {\n //declaring this locally speeds things up a bit\n const pc2bytes0 = [\n 0, 0x4, 0x20000000, 0x20000004, 0x10000, 0x10004, 0x20010000, 0x20010004, 0x200, 0x204,\n 0x20000200, 0x20000204, 0x10200, 0x10204, 0x20010200, 0x20010204\n ];\n const pc2bytes1 = [\n 0, 0x1, 0x100000, 0x100001, 0x4000000, 0x4000001, 0x4100000, 0x4100001, 0x100, 0x101, 0x100100,\n 0x100101, 0x4000100, 0x4000101, 0x4100100, 0x4100101\n ];\n const pc2bytes2 = [\n 0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808, 0, 0x8, 0x800, 0x808,\n 0x1000000, 0x1000008, 0x1000800, 0x1000808\n ];\n const pc2bytes3 = [\n 0, 0x200000, 0x8000000, 0x8200000, 0x2000, 0x202000, 0x8002000, 0x8202000, 0x20000, 0x220000,\n 0x8020000, 0x8220000, 0x22000, 0x222000, 0x8022000, 0x8222000\n ];\n const pc2bytes4 = [\n 0, 0x40000, 0x10, 0x40010, 0, 0x40000, 0x10, 0x40010, 0x1000, 0x41000, 0x1010, 0x41010, 0x1000,\n 0x41000, 0x1010, 0x41010\n ];\n const pc2bytes5 = [\n 0, 0x400, 0x20, 0x420, 0, 0x400, 0x20, 0x420, 0x2000000, 0x2000400, 0x2000020, 0x2000420,\n 0x2000000, 0x2000400, 0x2000020, 0x2000420\n ];\n const pc2bytes6 = [\n 0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002, 0, 0x10000000,\n 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002\n ];\n const pc2bytes7 = [\n 0, 0x10000, 0x800, 0x10800, 0x20000000, 0x20010000, 0x20000800, 0x20010800, 0x20000, 0x30000,\n 0x20800, 0x30800, 0x20020000, 0x20030000, 0x20020800, 0x20030800\n ];\n const pc2bytes8 = [\n 0, 0x40000, 0, 0x40000, 0x2, 0x40002, 0x2, 0x40002, 0x2000000, 0x2040000, 0x2000000, 0x2040000,\n 0x2000002, 0x2040002, 0x2000002, 0x2040002\n ];\n const pc2bytes9 = [\n 0, 0x10000000, 0x8, 0x10000008, 0, 0x10000000, 0x8, 0x10000008, 0x400, 0x10000400, 0x408,\n 0x10000408, 0x400, 0x10000400, 0x408, 0x10000408\n ];\n const pc2bytes10 = [\n 0, 0x20, 0, 0x20, 0x100000, 0x100020, 0x100000, 0x100020, 0x2000, 0x2020, 0x2000, 0x2020,\n 0x102000, 0x102020, 0x102000, 0x102020\n ];\n const pc2bytes11 = [\n 0, 0x1000000, 0x200, 0x1000200, 0x200000, 0x1200000, 0x200200, 0x1200200, 0x4000000, 0x5000000,\n 0x4000200, 0x5000200, 0x4200000, 0x5200000, 0x4200200, 0x5200200\n ];\n const pc2bytes12 = [\n 0, 0x1000, 0x8000000, 0x8001000, 0x80000, 0x81000, 0x8080000, 0x8081000, 0x10, 0x1010,\n 0x8000010, 0x8001010, 0x80010, 0x81010, 0x8080010, 0x8081010\n ];\n const pc2bytes13 = [0, 0x4, 0x100, 0x104, 0, 0x4, 0x100, 0x104, 0x1, 0x5, 0x101, 0x105, 0x1, 0x5, 0x101, 0x105];\n\n //how many iterations (1 for des, 3 for triple des)\n const iterations = key.length > 8 ? 3 : 1; //changed by Paul 16/6/2007 to use Triple DES for 9+ byte keys\n //stores the return keys\n const keys = new Array(32 * iterations);\n //now define the left shifts which need to be done\n const shifts = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0];\n //other variables\n let lefttemp;\n let righttemp;\n let m = 0;\n let n = 0;\n let temp;\n\n for (let j = 0; j < iterations; j++) { //either 1 or 3 iterations\n let left = (key[m++] << 24) | (key[m++] << 16) | (key[m++] << 8) | key[m++];\n let right = (key[m++] << 24) | (key[m++] << 16) | (key[m++] << 8) | key[m++];\n\n temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= temp;\n left ^= (temp << 4);\n temp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= temp;\n right ^= (temp << -16);\n temp = ((left >>> 2) ^ right) & 0x33333333;\n right ^= temp;\n left ^= (temp << 2);\n temp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= temp;\n right ^= (temp << -16);\n temp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= temp;\n left ^= (temp << 1);\n temp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= temp;\n right ^= (temp << 8);\n temp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= temp;\n left ^= (temp << 1);\n\n //the right side needs to be shifted and to get the last four bits of the left side\n temp = (left << 8) | ((right >>> 20) & 0x000000f0);\n //left needs to be put upside down\n left = (right << 24) | ((right << 8) & 0xff0000) | ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0);\n right = temp;\n\n //now go through and perform these shifts on the left and right keys\n for (let i = 0; i < shifts.length; i++) {\n //shift the keys either one or two bits to the left\n if (shifts[i]) {\n left = (left << 2) | (left >>> 26);\n right = (right << 2) | (right >>> 26);\n } else {\n left = (left << 1) | (left >>> 27);\n right = (right << 1) | (right >>> 27);\n }\n left &= -0xf;\n right &= -0xf;\n\n //now apply PC-2, in such a way that E is easier when encrypting or decrypting\n //this conversion will look like PC-2 except only the last 6 bits of each byte are used\n //rather than 48 consecutive bits and the order of lines will be according to\n //how the S selection functions will be applied: S2, S4, S6, S8, S1, S3, S5, S7\n lefttemp = pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf] | pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(\n left >>> 16) & 0xf] | pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf] | pc2bytes6[(left >>> 4) &\n 0xf];\n righttemp = pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf] | pc2bytes9[(right >>> 20) & 0xf] |\n pc2bytes10[(right >>> 16) & 0xf] | pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf] |\n pc2bytes13[(right >>> 4) & 0xf];\n temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff;\n keys[n++] = lefttemp ^ temp;\n keys[n++] = righttemp ^ (temp << 16);\n }\n } //for each iterations\n //return the keys we've created\n return keys;\n} //end of desCreateKeys\n\n\nfunction desAddPadding(message, padding) {\n const padLength = 8 - (message.length % 8);\n\n let pad;\n if (padding === 2 && (padLength < 8)) { //pad the message with spaces\n pad = ' '.charCodeAt(0);\n } else if (padding === 1) { //PKCS7 padding\n pad = padLength;\n } else if (!padding && (padLength < 8)) { //pad the message out with null bytes\n pad = 0;\n } else if (padLength === 8) {\n return message;\n } else {\n throw new Error('des: invalid padding');\n }\n\n const paddedMessage = new Uint8Array(message.length + padLength);\n for (let i = 0; i < message.length; i++) {\n paddedMessage[i] = message[i];\n }\n for (let j = 0; j < padLength; j++) {\n paddedMessage[message.length + j] = pad;\n }\n\n return paddedMessage;\n}\n\nfunction desRemovePadding(message, padding) {\n let padLength = null;\n let pad;\n if (padding === 2) { // space padded\n pad = ' '.charCodeAt(0);\n } else if (padding === 1) { // PKCS7\n padLength = message[message.length - 1];\n } else if (!padding) { // null padding\n pad = 0;\n } else {\n throw new Error('des: invalid padding');\n }\n\n if (!padLength) {\n padLength = 1;\n while (message[message.length - padLength] === pad) {\n padLength++;\n }\n padLength--;\n }\n\n return message.subarray(0, message.length - padLength);\n}\n\n// added by Recurity Labs\n\nexport function TripleDES(key) {\n this.key = [];\n\n for (let i = 0; i < 3; i++) {\n this.key.push(new Uint8Array(key.subarray(i * 8, (i * 8) + 8)));\n }\n\n this.encrypt = function(block) {\n return des(\n desCreateKeys(this.key[2]),\n des(\n desCreateKeys(this.key[1]),\n des(\n desCreateKeys(this.key[0]),\n block, true, 0, null, null\n ),\n false, 0, null, null\n ), true, 0, null, null\n );\n };\n}\n\nTripleDES.keySize = TripleDES.prototype.keySize = 24;\nTripleDES.blockSize = TripleDES.prototype.blockSize = 8;\n\n// This is \"original\" DES\n\nexport function DES(key) {\n this.key = key;\n\n this.encrypt = function(block, padding) {\n const keys = desCreateKeys(this.key);\n return des(keys, block, true, 0, null, padding);\n };\n\n this.decrypt = function(block, padding) {\n const keys = desCreateKeys(this.key);\n return des(keys, block, false, 0, null, padding);\n };\n}\n", "// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Copyright 2010 pjacobs@xeekr.com . All rights reserved.\n\n// Modified by Recurity Labs GmbH\n\n// fixed/modified by Herbert Hanewinkel, www.haneWIN.de\n// check www.haneWIN.de for the latest version\n\n// cast5.js is a Javascript implementation of CAST-128, as defined in RFC 2144.\n// CAST-128 is a common OpenPGP cipher.\n\n\n// CAST5 constructor\n\nfunction OpenPGPSymEncCAST5() {\n this.BlockSize = 8;\n this.KeySize = 16;\n\n this.setKey = function(key) {\n this.masking = new Array(16);\n this.rotate = new Array(16);\n\n this.reset();\n\n if (key.length === this.KeySize) {\n this.keySchedule(key);\n } else {\n throw new Error('CAST-128: keys must be 16 bytes');\n }\n return true;\n };\n\n this.reset = function() {\n for (let i = 0; i < 16; i++) {\n this.masking[i] = 0;\n this.rotate[i] = 0;\n }\n };\n\n this.getBlockSize = function() {\n return this.BlockSize;\n };\n\n this.encrypt = function(src) {\n const dst = new Array(src.length);\n\n for (let i = 0; i < src.length; i += 8) {\n let l = (src[i] << 24) | (src[i + 1] << 16) | (src[i + 2] << 8) | src[i + 3];\n let r = (src[i + 4] << 24) | (src[i + 5] << 16) | (src[i + 6] << 8) | src[i + 7];\n let t;\n\n t = r;\n r = l ^ f1(r, this.masking[0], this.rotate[0]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[1], this.rotate[1]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[2], this.rotate[2]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[3], this.rotate[3]);\n l = t;\n\n t = r;\n r = l ^ f2(r, this.masking[4], this.rotate[4]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[5], this.rotate[5]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[6], this.rotate[6]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[7], this.rotate[7]);\n l = t;\n\n t = r;\n r = l ^ f3(r, this.masking[8], this.rotate[8]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[9], this.rotate[9]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[10], this.rotate[10]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[11], this.rotate[11]);\n l = t;\n\n t = r;\n r = l ^ f1(r, this.masking[12], this.rotate[12]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[13], this.rotate[13]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[14], this.rotate[14]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[15], this.rotate[15]);\n l = t;\n\n dst[i] = (r >>> 24) & 255;\n dst[i + 1] = (r >>> 16) & 255;\n dst[i + 2] = (r >>> 8) & 255;\n dst[i + 3] = r & 255;\n dst[i + 4] = (l >>> 24) & 255;\n dst[i + 5] = (l >>> 16) & 255;\n dst[i + 6] = (l >>> 8) & 255;\n dst[i + 7] = l & 255;\n }\n\n return dst;\n };\n\n this.decrypt = function(src) {\n const dst = new Array(src.length);\n\n for (let i = 0; i < src.length; i += 8) {\n let l = (src[i] << 24) | (src[i + 1] << 16) | (src[i + 2] << 8) | src[i + 3];\n let r = (src[i + 4] << 24) | (src[i + 5] << 16) | (src[i + 6] << 8) | src[i + 7];\n let t;\n\n t = r;\n r = l ^ f1(r, this.masking[15], this.rotate[15]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[14], this.rotate[14]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[13], this.rotate[13]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[12], this.rotate[12]);\n l = t;\n\n t = r;\n r = l ^ f3(r, this.masking[11], this.rotate[11]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[10], this.rotate[10]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[9], this.rotate[9]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[8], this.rotate[8]);\n l = t;\n\n t = r;\n r = l ^ f2(r, this.masking[7], this.rotate[7]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[6], this.rotate[6]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[5], this.rotate[5]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[4], this.rotate[4]);\n l = t;\n\n t = r;\n r = l ^ f1(r, this.masking[3], this.rotate[3]);\n l = t;\n t = r;\n r = l ^ f3(r, this.masking[2], this.rotate[2]);\n l = t;\n t = r;\n r = l ^ f2(r, this.masking[1], this.rotate[1]);\n l = t;\n t = r;\n r = l ^ f1(r, this.masking[0], this.rotate[0]);\n l = t;\n\n dst[i] = (r >>> 24) & 255;\n dst[i + 1] = (r >>> 16) & 255;\n dst[i + 2] = (r >>> 8) & 255;\n dst[i + 3] = r & 255;\n dst[i + 4] = (l >>> 24) & 255;\n dst[i + 5] = (l >> 16) & 255;\n dst[i + 6] = (l >> 8) & 255;\n dst[i + 7] = l & 255;\n }\n\n return dst;\n };\n const scheduleA = new Array(4);\n\n scheduleA[0] = new Array(4);\n scheduleA[0][0] = [4, 0, 0xd, 0xf, 0xc, 0xe, 0x8];\n scheduleA[0][1] = [5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa];\n scheduleA[0][2] = [6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9];\n scheduleA[0][3] = [7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb];\n\n scheduleA[1] = new Array(4);\n scheduleA[1][0] = [0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0];\n scheduleA[1][1] = [1, 4, 0, 2, 1, 3, 16 + 2];\n scheduleA[1][2] = [2, 5, 7, 6, 5, 4, 16 + 1];\n scheduleA[1][3] = [3, 7, 0xa, 9, 0xb, 8, 16 + 3];\n\n scheduleA[2] = new Array(4);\n scheduleA[2][0] = [4, 0, 0xd, 0xf, 0xc, 0xe, 8];\n scheduleA[2][1] = [5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa];\n scheduleA[2][2] = [6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9];\n scheduleA[2][3] = [7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb];\n\n\n scheduleA[3] = new Array(4);\n scheduleA[3][0] = [0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0];\n scheduleA[3][1] = [1, 4, 0, 2, 1, 3, 16 + 2];\n scheduleA[3][2] = [2, 5, 7, 6, 5, 4, 16 + 1];\n scheduleA[3][3] = [3, 7, 0xa, 9, 0xb, 8, 16 + 3];\n\n const scheduleB = new Array(4);\n\n scheduleB[0] = new Array(4);\n scheduleB[0][0] = [16 + 8, 16 + 9, 16 + 7, 16 + 6, 16 + 2];\n scheduleB[0][1] = [16 + 0xa, 16 + 0xb, 16 + 5, 16 + 4, 16 + 6];\n scheduleB[0][2] = [16 + 0xc, 16 + 0xd, 16 + 3, 16 + 2, 16 + 9];\n scheduleB[0][3] = [16 + 0xe, 16 + 0xf, 16 + 1, 16 + 0, 16 + 0xc];\n\n scheduleB[1] = new Array(4);\n scheduleB[1][0] = [3, 2, 0xc, 0xd, 8];\n scheduleB[1][1] = [1, 0, 0xe, 0xf, 0xd];\n scheduleB[1][2] = [7, 6, 8, 9, 3];\n scheduleB[1][3] = [5, 4, 0xa, 0xb, 7];\n\n\n scheduleB[2] = new Array(4);\n scheduleB[2][0] = [16 + 3, 16 + 2, 16 + 0xc, 16 + 0xd, 16 + 9];\n scheduleB[2][1] = [16 + 1, 16 + 0, 16 + 0xe, 16 + 0xf, 16 + 0xc];\n scheduleB[2][2] = [16 + 7, 16 + 6, 16 + 8, 16 + 9, 16 + 2];\n scheduleB[2][3] = [16 + 5, 16 + 4, 16 + 0xa, 16 + 0xb, 16 + 6];\n\n\n scheduleB[3] = new Array(4);\n scheduleB[3][0] = [8, 9, 7, 6, 3];\n scheduleB[3][1] = [0xa, 0xb, 5, 4, 7];\n scheduleB[3][2] = [0xc, 0xd, 3, 2, 8];\n scheduleB[3][3] = [0xe, 0xf, 1, 0, 0xd];\n\n // changed 'in' to 'inn' (in javascript 'in' is a reserved word)\n this.keySchedule = function(inn) {\n const t = new Array(8);\n const k = new Array(32);\n\n let j;\n\n for (let i = 0; i < 4; i++) {\n j = i * 4;\n t[i] = (inn[j] << 24) | (inn[j + 1] << 16) | (inn[j + 2] << 8) | inn[j + 3];\n }\n\n const x = [6, 7, 4, 5];\n let ki = 0;\n let w;\n\n for (let half = 0; half < 2; half++) {\n for (let round = 0; round < 4; round++) {\n for (j = 0; j < 4; j++) {\n const a = scheduleA[round][j];\n w = t[a[1]];\n\n w ^= sBox[4][(t[a[2] >>> 2] >>> (24 - 8 * (a[2] & 3))) & 0xff];\n w ^= sBox[5][(t[a[3] >>> 2] >>> (24 - 8 * (a[3] & 3))) & 0xff];\n w ^= sBox[6][(t[a[4] >>> 2] >>> (24 - 8 * (a[4] & 3))) & 0xff];\n w ^= sBox[7][(t[a[5] >>> 2] >>> (24 - 8 * (a[5] & 3))) & 0xff];\n w ^= sBox[x[j]][(t[a[6] >>> 2] >>> (24 - 8 * (a[6] & 3))) & 0xff];\n t[a[0]] = w;\n }\n\n for (j = 0; j < 4; j++) {\n const b = scheduleB[round][j];\n w = sBox[4][(t[b[0] >>> 2] >>> (24 - 8 * (b[0] & 3))) & 0xff];\n\n w ^= sBox[5][(t[b[1] >>> 2] >>> (24 - 8 * (b[1] & 3))) & 0xff];\n w ^= sBox[6][(t[b[2] >>> 2] >>> (24 - 8 * (b[2] & 3))) & 0xff];\n w ^= sBox[7][(t[b[3] >>> 2] >>> (24 - 8 * (b[3] & 3))) & 0xff];\n w ^= sBox[4 + j][(t[b[4] >>> 2] >>> (24 - 8 * (b[4] & 3))) & 0xff];\n k[ki] = w;\n ki++;\n }\n }\n }\n\n for (let i = 0; i < 16; i++) {\n this.masking[i] = k[i];\n this.rotate[i] = k[16 + i] & 0x1f;\n }\n };\n\n // These are the three 'f' functions. See RFC 2144, section 2.2.\n\n function f1(d, m, r) {\n const t = m + d;\n const I = (t << r) | (t >>> (32 - r));\n return ((sBox[0][I >>> 24] ^ sBox[1][(I >>> 16) & 255]) - sBox[2][(I >>> 8) & 255]) + sBox[3][I & 255];\n }\n\n function f2(d, m, r) {\n const t = m ^ d;\n const I = (t << r) | (t >>> (32 - r));\n return ((sBox[0][I >>> 24] - sBox[1][(I >>> 16) & 255]) + sBox[2][(I >>> 8) & 255]) ^ sBox[3][I & 255];\n }\n\n function f3(d, m, r) {\n const t = m - d;\n const I = (t << r) | (t >>> (32 - r));\n return ((sBox[0][I >>> 24] + sBox[1][(I >>> 16) & 255]) ^ sBox[2][(I >>> 8) & 255]) - sBox[3][I & 255];\n }\n\n const sBox = new Array(8);\n sBox[0] = [\n 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, 0x9c004dd3, 0x6003e540, 0xcf9fc949,\n 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, 0x15c361d2, 0xc2e7661d, 0x22d4ff8e,\n 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d,\n 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, 0xaa54166b, 0x22568e3a, 0xa2d341d0,\n 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, 0x4a97c1d8, 0x527644b7, 0xb5f437a7,\n 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, 0x90ecf52e, 0x22b0c054, 0xbc8e5935,\n 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, 0xe93b159f, 0xb48ee411, 0x4bff345d,\n 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50,\n 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, 0xc59c5319, 0xb949e354, 0xb04669fe,\n 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, 0x6a390493, 0xe63d37e0, 0x2a54f6b3,\n 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, 0xf61b1891, 0xbb72275e, 0xaa508167,\n 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, 0xa2d1936b, 0x2ad286af, 0xaa56d291,\n 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, 0x73e2bb14, 0xa0bebc3c, 0x54623779,\n 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, 0x89fe78e6, 0x3fab0950, 0x325ff6c2,\n 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, 0x380782d5, 0xc7fa5cf6, 0x8ac31511,\n 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, 0x051ef495, 0xaa573b04, 0x4a805d8d,\n 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, 0x50afd341, 0xa7c13275, 0x915a0bf5,\n 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, 0xab85c5f3, 0x1b55db94, 0xaad4e324,\n 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c,\n 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, 0x22513f1e, 0xaa51a79b, 0x2ad344cc,\n 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, 0x032268d4, 0xc9600acc, 0xce387e6d,\n 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, 0x4736f464, 0x5ad328d8, 0xb347cc96,\n 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, 0xbfc5fe4a, 0xa70aec10, 0xac39570a,\n 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, 0x1cacd68d, 0x2ad37c96, 0x0175cb9d,\n 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd,\n 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, 0x51c85f4d, 0x56907596, 0xa5bb15e6,\n 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, 0x3526ffa0, 0xc37b4d09, 0xbc306ed9,\n 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, 0x700b45e1, 0xd5ea50f1, 0x85a92872,\n 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, 0x0cd0ede7, 0x26470db8, 0xf881814c,\n 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, 0xab838653, 0x6e2f1e23, 0x83719c9e,\n 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, 0xe1e696ff, 0xb141ab08, 0x7cca89b9,\n 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf\n ];\n\n sBox[1] = [\n 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, 0xeec5207a, 0x55889c94, 0x72fc0651,\n 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3,\n 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, 0xef944459, 0xba83ccb3, 0xe0c3cdfb,\n 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, 0xe4e7ef5b, 0x25a1ff41, 0xe180f806,\n 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, 0x77e83f4e, 0x79929269, 0x24fa9f7b,\n 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, 0x0d554b63, 0x5d681121, 0xc866c359,\n 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, 0x39f7627f, 0x361e3084, 0xe4eb573b,\n 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, 0x99847ab4, 0xa0e3df79, 0xba6cf38c,\n 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, 0x8f458c74, 0xd9e0a227, 0x4ec73a34,\n 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, 0x1d804366, 0x721d9bfd, 0xa58684bb,\n 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, 0x27e19ba5, 0xd5a6c252, 0xe49754bd,\n 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, 0xe0b56714, 0x21f043b7, 0xe5d05860,\n 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, 0x68561be6, 0x83ca6b94, 0x2d6ed23b,\n 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, 0x397bc8d6, 0x5ee22b95, 0x5f0e5304,\n 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, 0xb96726d1, 0x8049a7e8, 0x22b7da7b,\n 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf,\n 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, 0xe3214517, 0xb4542835, 0x9f63293c,\n 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, 0x30a22c95, 0x31a70850, 0x60930f13,\n 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, 0xa02b1741, 0x7cbad9a2, 0x2180036f,\n 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6,\n 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, 0x846a3bae, 0x8ff77888, 0xee5d60f6,\n 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, 0x157fd7fa, 0xef8579cc, 0xd152de58,\n 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906,\n 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, 0xbec0c560, 0x61a3c9e8, 0xbca8f54d,\n 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, 0x301e16e6, 0x273be979, 0xb0ffeaa6,\n 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, 0xf7e19798, 0x7619b72f, 0x8f1c9ba4,\n 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, 0x1a513742, 0xef6828bc, 0x520365d6,\n 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, 0x5eea29cb, 0x145892f5, 0x91584f7f,\n 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249,\n 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, 0x230eabb0, 0x6438bc87, 0xf0b5b1fa,\n 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, 0xa345415e, 0x5c038323, 0x3e5d3bb9,\n 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, 0x73bfbe70, 0x83877605, 0x4523ecf1\n ];\n\n sBox[2] = [\n 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, 0x369fe44b, 0x8c1fc644, 0xaececa90,\n 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, 0xf0ad0548, 0xe13c8d83, 0x927010d5,\n 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, 0xfade82e0, 0xa067268b, 0x8272792e,\n 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, 0x825b1bfd, 0x9255c5ed, 0x1257a240,\n 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5,\n 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b,\n 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, 0x4a012d6e, 0xc5884a28, 0xccc36f71,\n 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, 0xd7c07f7e, 0x02507fbf, 0x5afb9a04,\n 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, 0x727cc3c4, 0x0a0fb402, 0x0f7fef82,\n 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, 0x1eac5790, 0x796fb449, 0x8252dc15,\n 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, 0xe83ec305, 0x4f91751a, 0x925669c2,\n 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, 0x927985b2, 0x8276dbcb, 0x02778176,\n 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, 0x340ce5c8, 0x96bbb682, 0x93b4b148,\n 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, 0x8437aa88, 0x7d29dc96, 0x2756d3dc,\n 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, 0x3cf8209d, 0x6094d1e3, 0xcd9ca341,\n 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, 0xbda8229c, 0x127dadaa, 0x438a074e,\n 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51,\n 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, 0x76a2e214, 0xb9a40368, 0x925d958f,\n 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, 0x193cbcfa, 0x27627545, 0x825cf47a,\n 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, 0x8272a972, 0x9270c4a8, 0x127de50b,\n 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b,\n 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, 0x236a5cae, 0x12deca4d, 0x2c3f8cc5,\n 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45,\n 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, 0x7c34671c, 0x02717ef6, 0x4feb5536,\n 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, 0x006e1888, 0xa2e53f55, 0xb9e6d4bc,\n 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, 0xabcc4f33, 0x7688c55d, 0x7b00a6b0,\n 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, 0x856302e0, 0x72dbd92b, 0xee971b69,\n 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, 0x61efc8c2, 0xf1ac2571, 0xcc8239c2,\n 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, 0x0ff0443d, 0x606e6dc6, 0x60543a49,\n 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, 0x68458425, 0x99833be5, 0x600d457d,\n 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, 0x9c305a00, 0x52bce688, 0x1b03588a,\n 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, 0xa133c501, 0xe9d3531c, 0xee353783\n ];\n\n sBox[3] = [\n 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, 0x64ad8c57, 0x85510443, 0xfa020ed1,\n 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, 0x6497b7b1, 0xf3641f63, 0x241e4adf,\n 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, 0xc0a5374f, 0x1d2d00d9, 0x24147b15,\n 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, 0x0c13fefe, 0x081b08ca, 0x05170121,\n 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, 0x06df4261, 0xbb9e9b8a, 0x7293ea25,\n 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5,\n 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, 0x11b638e1, 0x72500e03, 0xf80eb2bb,\n 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, 0x6920318f, 0x081dbb99, 0xffc304a5,\n 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, 0x9f926f91, 0x9f46222f, 0x3991467d,\n 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, 0x3fb6180c, 0x18f8931e, 0x281658e6,\n 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, 0x79098b02, 0xe4eabb81, 0x28123b23,\n 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, 0x0014377b, 0x041e8ac8, 0x09114003,\n 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6,\n 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, 0x56c8c391, 0x6b65811c, 0x5e146119,\n 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24,\n 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, 0xeca1d7c7, 0x041afa32, 0x1d16625a,\n 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, 0xc70b8b46, 0xd9e66a48, 0x56e55a79,\n 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, 0xedda04eb, 0x17a9be04, 0x2c18f4df,\n 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, 0xe5b6a035, 0x213d42f6, 0x2c1c7c26,\n 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, 0x0418f2c8, 0x001a96a6, 0x0d1526ab,\n 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, 0x311170a7, 0x3e9b640c, 0xcc3e10d7,\n 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, 0x1f9af36e, 0xcfcbd12f, 0xc1de8417,\n 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, 0xb4be31cd, 0xd8782806, 0x12a3a4e2,\n 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, 0x9711aac5, 0x001d7b95, 0x82e5e7d2,\n 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a,\n 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, 0x0ce454a9, 0xd60acd86, 0x015f1919,\n 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, 0x8b75e387, 0xb3c50651, 0xb8a5c3ef,\n 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876,\n 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, 0x296b299e, 0x492fc295, 0x9266beab,\n 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, 0xf65324e6, 0x6afce36c, 0x0316cc04,\n 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, 0x932bcdf6, 0xb657c34d, 0x4edfd282,\n 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2\n ];\n\n sBox[4] = [\n 0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, 0x1dd358f5, 0x44dd9d44, 0x1731167f,\n 0x08fbf1fa, 0xe7f511cc, 0xd2051b00, 0x735aba00, 0x2ab722d8, 0x386381cb, 0xacf6243a, 0x69befd7a,\n 0xe6a2e77f, 0xf0c720cd, 0xc4494816, 0xccf5c180, 0x38851640, 0x15b0a848, 0xe68b18cb, 0x4caadeff,\n 0x5f480a01, 0x0412b2aa, 0x259814fc, 0x41d0efe2, 0x4e40b48d, 0x248eb6fb, 0x8dba1cfe, 0x41a99b02,\n 0x1a550a04, 0xba8f65cb, 0x7251f4e7, 0x95a51725, 0xc106ecd7, 0x97a5980a, 0xc539b9aa, 0x4d79fe6a,\n 0xf2f3f763, 0x68af8040, 0xed0c9e56, 0x11b4958b, 0xe1eb5a88, 0x8709e6b0, 0xd7e07156, 0x4e29fea7,\n 0x6366e52d, 0x02d1c000, 0xc4ac8e05, 0x9377f571, 0x0c05372a, 0x578535f2, 0x2261be02, 0xd642a0c9,\n 0xdf13a280, 0x74b55bd2, 0x682199c0, 0xd421e5ec, 0x53fb3ce8, 0xc8adedb3, 0x28a87fc9, 0x3d959981,\n 0x5c1ff900, 0xfe38d399, 0x0c4eff0b, 0x062407ea, 0xaa2f4fb1, 0x4fb96976, 0x90c79505, 0xb0a8a774,\n 0xef55a1ff, 0xe59ca2c2, 0xa6b62d27, 0xe66a4263, 0xdf65001f, 0x0ec50966, 0xdfdd55bc, 0x29de0655,\n 0x911e739a, 0x17af8975, 0x32c7911c, 0x89f89468, 0x0d01e980, 0x524755f4, 0x03b63cc9, 0x0cc844b2,\n 0xbcf3f0aa, 0x87ac36e9, 0xe53a7426, 0x01b3d82b, 0x1a9e7449, 0x64ee2d7e, 0xcddbb1da, 0x01c94910,\n 0xb868bf80, 0x0d26f3fd, 0x9342ede7, 0x04a5c284, 0x636737b6, 0x50f5b616, 0xf24766e3, 0x8eca36c1,\n 0x136e05db, 0xfef18391, 0xfb887a37, 0xd6e7f7d4, 0xc7fb7dc9, 0x3063fcdf, 0xb6f589de, 0xec2941da,\n 0x26e46695, 0xb7566419, 0xf654efc5, 0xd08d58b7, 0x48925401, 0xc1bacb7f, 0xe5ff550f, 0xb6083049,\n 0x5bb5d0e8, 0x87d72e5a, 0xab6a6ee1, 0x223a66ce, 0xc62bf3cd, 0x9e0885f9, 0x68cb3e47, 0x086c010f,\n 0xa21de820, 0xd18b69de, 0xf3f65777, 0xfa02c3f6, 0x407edac3, 0xcbb3d550, 0x1793084d, 0xb0d70eba,\n 0x0ab378d5, 0xd951fb0c, 0xded7da56, 0x4124bbe4, 0x94ca0b56, 0x0f5755d1, 0xe0e1e56e, 0x6184b5be,\n 0x580a249f, 0x94f74bc0, 0xe327888e, 0x9f7b5561, 0xc3dc0280, 0x05687715, 0x646c6bd7, 0x44904db3,\n 0x66b4f0a3, 0xc0f1648a, 0x697ed5af, 0x49e92ff6, 0x309e374f, 0x2cb6356a, 0x85808573, 0x4991f840,\n 0x76f0ae02, 0x083be84d, 0x28421c9a, 0x44489406, 0x736e4cb8, 0xc1092910, 0x8bc95fc6, 0x7d869cf4,\n 0x134f616f, 0x2e77118d, 0xb31b2be1, 0xaa90b472, 0x3ca5d717, 0x7d161bba, 0x9cad9010, 0xaf462ba2,\n 0x9fe459d2, 0x45d34559, 0xd9f2da13, 0xdbc65487, 0xf3e4f94e, 0x176d486f, 0x097c13ea, 0x631da5c7,\n 0x445f7382, 0x175683f4, 0xcdc66a97, 0x70be0288, 0xb3cdcf72, 0x6e5dd2f3, 0x20936079, 0x459b80a5,\n 0xbe60e2db, 0xa9c23101, 0xeba5315c, 0x224e42f2, 0x1c5c1572, 0xf6721b2c, 0x1ad2fff3, 0x8c25404e,\n 0x324ed72f, 0x4067b7fd, 0x0523138e, 0x5ca3bc78, 0xdc0fd66e, 0x75922283, 0x784d6b17, 0x58ebb16e,\n 0x44094f85, 0x3f481d87, 0xfcfeae7b, 0x77b5ff76, 0x8c2302bf, 0xaaf47556, 0x5f46b02a, 0x2b092801,\n 0x3d38f5f7, 0x0ca81f36, 0x52af4a8a, 0x66d5e7c0, 0xdf3b0874, 0x95055110, 0x1b5ad7a8, 0xf61ed5ad,\n 0x6cf6e479, 0x20758184, 0xd0cefa65, 0x88f7be58, 0x4a046826, 0x0ff6f8f3, 0xa09c7f70, 0x5346aba0,\n 0x5ce96c28, 0xe176eda3, 0x6bac307f, 0x376829d2, 0x85360fa9, 0x17e3fe2a, 0x24b79767, 0xf5a96b20,\n 0xd6cd2595, 0x68ff1ebf, 0x7555442c, 0xf19f06be, 0xf9e0659a, 0xeeb9491d, 0x34010718, 0xbb30cab8,\n 0xe822fe15, 0x88570983, 0x750e6249, 0xda627e55, 0x5e76ffa8, 0xb1534546, 0x6d47de08, 0xefe9e7d4\n ];\n\n sBox[5] = [\n 0xf6fa8f9d, 0x2cac6ce1, 0x4ca34867, 0xe2337f7c, 0x95db08e7, 0x016843b4, 0xeced5cbc, 0x325553ac,\n 0xbf9f0960, 0xdfa1e2ed, 0x83f0579d, 0x63ed86b9, 0x1ab6a6b8, 0xde5ebe39, 0xf38ff732, 0x8989b138,\n 0x33f14961, 0xc01937bd, 0xf506c6da, 0xe4625e7e, 0xa308ea99, 0x4e23e33c, 0x79cbd7cc, 0x48a14367,\n 0xa3149619, 0xfec94bd5, 0xa114174a, 0xeaa01866, 0xa084db2d, 0x09a8486f, 0xa888614a, 0x2900af98,\n 0x01665991, 0xe1992863, 0xc8f30c60, 0x2e78ef3c, 0xd0d51932, 0xcf0fec14, 0xf7ca07d2, 0xd0a82072,\n 0xfd41197e, 0x9305a6b0, 0xe86be3da, 0x74bed3cd, 0x372da53c, 0x4c7f4448, 0xdab5d440, 0x6dba0ec3,\n 0x083919a7, 0x9fbaeed9, 0x49dbcfb0, 0x4e670c53, 0x5c3d9c01, 0x64bdb941, 0x2c0e636a, 0xba7dd9cd,\n 0xea6f7388, 0xe70bc762, 0x35f29adb, 0x5c4cdd8d, 0xf0d48d8c, 0xb88153e2, 0x08a19866, 0x1ae2eac8,\n 0x284caf89, 0xaa928223, 0x9334be53, 0x3b3a21bf, 0x16434be3, 0x9aea3906, 0xefe8c36e, 0xf890cdd9,\n 0x80226dae, 0xc340a4a3, 0xdf7e9c09, 0xa694a807, 0x5b7c5ecc, 0x221db3a6, 0x9a69a02f, 0x68818a54,\n 0xceb2296f, 0x53c0843a, 0xfe893655, 0x25bfe68a, 0xb4628abc, 0xcf222ebf, 0x25ac6f48, 0xa9a99387,\n 0x53bddb65, 0xe76ffbe7, 0xe967fd78, 0x0ba93563, 0x8e342bc1, 0xe8a11be9, 0x4980740d, 0xc8087dfc,\n 0x8de4bf99, 0xa11101a0, 0x7fd37975, 0xda5a26c0, 0xe81f994f, 0x9528cd89, 0xfd339fed, 0xb87834bf,\n 0x5f04456d, 0x22258698, 0xc9c4c83b, 0x2dc156be, 0x4f628daa, 0x57f55ec5, 0xe2220abe, 0xd2916ebf,\n 0x4ec75b95, 0x24f2c3c0, 0x42d15d99, 0xcd0d7fa0, 0x7b6e27ff, 0xa8dc8af0, 0x7345c106, 0xf41e232f,\n 0x35162386, 0xe6ea8926, 0x3333b094, 0x157ec6f2, 0x372b74af, 0x692573e4, 0xe9a9d848, 0xf3160289,\n 0x3a62ef1d, 0xa787e238, 0xf3a5f676, 0x74364853, 0x20951063, 0x4576698d, 0xb6fad407, 0x592af950,\n 0x36f73523, 0x4cfb6e87, 0x7da4cec0, 0x6c152daa, 0xcb0396a8, 0xc50dfe5d, 0xfcd707ab, 0x0921c42f,\n 0x89dff0bb, 0x5fe2be78, 0x448f4f33, 0x754613c9, 0x2b05d08d, 0x48b9d585, 0xdc049441, 0xc8098f9b,\n 0x7dede786, 0xc39a3373, 0x42410005, 0x6a091751, 0x0ef3c8a6, 0x890072d6, 0x28207682, 0xa9a9f7be,\n 0xbf32679d, 0xd45b5b75, 0xb353fd00, 0xcbb0e358, 0x830f220a, 0x1f8fb214, 0xd372cf08, 0xcc3c4a13,\n 0x8cf63166, 0x061c87be, 0x88c98f88, 0x6062e397, 0x47cf8e7a, 0xb6c85283, 0x3cc2acfb, 0x3fc06976,\n 0x4e8f0252, 0x64d8314d, 0xda3870e3, 0x1e665459, 0xc10908f0, 0x513021a5, 0x6c5b68b7, 0x822f8aa0,\n 0x3007cd3e, 0x74719eef, 0xdc872681, 0x073340d4, 0x7e432fd9, 0x0c5ec241, 0x8809286c, 0xf592d891,\n 0x08a930f6, 0x957ef305, 0xb7fbffbd, 0xc266e96f, 0x6fe4ac98, 0xb173ecc0, 0xbc60b42a, 0x953498da,\n 0xfba1ae12, 0x2d4bd736, 0x0f25faab, 0xa4f3fceb, 0xe2969123, 0x257f0c3d, 0x9348af49, 0x361400bc,\n 0xe8816f4a, 0x3814f200, 0xa3f94043, 0x9c7a54c2, 0xbc704f57, 0xda41e7f9, 0xc25ad33a, 0x54f4a084,\n 0xb17f5505, 0x59357cbe, 0xedbd15c8, 0x7f97c5ab, 0xba5ac7b5, 0xb6f6deaf, 0x3a479c3a, 0x5302da25,\n 0x653d7e6a, 0x54268d49, 0x51a477ea, 0x5017d55b, 0xd7d25d88, 0x44136c76, 0x0404a8c8, 0xb8e5a121,\n 0xb81a928a, 0x60ed5869, 0x97c55b96, 0xeaec991b, 0x29935913, 0x01fdb7f1, 0x088e8dfa, 0x9ab6f6f5,\n 0x3b4cbf9f, 0x4a5de3ab, 0xe6051d35, 0xa0e1d855, 0xd36b4cf1, 0xf544edeb, 0xb0e93524, 0xbebb8fbd,\n 0xa2d762cf, 0x49c92f54, 0x38b5f331, 0x7128a454, 0x48392905, 0xa65b1db8, 0x851c97bd, 0xd675cf2f\n ];\n\n sBox[6] = [\n 0x85e04019, 0x332bf567, 0x662dbfff, 0xcfc65693, 0x2a8d7f6f, 0xab9bc912, 0xde6008a1, 0x2028da1f,\n 0x0227bce7, 0x4d642916, 0x18fac300, 0x50f18b82, 0x2cb2cb11, 0xb232e75c, 0x4b3695f2, 0xb28707de,\n 0xa05fbcf6, 0xcd4181e9, 0xe150210c, 0xe24ef1bd, 0xb168c381, 0xfde4e789, 0x5c79b0d8, 0x1e8bfd43,\n 0x4d495001, 0x38be4341, 0x913cee1d, 0x92a79c3f, 0x089766be, 0xbaeeadf4, 0x1286becf, 0xb6eacb19,\n 0x2660c200, 0x7565bde4, 0x64241f7a, 0x8248dca9, 0xc3b3ad66, 0x28136086, 0x0bd8dfa8, 0x356d1cf2,\n 0x107789be, 0xb3b2e9ce, 0x0502aa8f, 0x0bc0351e, 0x166bf52a, 0xeb12ff82, 0xe3486911, 0xd34d7516,\n 0x4e7b3aff, 0x5f43671b, 0x9cf6e037, 0x4981ac83, 0x334266ce, 0x8c9341b7, 0xd0d854c0, 0xcb3a6c88,\n 0x47bc2829, 0x4725ba37, 0xa66ad22b, 0x7ad61f1e, 0x0c5cbafa, 0x4437f107, 0xb6e79962, 0x42d2d816,\n 0x0a961288, 0xe1a5c06e, 0x13749e67, 0x72fc081a, 0xb1d139f7, 0xf9583745, 0xcf19df58, 0xbec3f756,\n 0xc06eba30, 0x07211b24, 0x45c28829, 0xc95e317f, 0xbc8ec511, 0x38bc46e9, 0xc6e6fa14, 0xbae8584a,\n 0xad4ebc46, 0x468f508b, 0x7829435f, 0xf124183b, 0x821dba9f, 0xaff60ff4, 0xea2c4e6d, 0x16e39264,\n 0x92544a8b, 0x009b4fc3, 0xaba68ced, 0x9ac96f78, 0x06a5b79a, 0xb2856e6e, 0x1aec3ca9, 0xbe838688,\n 0x0e0804e9, 0x55f1be56, 0xe7e5363b, 0xb3a1f25d, 0xf7debb85, 0x61fe033c, 0x16746233, 0x3c034c28,\n 0xda6d0c74, 0x79aac56c, 0x3ce4e1ad, 0x51f0c802, 0x98f8f35a, 0x1626a49f, 0xeed82b29, 0x1d382fe3,\n 0x0c4fb99a, 0xbb325778, 0x3ec6d97b, 0x6e77a6a9, 0xcb658b5c, 0xd45230c7, 0x2bd1408b, 0x60c03eb7,\n 0xb9068d78, 0xa33754f4, 0xf430c87d, 0xc8a71302, 0xb96d8c32, 0xebd4e7be, 0xbe8b9d2d, 0x7979fb06,\n 0xe7225308, 0x8b75cf77, 0x11ef8da4, 0xe083c858, 0x8d6b786f, 0x5a6317a6, 0xfa5cf7a0, 0x5dda0033,\n 0xf28ebfb0, 0xf5b9c310, 0xa0eac280, 0x08b9767a, 0xa3d9d2b0, 0x79d34217, 0x021a718d, 0x9ac6336a,\n 0x2711fd60, 0x438050e3, 0x069908a8, 0x3d7fedc4, 0x826d2bef, 0x4eeb8476, 0x488dcf25, 0x36c9d566,\n 0x28e74e41, 0xc2610aca, 0x3d49a9cf, 0xbae3b9df, 0xb65f8de6, 0x92aeaf64, 0x3ac7d5e6, 0x9ea80509,\n 0xf22b017d, 0xa4173f70, 0xdd1e16c3, 0x15e0d7f9, 0x50b1b887, 0x2b9f4fd5, 0x625aba82, 0x6a017962,\n 0x2ec01b9c, 0x15488aa9, 0xd716e740, 0x40055a2c, 0x93d29a22, 0xe32dbf9a, 0x058745b9, 0x3453dc1e,\n 0xd699296e, 0x496cff6f, 0x1c9f4986, 0xdfe2ed07, 0xb87242d1, 0x19de7eae, 0x053e561a, 0x15ad6f8c,\n 0x66626c1c, 0x7154c24c, 0xea082b2a, 0x93eb2939, 0x17dcb0f0, 0x58d4f2ae, 0x9ea294fb, 0x52cf564c,\n 0x9883fe66, 0x2ec40581, 0x763953c3, 0x01d6692e, 0xd3a0c108, 0xa1e7160e, 0xe4f2dfa6, 0x693ed285,\n 0x74904698, 0x4c2b0edd, 0x4f757656, 0x5d393378, 0xa132234f, 0x3d321c5d, 0xc3f5e194, 0x4b269301,\n 0xc79f022f, 0x3c997e7e, 0x5e4f9504, 0x3ffafbbd, 0x76f7ad0e, 0x296693f4, 0x3d1fce6f, 0xc61e45be,\n 0xd3b5ab34, 0xf72bf9b7, 0x1b0434c0, 0x4e72b567, 0x5592a33d, 0xb5229301, 0xcfd2a87f, 0x60aeb767,\n 0x1814386b, 0x30bcc33d, 0x38a0c07d, 0xfd1606f2, 0xc363519b, 0x589dd390, 0x5479f8e6, 0x1cb8d647,\n 0x97fd61a9, 0xea7759f4, 0x2d57539d, 0x569a58cf, 0xe84e63ad, 0x462e1b78, 0x6580f87e, 0xf3817914,\n 0x91da55f4, 0x40a230f3, 0xd1988f35, 0xb6e318d2, 0x3ffa50bc, 0x3d40f021, 0xc3c0bdae, 0x4958c24c,\n 0x518f36b2, 0x84b1d370, 0x0fedce83, 0x878ddada, 0xf2a279c7, 0x94e01be8, 0x90716f4b, 0x954b8aa3\n ];\n\n sBox[7] = [\n 0xe216300d, 0xbbddfffc, 0xa7ebdabd, 0x35648095, 0x7789f8b7, 0xe6c1121b, 0x0e241600, 0x052ce8b5,\n 0x11a9cfb0, 0xe5952f11, 0xece7990a, 0x9386d174, 0x2a42931c, 0x76e38111, 0xb12def3a, 0x37ddddfc,\n 0xde9adeb1, 0x0a0cc32c, 0xbe197029, 0x84a00940, 0xbb243a0f, 0xb4d137cf, 0xb44e79f0, 0x049eedfd,\n 0x0b15a15d, 0x480d3168, 0x8bbbde5a, 0x669ded42, 0xc7ece831, 0x3f8f95e7, 0x72df191b, 0x7580330d,\n 0x94074251, 0x5c7dcdfa, 0xabbe6d63, 0xaa402164, 0xb301d40a, 0x02e7d1ca, 0x53571dae, 0x7a3182a2,\n 0x12a8ddec, 0xfdaa335d, 0x176f43e8, 0x71fb46d4, 0x38129022, 0xce949ad4, 0xb84769ad, 0x965bd862,\n 0x82f3d055, 0x66fb9767, 0x15b80b4e, 0x1d5b47a0, 0x4cfde06f, 0xc28ec4b8, 0x57e8726e, 0x647a78fc,\n 0x99865d44, 0x608bd593, 0x6c200e03, 0x39dc5ff6, 0x5d0b00a3, 0xae63aff2, 0x7e8bd632, 0x70108c0c,\n 0xbbd35049, 0x2998df04, 0x980cf42a, 0x9b6df491, 0x9e7edd53, 0x06918548, 0x58cb7e07, 0x3b74ef2e,\n 0x522fffb1, 0xd24708cc, 0x1c7e27cd, 0xa4eb215b, 0x3cf1d2e2, 0x19b47a38, 0x424f7618, 0x35856039,\n 0x9d17dee7, 0x27eb35e6, 0xc9aff67b, 0x36baf5b8, 0x09c467cd, 0xc18910b1, 0xe11dbf7b, 0x06cd1af8,\n 0x7170c608, 0x2d5e3354, 0xd4de495a, 0x64c6d006, 0xbcc0c62c, 0x3dd00db3, 0x708f8f34, 0x77d51b42,\n 0x264f620f, 0x24b8d2bf, 0x15c1b79e, 0x46a52564, 0xf8d7e54e, 0x3e378160, 0x7895cda5, 0x859c15a5,\n 0xe6459788, 0xc37bc75f, 0xdb07ba0c, 0x0676a3ab, 0x7f229b1e, 0x31842e7b, 0x24259fd7, 0xf8bef472,\n 0x835ffcb8, 0x6df4c1f2, 0x96f5b195, 0xfd0af0fc, 0xb0fe134c, 0xe2506d3d, 0x4f9b12ea, 0xf215f225,\n 0xa223736f, 0x9fb4c428, 0x25d04979, 0x34c713f8, 0xc4618187, 0xea7a6e98, 0x7cd16efc, 0x1436876c,\n 0xf1544107, 0xbedeee14, 0x56e9af27, 0xa04aa441, 0x3cf7c899, 0x92ecbae6, 0xdd67016d, 0x151682eb,\n 0xa842eedf, 0xfdba60b4, 0xf1907b75, 0x20e3030f, 0x24d8c29e, 0xe139673b, 0xefa63fb8, 0x71873054,\n 0xb6f2cf3b, 0x9f326442, 0xcb15a4cc, 0xb01a4504, 0xf1e47d8d, 0x844a1be5, 0xbae7dfdc, 0x42cbda70,\n 0xcd7dae0a, 0x57e85b7a, 0xd53f5af6, 0x20cf4d8c, 0xcea4d428, 0x79d130a4, 0x3486ebfb, 0x33d3cddc,\n 0x77853b53, 0x37effcb5, 0xc5068778, 0xe580b3e6, 0x4e68b8f4, 0xc5c8b37e, 0x0d809ea2, 0x398feb7c,\n 0x132a4f94, 0x43b7950e, 0x2fee7d1c, 0x223613bd, 0xdd06caa2, 0x37df932b, 0xc4248289, 0xacf3ebc3,\n 0x5715f6b7, 0xef3478dd, 0xf267616f, 0xc148cbe4, 0x9052815e, 0x5e410fab, 0xb48a2465, 0x2eda7fa4,\n 0xe87b40e4, 0xe98ea084, 0x5889e9e1, 0xefd390fc, 0xdd07d35b, 0xdb485694, 0x38d7e5b2, 0x57720101,\n 0x730edebc, 0x5b643113, 0x94917e4f, 0x503c2fba, 0x646f1282, 0x7523d24a, 0xe0779695, 0xf9c17a8f,\n 0x7a5b2121, 0xd187b896, 0x29263a4d, 0xba510cdf, 0x81f47c9f, 0xad1163ed, 0xea7b5965, 0x1a00726e,\n 0x11403092, 0x00da6d77, 0x4a0cdd61, 0xad1f4603, 0x605bdfb0, 0x9eedc364, 0x22ebe6a8, 0xcee7d28a,\n 0xa0e736a0, 0x5564a6b9, 0x10853209, 0xc7eb8f37, 0x2de705ca, 0x8951570f, 0xdf09822b, 0xbd691a6c,\n 0xaa12e4f2, 0x87451c0f, 0xe0f6a27a, 0x3ada4819, 0x4cf1764f, 0x0d771c2b, 0x67cdb156, 0x350d8384,\n 0x5938fa0f, 0x42399ef3, 0x36997b07, 0x0e84093d, 0x4aa93e61, 0x8360d87b, 0x1fa98b0c, 0x1149382c,\n 0xe97625a5, 0x0614d1b7, 0x0e25244b, 0x0c768347, 0x589e8d82, 0x0d2059d1, 0xa466bb1e, 0xf8da0a82,\n 0x04f19130, 0xba6e4ec0, 0x99265164, 0x1ee7230d, 0x50b2ad80, 0xeaee6801, 0x8db2a283, 0xea8bf59e\n ];\n}\n\nfunction CAST5(key) {\n this.cast5 = new OpenPGPSymEncCAST5();\n this.cast5.setKey(key);\n\n this.encrypt = function(block) {\n return this.cast5.encrypt(block);\n };\n}\n\nCAST5.blockSize = CAST5.prototype.blockSize = 8;\nCAST5.keySize = CAST5.prototype.keySize = 16;\n\nexport default CAST5;\n", "/* eslint-disable no-mixed-operators, no-fallthrough */\n\n\n/* Modified by Recurity Labs GmbH\n *\n * Cipher.js\n * A block-cipher algorithm implementation on JavaScript\n * See Cipher.readme.txt for further information.\n *\n * Copyright(c) 2009 Atsushi Oka [ http://oka.nu/ ]\n * This script file is distributed under the LGPL\n *\n * ACKNOWLEDGMENT\n *\n * The main subroutines are written by Michiel van Everdingen.\n *\n * Michiel van Everdingen\n * http://home.versatel.nl/MAvanEverdingen/index.html\n *\n * All rights for these routines are reserved to Michiel van Everdingen.\n *\n */\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n//Math\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nconst MAXINT = 0xFFFFFFFF;\n\nfunction rotw(w, n) {\n return (w << n | w >>> (32 - n)) & MAXINT;\n}\n\nfunction getW(a, i) {\n return a[i] | a[i + 1] << 8 | a[i + 2] << 16 | a[i + 3] << 24;\n}\n\nfunction setW(a, i, w) {\n a.splice(i, 4, w & 0xFF, (w >>> 8) & 0xFF, (w >>> 16) & 0xFF, (w >>> 24) & 0xFF);\n}\n\nfunction getB(x, n) {\n return (x >>> (n * 8)) & 0xFF;\n}\n\n// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Twofish\n// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nfunction createTwofish() {\n //\n let keyBytes = null;\n let dataBytes = null;\n let dataOffset = -1;\n // var dataLength = -1;\n // var idx2 = -1;\n //\n\n let tfsKey = [];\n let tfsM = [\n [],\n [],\n [],\n []\n ];\n\n function tfsInit(key) {\n keyBytes = key;\n let i;\n let a;\n let b;\n let c;\n let d;\n const meKey = [];\n const moKey = [];\n const inKey = [];\n let kLen;\n const sKey = [];\n let f01;\n let f5b;\n let fef;\n\n const q0 = [\n [8, 1, 7, 13, 6, 15, 3, 2, 0, 11, 5, 9, 14, 12, 10, 4],\n [2, 8, 11, 13, 15, 7, 6, 14, 3, 1, 9, 4, 0, 10, 12, 5]\n ];\n const q1 = [\n [14, 12, 11, 8, 1, 2, 3, 5, 15, 4, 10, 6, 7, 0, 9, 13],\n [1, 14, 2, 11, 4, 12, 3, 7, 6, 13, 10, 5, 15, 9, 0, 8]\n ];\n const q2 = [\n [11, 10, 5, 14, 6, 13, 9, 0, 12, 8, 15, 3, 2, 4, 7, 1],\n [4, 12, 7, 5, 1, 6, 9, 10, 0, 14, 13, 8, 2, 11, 3, 15]\n ];\n const q3 = [\n [13, 7, 15, 4, 1, 2, 6, 14, 9, 11, 3, 0, 8, 5, 12, 10],\n [11, 9, 5, 1, 12, 3, 13, 14, 6, 4, 7, 15, 2, 0, 8, 10]\n ];\n const ror4 = [0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15];\n const ashx = [0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 5, 14, 7];\n const q = [\n [],\n []\n ];\n const m = [\n [],\n [],\n [],\n []\n ];\n\n function ffm5b(x) {\n return x ^ (x >> 2) ^ [0, 90, 180, 238][x & 3];\n }\n\n function ffmEf(x) {\n return x ^ (x >> 1) ^ (x >> 2) ^ [0, 238, 180, 90][x & 3];\n }\n\n function mdsRem(p, q) {\n let i;\n let t;\n let u;\n for (i = 0; i < 8; i++) {\n t = q >>> 24;\n q = ((q << 8) & MAXINT) | p >>> 24;\n p = (p << 8) & MAXINT;\n u = t << 1;\n if (t & 128) {\n u ^= 333;\n }\n q ^= t ^ (u << 16);\n u ^= t >>> 1;\n if (t & 1) {\n u ^= 166;\n }\n q ^= u << 24 | u << 8;\n }\n return q;\n }\n\n function qp(n, x) {\n const a = x >> 4;\n const b = x & 15;\n const c = q0[n][a ^ b];\n const d = q1[n][ror4[b] ^ ashx[a]];\n return q3[n][ror4[d] ^ ashx[c]] << 4 | q2[n][c ^ d];\n }\n\n function hFun(x, key) {\n let a = getB(x, 0);\n let b = getB(x, 1);\n let c = getB(x, 2);\n let d = getB(x, 3);\n switch (kLen) {\n case 4:\n a = q[1][a] ^ getB(key[3], 0);\n b = q[0][b] ^ getB(key[3], 1);\n c = q[0][c] ^ getB(key[3], 2);\n d = q[1][d] ^ getB(key[3], 3);\n case 3:\n a = q[1][a] ^ getB(key[2], 0);\n b = q[1][b] ^ getB(key[2], 1);\n c = q[0][c] ^ getB(key[2], 2);\n d = q[0][d] ^ getB(key[2], 3);\n case 2:\n a = q[0][q[0][a] ^ getB(key[1], 0)] ^ getB(key[0], 0);\n b = q[0][q[1][b] ^ getB(key[1], 1)] ^ getB(key[0], 1);\n c = q[1][q[0][c] ^ getB(key[1], 2)] ^ getB(key[0], 2);\n d = q[1][q[1][d] ^ getB(key[1], 3)] ^ getB(key[0], 3);\n }\n return m[0][a] ^ m[1][b] ^ m[2][c] ^ m[3][d];\n }\n\n keyBytes = keyBytes.slice(0, 32);\n i = keyBytes.length;\n while (i !== 16 && i !== 24 && i !== 32) {\n keyBytes[i++] = 0;\n }\n\n for (i = 0; i < keyBytes.length; i += 4) {\n inKey[i >> 2] = getW(keyBytes, i);\n }\n for (i = 0; i < 256; i++) {\n q[0][i] = qp(0, i);\n q[1][i] = qp(1, i);\n }\n for (i = 0; i < 256; i++) {\n f01 = q[1][i];\n f5b = ffm5b(f01);\n fef = ffmEf(f01);\n m[0][i] = f01 + (f5b << 8) + (fef << 16) + (fef << 24);\n m[2][i] = f5b + (fef << 8) + (f01 << 16) + (fef << 24);\n f01 = q[0][i];\n f5b = ffm5b(f01);\n fef = ffmEf(f01);\n m[1][i] = fef + (fef << 8) + (f5b << 16) + (f01 << 24);\n m[3][i] = f5b + (f01 << 8) + (fef << 16) + (f5b << 24);\n }\n\n kLen = inKey.length / 2;\n for (i = 0; i < kLen; i++) {\n a = inKey[i + i];\n meKey[i] = a;\n b = inKey[i + i + 1];\n moKey[i] = b;\n sKey[kLen - i - 1] = mdsRem(a, b);\n }\n for (i = 0; i < 40; i += 2) {\n a = 0x1010101 * i;\n b = a + 0x1010101;\n a = hFun(a, meKey);\n b = rotw(hFun(b, moKey), 8);\n tfsKey[i] = (a + b) & MAXINT;\n tfsKey[i + 1] = rotw(a + 2 * b, 9);\n }\n for (i = 0; i < 256; i++) {\n a = b = c = d = i;\n switch (kLen) {\n case 4:\n a = q[1][a] ^ getB(sKey[3], 0);\n b = q[0][b] ^ getB(sKey[3], 1);\n c = q[0][c] ^ getB(sKey[3], 2);\n d = q[1][d] ^ getB(sKey[3], 3);\n case 3:\n a = q[1][a] ^ getB(sKey[2], 0);\n b = q[1][b] ^ getB(sKey[2], 1);\n c = q[0][c] ^ getB(sKey[2], 2);\n d = q[0][d] ^ getB(sKey[2], 3);\n case 2:\n tfsM[0][i] = m[0][q[0][q[0][a] ^ getB(sKey[1], 0)] ^ getB(sKey[0], 0)];\n tfsM[1][i] = m[1][q[0][q[1][b] ^ getB(sKey[1], 1)] ^ getB(sKey[0], 1)];\n tfsM[2][i] = m[2][q[1][q[0][c] ^ getB(sKey[1], 2)] ^ getB(sKey[0], 2)];\n tfsM[3][i] = m[3][q[1][q[1][d] ^ getB(sKey[1], 3)] ^ getB(sKey[0], 3)];\n }\n }\n }\n\n function tfsG0(x) {\n return tfsM[0][getB(x, 0)] ^ tfsM[1][getB(x, 1)] ^ tfsM[2][getB(x, 2)] ^ tfsM[3][getB(x, 3)];\n }\n\n function tfsG1(x) {\n return tfsM[0][getB(x, 3)] ^ tfsM[1][getB(x, 0)] ^ tfsM[2][getB(x, 1)] ^ tfsM[3][getB(x, 2)];\n }\n\n function tfsFrnd(r, blk) {\n let a = tfsG0(blk[0]);\n let b = tfsG1(blk[1]);\n blk[2] = rotw(blk[2] ^ (a + b + tfsKey[4 * r + 8]) & MAXINT, 31);\n blk[3] = rotw(blk[3], 1) ^ (a + 2 * b + tfsKey[4 * r + 9]) & MAXINT;\n a = tfsG0(blk[2]);\n b = tfsG1(blk[3]);\n blk[0] = rotw(blk[0] ^ (a + b + tfsKey[4 * r + 10]) & MAXINT, 31);\n blk[1] = rotw(blk[1], 1) ^ (a + 2 * b + tfsKey[4 * r + 11]) & MAXINT;\n }\n\n function tfsIrnd(i, blk) {\n let a = tfsG0(blk[0]);\n let b = tfsG1(blk[1]);\n blk[2] = rotw(blk[2], 1) ^ (a + b + tfsKey[4 * i + 10]) & MAXINT;\n blk[3] = rotw(blk[3] ^ (a + 2 * b + tfsKey[4 * i + 11]) & MAXINT, 31);\n a = tfsG0(blk[2]);\n b = tfsG1(blk[3]);\n blk[0] = rotw(blk[0], 1) ^ (a + b + tfsKey[4 * i + 8]) & MAXINT;\n blk[1] = rotw(blk[1] ^ (a + 2 * b + tfsKey[4 * i + 9]) & MAXINT, 31);\n }\n\n function tfsClose() {\n tfsKey = [];\n tfsM = [\n [],\n [],\n [],\n []\n ];\n }\n\n function tfsEncrypt(data, offset) {\n dataBytes = data;\n dataOffset = offset;\n const blk = [getW(dataBytes, dataOffset) ^ tfsKey[0],\n getW(dataBytes, dataOffset + 4) ^ tfsKey[1],\n getW(dataBytes, dataOffset + 8) ^ tfsKey[2],\n getW(dataBytes, dataOffset + 12) ^ tfsKey[3]];\n for (let j = 0; j < 8; j++) {\n tfsFrnd(j, blk);\n }\n setW(dataBytes, dataOffset, blk[2] ^ tfsKey[4]);\n setW(dataBytes, dataOffset + 4, blk[3] ^ tfsKey[5]);\n setW(dataBytes, dataOffset + 8, blk[0] ^ tfsKey[6]);\n setW(dataBytes, dataOffset + 12, blk[1] ^ tfsKey[7]);\n dataOffset += 16;\n return dataBytes;\n }\n\n function tfsDecrypt(data, offset) {\n dataBytes = data;\n dataOffset = offset;\n const blk = [getW(dataBytes, dataOffset) ^ tfsKey[4],\n getW(dataBytes, dataOffset + 4) ^ tfsKey[5],\n getW(dataBytes, dataOffset + 8) ^ tfsKey[6],\n getW(dataBytes, dataOffset + 12) ^ tfsKey[7]];\n for (let j = 7; j >= 0; j--) {\n tfsIrnd(j, blk);\n }\n setW(dataBytes, dataOffset, blk[2] ^ tfsKey[0]);\n setW(dataBytes, dataOffset + 4, blk[3] ^ tfsKey[1]);\n setW(dataBytes, dataOffset + 8, blk[0] ^ tfsKey[2]);\n setW(dataBytes, dataOffset + 12, blk[1] ^ tfsKey[3]);\n dataOffset += 16;\n }\n\n // added by Recurity Labs\n\n function tfsFinal() {\n return dataBytes;\n }\n\n return {\n name: 'twofish',\n blocksize: 128 / 8,\n open: tfsInit,\n close: tfsClose,\n encrypt: tfsEncrypt,\n decrypt: tfsDecrypt,\n // added by Recurity Labs\n finalize: tfsFinal\n };\n}\n\n// added by Recurity Labs\n\nfunction TF(key) {\n this.tf = createTwofish();\n this.tf.open(Array.from(key), 0);\n\n this.encrypt = function(block) {\n return this.tf.encrypt(Array.from(block), 0);\n };\n}\n\nTF.keySize = TF.prototype.keySize = 32;\nTF.blockSize = TF.prototype.blockSize = 16;\n\nexport default TF;\n", "/* Modified by Recurity Labs GmbH\n *\n * Originally written by nklein software (nklein.com)\n */\n\n/*\n * Javascript implementation based on Bruce Schneier's reference implementation.\n *\n *\n * The constructor doesn't do much of anything. It's just here\n * so we can start defining properties and methods and such.\n */\nfunction Blowfish() {}\n\n/*\n * Declare the block size so that protocols know what size\n * Initialization Vector (IV) they will need.\n */\nBlowfish.prototype.BLOCKSIZE = 8;\n\n/*\n * These are the default SBOXES.\n */\nBlowfish.prototype.SBOXES = [\n [\n 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96,\n 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,\n 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658,\n 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,\n 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e,\n 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,\n 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6,\n 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,\n 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c,\n 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,\n 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1,\n 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,\n 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a,\n 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,\n 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176,\n 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,\n 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706,\n 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,\n 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b,\n 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,\n 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c,\n 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,\n 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a,\n 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,\n 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760,\n 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,\n 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8,\n 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,\n 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33,\n 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,\n 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0,\n 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,\n 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777,\n 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,\n 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705,\n 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,\n 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e,\n 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,\n 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9,\n 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,\n 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f,\n 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,\n 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a\n ],\n [\n 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d,\n 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,\n 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65,\n 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,\n 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9,\n 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,\n 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d,\n 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,\n 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc,\n 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,\n 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908,\n 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,\n 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124,\n 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,\n 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908,\n 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,\n 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b,\n 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,\n 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa,\n 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,\n 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d,\n 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,\n 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5,\n 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,\n 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96,\n 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,\n 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca,\n 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,\n 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77,\n 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,\n 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054,\n 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,\n 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea,\n 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,\n 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646,\n 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,\n 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea,\n 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,\n 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e,\n 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,\n 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd,\n 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,\n 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7\n ],\n [\n 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7,\n 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,\n 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af,\n 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,\n 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4,\n 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,\n 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec,\n 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,\n 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332,\n 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,\n 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58,\n 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,\n 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22,\n 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,\n 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60,\n 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,\n 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99,\n 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,\n 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74,\n 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,\n 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3,\n 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,\n 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979,\n 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,\n 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa,\n 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,\n 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086,\n 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,\n 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24,\n 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,\n 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84,\n 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,\n 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09,\n 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,\n 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe,\n 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,\n 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0,\n 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,\n 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188,\n 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,\n 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8,\n 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,\n 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0\n ],\n [\n 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742,\n 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,\n 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79,\n 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,\n 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a,\n 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,\n 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1,\n 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,\n 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797,\n 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,\n 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6,\n 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,\n 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba,\n 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,\n 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5,\n 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,\n 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce,\n 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,\n 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd,\n 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,\n 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb,\n 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,\n 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc,\n 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,\n 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc,\n 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,\n 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a,\n 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,\n 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a,\n 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,\n 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b,\n 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,\n 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e,\n 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,\n 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623,\n 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,\n 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a,\n 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,\n 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3,\n 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,\n 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c,\n 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,\n 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6\n ]\n];\n\n//*\n//* This is the default PARRAY\n//*\nBlowfish.prototype.PARRAY = [\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0,\n 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\n 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b\n];\n\n//*\n//* This is the number of rounds the cipher will go\n//*\nBlowfish.prototype.NN = 16;\n\n//*\n//* This function is needed to get rid of problems\n//* with the high-bit getting set. If we don't do\n//* this, then sometimes ( aa & 0x00FFFFFFFF ) is not\n//* equal to ( bb & 0x00FFFFFFFF ) even when they\n//* agree bit-for-bit for the first 32 bits.\n//*\nBlowfish.prototype._clean = function(xx) {\n if (xx < 0) {\n const yy = xx & 0x7FFFFFFF;\n xx = yy + 0x80000000;\n }\n return xx;\n};\n\n//*\n//* This is the mixing function that uses the sboxes\n//*\nBlowfish.prototype._F = function(xx) {\n let yy;\n\n const dd = xx & 0x00FF;\n xx >>>= 8;\n const cc = xx & 0x00FF;\n xx >>>= 8;\n const bb = xx & 0x00FF;\n xx >>>= 8;\n const aa = xx & 0x00FF;\n\n yy = this.sboxes[0][aa] + this.sboxes[1][bb];\n yy ^= this.sboxes[2][cc];\n yy += this.sboxes[3][dd];\n\n return yy;\n};\n\n//*\n//* This method takes an array with two values, left and right\n//* and does NN rounds of Blowfish on them.\n//*\nBlowfish.prototype._encryptBlock = function(vals) {\n let dataL = vals[0];\n let dataR = vals[1];\n\n let ii;\n\n for (ii = 0; ii < this.NN; ++ii) {\n dataL ^= this.parray[ii];\n dataR = this._F(dataL) ^ dataR;\n\n const tmp = dataL;\n dataL = dataR;\n dataR = tmp;\n }\n\n dataL ^= this.parray[this.NN + 0];\n dataR ^= this.parray[this.NN + 1];\n\n vals[0] = this._clean(dataR);\n vals[1] = this._clean(dataL);\n};\n\n//*\n//* This method takes a vector of numbers and turns them\n//* into long words so that they can be processed by the\n//* real algorithm.\n//*\n//* Maybe I should make the real algorithm above take a vector\n//* instead. That will involve more looping, but it won't require\n//* the F() method to deconstruct the vector.\n//*\nBlowfish.prototype.encryptBlock = function(vector) {\n let ii;\n const vals = [0, 0];\n const off = this.BLOCKSIZE / 2;\n for (ii = 0; ii < this.BLOCKSIZE / 2; ++ii) {\n vals[0] = (vals[0] << 8) | (vector[ii + 0] & 0x00FF);\n vals[1] = (vals[1] << 8) | (vector[ii + off] & 0x00FF);\n }\n\n this._encryptBlock(vals);\n\n const ret = [];\n for (ii = 0; ii < this.BLOCKSIZE / 2; ++ii) {\n ret[ii + 0] = ((vals[0] >>> (24 - 8 * (ii))) & 0x00FF);\n ret[ii + off] = ((vals[1] >>> (24 - 8 * (ii))) & 0x00FF);\n // vals[ 0 ] = ( vals[ 0 ] >>> 8 );\n // vals[ 1 ] = ( vals[ 1 ] >>> 8 );\n }\n\n return ret;\n};\n\n//*\n//* This method takes an array with two values, left and right\n//* and undoes NN rounds of Blowfish on them.\n//*\nBlowfish.prototype._decryptBlock = function(vals) {\n let dataL = vals[0];\n let dataR = vals[1];\n\n let ii;\n\n for (ii = this.NN + 1; ii > 1; --ii) {\n dataL ^= this.parray[ii];\n dataR = this._F(dataL) ^ dataR;\n\n const tmp = dataL;\n dataL = dataR;\n dataR = tmp;\n }\n\n dataL ^= this.parray[1];\n dataR ^= this.parray[0];\n\n vals[0] = this._clean(dataR);\n vals[1] = this._clean(dataL);\n};\n\n//*\n//* This method takes a key array and initializes the\n//* sboxes and parray for this encryption.\n//*\nBlowfish.prototype.init = function(key) {\n let ii;\n let jj = 0;\n\n this.parray = [];\n for (ii = 0; ii < this.NN + 2; ++ii) {\n let data = 0x00000000;\n for (let kk = 0; kk < 4; ++kk) {\n data = (data << 8) | (key[jj] & 0x00FF);\n if (++jj >= key.length) {\n jj = 0;\n }\n }\n this.parray[ii] = this.PARRAY[ii] ^ data;\n }\n\n this.sboxes = [];\n for (ii = 0; ii < 4; ++ii) {\n this.sboxes[ii] = [];\n for (jj = 0; jj < 256; ++jj) {\n this.sboxes[ii][jj] = this.SBOXES[ii][jj];\n }\n }\n\n const vals = [0x00000000, 0x00000000];\n\n for (ii = 0; ii < this.NN + 2; ii += 2) {\n this._encryptBlock(vals);\n this.parray[ii + 0] = vals[0];\n this.parray[ii + 1] = vals[1];\n }\n\n for (ii = 0; ii < 4; ++ii) {\n for (jj = 0; jj < 256; jj += 2) {\n this._encryptBlock(vals);\n this.sboxes[ii][jj + 0] = vals[0];\n this.sboxes[ii][jj + 1] = vals[1];\n }\n }\n};\n\n// added by Recurity Labs\nfunction BF(key) {\n this.bf = new Blowfish();\n this.bf.init(key);\n\n this.encrypt = function(block) {\n return this.bf.encryptBlock(block);\n };\n}\n\nBF.keySize = BF.prototype.keySize = 16;\nBF.blockSize = BF.prototype.blockSize = 8;\n\nexport default BF;\n", "/**\n * This file is needed to dynamic import the legacy ciphers.\n * Separate dynamic imports are not convenient as they result in multiple chunks.\n */\n\nimport { TripleDES } from './des';\nimport CAST5 from './cast5';\nimport TwoFish from './twofish';\nimport BlowFish from './blowfish';\nimport enums from '../../enums';\n\nexport const legacyCiphers = new Map([\n [enums.symmetric.tripledes, TripleDES],\n [enums.symmetric.cast5, CAST5],\n [enums.symmetric.blowfish, BlowFish],\n [enums.symmetric.twofish, TwoFish]\n]);\n", "import { HashMD, Chi, Maj } from './_md.js';\nimport { rotl, wrapConstructor } from './utils.js';\n// SHA1 (RFC 3174). It was cryptographically broken: prefer newer algorithms.\n// Initial state\nconst SHA1_IV = /* @__PURE__ */ new Uint32Array([\n 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA1 extends HashMD {\n constructor() {\n super(64, 20, 8, false);\n this.A = SHA1_IV[0] | 0;\n this.B = SHA1_IV[1] | 0;\n this.C = SHA1_IV[2] | 0;\n this.D = SHA1_IV[3] | 0;\n this.E = SHA1_IV[4] | 0;\n }\n get() {\n const { A, B, C, D, E } = this;\n return [A, B, C, D, E];\n }\n set(A, B, C, D, E) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n SHA1_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 80; i++)\n SHA1_W[i] = rotl(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n // Compression function main loop, 80 rounds\n let { A, B, C, D, E } = this;\n for (let i = 0; i < 80; i++) {\n let F, K;\n if (i < 20) {\n F = Chi(B, C, D);\n K = 0x5a827999;\n }\n else if (i < 40) {\n F = B ^ C ^ D;\n K = 0x6ed9eba1;\n }\n else if (i < 60) {\n F = Maj(B, C, D);\n K = 0x8f1bbcdc;\n }\n else {\n F = B ^ C ^ D;\n K = 0xca62c1d6;\n }\n const T = (rotl(A, 5) + F + E + K + SHA1_W[i]) | 0;\n E = D;\n D = C;\n C = rotl(B, 30);\n B = A;\n A = T;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n this.set(A, B, C, D, E);\n }\n roundClean() {\n SHA1_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA1 (RFC 3174) hash function.\n * It was cryptographically broken: prefer newer algorithms.\n * @param message - data that would be hashed\n */\nexport const sha1 = /* @__PURE__ */ wrapConstructor(() => new SHA1());\n//# sourceMappingURL=sha1.js.map", "import { HashMD } from './_md.js';\nimport { rotl, wrapConstructor } from './utils.js';\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = /* @__PURE__ */ new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = /* @__PURE__ */ new Uint8Array(new Array(16).fill(0).map((_, i) => i));\nconst Pi = /* @__PURE__ */ Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = /* @__PURE__ */ new Uint32Array([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr = /* @__PURE__ */ new Uint32Array([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst R_BUF = /* @__PURE__ */ new Uint32Array(16);\nexport class RIPEMD160 extends HashMD {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n R_BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + R_BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + R_BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n R_BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexport const ripemd160 = /* @__PURE__ */ wrapConstructor(() => new RIPEMD160());\n//# sourceMappingURL=ripemd160.js.map", "/**\n * This file is needed to dynamic import the noble-hashes.\n * Separate dynamic imports are not convenient as they result in too many chunks,\n * which share a lot of code anyway.\n */\n\nimport { sha1 } from '@noble/hashes/sha1';\nimport { sha224, sha256 } from '@noble/hashes/sha256';\nimport { sha384, sha512 } from '@noble/hashes/sha512';\nimport { sha3_256, sha3_512 } from '@noble/hashes/sha3';\nimport { ripemd160 } from '@noble/hashes/ripemd160';\n\nexport const nobleHashes = new Map(Object.entries({\n sha1,\n sha224,\n sha256,\n sha384,\n sha512,\n sha3_256,\n sha3_512,\n ripemd160\n}));\n", "// Adapted from the reference implementation in RFC7693\n// Initial port to Javascript by https://github.com/dcposch and https://github.com/emilbayes\n\n// Uint64 values are represented using two Uint32s, stored as little endian\n// NB: Uint32Arrays endianness depends on the underlying system, so for interoperability, conversions between Uint8Array and Uint32Arrays\n// need to be manually handled\n\n// 64-bit unsigned addition (little endian, in place)\n// Sets a[i,i+1] += b[j,j+1]\n// `a` and `b` must be Uint32Array(2)\nfunction ADD64 (a, i, b, j) {\n a[i] += b[j];\n a[i+1] += b[j+1] + (a[i] < b[j]); // add carry\n}\n\n// Increment 64-bit little-endian unsigned value by `c` (in place)\n// `a` must be Uint32Array(2)\nfunction INC64 (a, c) {\n a[0] += c;\n a[1] += (a[0] < c);\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction G (v, m, a, b, c, d, ix, iy) {\n ADD64(v, a, v, b) // v[a,a+1] += v[b,b+1]\n ADD64(v, a, m, ix) // v[a, a+1] += x ... x0\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64(v, c, v, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64(v, a, v, b)\n ADD64(v, a, m, iy)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64(v, c, v, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,\n 0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,\n 0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,\n 0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19\n])\n\n// These are offsets into a Uint64 buffer.\n// Multiply them all by 2 to make them offsets into a Uint32 buffer\nconst SIGMA = new Uint8Array([\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3\n].map(x => x * 2))\n\n// Compression function. 'last' flag indicates last block.\n// Note: we're representing 16 uint64s as 32 uint32s\nfunction compress(S, last) {\n const v = new Uint32Array(32)\n const m = new Uint32Array(S.b.buffer, S.b.byteOffset, 32)\n\n // init work variables\n for (let i = 0; i < 16; i++) {\n v[i] = S.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] ^= S.t0[0]\n v[25] ^= S.t0[1]\n // high 64 bits not supported (`t1`), offset may not be higher than 2**53-1\n\n // if last block\n const f0 = last ? 0xFFFFFFFF : 0;\n v[28] ^= f0;\n v[29] ^= f0;\n\n // twelve rounds of mixing\n for (let i = 0; i < 12; i++) {\n // ROUND(r)\n const i16 = i << 4;\n G(v, m, 0, 8, 16, 24, SIGMA[i16 + 0], SIGMA[i16 + 1])\n G(v, m, 2, 10, 18, 26, SIGMA[i16 + 2], SIGMA[i16 + 3])\n G(v, m, 4, 12, 20, 28, SIGMA[i16 + 4], SIGMA[i16 + 5])\n G(v, m, 6, 14, 22, 30, SIGMA[i16 + 6], SIGMA[i16 + 7])\n G(v, m, 0, 10, 20, 30, SIGMA[i16 + 8], SIGMA[i16 + 9])\n G(v, m, 2, 12, 22, 24, SIGMA[i16 + 10], SIGMA[i16 + 11])\n G(v, m, 4, 14, 16, 26, SIGMA[i16 + 12], SIGMA[i16 + 13])\n G(v, m, 6, 8, 18, 28, SIGMA[i16 + 14], SIGMA[i16 + 15])\n }\n\n for (let i = 0; i < 16; i++) {\n S.h[i] ^= v[i] ^ v[i + 16]\n }\n}\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\nclass Blake2b {\n constructor(outlen, key, salt, personal) {\n const params = new Uint8Array(64)\n // 0: outlen, keylen, fanout, depth\n // 4: leaf length, sequential mode\n // 8: node offset\n // 12: node offset\n // 16: node depth, inner length, rfu\n // 20: rfu\n // 24: rfu\n // 28: rfu\n // 32: salt\n // 36: salt\n // 40: salt\n // 44: salt\n // 48: personal\n // 52: personal\n // 56: personal\n // 60: personal\n\n // init internal state\n this.S = {\n b: new Uint8Array(BLOCKBYTES),\n h: new Uint32Array(OUTBYTES_MAX / 4),\n t0: new Uint32Array(2), // input counter `t`, lower 64-bits only\n c: 0, // `fill`, pointer within buffer, up to `BLOCKBYTES`\n outlen // output length in bytes\n }\n\n // init parameter block\n params[0] = outlen\n if (key) params[1] = key.length\n params[2] = 1 // fanout\n params[3] = 1 // depth\n if (salt) params.set(salt, 32)\n if (personal) params.set(personal, 48)\n const params32 = new Uint32Array(params.buffer, params.byteOffset, params.length / Uint32Array.BYTES_PER_ELEMENT);\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n this.S.h[i] = BLAKE2B_IV32[i] ^ params32[i];\n }\n\n // key the hash, if applicable\n if (key) {\n const block = new Uint8Array(BLOCKBYTES)\n block.set(key)\n this.update(block)\n }\n }\n\n // Updates a BLAKE2b streaming hash\n // Requires Uint8Array (byte array)\n update(input) {\n if (!(input instanceof Uint8Array)) throw new Error('Input must be Uint8Array or Buffer')\n // for (let i = 0; i < input.length; i++) {\n // if (this.S.c === BLOCKBYTES) { // buffer full\n // INC64(this.S.t0, this.S.c) // add counters\n // compress(this.S, false)\n // this.S.c = 0 // empty buffer\n // }\n // this.S.b[this.S.c++] = input[i]\n // }\n let i = 0\n while(i < input.length) {\n if (this.S.c === BLOCKBYTES) { // buffer full\n INC64(this.S.t0, this.S.c) // add counters\n compress(this.S, false)\n this.S.c = 0 // empty buffer\n }\n let left = BLOCKBYTES - this.S.c\n this.S.b.set(input.subarray(i, i + left), this.S.c) // end index can be out of bounds\n const fill = Math.min(left, input.length - i)\n this.S.c += fill\n i += fill\n }\n return this\n }\n\n /**\n * Return a BLAKE2b hash, either filling the given Uint8Array or allocating a new one\n * @param {Uint8Array} [prealloc] - optional preallocated buffer\n * @returns {ArrayBuffer} message digest\n */\n digest(prealloc) {\n INC64(this.S.t0, this.S.c) // mark last block offset\n\n // final block, padded\n this.S.b.fill(0, this.S.c);\n this.S.c = BLOCKBYTES;\n compress(this.S, true)\n\n const out = prealloc || new Uint8Array(this.S.outlen);\n for (let i = 0; i < this.S.outlen; i++) {\n // must be loaded individually since default Uint32 endianness is platform dependant\n out[i] = this.S.h[i >> 2] >> (8 * (i & 3))\n }\n this.S.h = null; // prevent calling `update` after `digest`\n return out.buffer;\n }\n}\n\n\nexport default function createHash(outlen, key, salt, personal) {\n if (outlen > OUTBYTES_MAX) throw new Error(`outlen must be at most ${OUTBYTES_MAX} (given: ${outlen})`)\n if (key) {\n if (!(key instanceof Uint8Array)) throw new Error('key must be Uint8Array or Buffer')\n if (key.length > KEYBYTES_MAX) throw new Error(`key size must be at most ${KEYBYTES_MAX} (given: ${key.length})`)\n }\n if (salt) {\n if (!(salt instanceof Uint8Array)) throw new Error('salt must be Uint8Array or Buffer')\n if (salt.length !== SALTBYTES) throw new Error(`salt must be exactly ${SALTBYTES} (given: ${salt.length}`)\n }\n if (personal) {\n if (!(personal instanceof Uint8Array)) throw new Error('personal must be Uint8Array or Buffer')\n if (personal.length !== PERSONALBYTES) throw new Error(`salt must be exactly ${PERSONALBYTES} (given: ${personal.length}`)\n }\n\n return new Blake2b(outlen, key, salt, personal)\n}\n\nconst OUTBYTES_MAX = 64;\nconst KEYBYTES_MAX = 64;\nconst SALTBYTES = 16;\nconst PERSONALBYTES = 16;\nconst BLOCKBYTES = 128;\n\n", "import blake2b from \"./blake2b.js\"\nconst TYPE = 2; // Argon2id\nconst VERSION = 0x13;\nconst TAGBYTES_MAX = 0xFFFFFFFF; // Math.pow(2, 32) - 1;\nconst TAGBYTES_MIN = 4; // Math.pow(2, 32) - 1;\nconst SALTBYTES_MAX = 0xFFFFFFFF; // Math.pow(2, 32) - 1;\nconst SALTBYTES_MIN = 8;\nconst passwordBYTES_MAX = 0xFFFFFFFF;// Math.pow(2, 32) - 1;\nconst passwordBYTES_MIN = 8;\nconst MEMBYTES_MAX = 0xFFFFFFFF;// Math.pow(2, 32) - 1;\nconst ADBYTES_MAX = 0xFFFFFFFF; // Math.pow(2, 32) - 1; // associated data (optional)\nconst SECRETBYTES_MAX = 32; // key (optional)\n\nconst ARGON2_BLOCK_SIZE = 1024;\nconst ARGON2_PREHASH_DIGEST_LENGTH = 64;\n\nconst isLittleEndian = new Uint8Array(new Uint16Array([0xabcd]).buffer)[0] === 0xcd;\n\n// store n as a little-endian 32-bit Uint8Array inside buf (at buf[i:i+3])\nfunction LE32(buf, n, i) {\n buf[i+0] = n;\n buf[i+1] = n >> 8;\n buf[i+2] = n >> 16;\n buf[i+3] = n >> 24;\n return buf;\n}\n\n/**\n * Store n as a 64-bit LE number in the given buffer (from buf[i] to buf[i+7])\n * @param {Uint8Array} buf\n * @param {Number} n\n * @param {Number} i\n */\nfunction LE64(buf, n, i) {\n if (n > Number.MAX_SAFE_INTEGER) throw new Error(\"LE64: large numbers unsupported\");\n // ECMAScript standard has engines convert numbers to 32-bit integers for bitwise operations\n // shifting by 32 or more bits is not supported (https://stackoverflow.com/questions/6729122/javascript-bit-shift-number-wraps)\n // so we manually extract each byte\n let remainder = n;\n for (let offset = i; offset < i+7; offset++) { // last byte can be ignored as it would overflow MAX_SAFE_INTEGER\n buf[offset] = remainder; // implicit & 0xff\n remainder = (remainder - buf[offset]) / 256;\n }\n return buf;\n}\n\n/**\n * Variable-Length Hash Function H'\n * @param {Number} outlen - T\n * @param {Uint8Array} X - value to hash\n * @param {Uint8Array} res - output buffer, of length `outlength` or larger\n */\nfunction H_(outlen, X, res) {\n const V = new Uint8Array(64); // no need to keep around all V_i\n\n const V1_in = new Uint8Array(4 + X.length);\n LE32(V1_in, outlen, 0);\n V1_in.set(X, 4);\n if (outlen <= 64) {\n // H'^T(A) = H^T(LE32(T)||A)\n blake2b(outlen).update(V1_in).digest(res);\n return res\n }\n\n const r = Math.ceil(outlen / 32) - 2;\n\n // Let V_i be a 64-byte block and W_i be its first 32 bytes.\n // V_1 = H^(64)(LE32(T)||A)\n // V_2 = H^(64)(V_1)\n // ...\n // V_r = H^(64)(V_{r-1})\n // V_{r+1} = H^(T-32*r)(V_{r})\n // H'^T(X) = W_1 || W_2 || ... || W_r || V_{r+1}\n for (let i = 0; i < r; i++) {\n blake2b(64).update(i === 0 ? V1_in : V).digest(V);\n // store W_i in result buffer already\n res.set(V.subarray(0, 32), i*32)\n }\n // V_{r+1}\n const V_r1 = new Uint8Array(blake2b(outlen - 32*r).update(V).digest());\n res.set(V_r1, r*32);\n\n return res;\n}\n\n// compute buf = xs ^ ys\nfunction XOR(wasmContext, buf, xs, ys) {\n wasmContext.fn.XOR(\n buf.byteOffset,\n xs.byteOffset,\n ys.byteOffset,\n );\n return buf\n}\n\n/**\n * @param {Uint8Array} X (read-only)\n * @param {Uint8Array} Y (read-only)\n * @param {Uint8Array} R - output buffer\n * @returns\n */\nfunction G(wasmContext, X, Y, R) {\n wasmContext.fn.G(\n X.byteOffset,\n Y.byteOffset,\n R.byteOffset,\n wasmContext.refs.gZ.byteOffset\n );\n return R;\n}\n\nfunction G2(wasmContext, X, Y, R) {\n wasmContext.fn.G2(\n X.byteOffset,\n Y.byteOffset,\n R.byteOffset,\n wasmContext.refs.gZ.byteOffset\n );\n return R;\n}\n\n// Generator for data-independent J1, J2. Each `next()` invocation returns a new pair of values.\nfunction* makePRNG(wasmContext, pass, lane, slice, m_, totalPasses, segmentLength, segmentOffset) {\n // For each segment, we do the following. First, we compute the value Z as:\n // Z= ( LE64(r) || LE64(l) || LE64(sl) || LE64(m') || LE64(t) || LE64(y) )\n wasmContext.refs.prngTmp.fill(0);\n const Z = wasmContext.refs.prngTmp.subarray(0, 6 * 8);\n LE64(Z, pass, 0);\n LE64(Z, lane, 8);\n LE64(Z, slice, 16);\n LE64(Z, m_, 24);\n LE64(Z, totalPasses, 32);\n LE64(Z, TYPE, 40);\n\n // Then we compute q/(128*SL) 1024-byte values\n // G( ZERO(1024),\n // G( ZERO(1024), Z || LE64(1) || ZERO(968) ) ),\n // ...,\n // G( ZERO(1024),\n // G( ZERO(1024), Z || LE64(q/(128*SL)) || ZERO(968) )),\n for(let i = 1; i <= segmentLength; i++) {\n // tmp.set(Z); // no need to re-copy\n LE64(wasmContext.refs.prngTmp, i, Z.length); // tmp.set(ZER0968) not necessary, memory already zeroed\n const g2 = G2(wasmContext, wasmContext.refs.ZERO1024, wasmContext.refs.prngTmp, wasmContext.refs.prngR );\n\n // each invocation of G^2 outputs 1024 bytes that are to be partitioned into 8-bytes values, take as X1 || X2\n // NB: the first generated pair must be used for the first block of the segment, and so on.\n // Hence, if some blocks are skipped (e.g. during the first pass), the corresponding J1J2 are discarded based on the given segmentOffset.\n for(let k = i === 1 ? segmentOffset*8 : 0; k < g2.length; k += 8) {\n yield g2.subarray(k, k+8);\n }\n }\n return [];\n}\n\nfunction validateParams({ type, version, tagLength, password, salt, ad, secret, parallelism, memorySize, passes }) {\n const assertLength = (name, value, min, max) => {\n if (value < min || value > max) { throw new Error(`${name} size should be between ${min} and ${max} bytes`); }\n }\n\n if (type !== TYPE || version !== VERSION) throw new Error('Unsupported type or version');\n assertLength('password', password, passwordBYTES_MIN, passwordBYTES_MAX);\n assertLength('salt', salt, SALTBYTES_MIN, SALTBYTES_MAX);\n assertLength('tag', tagLength, TAGBYTES_MIN, TAGBYTES_MAX);\n assertLength('memory', memorySize, 8*parallelism, MEMBYTES_MAX);\n // optional fields\n ad && assertLength('associated data', ad, 0, ADBYTES_MAX);\n secret && assertLength('secret', secret, 0, SECRETBYTES_MAX);\n\n return { type, version, tagLength, password, salt, ad, secret, lanes: parallelism, memorySize, passes };\n}\n\nconst KB = 1024;\nconst WASM_PAGE_SIZE = 64 * KB;\n\nexport default function argon2id(params, { memory, instance: wasmInstance }) {\n if (!isLittleEndian) throw new Error('BigEndian system not supported'); // optmisations assume LE system\n\n const ctx = validateParams({ type: TYPE, version: VERSION, ...params });\n\n const { G:wasmG, G2:wasmG2, xor:wasmXOR, getLZ:wasmLZ } = wasmInstance.exports;\n const wasmRefs = {};\n const wasmFn = {};\n wasmFn.G = wasmG;\n wasmFn.G2 = wasmG2;\n wasmFn.XOR = wasmXOR;\n\n // The actual number of blocks is m', which is m rounded down to the nearest multiple of 4*p.\n const m_ = 4 * ctx.lanes * Math.floor(ctx.memorySize / (4 * ctx.lanes));\n const requiredMemory = m_ * ARGON2_BLOCK_SIZE + 10 * KB; // Additional KBs for utility references\n if (memory.buffer.byteLength < requiredMemory) {\n const missing = Math.ceil((requiredMemory - memory.buffer.byteLength) / WASM_PAGE_SIZE)\n // If enough memory is available, the `memory.buffer` is internally detached and the reference updated.\n // Otherwise, the operation fails, and the original memory can still be used.\n memory.grow(missing)\n }\n\n let offset = 0;\n // Init wasm memory needed in other functions\n wasmRefs.gZ = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+= wasmRefs.gZ.length;\n wasmRefs.prngR = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+=wasmRefs.prngR.length;\n wasmRefs.prngTmp = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+=wasmRefs.prngTmp.length;\n wasmRefs.ZERO1024 = new Uint8Array(memory.buffer, offset, 1024); offset+=wasmRefs.ZERO1024.length;\n // Init wasm memory needed locally\n const lz = new Uint32Array(memory.buffer, offset, 2); offset+=lz.length * Uint32Array.BYTES_PER_ELEMENT;\n const wasmContext = { fn: wasmFn, refs: wasmRefs };\n const newBlock = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+=newBlock.length;\n const blockMemory = new Uint8Array(memory.buffer, offset, ctx.memorySize * ARGON2_BLOCK_SIZE);\n const allocatedMemory = new Uint8Array(memory.buffer, 0, offset);\n\n // 1. Establish H_0\n const H0 = getH0(ctx);\n\n // 2. Allocate the memory as m' 1024-byte blocks\n // For p lanes, the memory is organized in a matrix B[i][j] of blocks with p rows (lanes) and q = m' / p columns.\n const q = m_ / ctx.lanes;\n const B = new Array(ctx.lanes).fill(null).map(() => new Array(q));\n const initBlock = (i, j) => {\n B[i][j] = blockMemory.subarray(i*q*1024 + j*1024, (i*q*1024 + j*1024) + ARGON2_BLOCK_SIZE);\n return B[i][j];\n }\n\n for (let i = 0; i < ctx.lanes; i++) {\n // const LEi = LE0; // since p = 1 for us\n const tmp = new Uint8Array(H0.length + 8);\n // 3. Compute B[i][0] for all i ranging from (and including) 0 to (not including) p\n // B[i][0] = H'^(1024)(H_0 || LE32(0) || LE32(i))\n tmp.set(H0); LE32(tmp, 0, H0.length); LE32(tmp, i, H0.length + 4);\n H_(ARGON2_BLOCK_SIZE, tmp, initBlock(i, 0));\n // 4. Compute B[i][1] for all i ranging from (and including) 0 to (not including) p\n // B[i][1] = H'^(1024)(H_0 || LE32(1) || LE32(i))\n LE32(tmp, 1, H0.length);\n H_(ARGON2_BLOCK_SIZE, tmp, initBlock(i, 1));\n }\n\n // 5. Compute B[i][j] for all i ranging from (and including) 0 to (not including) p and for all j ranging from (and including) 2\n // to (not including) q. The computation MUST proceed slicewise (Section 3.4) : first, blocks from slice 0 are computed for all lanes\n // (in an arbitrary order of lanes), then blocks from slice 1 are computed, etc.\n const SL = 4; // vertical slices\n const segmentLength = q / SL;\n for (let pass = 0; pass < ctx.passes; pass++) {\n // The intersection of a slice and a lane is called a segment, which has a length of q/SL. Segments of the same slice can be computed in parallel\n for (let sl = 0; sl < SL; sl++) {\n const isDataIndependent = pass === 0 && sl <= 1;\n for (let i = 0; i < ctx.lanes; i++) { // lane\n // On the first slice of the first pass, blocks 0 and 1 are already filled\n let segmentOffset = sl === 0 && pass === 0 ? 2 : 0;\n // no need to generate all J1J2s, use iterator/generator that creates the value on the fly (to save memory)\n const PRNG = isDataIndependent ? makePRNG(wasmContext, pass, i, sl, m_, ctx.passes, segmentLength, segmentOffset) : null;\n for (segmentOffset; segmentOffset < segmentLength; segmentOffset++) {\n const j = sl * segmentLength + segmentOffset;\n const prevBlock = j > 0 ? B[i][j-1] : B[i][q-1]; // B[i][(j-1) mod q]\n\n // we can assume the PRNG is never done\n const J1J2 = isDataIndependent ? PRNG.next().value : prevBlock; // .subarray(0, 8) not required since we only pass the byteOffset to wasm\n // The block indices l and z are determined for each i, j differently for Argon2d, Argon2i, and Argon2id.\n wasmLZ(lz.byteOffset, J1J2.byteOffset, i, ctx.lanes, pass, sl, segmentOffset, SL, segmentLength)\n const l = lz[0]; const z = lz[1];\n // for (let i = 0; i < p; i++ )\n // B[i][j] = G(B[i][j-1], B[l][z])\n // The block indices l and z are determined for each i, j differently for Argon2d, Argon2i, and Argon2id.\n if (pass === 0) initBlock(i, j);\n G(wasmContext, prevBlock, B[l][z], pass > 0 ? newBlock : B[i][j]);\n\n // 6. If the number of passes t is larger than 1, we repeat step 5. However, blocks are computed differently as the old value is XORed with the new one\n if (pass > 0) XOR(wasmContext, B[i][j], newBlock, B[i][j])\n }\n }\n }\n }\n\n // 7. After t steps have been iterated, the final block C is computed as the XOR of the last column:\n // C = B[0][q-1] XOR B[1][q-1] XOR ... XOR B[p-1][q-1]\n const C = B[0][q-1];\n for(let i = 1; i < ctx.lanes; i++) {\n XOR(wasmContext, C, C, B[i][q-1])\n }\n\n const tag = H_(ctx.tagLength, C, new Uint8Array(ctx.tagLength));\n // clear memory since the module might be cached\n allocatedMemory.fill(0) // clear sensitive contents\n memory.grow(0) // allow deallocation\n // 8. The output tag is computed as H'^T(C).\n return tag;\n\n}\n\nfunction getH0(ctx) {\n const H = blake2b(ARGON2_PREHASH_DIGEST_LENGTH);\n const ZERO32 = new Uint8Array(4);\n const params = new Uint8Array(24);\n LE32(params, ctx.lanes, 0);\n LE32(params, ctx.tagLength, 4);\n LE32(params, ctx.memorySize, 8);\n LE32(params, ctx.passes, 12);\n LE32(params, ctx.version, 16);\n LE32(params, ctx.type, 20);\n\n const toHash = [params];\n if (ctx.password) {\n toHash.push(LE32(new Uint8Array(4), ctx.password.length, 0))\n toHash.push(ctx.password)\n } else {\n toHash.push(ZERO32) // context.password.length\n }\n\n if (ctx.salt) {\n toHash.push(LE32(new Uint8Array(4), ctx.salt.length, 0))\n toHash.push(ctx.salt)\n } else {\n toHash.push(ZERO32) // context.salt.length\n }\n\n if (ctx.secret) {\n toHash.push(LE32(new Uint8Array(4), ctx.secret.length, 0))\n toHash.push(ctx.secret)\n // todo clear secret?\n } else {\n toHash.push(ZERO32) // context.secret.length\n }\n\n if (ctx.ad) {\n toHash.push(LE32(new Uint8Array(4), ctx.ad.length, 0))\n toHash.push(ctx.ad)\n } else {\n toHash.push(ZERO32) // context.ad.length\n }\n H.update(concatArrays(toHash))\n\n const outputBuffer = H.digest();\n return new Uint8Array(outputBuffer);\n}\n\nfunction concatArrays(arrays) {\n if (arrays.length === 1) return arrays[0];\n\n let totalLength = 0;\n for (let i = 0; i < arrays.length; i++) {\n if (!(arrays[i] instanceof Uint8Array)) {\n throw new Error('concatArrays: Data must be in the form of a Uint8Array');\n }\n\n totalLength += arrays[i].length;\n }\n\n const result = new Uint8Array(totalLength);\n let pos = 0;\n arrays.forEach((element) => {\n result.set(element, pos);\n pos += element.length;\n });\n\n return result;\n}\n", "import argon2id from \"./argon2id.js\";\n\nlet isSIMDSupported;\nasync function wasmLoader(memory, getSIMD, getNonSIMD) {\n const importObject = { env: { memory } };\n if (isSIMDSupported === undefined) {\n try {\n const loaded = await getSIMD(importObject);\n isSIMDSupported = true;\n return loaded;\n } catch(e) {\n isSIMDSupported = false;\n }\n }\n\n const loader = isSIMDSupported ? getSIMD : getNonSIMD;\n return loader(importObject);\n}\n\nexport default async function setupWasm(getSIMD, getNonSIMD) {\n const memory = new WebAssembly.Memory({\n // in pages of 64KiB each\n // these values need to be compatible with those declared when building in `build-wasm`\n initial: 1040, // 65MB\n maximum: 65536, // 4GB\n });\n const wasmModule = await wasmLoader(memory, getSIMD, getNonSIMD);\n\n /**\n * Argon2id hash function\n * @callback computeHash\n * @param {Object} params\n * @param {Uint8Array} params.password - password\n * @param {Uint8Array} params.salt - salt\n * @param {Integer} params.parallelism\n * @param {Integer} params.passes\n * @param {Integer} params.memorySize - in kibibytes\n * @param {Integer} params.tagLength - output tag length\n * @param {Uint8Array} [params.ad] - associated data (optional)\n * @param {Uint8Array} [params.secret] - secret data (optional)\n * @return {Uint8Array} argon2id hash\n */\n const computeHash = (params) => argon2id(params, { instance: wasmModule.instance, memory });\n\n return computeHash;\n}\n", "import setupWasm from './lib/setup.js';\nimport wasmSIMD from './dist/simd.wasm';\nimport wasmNonSIMD from './dist/no-simd.wasm';\n\nconst loadWasm = async () => setupWasm(\n (instanceObject) => wasmSIMD(instanceObject),\n (instanceObject) => wasmNonSIMD(instanceObject),\n);\n\nexport default loadWasm;\n", "/*\nnode-bzip - a pure-javascript Node.JS module for decoding bzip2 data\n\nCopyright (C) 2012 Eli Skeggs\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, see\nhttp://www.gnu.org/licenses/lgpl-2.1.html\n\nAdapted from bzip2.js, copyright 2011 antimatter15 (antimatter15@gmail.com).\n\nBased on micro-bunzip by Rob Landley (rob@landley.net).\n\nBased on bzip2 decompression code by Julian R Seward (jseward@acm.org),\nwhich also acknowledges contributions by Mike Burrows, David Wheeler,\nPeter Fenwick, Alistair Moffat, Radford Neal, Ian H. Witten,\nRobert Sedgewick, and Jon L. Bentley.\n*/\n\nvar BITMASK = [0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF];\n\n// offset in bytes\nvar BitReader = function(stream) {\n this.stream = stream;\n this.bitOffset = 0;\n this.curByte = 0;\n this.hasByte = false;\n};\n\nBitReader.prototype._ensureByte = function() {\n if (!this.hasByte) {\n this.curByte = this.stream.readByte();\n this.hasByte = true;\n }\n};\n\n// reads bits from the buffer\nBitReader.prototype.read = function(bits) {\n var result = 0;\n while (bits > 0) {\n this._ensureByte();\n var remaining = 8 - this.bitOffset;\n // if we're in a byte\n if (bits >= remaining) {\n result <<= remaining;\n result |= BITMASK[remaining] & this.curByte;\n this.hasByte = false;\n this.bitOffset = 0;\n bits -= remaining;\n } else {\n result <<= bits;\n var shift = remaining - bits;\n result |= (this.curByte & (BITMASK[bits] << shift)) >> shift;\n this.bitOffset += bits;\n bits = 0;\n }\n }\n return result;\n};\n\n// seek to an arbitrary point in the buffer (expressed in bits)\nBitReader.prototype.seek = function(pos) {\n var n_bit = pos % 8;\n var n_byte = (pos - n_bit) / 8;\n this.bitOffset = n_bit;\n this.stream.seek(n_byte);\n this.hasByte = false;\n};\n\n// reads 6 bytes worth of data using the read method\nBitReader.prototype.pi = function() {\n var buf = new Uint8Array(6), i;\n for (i = 0; i < buf.length; i++) {\n buf[i] = this.read(8);\n }\n return bufToHex(buf);\n};\n\nfunction bufToHex(buf) {\n return Array.prototype.map.call(buf, x => ('00' + x.toString(16)).slice(-2)).join('');\n}\n\nmodule.exports = BitReader;\n", "/* very simple input/output stream interface */\nvar Stream = function() {\n};\n\n// input streams //////////////\n/** Returns the next byte, or -1 for EOF. */\nStream.prototype.readByte = function() {\n throw new Error(\"abstract method readByte() not implemented\");\n};\n/** Attempts to fill the buffer; returns number of bytes read, or\n * -1 for EOF. */\nStream.prototype.read = function(buffer, bufOffset, length) {\n var bytesRead = 0;\n while (bytesRead < length) {\n var c = this.readByte();\n if (c < 0) { // EOF\n return (bytesRead===0) ? -1 : bytesRead;\n }\n buffer[bufOffset++] = c;\n bytesRead++;\n }\n return bytesRead;\n};\nStream.prototype.seek = function(new_pos) {\n throw new Error(\"abstract method seek() not implemented\");\n};\n\n// output streams ///////////\nStream.prototype.writeByte = function(_byte) {\n throw new Error(\"abstract method readByte() not implemented\");\n};\nStream.prototype.write = function(buffer, bufOffset, length) {\n var i;\n for (i=0; i>> 0; // return an unsigned value\n };\n\n /**\n * Update the CRC with a single byte\n * @param value The value to update the CRC with\n */\n this.updateCRC = function(value) {\n crc = (crc << 8) ^ crc32Lookup[((crc >>> 24) ^ value) & 0xff];\n };\n\n /**\n * Update the CRC with a sequence of identical bytes\n * @param value The value to update the CRC with\n * @param count The number of bytes\n */\n this.updateCRCRun = function(value, count) {\n while (count-- > 0) {\n crc = (crc << 8) ^ crc32Lookup[((crc >>> 24) ^ value) & 0xff];\n }\n };\n };\n return CRC32;\n})();\n", "/*\nseek-bzip - a pure-javascript module for seeking within bzip2 data\n\nCopyright (C) 2013 C. Scott Ananian\nCopyright (C) 2012 Eli Skeggs\nCopyright (C) 2011 Kevin Kwok\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, see\nhttp://www.gnu.org/licenses/lgpl-2.1.html\n\nAdapted from node-bzip, copyright 2012 Eli Skeggs.\nAdapted from bzip2.js, copyright 2011 Kevin Kwok (antimatter15@gmail.com).\n\nBased on micro-bunzip by Rob Landley (rob@landley.net).\n\nBased on bzip2 decompression code by Julian R Seward (jseward@acm.org),\nwhich also acknowledges contributions by Mike Burrows, David Wheeler,\nPeter Fenwick, Alistair Moffat, Radford Neal, Ian H. Witten,\nRobert Sedgewick, and Jon L. Bentley.\n*/\n\nvar BitReader = require('./bitreader');\nvar Stream = require('./stream');\nvar CRC32 = require('./crc32');\n\nvar MAX_HUFCODE_BITS = 20;\nvar MAX_SYMBOLS = 258;\nvar SYMBOL_RUNA = 0;\nvar SYMBOL_RUNB = 1;\nvar MIN_GROUPS = 2;\nvar MAX_GROUPS = 6;\nvar GROUP_SIZE = 50;\n\nvar WHOLEPI = \"314159265359\";\nvar SQRTPI = \"177245385090\";\n\nvar mtf = function(array, index) {\n var src = array[index], i;\n for (i = index; i > 0; i--) {\n array[i] = array[i-1];\n }\n array[0] = src;\n return src;\n};\n\nvar Err = {\n OK: 0,\n LAST_BLOCK: -1,\n NOT_BZIP_DATA: -2,\n UNEXPECTED_INPUT_EOF: -3,\n UNEXPECTED_OUTPUT_EOF: -4,\n DATA_ERROR: -5,\n OUT_OF_MEMORY: -6,\n OBSOLETE_INPUT: -7,\n END_OF_BLOCK: -8\n};\nvar ErrorMessages = {};\nErrorMessages[Err.LAST_BLOCK] = \"Bad file checksum\";\nErrorMessages[Err.NOT_BZIP_DATA] = \"Not bzip data\";\nErrorMessages[Err.UNEXPECTED_INPUT_EOF] = \"Unexpected input EOF\";\nErrorMessages[Err.UNEXPECTED_OUTPUT_EOF] = \"Unexpected output EOF\";\nErrorMessages[Err.DATA_ERROR] = \"Data error\";\nErrorMessages[Err.OUT_OF_MEMORY] = \"Out of memory\";\nErrorMessages[Err.OBSOLETE_INPUT] = \"Obsolete (pre 0.9.5) bzip format not supported.\";\n\nvar _throw = function(status, optDetail) {\n var msg = ErrorMessages[status] || 'unknown error';\n if (optDetail) { msg += ': '+optDetail; }\n var e = new TypeError(msg);\n e.errorCode = status;\n throw e;\n};\n\nvar Bunzip = function(inputStream, outputStream) {\n this.writePos = this.writeCurrent = this.writeCount = 0;\n\n this._start_bunzip(inputStream, outputStream);\n};\nBunzip.prototype._init_block = function() {\n var moreBlocks = this._get_next_block();\n if ( !moreBlocks ) {\n this.writeCount = -1;\n return false; /* no more blocks */\n }\n this.blockCRC = new CRC32();\n return true;\n};\n/* XXX micro-bunzip uses (inputStream, inputBuffer, len) as arguments */\nBunzip.prototype._start_bunzip = function(inputStream, outputStream) {\n /* Ensure that file starts with \"BZh['1'-'9'].\" */\n var buf = new Uint8Array(4);\n if (inputStream.read(buf, 0, 4) !== 4 ||\n String.fromCharCode(buf[0], buf[1], buf[2]) !== 'BZh')\n _throw(Err.NOT_BZIP_DATA, 'bad magic');\n\n var level = buf[3] - 0x30;\n if (level < 1 || level > 9)\n _throw(Err.NOT_BZIP_DATA, 'level out of range');\n\n this.reader = new BitReader(inputStream);\n\n /* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of\n uncompressed data. Allocate intermediate buffer for block. */\n this.dbufSize = 100000 * level;\n this.nextoutput = 0;\n this.outputStream = outputStream;\n this.streamCRC = 0;\n};\nBunzip.prototype._get_next_block = function() {\n var i, j, k;\n var reader = this.reader;\n // this is get_next_block() function from micro-bunzip:\n /* Read in header signature and CRC, then validate signature.\n (last block signature means CRC is for whole file, return now) */\n var h = reader.pi();\n if (h === SQRTPI) { // last block\n return false; /* no more blocks */\n }\n if (h !== WHOLEPI)\n _throw(Err.NOT_BZIP_DATA);\n this.targetBlockCRC = reader.read(32) >>> 0; // (convert to unsigned)\n this.streamCRC = (this.targetBlockCRC ^\n ((this.streamCRC << 1) | (this.streamCRC>>>31))) >>> 0;\n /* We can add support for blockRandomised if anybody complains. There was\n some code for this in busybox 1.0.0-pre3, but nobody ever noticed that\n it didn't actually work. */\n if (reader.read(1))\n _throw(Err.OBSOLETE_INPUT);\n var origPointer = reader.read(24);\n if (origPointer > this.dbufSize)\n _throw(Err.DATA_ERROR, 'initial position out of bounds');\n /* mapping table: if some byte values are never used (encoding things\n like ascii text), the compression code removes the gaps to have fewer\n symbols to deal with, and writes a sparse bitfield indicating which\n values were present. We make a translation table to convert the symbols\n back to the corresponding bytes. */\n var t = reader.read(16);\n var symToByte = new Uint8Array(256), symTotal = 0;\n for (i = 0; i < 16; i++) {\n if (t & (1 << (0xF - i))) {\n var o = i * 16;\n k = reader.read(16);\n for (j = 0; j < 16; j++)\n if (k & (1 << (0xF - j)))\n symToByte[symTotal++] = o + j;\n }\n }\n\n /* How many different huffman coding groups does this block use? */\n var groupCount = reader.read(3);\n if (groupCount < MIN_GROUPS || groupCount > MAX_GROUPS)\n _throw(Err.DATA_ERROR);\n /* nSelectors: Every GROUP_SIZE many symbols we select a new huffman coding\n group. Read in the group selector list, which is stored as MTF encoded\n bit runs. (MTF=Move To Front, as each value is used it's moved to the\n start of the list.) */\n var nSelectors = reader.read(15);\n if (nSelectors === 0)\n _throw(Err.DATA_ERROR);\n\n var mtfSymbol = new Uint8Array(256);\n for (i = 0; i < groupCount; i++)\n mtfSymbol[i] = i;\n\n var selectors = new Uint8Array(nSelectors); // was 32768...\n\n for (i = 0; i < nSelectors; i++) {\n /* Get next value */\n for (j = 0; reader.read(1); j++)\n if (j >= groupCount) _throw(Err.DATA_ERROR);\n /* Decode MTF to get the next selector */\n selectors[i] = mtf(mtfSymbol, j);\n }\n\n /* Read the huffman coding tables for each group, which code for symTotal\n literal symbols, plus two run symbols (RUNA, RUNB) */\n var symCount = symTotal + 2;\n var groups = [], hufGroup;\n for (j = 0; j < groupCount; j++) {\n var length = new Uint8Array(symCount), temp = new Uint16Array(MAX_HUFCODE_BITS + 1);\n /* Read huffman code lengths for each symbol. They're stored in\n a way similar to mtf; record a starting value for the first symbol,\n and an offset from the previous value for everys symbol after that. */\n t = reader.read(5); // lengths\n for (i = 0; i < symCount; i++) {\n for (;;) {\n if (t < 1 || t > MAX_HUFCODE_BITS) _throw(Err.DATA_ERROR);\n /* If first bit is 0, stop. Else second bit indicates whether\n to increment or decrement the value. */\n if(!reader.read(1))\n break;\n if(!reader.read(1))\n t++;\n else\n t--;\n }\n length[i] = t;\n }\n\n /* Find largest and smallest lengths in this group */\n var minLen, maxLen;\n minLen = maxLen = length[0];\n for (i = 1; i < symCount; i++) {\n if (length[i] > maxLen)\n maxLen = length[i];\n else if (length[i] < minLen)\n minLen = length[i];\n }\n\n /* Calculate permute[], base[], and limit[] tables from length[].\n *\n * permute[] is the lookup table for converting huffman coded symbols\n * into decoded symbols. base[] is the amount to subtract from the\n * value of a huffman symbol of a given length when using permute[].\n *\n * limit[] indicates the largest numerical value a symbol with a given\n * number of bits can have. This is how the huffman codes can vary in\n * length: each code with a value>limit[length] needs another bit.\n */\n hufGroup = {};\n groups.push(hufGroup);\n hufGroup.permute = new Uint16Array(MAX_SYMBOLS);\n hufGroup.limit = new Uint32Array(MAX_HUFCODE_BITS + 2);\n hufGroup.base = new Uint32Array(MAX_HUFCODE_BITS + 1);\n hufGroup.minLen = minLen;\n hufGroup.maxLen = maxLen;\n /* Calculate permute[]. Concurently, initialize temp[] and limit[]. */\n var pp = 0;\n for (i = minLen; i <= maxLen; i++) {\n temp[i] = hufGroup.limit[i] = 0;\n for (t = 0; t < symCount; t++)\n if (length[t] === i)\n hufGroup.permute[pp++] = t;\n }\n /* Count symbols coded for at each bit length */\n for (i = 0; i < symCount; i++)\n temp[length[i]]++;\n /* Calculate limit[] (the largest symbol-coding value at each bit\n * length, which is (previous limit<<1)+symbols at this level), and\n * base[] (number of symbols to ignore at each bit length, which is\n * limit minus the cumulative count of symbols coded for already). */\n pp = t = 0;\n for (i = minLen; i < maxLen; i++) {\n pp += temp[i];\n /* We read the largest possible symbol size and then unget bits\n after determining how many we need, and those extra bits could\n be set to anything. (They're noise from future symbols.) At\n each level we're really only interested in the first few bits,\n so here we set all the trailing to-be-ignored bits to 1 so they\n don't affect the value>limit[length] comparison. */\n hufGroup.limit[i] = pp - 1;\n pp <<= 1;\n t += temp[i];\n hufGroup.base[i + 1] = pp - t;\n }\n hufGroup.limit[maxLen + 1] = Number.MAX_VALUE; /* Sentinal value for reading next sym. */\n hufGroup.limit[maxLen] = pp + temp[maxLen] - 1;\n hufGroup.base[minLen] = 0;\n }\n /* We've finished reading and digesting the block header. Now read this\n block's huffman coded symbols from the file and undo the huffman coding\n and run length encoding, saving the result into dbuf[dbufCount++]=uc */\n\n /* Initialize symbol occurrence counters and symbol Move To Front table */\n var byteCount = new Uint32Array(256);\n for (i = 0; i < 256; i++)\n mtfSymbol[i] = i;\n /* Loop through compressed symbols. */\n var runPos = 0, dbufCount = 0, selector = 0, uc;\n var dbuf = this.dbuf = new Uint32Array(this.dbufSize);\n symCount = 0;\n for (;;) {\n /* Determine which huffman coding group to use. */\n if (!(symCount--)) {\n symCount = GROUP_SIZE - 1;\n if (selector >= nSelectors) { _throw(Err.DATA_ERROR); }\n hufGroup = groups[selectors[selector++]];\n }\n /* Read next huffman-coded symbol. */\n i = hufGroup.minLen;\n j = reader.read(i);\n for (;;i++) {\n if (i > hufGroup.maxLen) { _throw(Err.DATA_ERROR); }\n if (j <= hufGroup.limit[i])\n break;\n j = (j << 1) | reader.read(1);\n }\n /* Huffman decode value to get nextSym (with bounds checking) */\n j -= hufGroup.base[i];\n if (j < 0 || j >= MAX_SYMBOLS) { _throw(Err.DATA_ERROR); }\n var nextSym = hufGroup.permute[j];\n /* We have now decoded the symbol, which indicates either a new literal\n byte, or a repeated run of the most recent literal byte. First,\n check if nextSym indicates a repeated run, and if so loop collecting\n how many times to repeat the last literal. */\n if (nextSym === SYMBOL_RUNA || nextSym === SYMBOL_RUNB) {\n /* If this is the start of a new run, zero out counter */\n if (!runPos){\n runPos = 1;\n t = 0;\n }\n /* Neat trick that saves 1 symbol: instead of or-ing 0 or 1 at\n each bit position, add 1 or 2 instead. For example,\n 1011 is 1<<0 + 1<<1 + 2<<2. 1010 is 2<<0 + 2<<1 + 1<<2.\n You can make any bit pattern that way using 1 less symbol than\n the basic or 0/1 method (except all bits 0, which would use no\n symbols, but a run of length 0 doesn't mean anything in this\n context). Thus space is saved. */\n if (nextSym === SYMBOL_RUNA)\n t += runPos;\n else\n t += 2 * runPos;\n runPos <<= 1;\n continue;\n }\n /* When we hit the first non-run symbol after a run, we now know\n how many times to repeat the last literal, so append that many\n copies to our buffer of decoded symbols (dbuf) now. (The last\n literal used is the one at the head of the mtfSymbol array.) */\n if (runPos){\n runPos = 0;\n if (dbufCount + t > this.dbufSize) { _throw(Err.DATA_ERROR); }\n uc = symToByte[mtfSymbol[0]];\n byteCount[uc] += t;\n while (t--)\n dbuf[dbufCount++] = uc;\n }\n /* Is this the terminating symbol? */\n if (nextSym > symTotal)\n break;\n /* At this point, nextSym indicates a new literal character. Subtract\n one to get the position in the MTF array at which this literal is\n currently to be found. (Note that the result can't be -1 or 0,\n because 0 and 1 are RUNA and RUNB. But another instance of the\n first symbol in the mtf array, position 0, would have been handled\n as part of a run above. Therefore 1 unused mtf position minus\n 2 non-literal nextSym values equals -1.) */\n if (dbufCount >= this.dbufSize) { _throw(Err.DATA_ERROR); }\n i = nextSym - 1;\n uc = mtf(mtfSymbol, i);\n uc = symToByte[uc];\n /* We have our literal byte. Save it into dbuf. */\n byteCount[uc]++;\n dbuf[dbufCount++] = uc;\n }\n /* At this point, we've read all the huffman-coded symbols (and repeated\n runs) for this block from the input stream, and decoded them into the\n intermediate buffer. There are dbufCount many decoded bytes in dbuf[].\n Now undo the Burrows-Wheeler transform on dbuf.\n See http://dogma.net/markn/articles/bwt/bwt.htm\n */\n if (origPointer < 0 || origPointer >= dbufCount) { _throw(Err.DATA_ERROR); }\n /* Turn byteCount into cumulative occurrence counts of 0 to n-1. */\n j = 0;\n for (i = 0; i < 256; i++) {\n k = j + byteCount[i];\n byteCount[i] = j;\n j = k;\n }\n /* Figure out what order dbuf would be in if we sorted it. */\n for (i = 0; i < dbufCount; i++) {\n uc = dbuf[i] & 0xff;\n dbuf[byteCount[uc]] |= (i << 8);\n byteCount[uc]++;\n }\n /* Decode first byte by hand to initialize \"previous\" byte. Note that it\n doesn't get output, and if the first three characters are identical\n it doesn't qualify as a run (hence writeRunCountdown=5). */\n var pos = 0, current = 0, run = 0;\n if (dbufCount) {\n pos = dbuf[origPointer];\n current = (pos & 0xff);\n pos >>= 8;\n run = -1;\n }\n this.writePos = pos;\n this.writeCurrent = current;\n this.writeCount = dbufCount;\n this.writeRun = run;\n\n return true; /* more blocks to come */\n};\n/* Undo burrows-wheeler transform on intermediate buffer to produce output.\n If start_bunzip was initialized with out_fd=-1, then up to len bytes of\n data are written to outbuf. Return value is number of bytes written or\n error (all errors are negative numbers). If out_fd!=-1, outbuf and len\n are ignored, data is written to out_fd and return is RETVAL_OK or error.\n*/\nBunzip.prototype._read_bunzip = function(outputBuffer, len) {\n var copies, previous, outbyte;\n /* james@jamestaylor.org: writeCount goes to -1 when the buffer is fully\n decoded, which results in this returning RETVAL_LAST_BLOCK, also\n equal to -1... Confusing, I'm returning 0 here to indicate no\n bytes written into the buffer */\n if (this.writeCount < 0) { return 0; }\n\n var gotcount = 0;\n var dbuf = this.dbuf, pos = this.writePos, current = this.writeCurrent;\n var dbufCount = this.writeCount, outputsize = this.outputsize;\n var run = this.writeRun;\n\n while (dbufCount) {\n dbufCount--;\n previous = current;\n pos = dbuf[pos];\n current = pos & 0xff;\n pos >>= 8;\n if (run++ === 3){\n copies = current;\n outbyte = previous;\n current = -1;\n } else {\n copies = 1;\n outbyte = current;\n }\n this.blockCRC.updateCRCRun(outbyte, copies);\n while (copies--) {\n this.outputStream.writeByte(outbyte);\n this.nextoutput++;\n }\n if (current != previous)\n run = 0;\n }\n this.writeCount = dbufCount;\n // check CRC\n if (this.blockCRC.getCRC() !== this.targetBlockCRC) {\n _throw(Err.DATA_ERROR, \"Bad block CRC \"+\n \"(got \"+this.blockCRC.getCRC().toString(16)+\n \" expected \"+this.targetBlockCRC.toString(16)+\")\");\n }\n return this.nextoutput;\n};\n\nvar coerceInputStream = function(input) {\n if ('readByte' in input) { return input; }\n var inputStream = new Stream();\n inputStream.pos = 0;\n inputStream.readByte = function() { return input[this.pos++]; };\n inputStream.seek = function(pos) { this.pos = pos; };\n inputStream.eof = function() { return this.pos >= input.length; };\n return inputStream;\n};\nvar coerceOutputStream = function(output) {\n var outputStream = new Stream();\n var resizeOk = true;\n if (output) {\n if (typeof(output)==='number') {\n outputStream.buffer = new Uint8Array(output);\n resizeOk = false;\n } else if ('writeByte' in output) {\n return output;\n } else {\n outputStream.buffer = output;\n resizeOk = false;\n }\n } else {\n outputStream.buffer = new Uint8Array(16384);\n }\n outputStream.pos = 0;\n outputStream.writeByte = function(_byte) {\n if (resizeOk && this.pos >= this.buffer.length) {\n var newBuffer = new Uint8Array(this.buffer.length*2);\n newBuffer.set(this.buffer);\n this.buffer = newBuffer;\n }\n this.buffer[this.pos++] = _byte;\n };\n outputStream.getBuffer = function() {\n // trim buffer\n if (this.pos !== this.buffer.length) {\n if (!resizeOk)\n throw new TypeError('outputsize does not match decoded input');\n var newBuffer = new Uint8Array(this.pos);\n newBuffer.set(this.buffer.subarray(0, this.pos));\n this.buffer = newBuffer;\n }\n return this.buffer;\n };\n outputStream._coerced = true;\n return outputStream;\n};\n\n/* Static helper functions */\n// 'input' can be a stream or a buffer\n// 'output' can be a stream or a buffer or a number (buffer size)\nconst decode = function(input, output, multistream) {\n // make a stream from a buffer, if necessary\n var inputStream = coerceInputStream(input);\n var outputStream = coerceOutputStream(output);\n\n var bz = new Bunzip(inputStream, outputStream);\n while (true) {\n if ('eof' in inputStream && inputStream.eof()) break;\n if (bz._init_block()) {\n bz._read_bunzip();\n } else {\n var targetStreamCRC = bz.reader.read(32) >>> 0; // (convert to unsigned)\n if (targetStreamCRC !== bz.streamCRC) {\n _throw(Err.DATA_ERROR, \"Bad stream CRC \"+\n \"(got \"+bz.streamCRC.toString(16)+\n \" expected \"+targetStreamCRC.toString(16)+\")\");\n }\n if (multistream &&\n 'eof' in inputStream &&\n !inputStream.eof()) {\n // note that start_bunzip will also resync the bit reader to next byte\n bz._start_bunzip(inputStream, outputStream);\n } else break;\n }\n }\n if ('getBuffer' in outputStream)\n return outputStream.getBuffer();\n};\nconst decodeBlock = function(input, pos, output) {\n // make a stream from a buffer, if necessary\n var inputStream = coerceInputStream(input);\n var outputStream = coerceOutputStream(output);\n var bz = new Bunzip(inputStream, outputStream);\n bz.reader.seek(pos);\n /* Fill the decode buffer for the block */\n var moreBlocks = bz._get_next_block();\n if (moreBlocks) {\n /* Init the CRC for writing */\n bz.blockCRC = new CRC32();\n\n /* Zero this so the current byte from before the seek is not written */\n bz.writeCopies = 0;\n\n /* Decompress the block and write to stdout */\n bz._read_bunzip();\n // XXX keep writing?\n }\n if ('getBuffer' in outputStream)\n return outputStream.getBuffer();\n};\n/* Reads bzip2 file from stream or buffer `input`, and invoke\n * `callback(position, size)` once for each bzip2 block,\n * where position gives the starting position (in *bits*)\n * and size gives uncompressed size of the block (in *bytes*). */\nconst table = function(input, callback, multistream) {\n // make a stream from a buffer, if necessary\n var inputStream = new Stream();\n inputStream.delegate = coerceInputStream(input);\n inputStream.pos = 0;\n inputStream.readByte = function() {\n this.pos++;\n return this.delegate.readByte();\n };\n if (inputStream.delegate.eof) {\n inputStream.eof = inputStream.delegate.eof.bind(inputStream.delegate);\n }\n var outputStream = new Stream();\n outputStream.pos = 0;\n outputStream.writeByte = function() { this.pos++; };\n\n var bz = new Bunzip(inputStream, outputStream);\n var blockSize = bz.dbufSize;\n while (true) {\n if ('eof' in inputStream && inputStream.eof()) break;\n\n var position = inputStream.pos*8 + bz.reader.bitOffset;\n if (bz.reader.hasByte) { position -= 8; }\n\n if (bz._init_block()) {\n var start = outputStream.pos;\n bz._read_bunzip();\n callback(position, outputStream.pos - start);\n } else {\n var crc = bz.reader.read(32); // (but we ignore the crc)\n if (multistream &&\n 'eof' in inputStream &&\n !inputStream.eof()) {\n // note that start_bunzip will also resync the bit reader to next byte\n bz._start_bunzip(inputStream, outputStream);\n console.assert(bz.dbufSize === blockSize,\n \"shouldn't change block size within multistream file\");\n } else break;\n }\n }\n};\n\nmodule.exports = {\n Bunzip,\n Stream,\n Err,\n decode,\n decodeBlock,\n table\n};\n", "// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport enums from '../enums';\n\n/**\n * Implementation of the strange \"Marker packet\" (Tag 10)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.8|RFC4880 5.8}:\n * An experimental version of PGP used this packet as the Literal\n * packet, but no released version of PGP generated Literal packets with this\n * tag. With PGP 5.x, this packet has been reassigned and is reserved for use as\n * the Marker packet.\n *\n * The body of this packet consists of:\n * The three octets 0x50, 0x47, 0x50 (which spell \"PGP\" in UTF-8).\n *\n * Such a packet MUST be ignored when received. It may be placed at the\n * beginning of a message that uses features not available in PGP\n * version 2.6 in order to cause that version to report that newer\n * software is necessary to process the message.\n */\nclass MarkerPacket {\n static get tag() {\n return enums.packet.marker;\n }\n\n /**\n * Parsing function for a marker data packet (tag 10).\n * @param {Uint8Array} bytes - Payload of a tag 10 packet\n * @returns {Boolean} whether the packet payload contains \"PGP\"\n */\n read(bytes) {\n if (bytes[0] === 0x50 && // P\n bytes[1] === 0x47 && // G\n bytes[2] === 0x50) { // P\n return true;\n }\n return false;\n }\n\n write() {\n return new Uint8Array([0x50, 0x47, 0x50]);\n }\n}\n\nexport default MarkerPacket;\n", "// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2022 Proton AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\nimport crypto from '../crypto';\nimport enums from '../enums';\n\n/**\n * Implementation of the Padding Packet\n *\n * {@link https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#name-padding-packet-tag-21}:\n * Padding Packet\n */\nclass PaddingPacket {\n static get tag() {\n return enums.packet.padding;\n }\n\n constructor() {\n this.padding = null;\n }\n\n /**\n * Read a padding packet\n * @param {Uint8Array | ReadableStream} bytes\n */\n read(bytes) { // eslint-disable-line @typescript-eslint/no-unused-vars\n // Padding packets are ignored, so this function is never called.\n }\n\n /**\n * Write the padding packet\n * @returns {Uint8Array} The padding packet.\n */\n write() {\n return this.padding;\n }\n\n /**\n * Create random padding.\n * @param {Number} length - The length of padding to be generated.\n * @throws {Error} if padding generation was not successful\n * @async\n */\n async createPadding(length) {\n this.padding = await crypto.random.getRandomBytes(length);\n }\n}\n\nexport default PaddingPacket;\n", "import enums from '../enums';\nimport { UnsupportedError } from './packet';\n\n/**\n * Implementation of the Trust Packet (Tag 12)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.10|RFC4880 5.10}:\n * The Trust packet is used only within keyrings and is not normally\n * exported. Trust packets contain data that record the user's\n * specifications of which key holders are trustworthy introducers,\n * along with other information that implementing software uses for\n * trust information. The format of Trust packets is defined by a given\n * implementation.\n *\n * Trust packets SHOULD NOT be emitted to output streams that are\n * transferred to other users, and they SHOULD be ignored on any input\n * other than local keyring files.\n */\nclass TrustPacket {\n static get tag() {\n return enums.packet.trust;\n }\n\n /**\n * Parsing function for a trust packet (tag 12).\n * Currently not implemented as we ignore trust packets\n */\n read() {\n throw new UnsupportedError('Trust packets are not supported');\n }\n\n write() {\n throw new UnsupportedError('Trust packets are not supported');\n }\n}\n\nexport default TrustPacket;\n", "'use strict';\n\nexports.getBooleanOption = (options, key) => {\n\tlet value = false;\n\tif (key in options && typeof (value = options[key]) !== 'boolean') {\n\t\tthrow new TypeError(`Expected the \"${key}\" option to be a boolean`);\n\t}\n\treturn value;\n};\n\nexports.cppdb = Symbol();\nexports.inspect = Symbol.for('nodejs.util.inspect.custom');\n", "'use strict';\nconst descriptor = { value: 'SqliteError', writable: true, enumerable: false, configurable: true };\n\nfunction SqliteError(message, code) {\n\tif (new.target !== SqliteError) {\n\t\treturn new SqliteError(message, code);\n\t}\n\tif (typeof code !== 'string') {\n\t\tthrow new TypeError('Expected second argument to be a string');\n\t}\n\tError.call(this, message);\n\tdescriptor.value = '' + message;\n\tObject.defineProperty(this, 'message', descriptor);\n\tError.captureStackTrace(this, SqliteError);\n\tthis.code = code;\n}\nObject.setPrototypeOf(SqliteError, Error);\nObject.setPrototypeOf(SqliteError.prototype, Error.prototype);\nObject.defineProperty(SqliteError.prototype, 'name', descriptor);\nmodule.exports = SqliteError;\n", "\n/**\n * Module dependencies.\n */\n\nvar sep = require('path').sep || '/';\n\n/**\n * Module exports.\n */\n\nmodule.exports = fileUriToPath;\n\n/**\n * File URI to Path function.\n *\n * @param {String} uri\n * @return {String} path\n * @api public\n */\n\nfunction fileUriToPath (uri) {\n if ('string' != typeof uri ||\n uri.length <= 7 ||\n 'file://' != uri.substring(0, 7)) {\n throw new TypeError('must pass in a file:// URI to convert to a file path');\n }\n\n var rest = decodeURI(uri.substring(7));\n var firstSlash = rest.indexOf('/');\n var host = rest.substring(0, firstSlash);\n var path = rest.substring(firstSlash + 1);\n\n // 2. Scheme Definition\n // As a special case, can be the string \"localhost\" or the empty\n // string; this is interpreted as \"the machine from which the URL is\n // being interpreted\".\n if ('localhost' == host) host = '';\n\n if (host) {\n host = sep + sep + host;\n }\n\n // 3.2 Drives, drive letters, mount points, file system root\n // Drive letters are mapped into the top of a file URI in various ways,\n // depending on the implementation; some applications substitute\n // vertical bar (\"|\") for the colon after the drive letter, yielding\n // \"file:///c|/tmp/test.txt\". In some cases, the colon is left\n // unchanged, as in \"file:///c:/tmp/test.txt\". In other cases, the\n // colon is simply omitted, as in \"file:///c/tmp/test.txt\".\n path = path.replace(/^(.+)\\|/, '$1:');\n\n // for Windows, we need to invert the path separators from what a URI uses\n if (sep == '\\\\') {\n path = path.replace(/\\//g, '\\\\');\n }\n\n if (/^.+\\:/.test(path)) {\n // has Windows drive at beginning of path\n } else {\n // unix path\u2026\n path = sep + path;\n }\n\n return host + path;\n}\n", "/**\n * Module dependencies.\n */\n\nvar fs = require('fs'),\n path = require('path'),\n fileURLToPath = require('file-uri-to-path'),\n join = path.join,\n dirname = path.dirname,\n exists =\n (fs.accessSync &&\n function(path) {\n try {\n fs.accessSync(path);\n } catch (e) {\n return false;\n }\n return true;\n }) ||\n fs.existsSync ||\n path.existsSync,\n defaults = {\n arrow: process.env.NODE_BINDINGS_ARROW || ' \u2192 ',\n compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled',\n platform: process.platform,\n arch: process.arch,\n nodePreGyp:\n 'node-v' +\n process.versions.modules +\n '-' +\n process.platform +\n '-' +\n process.arch,\n version: process.versions.node,\n bindings: 'bindings.node',\n try: [\n // node-gyp's linked version in the \"build\" dir\n ['module_root', 'build', 'bindings'],\n // node-waf and gyp_addon (a.k.a node-gyp)\n ['module_root', 'build', 'Debug', 'bindings'],\n ['module_root', 'build', 'Release', 'bindings'],\n // Debug files, for development (legacy behavior, remove for node v0.9)\n ['module_root', 'out', 'Debug', 'bindings'],\n ['module_root', 'Debug', 'bindings'],\n // Release files, but manually compiled (legacy behavior, remove for node v0.9)\n ['module_root', 'out', 'Release', 'bindings'],\n ['module_root', 'Release', 'bindings'],\n // Legacy from node-waf, node <= 0.4.x\n ['module_root', 'build', 'default', 'bindings'],\n // Production \"Release\" buildtype binary (meh...)\n ['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'],\n // node-qbs builds\n ['module_root', 'addon-build', 'release', 'install-root', 'bindings'],\n ['module_root', 'addon-build', 'debug', 'install-root', 'bindings'],\n ['module_root', 'addon-build', 'default', 'install-root', 'bindings'],\n // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}\n ['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings']\n ]\n };\n\n/**\n * The main `bindings()` function loads the compiled bindings for a given module.\n * It uses V8's Error API to determine the parent filename that this function is\n * being invoked from, which is then used to find the root directory.\n */\n\nfunction bindings(opts) {\n // Argument surgery\n if (typeof opts == 'string') {\n opts = { bindings: opts };\n } else if (!opts) {\n opts = {};\n }\n\n // maps `defaults` onto `opts` object\n Object.keys(defaults).map(function(i) {\n if (!(i in opts)) opts[i] = defaults[i];\n });\n\n // Get the module root\n if (!opts.module_root) {\n opts.module_root = exports.getRoot(exports.getFileName());\n }\n\n // Ensure the given bindings name ends with .node\n if (path.extname(opts.bindings) != '.node') {\n opts.bindings += '.node';\n }\n\n // https://github.com/webpack/webpack/issues/4175#issuecomment-342931035\n var requireFunc =\n typeof __webpack_require__ === 'function'\n ? __non_webpack_require__\n : require;\n\n var tries = [],\n i = 0,\n l = opts.try.length,\n n,\n b,\n err;\n\n for (; i < l; i++) {\n n = join.apply(\n null,\n opts.try[i].map(function(p) {\n return opts[p] || p;\n })\n );\n tries.push(n);\n try {\n b = opts.path ? requireFunc.resolve(n) : requireFunc(n);\n if (!opts.path) {\n b.path = n;\n }\n return b;\n } catch (e) {\n if (e.code !== 'MODULE_NOT_FOUND' &&\n e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' &&\n !/not find/i.test(e.message)) {\n throw e;\n }\n }\n }\n\n err = new Error(\n 'Could not locate the bindings file. Tried:\\n' +\n tries\n .map(function(a) {\n return opts.arrow + a;\n })\n .join('\\n')\n );\n err.tries = tries;\n throw err;\n}\nmodule.exports = exports = bindings;\n\n/**\n * Gets the filename of the JavaScript file that invokes this function.\n * Used to help find the root directory of a module.\n * Optionally accepts an filename argument to skip when searching for the invoking filename\n */\n\nexports.getFileName = function getFileName(calling_file) {\n var origPST = Error.prepareStackTrace,\n origSTL = Error.stackTraceLimit,\n dummy = {},\n fileName;\n\n Error.stackTraceLimit = 10;\n\n Error.prepareStackTrace = function(e, st) {\n for (var i = 0, l = st.length; i < l; i++) {\n fileName = st[i].getFileName();\n if (fileName !== __filename) {\n if (calling_file) {\n if (fileName !== calling_file) {\n return;\n }\n } else {\n return;\n }\n }\n }\n };\n\n // run the 'prepareStackTrace' function above\n Error.captureStackTrace(dummy);\n dummy.stack;\n\n // cleanup\n Error.prepareStackTrace = origPST;\n Error.stackTraceLimit = origSTL;\n\n // handle filename that starts with \"file://\"\n var fileSchema = 'file://';\n if (fileName.indexOf(fileSchema) === 0) {\n fileName = fileURLToPath(fileName);\n }\n\n return fileName;\n};\n\n/**\n * Gets the root directory of a module, given an arbitrary filename\n * somewhere in the module tree. The \"root directory\" is the directory\n * containing the `package.json` file.\n *\n * In: /home/nate/node-native-module/lib/index.js\n * Out: /home/nate/node-native-module\n */\n\nexports.getRoot = function getRoot(file) {\n var dir = dirname(file),\n prev;\n while (true) {\n if (dir === '.') {\n // Avoids an infinite loop in rare cases, like the REPL\n dir = process.cwd();\n }\n if (\n exists(join(dir, 'package.json')) ||\n exists(join(dir, 'node_modules'))\n ) {\n // Found the 'package.json' file or 'node_modules' dir; we're done\n return dir;\n }\n if (prev === dir) {\n // Got to the top\n throw new Error(\n 'Could not find module root given file: \"' +\n file +\n '\". Do you have a `package.json` file? '\n );\n }\n // Try the parent dir next\n prev = dir;\n dir = join(dir, '..');\n }\n};\n", "'use strict';\nconst { cppdb } = require('../util');\n\nexports.prepare = function prepare(sql) {\n\treturn this[cppdb].prepare(sql, this, false);\n};\n\nexports.exec = function exec(sql) {\n\tthis[cppdb].exec(sql);\n\treturn this;\n};\n\nexports.close = function close() {\n\tthis[cppdb].close();\n\treturn this;\n};\n\nexports.loadExtension = function loadExtension(...args) {\n\tthis[cppdb].loadExtension(...args);\n\treturn this;\n};\n\nexports.defaultSafeIntegers = function defaultSafeIntegers(...args) {\n\tthis[cppdb].defaultSafeIntegers(...args);\n\treturn this;\n};\n\nexports.unsafeMode = function unsafeMode(...args) {\n\tthis[cppdb].unsafeMode(...args);\n\treturn this;\n};\n\nexports.getters = {\n\tname: {\n\t\tget: function name() { return this[cppdb].name; },\n\t\tenumerable: true,\n\t},\n\topen: {\n\t\tget: function open() { return this[cppdb].open; },\n\t\tenumerable: true,\n\t},\n\tinTransaction: {\n\t\tget: function inTransaction() { return this[cppdb].inTransaction; },\n\t\tenumerable: true,\n\t},\n\treadonly: {\n\t\tget: function readonly() { return this[cppdb].readonly; },\n\t\tenumerable: true,\n\t},\n\tmemory: {\n\t\tget: function memory() { return this[cppdb].memory; },\n\t\tenumerable: true,\n\t},\n};\n", "'use strict';\nconst { cppdb } = require('../util');\nconst controllers = new WeakMap();\n\nmodule.exports = function transaction(fn) {\n\tif (typeof fn !== 'function') throw new TypeError('Expected first argument to be a function');\n\n\tconst db = this[cppdb];\n\tconst controller = getController(db, this);\n\tconst { apply } = Function.prototype;\n\n\t// Each version of the transaction function has these same properties\n\tconst properties = {\n\t\tdefault: { value: wrapTransaction(apply, fn, db, controller.default) },\n\t\tdeferred: { value: wrapTransaction(apply, fn, db, controller.deferred) },\n\t\timmediate: { value: wrapTransaction(apply, fn, db, controller.immediate) },\n\t\texclusive: { value: wrapTransaction(apply, fn, db, controller.exclusive) },\n\t\tdatabase: { value: this, enumerable: true },\n\t};\n\n\tObject.defineProperties(properties.default.value, properties);\n\tObject.defineProperties(properties.deferred.value, properties);\n\tObject.defineProperties(properties.immediate.value, properties);\n\tObject.defineProperties(properties.exclusive.value, properties);\n\n\t// Return the default version of the transaction function\n\treturn properties.default.value;\n};\n\n// Return the database's cached transaction controller, or create a new one\nconst getController = (db, self) => {\n\tlet controller = controllers.get(db);\n\tif (!controller) {\n\t\tconst shared = {\n\t\t\tcommit: db.prepare('COMMIT', self, false),\n\t\t\trollback: db.prepare('ROLLBACK', self, false),\n\t\t\tsavepoint: db.prepare('SAVEPOINT `\\t_bs3.\\t`', self, false),\n\t\t\trelease: db.prepare('RELEASE `\\t_bs3.\\t`', self, false),\n\t\t\trollbackTo: db.prepare('ROLLBACK TO `\\t_bs3.\\t`', self, false),\n\t\t};\n\t\tcontrollers.set(db, controller = {\n\t\t\tdefault: Object.assign({ begin: db.prepare('BEGIN', self, false) }, shared),\n\t\t\tdeferred: Object.assign({ begin: db.prepare('BEGIN DEFERRED', self, false) }, shared),\n\t\t\timmediate: Object.assign({ begin: db.prepare('BEGIN IMMEDIATE', self, false) }, shared),\n\t\t\texclusive: Object.assign({ begin: db.prepare('BEGIN EXCLUSIVE', self, false) }, shared),\n\t\t});\n\t}\n\treturn controller;\n};\n\n// Return a new transaction function by wrapping the given function\nconst wrapTransaction = (apply, fn, db, { begin, commit, rollback, savepoint, release, rollbackTo }) => function sqliteTransaction() {\n\tlet before, after, undo;\n\tif (db.inTransaction) {\n\t\tbefore = savepoint;\n\t\tafter = release;\n\t\tundo = rollbackTo;\n\t} else {\n\t\tbefore = begin;\n\t\tafter = commit;\n\t\tundo = rollback;\n\t}\n\tbefore.run();\n\ttry {\n\t\tconst result = apply.call(fn, this, arguments);\n\t\tafter.run();\n\t\treturn result;\n\t} catch (ex) {\n\t\tif (db.inTransaction) {\n\t\t\tundo.run();\n\t\t\tif (undo !== rollback) after.run();\n\t\t}\n\t\tthrow ex;\n\t}\n};\n", "'use strict';\nconst { getBooleanOption, cppdb } = require('../util');\n\nmodule.exports = function pragma(source, options) {\n\tif (options == null) options = {};\n\tif (typeof source !== 'string') throw new TypeError('Expected first argument to be a string');\n\tif (typeof options !== 'object') throw new TypeError('Expected second argument to be an options object');\n\tconst simple = getBooleanOption(options, 'simple');\n\n\tconst stmt = this[cppdb].prepare(`PRAGMA ${source}`, this, true);\n\treturn simple ? stmt.pluck().get() : stmt.all();\n};\n", "'use strict';\nconst fs = require('fs');\nconst path = require('path');\nconst { promisify } = require('util');\nconst { cppdb } = require('../util');\nconst fsAccess = promisify(fs.access);\n\nmodule.exports = async function backup(filename, options) {\n\tif (options == null) options = {};\n\n\t// Validate arguments\n\tif (typeof filename !== 'string') throw new TypeError('Expected first argument to be a string');\n\tif (typeof options !== 'object') throw new TypeError('Expected second argument to be an options object');\n\n\t// Interpret options\n\tfilename = filename.trim();\n\tconst attachedName = 'attached' in options ? options.attached : 'main';\n\tconst handler = 'progress' in options ? options.progress : null;\n\n\t// Validate interpreted options\n\tif (!filename) throw new TypeError('Backup filename cannot be an empty string');\n\tif (filename === ':memory:') throw new TypeError('Invalid backup filename \":memory:\"');\n\tif (typeof attachedName !== 'string') throw new TypeError('Expected the \"attached\" option to be a string');\n\tif (!attachedName) throw new TypeError('The \"attached\" option cannot be an empty string');\n\tif (handler != null && typeof handler !== 'function') throw new TypeError('Expected the \"progress\" option to be a function');\n\n\t// Make sure the specified directory exists\n\tawait fsAccess(path.dirname(filename)).catch(() => {\n\t\tthrow new TypeError('Cannot save backup because the directory does not exist');\n\t});\n\n\tconst isNewFile = await fsAccess(filename).then(() => false, () => true);\n\treturn runBackup(this[cppdb].backup(this, attachedName, filename, isNewFile), handler || null);\n};\n\nconst runBackup = (backup, handler) => {\n\tlet rate = 0;\n\tlet useDefault = true;\n\n\treturn new Promise((resolve, reject) => {\n\t\tsetImmediate(function step() {\n\t\t\ttry {\n\t\t\t\tconst progress = backup.transfer(rate);\n\t\t\t\tif (!progress.remainingPages) {\n\t\t\t\t\tbackup.close();\n\t\t\t\t\tresolve(progress);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (useDefault) {\n\t\t\t\t\tuseDefault = false;\n\t\t\t\t\trate = 100;\n\t\t\t\t}\n\t\t\t\tif (handler) {\n\t\t\t\t\tconst ret = handler(progress);\n\t\t\t\t\tif (ret !== undefined) {\n\t\t\t\t\t\tif (typeof ret === 'number' && ret === ret) rate = Math.max(0, Math.min(0x7fffffff, Math.round(ret)));\n\t\t\t\t\t\telse throw new TypeError('Expected progress callback to return a number or undefined');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetImmediate(step);\n\t\t\t} catch (err) {\n\t\t\t\tbackup.close();\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t});\n};\n", "'use strict';\nconst { cppdb } = require('../util');\n\nmodule.exports = function serialize(options) {\n\tif (options == null) options = {};\n\n\t// Validate arguments\n\tif (typeof options !== 'object') throw new TypeError('Expected first argument to be an options object');\n\n\t// Interpret and validate options\n\tconst attachedName = 'attached' in options ? options.attached : 'main';\n\tif (typeof attachedName !== 'string') throw new TypeError('Expected the \"attached\" option to be a string');\n\tif (!attachedName) throw new TypeError('The \"attached\" option cannot be an empty string');\n\n\treturn this[cppdb].serialize(attachedName);\n};\n", "'use strict';\nconst { getBooleanOption, cppdb } = require('../util');\n\nmodule.exports = function defineFunction(name, options, fn) {\n\t// Apply defaults\n\tif (options == null) options = {};\n\tif (typeof options === 'function') { fn = options; options = {}; }\n\n\t// Validate arguments\n\tif (typeof name !== 'string') throw new TypeError('Expected first argument to be a string');\n\tif (typeof fn !== 'function') throw new TypeError('Expected last argument to be a function');\n\tif (typeof options !== 'object') throw new TypeError('Expected second argument to be an options object');\n\tif (!name) throw new TypeError('User-defined function name cannot be an empty string');\n\n\t// Interpret options\n\tconst safeIntegers = 'safeIntegers' in options ? +getBooleanOption(options, 'safeIntegers') : 2;\n\tconst deterministic = getBooleanOption(options, 'deterministic');\n\tconst directOnly = getBooleanOption(options, 'directOnly');\n\tconst varargs = getBooleanOption(options, 'varargs');\n\tlet argCount = -1;\n\n\t// Determine argument count\n\tif (!varargs) {\n\t\targCount = fn.length;\n\t\tif (!Number.isInteger(argCount) || argCount < 0) throw new TypeError('Expected function.length to be a positive integer');\n\t\tif (argCount > 100) throw new RangeError('User-defined functions cannot have more than 100 arguments');\n\t}\n\n\tthis[cppdb].function(fn, name, argCount, safeIntegers, deterministic, directOnly);\n\treturn this;\n};\n", "'use strict';\nconst { getBooleanOption, cppdb } = require('../util');\n\nmodule.exports = function defineAggregate(name, options) {\n\t// Validate arguments\n\tif (typeof name !== 'string') throw new TypeError('Expected first argument to be a string');\n\tif (typeof options !== 'object' || options === null) throw new TypeError('Expected second argument to be an options object');\n\tif (!name) throw new TypeError('User-defined function name cannot be an empty string');\n\n\t// Interpret options\n\tconst start = 'start' in options ? options.start : null;\n\tconst step = getFunctionOption(options, 'step', true);\n\tconst inverse = getFunctionOption(options, 'inverse', false);\n\tconst result = getFunctionOption(options, 'result', false);\n\tconst safeIntegers = 'safeIntegers' in options ? +getBooleanOption(options, 'safeIntegers') : 2;\n\tconst deterministic = getBooleanOption(options, 'deterministic');\n\tconst directOnly = getBooleanOption(options, 'directOnly');\n\tconst varargs = getBooleanOption(options, 'varargs');\n\tlet argCount = -1;\n\n\t// Determine argument count\n\tif (!varargs) {\n\t\targCount = Math.max(getLength(step), inverse ? getLength(inverse) : 0);\n\t\tif (argCount > 0) argCount -= 1;\n\t\tif (argCount > 100) throw new RangeError('User-defined functions cannot have more than 100 arguments');\n\t}\n\n\tthis[cppdb].aggregate(start, step, inverse, result, name, argCount, safeIntegers, deterministic, directOnly);\n\treturn this;\n};\n\nconst getFunctionOption = (options, key, required) => {\n\tconst value = key in options ? options[key] : null;\n\tif (typeof value === 'function') return value;\n\tif (value != null) throw new TypeError(`Expected the \"${key}\" option to be a function`);\n\tif (required) throw new TypeError(`Missing required option \"${key}\"`);\n\treturn null;\n};\n\nconst getLength = ({ length }) => {\n\tif (Number.isInteger(length) && length >= 0) return length;\n\tthrow new TypeError('Expected function.length to be a positive integer');\n};\n", "'use strict';\nconst { cppdb } = require('../util');\n\nmodule.exports = function defineTable(name, factory) {\n\t// Validate arguments\n\tif (typeof name !== 'string') throw new TypeError('Expected first argument to be a string');\n\tif (!name) throw new TypeError('Virtual table module name cannot be an empty string');\n\n\t// Determine whether the module is eponymous-only or not\n\tlet eponymous = false;\n\tif (typeof factory === 'object' && factory !== null) {\n\t\teponymous = true;\n\t\tfactory = defer(parseTableDefinition(factory, 'used', name));\n\t} else {\n\t\tif (typeof factory !== 'function') throw new TypeError('Expected second argument to be a function or a table definition object');\n\t\tfactory = wrapFactory(factory);\n\t}\n\n\tthis[cppdb].table(factory, name, eponymous);\n\treturn this;\n};\n\nfunction wrapFactory(factory) {\n\treturn function virtualTableFactory(moduleName, databaseName, tableName, ...args) {\n\t\tconst thisObject = {\n\t\t\tmodule: moduleName,\n\t\t\tdatabase: databaseName,\n\t\t\ttable: tableName,\n\t\t};\n\n\t\t// Generate a new table definition by invoking the factory\n\t\tconst def = apply.call(factory, thisObject, args);\n\t\tif (typeof def !== 'object' || def === null) {\n\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" did not return a table definition object`);\n\t\t}\n\n\t\treturn parseTableDefinition(def, 'returned', moduleName);\n\t};\n}\n\nfunction parseTableDefinition(def, verb, moduleName) {\n\t// Validate required properties\n\tif (!hasOwnProperty.call(def, 'rows')) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition without a \"rows\" property`);\n\t}\n\tif (!hasOwnProperty.call(def, 'columns')) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition without a \"columns\" property`);\n\t}\n\n\t// Validate \"rows\" property\n\tconst rows = def.rows;\n\tif (typeof rows !== 'function' || Object.getPrototypeOf(rows) !== GeneratorFunctionPrototype) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with an invalid \"rows\" property (should be a generator function)`);\n\t}\n\n\t// Validate \"columns\" property\n\tlet columns = def.columns;\n\tif (!Array.isArray(columns) || !(columns = [...columns]).every(x => typeof x === 'string')) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with an invalid \"columns\" property (should be an array of strings)`);\n\t}\n\tif (columns.length !== new Set(columns).size) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with duplicate column names`);\n\t}\n\tif (!columns.length) {\n\t\tthrow new RangeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with zero columns`);\n\t}\n\n\t// Validate \"parameters\" property\n\tlet parameters;\n\tif (hasOwnProperty.call(def, 'parameters')) {\n\t\tparameters = def.parameters;\n\t\tif (!Array.isArray(parameters) || !(parameters = [...parameters]).every(x => typeof x === 'string')) {\n\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with an invalid \"parameters\" property (should be an array of strings)`);\n\t\t}\n\t} else {\n\t\tparameters = inferParameters(rows);\n\t}\n\tif (parameters.length !== new Set(parameters).size) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with duplicate parameter names`);\n\t}\n\tif (parameters.length > 32) {\n\t\tthrow new RangeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with more than the maximum number of 32 parameters`);\n\t}\n\tfor (const parameter of parameters) {\n\t\tif (columns.includes(parameter)) {\n\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with column \"${parameter}\" which was ambiguously defined as both a column and parameter`);\n\t\t}\n\t}\n\n\t// Validate \"safeIntegers\" option\n\tlet safeIntegers = 2;\n\tif (hasOwnProperty.call(def, 'safeIntegers')) {\n\t\tconst bool = def.safeIntegers;\n\t\tif (typeof bool !== 'boolean') {\n\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with an invalid \"safeIntegers\" property (should be a boolean)`);\n\t\t}\n\t\tsafeIntegers = +bool;\n\t}\n\n\t// Validate \"directOnly\" option\n\tlet directOnly = false;\n\tif (hasOwnProperty.call(def, 'directOnly')) {\n\t\tdirectOnly = def.directOnly;\n\t\tif (typeof directOnly !== 'boolean') {\n\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" ${verb} a table definition with an invalid \"directOnly\" property (should be a boolean)`);\n\t\t}\n\t}\n\n\t// Generate SQL for the virtual table definition\n\tconst columnDefinitions = [\n\t\t...parameters.map(identifier).map(str => `${str} HIDDEN`),\n\t\t...columns.map(identifier),\n\t];\n\treturn [\n\t\t`CREATE TABLE x(${columnDefinitions.join(', ')});`,\n\t\twrapGenerator(rows, new Map(columns.map((x, i) => [x, parameters.length + i])), moduleName),\n\t\tparameters,\n\t\tsafeIntegers,\n\t\tdirectOnly,\n\t];\n}\n\nfunction wrapGenerator(generator, columnMap, moduleName) {\n\treturn function* virtualTable(...args) {\n\t\t/*\n\t\t\tWe must defensively clone any buffers in the arguments, because\n\t\t\totherwise the generator could mutate one of them, which would cause\n\t\t\tus to return incorrect values for hidden columns, potentially\n\t\t\tcorrupting the database.\n\t\t */\n\t\tconst output = args.map(x => Buffer.isBuffer(x) ? Buffer.from(x) : x);\n\t\tfor (let i = 0; i < columnMap.size; ++i) {\n\t\t\toutput.push(null); // Fill with nulls to prevent gaps in array (v8 optimization)\n\t\t}\n\t\tfor (const row of generator(...args)) {\n\t\t\tif (Array.isArray(row)) {\n\t\t\t\textractRowArray(row, output, columnMap.size, moduleName);\n\t\t\t\tyield output;\n\t\t\t} else if (typeof row === 'object' && row !== null) {\n\t\t\t\textractRowObject(row, output, columnMap, moduleName);\n\t\t\t\tyield output;\n\t\t\t} else {\n\t\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" yielded something that isn't a valid row object`);\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction extractRowArray(row, output, columnCount, moduleName) {\n\tif (row.length !== columnCount) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" yielded a row with an incorrect number of columns`);\n\t}\n\tconst offset = output.length - columnCount;\n\tfor (let i = 0; i < columnCount; ++i) {\n\t\toutput[i + offset] = row[i];\n\t}\n}\n\nfunction extractRowObject(row, output, columnMap, moduleName) {\n\tlet count = 0;\n\tfor (const key of Object.keys(row)) {\n\t\tconst index = columnMap.get(key);\n\t\tif (index === undefined) {\n\t\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" yielded a row with an undeclared column \"${key}\"`);\n\t\t}\n\t\toutput[index] = row[key];\n\t\tcount += 1;\n\t}\n\tif (count !== columnMap.size) {\n\t\tthrow new TypeError(`Virtual table module \"${moduleName}\" yielded a row with missing columns`);\n\t}\n}\n\nfunction inferParameters({ length }) {\n\tif (!Number.isInteger(length) || length < 0) {\n\t\tthrow new TypeError('Expected function.length to be a positive integer');\n\t}\n\tconst params = [];\n\tfor (let i = 0; i < length; ++i) {\n\t\tparams.push(`$${i + 1}`);\n\t}\n\treturn params;\n}\n\nconst { hasOwnProperty } = Object.prototype;\nconst { apply } = Function.prototype;\nconst GeneratorFunctionPrototype = Object.getPrototypeOf(function*(){});\nconst identifier = str => `\"${str.replace(/\"/g, '\"\"')}\"`;\nconst defer = x => () => x;\n", "'use strict';\nconst DatabaseInspection = function Database() {};\n\nmodule.exports = function inspect(depth, opts) {\n\treturn Object.assign(new DatabaseInspection(), this);\n};\n\n", "'use strict';\nconst fs = require('fs');\nconst path = require('path');\nconst util = require('./util');\nconst SqliteError = require('./sqlite-error');\n\nlet DEFAULT_ADDON;\n\nfunction Database(filenameGiven, options) {\n\tif (new.target == null) {\n\t\treturn new Database(filenameGiven, options);\n\t}\n\n\t// Apply defaults\n\tlet buffer;\n\tif (Buffer.isBuffer(filenameGiven)) {\n\t\tbuffer = filenameGiven;\n\t\tfilenameGiven = ':memory:';\n\t}\n\tif (filenameGiven == null) filenameGiven = '';\n\tif (options == null) options = {};\n\n\t// Validate arguments\n\tif (typeof filenameGiven !== 'string') throw new TypeError('Expected first argument to be a string');\n\tif (typeof options !== 'object') throw new TypeError('Expected second argument to be an options object');\n\tif ('readOnly' in options) throw new TypeError('Misspelled option \"readOnly\" should be \"readonly\"');\n\tif ('memory' in options) throw new TypeError('Option \"memory\" was removed in v7.0.0 (use \":memory:\" filename instead)');\n\n\t// Interpret options\n\tconst filename = filenameGiven.trim();\n\tconst anonymous = filename === '' || filename === ':memory:';\n\tconst readonly = util.getBooleanOption(options, 'readonly');\n\tconst fileMustExist = util.getBooleanOption(options, 'fileMustExist');\n\tconst timeout = 'timeout' in options ? options.timeout : 5000;\n\tconst verbose = 'verbose' in options ? options.verbose : null;\n\tconst nativeBinding = 'nativeBinding' in options ? options.nativeBinding : null;\n\n\t// Validate interpreted options\n\tif (readonly && anonymous && !buffer) throw new TypeError('In-memory/temporary databases cannot be readonly');\n\tif (!Number.isInteger(timeout) || timeout < 0) throw new TypeError('Expected the \"timeout\" option to be a positive integer');\n\tif (timeout > 0x7fffffff) throw new RangeError('Option \"timeout\" cannot be greater than 2147483647');\n\tif (verbose != null && typeof verbose !== 'function') throw new TypeError('Expected the \"verbose\" option to be a function');\n\tif (nativeBinding != null && typeof nativeBinding !== 'string' && typeof nativeBinding !== 'object') throw new TypeError('Expected the \"nativeBinding\" option to be a string or addon object');\n\n\t// Load the native addon\n\tlet addon;\n\tif (nativeBinding == null) {\n\t\taddon = DEFAULT_ADDON || (DEFAULT_ADDON = require('bindings')('better_sqlite3.node'));\n\t} else if (typeof nativeBinding === 'string') {\n\t\t// See \n\t\tconst requireFunc = typeof __non_webpack_require__ === 'function' ? __non_webpack_require__ : require;\n\t\taddon = requireFunc(path.resolve(nativeBinding).replace(/(\\.node)?$/, '.node'));\n\t} else {\n\t\t// See \n\t\taddon = nativeBinding;\n\t}\n\n\tif (!addon.isInitialized) {\n\t\taddon.setErrorConstructor(SqliteError);\n\t\taddon.isInitialized = true;\n\t}\n\n\t// Make sure the specified directory exists\n\tif (!anonymous && !fs.existsSync(path.dirname(filename))) {\n\t\tthrow new TypeError('Cannot open database because the directory does not exist');\n\t}\n\n\tObject.defineProperties(this, {\n\t\t[util.cppdb]: { value: new addon.Database(filename, filenameGiven, anonymous, readonly, fileMustExist, timeout, verbose || null, buffer || null) },\n\t\t...wrappers.getters,\n\t});\n}\n\nconst wrappers = require('./methods/wrappers');\nDatabase.prototype.prepare = wrappers.prepare;\nDatabase.prototype.transaction = require('./methods/transaction');\nDatabase.prototype.pragma = require('./methods/pragma');\nDatabase.prototype.backup = require('./methods/backup');\nDatabase.prototype.serialize = require('./methods/serialize');\nDatabase.prototype.function = require('./methods/function');\nDatabase.prototype.aggregate = require('./methods/aggregate');\nDatabase.prototype.table = require('./methods/table');\nDatabase.prototype.loadExtension = wrappers.loadExtension;\nDatabase.prototype.exec = wrappers.exec;\nDatabase.prototype.close = wrappers.close;\nDatabase.prototype.defaultSafeIntegers = wrappers.defaultSafeIntegers;\nDatabase.prototype.unsafeMode = wrappers.unsafeMode;\nDatabase.prototype[util.inspect] = require('./methods/inspect');\n\nmodule.exports = Database;\n", "'use strict';\nmodule.exports = require('./database');\nmodule.exports.SqliteError = require('./sqlite-error');\n", "/* eslint-disable @typescript-eslint/no-require-imports */\n// we need `require` for dynamic runtime imports\n// https://stackoverflow.com/a/46745166/10109857\n\n/**\n * returns renovates package.json\n */\nconst path = (() => require('path'))();\n// need to use dynamic strings so that typescript does not include package.json in dist folder after compilation\nconst filePath = path.join(__dirname, '..', 'package.json');\nconst pkg = (() => require(filePath))();\n\n/**\n * return's re2\n * @returns {RegExpConstructor}\n */\nfunction re2() {\n return require('re2');\n}\n\n/**\n * return's prettier\n * @returns {typeof import('prettier')}\n */\nfunction prettier() {\n return require('prettier');\n}\n\n/**\n * return's openpgp\n * @returns {typeof import('openpgp')}\n */\nfunction openpgp() {\n return require('openpgp');\n}\n\n/**\n * return's sqlite\n * @returns {typeof import('better-sqlite3')}\n */\nfunction sqlite() {\n return require('better-sqlite3');\n}\n\nmodule.exports = {\n re2,\n pkg,\n openpgp,\n prettier,\n sqlite,\n};\n", "import is from '@sindresorhus/is';\nimport { CONFIG_VALIDATION } from '../constants/error-messages';\nimport { re2 } from '../expose.cjs';\n\nconst cache = new Map();\n\ntype RegExpEngineStatus =\n | { type: 'available' }\n | {\n type: 'unavailable';\n err: Error;\n }\n | { type: 'ignored' };\n\nlet status: RegExpEngineStatus;\nlet RegEx: RegExpConstructor = RegExp;\n// istanbul ignore next\nif (process.env.RENOVATE_X_IGNORE_RE2) {\n status = { type: 'ignored' };\n} else {\n try {\n const RE2 = re2();\n // Test if native is working\n new RE2('.*').exec('test');\n RegEx = RE2;\n status = { type: 'available' };\n } catch (err) {\n status = { type: 'unavailable', err };\n }\n}\n\nexport const regexEngineStatus = status;\n\nexport function regEx(\n pattern: string | RegExp,\n flags?: string,\n useCache = true,\n): RegExp {\n let canBeCached = useCache;\n if (canBeCached && flags?.includes('g')) {\n canBeCached = false;\n }\n if (canBeCached && is.regExp(pattern) && pattern.flags.includes('g')) {\n canBeCached = false;\n }\n\n const key = flags ? `${pattern.toString()}:${flags}` : pattern.toString();\n if (canBeCached) {\n const cachedResult = cache.get(key);\n if (cachedResult) {\n return cachedResult;\n }\n }\n\n try {\n const instance = flags ? new RegEx(pattern, flags) : new RegEx(pattern);\n if (canBeCached) {\n cache.set(key, instance);\n }\n return instance;\n } catch (err) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationMessage = err.message;\n error.validationSource = pattern.toString();\n error.validationError = `Invalid regular expression (re2): ${pattern.toString()}`;\n throw error;\n }\n}\n\nexport function escapeRegExp(input: string): string {\n return input.replace(regEx(/[.*+\\-?^${}()|[\\]\\\\]/g), '\\\\$&'); // $& means the whole matched string\n}\n\nexport const newlineRegex = regEx(/\\r?\\n/);\n", "// Return true if the match string is found at index in content\nexport function matchAt(\n content: string,\n index: number,\n match: string,\n): boolean {\n return content.substring(index, index + match.length) === match;\n}\n\n// Replace oldString with newString at location index of content\nexport function replaceAt(\n content: string,\n index: number,\n oldString: string,\n newString: string,\n): string {\n return (\n content.substring(0, index) +\n newString +\n content.substring(index + oldString.length)\n );\n}\n\n/**\n * Converts from utf-8 string to base64-encoded string\n */\nexport function toBase64(input: string): string {\n return Buffer.from(input).toString('base64');\n}\n\n/**\n * Converts from base64-encoded string to utf-8 string\n */\nexport function fromBase64(input: string): string {\n return Buffer.from(input, 'base64').toString();\n}\n\nexport function uniqueStrings(\n element: string,\n index: number,\n elements: string[],\n): boolean {\n return elements.indexOf(element) === index;\n}\n\nexport function looseEquals(\n a: string | null | undefined,\n b: string | null | undefined,\n): boolean {\n if (!(a && b)) {\n return a === b;\n }\n return a.localeCompare(b, undefined, { sensitivity: 'base' }) === 0;\n}\n\nexport function titleCase(input: string): string {\n const words = input.toLowerCase().split(' ');\n\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n words[i] = word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n }\n\n return words.join(' ');\n}\n\n/**\n * Sometimes we extract small strings from a multi-megabyte files.\n * If we then save them in the in-memory cache, V8 may not free\n * the initial buffer, which can lead to memory leaks:\n *\n * https://bugs.chromium.org/p/v8/issues/detail?id=2869\n *\n */\nexport function copystr(x: string): string {\n const len = Buffer.byteLength(x, 'utf8');\n const buf = Buffer.allocUnsafeSlow(len);\n buf.write(x, 'utf8');\n return buf.toString('utf8');\n}\n\n/**\n * Coerce a value to a string with optional default value.\n * @param val value to coerce\n * @returns the coerced value.\n */\nexport function coerceString(\n val: string | null | undefined,\n def?: string,\n): string {\n return val ?? def ?? '';\n}\n", "import is from '@sindresorhus/is';\nimport { toBase64 } from './string';\n\nconst globalSecrets = new Set();\nconst repoSecrets = new Set();\n\nexport const redactedFields = [\n 'authorization',\n 'token',\n 'githubAppKey',\n 'npmToken',\n 'npmrc',\n 'privateKey',\n 'privateKeyOld',\n 'gitPrivateKey',\n 'forkToken',\n 'password',\n 'httpsCertificate',\n 'httpsPrivateKey',\n 'httpsCertificateAuthority',\n];\n\n// TODO: returns null or undefined only when input is null or undefined.\nexport function sanitize(input: string): string;\nexport function sanitize(\n input: string | null | undefined,\n): string | null | undefined;\nexport function sanitize(\n input: string | null | undefined,\n): string | null | undefined {\n if (!input) {\n return input;\n }\n let output: string = input;\n [globalSecrets, repoSecrets].forEach((secrets) => {\n secrets.forEach((secret) => {\n while (output.includes(secret)) {\n output = output.replace(secret, '**redacted**');\n }\n });\n });\n return output;\n}\n\nconst GITHUB_APP_TOKEN_PREFIX = 'x-access-token:';\n\nexport function addSecretForSanitizing(\n secret: string | undefined,\n type = 'repo',\n): void {\n if (!is.nonEmptyString(secret)) {\n return;\n }\n const secrets = type === 'repo' ? repoSecrets : globalSecrets;\n secrets.add(secret);\n secrets.add(toBase64(secret));\n if (secret.startsWith(GITHUB_APP_TOKEN_PREFIX)) {\n const trimmedSecret = secret.replace(GITHUB_APP_TOKEN_PREFIX, '');\n secrets.add(trimmedSecret);\n secrets.add(toBase64(trimmedSecret));\n }\n}\n\nexport function clearRepoSanitizedSecretsList(): void {\n repoSecrets.clear();\n}\n\nexport function clearGlobalSanitizedSecretsList(): void {\n globalSecrets.clear();\n}\n", "import { Stream } from 'node:stream';\nimport is from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod';\nimport { regEx } from '../util/regex';\nimport { redactedFields, sanitize } from '../util/sanitize';\nimport type { BunyanRecord, BunyanStream } from './types';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n // istanbul ignore if\n if (!is.plainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n if (is.array(input._errors, is.string)) {\n // istanbul ignore else\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (is.emptyObject(input)) {\n return err;\n }\n\n const output: Record = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output['___'] = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record {\n // istanbul ignore next\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n set: () => {},\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n // istanbul ignore else\n if (err.response) {\n response.response = {\n statusCode: err.response?.statusCode,\n statusMessage: err.response?.statusMessage,\n body:\n // istanbul ignore next: not easily testable\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return is.array(value) || is.object(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap(),\n): any {\n if (is.string(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (is.date(value)) {\n return value;\n }\n\n if (is.function_(value)) {\n return '[function]';\n }\n\n if (is.buffer(value)) {\n return '[content]';\n }\n\n if (is.error(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (is.array(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (is.object(value)) {\n const objectResult: Record = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (is.string(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n objectResult[key] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(/\\n?$/, '\\n'); // TODO #12874\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n is.undefined(logLevelToCheck) ||\n (is.string(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal(`${logLevelToCheck} is not a valid log level. terminating...`);\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(is.nonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record,\n p2?: string,\n): string | undefined {\n return is.string(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record,\n): Record {\n return is.object(p1) ? p1 : {};\n}\n", "import is from '@sindresorhus/is';\nimport prepareError from './utils';\n\nError.stackTraceLimit = 20;\n\nexport default function errSerializer(err: Error): any {\n const response: Record = prepareError(err);\n\n // already done by `sanitizeValue` ?\n const redactedFields = ['message', 'stack', 'stdout', 'stderr'];\n for (const field of redactedFields) {\n const val = response[field];\n if (is.string(val)) {\n response[field] = val.replace(\n /https:\\/\\/[^@]*?@/g, // TODO #12874\n 'https://**redacted**@',\n );\n }\n }\n return response;\n}\n", "'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n", "'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n", "'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` \u2192 `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n", "\"use strict\";\n\n// Note: This regex matches even invalid JSON strings, but since we\u2019re\n// working on the output of `JSON.stringify` we know that only valid strings\n// are present (unless the user supplied a weird `options.indent` but in\n// that case we don\u2019t care since the output would be invalid anyway).\nvar stringOrChar = /(\"(?:[^\\\\\"]|\\\\.)*\")|[:,]/g;\n\nmodule.exports = function stringify(passedObj, options) {\n var indent, maxLength, replacer;\n\n options = options || {};\n indent = JSON.stringify(\n [1],\n undefined,\n options.indent === undefined ? 2 : options.indent\n ).slice(2, -3);\n maxLength =\n indent === \"\"\n ? Infinity\n : options.maxLength === undefined\n ? 80\n : options.maxLength;\n replacer = options.replacer;\n\n return (function _stringify(obj, currentIndent, reserved) {\n // prettier-ignore\n var end, index, items, key, keyPart, keys, length, nextIndent, prettified, start, string, value;\n\n if (obj && typeof obj.toJSON === \"function\") {\n obj = obj.toJSON();\n }\n\n string = JSON.stringify(obj, replacer);\n\n if (string === undefined) {\n return string;\n }\n\n length = maxLength - currentIndent.length - reserved;\n\n if (string.length <= length) {\n prettified = string.replace(\n stringOrChar,\n function (match, stringLiteral) {\n return stringLiteral || match + \" \";\n }\n );\n if (prettified.length <= length) {\n return prettified;\n }\n }\n\n if (replacer != null) {\n obj = JSON.parse(string);\n replacer = undefined;\n }\n\n if (typeof obj === \"object\" && obj !== null) {\n nextIndent = currentIndent + indent;\n items = [];\n index = 0;\n\n if (Array.isArray(obj)) {\n start = \"[\";\n end = \"]\";\n length = obj.length;\n for (; index < length; index++) {\n items.push(\n _stringify(obj[index], nextIndent, index === length - 1 ? 0 : 1) ||\n \"null\"\n );\n }\n } else {\n start = \"{\";\n end = \"}\";\n keys = Object.keys(obj);\n length = keys.length;\n for (; index < length; index++) {\n key = keys[index];\n keyPart = JSON.stringify(key) + \": \";\n value = _stringify(\n obj[key],\n nextIndent,\n keyPart.length + (index === length - 1 ? 0 : 1)\n );\n if (value !== undefined) {\n items.push(keyPart + value);\n }\n }\n }\n\n if (items.length > 0) {\n return [start, indent + items.join(\",\\n\" + nextIndent), end].join(\n \"\\n\" + currentIndent\n );\n }\n }\n\n return string;\n })(passedObj, \"\", 0);\n};\n", "// Code originally derived from https://github.com/hadfieldn/node-bunyan-prettystream but since heavily edited\n// Neither fork nor original repo appear to be maintained\n\nimport { Stream } from 'node:stream';\nimport * as util from 'node:util';\nimport chalk from 'chalk';\nimport stringify from 'json-stringify-pretty-compact';\nimport type { BunyanRecord } from './types';\n\nconst bunyanFields = [\n 'name',\n 'hostname',\n 'pid',\n 'level',\n 'v',\n 'time',\n 'msg',\n 'start_time',\n];\nconst metaFields = [\n 'repository',\n 'baseBranch',\n 'packageFile',\n 'depType',\n 'dependency',\n 'dependencies',\n 'branch',\n];\n\nconst levels: Record = {\n 10: chalk.gray('TRACE'),\n 20: chalk.blue('DEBUG'),\n 30: chalk.green(' INFO'),\n 40: chalk.magenta(' WARN'),\n 50: chalk.red('ERROR'),\n 60: chalk.bgRed('FATAL'),\n};\n\nexport function indent(str: string, leading = false): string {\n const prefix = leading ? ' ' : '';\n return prefix + str.split(/\\r?\\n/).join('\\n '); // TODO #12874\n}\n\nexport function getMeta(rec: BunyanRecord): string {\n if (!rec) {\n return '';\n }\n let res = rec.module ? ` [${rec.module}]` : ``;\n const filteredMeta = metaFields.filter((elem) => rec[elem]);\n if (!filteredMeta.length) {\n return res;\n }\n const metaStr = filteredMeta\n .map((field) => `${field}=${String(rec[field])}`)\n .join(', ');\n res = ` (${metaStr})${res}`;\n return chalk.gray(res);\n}\n\nexport function getDetails(rec: BunyanRecord): string {\n if (!rec) {\n return '';\n }\n const recFiltered = { ...rec };\n delete recFiltered.module;\n Object.keys(recFiltered).forEach((key) => {\n if (\n key === 'logContext' ||\n bunyanFields.includes(key) ||\n metaFields.includes(key)\n ) {\n delete recFiltered[key];\n }\n });\n const remainingKeys = Object.keys(recFiltered);\n if (remainingKeys.length === 0) {\n return '';\n }\n return `${remainingKeys\n .map((key) => `${indent(`\"${key}\": ${stringify(recFiltered[key])}`, true)}`)\n .join(',\\n')}\\n`;\n}\n\nexport function formatRecord(rec: BunyanRecord): string {\n const level = levels[rec.level];\n const msg = `${indent(rec.msg)}`;\n const meta = getMeta(rec);\n const details = getDetails(rec);\n return util.format('%s: %s%s\\n%s', level, msg, meta, details);\n}\n\nexport class RenovateStream extends Stream {\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = true;\n this.writable = true;\n }\n\n // istanbul ignore next\n write(data: BunyanRecord): boolean {\n this.emit('data', formatRecord(data));\n return true;\n }\n}\n", "type OmitFn = (...args: any[]) => any;\n\n/**\n * Get the single frame of this function's callers stack.\n *\n * @param omitFn Starting from this function, stack frames will be ignored.\n * @returns The string containing file name, line number and column name.\n *\n * @example getCallSite() // => 'Object. (/path/to/file.js:10:15)'\n */\nfunction getCallSite(omitFn: OmitFn): string | null {\n const stackTraceLimitOrig = Error.stackTraceLimit;\n const prepareStackTraceOrig = Error.prepareStackTrace;\n\n let result: string | null = null;\n try {\n const res: { stack: string[] } = { stack: [] };\n\n Error.stackTraceLimit = 1;\n Error.prepareStackTrace = (_err, stack) => stack;\n Error.captureStackTrace(res, omitFn);\n\n const [callsite] = res.stack;\n if (callsite) {\n result = callsite.toString();\n }\n } catch /* istanbul ignore next */ {\n // no-op\n } finally {\n Error.stackTraceLimit = stackTraceLimitOrig;\n Error.prepareStackTrace = prepareStackTraceOrig;\n }\n\n return result;\n}\n\nconst keys = new Set();\n\nexport function once(callback: () => void, omitFn: OmitFn = once): void {\n const key = getCallSite(omitFn);\n\n // istanbul ignore if\n if (!key) {\n return;\n }\n\n if (!keys.has(key)) {\n keys.add(key);\n callback();\n }\n}\n\n/**\n * Before processing each repository,\n * all keys are supposed to be reset.\n */\nexport function reset(): void {\n keys.clear();\n}\n", "var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m) return [str];\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n if (/\\$$/.test(m.pre)) { \n for (var k = 0; k < post.length; k++) {\n var expansion = pre+ '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n } else {\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = [];\n\n for (var j = 0; j < n.length; j++) {\n N.push.apply(N, expand(n[j], false));\n }\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n }\n\n return expansions;\n}\n\n", "const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n pattern: any\n): asserts pattern is string => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n", "// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n\n// { : [, /u flag required, negated]\nconst posixClasses: { [k: string]: [e: string, u: boolean, n?: boolean] } = {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n}\n\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s: string) => s.replace(/[[\\]\\\\-]/g, '\\\\$&')\n// escape all regexp magic characters\nconst regexpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges: string[]): string => ranges.join('')\n\nexport type ParseClassResult = [\n src: string,\n uFlag: boolean,\n consumed: number,\n hasMagic: boolean\n]\n\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (\n glob: string,\n position: number\n): ParseClassResult => {\n const pos = position\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression')\n }\n /* c8 ignore stop */\n const ranges: string[] = []\n const negs: string[] = []\n\n let i = pos + 1\n let sawStart = false\n let uflag = false\n let escaping = false\n let negate = false\n let endPos = pos\n let rangeStart = ''\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i)\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true\n i++\n continue\n }\n\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1\n break\n }\n\n sawStart = true\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true\n i++\n continue\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true]\n }\n i += cls.length\n if (neg) negs.push(unip)\n else ranges.push(unip)\n uflag = uflag || u\n continue WHILE\n }\n }\n }\n\n // now it's just a normal character, effectively\n escaping = false\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c))\n } else if (c === rangeStart) {\n ranges.push(braceEscape(c))\n }\n rangeStart = ''\n i++\n continue\n }\n\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'))\n i += 2\n continue\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c\n i += 2\n continue\n }\n\n // not the start of a range, just a single character\n ranges.push(braceEscape(c))\n i++\n }\n\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false]\n }\n\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true]\n }\n\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (\n negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate\n ) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]\n return [regexpEscape(r), false, endPos - pos, false]\n }\n\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'\n const comb =\n ranges.length && negs.length\n ? '(' + sranges + '|' + snegs + ')'\n : ranges.length\n ? sranges\n : snegs\n\n return [comb, uflag, endPos - pos, true]\n}\n", "import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes. For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n }: Pick = {}\n) => {\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n", "// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n// 1 2 3 4 5 6 1 2 3 46 5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n// v----- .* because there's more following,\n// v v otherwise, .+ because it must be\n// v v *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n// copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n type: ExtglobType | null\n readonly #root: AST\n\n #hasMagic?: boolean\n #uflag: boolean = false\n #parts: (string | AST)[] = []\n readonly #parent?: AST\n readonly #parentIndex: number\n #negs: AST[]\n #filledNegs: boolean = false\n #options: MinimatchOptions\n #toString?: string\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt: boolean = false\n\n constructor(\n type: ExtglobType | null,\n parent?: AST,\n options: MinimatchOptions = {}\n ) {\n this.type = type\n // extglobs are inherently magical\n if (type) this.#hasMagic = true\n this.#parent = parent\n this.#root = this.#parent ? this.#parent.#root : this\n this.#options = this.#root === this ? options : this.#root.#options\n this.#negs = this.#root === this ? [] : this.#root.#negs\n if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n }\n\n get hasMagic(): boolean | undefined {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined) return this.#hasMagic\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string') continue\n if (p.type || p.hasMagic) return (this.#hasMagic = true)\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic\n }\n\n // reconstructs the pattern\n toString(): string {\n if (this.#toString !== undefined) return this.#toString\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''))\n } else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n }\n }\n\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root) throw new Error('should only call on root')\n if (this.#filledNegs) return this\n /* c8 ignore stop */\n\n // call toString() once to fill this out\n this.toString()\n this.#filledNegs = true\n let n: AST | undefined\n while ((n = this.#negs.pop())) {\n if (n.type !== '!') continue\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p: AST | undefined = n\n let pp = p.#parent\n while (pp) {\n for (\n let i = p.#parentIndex + 1;\n !pp.type && i < pp.#parts.length;\n i++\n ) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??')\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i])\n }\n }\n p = pp\n pp = p.#parent\n }\n }\n return this\n }\n\n push(...parts: (string | AST)[]) {\n for (const p of parts) {\n if (p === '') continue\n /* c8 ignore start */\n if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n throw new Error('invalid part: ' + p)\n }\n /* c8 ignore stop */\n this.#parts.push(p)\n }\n }\n\n toJSON() {\n const ret: any[] =\n this.type === null\n ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n if (this.isStart() && !this.type) ret.unshift([])\n if (\n this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))\n ) {\n ret.push({})\n }\n return ret\n }\n\n isStart(): boolean {\n if (this.#root === this) return true\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart()) return false\n if (this.#parentIndex === 0) return true\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i]\n if (!(pp instanceof AST && pp.type === '!')) {\n return false\n }\n }\n return true\n }\n\n isEnd(): boolean {\n if (this.#root === this) return true\n if (this.#parent?.type === '!') return true\n if (!this.#parent?.isEnd()) return false\n if (!this.type) return this.#parent?.isEnd()\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1\n }\n\n copyIn(part: AST | string) {\n if (typeof part === 'string') this.push(part)\n else this.push(part.clone(this))\n }\n\n clone(parent: AST) {\n const c = new AST(this.type, parent)\n for (const p of this.#parts) {\n c.copyIn(p)\n }\n return c\n }\n\n static #parseAST(\n str: string,\n ast: AST,\n pos: number,\n opt: MinimatchOptions\n ): number {\n let escaping = false\n let inBrace = false\n let braceStart = -1\n let braceNeg = false\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos\n let acc = ''\n while (i < str.length) {\n const c = str.charAt(i++)\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping\n acc += c\n continue\n }\n\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true\n }\n } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false\n }\n acc += c\n continue\n } else if (c === '[') {\n inBrace = true\n braceStart = i\n braceNeg = false\n acc += c\n continue\n }\n\n if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n ast.push(acc)\n acc = ''\n const ext = new AST(c, ast)\n i = AST.#parseAST(str, ext, i, opt)\n ast.push(ext)\n continue\n }\n acc += c\n }\n ast.push(acc)\n return i\n }\n\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1\n let part = new AST(null, ast)\n const parts: AST[] = []\n let acc = ''\n while (i < str.length) {\n const c = str.charAt(i++)\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping\n acc += c\n continue\n }\n\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true\n }\n } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false\n }\n acc += c\n continue\n } else if (c === '[') {\n inBrace = true\n braceStart = i\n braceNeg = false\n acc += c\n continue\n }\n\n if (isExtglobType(c) && str.charAt(i) === '(') {\n part.push(acc)\n acc = ''\n const ext = new AST(c, part)\n part.push(ext)\n i = AST.#parseAST(str, ext, i, opt)\n continue\n }\n if (c === '|') {\n part.push(acc)\n acc = ''\n parts.push(part)\n part = new AST(null, ast)\n continue\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true\n }\n part.push(acc)\n acc = ''\n ast.push(...parts, part)\n return i\n }\n acc += c\n }\n\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null\n ast.#hasMagic = undefined\n ast.#parts = [str.substring(pos - 1)]\n return i\n }\n\n static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n const ast = new AST(null, undefined, options)\n AST.#parseAST(pattern, ast, 0, options)\n return ast\n }\n\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern(): MMRegExp | string {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root) return this.#root.toMMPattern()\n /* c8 ignore stop */\n const glob = this.toString()\n const [re, body, hasMagic, uflag] = this.toRegExpSource()\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic =\n hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase())\n if (!anyMagic) {\n return body\n }\n\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n })\n }\n\n get options() {\n return this.#options\n }\n\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(\n allowDot?: boolean\n ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n const dot = allowDot ?? !!this.#options.dot\n if (this.#root === this) this.#fillNegs()\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd()\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] =\n typeof p === 'string'\n ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot)\n this.#hasMagic = this.#hasMagic || hasMagic\n this.#uflag = this.#uflag || uflag\n return re\n })\n .join('')\n\n let start = ''\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed =\n this.#parts.length === 1 && justDots.has(this.#parts[0])\n if (!dotTravAllowed) {\n const aps = addPatternStart\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav =\n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n }\n }\n }\n\n // append the \"end of path portion\" pattern to negation tails\n let end = ''\n if (\n this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!'\n ) {\n end = '(?:$|\\\\/)'\n }\n const final = start + src + end\n return [\n final,\n unescape(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ]\n }\n\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n\n const repeated = this.type === '*' || this.type === '+'\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n let body = this.#partsToRegExp(dot)\n\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString()\n this.#parts = [s]\n this.type = null\n this.#hasMagic = undefined\n return [s, unescape(this.toString()), false, false]\n }\n\n // XXX abstract out this map method\n let bodyDotAllowed =\n !repeated || allowDot || dot || !startNoDot\n ? ''\n : this.#partsToRegExp(true)\n if (bodyDotAllowed === body) {\n bodyDotAllowed = ''\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`\n }\n\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = ''\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n } else {\n const close =\n this.type === '!'\n ? // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@'\n ? ')'\n : this.type === '?'\n ? ')?'\n : this.type === '+' && bodyDotAllowed\n ? ')'\n : this.type === '*' && bodyDotAllowed\n ? `)?`\n : `)${this.type}`\n final = start + body + close\n }\n return [\n final,\n unescape(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ]\n }\n\n #partsToRegExp(dot: boolean) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??')\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n this.#uflag = this.#uflag || uflag\n return re\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|')\n }\n\n static #parseGlob(\n glob: string,\n hasMagic: boolean | undefined,\n noEmpty: boolean = false\n ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n let escaping = false\n let re = ''\n let uflag = false\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i)\n if (escaping) {\n escaping = false\n re += (reSpecials.has(c) ? '\\\\' : '') + c\n continue\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\'\n } else {\n escaping = true\n }\n continue\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = parseClass(glob, i)\n if (consumed) {\n re += src\n uflag = uflag || needUflag\n i += consumed - 1\n hasMagic = hasMagic || magic\n continue\n }\n }\n if (c === '*') {\n if (noEmpty && glob === '*') re += starNoEmpty\n else re += star\n hasMagic = true\n continue\n }\n if (c === '?') {\n re += qmark\n hasMagic = true\n continue\n }\n re += regExpEscape(c)\n }\n return [re, unescape(glob), !!hasMagic, uflag]\n }\n}\n", "import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n }: Pick = {}\n) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n", "import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n | 'aix'\n | 'android'\n | 'darwin'\n | 'freebsd'\n | 'haiku'\n | 'linux'\n | 'openbsd'\n | 'sunos'\n | 'win32'\n | 'cygwin'\n | 'netbsd'\n\nexport interface MinimatchOptions {\n nobrace?: boolean\n nocomment?: boolean\n nonegate?: boolean\n debug?: boolean\n noglobstar?: boolean\n noext?: boolean\n nonull?: boolean\n windowsPathsNoEscape?: boolean\n allowWindowsEscape?: boolean\n partial?: boolean\n dot?: boolean\n nocase?: boolean\n nocaseMagicOnly?: boolean\n magicalBraces?: boolean\n matchBase?: boolean\n flipNegate?: boolean\n preserveMultipleSlashes?: boolean\n optimizationLevel?: number\n platform?: Platform\n windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n p: string,\n pattern: string,\n options: MinimatchOptions = {}\n) => {\n assertValidPattern(pattern)\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n ext = ext.toLowerCase()\n return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n ext = ext.toLowerCase()\n return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExt([$0])\n if (!ext) return noext\n ext = ext.toLowerCase()\n return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExtDot([$0])\n if (!ext) return noext\n ext = ext.toLowerCase()\n return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExtDot([$0])\n return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExt([$0])\n return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n const len = $0.length\n return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n const len = $0.length\n return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n typeof process === 'object' && process\n ? (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n (pattern: string, options: MinimatchOptions = {}) =>\n (p: string) =>\n minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n const orig = minimatch\n\n const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n orig(p, pattern, ext(def, options))\n\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern: string, options: MinimatchOptions = {}) {\n super(pattern, ext(def, options))\n }\n static defaults(options: MinimatchOptions) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n },\n\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(\n type: ExtglobType | null,\n parent?: AST,\n options: MinimatchOptions = {}\n ) {\n super(type, parent, ext(def, options))\n }\n /* c8 ignore stop */\n\n static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options))\n }\n },\n\n unescape: (\n s: string,\n options: Pick = {}\n ) => orig.unescape(s, ext(def, options)),\n\n escape: (\n s: string,\n options: Pick = {}\n ) => orig.escape(s, ext(def, options)),\n\n filter: (pattern: string, options: MinimatchOptions = {}) =>\n orig.filter(pattern, ext(def, options)),\n\n defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n orig.makeRe(pattern, ext(def, options)),\n\n braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n orig.braceExpand(pattern, ext(def, options)),\n\n match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n orig.match(list, pattern, ext(def, options)),\n\n sep: orig.sep,\n GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n pattern: string,\n options: MinimatchOptions = {}\n) => {\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n list: string[],\n pattern: string,\n options: MinimatchOptions = {}\n) => {\n const mm = new Minimatch(pattern, options)\n list = list.filter(f => mm.match(f))\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n _src?: string\n _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n options: MinimatchOptions\n set: ParseReturnFiltered[][]\n pattern: string\n\n windowsPathsNoEscape: boolean\n nonegate: boolean\n negate: boolean\n comment: boolean\n empty: boolean\n preserveMultipleSlashes: boolean\n partial: boolean\n globSet: string[]\n globParts: string[][]\n nocase: boolean\n\n isWindows: boolean\n platform: Platform\n windowsNoMagicRoot: boolean\n\n regexp: false | null | MMRegExp\n constructor(pattern: string, options: MinimatchOptions = {}) {\n assertValidPattern(pattern)\n\n options = options || {}\n this.options = options\n this.pattern = pattern\n this.platform = options.platform || defaultPlatform\n this.isWindows = this.platform === 'win32'\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/')\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n this.regexp = null\n this.negate = false\n this.nonegate = !!options.nonegate\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n this.nocase = !!this.options.nocase\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined\n ? options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase)\n\n this.globSet = []\n this.globParts = []\n this.set = []\n\n // make the set of regexps etc.\n this.make()\n }\n\n hasMagic(): boolean {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string') return true\n }\n }\n return false\n }\n\n debug(..._: any[]) {}\n\n make() {\n const pattern = this.pattern\n const options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())]\n\n if (options.debug) {\n this.debug = (...args: any[]) => console.error(...args)\n }\n\n this.debug(this.pattern, this.globSet)\n\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n this.globParts = this.preprocess(rawGlobParts)\n this.debug(this.pattern, this.globParts)\n\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC =\n s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3])\n const isDrive = /^[a-z]:/i.test(s[0])\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n } else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n }\n }\n return s.map(ss => this.parse(ss))\n })\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n this.set = set.filter(\n s => s.indexOf(false) === -1\n ) as ParseReturnFiltered[][]\n\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i]\n if (\n p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])\n ) {\n p[2] = '?'\n }\n }\n }\n\n this.debug(this.pattern, this.set)\n }\n\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts: string[][]) {\n // if we're not in globstar mode, then turn all ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*'\n }\n }\n }\n }\n\n const { optimizationLevel = 1 } = this.options\n\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts)\n globParts = this.secondPhasePreProcess(globParts)\n } else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts)\n } else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts)\n }\n\n return globParts\n }\n\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts: string[][]) {\n return globParts.map(parts => {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs\n while (parts[i + 1] === '**') {\n i++\n }\n if (i !== gs) {\n parts.splice(gs, i - gs)\n }\n }\n return parts\n })\n }\n\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts: string[][]) {\n return globParts.map(parts => {\n parts = parts.reduce((set: string[], part) => {\n const prev = set[set.length - 1]\n if (part === '**' && prev === '**') {\n return set\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop()\n return set\n }\n }\n set.push(part)\n return set\n }, [])\n return parts.length === 0 ? [''] : parts\n })\n }\n\n levelTwoFileOptimize(parts: string | string[]) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts)\n }\n let didSomething: boolean = false\n do {\n didSomething = false\n //
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (matched) {\n          globParts[i] = []\n          globParts[j] = matched\n          break\n        }\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice(pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n", "import type { MinimatchOptions } from 'minimatch';\nimport { Minimatch } from 'minimatch';\n\nconst cache = new Map();\n\nexport function minimatch(\n  pattern: string,\n  options?: MinimatchOptions,\n  useCache = true,\n): Minimatch {\n  const key = options ? `${pattern}:${JSON.stringify(options)}` : pattern;\n\n  if (useCache) {\n    const cachedResult = cache.get(key);\n    if (cachedResult) {\n      return cachedResult;\n    }\n  }\n\n  const instance = new Minimatch(pattern, options);\n  if (useCache) {\n    cache.set(key, instance);\n  }\n  return instance;\n}\n\nexport function minimatchFilter(\n  pattern: string,\n  options?: MinimatchOptions,\n  useCache = true,\n): (fileName: string) => boolean {\n  const key = options ? `${pattern}:${JSON.stringify(options)}` : pattern;\n\n  if (useCache) {\n    const cachedResult = cache.get(key);\n    if (cachedResult) {\n      return (fileName) => cachedResult.match(fileName);\n    }\n  }\n\n  const instance = new Minimatch(pattern, options);\n  if (useCache) {\n    cache.set(key, instance);\n  }\n  return (fileName) => instance.match(fileName);\n}\n", "import is from '@sindresorhus/is';\nimport { minimatch } from './minimatch';\nimport { regEx } from './regex';\n\nexport type StringMatchPredicate = (s: string) => boolean;\n\nexport function isDockerDigest(input: string): boolean {\n  return /^sha256:[a-f0-9]{64}$/i.test(input);\n}\n\nexport function getRegexOrGlobPredicate(pattern: string): StringMatchPredicate {\n  const regExPredicate = getRegexPredicate(pattern);\n  if (regExPredicate) {\n    return regExPredicate;\n  }\n\n  const mm = minimatch(pattern, { dot: true, nocase: true });\n  return (x: string): boolean => mm.match(x);\n}\n\nexport function matchRegexOrGlob(input: string, pattern: string): boolean {\n  if (pattern === '*') {\n    return true;\n  }\n  const predicate = getRegexOrGlobPredicate(pattern);\n  return predicate(input);\n}\n\nexport function matchRegexOrGlobList(\n  input: string,\n  patterns: string[],\n): boolean {\n  if (!patterns.length) {\n    return false;\n  }\n\n  // Return false if there are positive patterns and none match\n  const positivePatterns = patterns.filter(\n    (pattern) => !pattern.startsWith('!'),\n  );\n  if (\n    positivePatterns.length &&\n    !positivePatterns.some((pattern) => matchRegexOrGlob(input, pattern))\n  ) {\n    return false;\n  }\n\n  // Every negative pattern must be true to return true\n  const negativePatterns = patterns.filter((pattern) =>\n    pattern.startsWith('!'),\n  );\n  if (\n    negativePatterns.length &&\n    !negativePatterns.every((pattern) => matchRegexOrGlob(input, pattern))\n  ) {\n    return false;\n  }\n\n  return true;\n}\n\nexport function anyMatchRegexOrGlobList(\n  inputs: string[],\n  patterns: string[],\n): boolean {\n  return inputs.some((input) => matchRegexOrGlobList(input, patterns));\n}\n\nexport const UUIDRegex = regEx(\n  /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n);\n\nconst configValStart = regEx(/^!?\\//);\nconst configValEnd = regEx(/\\/i?$/);\n\nexport function isRegexMatch(input: unknown): input is string {\n  return (\n    is.string(input) && configValStart.test(input) && configValEnd.test(input)\n  );\n}\n\nfunction parseRegexMatch(input: string): RegExp | null {\n  try {\n    const regexString = input\n      .replace(configValStart, '')\n      .replace(configValEnd, '');\n    return input.endsWith('i') ? regEx(regexString, 'i') : regEx(regexString);\n  } catch {\n    // no-op\n  }\n  return null;\n}\n\nexport function getRegexPredicate(input: string): StringMatchPredicate | null {\n  if (isRegexMatch(input)) {\n    const configRegex = parseRegexMatch(input);\n    if (configRegex) {\n      const isPositive = !input.startsWith('!');\n      return (x: string): boolean => {\n        const res = configRegex.test(x);\n        return isPositive ? res : !res;\n      };\n    }\n  }\n  return null;\n}\n", "import type { LogLevelString } from 'bunyan';\nimport type { StringMatchPredicate } from '../util/string-match';\nimport { getRegexOrGlobPredicate } from '../util/string-match';\nimport type { LogLevelRemap } from './types';\n\nlet globalRemaps: LogLevelRemap[] | undefined;\nlet repositoryRemaps: LogLevelRemap[] | undefined;\n\nlet matcherCache = new WeakMap();\n\nfunction match(remap: LogLevelRemap, input: string): boolean {\n  const { matchMessage: pattern } = remap;\n  let matchFn = matcherCache.get(remap);\n  if (!matchFn) {\n    matchFn = getRegexOrGlobPredicate(pattern);\n    matcherCache.set(remap, matchFn);\n  }\n\n  return matchFn(input);\n}\n\nexport function getRemappedLevel(msg: string): LogLevelString | null {\n  if (repositoryRemaps) {\n    for (const remap of repositoryRemaps) {\n      if (match(remap, msg)) {\n        return remap.newLogLevel;\n      }\n    }\n  }\n\n  if (globalRemaps) {\n    for (const remap of globalRemaps) {\n      if (match(remap, msg)) {\n        return remap.newLogLevel;\n      }\n    }\n  }\n\n  return null;\n}\n\nfunction resetMatcherCache(): void {\n  matcherCache = new WeakMap();\n}\n\nexport function setGlobalLogLevelRemaps(\n  remaps: LogLevelRemap[] | undefined,\n): void {\n  globalRemaps = remaps;\n}\n\nexport function resetGlobalLogLevelRemaps(): void {\n  globalRemaps = undefined;\n  resetMatcherCache();\n}\n\nexport function setRepositoryLogLevelRemaps(\n  remaps: LogLevelRemap[] | undefined,\n): void {\n  repositoryRemaps = remaps;\n}\n\nexport function resetRepositoryLogLevelRemaps(): void {\n  repositoryRemaps = undefined;\n  resetMatcherCache();\n}\n", "import is from '@sindresorhus/is';\nimport type * as bunyan from 'bunyan';\nimport { once, reset as onceReset } from './once';\nimport { getRemappedLevel } from './remap';\nimport type { Logger } from './types';\nimport { getMessage, toMeta, withSanitizer } from './utils';\n\nconst loggerLevels: bunyan.LogLevelString[] = [\n  'trace',\n  'debug',\n  'info',\n  'warn',\n  'error',\n  'fatal',\n];\n\ntype LoggerFunction = (p1: string | Record, p2?: string) => void;\n\nexport class RenovateLogger implements Logger {\n  readonly logger: Logger = { once: { reset: onceReset } } as any;\n  readonly once = this.logger.once;\n\n  constructor(\n    private readonly bunyanLogger: bunyan,\n    private context: string,\n    private meta: Record,\n  ) {\n    for (const level of loggerLevels) {\n      this.logger[level] = this.logFactory(level) as never;\n      this.logger.once[level] = this.logOnceFn(level);\n    }\n  }\n\n  trace(p1: string): void;\n  trace(p1: Record, p2?: string): void;\n  trace(p1: string | Record, p2?: string): void {\n    this.log('trace', p1, p2);\n  }\n\n  debug(p1: string): void;\n  debug(p1: Record, p2?: string): void;\n  debug(p1: string | Record, p2?: string): void {\n    this.log('debug', p1, p2);\n  }\n\n  info(p1: string): void;\n  info(p1: Record, p2?: string): void;\n  info(p1: string | Record, p2?: string): void {\n    this.log('info', p1, p2);\n  }\n\n  warn(p1: string): void;\n  warn(p1: Record, p2?: string): void;\n  warn(p1: string | Record, p2?: string): void {\n    this.log('warn', p1, p2);\n  }\n\n  error(p1: string): void;\n  error(p1: Record, p2?: string): void;\n  error(p1: string | Record, p2?: string): void {\n    this.log('error', p1, p2);\n  }\n\n  fatal(p1: string): void;\n  fatal(p1: Record, p2?: string): void;\n  fatal(p1: string | Record, p2?: string): void {\n    this.log('fatal', p1, p2);\n  }\n\n  addStream(stream: bunyan.Stream): void {\n    this.bunyanLogger.addStream(withSanitizer(stream));\n  }\n\n  childLogger(): RenovateLogger {\n    return new RenovateLogger(\n      this.bunyanLogger.child({}),\n      this.context,\n      this.meta,\n    );\n  }\n\n  get logContext(): string {\n    return this.context;\n  }\n\n  set logContext(context: string) {\n    this.context = context;\n  }\n\n  setMeta(obj: Record): void {\n    this.meta = { ...obj };\n  }\n\n  addMeta(obj: Record): void {\n    this.meta = { ...this.meta, ...obj };\n  }\n\n  removeMeta(fields: string[]): void {\n    for (const key of Object.keys(this.meta)) {\n      if (fields.includes(key)) {\n        delete this.meta[key];\n      }\n    }\n  }\n\n  private logFactory(_level: bunyan.LogLevelString): LoggerFunction {\n    return (p1: string | Record, p2?: string): void => {\n      const meta: Record = {\n        logContext: this.context,\n        ...this.meta,\n        ...toMeta(p1),\n      };\n      const msg = getMessage(p1, p2);\n      let level = _level;\n\n      if (is.string(msg)) {\n        const remappedLevel = getRemappedLevel(msg);\n        // istanbul ignore if: not easily testable\n        if (remappedLevel) {\n          meta.oldLevel = level;\n          level = remappedLevel;\n        }\n        this.bunyanLogger[level](meta, msg);\n      } else {\n        this.bunyanLogger[level](meta);\n      }\n    };\n  }\n\n  private logOnceFn(level: bunyan.LogLevelString): LoggerFunction {\n    const logOnceFn = (p1: string | Record, p2?: string): void => {\n      once(() => {\n        const logFn = this[level].bind(this); // bind to the instance.\n        if (is.string(p1)) {\n          logFn(p1);\n        } else {\n          logFn(p1, p2);\n        }\n      }, logOnceFn);\n    };\n    return logOnceFn;\n  }\n\n  private log(\n    level: bunyan.LogLevelString,\n    p1: string | Record,\n    p2?: string,\n  ): void {\n    const logFn = this.logger[level];\n    if (is.string(p1)) {\n      logFn(p1);\n    } else {\n      logFn(p1, p2);\n    }\n  }\n}\n", "import is from '@sindresorhus/is';\nimport * as bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { nanoid } from 'nanoid';\nimport upath from 'upath';\nimport cmdSerializer from './cmd-serializer';\nimport configSerializer from './config-serializer';\nimport errSerializer from './err-serializer';\nimport { RenovateStream } from './pretty-stdout';\nimport { RenovateLogger } from './renovate-logger';\nimport type { BunyanRecord, Logger } from './types';\nimport {\n  ProblemStream,\n  getEnv,\n  validateLogLevel,\n  withSanitizer,\n} from './utils';\n\nconst problems = new ProblemStream();\nlet stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info');\n\nexport function logLevel(): bunyan.LogLevelString {\n  return stdoutLevel;\n}\n\nexport function createDefaultStreams(\n  stdoutLevel: bunyan.LogLevelString,\n  problems: ProblemStream,\n  logFile: string | undefined,\n): bunyan.Stream[] {\n  const stdout: bunyan.Stream = {\n    name: 'stdout',\n    level: stdoutLevel,\n    stream: process.stdout,\n  };\n\n  // istanbul ignore if: not testable\n  if (getEnv('LOG_FORMAT') !== 'json') {\n    // TODO: typings (#9615)\n    const prettyStdOut = new RenovateStream() as any;\n    prettyStdOut.pipe(process.stdout);\n    stdout.stream = prettyStdOut;\n    stdout.type = 'raw';\n  }\n\n  const problemsStream: bunyan.Stream = {\n    name: 'problems',\n    level: 'warn' as bunyan.LogLevel,\n    stream: problems as any,\n    type: 'raw',\n  };\n\n  // istanbul ignore next: not easily testable\n  const logFileStream: bunyan.Stream | undefined = is.string(logFile)\n    ? createLogFileStream(logFile)\n    : undefined;\n\n  return [stdout, problemsStream, logFileStream].filter(\n    Boolean,\n  ) as bunyan.Stream[];\n}\n\n// istanbul ignore next: not easily testable\nfunction createLogFileStream(logFile: string): bunyan.Stream {\n  // Ensure log file directory exists\n  const directoryName = upath.dirname(logFile);\n  fs.ensureDirSync(directoryName);\n\n  return {\n    name: 'logfile',\n    path: logFile,\n    level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'),\n  };\n}\n\nfunction serializedSanitizedLogger(streams: bunyan.Stream[]): bunyan {\n  return bunyan.createLogger({\n    name: 'renovate',\n    serializers: {\n      body: configSerializer,\n      cmd: cmdSerializer,\n      config: configSerializer,\n      migratedConfig: configSerializer,\n      originalConfig: configSerializer,\n      presetConfig: configSerializer,\n      oldConfig: configSerializer,\n      newConfig: configSerializer,\n      err: errSerializer,\n    },\n    streams: streams.map(withSanitizer),\n  });\n}\n\nconst defaultStreams = createDefaultStreams(\n  stdoutLevel,\n  problems,\n  getEnv('LOG_FILE'),\n);\n\nconst bunyanLogger = serializedSanitizedLogger(defaultStreams);\nconst logContext = getEnv('LOG_CONTEXT') ?? nanoid();\nconst loggerInternal = new RenovateLogger(bunyanLogger, logContext, {});\n\nexport const logger: Logger = loggerInternal;\n\nexport function setContext(value: string): void {\n  loggerInternal.logContext = value;\n}\n\nexport function getContext(): any {\n  return loggerInternal.logContext;\n}\n\n// setMeta overrides existing meta, may remove fields if no longer existing\nexport function setMeta(obj: Record): void {\n  loggerInternal.setMeta(obj);\n}\n\n// addMeta overrides or adds fields but does not remove any\nexport function addMeta(obj: Record): void {\n  loggerInternal.addMeta(obj);\n}\n\n// removeMeta removes the provided fields from meta\nexport function removeMeta(fields: string[]): void {\n  loggerInternal.removeMeta(fields);\n}\n\nexport /* istanbul ignore next */ function addStream(\n  stream: bunyan.Stream,\n): void {\n  loggerInternal.addStream(stream);\n}\n\n/**\n * For testing purposes only\n * @param name stream name\n * @param level log level\n * @private\n */\nexport function levels(\n  name: 'stdout' | 'logfile',\n  level: bunyan.LogLevelString,\n): void {\n  bunyanLogger.levels(name, level);\n  if (name === 'stdout') {\n    stdoutLevel = level;\n  }\n}\n\nexport function getProblems(): BunyanRecord[] {\n  return problems.getProblems();\n}\n\nexport function clearProblems(): void {\n  return problems.clearProblems();\n}\n", "import { EXTERNAL_HOST_ERROR } from '../../constants/error-messages';\n\nexport class ExternalHostError extends Error {\n  hostType: string | undefined;\n\n  err: Error;\n\n  packageName?: string;\n\n  reason?: string;\n\n  constructor(err: Error, hostType?: string) {\n    super(EXTERNAL_HOST_ERROR);\n    // Set the prototype explicitly: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n    Object.setPrototypeOf(this, ExternalHostError.prototype);\n    this.hostType = hostType;\n    this.err = err;\n  }\n}\n", "import is from '@sindresorhus/is';\n\nexport function coerceArray(input: T[] | null | undefined): T[] {\n  if (is.array(input)) {\n    return input;\n  }\n  return [];\n}\n\n// Useful for filtering an array so that it includes values that are not null or\n// undefined. This predicate acts as a type guard so that the resulting type for\n// `values.filter(isNotNullOrUndefined)` is `T[]`.\nexport function isNotNullOrUndefined(\n  value: T | undefined | null,\n): value is T {\n  return !is.nullOrUndefined(value);\n}\n\n/**\n * Converts a single value or an array of values to an array of values.\n * @param value a single value or an array of values\n * @returns array of values\n */\nexport function toArray(value: T | T[]): T[] {\n  return is.array(value) ? value : [value];\n}\n\nexport function deduplicateArray(array: T[]): T[] {\n  return Array.from(new Set(array));\n}\n", "let repoCache: Record | undefined;\n\nexport function init(): void {\n  repoCache = {};\n}\n\nexport function reset(): void {\n  repoCache = undefined;\n}\n\nexport function get(key: string): T {\n  return repoCache?.[key];\n}\n\nexport function set(key: string, value: unknown): void {\n  if (repoCache) {\n    repoCache[key] = value;\n  }\n}\n", "module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n", "'use strict';\n\nvar qs = require('querystring')\n  , url = require('url')\n  , xtend = require('xtend');\n\nconst PARSE_LINK_HEADER_MAXLEN = parseInt(process.env.PARSE_LINK_HEADER_MAXLEN) || 2000;\nconst PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED = process.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED != null\n\nfunction hasRel(x) {\n  return x && x.rel;\n}\n\nfunction intoRels (acc, x) {\n  function splitRel (rel) {\n    acc[rel] = xtend(x, { rel: rel });\n  }\n\n  x.rel.split(/\\s+/).forEach(splitRel);\n\n  return acc;\n}\n\nfunction createObjects (acc, p) {\n  // rel=\"next\" => 1: rel 2: next\n  var m = p.match(/\\s*(.+)\\s*=\\s*\"?([^\"]+)\"?/)\n  if (m) acc[m[1]] = m[2];\n  return acc;\n}\n\nfunction parseLink(link) {\n  try {\n    var m         =  link.match(/]*)>(.*)/)\n      , linkUrl   =  m[1]\n      , parts     =  m[2].split(';')\n      , parsedUrl =  url.parse(linkUrl)\n      , qry       =  qs.parse(parsedUrl.query);\n\n    parts.shift();\n\n    var info = parts\n      .reduce(createObjects, {});\n    \n    info = xtend(qry, info);\n    info.url = linkUrl;\n    return info;\n  } catch (e) {\n    return null;\n  }\n}\n\nfunction checkHeader(linkHeader){\n  if (!linkHeader) return false;\n\n  if (linkHeader.length > PARSE_LINK_HEADER_MAXLEN) {\n    if (PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED) {\n      throw new Error('Input string too long, it should be under ' + PARSE_LINK_HEADER_MAXLEN + ' characters.');\n    } else {\n        return false;\n      }\n  }\n  return true;\n}\n\nmodule.exports = function (linkHeader) {\n  if (!checkHeader(linkHeader)) return null;\n\n  return linkHeader.split(/,\\s* 1) {\n      var first = strArray.shift();\n      strArray[0] = first + strArray[0];\n    }\n\n    // There must be two or three slashes in the file protocol, two slashes in anything else.\n    if (strArray[0].match(/^file:\\/\\/\\//)) {\n      strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n    } else {\n      strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n    }\n\n    for (var i = 0; i < strArray.length; i++) {\n      var component = strArray[i];\n\n      if (typeof component !== 'string') {\n        throw new TypeError('Url must be a string. Received ' + component);\n      }\n\n      if (component === '') { continue; }\n\n      if (i > 0) {\n        // Removing the starting slashes for each component but the first.\n        component = component.replace(/^[\\/]+/, '');\n      }\n      if (i < strArray.length - 1) {\n        // Removing the ending slashes for each component but the last.\n        component = component.replace(/[\\/]+$/, '');\n      } else {\n        // For the last component we will combine multiple slashes to a single one.\n        component = component.replace(/[\\/]+$/, '/');\n      }\n\n      resultArray.push(component);\n\n    }\n\n    var str = resultArray.join('/');\n    // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n    // remove trailing slash before parameters or hash\n    str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n    // replace ? in parameters with &\n    var parts = str.split('?');\n    str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n    return str;\n  }\n\n  return function () {\n    var input;\n\n    if (typeof arguments[0] === 'object') {\n      input = arguments[0];\n    } else {\n      input = [].slice.call(arguments);\n    }\n\n    return normalize(input);\n  };\n\n});\n", "import is from '@sindresorhus/is';\n// eslint-disable-next-line no-restricted-imports\nimport _parseLinkHeader from 'parse-link-header';\nimport urlJoin from 'url-join';\nimport { logger } from '../logger';\nimport { regEx } from './regex';\n\nexport function joinUrlParts(...parts: string[]): string {\n  return urlJoin(...parts);\n}\n\nexport function ensurePathPrefix(url: string, prefix: string): string {\n  const parsed = new URL(url);\n  const fullPath = parsed.pathname + parsed.search;\n  if (fullPath.startsWith(prefix)) {\n    return url;\n  }\n  return parsed.origin + prefix + fullPath;\n}\n\nexport function ensureTrailingSlash(url: string): string {\n  return url.replace(/\\/?$/, '/'); // TODO #12875 adds slash at the front when re2 is used\n}\n\nexport function trimTrailingSlash(url: string): string {\n  return url.replace(regEx(/\\/+$/), '');\n}\n\nexport function trimLeadingSlash(path: string): string {\n  return path.replace(/^\\/+/, '');\n}\n\nexport function trimSlashes(path: string): string {\n  return trimLeadingSlash(trimTrailingSlash(path));\n}\n\n/**\n * Resolves an input path against a base URL\n *\n * @param baseUrl - base URL to resolve against\n * @param input - input path (if this is a full URL, it will be returned)\n */\nexport function resolveBaseUrl(baseUrl: string, input: string | URL): string {\n  const inputString = input.toString();\n\n  let host;\n  let pathname;\n  try {\n    ({ host, pathname } = new URL(inputString));\n  } catch {\n    pathname = inputString;\n  }\n\n  return host ? inputString : urlJoin(baseUrl, pathname || '');\n}\n\n/**\n * Replaces the path of a URL with a new path\n *\n * @param baseUrl - source URL\n * @param path - replacement path (if this is a full URL, it will be returned)\n */\nexport function replaceUrlPath(baseUrl: string | URL, path: string): string {\n  if (parseUrl(path)) {\n    return path;\n  }\n\n  const { origin } = is.string(baseUrl) ? new URL(baseUrl) : baseUrl;\n  return urlJoin(origin, path);\n}\n\nexport function getQueryString(params: Record): string {\n  const usp = new URLSearchParams();\n  for (const [k, v] of Object.entries(params)) {\n    if (is.array(v)) {\n      for (const item of v) {\n        // TODO: fix me?\n        // eslint-disable-next-line @typescript-eslint/no-base-to-string\n        usp.append(k, item.toString());\n      }\n    } else {\n      usp.append(k, v.toString());\n    }\n  }\n  return usp.toString();\n}\n\nexport function isHttpUrl(url: unknown): boolean {\n  if (!is.nonEmptyString(url)) {\n    return false;\n  }\n  try {\n    const { protocol } = new URL(url);\n    return protocol === 'https:' || protocol === 'http:';\n  } catch {\n    return false;\n  }\n}\n\nexport function parseUrl(url: URL | string | undefined | null): URL | null {\n  if (!url) {\n    return null;\n  }\n\n  if (url instanceof URL) {\n    return url;\n  }\n\n  try {\n    return new URL(url);\n  } catch {\n    return null;\n  }\n}\n\n/**\n * Tries to create an URL object from either a full URL string or a hostname\n * @param url either the full url or a hostname\n * @returns an URL object or null\n */\nexport function createURLFromHostOrURL(url: string): URL | null {\n  return parseUrl(url) ?? parseUrl(`https://${url}`);\n}\n\nexport type LinkHeaderLinks = _parseLinkHeader.Links;\n\nexport function parseLinkHeader(\n  linkHeader: string | null | undefined,\n): LinkHeaderLinks | null {\n  if (!is.nonEmptyString(linkHeader)) {\n    return null;\n  }\n  if (linkHeader.length > 2000) {\n    logger.warn({ linkHeader }, 'Link header too long.');\n    return null;\n  }\n  return _parseLinkHeader(linkHeader);\n}\n\n/**\n * prefix https:// to hosts with port or path\n */\nexport function massageHostUrl(url: string): string {\n  if (!url.includes('://') && url.includes('/')) {\n    return 'https://' + url;\n  } else if (!url.includes('://') && url.includes(':')) {\n    return 'https://' + url;\n  } else {\n    return url;\n  }\n}\n", "import { logger } from '../logger';\nimport * as memCache from './cache/memory';\nimport { parseUrl } from './url';\n\ntype LookupStatsData = Record;\n\ninterface TimingStatsReport {\n  count: number;\n  avgMs: number;\n  medianMs: number;\n  maxMs: number;\n  totalMs: number;\n}\n\nexport function makeTimingReport(data: number[]): TimingStatsReport {\n  const count = data.length;\n  const totalMs = data.reduce((a, c) => a + c, 0);\n  const avgMs = count ? Math.round(totalMs / count) : 0;\n  const maxMs = Math.max(0, ...data);\n  const sorted = data.sort((a, b) => a - b);\n  const medianMs = count ? sorted[Math.floor(count / 2)] : 0;\n  return { count, avgMs, medianMs, maxMs, totalMs };\n}\n\nexport class LookupStats {\n  static write(datasource: string, duration: number): void {\n    const data = memCache.get('lookup-stats') ?? {};\n    data[datasource] ??= [];\n    data[datasource].push(duration);\n    memCache.set('lookup-stats', data);\n  }\n\n  static async wrap(\n    datasource: string,\n    callback: () => Promise,\n  ): Promise {\n    const start = Date.now();\n    const result = await callback();\n    const duration = Date.now() - start;\n    LookupStats.write(datasource, duration);\n    return result;\n  }\n\n  static getReport(): Record {\n    const report: Record = {};\n    const data = memCache.get('lookup-stats') ?? {};\n    for (const [datasource, durations] of Object.entries(data)) {\n      report[datasource] = makeTimingReport(durations);\n    }\n    return report;\n  }\n\n  static report(): void {\n    const report = LookupStats.getReport();\n    logger.debug(report, 'Lookup statistics');\n  }\n}\n\ntype PackageCacheData = number[];\n\nexport class PackageCacheStats {\n  static writeSet(duration: number): void {\n    const data = memCache.get('package-cache-sets') ?? [];\n    data.push(duration);\n    memCache.set('package-cache-sets', data);\n  }\n\n  static async wrapSet(callback: () => Promise): Promise {\n    const start = Date.now();\n    const result = await callback();\n    const duration = Date.now() - start;\n    PackageCacheStats.writeSet(duration);\n    return result;\n  }\n\n  static writeGet(duration: number): void {\n    const data = memCache.get('package-cache-gets') ?? [];\n    data.push(duration);\n    memCache.set('package-cache-gets', data);\n  }\n\n  static async wrapGet(callback: () => Promise): Promise {\n    const start = Date.now();\n    const result = await callback();\n    const duration = Date.now() - start;\n    PackageCacheStats.writeGet(duration);\n    return result;\n  }\n\n  static getReport(): { get: TimingStatsReport; set: TimingStatsReport } {\n    const packageCacheGets =\n      memCache.get('package-cache-gets') ?? [];\n    const get = makeTimingReport(packageCacheGets);\n\n    const packageCacheSets =\n      memCache.get('package-cache-sets') ?? [];\n    const set = makeTimingReport(packageCacheSets);\n\n    return { get, set };\n  }\n\n  static report(): void {\n    const report = PackageCacheStats.getReport();\n    logger.debug(report, 'Package cache statistics');\n  }\n}\n\ninterface DatasourceCacheDataPoint {\n  datasource: string;\n  registryUrl: string;\n  packageName: string;\n  action: 'hit' | 'miss' | 'set' | 'skip';\n}\n\nexport interface DatasourceCacheReport {\n  long: {\n    [datasource in string]: {\n      [registryUrl in string]: {\n        [packageName in string]: {\n          read?: 'hit' | 'miss';\n          write?: 'set' | 'skip';\n        };\n      };\n    };\n  };\n  short: {\n    [datasource in string]: {\n      [registryUrl in string]: {\n        hit: number;\n        miss: number;\n        set: number;\n        skip: number;\n      };\n    };\n  };\n}\n\nexport class DatasourceCacheStats {\n  private static getData(): DatasourceCacheDataPoint[] {\n    return (\n      memCache.get('datasource-cache-stats') ?? []\n    );\n  }\n\n  private static setData(data: DatasourceCacheDataPoint[]): void {\n    memCache.set('datasource-cache-stats', data);\n  }\n\n  static hit(\n    datasource: string,\n    registryUrl: string,\n    packageName: string,\n  ): void {\n    const data = this.getData();\n    data.push({ datasource, registryUrl, packageName, action: 'hit' });\n    this.setData(data);\n  }\n\n  static miss(\n    datasource: string,\n    registryUrl: string,\n    packageName: string,\n  ): void {\n    const data = this.getData();\n    data.push({ datasource, registryUrl, packageName, action: 'miss' });\n    this.setData(data);\n  }\n\n  static set(\n    datasource: string,\n    registryUrl: string,\n    packageName: string,\n  ): void {\n    const data = this.getData();\n    data.push({ datasource, registryUrl, packageName, action: 'set' });\n    this.setData(data);\n  }\n\n  static skip(\n    datasource: string,\n    registryUrl: string,\n    packageName: string,\n  ): void {\n    const data = this.getData();\n    data.push({ datasource, registryUrl, packageName, action: 'skip' });\n    this.setData(data);\n  }\n\n  static getReport(): DatasourceCacheReport {\n    const data = this.getData();\n    const result: DatasourceCacheReport = { long: {}, short: {} };\n    for (const { datasource, registryUrl, packageName, action } of data) {\n      result.long[datasource] ??= {};\n      result.long[datasource][registryUrl] ??= {};\n      result.long[datasource][registryUrl] ??= {};\n      result.long[datasource][registryUrl][packageName] ??= {};\n\n      result.short[datasource] ??= {};\n      result.short[datasource][registryUrl] ??= {\n        hit: 0,\n        miss: 0,\n        set: 0,\n        skip: 0,\n      };\n\n      if (action === 'hit') {\n        result.long[datasource][registryUrl][packageName].read = 'hit';\n        result.short[datasource][registryUrl].hit += 1;\n        continue;\n      }\n\n      if (action === 'miss') {\n        result.long[datasource][registryUrl][packageName].read = 'miss';\n        result.short[datasource][registryUrl].miss += 1;\n        continue;\n      }\n\n      if (action === 'set') {\n        result.long[datasource][registryUrl][packageName].write = 'set';\n        result.short[datasource][registryUrl].set += 1;\n        continue;\n      }\n\n      if (action === 'skip') {\n        result.long[datasource][registryUrl][packageName].write = 'skip';\n        result.short[datasource][registryUrl].skip += 1;\n        continue;\n      }\n    }\n\n    return result;\n  }\n\n  static report(): void {\n    const { long, short } = this.getReport();\n\n    if (Object.keys(short).length > 0) {\n      logger.debug(short, 'Datasource cache statistics');\n    }\n\n    if (Object.keys(long).length > 0) {\n      logger.trace(long, 'Datasource cache detailed statistics');\n    }\n  }\n}\n\nexport interface HttpRequestStatsDataPoint {\n  method: string;\n  url: string;\n  reqMs: number;\n  queueMs: number;\n  status: number;\n}\n\ninterface HostStatsData {\n  count: number;\n  reqAvgMs: number;\n  reqMedianMs: number;\n  reqMaxMs: number;\n  queueAvgMs: number;\n  queueMedianMs: number;\n  queueMaxMs: number;\n}\n\n// url -> method -> status -> count\ntype UrlHttpStat = Record>>;\n\ninterface HttpStatsCollection {\n  // debug data\n  urls: UrlHttpStat;\n  hosts: Record;\n  requests: number;\n\n  // trace data\n  rawRequests: string[];\n  hostRequests: Record;\n}\n\nexport class HttpStats {\n  static write(data: HttpRequestStatsDataPoint): void {\n    const httpRequests =\n      memCache.get('http-requests') ?? [];\n    httpRequests.push(data);\n    memCache.set('http-requests', httpRequests);\n  }\n\n  static getDataPoints(): HttpRequestStatsDataPoint[] {\n    const httpRequests =\n      memCache.get('http-requests') ?? [];\n\n    // istanbul ignore next: sorting is hard and not worth testing\n    httpRequests.sort((a, b) => {\n      if (a.url < b.url) {\n        return -1;\n      }\n\n      if (a.url > b.url) {\n        return 1;\n      }\n\n      return 0;\n    });\n\n    return httpRequests;\n  }\n\n  static getReport(): HttpStatsCollection {\n    const dataPoints = HttpStats.getDataPoints();\n\n    const requests = dataPoints.length;\n\n    const urls: UrlHttpStat = {};\n    const rawRequests: string[] = [];\n    const hostRequests: Record = {};\n\n    for (const dataPoint of dataPoints) {\n      const { url, reqMs, queueMs, status } = dataPoint;\n      const method = dataPoint.method.toUpperCase();\n\n      const parsedUrl = parseUrl(url);\n      if (!parsedUrl) {\n        logger.debug({ url }, 'Failed to parse URL during stats reporting');\n        continue;\n      }\n      const { hostname, origin, pathname } = parsedUrl;\n      const baseUrl = `${origin}${pathname}`;\n\n      urls[baseUrl] ??= {};\n      urls[baseUrl][method] ??= {};\n      urls[baseUrl][method][status] ??= 0;\n      urls[baseUrl][method][status] += 1;\n\n      rawRequests.push(`${method} ${url} ${status} ${reqMs} ${queueMs}`);\n\n      hostRequests[hostname] ??= [];\n      hostRequests[hostname].push(dataPoint);\n    }\n\n    const hosts: Record = {};\n\n    for (const [hostname, dataPoints] of Object.entries(hostRequests)) {\n      const count = dataPoints.length;\n\n      const reqTimes = dataPoints.map((r) => r.reqMs);\n      const queueTimes = dataPoints.map((r) => r.queueMs);\n\n      const reqReport = makeTimingReport(reqTimes);\n      const queueReport = makeTimingReport(queueTimes);\n\n      hosts[hostname] = {\n        count,\n        reqAvgMs: reqReport.avgMs,\n        reqMedianMs: reqReport.medianMs,\n        reqMaxMs: reqReport.maxMs,\n        queueAvgMs: queueReport.avgMs,\n        queueMedianMs: queueReport.medianMs,\n        queueMaxMs: queueReport.maxMs,\n      };\n    }\n\n    return {\n      urls,\n      rawRequests,\n      hostRequests,\n      hosts,\n      requests,\n    };\n  }\n\n  static report(): void {\n    const { urls, rawRequests, hostRequests, hosts, requests } =\n      HttpStats.getReport();\n    logger.trace({ rawRequests, hostRequests }, 'HTTP full statistics');\n    logger.debug({ hosts, requests }, 'HTTP statistics');\n    logger.trace({ urls }, 'HTTP URL statistics');\n  }\n}\n\ninterface HttpCacheHostStatsData {\n  hit: number;\n  miss: number;\n  localHit?: number;\n  localMiss?: number;\n}\n\ntype HttpCacheStatsData = Record;\n\nfunction sortObject(obj: Record): Record {\n  const result: Record = {};\n  for (const key of Object.keys(obj).sort()) {\n    result[key] = obj[key];\n  }\n  return result;\n}\n\nexport class HttpCacheStats {\n  static getData(): HttpCacheStatsData {\n    return memCache.get('http-cache-stats') ?? {};\n  }\n\n  static read(key: string): HttpCacheHostStatsData {\n    return (\n      this.getData()?.[key] ?? {\n        hit: 0,\n        miss: 0,\n      }\n    );\n  }\n\n  static write(key: string, data: HttpCacheHostStatsData): void {\n    const stats = memCache.get('http-cache-stats') ?? {};\n    stats[key] = data;\n    memCache.set('http-cache-stats', stats);\n  }\n\n  static getBaseUrl(url: string): string | null {\n    const parsedUrl = parseUrl(url);\n    if (!parsedUrl) {\n      logger.debug({ url }, 'Failed to parse URL during cache stats');\n      return null;\n    }\n    const { origin, pathname } = parsedUrl;\n    const baseUrl = `${origin}${pathname}`;\n    return baseUrl;\n  }\n\n  static incLocalHits(url: string): void {\n    const baseUrl = HttpCacheStats.getBaseUrl(url);\n    if (baseUrl) {\n      const host = baseUrl;\n      const stats = HttpCacheStats.read(host);\n      stats.localHit ??= 0;\n      stats.localHit += 1;\n      HttpCacheStats.write(host, stats);\n    }\n  }\n\n  static incLocalMisses(url: string): void {\n    const baseUrl = HttpCacheStats.getBaseUrl(url);\n    if (baseUrl) {\n      const host = baseUrl;\n      const stats = HttpCacheStats.read(host);\n      stats.localMiss ??= 0;\n      stats.localMiss += 1;\n      HttpCacheStats.write(host, stats);\n    }\n  }\n\n  static incRemoteHits(url: string): void {\n    const baseUrl = HttpCacheStats.getBaseUrl(url);\n    if (baseUrl) {\n      const host = baseUrl;\n      const stats = HttpCacheStats.read(host);\n      stats.hit += 1;\n      HttpCacheStats.write(host, stats);\n    }\n  }\n\n  static incRemoteMisses(url: string): void {\n    const baseUrl = HttpCacheStats.getBaseUrl(url);\n    if (baseUrl) {\n      const host = baseUrl;\n      const stats = HttpCacheStats.read(host);\n      stats.miss += 1;\n      HttpCacheStats.write(host, stats);\n    }\n  }\n\n  static report(): void {\n    const data = HttpCacheStats.getData();\n    let report: Record> = {};\n    for (const [url, stats] of Object.entries(data)) {\n      const parsedUrl = parseUrl(url);\n      if (parsedUrl) {\n        const { origin, pathname } = parsedUrl;\n        report[origin] ??= {};\n        report[origin][pathname] = stats;\n      }\n    }\n\n    for (const [host, hostStats] of Object.entries(report)) {\n      report[host] = sortObject(hostStats);\n    }\n    report = sortObject(report);\n\n    logger.debug(report, 'HTTP cache statistics');\n  }\n}\n", "const proc =\n  typeof process === 'object' && process\n    ? process\n    : {\n        stdout: null,\n        stderr: null,\n      }\nimport { EventEmitter } from 'node:events'\nimport Stream from 'node:stream'\nimport { StringDecoder } from 'node:string_decoder'\n\n/**\n * Same as StringDecoder, but exposing the `lastNeed` flag on the type\n */\ntype SD = StringDecoder & { lastNeed: boolean }\n\nexport type { SD, Pipe, PipeProxyErrors }\n\n/**\n * Return true if the argument is a Minipass stream, Node stream, or something\n * else that Minipass can interact with.\n */\nexport const isStream = (\n  s: any\n): s is Minipass.Readable | Minipass.Writable =>\n  !!s &&\n  typeof s === 'object' &&\n  (s instanceof Minipass ||\n    s instanceof Stream ||\n    isReadable(s) ||\n    isWritable(s))\n\n/**\n * Return true if the argument is a valid {@link Minipass.Readable}\n */\nexport const isReadable = (s: any): s is Minipass.Readable =>\n  !!s &&\n  typeof s === 'object' &&\n  s instanceof EventEmitter &&\n  typeof (s as Minipass.Readable).pipe === 'function' &&\n  // node core Writable streams have a pipe() method, but it throws\n  (s as Minipass.Readable).pipe !== Stream.Writable.prototype.pipe\n\n/**\n * Return true if the argument is a valid {@link Minipass.Writable}\n */\nexport const isWritable = (s: any): s is Minipass.Readable =>\n  !!s &&\n  typeof s === 'object' &&\n  s instanceof EventEmitter &&\n  typeof (s as Minipass.Writable).write === 'function' &&\n  typeof (s as Minipass.Writable).end === 'function'\n\nconst EOF = Symbol('EOF')\nconst MAYBE_EMIT_END = Symbol('maybeEmitEnd')\nconst EMITTED_END = Symbol('emittedEnd')\nconst EMITTING_END = Symbol('emittingEnd')\nconst EMITTED_ERROR = Symbol('emittedError')\nconst CLOSED = Symbol('closed')\nconst READ = Symbol('read')\nconst FLUSH = Symbol('flush')\nconst FLUSHCHUNK = Symbol('flushChunk')\nconst ENCODING = Symbol('encoding')\nconst DECODER = Symbol('decoder')\nconst FLOWING = Symbol('flowing')\nconst PAUSED = Symbol('paused')\nconst RESUME = Symbol('resume')\nconst BUFFER = Symbol('buffer')\nconst PIPES = Symbol('pipes')\nconst BUFFERLENGTH = Symbol('bufferLength')\nconst BUFFERPUSH = Symbol('bufferPush')\nconst BUFFERSHIFT = Symbol('bufferShift')\nconst OBJECTMODE = Symbol('objectMode')\n// internal event when stream is destroyed\nconst DESTROYED = Symbol('destroyed')\n// internal event when stream has an error\nconst ERROR = Symbol('error')\nconst EMITDATA = Symbol('emitData')\nconst EMITEND = Symbol('emitEnd')\nconst EMITEND2 = Symbol('emitEnd2')\nconst ASYNC = Symbol('async')\nconst ABORT = Symbol('abort')\nconst ABORTED = Symbol('aborted')\nconst SIGNAL = Symbol('signal')\nconst DATALISTENERS = Symbol('dataListeners')\nconst DISCARDED = Symbol('discarded')\n\nconst defer = (fn: (...a: any[]) => any) => Promise.resolve().then(fn)\nconst nodefer = (fn: (...a: any[]) => any) => fn()\n\n// events that mean 'the stream is over'\n// these are treated specially, and re-emitted\n// if they are listened for after emitting.\ntype EndishEvent = 'end' | 'finish' | 'prefinish'\nconst isEndish = (ev: any): ev is EndishEvent =>\n  ev === 'end' || ev === 'finish' || ev === 'prefinish'\n\nconst isArrayBufferLike = (b: any): b is ArrayBufferLike =>\n  b instanceof ArrayBuffer ||\n  (!!b &&\n    typeof b === 'object' &&\n    b.constructor &&\n    b.constructor.name === 'ArrayBuffer' &&\n    b.byteLength >= 0)\n\nconst isArrayBufferView = (b: any): b is ArrayBufferView =>\n  !Buffer.isBuffer(b) && ArrayBuffer.isView(b)\n\n/**\n * Options that may be passed to stream.pipe()\n */\nexport interface PipeOptions {\n  /**\n   * end the destination stream when the source stream ends\n   */\n  end?: boolean\n  /**\n   * proxy errors from the source stream to the destination stream\n   */\n  proxyErrors?: boolean\n}\n\n/**\n * Internal class representing a pipe to a destination stream.\n *\n * @internal\n */\nclass Pipe {\n  src: Minipass\n  dest: Minipass\n  opts: PipeOptions\n  ondrain: () => any\n  constructor(\n    src: Minipass,\n    dest: Minipass.Writable,\n    opts: PipeOptions\n  ) {\n    this.src = src\n    this.dest = dest as Minipass\n    this.opts = opts\n    this.ondrain = () => src[RESUME]()\n    this.dest.on('drain', this.ondrain)\n  }\n  unpipe() {\n    this.dest.removeListener('drain', this.ondrain)\n  }\n  // only here for the prototype\n  /* c8 ignore start */\n  proxyErrors(_er: any) {}\n  /* c8 ignore stop */\n  end() {\n    this.unpipe()\n    if (this.opts.end) this.dest.end()\n  }\n}\n\n/**\n * Internal class representing a pipe to a destination stream where\n * errors are proxied.\n *\n * @internal\n */\nclass PipeProxyErrors extends Pipe {\n  unpipe() {\n    this.src.removeListener('error', this.proxyErrors)\n    super.unpipe()\n  }\n  constructor(\n    src: Minipass,\n    dest: Minipass.Writable,\n    opts: PipeOptions\n  ) {\n    super(src, dest, opts)\n    this.proxyErrors = er => dest.emit('error', er)\n    src.on('error', this.proxyErrors)\n  }\n}\n\nexport namespace Minipass {\n  /**\n   * Encoding used to create a stream that outputs strings rather than\n   * Buffer objects.\n   */\n  export type Encoding = BufferEncoding | 'buffer' | null\n\n  /**\n   * Any stream that Minipass can pipe into\n   */\n  export type Writable =\n    | Minipass\n    | NodeJS.WriteStream\n    | (NodeJS.WriteStream & { fd: number })\n    | (EventEmitter & {\n        end(): any\n        write(chunk: any, ...args: any[]): any\n      })\n\n  /**\n   * Any stream that can be read from\n   */\n  export type Readable =\n    | Minipass\n    | NodeJS.ReadStream\n    | (NodeJS.ReadStream & { fd: number })\n    | (EventEmitter & {\n        pause(): any\n        resume(): any\n        pipe(...destArgs: any[]): any\n      })\n\n  /**\n   * Utility type that can be iterated sync or async\n   */\n  export type DualIterable = Iterable & AsyncIterable\n\n  type EventArguments = Record\n\n  /**\n   * The listing of events that a Minipass class can emit.\n   * Extend this when extending the Minipass class, and pass as\n   * the third template argument.  The key is the name of the event,\n   * and the value is the argument list.\n   *\n   * Any undeclared events will still be allowed, but the handler will get\n   * arguments as `unknown[]`.\n   */\n  export interface Events\n    extends EventArguments {\n    readable: []\n    data: [chunk: RType]\n    error: [er: unknown]\n    abort: [reason: unknown]\n    drain: []\n    resume: []\n    end: []\n    finish: []\n    prefinish: []\n    close: []\n    [DESTROYED]: [er?: unknown]\n    [ERROR]: [er: unknown]\n  }\n\n  /**\n   * String or buffer-like data that can be joined and sliced\n   */\n  export type ContiguousData =\n    | Buffer\n    | ArrayBufferLike\n    | ArrayBufferView\n    | string\n  export type BufferOrString = Buffer | string\n\n  /**\n   * Options passed to the Minipass constructor.\n   */\n  export type SharedOptions = {\n    /**\n     * Defer all data emission and other events until the end of the\n     * current tick, similar to Node core streams\n     */\n    async?: boolean\n    /**\n     * A signal which will abort the stream\n     */\n    signal?: AbortSignal\n    /**\n     * Output string encoding. Set to `null` or `'buffer'` (or omit) to\n     * emit Buffer objects rather than strings.\n     *\n     * Conflicts with `objectMode`\n     */\n    encoding?: BufferEncoding | null | 'buffer'\n    /**\n     * Output data exactly as it was written, supporting non-buffer/string\n     * data (such as arbitrary objects, falsey values, etc.)\n     *\n     * Conflicts with `encoding`\n     */\n    objectMode?: boolean\n  }\n\n  /**\n   * Options for a string encoded output\n   */\n  export type EncodingOptions = SharedOptions & {\n    encoding: BufferEncoding\n    objectMode?: false\n  }\n\n  /**\n   * Options for contiguous data buffer output\n   */\n  export type BufferOptions = SharedOptions & {\n    encoding?: null | 'buffer'\n    objectMode?: false\n  }\n\n  /**\n   * Options for objectMode arbitrary output\n   */\n  export type ObjectModeOptions = SharedOptions & {\n    objectMode: true\n    encoding?: null\n  }\n\n  /**\n   * Utility type to determine allowed options based on read type\n   */\n  export type Options =\n    | ObjectModeOptions\n    | (T extends string\n        ? EncodingOptions\n        : T extends Buffer\n        ? BufferOptions\n        : SharedOptions)\n}\n\nconst isObjectModeOptions = (\n  o: Minipass.SharedOptions\n): o is Minipass.ObjectModeOptions => !!o.objectMode\n\nconst isEncodingOptions = (\n  o: Minipass.SharedOptions\n): o is Minipass.EncodingOptions =>\n  !o.objectMode && !!o.encoding && o.encoding !== 'buffer'\n\n/**\n * Main export, the Minipass class\n *\n * `RType` is the type of data emitted, defaults to Buffer\n *\n * `WType` is the type of data to be written, if RType is buffer or string,\n * then any {@link Minipass.ContiguousData} is allowed.\n *\n * `Events` is the set of event handler signatures that this object\n * will emit, see {@link Minipass.Events}\n */\nexport class Minipass<\n    RType extends unknown = Buffer,\n    WType extends unknown = RType extends Minipass.BufferOrString\n      ? Minipass.ContiguousData\n      : RType,\n    Events extends Minipass.Events = Minipass.Events\n  >\n  extends EventEmitter\n  implements Minipass.DualIterable\n{\n  [FLOWING]: boolean = false;\n  [PAUSED]: boolean = false;\n  [PIPES]: Pipe[] = [];\n  [BUFFER]: RType[] = [];\n  [OBJECTMODE]: boolean;\n  [ENCODING]: BufferEncoding | null;\n  [ASYNC]: boolean;\n  [DECODER]: SD | null;\n  [EOF]: boolean = false;\n  [EMITTED_END]: boolean = false;\n  [EMITTING_END]: boolean = false;\n  [CLOSED]: boolean = false;\n  [EMITTED_ERROR]: unknown = null;\n  [BUFFERLENGTH]: number = 0;\n  [DESTROYED]: boolean = false;\n  [SIGNAL]?: AbortSignal;\n  [ABORTED]: boolean = false;\n  [DATALISTENERS]: number = 0;\n  [DISCARDED]: boolean = false\n\n  /**\n   * true if the stream can be written\n   */\n  writable: boolean = true\n  /**\n   * true if the stream can be read\n   */\n  readable: boolean = true\n\n  /**\n   * If `RType` is Buffer, then options do not need to be provided.\n   * Otherwise, an options object must be provided to specify either\n   * {@link Minipass.SharedOptions.objectMode} or\n   * {@link Minipass.SharedOptions.encoding}, as appropriate.\n   */\n  constructor(\n    ...args:\n      | [Minipass.ObjectModeOptions]\n      | (RType extends Buffer\n          ? [] | [Minipass.Options]\n          : [Minipass.Options])\n  ) {\n    const options: Minipass.Options = (args[0] ||\n      {}) as Minipass.Options\n    super()\n    if (options.objectMode && typeof options.encoding === 'string') {\n      throw new TypeError(\n        'Encoding and objectMode may not be used together'\n      )\n    }\n    if (isObjectModeOptions(options)) {\n      this[OBJECTMODE] = true\n      this[ENCODING] = null\n    } else if (isEncodingOptions(options)) {\n      this[ENCODING] = options.encoding\n      this[OBJECTMODE] = false\n    } else {\n      this[OBJECTMODE] = false\n      this[ENCODING] = null\n    }\n    this[ASYNC] = !!options.async\n    this[DECODER] = this[ENCODING]\n      ? (new StringDecoder(this[ENCODING]) as SD)\n      : null\n\n    //@ts-ignore - private option for debugging and testing\n    if (options && options.debugExposeBuffer === true) {\n      Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] })\n    }\n    //@ts-ignore - private option for debugging and testing\n    if (options && options.debugExposePipes === true) {\n      Object.defineProperty(this, 'pipes', { get: () => this[PIPES] })\n    }\n\n    const { signal } = options\n    if (signal) {\n      this[SIGNAL] = signal\n      if (signal.aborted) {\n        this[ABORT]()\n      } else {\n        signal.addEventListener('abort', () => this[ABORT]())\n      }\n    }\n  }\n\n  /**\n   * The amount of data stored in the buffer waiting to be read.\n   *\n   * For Buffer strings, this will be the total byte length.\n   * For string encoding streams, this will be the string character length,\n   * according to JavaScript's `string.length` logic.\n   * For objectMode streams, this is a count of the items waiting to be\n   * emitted.\n   */\n  get bufferLength() {\n    return this[BUFFERLENGTH]\n  }\n\n  /**\n   * The `BufferEncoding` currently in use, or `null`\n   */\n  get encoding() {\n    return this[ENCODING]\n  }\n\n  /**\n   * @deprecated - This is a read only property\n   */\n  set encoding(_enc) {\n    throw new Error('Encoding must be set at instantiation time')\n  }\n\n  /**\n   * @deprecated - Encoding may only be set at instantiation time\n   */\n  setEncoding(_enc: Minipass.Encoding) {\n    throw new Error('Encoding must be set at instantiation time')\n  }\n\n  /**\n   * True if this is an objectMode stream\n   */\n  get objectMode() {\n    return this[OBJECTMODE]\n  }\n\n  /**\n   * @deprecated - This is a read-only property\n   */\n  set objectMode(_om) {\n    throw new Error('objectMode must be set at instantiation time')\n  }\n\n  /**\n   * true if this is an async stream\n   */\n  get ['async'](): boolean {\n    return this[ASYNC]\n  }\n  /**\n   * Set to true to make this stream async.\n   *\n   * Once set, it cannot be unset, as this would potentially cause incorrect\n   * behavior.  Ie, a sync stream can be made async, but an async stream\n   * cannot be safely made sync.\n   */\n  set ['async'](a: boolean) {\n    this[ASYNC] = this[ASYNC] || !!a\n  }\n\n  // drop everything and get out of the flow completely\n  [ABORT]() {\n    this[ABORTED] = true\n    this.emit('abort', this[SIGNAL]?.reason)\n    this.destroy(this[SIGNAL]?.reason)\n  }\n\n  /**\n   * True if the stream has been aborted.\n   */\n  get aborted() {\n    return this[ABORTED]\n  }\n  /**\n   * No-op setter. Stream aborted status is set via the AbortSignal provided\n   * in the constructor options.\n   */\n  set aborted(_) {}\n\n  /**\n   * Write data into the stream\n   *\n   * If the chunk written is a string, and encoding is not specified, then\n   * `utf8` will be assumed. If the stream encoding matches the encoding of\n   * a written string, and the state of the string decoder allows it, then\n   * the string will be passed through to either the output or the internal\n   * buffer without any processing. Otherwise, it will be turned into a\n   * Buffer object for processing into the desired encoding.\n   *\n   * If provided, `cb` function is called immediately before return for\n   * sync streams, or on next tick for async streams, because for this\n   * base class, a chunk is considered \"processed\" once it is accepted\n   * and either emitted or buffered. That is, the callback does not indicate\n   * that the chunk has been eventually emitted, though of course child\n   * classes can override this function to do whatever processing is required\n   * and call `super.write(...)` only once processing is completed.\n   */\n  write(chunk: WType, cb?: () => void): boolean\n  write(\n    chunk: WType,\n    encoding?: Minipass.Encoding,\n    cb?: () => void\n  ): boolean\n  write(\n    chunk: WType,\n    encoding?: Minipass.Encoding | (() => void),\n    cb?: () => void\n  ): boolean {\n    if (this[ABORTED]) return false\n    if (this[EOF]) throw new Error('write after end')\n\n    if (this[DESTROYED]) {\n      this.emit(\n        'error',\n        Object.assign(\n          new Error('Cannot call write after a stream was destroyed'),\n          { code: 'ERR_STREAM_DESTROYED' }\n        )\n      )\n      return true\n    }\n\n    if (typeof encoding === 'function') {\n      cb = encoding\n      encoding = 'utf8'\n    }\n\n    if (!encoding) encoding = 'utf8'\n\n    const fn = this[ASYNC] ? defer : nodefer\n\n    // convert array buffers and typed array views into buffers\n    // at some point in the future, we may want to do the opposite!\n    // leave strings and buffers as-is\n    // anything is only allowed if in object mode, so throw\n    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {\n      if (isArrayBufferView(chunk)) {\n        //@ts-ignore - sinful unsafe type changing\n        chunk = Buffer.from(\n          chunk.buffer,\n          chunk.byteOffset,\n          chunk.byteLength\n        )\n      } else if (isArrayBufferLike(chunk)) {\n        //@ts-ignore - sinful unsafe type changing\n        chunk = Buffer.from(chunk)\n      } else if (typeof chunk !== 'string') {\n        throw new Error(\n          'Non-contiguous data written to non-objectMode stream'\n        )\n      }\n    }\n\n    // handle object mode up front, since it's simpler\n    // this yields better performance, fewer checks later.\n    if (this[OBJECTMODE]) {\n      // maybe impossible?\n      /* c8 ignore start */\n      if (this[FLOWING] && this[BUFFERLENGTH] !== 0) this[FLUSH](true)\n      /* c8 ignore stop */\n\n      if (this[FLOWING]) this.emit('data', chunk as unknown as RType)\n      else this[BUFFERPUSH](chunk as unknown as RType)\n\n      if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n\n      if (cb) fn(cb)\n\n      return this[FLOWING]\n    }\n\n    // at this point the chunk is a buffer or string\n    // don't buffer it up or send it to the decoder\n    if (!(chunk as Minipass.BufferOrString).length) {\n      if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n      if (cb) fn(cb)\n      return this[FLOWING]\n    }\n\n    // fast-path writing strings of same encoding to a stream with\n    // an empty buffer, skipping the buffer/decoder dance\n    if (\n      typeof chunk === 'string' &&\n      // unless it is a string already ready for us to use\n      !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)\n    ) {\n      //@ts-ignore - sinful unsafe type change\n      chunk = Buffer.from(chunk, encoding)\n    }\n\n    if (Buffer.isBuffer(chunk) && this[ENCODING]) {\n      //@ts-ignore - sinful unsafe type change\n      chunk = this[DECODER].write(chunk)\n    }\n\n    // Note: flushing CAN potentially switch us into not-flowing mode\n    if (this[FLOWING] && this[BUFFERLENGTH] !== 0) this[FLUSH](true)\n\n    if (this[FLOWING]) this.emit('data', chunk as unknown as RType)\n    else this[BUFFERPUSH](chunk as unknown as RType)\n\n    if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n\n    if (cb) fn(cb)\n\n    return this[FLOWING]\n  }\n\n  /**\n   * Low-level explicit read method.\n   *\n   * In objectMode, the argument is ignored, and one item is returned if\n   * available.\n   *\n   * `n` is the number of bytes (or in the case of encoding streams,\n   * characters) to consume. If `n` is not provided, then the entire buffer\n   * is returned, or `null` is returned if no data is available.\n   *\n   * If `n` is greater that the amount of data in the internal buffer,\n   * then `null` is returned.\n   */\n  read(n?: number | null): RType | null {\n    if (this[DESTROYED]) return null\n    this[DISCARDED] = false\n\n    if (\n      this[BUFFERLENGTH] === 0 ||\n      n === 0 ||\n      (n && n > this[BUFFERLENGTH])\n    ) {\n      this[MAYBE_EMIT_END]()\n      return null\n    }\n\n    if (this[OBJECTMODE]) n = null\n\n    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {\n      // not object mode, so if we have an encoding, then RType is string\n      // otherwise, must be Buffer\n      this[BUFFER] = [\n        (this[ENCODING]\n          ? this[BUFFER].join('')\n          : Buffer.concat(\n              this[BUFFER] as Buffer[],\n              this[BUFFERLENGTH]\n            )) as RType,\n      ]\n    }\n\n    const ret = this[READ](n || null, this[BUFFER][0] as RType)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [READ](n: number | null, chunk: RType) {\n    if (this[OBJECTMODE]) this[BUFFERSHIFT]()\n    else {\n      const c = chunk as Minipass.BufferOrString\n      if (n === c.length || n === null) this[BUFFERSHIFT]()\n      else if (typeof c === 'string') {\n        this[BUFFER][0] = c.slice(n) as RType\n        chunk = c.slice(0, n) as RType\n        this[BUFFERLENGTH] -= n\n      } else {\n        this[BUFFER][0] = c.subarray(n) as RType\n        chunk = c.subarray(0, n) as RType\n        this[BUFFERLENGTH] -= n\n      }\n    }\n\n    this.emit('data', chunk)\n\n    if (!this[BUFFER].length && !this[EOF]) this.emit('drain')\n\n    return chunk\n  }\n\n  /**\n   * End the stream, optionally providing a final write.\n   *\n   * See {@link Minipass#write} for argument descriptions\n   */\n  end(cb?: () => void): this\n  end(chunk: WType, cb?: () => void): this\n  end(chunk: WType, encoding?: Minipass.Encoding, cb?: () => void): this\n  end(\n    chunk?: WType | (() => void),\n    encoding?: Minipass.Encoding | (() => void),\n    cb?: () => void\n  ): this {\n    if (typeof chunk === 'function') {\n      cb = chunk as () => void\n      chunk = undefined\n    }\n    if (typeof encoding === 'function') {\n      cb = encoding\n      encoding = 'utf8'\n    }\n    if (chunk !== undefined) this.write(chunk, encoding)\n    if (cb) this.once('end', cb)\n    this[EOF] = true\n    this.writable = false\n\n    // if we haven't written anything, then go ahead and emit,\n    // even if we're not reading.\n    // we'll re-emit if a new 'end' listener is added anyway.\n    // This makes MP more suitable to write-only use cases.\n    if (this[FLOWING] || !this[PAUSED]) this[MAYBE_EMIT_END]()\n    return this\n  }\n\n  // don't let the internal resume be overwritten\n  [RESUME]() {\n    if (this[DESTROYED]) return\n\n    if (!this[DATALISTENERS] && !this[PIPES].length) {\n      this[DISCARDED] = true\n    }\n    this[PAUSED] = false\n    this[FLOWING] = true\n    this.emit('resume')\n    if (this[BUFFER].length) this[FLUSH]()\n    else if (this[EOF]) this[MAYBE_EMIT_END]()\n    else this.emit('drain')\n  }\n\n  /**\n   * Resume the stream if it is currently in a paused state\n   *\n   * If called when there are no pipe destinations or `data` event listeners,\n   * this will place the stream in a \"discarded\" state, where all data will\n   * be thrown away. The discarded state is removed if a pipe destination or\n   * data handler is added, if pause() is called, or if any synchronous or\n   * asynchronous iteration is started.\n   */\n  resume() {\n    return this[RESUME]()\n  }\n\n  /**\n   * Pause the stream\n   */\n  pause() {\n    this[FLOWING] = false\n    this[PAUSED] = true\n    this[DISCARDED] = false\n  }\n\n  /**\n   * true if the stream has been forcibly destroyed\n   */\n  get destroyed() {\n    return this[DESTROYED]\n  }\n\n  /**\n   * true if the stream is currently in a flowing state, meaning that\n   * any writes will be immediately emitted.\n   */\n  get flowing() {\n    return this[FLOWING]\n  }\n\n  /**\n   * true if the stream is currently in a paused state\n   */\n  get paused() {\n    return this[PAUSED]\n  }\n\n  [BUFFERPUSH](chunk: RType) {\n    if (this[OBJECTMODE]) this[BUFFERLENGTH] += 1\n    else this[BUFFERLENGTH] += (chunk as Minipass.BufferOrString).length\n    this[BUFFER].push(chunk)\n  }\n\n  [BUFFERSHIFT](): RType {\n    if (this[OBJECTMODE]) this[BUFFERLENGTH] -= 1\n    else\n      this[BUFFERLENGTH] -= (\n        this[BUFFER][0] as Minipass.BufferOrString\n      ).length\n    return this[BUFFER].shift() as RType\n  }\n\n  [FLUSH](noDrain: boolean = false) {\n    do {} while (\n      this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&\n      this[BUFFER].length\n    )\n\n    if (!noDrain && !this[BUFFER].length && !this[EOF]) this.emit('drain')\n  }\n\n  [FLUSHCHUNK](chunk: RType) {\n    this.emit('data', chunk)\n    return this[FLOWING]\n  }\n\n  /**\n   * Pipe all data emitted by this stream into the destination provided.\n   *\n   * Triggers the flow of data.\n   */\n  pipe(dest: W, opts?: PipeOptions): W {\n    if (this[DESTROYED]) return dest\n    this[DISCARDED] = false\n\n    const ended = this[EMITTED_END]\n    opts = opts || {}\n    if (dest === proc.stdout || dest === proc.stderr) opts.end = false\n    else opts.end = opts.end !== false\n    opts.proxyErrors = !!opts.proxyErrors\n\n    // piping an ended stream ends immediately\n    if (ended) {\n      if (opts.end) dest.end()\n    } else {\n      // \"as\" here just ignores the WType, which pipes don't care about,\n      // since they're only consuming from us, and writing to the dest\n      this[PIPES].push(\n        !opts.proxyErrors\n          ? new Pipe(this as Minipass, dest, opts)\n          : new PipeProxyErrors(this as Minipass, dest, opts)\n      )\n      if (this[ASYNC]) defer(() => this[RESUME]())\n      else this[RESUME]()\n    }\n\n    return dest\n  }\n\n  /**\n   * Fully unhook a piped destination stream.\n   *\n   * If the destination stream was the only consumer of this stream (ie,\n   * there are no other piped destinations or `'data'` event listeners)\n   * then the flow of data will stop until there is another consumer or\n   * {@link Minipass#resume} is explicitly called.\n   */\n  unpipe(dest: W) {\n    const p = this[PIPES].find(p => p.dest === dest)\n    if (p) {\n      if (this[PIPES].length === 1) {\n        if (this[FLOWING] && this[DATALISTENERS] === 0) {\n          this[FLOWING] = false\n        }\n        this[PIPES] = []\n      } else this[PIPES].splice(this[PIPES].indexOf(p), 1)\n      p.unpipe()\n    }\n  }\n\n  /**\n   * Alias for {@link Minipass#on}\n   */\n  addListener(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ): this {\n    return this.on(ev, handler)\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.on`, with the following\n   * behavior differences to prevent data loss and unnecessary hangs:\n   *\n   * - Adding a 'data' event handler will trigger the flow of data\n   *\n   * - Adding a 'readable' event handler when there is data waiting to be read\n   *   will cause 'readable' to be emitted immediately.\n   *\n   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has\n   *   already passed will cause the event to be emitted immediately and all\n   *   handlers removed.\n   *\n   * - Adding an 'error' event handler after an error has been emitted will\n   *   cause the event to be re-emitted immediately with the error previously\n   *   raised.\n   */\n  on(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ): this {\n    const ret = super.on(\n      ev as string | symbol,\n      handler as (...a: any[]) => any\n    )\n    if (ev === 'data') {\n      this[DISCARDED] = false\n      this[DATALISTENERS]++\n      if (!this[PIPES].length && !this[FLOWING]) {\n        this[RESUME]()\n      }\n    } else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {\n      super.emit('readable')\n    } else if (isEndish(ev) && this[EMITTED_END]) {\n      super.emit(ev)\n      this.removeAllListeners(ev)\n    } else if (ev === 'error' && this[EMITTED_ERROR]) {\n      const h = handler as (...a: Events['error']) => any\n      if (this[ASYNC]) defer(() => h.call(this, this[EMITTED_ERROR]))\n      else h.call(this, this[EMITTED_ERROR])\n    }\n    return ret\n  }\n\n  /**\n   * Alias for {@link Minipass#off}\n   */\n  removeListener(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ) {\n    return this.off(ev, handler)\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.off`\n   *\n   * If a 'data' event handler is removed, and it was the last consumer\n   * (ie, there are no pipe destinations or other 'data' event listeners),\n   * then the flow of data will stop until there is another consumer or\n   * {@link Minipass#resume} is explicitly called.\n   */\n  off(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ) {\n    const ret = super.off(\n      ev as string | symbol,\n      handler as (...a: any[]) => any\n    )\n    // if we previously had listeners, and now we don't, and we don't\n    // have any pipes, then stop the flow, unless it's been explicitly\n    // put in a discarded flowing state via stream.resume().\n    if (ev === 'data') {\n      this[DATALISTENERS] = this.listeners('data').length\n      if (\n        this[DATALISTENERS] === 0 &&\n        !this[DISCARDED] &&\n        !this[PIPES].length\n      ) {\n        this[FLOWING] = false\n      }\n    }\n    return ret\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.removeAllListeners`\n   *\n   * If all 'data' event handlers are removed, and they were the last consumer\n   * (ie, there are no pipe destinations), then the flow of data will stop\n   * until there is another consumer or {@link Minipass#resume} is explicitly\n   * called.\n   */\n  removeAllListeners(ev?: Event) {\n    const ret = super.removeAllListeners(ev as string | symbol | undefined)\n    if (ev === 'data' || ev === undefined) {\n      this[DATALISTENERS] = 0\n      if (!this[DISCARDED] && !this[PIPES].length) {\n        this[FLOWING] = false\n      }\n    }\n    return ret\n  }\n\n  /**\n   * true if the 'end' event has been emitted\n   */\n  get emittedEnd() {\n    return this[EMITTED_END]\n  }\n\n  [MAYBE_EMIT_END]() {\n    if (\n      !this[EMITTING_END] &&\n      !this[EMITTED_END] &&\n      !this[DESTROYED] &&\n      this[BUFFER].length === 0 &&\n      this[EOF]\n    ) {\n      this[EMITTING_END] = true\n      this.emit('end')\n      this.emit('prefinish')\n      this.emit('finish')\n      if (this[CLOSED]) this.emit('close')\n      this[EMITTING_END] = false\n    }\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.emit`, with the following\n   * behavior differences to prevent data loss and unnecessary hangs:\n   *\n   * If the stream has been destroyed, and the event is something other\n   * than 'close' or 'error', then `false` is returned and no handlers\n   * are called.\n   *\n   * If the event is 'end', and has already been emitted, then the event\n   * is ignored. If the stream is in a paused or non-flowing state, then\n   * the event will be deferred until data flow resumes. If the stream is\n   * async, then handlers will be called on the next tick rather than\n   * immediately.\n   *\n   * If the event is 'close', and 'end' has not yet been emitted, then\n   * the event will be deferred until after 'end' is emitted.\n   *\n   * If the event is 'error', and an AbortSignal was provided for the stream,\n   * and there are no listeners, then the event is ignored, matching the\n   * behavior of node core streams in the presense of an AbortSignal.\n   *\n   * If the event is 'finish' or 'prefinish', then all listeners will be\n   * removed after emitting the event, to prevent double-firing.\n   */\n  emit(\n    ev: Event,\n    ...args: Events[Event]\n  ): boolean {\n    const data = args[0]\n    // error and close are only events allowed after calling destroy()\n    if (\n      ev !== 'error' &&\n      ev !== 'close' &&\n      ev !== DESTROYED &&\n      this[DESTROYED]\n    ) {\n      return false\n    } else if (ev === 'data') {\n      return !this[OBJECTMODE] && !data\n        ? false\n        : this[ASYNC]\n        ? (defer(() => this[EMITDATA](data as RType)), true)\n        : this[EMITDATA](data as RType)\n    } else if (ev === 'end') {\n      return this[EMITEND]()\n    } else if (ev === 'close') {\n      this[CLOSED] = true\n      // don't emit close before 'end' and 'finish'\n      if (!this[EMITTED_END] && !this[DESTROYED]) return false\n      const ret = super.emit('close')\n      this.removeAllListeners('close')\n      return ret\n    } else if (ev === 'error') {\n      this[EMITTED_ERROR] = data\n      super.emit(ERROR, data)\n      const ret =\n        !this[SIGNAL] || this.listeners('error').length\n          ? super.emit('error', data)\n          : false\n      this[MAYBE_EMIT_END]()\n      return ret\n    } else if (ev === 'resume') {\n      const ret = super.emit('resume')\n      this[MAYBE_EMIT_END]()\n      return ret\n    } else if (ev === 'finish' || ev === 'prefinish') {\n      const ret = super.emit(ev)\n      this.removeAllListeners(ev)\n      return ret\n    }\n\n    // Some other unknown event\n    const ret = super.emit(ev as string, ...args)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [EMITDATA](data: RType) {\n    for (const p of this[PIPES]) {\n      if (p.dest.write(data as RType) === false) this.pause()\n    }\n    const ret = this[DISCARDED] ? false : super.emit('data', data)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [EMITEND]() {\n    if (this[EMITTED_END]) return false\n\n    this[EMITTED_END] = true\n    this.readable = false\n    return this[ASYNC]\n      ? (defer(() => this[EMITEND2]()), true)\n      : this[EMITEND2]()\n  }\n\n  [EMITEND2]() {\n    if (this[DECODER]) {\n      const data = this[DECODER].end()\n      if (data) {\n        for (const p of this[PIPES]) {\n          p.dest.write(data as RType)\n        }\n        if (!this[DISCARDED]) super.emit('data', data)\n      }\n    }\n\n    for (const p of this[PIPES]) {\n      p.end()\n    }\n    const ret = super.emit('end')\n    this.removeAllListeners('end')\n    return ret\n  }\n\n  /**\n   * Return a Promise that resolves to an array of all emitted data once\n   * the stream ends.\n   */\n  async collect(): Promise {\n    const buf: RType[] & { dataLength: number } = Object.assign([], {\n      dataLength: 0,\n    })\n    if (!this[OBJECTMODE]) buf.dataLength = 0\n    // set the promise first, in case an error is raised\n    // by triggering the flow here.\n    const p = this.promise()\n    this.on('data', c => {\n      buf.push(c)\n      if (!this[OBJECTMODE])\n        buf.dataLength += (c as Minipass.BufferOrString).length\n    })\n    await p\n    return buf\n  }\n\n  /**\n   * Return a Promise that resolves to the concatenation of all emitted data\n   * once the stream ends.\n   *\n   * Not allowed on objectMode streams.\n   */\n  async concat(): Promise {\n    if (this[OBJECTMODE]) {\n      throw new Error('cannot concat in objectMode')\n    }\n    const buf = await this.collect()\n    return (\n      this[ENCODING]\n        ? buf.join('')\n        : Buffer.concat(buf as Buffer[], buf.dataLength)\n    ) as RType\n  }\n\n  /**\n   * Return a void Promise that resolves once the stream ends.\n   */\n  async promise(): Promise {\n    return new Promise((resolve, reject) => {\n      this.on(DESTROYED, () => reject(new Error('stream destroyed')))\n      this.on('error', er => reject(er))\n      this.on('end', () => resolve())\n    })\n  }\n\n  /**\n   * Asynchronous `for await of` iteration.\n   *\n   * This will continue emitting all chunks until the stream terminates.\n   */\n  [Symbol.asyncIterator](): AsyncGenerator {\n    // set this up front, in case the consumer doesn't call next()\n    // right away.\n    this[DISCARDED] = false\n    let stopped = false\n    const stop = async (): Promise> => {\n      this.pause()\n      stopped = true\n      return { value: undefined, done: true }\n    }\n    const next = (): Promise> => {\n      if (stopped) return stop()\n      const res = this.read()\n      if (res !== null) return Promise.resolve({ done: false, value: res })\n\n      if (this[EOF]) return stop()\n\n      let resolve!: (res: IteratorResult) => void\n      let reject!: (er: unknown) => void\n      const onerr = (er: unknown) => {\n        this.off('data', ondata)\n        this.off('end', onend)\n        this.off(DESTROYED, ondestroy)\n        stop()\n        reject(er)\n      }\n      const ondata = (value: RType) => {\n        this.off('error', onerr)\n        this.off('end', onend)\n        this.off(DESTROYED, ondestroy)\n        this.pause()\n        resolve({ value, done: !!this[EOF] })\n      }\n      const onend = () => {\n        this.off('error', onerr)\n        this.off('data', ondata)\n        this.off(DESTROYED, ondestroy)\n        stop()\n        resolve({ done: true, value: undefined })\n      }\n      const ondestroy = () => onerr(new Error('stream destroyed'))\n      return new Promise>((res, rej) => {\n        reject = rej\n        resolve = res\n        this.once(DESTROYED, ondestroy)\n        this.once('error', onerr)\n        this.once('end', onend)\n        this.once('data', ondata)\n      })\n    }\n\n    return {\n      next,\n      throw: stop,\n      return: stop,\n      [Symbol.asyncIterator]() {\n        return this\n      },\n    }\n  }\n\n  /**\n   * Synchronous `for of` iteration.\n   *\n   * The iteration will terminate when the internal buffer runs out, even\n   * if the stream has not yet terminated.\n   */\n  [Symbol.iterator](): Generator {\n    // set this up front, in case the consumer doesn't call next()\n    // right away.\n    this[DISCARDED] = false\n    let stopped = false\n    const stop = (): IteratorReturnResult => {\n      this.pause()\n      this.off(ERROR, stop)\n      this.off(DESTROYED, stop)\n      this.off('end', stop)\n      stopped = true\n      return { done: true, value: undefined }\n    }\n\n    const next = (): IteratorResult => {\n      if (stopped) return stop()\n      const value = this.read()\n      return value === null ? stop() : { done: false, value }\n    }\n\n    this.once('end', stop)\n    this.once(ERROR, stop)\n    this.once(DESTROYED, stop)\n\n    return {\n      next,\n      throw: stop,\n      return: stop,\n      [Symbol.iterator]() {\n        return this\n      },\n    }\n  }\n\n  /**\n   * Destroy a stream, preventing it from being used for any further purpose.\n   *\n   * If the stream has a `close()` method, then it will be called on\n   * destruction.\n   *\n   * After destruction, any attempt to write data, read data, or emit most\n   * events will be ignored.\n   *\n   * If an error argument is provided, then it will be emitted in an\n   * 'error' event.\n   */\n  destroy(er?: unknown) {\n    if (this[DESTROYED]) {\n      if (er) this.emit('error', er)\n      else this.emit(DESTROYED)\n      return this\n    }\n\n    this[DESTROYED] = true\n    this[DISCARDED] = true\n\n    // throw away all buffered data, it's never coming out\n    this[BUFFER].length = 0\n    this[BUFFERLENGTH] = 0\n\n    const wc = this as Minipass & {\n      close?: () => void\n    }\n    if (typeof wc.close === 'function' && !this[CLOSED]) wc.close()\n\n    if (er) this.emit('error', er)\n    // if no error to emit, still reject pending promises\n    else this.emit(DESTROYED)\n\n    return this\n  }\n\n  /**\n   * Alias for {@link isStream}\n   *\n   * Former export location, maintained for backwards compatibility.\n   *\n   * @deprecated\n   */\n  static get isStream() {\n    return isStream\n  }\n}\n", "const { Minipass } = require('minipass')\nconst _data = Symbol('_data')\nconst _length = Symbol('_length')\nclass Collect extends Minipass {\n  constructor (options) {\n    super(options)\n    this[_data] = []\n    this[_length] = 0\n  }\n  write (chunk, encoding, cb) {\n    if (typeof encoding === 'function')\n      cb = encoding, encoding = 'utf8'\n\n    if (!encoding)\n      encoding = 'utf8'\n\n    const c = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, encoding)\n    this[_data].push(c)\n    this[_length] += c.length\n    if (cb)\n      cb()\n    return true\n  }\n  end (chunk, encoding, cb) {\n    if (typeof chunk === 'function')\n      cb = chunk, chunk = null\n    if (typeof encoding === 'function')\n      cb = encoding, encoding = 'utf8'\n    if (chunk)\n      this.write(chunk, encoding)\n    const result = Buffer.concat(this[_data], this[_length])\n    super.write(result)\n    return super.end(cb)\n  }\n}\nmodule.exports = Collect\n\n// it would be possible to DRY this a bit by doing something like\n// this.collector = new Collect() and listening on its data event,\n// but it's not much code, and we may as well save the extra obj\nclass CollectPassThrough extends Minipass {\n  constructor (options) {\n    super(options)\n    this[_data] = []\n    this[_length] = 0\n  }\n  write (chunk, encoding, cb) {\n    if (typeof encoding === 'function')\n      cb = encoding, encoding = 'utf8'\n\n    if (!encoding)\n      encoding = 'utf8'\n\n    const c = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, encoding)\n    this[_data].push(c)\n    this[_length] += c.length\n    return super.write(chunk, encoding, cb)\n  }\n  end (chunk, encoding, cb) {\n    if (typeof chunk === 'function')\n      cb = chunk, chunk = null\n    if (typeof encoding === 'function')\n      cb = encoding, encoding = 'utf8'\n    if (chunk)\n      this.write(chunk, encoding)\n    const result = Buffer.concat(this[_data], this[_length])\n    this.emit('collect', result)\n    return super.end(cb)\n  }\n}\nmodule.exports.PassThrough = CollectPassThrough\n", "'use strict'\nconst proc = typeof process === 'object' && process ? process : {\n  stdout: null,\n  stderr: null,\n}\nconst EE = require('events')\nconst Stream = require('stream')\nconst SD = require('string_decoder').StringDecoder\n\nconst EOF = Symbol('EOF')\nconst MAYBE_EMIT_END = Symbol('maybeEmitEnd')\nconst EMITTED_END = Symbol('emittedEnd')\nconst EMITTING_END = Symbol('emittingEnd')\nconst EMITTED_ERROR = Symbol('emittedError')\nconst CLOSED = Symbol('closed')\nconst READ = Symbol('read')\nconst FLUSH = Symbol('flush')\nconst FLUSHCHUNK = Symbol('flushChunk')\nconst ENCODING = Symbol('encoding')\nconst DECODER = Symbol('decoder')\nconst FLOWING = Symbol('flowing')\nconst PAUSED = Symbol('paused')\nconst RESUME = Symbol('resume')\nconst BUFFERLENGTH = Symbol('bufferLength')\nconst BUFFERPUSH = Symbol('bufferPush')\nconst BUFFERSHIFT = Symbol('bufferShift')\nconst OBJECTMODE = Symbol('objectMode')\nconst DESTROYED = Symbol('destroyed')\nconst EMITDATA = Symbol('emitData')\nconst EMITEND = Symbol('emitEnd')\nconst EMITEND2 = Symbol('emitEnd2')\nconst ASYNC = Symbol('async')\n\nconst defer = fn => Promise.resolve().then(fn)\n\n// TODO remove when Node v8 support drops\nconst doIter = global._MP_NO_ITERATOR_SYMBOLS_  !== '1'\nconst ASYNCITERATOR = doIter && Symbol.asyncIterator\n  || Symbol('asyncIterator not implemented')\nconst ITERATOR = doIter && Symbol.iterator\n  || Symbol('iterator not implemented')\n\n// events that mean 'the stream is over'\n// these are treated specially, and re-emitted\n// if they are listened for after emitting.\nconst isEndish = ev =>\n  ev === 'end' ||\n  ev === 'finish' ||\n  ev === 'prefinish'\n\nconst isArrayBuffer = b => b instanceof ArrayBuffer ||\n  typeof b === 'object' &&\n  b.constructor &&\n  b.constructor.name === 'ArrayBuffer' &&\n  b.byteLength >= 0\n\nconst isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b)\n\nclass Pipe {\n  constructor (src, dest, opts) {\n    this.src = src\n    this.dest = dest\n    this.opts = opts\n    this.ondrain = () => src[RESUME]()\n    dest.on('drain', this.ondrain)\n  }\n  unpipe () {\n    this.dest.removeListener('drain', this.ondrain)\n  }\n  // istanbul ignore next - only here for the prototype\n  proxyErrors () {}\n  end () {\n    this.unpipe()\n    if (this.opts.end)\n      this.dest.end()\n  }\n}\n\nclass PipeProxyErrors extends Pipe {\n  unpipe () {\n    this.src.removeListener('error', this.proxyErrors)\n    super.unpipe()\n  }\n  constructor (src, dest, opts) {\n    super(src, dest, opts)\n    this.proxyErrors = er => dest.emit('error', er)\n    src.on('error', this.proxyErrors)\n  }\n}\n\nmodule.exports = class Minipass extends Stream {\n  constructor (options) {\n    super()\n    this[FLOWING] = false\n    // whether we're explicitly paused\n    this[PAUSED] = false\n    this.pipes = []\n    this.buffer = []\n    this[OBJECTMODE] = options && options.objectMode || false\n    if (this[OBJECTMODE])\n      this[ENCODING] = null\n    else\n      this[ENCODING] = options && options.encoding || null\n    if (this[ENCODING] === 'buffer')\n      this[ENCODING] = null\n    this[ASYNC] = options && !!options.async || false\n    this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null\n    this[EOF] = false\n    this[EMITTED_END] = false\n    this[EMITTING_END] = false\n    this[CLOSED] = false\n    this[EMITTED_ERROR] = null\n    this.writable = true\n    this.readable = true\n    this[BUFFERLENGTH] = 0\n    this[DESTROYED] = false\n  }\n\n  get bufferLength () { return this[BUFFERLENGTH] }\n\n  get encoding () { return this[ENCODING] }\n  set encoding (enc) {\n    if (this[OBJECTMODE])\n      throw new Error('cannot set encoding in objectMode')\n\n    if (this[ENCODING] && enc !== this[ENCODING] &&\n        (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH]))\n      throw new Error('cannot change encoding')\n\n    if (this[ENCODING] !== enc) {\n      this[DECODER] = enc ? new SD(enc) : null\n      if (this.buffer.length)\n        this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk))\n    }\n\n    this[ENCODING] = enc\n  }\n\n  setEncoding (enc) {\n    this.encoding = enc\n  }\n\n  get objectMode () { return this[OBJECTMODE] }\n  set objectMode (om) { this[OBJECTMODE] = this[OBJECTMODE] || !!om }\n\n  get ['async'] () { return this[ASYNC] }\n  set ['async'] (a) { this[ASYNC] = this[ASYNC] || !!a }\n\n  write (chunk, encoding, cb) {\n    if (this[EOF])\n      throw new Error('write after end')\n\n    if (this[DESTROYED]) {\n      this.emit('error', Object.assign(\n        new Error('Cannot call write after a stream was destroyed'),\n        { code: 'ERR_STREAM_DESTROYED' }\n      ))\n      return true\n    }\n\n    if (typeof encoding === 'function')\n      cb = encoding, encoding = 'utf8'\n\n    if (!encoding)\n      encoding = 'utf8'\n\n    const fn = this[ASYNC] ? defer : f => f()\n\n    // convert array buffers and typed array views into buffers\n    // at some point in the future, we may want to do the opposite!\n    // leave strings and buffers as-is\n    // anything else switches us into object mode\n    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {\n      if (isArrayBufferView(chunk))\n        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n      else if (isArrayBuffer(chunk))\n        chunk = Buffer.from(chunk)\n      else if (typeof chunk !== 'string')\n        // use the setter so we throw if we have encoding set\n        this.objectMode = true\n    }\n\n    // handle object mode up front, since it's simpler\n    // this yields better performance, fewer checks later.\n    if (this[OBJECTMODE]) {\n      /* istanbul ignore if - maybe impossible? */\n      if (this.flowing && this[BUFFERLENGTH] !== 0)\n        this[FLUSH](true)\n\n      if (this.flowing)\n        this.emit('data', chunk)\n      else\n        this[BUFFERPUSH](chunk)\n\n      if (this[BUFFERLENGTH] !== 0)\n        this.emit('readable')\n\n      if (cb)\n        fn(cb)\n\n      return this.flowing\n    }\n\n    // at this point the chunk is a buffer or string\n    // don't buffer it up or send it to the decoder\n    if (!chunk.length) {\n      if (this[BUFFERLENGTH] !== 0)\n        this.emit('readable')\n      if (cb)\n        fn(cb)\n      return this.flowing\n    }\n\n    // fast-path writing strings of same encoding to a stream with\n    // an empty buffer, skipping the buffer/decoder dance\n    if (typeof chunk === 'string' &&\n        // unless it is a string already ready for us to use\n        !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) {\n      chunk = Buffer.from(chunk, encoding)\n    }\n\n    if (Buffer.isBuffer(chunk) && this[ENCODING])\n      chunk = this[DECODER].write(chunk)\n\n    // Note: flushing CAN potentially switch us into not-flowing mode\n    if (this.flowing && this[BUFFERLENGTH] !== 0)\n      this[FLUSH](true)\n\n    if (this.flowing)\n      this.emit('data', chunk)\n    else\n      this[BUFFERPUSH](chunk)\n\n    if (this[BUFFERLENGTH] !== 0)\n      this.emit('readable')\n\n    if (cb)\n      fn(cb)\n\n    return this.flowing\n  }\n\n  read (n) {\n    if (this[DESTROYED])\n      return null\n\n    if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) {\n      this[MAYBE_EMIT_END]()\n      return null\n    }\n\n    if (this[OBJECTMODE])\n      n = null\n\n    if (this.buffer.length > 1 && !this[OBJECTMODE]) {\n      if (this.encoding)\n        this.buffer = [this.buffer.join('')]\n      else\n        this.buffer = [Buffer.concat(this.buffer, this[BUFFERLENGTH])]\n    }\n\n    const ret = this[READ](n || null, this.buffer[0])\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [READ] (n, chunk) {\n    if (n === chunk.length || n === null)\n      this[BUFFERSHIFT]()\n    else {\n      this.buffer[0] = chunk.slice(n)\n      chunk = chunk.slice(0, n)\n      this[BUFFERLENGTH] -= n\n    }\n\n    this.emit('data', chunk)\n\n    if (!this.buffer.length && !this[EOF])\n      this.emit('drain')\n\n    return chunk\n  }\n\n  end (chunk, encoding, cb) {\n    if (typeof chunk === 'function')\n      cb = chunk, chunk = null\n    if (typeof encoding === 'function')\n      cb = encoding, encoding = 'utf8'\n    if (chunk)\n      this.write(chunk, encoding)\n    if (cb)\n      this.once('end', cb)\n    this[EOF] = true\n    this.writable = false\n\n    // if we haven't written anything, then go ahead and emit,\n    // even if we're not reading.\n    // we'll re-emit if a new 'end' listener is added anyway.\n    // This makes MP more suitable to write-only use cases.\n    if (this.flowing || !this[PAUSED])\n      this[MAYBE_EMIT_END]()\n    return this\n  }\n\n  // don't let the internal resume be overwritten\n  [RESUME] () {\n    if (this[DESTROYED])\n      return\n\n    this[PAUSED] = false\n    this[FLOWING] = true\n    this.emit('resume')\n    if (this.buffer.length)\n      this[FLUSH]()\n    else if (this[EOF])\n      this[MAYBE_EMIT_END]()\n    else\n      this.emit('drain')\n  }\n\n  resume () {\n    return this[RESUME]()\n  }\n\n  pause () {\n    this[FLOWING] = false\n    this[PAUSED] = true\n  }\n\n  get destroyed () {\n    return this[DESTROYED]\n  }\n\n  get flowing () {\n    return this[FLOWING]\n  }\n\n  get paused () {\n    return this[PAUSED]\n  }\n\n  [BUFFERPUSH] (chunk) {\n    if (this[OBJECTMODE])\n      this[BUFFERLENGTH] += 1\n    else\n      this[BUFFERLENGTH] += chunk.length\n    this.buffer.push(chunk)\n  }\n\n  [BUFFERSHIFT] () {\n    if (this.buffer.length) {\n      if (this[OBJECTMODE])\n        this[BUFFERLENGTH] -= 1\n      else\n        this[BUFFERLENGTH] -= this.buffer[0].length\n    }\n    return this.buffer.shift()\n  }\n\n  [FLUSH] (noDrain) {\n    do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()))\n\n    if (!noDrain && !this.buffer.length && !this[EOF])\n      this.emit('drain')\n  }\n\n  [FLUSHCHUNK] (chunk) {\n    return chunk ? (this.emit('data', chunk), this.flowing) : false\n  }\n\n  pipe (dest, opts) {\n    if (this[DESTROYED])\n      return\n\n    const ended = this[EMITTED_END]\n    opts = opts || {}\n    if (dest === proc.stdout || dest === proc.stderr)\n      opts.end = false\n    else\n      opts.end = opts.end !== false\n    opts.proxyErrors = !!opts.proxyErrors\n\n    // piping an ended stream ends immediately\n    if (ended) {\n      if (opts.end)\n        dest.end()\n    } else {\n      this.pipes.push(!opts.proxyErrors ? new Pipe(this, dest, opts)\n        : new PipeProxyErrors(this, dest, opts))\n      if (this[ASYNC])\n        defer(() => this[RESUME]())\n      else\n        this[RESUME]()\n    }\n\n    return dest\n  }\n\n  unpipe (dest) {\n    const p = this.pipes.find(p => p.dest === dest)\n    if (p) {\n      this.pipes.splice(this.pipes.indexOf(p), 1)\n      p.unpipe()\n    }\n  }\n\n  addListener (ev, fn) {\n    return this.on(ev, fn)\n  }\n\n  on (ev, fn) {\n    const ret = super.on(ev, fn)\n    if (ev === 'data' && !this.pipes.length && !this.flowing)\n      this[RESUME]()\n    else if (ev === 'readable' && this[BUFFERLENGTH] !== 0)\n      super.emit('readable')\n    else if (isEndish(ev) && this[EMITTED_END]) {\n      super.emit(ev)\n      this.removeAllListeners(ev)\n    } else if (ev === 'error' && this[EMITTED_ERROR]) {\n      if (this[ASYNC])\n        defer(() => fn.call(this, this[EMITTED_ERROR]))\n      else\n        fn.call(this, this[EMITTED_ERROR])\n    }\n    return ret\n  }\n\n  get emittedEnd () {\n    return this[EMITTED_END]\n  }\n\n  [MAYBE_EMIT_END] () {\n    if (!this[EMITTING_END] &&\n        !this[EMITTED_END] &&\n        !this[DESTROYED] &&\n        this.buffer.length === 0 &&\n        this[EOF]) {\n      this[EMITTING_END] = true\n      this.emit('end')\n      this.emit('prefinish')\n      this.emit('finish')\n      if (this[CLOSED])\n        this.emit('close')\n      this[EMITTING_END] = false\n    }\n  }\n\n  emit (ev, data, ...extra) {\n    // error and close are only events allowed after calling destroy()\n    if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED])\n      return\n    else if (ev === 'data') {\n      return !data ? false\n        : this[ASYNC] ? defer(() => this[EMITDATA](data))\n        : this[EMITDATA](data)\n    } else if (ev === 'end') {\n      return this[EMITEND]()\n    } else if (ev === 'close') {\n      this[CLOSED] = true\n      // don't emit close before 'end' and 'finish'\n      if (!this[EMITTED_END] && !this[DESTROYED])\n        return\n      const ret = super.emit('close')\n      this.removeAllListeners('close')\n      return ret\n    } else if (ev === 'error') {\n      this[EMITTED_ERROR] = data\n      const ret = super.emit('error', data)\n      this[MAYBE_EMIT_END]()\n      return ret\n    } else if (ev === 'resume') {\n      const ret = super.emit('resume')\n      this[MAYBE_EMIT_END]()\n      return ret\n    } else if (ev === 'finish' || ev === 'prefinish') {\n      const ret = super.emit(ev)\n      this.removeAllListeners(ev)\n      return ret\n    }\n\n    // Some other unknown event\n    const ret = super.emit(ev, data, ...extra)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [EMITDATA] (data) {\n    for (const p of this.pipes) {\n      if (p.dest.write(data) === false)\n        this.pause()\n    }\n    const ret = super.emit('data', data)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [EMITEND] () {\n    if (this[EMITTED_END])\n      return\n\n    this[EMITTED_END] = true\n    this.readable = false\n    if (this[ASYNC])\n      defer(() => this[EMITEND2]())\n    else\n      this[EMITEND2]()\n  }\n\n  [EMITEND2] () {\n    if (this[DECODER]) {\n      const data = this[DECODER].end()\n      if (data) {\n        for (const p of this.pipes) {\n          p.dest.write(data)\n        }\n        super.emit('data', data)\n      }\n    }\n\n    for (const p of this.pipes) {\n      p.end()\n    }\n    const ret = super.emit('end')\n    this.removeAllListeners('end')\n    return ret\n  }\n\n  // const all = await stream.collect()\n  collect () {\n    const buf = []\n    if (!this[OBJECTMODE])\n      buf.dataLength = 0\n    // set the promise first, in case an error is raised\n    // by triggering the flow here.\n    const p = this.promise()\n    this.on('data', c => {\n      buf.push(c)\n      if (!this[OBJECTMODE])\n        buf.dataLength += c.length\n    })\n    return p.then(() => buf)\n  }\n\n  // const data = await stream.concat()\n  concat () {\n    return this[OBJECTMODE]\n      ? Promise.reject(new Error('cannot concat in objectMode'))\n      : this.collect().then(buf =>\n          this[OBJECTMODE]\n            ? Promise.reject(new Error('cannot concat in objectMode'))\n            : this[ENCODING] ? buf.join('') : Buffer.concat(buf, buf.dataLength))\n  }\n\n  // stream.promise().then(() => done, er => emitted error)\n  promise () {\n    return new Promise((resolve, reject) => {\n      this.on(DESTROYED, () => reject(new Error('stream destroyed')))\n      this.on('error', er => reject(er))\n      this.on('end', () => resolve())\n    })\n  }\n\n  // for await (let chunk of stream)\n  [ASYNCITERATOR] () {\n    const next = () => {\n      const res = this.read()\n      if (res !== null)\n        return Promise.resolve({ done: false, value: res })\n\n      if (this[EOF])\n        return Promise.resolve({ done: true })\n\n      let resolve = null\n      let reject = null\n      const onerr = er => {\n        this.removeListener('data', ondata)\n        this.removeListener('end', onend)\n        reject(er)\n      }\n      const ondata = value => {\n        this.removeListener('error', onerr)\n        this.removeListener('end', onend)\n        this.pause()\n        resolve({ value: value, done: !!this[EOF] })\n      }\n      const onend = () => {\n        this.removeListener('error', onerr)\n        this.removeListener('data', ondata)\n        resolve({ done: true })\n      }\n      const ondestroy = () => onerr(new Error('stream destroyed'))\n      return new Promise((res, rej) => {\n        reject = rej\n        resolve = res\n        this.once(DESTROYED, ondestroy)\n        this.once('error', onerr)\n        this.once('end', onend)\n        this.once('data', ondata)\n      })\n    }\n\n    return { next }\n  }\n\n  // for (let chunk of stream)\n  [ITERATOR] () {\n    const next = () => {\n      const value = this.read()\n      const done = value === null\n      return { value, done }\n    }\n    return { next }\n  }\n\n  destroy (er) {\n    if (this[DESTROYED]) {\n      if (er)\n        this.emit('error', er)\n      else\n        this.emit(DESTROYED)\n      return this\n    }\n\n    this[DESTROYED] = true\n\n    // throw away all buffered data, it's never coming out\n    this.buffer.length = 0\n    this[BUFFERLENGTH] = 0\n\n    if (typeof this.close === 'function' && !this[CLOSED])\n      this.close()\n\n    if (er)\n      this.emit('error', er)\n    else // if no error to emit, still reject pending promises\n      this.emit(DESTROYED)\n\n    return this\n  }\n\n  static isStream (s) {\n    return !!s && (s instanceof Minipass || s instanceof Stream ||\n      s instanceof EE && (\n        typeof s.pipe === 'function' || // readable\n        (typeof s.write === 'function' && typeof s.end === 'function') // writable\n      ))\n  }\n}\n", "const Minipass = require('minipass')\nconst EE = require('events')\nconst isStream = s => s && s instanceof EE && (\n  typeof s.pipe === 'function' || // readable\n  (typeof s.write === 'function' && typeof s.end === 'function') // writable\n)\n\nconst _head = Symbol('_head')\nconst _tail = Symbol('_tail')\nconst _linkStreams = Symbol('_linkStreams')\nconst _setHead = Symbol('_setHead')\nconst _setTail = Symbol('_setTail')\nconst _onError = Symbol('_onError')\nconst _onData = Symbol('_onData')\nconst _onEnd = Symbol('_onEnd')\nconst _onDrain = Symbol('_onDrain')\nconst _streams = Symbol('_streams')\nclass Pipeline extends Minipass {\n  constructor (opts, ...streams) {\n    if (isStream(opts)) {\n      streams.unshift(opts)\n      opts = {}\n    }\n\n    super(opts)\n    this[_streams] = []\n    if (streams.length)\n      this.push(...streams)\n  }\n\n  [_linkStreams] (streams) {\n    // reduce takes (left,right), and we return right to make it the\n    // new left value.\n    return streams.reduce((src, dest) => {\n      src.on('error', er => dest.emit('error', er))\n      src.pipe(dest)\n      return dest\n    })\n  }\n\n  push (...streams) {\n    this[_streams].push(...streams)\n    if (this[_tail])\n      streams.unshift(this[_tail])\n\n    const linkRet = this[_linkStreams](streams)\n\n    this[_setTail](linkRet)\n    if (!this[_head])\n      this[_setHead](streams[0])\n  }\n\n  unshift (...streams) {\n    this[_streams].unshift(...streams)\n    if (this[_head])\n      streams.push(this[_head])\n\n    const linkRet = this[_linkStreams](streams)\n    this[_setHead](streams[0])\n    if (!this[_tail])\n      this[_setTail](linkRet)\n  }\n\n  destroy (er) {\n    // set fire to the whole thing.\n    this[_streams].forEach(s =>\n      typeof s.destroy === 'function' && s.destroy())\n    return super.destroy(er)\n  }\n\n  // readable interface -> tail\n  [_setTail] (stream) {\n    this[_tail] = stream\n    stream.on('error', er => this[_onError](stream, er))\n    stream.on('data', chunk => this[_onData](stream, chunk))\n    stream.on('end', () => this[_onEnd](stream))\n    stream.on('finish', () => this[_onEnd](stream))\n  }\n\n  // errors proxied down the pipeline\n  // they're considered part of the \"read\" interface\n  [_onError] (stream, er) {\n    if (stream === this[_tail])\n      this.emit('error', er)\n  }\n  [_onData] (stream, chunk) {\n    if (stream === this[_tail])\n      super.write(chunk)\n  }\n  [_onEnd] (stream) {\n    if (stream === this[_tail])\n      super.end()\n  }\n  pause () {\n    super.pause()\n    return this[_tail] && this[_tail].pause && this[_tail].pause()\n  }\n\n  // NB: Minipass calls its internal private [RESUME] method during\n  // pipe drains, to avoid hazards where stream.resume() is overridden.\n  // Thus, we need to listen to the resume *event*, not override the\n  // resume() method, and proxy *that* to the tail.\n  emit (ev, ...args) {\n    if (ev === 'resume' && this[_tail] && this[_tail].resume)\n      this[_tail].resume()\n    return super.emit(ev, ...args)\n  }\n\n  // writable interface -> head\n  [_setHead] (stream) {\n    this[_head] = stream\n    stream.on('drain', () => this[_onDrain](stream))\n  }\n  [_onDrain] (stream) {\n    if (stream === this[_head])\n      this.emit('drain')\n  }\n  write (chunk, enc, cb) {\n    return this[_head].write(chunk, enc, cb) &&\n      (this.flowing || this.buffer.length === 0)\n  }\n  end (chunk, enc, cb) {\n    this[_head].end(chunk, enc, cb)\n    return this\n  }\n}\n\nmodule.exports = Pipeline\n", "'use strict'\n\nconst crypto = require('crypto')\nconst { Minipass } = require('minipass')\n\nconst SPEC_ALGORITHMS = ['sha512', 'sha384', 'sha256']\nconst DEFAULT_ALGORITHMS = ['sha512']\n\n// TODO: this should really be a hardcoded list of algorithms we support,\n// rather than [a-z0-9].\nconst BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i\nconst SRI_REGEX = /^([a-z0-9]+)-([^?]+)([?\\S*]*)$/\nconst STRICT_SRI_REGEX = /^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\\?[\\x21-\\x7E]*)?$/\nconst VCHAR_REGEX = /^[\\x21-\\x7E]+$/\n\nconst getOptString = options => options?.length ? `?${options.join('?')}` : ''\n\nclass IntegrityStream extends Minipass {\n  #emittedIntegrity\n  #emittedSize\n  #emittedVerified\n\n  constructor (opts) {\n    super()\n    this.size = 0\n    this.opts = opts\n\n    // may be overridden later, but set now for class consistency\n    this.#getOptions()\n\n    // options used for calculating stream.  can't be changed.\n    if (opts?.algorithms) {\n      this.algorithms = [...opts.algorithms]\n    } else {\n      this.algorithms = [...DEFAULT_ALGORITHMS]\n    }\n    if (this.algorithm !== null && !this.algorithms.includes(this.algorithm)) {\n      this.algorithms.push(this.algorithm)\n    }\n\n    this.hashes = this.algorithms.map(crypto.createHash)\n  }\n\n  #getOptions () {\n    // For verification\n    this.sri = this.opts?.integrity ? parse(this.opts?.integrity, this.opts) : null\n    this.expectedSize = this.opts?.size\n\n    if (!this.sri) {\n      this.algorithm = null\n    } else if (this.sri.isHash) {\n      this.goodSri = true\n      this.algorithm = this.sri.algorithm\n    } else {\n      this.goodSri = !this.sri.isEmpty()\n      this.algorithm = this.sri.pickAlgorithm(this.opts)\n    }\n\n    this.digests = this.goodSri ? this.sri[this.algorithm] : null\n    this.optString = getOptString(this.opts?.options)\n  }\n\n  on (ev, handler) {\n    if (ev === 'size' && this.#emittedSize) {\n      return handler(this.#emittedSize)\n    }\n\n    if (ev === 'integrity' && this.#emittedIntegrity) {\n      return handler(this.#emittedIntegrity)\n    }\n\n    if (ev === 'verified' && this.#emittedVerified) {\n      return handler(this.#emittedVerified)\n    }\n\n    return super.on(ev, handler)\n  }\n\n  emit (ev, data) {\n    if (ev === 'end') {\n      this.#onEnd()\n    }\n    return super.emit(ev, data)\n  }\n\n  write (data) {\n    this.size += data.length\n    this.hashes.forEach(h => h.update(data))\n    return super.write(data)\n  }\n\n  #onEnd () {\n    if (!this.goodSri) {\n      this.#getOptions()\n    }\n    const newSri = parse(this.hashes.map((h, i) => {\n      return `${this.algorithms[i]}-${h.digest('base64')}${this.optString}`\n    }).join(' '), this.opts)\n    // Integrity verification mode\n    const match = this.goodSri && newSri.match(this.sri, this.opts)\n    if (typeof this.expectedSize === 'number' && this.size !== this.expectedSize) {\n      /* eslint-disable-next-line max-len */\n      const err = new Error(`stream size mismatch when checking ${this.sri}.\\n  Wanted: ${this.expectedSize}\\n  Found: ${this.size}`)\n      err.code = 'EBADSIZE'\n      err.found = this.size\n      err.expected = this.expectedSize\n      err.sri = this.sri\n      this.emit('error', err)\n    } else if (this.sri && !match) {\n      /* eslint-disable-next-line max-len */\n      const err = new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${newSri}. (${this.size} bytes)`)\n      err.code = 'EINTEGRITY'\n      err.found = newSri\n      err.expected = this.digests\n      err.algorithm = this.algorithm\n      err.sri = this.sri\n      this.emit('error', err)\n    } else {\n      this.#emittedSize = this.size\n      this.emit('size', this.size)\n      this.#emittedIntegrity = newSri\n      this.emit('integrity', newSri)\n      if (match) {\n        this.#emittedVerified = match\n        this.emit('verified', match)\n      }\n    }\n  }\n}\n\nclass Hash {\n  get isHash () {\n    return true\n  }\n\n  constructor (hash, opts) {\n    const strict = opts?.strict\n    this.source = hash.trim()\n\n    // set default values so that we make V8 happy to\n    // always see a familiar object template.\n    this.digest = ''\n    this.algorithm = ''\n    this.options = []\n\n    // 3.1. Integrity metadata (called \"Hash\" by ssri)\n    // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description\n    const match = this.source.match(\n      strict\n        ? STRICT_SRI_REGEX\n        : SRI_REGEX\n    )\n    if (!match) {\n      return\n    }\n    if (strict && !SPEC_ALGORITHMS.includes(match[1])) {\n      return\n    }\n    this.algorithm = match[1]\n    this.digest = match[2]\n\n    const rawOpts = match[3]\n    if (rawOpts) {\n      this.options = rawOpts.slice(1).split('?')\n    }\n  }\n\n  hexDigest () {\n    return this.digest && Buffer.from(this.digest, 'base64').toString('hex')\n  }\n\n  toJSON () {\n    return this.toString()\n  }\n\n  match (integrity, opts) {\n    const other = parse(integrity, opts)\n    if (!other) {\n      return false\n    }\n    if (other.isIntegrity) {\n      const algo = other.pickAlgorithm(opts, [this.algorithm])\n\n      if (!algo) {\n        return false\n      }\n\n      const foundHash = other[algo].find(hash => hash.digest === this.digest)\n\n      if (foundHash) {\n        return foundHash\n      }\n\n      return false\n    }\n    return other.digest === this.digest ? other : false\n  }\n\n  toString (opts) {\n    if (opts?.strict) {\n      // Strict mode enforces the standard as close to the foot of the\n      // letter as it can.\n      if (!(\n        // The spec has very restricted productions for algorithms.\n        // https://www.w3.org/TR/CSP2/#source-list-syntax\n        SPEC_ALGORITHMS.includes(this.algorithm) &&\n        // Usually, if someone insists on using a \"different\" base64, we\n        // leave it as-is, since there's multiple standards, and the\n        // specified is not a URL-safe variant.\n        // https://www.w3.org/TR/CSP2/#base64_value\n        this.digest.match(BASE64_REGEX) &&\n        // Option syntax is strictly visual chars.\n        // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-option-expression\n        // https://tools.ietf.org/html/rfc5234#appendix-B.1\n        this.options.every(opt => opt.match(VCHAR_REGEX))\n      )) {\n        return ''\n      }\n    }\n    return `${this.algorithm}-${this.digest}${getOptString(this.options)}`\n  }\n}\n\nfunction integrityHashToString (toString, sep, opts, hashes) {\n  const toStringIsNotEmpty = toString !== ''\n\n  let shouldAddFirstSep = false\n  let complement = ''\n\n  const lastIndex = hashes.length - 1\n\n  for (let i = 0; i < lastIndex; i++) {\n    const hashString = Hash.prototype.toString.call(hashes[i], opts)\n\n    if (hashString) {\n      shouldAddFirstSep = true\n\n      complement += hashString\n      complement += sep\n    }\n  }\n\n  const finalHashString = Hash.prototype.toString.call(hashes[lastIndex], opts)\n\n  if (finalHashString) {\n    shouldAddFirstSep = true\n    complement += finalHashString\n  }\n\n  if (toStringIsNotEmpty && shouldAddFirstSep) {\n    return toString + sep + complement\n  }\n\n  return toString + complement\n}\n\nclass Integrity {\n  get isIntegrity () {\n    return true\n  }\n\n  toJSON () {\n    return this.toString()\n  }\n\n  isEmpty () {\n    return Object.keys(this).length === 0\n  }\n\n  toString (opts) {\n    let sep = opts?.sep || ' '\n    let toString = ''\n\n    if (opts?.strict) {\n      // Entries must be separated by whitespace, according to spec.\n      sep = sep.replace(/\\S+/g, ' ')\n\n      for (const hash of SPEC_ALGORITHMS) {\n        if (this[hash]) {\n          toString = integrityHashToString(toString, sep, opts, this[hash])\n        }\n      }\n    } else {\n      for (const hash of Object.keys(this)) {\n        toString = integrityHashToString(toString, sep, opts, this[hash])\n      }\n    }\n\n    return toString\n  }\n\n  concat (integrity, opts) {\n    const other = typeof integrity === 'string'\n      ? integrity\n      : stringify(integrity, opts)\n    return parse(`${this.toString(opts)} ${other}`, opts)\n  }\n\n  hexDigest () {\n    return parse(this, { single: true }).hexDigest()\n  }\n\n  // add additional hashes to an integrity value, but prevent\n  // *changing* an existing integrity hash.\n  merge (integrity, opts) {\n    const other = parse(integrity, opts)\n    for (const algo in other) {\n      if (this[algo]) {\n        if (!this[algo].find(hash =>\n          other[algo].find(otherhash =>\n            hash.digest === otherhash.digest))) {\n          throw new Error('hashes do not match, cannot update integrity')\n        }\n      } else {\n        this[algo] = other[algo]\n      }\n    }\n  }\n\n  match (integrity, opts) {\n    const other = parse(integrity, opts)\n    if (!other) {\n      return false\n    }\n    const algo = other.pickAlgorithm(opts, Object.keys(this))\n    return (\n      !!algo &&\n      this[algo] &&\n      other[algo] &&\n      this[algo].find(hash =>\n        other[algo].find(otherhash =>\n          hash.digest === otherhash.digest\n        )\n      )\n    ) || false\n  }\n\n  // Pick the highest priority algorithm present, optionally also limited to a\n  // set of hashes found in another integrity.  When limiting it may return\n  // nothing.\n  pickAlgorithm (opts, hashes) {\n    const pickAlgorithm = opts?.pickAlgorithm || getPrioritizedHash\n    const keys = Object.keys(this).filter(k => {\n      if (hashes?.length) {\n        return hashes.includes(k)\n      }\n      return true\n    })\n    if (keys.length) {\n      return keys.reduce((acc, algo) => pickAlgorithm(acc, algo) || acc)\n    }\n    // no intersection between this and hashes,\n    return null\n  }\n}\n\nmodule.exports.parse = parse\nfunction parse (sri, opts) {\n  if (!sri) {\n    return null\n  }\n  if (typeof sri === 'string') {\n    return _parse(sri, opts)\n  } else if (sri.algorithm && sri.digest) {\n    const fullSri = new Integrity()\n    fullSri[sri.algorithm] = [sri]\n    return _parse(stringify(fullSri, opts), opts)\n  } else {\n    return _parse(stringify(sri, opts), opts)\n  }\n}\n\nfunction _parse (integrity, opts) {\n  // 3.4.3. Parse metadata\n  // https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n  if (opts?.single) {\n    return new Hash(integrity, opts)\n  }\n  const hashes = integrity.trim().split(/\\s+/).reduce((acc, string) => {\n    const hash = new Hash(string, opts)\n    if (hash.algorithm && hash.digest) {\n      const algo = hash.algorithm\n      if (!acc[algo]) {\n        acc[algo] = []\n      }\n      acc[algo].push(hash)\n    }\n    return acc\n  }, new Integrity())\n  return hashes.isEmpty() ? null : hashes\n}\n\nmodule.exports.stringify = stringify\nfunction stringify (obj, opts) {\n  if (obj.algorithm && obj.digest) {\n    return Hash.prototype.toString.call(obj, opts)\n  } else if (typeof obj === 'string') {\n    return stringify(parse(obj, opts), opts)\n  } else {\n    return Integrity.prototype.toString.call(obj, opts)\n  }\n}\n\nmodule.exports.fromHex = fromHex\nfunction fromHex (hexDigest, algorithm, opts) {\n  const optString = getOptString(opts?.options)\n  return parse(\n    `${algorithm}-${\n      Buffer.from(hexDigest, 'hex').toString('base64')\n    }${optString}`, opts\n  )\n}\n\nmodule.exports.fromData = fromData\nfunction fromData (data, opts) {\n  const algorithms = opts?.algorithms || [...DEFAULT_ALGORITHMS]\n  const optString = getOptString(opts?.options)\n  return algorithms.reduce((acc, algo) => {\n    const digest = crypto.createHash(algo).update(data).digest('base64')\n    const hash = new Hash(\n      `${algo}-${digest}${optString}`,\n      opts\n    )\n    /* istanbul ignore else - it would be VERY strange if the string we\n     * just calculated with an algo did not have an algo or digest.\n     */\n    if (hash.algorithm && hash.digest) {\n      const hashAlgo = hash.algorithm\n      if (!acc[hashAlgo]) {\n        acc[hashAlgo] = []\n      }\n      acc[hashAlgo].push(hash)\n    }\n    return acc\n  }, new Integrity())\n}\n\nmodule.exports.fromStream = fromStream\nfunction fromStream (stream, opts) {\n  const istream = integrityStream(opts)\n  return new Promise((resolve, reject) => {\n    stream.pipe(istream)\n    stream.on('error', reject)\n    istream.on('error', reject)\n    let sri\n    istream.on('integrity', s => {\n      sri = s\n    })\n    istream.on('end', () => resolve(sri))\n    istream.resume()\n  })\n}\n\nmodule.exports.checkData = checkData\nfunction checkData (data, sri, opts) {\n  sri = parse(sri, opts)\n  if (!sri || !Object.keys(sri).length) {\n    if (opts?.error) {\n      throw Object.assign(\n        new Error('No valid integrity hashes to check against'), {\n          code: 'EINTEGRITY',\n        }\n      )\n    } else {\n      return false\n    }\n  }\n  const algorithm = sri.pickAlgorithm(opts)\n  const digest = crypto.createHash(algorithm).update(data).digest('base64')\n  const newSri = parse({ algorithm, digest })\n  const match = newSri.match(sri, opts)\n  opts = opts || {}\n  if (match || !(opts.error)) {\n    return match\n  } else if (typeof opts.size === 'number' && (data.length !== opts.size)) {\n    /* eslint-disable-next-line max-len */\n    const err = new Error(`data size mismatch when checking ${sri}.\\n  Wanted: ${opts.size}\\n  Found: ${data.length}`)\n    err.code = 'EBADSIZE'\n    err.found = data.length\n    err.expected = opts.size\n    err.sri = sri\n    throw err\n  } else {\n    /* eslint-disable-next-line max-len */\n    const err = new Error(`Integrity checksum failed when using ${algorithm}: Wanted ${sri}, but got ${newSri}. (${data.length} bytes)`)\n    err.code = 'EINTEGRITY'\n    err.found = newSri\n    err.expected = sri\n    err.algorithm = algorithm\n    err.sri = sri\n    throw err\n  }\n}\n\nmodule.exports.checkStream = checkStream\nfunction checkStream (stream, sri, opts) {\n  opts = opts || Object.create(null)\n  opts.integrity = sri\n  sri = parse(sri, opts)\n  if (!sri || !Object.keys(sri).length) {\n    return Promise.reject(Object.assign(\n      new Error('No valid integrity hashes to check against'), {\n        code: 'EINTEGRITY',\n      }\n    ))\n  }\n  const checker = integrityStream(opts)\n  return new Promise((resolve, reject) => {\n    stream.pipe(checker)\n    stream.on('error', reject)\n    checker.on('error', reject)\n    let verified\n    checker.on('verified', s => {\n      verified = s\n    })\n    checker.on('end', () => resolve(verified))\n    checker.resume()\n  })\n}\n\nmodule.exports.integrityStream = integrityStream\nfunction integrityStream (opts = Object.create(null)) {\n  return new IntegrityStream(opts)\n}\n\nmodule.exports.create = createIntegrity\nfunction createIntegrity (opts) {\n  const algorithms = opts?.algorithms || [...DEFAULT_ALGORITHMS]\n  const optString = getOptString(opts?.options)\n\n  const hashes = algorithms.map(crypto.createHash)\n\n  return {\n    update: function (chunk, enc) {\n      hashes.forEach(h => h.update(chunk, enc))\n      return this\n    },\n    digest: function () {\n      const integrity = algorithms.reduce((acc, algo) => {\n        const digest = hashes.shift().digest('base64')\n        const hash = new Hash(\n          `${algo}-${digest}${optString}`,\n          opts\n        )\n        /* istanbul ignore else - it would be VERY strange if the hash we\n         * just calculated with an algo did not have an algo or digest.\n         */\n        if (hash.algorithm && hash.digest) {\n          const hashAlgo = hash.algorithm\n          if (!acc[hashAlgo]) {\n            acc[hashAlgo] = []\n          }\n          acc[hashAlgo].push(hash)\n        }\n        return acc\n      }, new Integrity())\n\n      return integrity\n    },\n  }\n}\n\nconst NODE_HASHES = crypto.getHashes()\n\n// This is a Best Effort\u2122 at a reasonable priority for hash algos\nconst DEFAULT_PRIORITY = [\n  'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',\n  // TODO - it's unclear _which_ of these Node will actually use as its name\n  //        for the algorithm, so we guesswork it based on the OpenSSL names.\n  'sha3',\n  'sha3-256', 'sha3-384', 'sha3-512',\n  'sha3_256', 'sha3_384', 'sha3_512',\n].filter(algo => NODE_HASHES.includes(algo))\n\nfunction getPrioritizedHash (algo1, algo2) {\n  /* eslint-disable-next-line max-len */\n  return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())\n    ? algo1\n    : algo2\n}\n", "/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author Jens Taylor\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n    var cache;\n\n    // Call this function without `new` to use the cached object (good for\n    // single-threaded environments), or with `new` to create a new object.\n    //\n    // @param {string} key A UTF-16 or ASCII string\n    // @param {number} seed An optional positive integer\n    // @return {object} A MurmurHash3 object for incremental hashing\n    function MurmurHash3(key, seed) {\n        var m = this instanceof MurmurHash3 ? this : cache;\n        m.reset(seed)\n        if (typeof key === 'string' && key.length > 0) {\n            m.hash(key);\n        }\n\n        if (m !== this) {\n            return m;\n        }\n    };\n\n    // Incrementally add a string to this hash\n    //\n    // @param {string} key A UTF-16 or ASCII string\n    // @return {object} this\n    MurmurHash3.prototype.hash = function(key) {\n        var h1, k1, i, top, len;\n\n        len = key.length;\n        this.len += len;\n\n        k1 = this.k1;\n        i = 0;\n        switch (this.rem) {\n            case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n            case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n            case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n            case 3:\n                k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n                k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n        }\n\n        this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n        len -= this.rem;\n        if (len > 0) {\n            h1 = this.h1;\n            while (1) {\n                k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n                k1 = (k1 << 15) | (k1 >>> 17);\n                k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n                h1 ^= k1;\n                h1 = (h1 << 13) | (h1 >>> 19);\n                h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n                if (i >= len) {\n                    break;\n                }\n\n                k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n                     ((key.charCodeAt(i++) & 0xffff) << 8) ^\n                     ((key.charCodeAt(i++) & 0xffff) << 16);\n                top = key.charCodeAt(i++);\n                k1 ^= ((top & 0xff) << 24) ^\n                      ((top & 0xff00) >> 8);\n            }\n\n            k1 = 0;\n            switch (this.rem) {\n                case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n                case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n                case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n            }\n\n            this.h1 = h1;\n        }\n\n        this.k1 = k1;\n        return this;\n    };\n\n    // Get the result of this hash\n    //\n    // @return {number} The 32-bit hash\n    MurmurHash3.prototype.result = function() {\n        var k1, h1;\n        \n        k1 = this.k1;\n        h1 = this.h1;\n\n        if (k1 > 0) {\n            k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n            k1 = (k1 << 15) | (k1 >>> 17);\n            k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n            h1 ^= k1;\n        }\n\n        h1 ^= this.len;\n\n        h1 ^= h1 >>> 16;\n        h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n        h1 ^= h1 >>> 13;\n        h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n        h1 ^= h1 >>> 16;\n\n        return h1 >>> 0;\n    };\n\n    // Reset the hash object for reuse\n    //\n    // @param {number} seed An optional positive integer\n    MurmurHash3.prototype.reset = function(seed) {\n        this.h1 = typeof seed === 'number' ? seed : 0;\n        this.rem = this.k1 = this.len = 0;\n        return this;\n    };\n\n    // A cached object to use. This can be safely used if you're in a single-\n    // threaded environment, otherwise you need to create new hashes to use.\n    cache = new MurmurHash3();\n\n    if (typeof(module) != 'undefined') {\n        module.exports = MurmurHash3;\n    } else {\n        this.MurmurHash3 = MurmurHash3;\n    }\n}());\n", "'use strict'\nvar MurmurHash3 = require('imurmurhash')\n\nmodule.exports = function (uniq) {\n  if (uniq) {\n    var hash = new MurmurHash3(uniq)\n    return ('00000000' + hash.result().toString(16)).slice(-8)\n  } else {\n    return (Math.random().toString(16) + '0000000').slice(2, 10)\n  }\n}\n", "var path = require('path')\n\nvar uniqueSlug = require('unique-slug')\n\nmodule.exports = function (filepath, prefix, uniq) {\n  return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq))\n}\n", "{\n  \"name\": \"cacache\",\n  \"version\": \"19.0.1\",\n  \"cache-version\": {\n    \"content\": \"2\",\n    \"index\": \"5\"\n  },\n  \"description\": \"Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.\",\n  \"main\": \"lib/index.js\",\n  \"files\": [\n    \"bin/\",\n    \"lib/\"\n  ],\n  \"scripts\": {\n    \"test\": \"tap\",\n    \"snap\": \"tap\",\n    \"coverage\": \"tap\",\n    \"test-docker\": \"docker run -it --rm --name pacotest -v \\\"$PWD\\\":/tmp -w /tmp node:latest npm test\",\n    \"lint\": \"npm run eslint\",\n    \"npmclilint\": \"npmcli-lint\",\n    \"lintfix\": \"npm run eslint -- --fix\",\n    \"postsnap\": \"npm run lintfix --\",\n    \"postlint\": \"template-oss-check\",\n    \"posttest\": \"npm run lint\",\n    \"template-oss-apply\": \"template-oss-apply --force\",\n    \"eslint\": \"eslint \\\"**/*.{js,cjs,ts,mjs,jsx,tsx}\\\"\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/npm/cacache.git\"\n  },\n  \"keywords\": [\n    \"cache\",\n    \"caching\",\n    \"content-addressable\",\n    \"sri\",\n    \"sri hash\",\n    \"subresource integrity\",\n    \"cache\",\n    \"storage\",\n    \"store\",\n    \"file store\",\n    \"filesystem\",\n    \"disk cache\",\n    \"disk storage\"\n  ],\n  \"license\": \"ISC\",\n  \"dependencies\": {\n    \"@npmcli/fs\": \"^4.0.0\",\n    \"fs-minipass\": \"^3.0.0\",\n    \"glob\": \"^10.2.2\",\n    \"lru-cache\": \"^10.0.1\",\n    \"minipass\": \"^7.0.3\",\n    \"minipass-collect\": \"^2.0.1\",\n    \"minipass-flush\": \"^1.0.5\",\n    \"minipass-pipeline\": \"^1.2.4\",\n    \"p-map\": \"^7.0.2\",\n    \"ssri\": \"^12.0.0\",\n    \"tar\": \"^7.4.3\",\n    \"unique-filename\": \"^4.0.0\"\n  },\n  \"devDependencies\": {\n    \"@npmcli/eslint-config\": \"^5.0.0\",\n    \"@npmcli/template-oss\": \"4.23.3\",\n    \"tap\": \"^16.0.0\"\n  },\n  \"engines\": {\n    \"node\": \"^18.17.0 || >=20.5.0\"\n  },\n  \"templateOSS\": {\n    \"//@npmcli/template-oss\": \"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.\",\n    \"windowsCI\": false,\n    \"version\": \"4.23.3\",\n    \"publish\": \"true\"\n  },\n  \"author\": \"GitHub Inc.\",\n  \"tap\": {\n    \"nyc-arg\": [\n      \"--exclude\",\n      \"tap-snapshots/**\"\n    ]\n  }\n}\n", "'use strict'\n\nmodule.exports = hashToSegments\n\nfunction hashToSegments (hash) {\n  return [hash.slice(0, 2), hash.slice(2, 4), hash.slice(4)]\n}\n", "'use strict'\n\nconst contentVer = require('../../package.json')['cache-version'].content\nconst hashToSegments = require('../util/hash-to-segments')\nconst path = require('path')\nconst ssri = require('ssri')\n\n// Current format of content file path:\n//\n// sha512-BaSE64Hex= ->\n// ~/.my-cache/content-v2/sha512/ba/da/55deadbeefc0ffee\n//\nmodule.exports = contentPath\n\nfunction contentPath (cache, integrity) {\n  const sri = ssri.parse(integrity, { single: true })\n  // contentPath is the *strongest* algo given\n  return path.join(\n    contentDir(cache),\n    sri.algorithm,\n    ...hashToSegments(sri.hexDigest())\n  )\n}\n\nmodule.exports.contentDir = contentDir\n\nfunction contentDir (cache) {\n  return path.join(cache, `content-v${contentVer}`)\n}\n", "// given an input that may or may not be an object, return an object that has\n// a copy of every defined property listed in 'copy'. if the input is not an\n// object, assign it to the property named by 'wrap'\nconst getOptions = (input, { copy, wrap }) => {\n  const result = {}\n\n  if (input && typeof input === 'object') {\n    for (const prop of copy) {\n      if (input[prop] !== undefined) {\n        result[prop] = input[prop]\n      }\n    }\n  } else {\n    result[wrap] = input\n  }\n\n  return result\n}\n\nmodule.exports = getOptions\n", "// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n  'major',\n  'premajor',\n  'minor',\n  'preminor',\n  'patch',\n  'prepatch',\n  'prerelease',\n]\n\nmodule.exports = {\n  MAX_LENGTH,\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_SAFE_INTEGER,\n  RELEASE_TYPES,\n  SEMVER_SPEC_VERSION,\n  FLAG_INCLUDE_PRERELEASE: 0b001,\n  FLAG_LOOSE: 0b010,\n}\n", "const debug = (\n  typeof process === 'object' &&\n  process.env &&\n  process.env.NODE_DEBUG &&\n  /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n  : () => {}\n\nmodule.exports = debug\n", "const {\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n  ['\\\\s', 1],\n  ['\\\\d', MAX_LENGTH],\n  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n  for (const [token, max] of safeRegexReplacements) {\n    value = value\n      .split(`${token}*`).join(`${token}{0,${max}}`)\n      .split(`${token}+`).join(`${token}{1,${max}}`)\n  }\n  return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n  const safe = makeSafeRegex(value)\n  const index = R++\n  debug(name, index, value)\n  t[name] = index\n  src[index] = value\n  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:${src[t.PRERELEASE]})?${\n                     src[t.BUILD]}?` +\n                   `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:${src[t.PRERELEASELOOSE]})?${\n                          src[t.BUILD]}?` +\n                        `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n              '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n              `(?:${src[t.PRERELEASE]})?` +\n              `(?:${src[t.BUILD]})?` +\n              `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s+-\\\\s+` +\n                   `(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s+-\\\\s+` +\n                        `(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n  if (!options) {\n    return emptyOpts\n  }\n\n  if (typeof options !== 'object') {\n    return looseOption\n  }\n\n  return options\n}\nmodule.exports = parseOptions\n", "const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n  const anum = numeric.test(a)\n  const bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n  compareIdentifiers,\n  rcompareIdentifiers,\n}\n", "const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n  constructor (version, options) {\n    options = parseOptions(options)\n\n    if (version instanceof SemVer) {\n      if (version.loose === !!options.loose &&\n          version.includePrerelease === !!options.includePrerelease) {\n        return version\n      } else {\n        version = version.version\n      }\n    } else if (typeof version !== 'string') {\n      throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n    }\n\n    if (version.length > MAX_LENGTH) {\n      throw new TypeError(\n        `version is longer than ${MAX_LENGTH} characters`\n      )\n    }\n\n    debug('SemVer', version, options)\n    this.options = options\n    this.loose = !!options.loose\n    // this isn't actually relevant for versions, but keep it so that we\n    // don't run into trouble passing this.options around.\n    this.includePrerelease = !!options.includePrerelease\n\n    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n    if (!m) {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    this.raw = version\n\n    // these are actually numbers\n    this.major = +m[1]\n    this.minor = +m[2]\n    this.patch = +m[3]\n\n    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n      throw new TypeError('Invalid major version')\n    }\n\n    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n      throw new TypeError('Invalid minor version')\n    }\n\n    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n      throw new TypeError('Invalid patch version')\n    }\n\n    // numberify any prerelease numeric ids\n    if (!m[4]) {\n      this.prerelease = []\n    } else {\n      this.prerelease = m[4].split('.').map((id) => {\n        if (/^[0-9]+$/.test(id)) {\n          const num = +id\n          if (num >= 0 && num < MAX_SAFE_INTEGER) {\n            return num\n          }\n        }\n        return id\n      })\n    }\n\n    this.build = m[5] ? m[5].split('.') : []\n    this.format()\n  }\n\n  format () {\n    this.version = `${this.major}.${this.minor}.${this.patch}`\n    if (this.prerelease.length) {\n      this.version += `-${this.prerelease.join('.')}`\n    }\n    return this.version\n  }\n\n  toString () {\n    return this.version\n  }\n\n  compare (other) {\n    debug('SemVer.compare', this.version, this.options, other)\n    if (!(other instanceof SemVer)) {\n      if (typeof other === 'string' && other === this.version) {\n        return 0\n      }\n      other = new SemVer(other, this.options)\n    }\n\n    if (other.version === this.version) {\n      return 0\n    }\n\n    return this.compareMain(other) || this.comparePre(other)\n  }\n\n  compareMain (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    return (\n      compareIdentifiers(this.major, other.major) ||\n      compareIdentifiers(this.minor, other.minor) ||\n      compareIdentifiers(this.patch, other.patch)\n    )\n  }\n\n  comparePre (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    // NOT having a prerelease is > having one\n    if (this.prerelease.length && !other.prerelease.length) {\n      return -1\n    } else if (!this.prerelease.length && other.prerelease.length) {\n      return 1\n    } else if (!this.prerelease.length && !other.prerelease.length) {\n      return 0\n    }\n\n    let i = 0\n    do {\n      const a = this.prerelease[i]\n      const b = other.prerelease[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  compareBuild (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    let i = 0\n    do {\n      const a = this.build[i]\n      const b = other.build[i]\n      debug('build compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  // preminor will bump the version up to the next minor release, and immediately\n  // down to pre-release. premajor and prepatch work the same way.\n  inc (release, identifier, identifierBase) {\n    switch (release) {\n      case 'premajor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor = 0\n        this.major++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'preminor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'prepatch':\n        // If this is already a prerelease, it will bump to the next version\n        // drop any prereleases that might already exist, since they are not\n        // relevant at this point.\n        this.prerelease.length = 0\n        this.inc('patch', identifier, identifierBase)\n        this.inc('pre', identifier, identifierBase)\n        break\n      // If the input is a non-prerelease version, this acts the same as\n      // prepatch.\n      case 'prerelease':\n        if (this.prerelease.length === 0) {\n          this.inc('patch', identifier, identifierBase)\n        }\n        this.inc('pre', identifier, identifierBase)\n        break\n\n      case 'major':\n        // If this is a pre-major version, bump up to the same major version.\n        // Otherwise increment major.\n        // 1.0.0-5 bumps to 1.0.0\n        // 1.1.0 bumps to 2.0.0\n        if (\n          this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0\n        ) {\n          this.major++\n        }\n        this.minor = 0\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'minor':\n        // If this is a pre-minor version, bump up to the same minor version.\n        // Otherwise increment minor.\n        // 1.2.0-5 bumps to 1.2.0\n        // 1.2.1 bumps to 1.3.0\n        if (this.patch !== 0 || this.prerelease.length === 0) {\n          this.minor++\n        }\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'patch':\n        // If this is not a pre-release version, it will increment the patch.\n        // If it is a pre-release it will bump up to the same patch version.\n        // 1.2.0-5 patches to 1.2.0\n        // 1.2.0 patches to 1.2.1\n        if (this.prerelease.length === 0) {\n          this.patch++\n        }\n        this.prerelease = []\n        break\n      // This probably shouldn't be used publicly.\n      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n      case 'pre': {\n        const base = Number(identifierBase) ? 1 : 0\n\n        if (!identifier && identifierBase === false) {\n          throw new Error('invalid increment argument: identifier is empty')\n        }\n\n        if (this.prerelease.length === 0) {\n          this.prerelease = [base]\n        } else {\n          let i = this.prerelease.length\n          while (--i >= 0) {\n            if (typeof this.prerelease[i] === 'number') {\n              this.prerelease[i]++\n              i = -2\n            }\n          }\n          if (i === -1) {\n            // didn't increment anything\n            if (identifier === this.prerelease.join('.') && identifierBase === false) {\n              throw new Error('invalid increment argument: identifier already exists')\n            }\n            this.prerelease.push(base)\n          }\n        }\n        if (identifier) {\n          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n          let prerelease = [identifier, base]\n          if (identifierBase === false) {\n            prerelease = [identifier]\n          }\n          if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n            if (isNaN(this.prerelease[1])) {\n              this.prerelease = prerelease\n            }\n          } else {\n            this.prerelease = prerelease\n          }\n        }\n        break\n      }\n      default:\n        throw new Error(`invalid increment argument: ${release}`)\n    }\n    this.raw = this.format()\n    if (this.build.length) {\n      this.raw += `+${this.build.join('.')}`\n    }\n    return this\n  }\n}\n\nmodule.exports = SemVer\n", "const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    if (!throwErrors) {\n      return null\n    }\n    throw er\n  }\n}\n\nmodule.exports = parse\n", "const parse = require('./parse')\nconst valid = (version, options) => {\n  const v = parse(version, options)\n  return v ? v.version : null\n}\nmodule.exports = valid\n", "const parse = require('./parse')\nconst clean = (version, options) => {\n  const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\nmodule.exports = clean\n", "const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n  if (typeof (options) === 'string') {\n    identifierBase = identifier\n    identifier = options\n    options = undefined\n  }\n\n  try {\n    return new SemVer(\n      version instanceof SemVer ? version.version : version,\n      options\n    ).inc(release, identifier, identifierBase).version\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = inc\n", "const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n  const v1 = parse(version1, null, true)\n  const v2 = parse(version2, null, true)\n  const comparison = v1.compare(v2)\n\n  if (comparison === 0) {\n    return null\n  }\n\n  const v1Higher = comparison > 0\n  const highVersion = v1Higher ? v1 : v2\n  const lowVersion = v1Higher ? v2 : v1\n  const highHasPre = !!highVersion.prerelease.length\n  const lowHasPre = !!lowVersion.prerelease.length\n\n  if (lowHasPre && !highHasPre) {\n    // Going from prerelease -> no prerelease requires some special casing\n\n    // If the low version has only a major, then it will always be a major\n    // Some examples:\n    // 1.0.0-1 -> 1.0.0\n    // 1.0.0-1 -> 1.1.1\n    // 1.0.0-1 -> 2.0.0\n    if (!lowVersion.patch && !lowVersion.minor) {\n      return 'major'\n    }\n\n    // Otherwise it can be determined by checking the high version\n\n    if (highVersion.patch) {\n      // anything higher than a patch bump would result in the wrong version\n      return 'patch'\n    }\n\n    if (highVersion.minor) {\n      // anything higher than a minor bump would result in the wrong version\n      return 'minor'\n    }\n\n    // bumping major/minor/patch all have same result\n    return 'major'\n  }\n\n  // add the `pre` prefix if we are going to a prerelease version\n  const prefix = highHasPre ? 'pre' : ''\n\n  if (v1.major !== v2.major) {\n    return prefix + 'major'\n  }\n\n  if (v1.minor !== v2.minor) {\n    return prefix + 'minor'\n  }\n\n  if (v1.patch !== v2.patch) {\n    return prefix + 'patch'\n  }\n\n  // high and low are preleases\n  return 'prerelease'\n}\n\nmodule.exports = diff\n", "const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n", "const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n", "const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n", "const parse = require('./parse')\nconst prerelease = (version, options) => {\n  const parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n", "const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n  new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n", "const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n", "const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n  const versionA = new SemVer(a, loose)\n  const versionB = new SemVer(b, loose)\n  return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n", "const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n", "const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n", "const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError(`Invalid operator: ${op}`)\n  }\n}\nmodule.exports = cmp\n", "const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version === 'number') {\n    version = String(version)\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  options = options || {}\n\n  let match = null\n  if (!options.rtl) {\n    match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n  } else {\n    // Find the right-most coercible string that does not share\n    // a terminus with a more left-ward coercible string.\n    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n    // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n    //\n    // Walk through the string checking with a /g regexp\n    // Manually set the index so as to pick up overlapping matches.\n    // Stop when we get a match that ends at the string end, since no\n    // coercible string can be more right-ward without the same terminus.\n    const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n    let next\n    while ((next = coerceRtlRegex.exec(version)) &&\n        (!match || match.index + match[0].length !== version.length)\n    ) {\n      if (!match ||\n            next.index + next[0].length !== match.index + match[0].length) {\n        match = next\n      }\n      coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n    }\n    // leave it in a clean state\n    coerceRtlRegex.lastIndex = -1\n  }\n\n  if (match === null) {\n    return null\n  }\n\n  const major = match[2]\n  const minor = match[3] || '0'\n  const patch = match[4] || '0'\n  const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n  const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n  return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n", "class LRUCache {\n  constructor () {\n    this.max = 1000\n    this.map = new Map()\n  }\n\n  get (key) {\n    const value = this.map.get(key)\n    if (value === undefined) {\n      return undefined\n    } else {\n      // Remove the key from the map and add it to the end\n      this.map.delete(key)\n      this.map.set(key, value)\n      return value\n    }\n  }\n\n  delete (key) {\n    return this.map.delete(key)\n  }\n\n  set (key, value) {\n    const deleted = this.delete(key)\n\n    if (!deleted && value !== undefined) {\n      // If cache is full, delete the least recently used item\n      if (this.map.size >= this.max) {\n        const firstKey = this.map.keys().next().value\n        this.delete(firstKey)\n      }\n\n      this.map.set(key, value)\n    }\n\n    return this\n  }\n}\n\nmodule.exports = LRUCache\n", "const SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n  constructor (range, options) {\n    options = parseOptions(options)\n\n    if (range instanceof Range) {\n      if (\n        range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease\n      ) {\n        return range\n      } else {\n        return new Range(range.raw, options)\n      }\n    }\n\n    if (range instanceof Comparator) {\n      // just put it in the set and return\n      this.raw = range.value\n      this.set = [[range]]\n      this.formatted = undefined\n      return this\n    }\n\n    this.options = options\n    this.loose = !!options.loose\n    this.includePrerelease = !!options.includePrerelease\n\n    // First reduce all whitespace as much as possible so we do not have to rely\n    // on potentially slow regexes like \\s*. This is then stored and used for\n    // future error messages as well.\n    this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n    // First, split on ||\n    this.set = this.raw\n      .split('||')\n      // map the range to a 2d array of comparators\n      .map(r => this.parseRange(r.trim()))\n      // throw out any comparator lists that are empty\n      // this generally means that it was not a valid range, which is allowed\n      // in loose mode, but will still throw if the WHOLE range is invalid.\n      .filter(c => c.length)\n\n    if (!this.set.length) {\n      throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n    }\n\n    // if we have any that are not the null set, throw out null sets.\n    if (this.set.length > 1) {\n      // keep the first one, in case they're all null sets\n      const first = this.set[0]\n      this.set = this.set.filter(c => !isNullSet(c[0]))\n      if (this.set.length === 0) {\n        this.set = [first]\n      } else if (this.set.length > 1) {\n        // if we have any that are *, then the range is just *\n        for (const c of this.set) {\n          if (c.length === 1 && isAny(c[0])) {\n            this.set = [c]\n            break\n          }\n        }\n      }\n    }\n\n    this.formatted = undefined\n  }\n\n  get range () {\n    if (this.formatted === undefined) {\n      this.formatted = ''\n      for (let i = 0; i < this.set.length; i++) {\n        if (i > 0) {\n          this.formatted += '||'\n        }\n        const comps = this.set[i]\n        for (let k = 0; k < comps.length; k++) {\n          if (k > 0) {\n            this.formatted += ' '\n          }\n          this.formatted += comps[k].toString().trim()\n        }\n      }\n    }\n    return this.formatted\n  }\n\n  format () {\n    return this.range\n  }\n\n  toString () {\n    return this.range\n  }\n\n  parseRange (range) {\n    // memoize range parsing for performance.\n    // this is a very hot path, and fully deterministic.\n    const memoOpts =\n      (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n      (this.options.loose && FLAG_LOOSE)\n    const memoKey = memoOpts + ':' + range\n    const cached = cache.get(memoKey)\n    if (cached) {\n      return cached\n    }\n\n    const loose = this.options.loose\n    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n    debug('hyphen replace', range)\n\n    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n    debug('comparator trim', range)\n\n    // `~ 1.2.3` => `~1.2.3`\n    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n    debug('tilde trim', range)\n\n    // `^ 1.2.3` => `^1.2.3`\n    range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n    debug('caret trim', range)\n\n    // At this point, the range is completely trimmed and\n    // ready to be split into comparators.\n\n    let rangeList = range\n      .split(' ')\n      .map(comp => parseComparator(comp, this.options))\n      .join(' ')\n      .split(/\\s+/)\n      // >=0.0.0 is equivalent to *\n      .map(comp => replaceGTE0(comp, this.options))\n\n    if (loose) {\n      // in loose mode, throw out any that are not valid comparators\n      rangeList = rangeList.filter(comp => {\n        debug('loose invalid filter', comp, this.options)\n        return !!comp.match(re[t.COMPARATORLOOSE])\n      })\n    }\n    debug('range list', rangeList)\n\n    // if any comparators are the null set, then replace with JUST null set\n    // if more than one comparator, remove any * comparators\n    // also, don't include the same comparator more than once\n    const rangeMap = new Map()\n    const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n    for (const comp of comparators) {\n      if (isNullSet(comp)) {\n        return [comp]\n      }\n      rangeMap.set(comp.value, comp)\n    }\n    if (rangeMap.size > 1 && rangeMap.has('')) {\n      rangeMap.delete('')\n    }\n\n    const result = [...rangeMap.values()]\n    cache.set(memoKey, result)\n    return result\n  }\n\n  intersects (range, options) {\n    if (!(range instanceof Range)) {\n      throw new TypeError('a Range is required')\n    }\n\n    return this.set.some((thisComparators) => {\n      return (\n        isSatisfiable(thisComparators, options) &&\n        range.set.some((rangeComparators) => {\n          return (\n            isSatisfiable(rangeComparators, options) &&\n            thisComparators.every((thisComparator) => {\n              return rangeComparators.every((rangeComparator) => {\n                return thisComparator.intersects(rangeComparator, options)\n              })\n            })\n          )\n        })\n      )\n    })\n  }\n\n  // if ANY of the sets match ALL of its comparators, then pass\n  test (version) {\n    if (!version) {\n      return false\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    for (let i = 0; i < this.set.length; i++) {\n      if (testSet(this.set[i], version, this.options)) {\n        return true\n      }\n    }\n    return false\n  }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n  safeRe: re,\n  t,\n  comparatorTrimReplace,\n  tildeTrimReplace,\n  caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n  let result = true\n  const remainingComparators = comparators.slice()\n  let testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every((otherComparator) => {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceTilde(c, options))\n    .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('tilde', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = `>=${M}.${m}.${p}-${pr\n      } <${M}.${+m + 1}.0-0`\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceCaret(c, options))\n    .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n  debug('caret', comp, options)\n  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('caret', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr\n        } <${+M + 1}.0.0-0`\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p\n        } <${+M + 1}.0.0-0`\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nconst replaceXRanges = (comp, options) => {\n  debug('replaceXRanges', comp, options)\n  return comp\n    .split(/\\s+/)\n    .map((c) => replaceXRange(c, options))\n    .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n  comp = comp.trim()\n  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    const xM = isX(M)\n    const xm = xM || isX(m)\n    const xp = xm || isX(p)\n    const anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      if (gtlt === '<') {\n        pr = '-0'\n      }\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp\n    .trim()\n    .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n  debug('replaceGTE0', comp, options)\n  return comp\n    .trim()\n    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr) => {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n  } else if (isX(fp)) {\n    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n  } else if (fpr) {\n    from = `>=${from}`\n  } else {\n    from = `>=${from}${incPr ? '-0' : ''}`\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = `<${+tM + 1}.0.0-0`\n  } else if (isX(tp)) {\n    to = `<${tM}.${+tm + 1}.0-0`\n  } else if (tpr) {\n    to = `<=${tM}.${tm}.${tp}-${tpr}`\n  } else if (incPr) {\n    to = `<${tM}.${tm}.${+tp + 1}-0`\n  } else {\n    to = `<=${to}`\n  }\n\n  return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n  for (let i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (let i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === Comparator.ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        const allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n", "const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n  static get ANY () {\n    return ANY\n  }\n\n  constructor (comp, options) {\n    options = parseOptions(options)\n\n    if (comp instanceof Comparator) {\n      if (comp.loose === !!options.loose) {\n        return comp\n      } else {\n        comp = comp.value\n      }\n    }\n\n    comp = comp.trim().split(/\\s+/).join(' ')\n    debug('comparator', comp, options)\n    this.options = options\n    this.loose = !!options.loose\n    this.parse(comp)\n\n    if (this.semver === ANY) {\n      this.value = ''\n    } else {\n      this.value = this.operator + this.semver.version\n    }\n\n    debug('comp', this)\n  }\n\n  parse (comp) {\n    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    const m = comp.match(r)\n\n    if (!m) {\n      throw new TypeError(`Invalid comparator: ${comp}`)\n    }\n\n    this.operator = m[1] !== undefined ? m[1] : ''\n    if (this.operator === '=') {\n      this.operator = ''\n    }\n\n    // if it literally is just '>' or '' then allow anything.\n    if (!m[2]) {\n      this.semver = ANY\n    } else {\n      this.semver = new SemVer(m[2], this.options.loose)\n    }\n  }\n\n  toString () {\n    return this.value\n  }\n\n  test (version) {\n    debug('Comparator.test', version, this.options.loose)\n\n    if (this.semver === ANY || version === ANY) {\n      return true\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    return cmp(version, this.operator, this.semver, this.options)\n  }\n\n  intersects (comp, options) {\n    if (!(comp instanceof Comparator)) {\n      throw new TypeError('a Comparator is required')\n    }\n\n    if (this.operator === '') {\n      if (this.value === '') {\n        return true\n      }\n      return new Range(comp.value, options).test(this.value)\n    } else if (comp.operator === '') {\n      if (comp.value === '') {\n        return true\n      }\n      return new Range(this.value, options).test(comp.semver)\n    }\n\n    options = parseOptions(options)\n\n    // Special cases where nothing can possibly be lower\n    if (options.includePrerelease &&\n      (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n      return false\n    }\n    if (!options.includePrerelease &&\n      (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n      return false\n    }\n\n    // Same direction increasing (> or >=)\n    if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n      return true\n    }\n    // Same direction decreasing (< or <=)\n    if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // same SemVer and both sides are inclusive (<= or >=)\n    if (\n      (this.semver.version === comp.semver.version) &&\n      this.operator.includes('=') && comp.operator.includes('=')) {\n      return true\n    }\n    // opposite directions less than\n    if (cmp(this.semver, '<', comp.semver, options) &&\n      this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // opposite directions greater than\n    if (cmp(this.semver, '>', comp.semver, options) &&\n      this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n      return true\n    }\n    return false\n  }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\nmodule.exports = satisfies\n", "const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n  new Range(range, options).set\n    .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n  let max = null\n  let maxSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\nmodule.exports = maxSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n  let min = null\n  let minSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\nmodule.exports = minSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n  range = new Range(range, loose)\n\n  let minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let setMin = null\n    comparators.forEach((comparator) => {\n      // Clone to avoid manipulating the comparator's semver object.\n      const compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!setMin || gt(compver, setMin)) {\n            setMin = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error(`Unexpected operation: ${comparator.operator}`)\n      }\n    })\n    if (setMin && (!minver || gt(minver, setMin))) {\n      minver = setMin\n    }\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\nmodule.exports = minVersion\n", "const Range = require('../classes/range')\nconst validRange = (range, options) => {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = validRange\n", "const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  let gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisfies the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let high = null\n    let low = null\n\n    comparators.forEach((comparator) => {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nmodule.exports = outside\n", "// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n", "const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n", "const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n", "// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n  const set = []\n  let first = null\n  let prev = null\n  const v = versions.sort((a, b) => compare(a, b, options))\n  for (const version of v) {\n    const included = satisfies(version, range, options)\n    if (included) {\n      prev = version\n      if (!first) {\n        first = version\n      }\n    } else {\n      if (prev) {\n        set.push([first, prev])\n      }\n      prev = null\n      first = null\n    }\n  }\n  if (first) {\n    set.push([first, null])\n  }\n\n  const ranges = []\n  for (const [min, max] of set) {\n    if (min === max) {\n      ranges.push(min)\n    } else if (!max && min === v[0]) {\n      ranges.push('*')\n    } else if (!max) {\n      ranges.push(`>=${min}`)\n    } else if (min === v[0]) {\n      ranges.push(`<=${max}`)\n    } else {\n      ranges.push(`${min} - ${max}`)\n    }\n  }\n  const simplified = ranges.join(' || ')\n  const original = typeof range.raw === 'string' ? range.raw : String(range)\n  return simplified.length < original.length ? simplified : range\n}\n", "const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n//   some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n//   - If C is only the ANY comparator, return true\n//   - Else if in prerelease mode, return false\n//   - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n//   - if in prerelease mode, return true\n//   - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n//   - If GT, and EQ does not satisfy GT, return true (null set)\n//   - If LT, and EQ does not satisfy LT, return true (null set)\n//   - If EQ satisfies every C, return true\n//   - Else return false\n// - If GT\n//   - If GT.semver is lower than any > or >= comp in C, return false\n//   - If GT is >=, and GT.semver does not satisfy every C, return false\n//   - If GT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n//   - If LT.semver is greater than any < or <= comp in C, return false\n//   - If LT is <=, and LT.semver does not satisfy every C, return false\n//   - If GT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n  if (sub === dom) {\n    return true\n  }\n\n  sub = new Range(sub, options)\n  dom = new Range(dom, options)\n  let sawNonNull = false\n\n  OUTER: for (const simpleSub of sub.set) {\n    for (const simpleDom of dom.set) {\n      const isSub = simpleSubset(simpleSub, simpleDom, options)\n      sawNonNull = sawNonNull || isSub !== null\n      if (isSub) {\n        continue OUTER\n      }\n    }\n    // the null set is a subset of everything, but null simple ranges in\n    // a complex range should be ignored.  so if we saw a non-null range,\n    // then we know this isn't a subset, but if EVERY simple range was null,\n    // then it is a subset.\n    if (sawNonNull) {\n      return false\n    }\n  }\n  return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n  if (sub === dom) {\n    return true\n  }\n\n  if (sub.length === 1 && sub[0].semver === ANY) {\n    if (dom.length === 1 && dom[0].semver === ANY) {\n      return true\n    } else if (options.includePrerelease) {\n      sub = minimumVersionWithPreRelease\n    } else {\n      sub = minimumVersion\n    }\n  }\n\n  if (dom.length === 1 && dom[0].semver === ANY) {\n    if (options.includePrerelease) {\n      return true\n    } else {\n      dom = minimumVersion\n    }\n  }\n\n  const eqSet = new Set()\n  let gt, lt\n  for (const c of sub) {\n    if (c.operator === '>' || c.operator === '>=') {\n      gt = higherGT(gt, c, options)\n    } else if (c.operator === '<' || c.operator === '<=') {\n      lt = lowerLT(lt, c, options)\n    } else {\n      eqSet.add(c.semver)\n    }\n  }\n\n  if (eqSet.size > 1) {\n    return null\n  }\n\n  let gtltComp\n  if (gt && lt) {\n    gtltComp = compare(gt.semver, lt.semver, options)\n    if (gtltComp > 0) {\n      return null\n    } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n      return null\n    }\n  }\n\n  // will iterate one or zero times\n  for (const eq of eqSet) {\n    if (gt && !satisfies(eq, String(gt), options)) {\n      return null\n    }\n\n    if (lt && !satisfies(eq, String(lt), options)) {\n      return null\n    }\n\n    for (const c of dom) {\n      if (!satisfies(eq, String(c), options)) {\n        return false\n      }\n    }\n\n    return true\n  }\n\n  let higher, lower\n  let hasDomLT, hasDomGT\n  // if the subset has a prerelease, we need a comparator in the superset\n  // with the same tuple and a prerelease, or it's not a subset\n  let needDomLTPre = lt &&\n    !options.includePrerelease &&\n    lt.semver.prerelease.length ? lt.semver : false\n  let needDomGTPre = gt &&\n    !options.includePrerelease &&\n    gt.semver.prerelease.length ? gt.semver : false\n  // exception: <1.2.3-0 is the same as <1.2.3\n  if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n      lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n    needDomLTPre = false\n  }\n\n  for (const c of dom) {\n    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n    if (gt) {\n      if (needDomGTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomGTPre.major &&\n            c.semver.minor === needDomGTPre.minor &&\n            c.semver.patch === needDomGTPre.patch) {\n          needDomGTPre = false\n        }\n      }\n      if (c.operator === '>' || c.operator === '>=') {\n        higher = higherGT(gt, c, options)\n        if (higher === c && higher !== gt) {\n          return false\n        }\n      } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n        return false\n      }\n    }\n    if (lt) {\n      if (needDomLTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomLTPre.major &&\n            c.semver.minor === needDomLTPre.minor &&\n            c.semver.patch === needDomLTPre.patch) {\n          needDomLTPre = false\n        }\n      }\n      if (c.operator === '<' || c.operator === '<=') {\n        lower = lowerLT(lt, c, options)\n        if (lower === c && lower !== lt) {\n          return false\n        }\n      } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n        return false\n      }\n    }\n    if (!c.operator && (lt || gt) && gtltComp !== 0) {\n      return false\n    }\n  }\n\n  // if there was a < or >, and nothing in the dom, then must be false\n  // UNLESS it was limited by another range in the other direction.\n  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n  if (gt && hasDomLT && !lt && gtltComp !== 0) {\n    return false\n  }\n\n  if (lt && hasDomGT && !gt && gtltComp !== 0) {\n    return false\n  }\n\n  // we needed a prerelease range in a specific tuple, but didn't get one\n  // then this isn't a subset.  eg >=1.2.3-pre is not a subset of >=1.0.0,\n  // because it includes prereleases in the 1.2.3 tuple\n  if (needDomGTPre || needDomLTPre) {\n    return false\n  }\n\n  return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp > 0 ? a\n    : comp < 0 ? b\n    : b.operator === '>' && a.operator === '>=' ? b\n    : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp < 0 ? a\n    : comp > 0 ? b\n    : b.operator === '<' && a.operator === '<=' ? b\n    : a\n}\n\nmodule.exports = subset\n", "// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n  parse,\n  valid,\n  clean,\n  inc,\n  diff,\n  major,\n  minor,\n  patch,\n  prerelease,\n  compare,\n  rcompare,\n  compareLoose,\n  compareBuild,\n  sort,\n  rsort,\n  gt,\n  lt,\n  eq,\n  neq,\n  gte,\n  lte,\n  cmp,\n  coerce,\n  Comparator,\n  Range,\n  satisfies,\n  toComparators,\n  maxSatisfying,\n  minSatisfying,\n  minVersion,\n  validRange,\n  outside,\n  gtr,\n  ltr,\n  intersects,\n  simplifyRange,\n  subset,\n  SemVer,\n  re: internalRe.re,\n  src: internalRe.src,\n  tokens: internalRe.t,\n  SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n  RELEASE_TYPES: constants.RELEASE_TYPES,\n  compareIdentifiers: identifiers.compareIdentifiers,\n  rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n", "const semver = require('semver')\n\nconst satisfies = (range) => {\n  return semver.satisfies(process.version, range, { includePrerelease: true })\n}\n\nmodule.exports = {\n  satisfies,\n}\n", "'use strict'\nconst { inspect } = require('util')\n\n// adapted from node's internal/errors\n// https://github.com/nodejs/node/blob/c8a04049/lib/internal/errors.js\n\n// close copy of node's internal SystemError class.\nclass SystemError {\n  constructor (code, prefix, context) {\n    // XXX context.code is undefined in all constructors used in cp/polyfill\n    // that may be a bug copied from node, maybe the constructor should use\n    // `code` not `errno`?  nodejs/node#41104\n    let message = `${prefix}: ${context.syscall} returned ` +\n                  `${context.code} (${context.message})`\n\n    if (context.path !== undefined) {\n      message += ` ${context.path}`\n    }\n    if (context.dest !== undefined) {\n      message += ` => ${context.dest}`\n    }\n\n    this.code = code\n    Object.defineProperties(this, {\n      name: {\n        value: 'SystemError',\n        enumerable: false,\n        writable: true,\n        configurable: true,\n      },\n      message: {\n        value: message,\n        enumerable: false,\n        writable: true,\n        configurable: true,\n      },\n      info: {\n        value: context,\n        enumerable: true,\n        configurable: true,\n        writable: false,\n      },\n      errno: {\n        get () {\n          return context.errno\n        },\n        set (value) {\n          context.errno = value\n        },\n        enumerable: true,\n        configurable: true,\n      },\n      syscall: {\n        get () {\n          return context.syscall\n        },\n        set (value) {\n          context.syscall = value\n        },\n        enumerable: true,\n        configurable: true,\n      },\n    })\n\n    if (context.path !== undefined) {\n      Object.defineProperty(this, 'path', {\n        get () {\n          return context.path\n        },\n        set (value) {\n          context.path = value\n        },\n        enumerable: true,\n        configurable: true,\n      })\n    }\n\n    if (context.dest !== undefined) {\n      Object.defineProperty(this, 'dest', {\n        get () {\n          return context.dest\n        },\n        set (value) {\n          context.dest = value\n        },\n        enumerable: true,\n        configurable: true,\n      })\n    }\n  }\n\n  toString () {\n    return `${this.name} [${this.code}]: ${this.message}`\n  }\n\n  [Symbol.for('nodejs.util.inspect.custom')] (_recurseTimes, ctx) {\n    return inspect(this, {\n      ...ctx,\n      getters: true,\n      customInspect: false,\n    })\n  }\n}\n\nfunction E (code, message) {\n  module.exports[code] = class NodeError extends SystemError {\n    constructor (ctx) {\n      super(code, message, ctx)\n    }\n  }\n}\n\nE('ERR_FS_CP_DIR_TO_NON_DIR', 'Cannot overwrite directory with non-directory')\nE('ERR_FS_CP_EEXIST', 'Target already exists')\nE('ERR_FS_CP_EINVAL', 'Invalid src or dest')\nE('ERR_FS_CP_FIFO_PIPE', 'Cannot copy a FIFO pipe')\nE('ERR_FS_CP_NON_DIR_TO_DIR', 'Cannot overwrite non-directory with directory')\nE('ERR_FS_CP_SOCKET', 'Cannot copy a socket file')\nE('ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY', 'Cannot overwrite symlink in subdirectory of self')\nE('ERR_FS_CP_UNKNOWN', 'Cannot copy an unknown file type')\nE('ERR_FS_EISDIR', 'Path is a directory')\n\nmodule.exports.ERR_INVALID_ARG_TYPE = class ERR_INVALID_ARG_TYPE extends Error {\n  constructor (name, expected, actual) {\n    super()\n    this.code = 'ERR_INVALID_ARG_TYPE'\n    this.message = `The ${name} argument must be ${expected}. Received ${typeof actual}`\n  }\n}\n", "// this file is a modified version of the code in node 17.2.0\n// which is, in turn, a modified version of the fs-extra module on npm\n// node core changes:\n// - Use of the assert module has been replaced with core's error system.\n// - All code related to the glob dependency has been removed.\n// - Bring your own custom fs module is not currently supported.\n// - Some basic code cleanup.\n// changes here:\n// - remove all callback related code\n// - drop sync support\n// - change assertions back to non-internal methods (see options.js)\n// - throws ENOTDIR when rmdir gets an ENOENT for a path that exists in Windows\n'use strict'\n\nconst {\n  ERR_FS_CP_DIR_TO_NON_DIR,\n  ERR_FS_CP_EEXIST,\n  ERR_FS_CP_EINVAL,\n  ERR_FS_CP_FIFO_PIPE,\n  ERR_FS_CP_NON_DIR_TO_DIR,\n  ERR_FS_CP_SOCKET,\n  ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY,\n  ERR_FS_CP_UNKNOWN,\n  ERR_FS_EISDIR,\n  ERR_INVALID_ARG_TYPE,\n} = require('./errors.js')\nconst {\n  constants: {\n    errno: {\n      EEXIST,\n      EISDIR,\n      EINVAL,\n      ENOTDIR,\n    },\n  },\n} = require('os')\nconst {\n  chmod,\n  copyFile,\n  lstat,\n  mkdir,\n  readdir,\n  readlink,\n  stat,\n  symlink,\n  unlink,\n  utimes,\n} = require('fs/promises')\nconst {\n  dirname,\n  isAbsolute,\n  join,\n  parse,\n  resolve,\n  sep,\n  toNamespacedPath,\n} = require('path')\nconst { fileURLToPath } = require('url')\n\nconst defaultOptions = {\n  dereference: false,\n  errorOnExist: false,\n  filter: undefined,\n  force: true,\n  preserveTimestamps: false,\n  recursive: false,\n}\n\nasync function cp (src, dest, opts) {\n  if (opts != null && typeof opts !== 'object') {\n    throw new ERR_INVALID_ARG_TYPE('options', ['Object'], opts)\n  }\n  return cpFn(\n    toNamespacedPath(getValidatedPath(src)),\n    toNamespacedPath(getValidatedPath(dest)),\n    { ...defaultOptions, ...opts })\n}\n\nfunction getValidatedPath (fileURLOrPath) {\n  const path = fileURLOrPath != null && fileURLOrPath.href\n      && fileURLOrPath.origin\n    ? fileURLToPath(fileURLOrPath)\n    : fileURLOrPath\n  return path\n}\n\nasync function cpFn (src, dest, opts) {\n  // Warn about using preserveTimestamps on 32-bit node\n  // istanbul ignore next\n  if (opts.preserveTimestamps && process.arch === 'ia32') {\n    const warning = 'Using the preserveTimestamps option in 32-bit ' +\n      'node is not recommended'\n    process.emitWarning(warning, 'TimestampPrecisionWarning')\n  }\n  const stats = await checkPaths(src, dest, opts)\n  const { srcStat, destStat } = stats\n  await checkParentPaths(src, srcStat, dest)\n  if (opts.filter) {\n    return handleFilter(checkParentDir, destStat, src, dest, opts)\n  }\n  return checkParentDir(destStat, src, dest, opts)\n}\n\nasync function checkPaths (src, dest, opts) {\n  const { 0: srcStat, 1: destStat } = await getStats(src, dest, opts)\n  if (destStat) {\n    if (areIdentical(srcStat, destStat)) {\n      throw new ERR_FS_CP_EINVAL({\n        message: 'src and dest cannot be the same',\n        path: dest,\n        syscall: 'cp',\n        errno: EINVAL,\n      })\n    }\n    if (srcStat.isDirectory() && !destStat.isDirectory()) {\n      throw new ERR_FS_CP_DIR_TO_NON_DIR({\n        message: `cannot overwrite directory ${src} ` +\n            `with non-directory ${dest}`,\n        path: dest,\n        syscall: 'cp',\n        errno: EISDIR,\n      })\n    }\n    if (!srcStat.isDirectory() && destStat.isDirectory()) {\n      throw new ERR_FS_CP_NON_DIR_TO_DIR({\n        message: `cannot overwrite non-directory ${src} ` +\n            `with directory ${dest}`,\n        path: dest,\n        syscall: 'cp',\n        errno: ENOTDIR,\n      })\n    }\n  }\n\n  if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n    throw new ERR_FS_CP_EINVAL({\n      message: `cannot copy ${src} to a subdirectory of self ${dest}`,\n      path: dest,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  }\n  return { srcStat, destStat }\n}\n\nfunction areIdentical (srcStat, destStat) {\n  return destStat.ino && destStat.dev && destStat.ino === srcStat.ino &&\n    destStat.dev === srcStat.dev\n}\n\nfunction getStats (src, dest, opts) {\n  const statFunc = opts.dereference ?\n    (file) => stat(file, { bigint: true }) :\n    (file) => lstat(file, { bigint: true })\n  return Promise.all([\n    statFunc(src),\n    statFunc(dest).catch((err) => {\n      // istanbul ignore next: unsure how to cover.\n      if (err.code === 'ENOENT') {\n        return null\n      }\n      // istanbul ignore next: unsure how to cover.\n      throw err\n    }),\n  ])\n}\n\nasync function checkParentDir (destStat, src, dest, opts) {\n  const destParent = dirname(dest)\n  const dirExists = await pathExists(destParent)\n  if (dirExists) {\n    return getStatsForCopy(destStat, src, dest, opts)\n  }\n  await mkdir(destParent, { recursive: true })\n  return getStatsForCopy(destStat, src, dest, opts)\n}\n\nfunction pathExists (dest) {\n  return stat(dest).then(\n    () => true,\n    // istanbul ignore next: not sure when this would occur\n    (err) => (err.code === 'ENOENT' ? false : Promise.reject(err)))\n}\n\n// Recursively check if dest parent is a subdirectory of src.\n// It works for all file types including symlinks since it\n// checks the src and dest inodes. It starts from the deepest\n// parent and stops once it reaches the src parent or the root path.\nasync function checkParentPaths (src, srcStat, dest) {\n  const srcParent = resolve(dirname(src))\n  const destParent = resolve(dirname(dest))\n  if (destParent === srcParent || destParent === parse(destParent).root) {\n    return\n  }\n  let destStat\n  try {\n    destStat = await stat(destParent, { bigint: true })\n  } catch (err) {\n    // istanbul ignore else: not sure when this would occur\n    if (err.code === 'ENOENT') {\n      return\n    }\n    // istanbul ignore next: not sure when this would occur\n    throw err\n  }\n  if (areIdentical(srcStat, destStat)) {\n    throw new ERR_FS_CP_EINVAL({\n      message: `cannot copy ${src} to a subdirectory of self ${dest}`,\n      path: dest,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  }\n  return checkParentPaths(src, srcStat, destParent)\n}\n\nconst normalizePathToArray = (path) =>\n  resolve(path).split(sep).filter(Boolean)\n\n// Return true if dest is a subdir of src, otherwise false.\n// It only checks the path strings.\nfunction isSrcSubdir (src, dest) {\n  const srcArr = normalizePathToArray(src)\n  const destArr = normalizePathToArray(dest)\n  return srcArr.every((cur, i) => destArr[i] === cur)\n}\n\nasync function handleFilter (onInclude, destStat, src, dest, opts, cb) {\n  const include = await opts.filter(src, dest)\n  if (include) {\n    return onInclude(destStat, src, dest, opts, cb)\n  }\n}\n\nfunction startCopy (destStat, src, dest, opts) {\n  if (opts.filter) {\n    return handleFilter(getStatsForCopy, destStat, src, dest, opts)\n  }\n  return getStatsForCopy(destStat, src, dest, opts)\n}\n\nasync function getStatsForCopy (destStat, src, dest, opts) {\n  const statFn = opts.dereference ? stat : lstat\n  const srcStat = await statFn(src)\n  // istanbul ignore else: can't portably test FIFO\n  if (srcStat.isDirectory() && opts.recursive) {\n    return onDir(srcStat, destStat, src, dest, opts)\n  } else if (srcStat.isDirectory()) {\n    throw new ERR_FS_EISDIR({\n      message: `${src} is a directory (not copied)`,\n      path: src,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  } else if (srcStat.isFile() ||\n            srcStat.isCharacterDevice() ||\n            srcStat.isBlockDevice()) {\n    return onFile(srcStat, destStat, src, dest, opts)\n  } else if (srcStat.isSymbolicLink()) {\n    return onLink(destStat, src, dest)\n  } else if (srcStat.isSocket()) {\n    throw new ERR_FS_CP_SOCKET({\n      message: `cannot copy a socket file: ${dest}`,\n      path: dest,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  } else if (srcStat.isFIFO()) {\n    throw new ERR_FS_CP_FIFO_PIPE({\n      message: `cannot copy a FIFO pipe: ${dest}`,\n      path: dest,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  }\n  // istanbul ignore next: should be unreachable\n  throw new ERR_FS_CP_UNKNOWN({\n    message: `cannot copy an unknown file type: ${dest}`,\n    path: dest,\n    syscall: 'cp',\n    errno: EINVAL,\n  })\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts) {\n  if (!destStat) {\n    return _copyFile(srcStat, src, dest, opts)\n  }\n  return mayCopyFile(srcStat, src, dest, opts)\n}\n\nasync function mayCopyFile (srcStat, src, dest, opts) {\n  if (opts.force) {\n    await unlink(dest)\n    return _copyFile(srcStat, src, dest, opts)\n  } else if (opts.errorOnExist) {\n    throw new ERR_FS_CP_EEXIST({\n      message: `${dest} already exists`,\n      path: dest,\n      syscall: 'cp',\n      errno: EEXIST,\n    })\n  }\n}\n\nasync function _copyFile (srcStat, src, dest, opts) {\n  await copyFile(src, dest)\n  if (opts.preserveTimestamps) {\n    return handleTimestampsAndMode(srcStat.mode, src, dest)\n  }\n  return setDestMode(dest, srcStat.mode)\n}\n\nasync function handleTimestampsAndMode (srcMode, src, dest) {\n  // Make sure the file is writable before setting the timestamp\n  // otherwise open fails with EPERM when invoked with 'r+'\n  // (through utimes call)\n  if (fileIsNotWritable(srcMode)) {\n    await makeFileWritable(dest, srcMode)\n    return setDestTimestampsAndMode(srcMode, src, dest)\n  }\n  return setDestTimestampsAndMode(srcMode, src, dest)\n}\n\nfunction fileIsNotWritable (srcMode) {\n  return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n  return setDestMode(dest, srcMode | 0o200)\n}\n\nasync function setDestTimestampsAndMode (srcMode, src, dest) {\n  await setDestTimestamps(src, dest)\n  return setDestMode(dest, srcMode)\n}\n\nfunction setDestMode (dest, srcMode) {\n  return chmod(dest, srcMode)\n}\n\nasync function setDestTimestamps (src, dest) {\n  // The initial srcStat.atime cannot be trusted\n  // because it is modified by the read(2) system call\n  // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n  const updatedSrcStat = await stat(src)\n  return utimes(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts) {\n  if (!destStat) {\n    return mkDirAndCopy(srcStat.mode, src, dest, opts)\n  }\n  return copyDir(src, dest, opts)\n}\n\nasync function mkDirAndCopy (srcMode, src, dest, opts) {\n  await mkdir(dest)\n  await copyDir(src, dest, opts)\n  return setDestMode(dest, srcMode)\n}\n\nasync function copyDir (src, dest, opts) {\n  const dir = await readdir(src)\n  for (let i = 0; i < dir.length; i++) {\n    const item = dir[i]\n    const srcItem = join(src, item)\n    const destItem = join(dest, item)\n    const { destStat } = await checkPaths(srcItem, destItem, opts)\n    await startCopy(destStat, srcItem, destItem, opts)\n  }\n}\n\nasync function onLink (destStat, src, dest) {\n  let resolvedSrc = await readlink(src)\n  if (!isAbsolute(resolvedSrc)) {\n    resolvedSrc = resolve(dirname(src), resolvedSrc)\n  }\n  if (!destStat) {\n    return symlink(resolvedSrc, dest)\n  }\n  let resolvedDest\n  try {\n    resolvedDest = await readlink(dest)\n  } catch (err) {\n    // Dest exists and is a regular file or directory,\n    // Windows may throw UNKNOWN error. If dest already exists,\n    // fs throws error anyway, so no need to guard against it here.\n    // istanbul ignore next: can only test on windows\n    if (err.code === 'EINVAL' || err.code === 'UNKNOWN') {\n      return symlink(resolvedSrc, dest)\n    }\n    // istanbul ignore next: should not be possible\n    throw err\n  }\n  if (!isAbsolute(resolvedDest)) {\n    resolvedDest = resolve(dirname(dest), resolvedDest)\n  }\n  if (isSrcSubdir(resolvedSrc, resolvedDest)) {\n    throw new ERR_FS_CP_EINVAL({\n      message: `cannot copy ${resolvedSrc} to a subdirectory of self ` +\n            `${resolvedDest}`,\n      path: dest,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  }\n  // Do not copy if src is a subdir of dest since unlinking\n  // dest in this case would result in removing src contents\n  // and therefore a broken symlink would be created.\n  const srcStat = await stat(src)\n  if (srcStat.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {\n    throw new ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY({\n      message: `cannot overwrite ${resolvedDest} with ${resolvedSrc}`,\n      path: dest,\n      syscall: 'cp',\n      errno: EINVAL,\n    })\n  }\n  return copyLink(resolvedSrc, dest)\n}\n\nasync function copyLink (resolvedSrc, dest) {\n  await unlink(dest)\n  return symlink(resolvedSrc, dest)\n}\n\nmodule.exports = cp\n", "const fs = require('fs/promises')\nconst getOptions = require('../common/get-options.js')\nconst node = require('../common/node.js')\nconst polyfill = require('./polyfill.js')\n\n// node 16.7.0 added fs.cp\nconst useNative = node.satisfies('>=16.7.0')\n\nconst cp = async (src, dest, opts) => {\n  const options = getOptions(opts, {\n    copy: ['dereference', 'errorOnExist', 'filter', 'force', 'preserveTimestamps', 'recursive'],\n  })\n\n  // the polyfill is tested separately from this module, no need to hack\n  // process.version to try to trigger it just for coverage\n  // istanbul ignore next\n  return useNative\n    ? fs.cp(src, dest, options)\n    : polyfill(src, dest, options)\n}\n\nmodule.exports = cp\n", "const { join, sep } = require('path')\n\nconst getOptions = require('./common/get-options.js')\nconst { mkdir, mkdtemp, rm } = require('fs/promises')\n\n// create a temp directory, ensure its permissions match its parent, then call\n// the supplied function passing it the path to the directory. clean up after\n// the function finishes, whether it throws or not\nconst withTempDir = async (root, fn, opts) => {\n  const options = getOptions(opts, {\n    copy: ['tmpPrefix'],\n  })\n  // create the directory\n  await mkdir(root, { recursive: true })\n\n  const target = await mkdtemp(join(`${root}${sep}`, options.tmpPrefix || ''))\n  let err\n  let result\n\n  try {\n    result = await fn(target)\n  } catch (_err) {\n    err = _err\n  }\n\n  try {\n    await rm(target, { force: true, recursive: true })\n  } catch {\n    // ignore errors\n  }\n\n  if (err) {\n    throw err\n  }\n\n  return result\n}\n\nmodule.exports = withTempDir\n", "const { readdir } = require('fs/promises')\nconst { join } = require('path')\n\nconst readdirScoped = async (dir) => {\n  const results = []\n\n  for (const item of await readdir(dir)) {\n    if (item.startsWith('@')) {\n      for (const scopedItem of await readdir(join(dir, item))) {\n        results.push(join(item, scopedItem))\n      }\n    } else {\n      results.push(item)\n    }\n  }\n\n  return results\n}\n\nmodule.exports = readdirScoped\n", "const { dirname, join, resolve, relative, isAbsolute } = require('path')\nconst fs = require('fs/promises')\n\nconst pathExists = async path => {\n  try {\n    await fs.access(path)\n    return true\n  } catch (er) {\n    return er.code !== 'ENOENT'\n  }\n}\n\nconst moveFile = async (source, destination, options = {}, root = true, symlinks = []) => {\n  if (!source || !destination) {\n    throw new TypeError('`source` and `destination` file required')\n  }\n\n  options = {\n    overwrite: true,\n    ...options,\n  }\n\n  if (!options.overwrite && await pathExists(destination)) {\n    throw new Error(`The destination file exists: ${destination}`)\n  }\n\n  await fs.mkdir(dirname(destination), { recursive: true })\n\n  try {\n    await fs.rename(source, destination)\n  } catch (error) {\n    if (error.code === 'EXDEV' || error.code === 'EPERM') {\n      const sourceStat = await fs.lstat(source)\n      if (sourceStat.isDirectory()) {\n        const files = await fs.readdir(source)\n        await Promise.all(files.map((file) =>\n          moveFile(join(source, file), join(destination, file), options, false, symlinks)\n        ))\n      } else if (sourceStat.isSymbolicLink()) {\n        symlinks.push({ source, destination })\n      } else {\n        await fs.copyFile(source, destination)\n      }\n    } else {\n      throw error\n    }\n  }\n\n  if (root) {\n    await Promise.all(symlinks.map(async ({ source: symSource, destination: symDestination }) => {\n      let target = await fs.readlink(symSource)\n      // junction symlinks in windows will be absolute paths, so we need to\n      // make sure they point to the symlink destination\n      if (isAbsolute(target)) {\n        target = resolve(symDestination, relative(symSource, target))\n      }\n      // try to determine what the actual file is so we can create the correct\n      // type of symlink in windows\n      let targetStat = 'file'\n      try {\n        targetStat = await fs.stat(resolve(dirname(symSource), target))\n        if (targetStat.isDirectory()) {\n          targetStat = 'junction'\n        }\n      } catch {\n        // targetStat remains 'file'\n      }\n      await fs.symlink(\n        target,\n        symDestination,\n        targetStat\n      )\n    }))\n    await fs.rm(source, { recursive: true, force: true })\n  }\n}\n\nmodule.exports = moveFile\n", "'use strict'\n\nconst cp = require('./cp/index.js')\nconst withTempDir = require('./with-temp-dir.js')\nconst readdirScoped = require('./readdir-scoped.js')\nconst moveFile = require('./move-file.js')\n\nmodule.exports = {\n  cp,\n  withTempDir,\n  readdirScoped,\n  moveFile,\n}\n", "export default async function pMap(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tstopOnError = true,\n\t\tsignal,\n\t} = {},\n) {\n\treturn new Promise((resolve_, reject_) => {\n\t\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t\t}\n\n\t\tif (typeof mapper !== 'function') {\n\t\t\tthrow new TypeError('Mapper function is required');\n\t\t}\n\n\t\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t\t}\n\n\t\tconst result = [];\n\t\tconst errors = [];\n\t\tconst skippedIndexesMap = new Map();\n\t\tlet isRejected = false;\n\t\tlet isResolved = false;\n\t\tlet isIterableDone = false;\n\t\tlet resolvingCount = 0;\n\t\tlet currentIndex = 0;\n\t\tconst iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n\n\t\tconst signalListener = () => {\n\t\t\treject(signal.reason);\n\t\t};\n\n\t\tconst cleanup = () => {\n\t\t\tsignal?.removeEventListener('abort', signalListener);\n\t\t};\n\n\t\tconst resolve = value => {\n\t\t\tresolve_(value);\n\t\t\tcleanup();\n\t\t};\n\n\t\tconst reject = reason => {\n\t\t\tisRejected = true;\n\t\t\tisResolved = true;\n\t\t\treject_(reason);\n\t\t\tcleanup();\n\t\t};\n\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', signalListener, {once: true});\n\t\t}\n\n\t\tconst next = async () => {\n\t\t\tif (isResolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextItem = await iterator.next();\n\n\t\t\tconst index = currentIndex;\n\t\t\tcurrentIndex++;\n\n\t\t\t// Note: `iterator.next()` can be called many times in parallel.\n\t\t\t// This can cause multiple calls to this `next()` function to\n\t\t\t// receive a `nextItem` with `done === true`.\n\t\t\t// The shutdown logic that rejects/resolves must be protected\n\t\t\t// so it runs only one time as the `skippedIndex` logic is\n\t\t\t// non-idempotent.\n\t\t\tif (nextItem.done) {\n\t\t\t\tisIterableDone = true;\n\n\t\t\t\tif (resolvingCount === 0 && !isResolved) {\n\t\t\t\t\tif (!stopOnError && errors.length > 0) {\n\t\t\t\t\t\treject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tisResolved = true;\n\n\t\t\t\t\tif (skippedIndexesMap.size === 0) {\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst pureResult = [];\n\n\t\t\t\t\t// Support multiple `pMapSkip`'s.\n\t\t\t\t\tfor (const [index, value] of result.entries()) {\n\t\t\t\t\t\tif (skippedIndexesMap.get(index) === pMapSkip) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpureResult.push(value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(pureResult);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolvingCount++;\n\n\t\t\t// Intentionally detached\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst element = await nextItem.value;\n\n\t\t\t\t\tif (isResolved) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst value = await mapper(element, index);\n\n\t\t\t\t\t// Use Map to stage the index of the element.\n\t\t\t\t\tif (value === pMapSkip) {\n\t\t\t\t\t\tskippedIndexesMap.set(index, value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[index] = value;\n\n\t\t\t\t\tresolvingCount--;\n\t\t\t\t\tawait next();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (stopOnError) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors.push(error);\n\t\t\t\t\t\tresolvingCount--;\n\n\t\t\t\t\t\t// In that case we can't really continue regardless of `stopOnError` state\n\t\t\t\t\t\t// since an iterable is likely to continue throwing after it throws once.\n\t\t\t\t\t\t// If we continue calling `next()` indefinitely we will likely end up\n\t\t\t\t\t\t// in an infinite loop of failed iteration.\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait next();\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t};\n\n\t\t// Create the concurrent runners in a detached (non-awaited)\n\t\t// promise. We need this so we can await the `next()` calls\n\t\t// to stop creating runners before hitting the concurrency limit\n\t\t// if the iterable has already been marked as done.\n\t\t// NOTE: We *must* do this for async iterators otherwise we'll spin up\n\t\t// infinite `next()` calls by default and never start the event loop.\n\t\t(async () => {\n\t\t\tfor (let index = 0; index < concurrency; index++) {\n\t\t\t\ttry {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tawait next();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIterableDone || isRejected) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t});\n}\n\nexport function pMapIterable(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tbackpressure = concurrency,\n\t} = {},\n) {\n\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t}\n\n\tif (typeof mapper !== 'function') {\n\t\tthrow new TypeError('Mapper function is required');\n\t}\n\n\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t}\n\n\tif (!((Number.isSafeInteger(backpressure) && backpressure >= concurrency) || backpressure === Number.POSITIVE_INFINITY)) {\n\t\tthrow new TypeError(`Expected \\`backpressure\\` to be an integer from \\`concurrency\\` (${concurrency}) and up or \\`Infinity\\`, got \\`${backpressure}\\` (${typeof backpressure})`);\n\t}\n\n\treturn {\n\t\tasync * [Symbol.asyncIterator]() {\n\t\t\tconst iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();\n\n\t\t\tconst promises = [];\n\t\t\tlet runningMappersCount = 0;\n\t\t\tlet isDone = false;\n\t\t\tlet index = 0;\n\n\t\t\tfunction trySpawn() {\n\t\t\t\tif (isDone || !(runningMappersCount < concurrency && promises.length < backpressure)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tconst {done, value} = await iterator.next();\n\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\treturn {done: true};\n\t\t\t\t\t}\n\n\t\t\t\t\trunningMappersCount++;\n\n\t\t\t\t\t// Spawn if still below concurrency and backpressure limit\n\t\t\t\t\ttrySpawn();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst returnValue = await mapper(await value, index++);\n\n\t\t\t\t\t\trunningMappersCount--;\n\n\t\t\t\t\t\tif (returnValue === pMapSkip) {\n\t\t\t\t\t\t\tconst index = promises.indexOf(promise);\n\n\t\t\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t\t\tpromises.splice(index, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Spawn if still below backpressure limit and just dropped below concurrency limit\n\t\t\t\t\t\ttrySpawn();\n\n\t\t\t\t\t\treturn {done: false, value: returnValue};\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tisDone = true;\n\t\t\t\t\t\treturn {error};\n\t\t\t\t\t}\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\n\t\t\ttrySpawn();\n\n\t\t\twhile (promises.length > 0) {\n\t\t\t\tconst {error, done, value} = await promises[0]; // eslint-disable-line no-await-in-loop\n\n\t\t\t\tpromises.shift();\n\n\t\t\t\tif (error) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tif (done) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Spawn if just dropped below backpressure limit and below the concurrency limit\n\t\t\t\ttrySpawn();\n\n\t\t\t\tif (value === pMapSkip) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tyield value;\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport const pMapSkip = Symbol('skip');\n", "'use strict'\n\nconst crypto = require('crypto')\nconst {\n  appendFile,\n  mkdir,\n  readFile,\n  readdir,\n  rm,\n  writeFile,\n} = require('fs/promises')\nconst { Minipass } = require('minipass')\nconst path = require('path')\nconst ssri = require('ssri')\nconst uniqueFilename = require('unique-filename')\n\nconst contentPath = require('./content/path')\nconst hashToSegments = require('./util/hash-to-segments')\nconst indexV = require('../package.json')['cache-version'].index\nconst { moveFile } = require('@npmcli/fs')\n\nconst lsStreamConcurrency = 5\n\nmodule.exports.NotFoundError = class NotFoundError extends Error {\n  constructor (cache, key) {\n    super(`No cache entry for ${key} found in ${cache}`)\n    this.code = 'ENOENT'\n    this.cache = cache\n    this.key = key\n  }\n}\n\nmodule.exports.compact = compact\n\nasync function compact (cache, key, matchFn, opts = {}) {\n  const bucket = bucketPath(cache, key)\n  const entries = await bucketEntries(bucket)\n  const newEntries = []\n  // we loop backwards because the bottom-most result is the newest\n  // since we add new entries with appendFile\n  for (let i = entries.length - 1; i >= 0; --i) {\n    const entry = entries[i]\n    // a null integrity could mean either a delete was appended\n    // or the user has simply stored an index that does not map\n    // to any content. we determine if the user wants to keep the\n    // null integrity based on the validateEntry function passed in options.\n    // if the integrity is null and no validateEntry is provided, we break\n    // as we consider the null integrity to be a deletion of everything\n    // that came before it.\n    if (entry.integrity === null && !opts.validateEntry) {\n      break\n    }\n\n    // if this entry is valid, and it is either the first entry or\n    // the newEntries array doesn't already include an entry that\n    // matches this one based on the provided matchFn, then we add\n    // it to the beginning of our list\n    if ((!opts.validateEntry || opts.validateEntry(entry) === true) &&\n      (newEntries.length === 0 ||\n        !newEntries.find((oldEntry) => matchFn(oldEntry, entry)))) {\n      newEntries.unshift(entry)\n    }\n  }\n\n  const newIndex = '\\n' + newEntries.map((entry) => {\n    const stringified = JSON.stringify(entry)\n    const hash = hashEntry(stringified)\n    return `${hash}\\t${stringified}`\n  }).join('\\n')\n\n  const setup = async () => {\n    const target = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)\n    await mkdir(path.dirname(target), { recursive: true })\n    return {\n      target,\n      moved: false,\n    }\n  }\n\n  const teardown = async (tmp) => {\n    if (!tmp.moved) {\n      return rm(tmp.target, { recursive: true, force: true })\n    }\n  }\n\n  const write = async (tmp) => {\n    await writeFile(tmp.target, newIndex, { flag: 'wx' })\n    await mkdir(path.dirname(bucket), { recursive: true })\n    // we use @npmcli/move-file directly here because we\n    // want to overwrite the existing file\n    await moveFile(tmp.target, bucket)\n    tmp.moved = true\n  }\n\n  // write the file atomically\n  const tmp = await setup()\n  try {\n    await write(tmp)\n  } finally {\n    await teardown(tmp)\n  }\n\n  // we reverse the list we generated such that the newest\n  // entries come first in order to make looping through them easier\n  // the true passed to formatEntry tells it to keep null\n  // integrity values, if they made it this far it's because\n  // validateEntry returned true, and as such we should return it\n  return newEntries.reverse().map((entry) => formatEntry(cache, entry, true))\n}\n\nmodule.exports.insert = insert\n\nasync function insert (cache, key, integrity, opts = {}) {\n  const { metadata, size, time } = opts\n  const bucket = bucketPath(cache, key)\n  const entry = {\n    key,\n    integrity: integrity && ssri.stringify(integrity),\n    time: time || Date.now(),\n    size,\n    metadata,\n  }\n  try {\n    await mkdir(path.dirname(bucket), { recursive: true })\n    const stringified = JSON.stringify(entry)\n    // NOTE - Cleverness ahoy!\n    //\n    // This works because it's tremendously unlikely for an entry to corrupt\n    // another while still preserving the string length of the JSON in\n    // question. So, we just slap the length in there and verify it on read.\n    //\n    // Thanks to @isaacs for the whiteboarding session that ended up with\n    // this.\n    await appendFile(bucket, `\\n${hashEntry(stringified)}\\t${stringified}`)\n  } catch (err) {\n    if (err.code === 'ENOENT') {\n      return undefined\n    }\n\n    throw err\n  }\n  return formatEntry(cache, entry)\n}\n\nmodule.exports.find = find\n\nasync function find (cache, key) {\n  const bucket = bucketPath(cache, key)\n  try {\n    const entries = await bucketEntries(bucket)\n    return entries.reduce((latest, next) => {\n      if (next && next.key === key) {\n        return formatEntry(cache, next)\n      } else {\n        return latest\n      }\n    }, null)\n  } catch (err) {\n    if (err.code === 'ENOENT') {\n      return null\n    } else {\n      throw err\n    }\n  }\n}\n\nmodule.exports.delete = del\n\nfunction del (cache, key, opts = {}) {\n  if (!opts.removeFully) {\n    return insert(cache, key, null, opts)\n  }\n\n  const bucket = bucketPath(cache, key)\n  return rm(bucket, { recursive: true, force: true })\n}\n\nmodule.exports.lsStream = lsStream\n\nfunction lsStream (cache) {\n  const indexDir = bucketDir(cache)\n  const stream = new Minipass({ objectMode: true })\n\n  // Set all this up to run on the stream and then just return the stream\n  Promise.resolve().then(async () => {\n    const { default: pMap } = await import('p-map')\n    const buckets = await readdirOrEmpty(indexDir)\n    await pMap(buckets, async (bucket) => {\n      const bucketPath = path.join(indexDir, bucket)\n      const subbuckets = await readdirOrEmpty(bucketPath)\n      await pMap(subbuckets, async (subbucket) => {\n        const subbucketPath = path.join(bucketPath, subbucket)\n\n        // \"/cachename//./*\"\n        const subbucketEntries = await readdirOrEmpty(subbucketPath)\n        await pMap(subbucketEntries, async (entry) => {\n          const entryPath = path.join(subbucketPath, entry)\n          try {\n            const entries = await bucketEntries(entryPath)\n            // using a Map here prevents duplicate keys from showing up\n            // twice, I guess?\n            const reduced = entries.reduce((acc, entry) => {\n              acc.set(entry.key, entry)\n              return acc\n            }, new Map())\n            // reduced is a map of key => entry\n            for (const entry of reduced.values()) {\n              const formatted = formatEntry(cache, entry)\n              if (formatted) {\n                stream.write(formatted)\n              }\n            }\n          } catch (err) {\n            if (err.code === 'ENOENT') {\n              return undefined\n            }\n            throw err\n          }\n        },\n        { concurrency: lsStreamConcurrency })\n      },\n      { concurrency: lsStreamConcurrency })\n    },\n    { concurrency: lsStreamConcurrency })\n    stream.end()\n    return stream\n  }).catch(err => stream.emit('error', err))\n\n  return stream\n}\n\nmodule.exports.ls = ls\n\nasync function ls (cache) {\n  const entries = await lsStream(cache).collect()\n  return entries.reduce((acc, xs) => {\n    acc[xs.key] = xs\n    return acc\n  }, {})\n}\n\nmodule.exports.bucketEntries = bucketEntries\n\nasync function bucketEntries (bucket, filter) {\n  const data = await readFile(bucket, 'utf8')\n  return _bucketEntries(data, filter)\n}\n\nfunction _bucketEntries (data) {\n  const entries = []\n  data.split('\\n').forEach((entry) => {\n    if (!entry) {\n      return\n    }\n\n    const pieces = entry.split('\\t')\n    if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) {\n      // Hash is no good! Corruption or malice? Doesn't matter!\n      // EJECT EJECT\n      return\n    }\n    let obj\n    try {\n      obj = JSON.parse(pieces[1])\n    } catch (_) {\n      // eslint-ignore-next-line no-empty-block\n    }\n    // coverage disabled here, no need to test with an entry that parses to something falsey\n    // istanbul ignore else\n    if (obj) {\n      entries.push(obj)\n    }\n  })\n  return entries\n}\n\nmodule.exports.bucketDir = bucketDir\n\nfunction bucketDir (cache) {\n  return path.join(cache, `index-v${indexV}`)\n}\n\nmodule.exports.bucketPath = bucketPath\n\nfunction bucketPath (cache, key) {\n  const hashed = hashKey(key)\n  return path.join.apply(\n    path,\n    [bucketDir(cache)].concat(hashToSegments(hashed))\n  )\n}\n\nmodule.exports.hashKey = hashKey\n\nfunction hashKey (key) {\n  return hash(key, 'sha256')\n}\n\nmodule.exports.hashEntry = hashEntry\n\nfunction hashEntry (str) {\n  return hash(str, 'sha1')\n}\n\nfunction hash (str, digest) {\n  return crypto\n    .createHash(digest)\n    .update(str)\n    .digest('hex')\n}\n\nfunction formatEntry (cache, entry, keepAll) {\n  // Treat null digests as deletions. They'll shadow any previous entries.\n  if (!entry.integrity && !keepAll) {\n    return null\n  }\n\n  return {\n    key: entry.key,\n    integrity: entry.integrity,\n    path: entry.integrity ? contentPath(cache, entry.integrity) : undefined,\n    size: entry.size,\n    time: entry.time,\n    metadata: entry.metadata,\n  }\n}\n\nfunction readdirOrEmpty (dir) {\n  return readdir(dir).catch((err) => {\n    if (err.code === 'ENOENT' || err.code === 'ENOTDIR') {\n      return []\n    }\n\n    throw err\n  })\n}\n", "/**\n * @module LRUCache\n */\n\n// module-private names and types\ntype Perf = { now: () => number }\nconst perf: Perf =\n  typeof performance === 'object' &&\n  performance &&\n  typeof performance.now === 'function'\n    ? performance\n    : Date\n\nconst warned = new Set()\n\n// either a function or a class\ntype ForC = ((...a: any[]) => any) | { new (...a: any[]): any }\n\n/* c8 ignore start */\nconst PROCESS = (\n  typeof process === 'object' && !!process ? process : {}\n) as { [k: string]: any }\n/* c8 ignore start */\n\nconst emitWarning = (\n  msg: string,\n  type: string,\n  code: string,\n  fn: ForC\n) => {\n  typeof PROCESS.emitWarning === 'function'\n    ? PROCESS.emitWarning(msg, type, code, fn)\n    : console.error(`[${code}] ${type}: ${msg}`)\n}\n\nlet AC = globalThis.AbortController\nlet AS = globalThis.AbortSignal\n\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n  //@ts-ignore\n  AS = class AbortSignal {\n    onabort?: (...a: any[]) => any\n    _onabort: ((...a: any[]) => any)[] = []\n    reason?: any\n    aborted: boolean = false\n    addEventListener(_: string, fn: (...a: any[]) => any) {\n      this._onabort.push(fn)\n    }\n  }\n  //@ts-ignore\n  AC = class AbortController {\n    constructor() {\n      warnACPolyfill()\n    }\n    signal = new AS()\n    abort(reason: any) {\n      if (this.signal.aborted) return\n      //@ts-ignore\n      this.signal.reason = reason\n      //@ts-ignore\n      this.signal.aborted = true\n      //@ts-ignore\n      for (const fn of this.signal._onabort) {\n        fn(reason)\n      }\n      this.signal.onabort?.(reason)\n    }\n  }\n  let printACPolyfillWarning =\n    PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1'\n  const warnACPolyfill = () => {\n    if (!printACPolyfillWarning) return\n    printACPolyfillWarning = false\n    emitWarning(\n      'AbortController is not defined. If using lru-cache in ' +\n        'node 14, load an AbortController polyfill from the ' +\n        '`node-abort-controller` package. A minimal polyfill is ' +\n        'provided for use by LRUCache.fetch(), but it should not be ' +\n        'relied upon in other contexts (eg, passing it to other APIs that ' +\n        'use AbortController/AbortSignal might have undesirable effects). ' +\n        'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.',\n      'NO_ABORT_CONTROLLER',\n      'ENOTSUP',\n      warnACPolyfill\n    )\n  }\n}\n/* c8 ignore stop */\n\nconst shouldWarn = (code: string) => !warned.has(code)\n\nconst TYPE = Symbol('type')\nexport type PosInt = number & { [TYPE]: 'Positive Integer' }\nexport type Index = number & { [TYPE]: 'LRUCache Index' }\n\nconst isPosInt = (n: any): n is PosInt =>\n  n && n === Math.floor(n) && n > 0 && isFinite(n)\n\nexport type UintArray = Uint8Array | Uint16Array | Uint32Array\nexport type NumberArray = UintArray | number[]\n\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values.  Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max: number) =>\n  !isPosInt(max)\n    ? null\n    : max <= Math.pow(2, 8)\n    ? Uint8Array\n    : max <= Math.pow(2, 16)\n    ? Uint16Array\n    : max <= Math.pow(2, 32)\n    ? Uint32Array\n    : max <= Number.MAX_SAFE_INTEGER\n    ? ZeroArray\n    : null\n/* c8 ignore stop */\n\nclass ZeroArray extends Array {\n  constructor(size: number) {\n    super(size)\n    this.fill(0)\n  }\n}\nexport type { ZeroArray }\nexport type { Stack }\n\nexport type StackLike = Stack | Index[]\nclass Stack {\n  heap: NumberArray\n  length: number\n  // private constructor\n  static #constructing: boolean = false\n  static create(max: number): StackLike {\n    const HeapCls = getUintArray(max)\n    if (!HeapCls) return []\n    Stack.#constructing = true\n    const s = new Stack(max, HeapCls)\n    Stack.#constructing = false\n    return s\n  }\n  constructor(\n    max: number,\n    HeapCls: { new (n: number): NumberArray }\n  ) {\n    /* c8 ignore start */\n    if (!Stack.#constructing) {\n      throw new TypeError('instantiate Stack using Stack.create(n)')\n    }\n    /* c8 ignore stop */\n    this.heap = new HeapCls(max)\n    this.length = 0\n  }\n  push(n: Index) {\n    this.heap[this.length++] = n\n  }\n  pop(): Index {\n    return this.heap[--this.length] as Index\n  }\n}\n\n/**\n * Promise representing an in-progress {@link LRUCache#fetch} call\n */\nexport type BackgroundFetch = Promise & {\n  __returned: BackgroundFetch | undefined\n  __abortController: AbortController\n  __staleWhileFetching: V | undefined\n}\n\nexport type DisposeTask = [\n  value: V,\n  key: K,\n  reason: LRUCache.DisposeReason\n]\n\nexport namespace LRUCache {\n  /**\n   * An integer greater than 0, reflecting the calculated size of items\n   */\n  export type Size = number\n\n  /**\n   * Integer greater than 0, representing some number of milliseconds, or the\n   * time at which a TTL started counting from.\n   */\n  export type Milliseconds = number\n\n  /**\n   * An integer greater than 0, reflecting a number of items\n   */\n  export type Count = number\n\n  /**\n   * The reason why an item was removed from the cache, passed\n   * to the {@link Disposer} methods.\n   *\n   * - `evict`: The item was evicted because it is the least recently used,\n   *   and the cache is full.\n   * - `set`: A new value was set, overwriting the old value being disposed.\n   * - `delete`: The item was explicitly deleted, either by calling\n   *   {@link LRUCache#delete}, {@link LRUCache#clear}, or\n   *   {@link LRUCache#set} with an undefined value.\n   * - `expire`: The item was removed due to exceeding its TTL.\n   * - `fetch`: A {@link OptionsBase#fetchMethod} operation returned\n   *   `undefined` or was aborted, causing the item to be deleted.\n   */\n  export type DisposeReason =\n    | 'evict'\n    | 'set'\n    | 'delete'\n    | 'expire'\n    | 'fetch'\n  /**\n   * A method called upon item removal, passed as the\n   * {@link OptionsBase.dispose} and/or\n   * {@link OptionsBase.disposeAfter} options.\n   */\n  export type Disposer = (\n    value: V,\n    key: K,\n    reason: DisposeReason\n  ) => void\n\n  /**\n   * A function that returns the effective calculated size\n   * of an entry in the cache.\n   */\n  export type SizeCalculator = (value: V, key: K) => Size\n\n  /**\n   * Options provided to the\n   * {@link OptionsBase.fetchMethod} function.\n   */\n  export interface FetcherOptions {\n    signal: AbortSignal\n    options: FetcherFetchOptions\n    /**\n     * Object provided in the {@link FetchOptions.context} option to\n     * {@link LRUCache#fetch}\n     */\n    context: FC\n  }\n\n  /**\n   * Occasionally, it may be useful to track the internal behavior of the\n   * cache, particularly for logging, debugging, or for behavior within the\n   * `fetchMethod`. To do this, you can pass a `status` object to the\n   * {@link LRUCache#fetch}, {@link LRUCache#get}, {@link LRUCache#set},\n   * {@link LRUCache#memo}, and {@link LRUCache#has} methods.\n   *\n   * The `status` option should be a plain JavaScript object. The following\n   * fields will be set on it appropriately, depending on the situation.\n   */\n  export interface Status {\n    /**\n     * The status of a set() operation.\n     *\n     * - add: the item was not found in the cache, and was added\n     * - update: the item was in the cache, with the same value provided\n     * - replace: the item was in the cache, and replaced\n     * - miss: the item was not added to the cache for some reason\n     */\n    set?: 'add' | 'update' | 'replace' | 'miss'\n\n    /**\n     * the ttl stored for the item, or undefined if ttls are not used.\n     */\n    ttl?: Milliseconds\n\n    /**\n     * the start time for the item, or undefined if ttls are not used.\n     */\n    start?: Milliseconds\n\n    /**\n     * The timestamp used for TTL calculation\n     */\n    now?: Milliseconds\n\n    /**\n     * the remaining ttl for the item, or undefined if ttls are not used.\n     */\n    remainingTTL?: Milliseconds\n\n    /**\n     * The calculated size for the item, if sizes are used.\n     */\n    entrySize?: Size\n\n    /**\n     * The total calculated size of the cache, if sizes are used.\n     */\n    totalCalculatedSize?: Size\n\n    /**\n     * A flag indicating that the item was not stored, due to exceeding the\n     * {@link OptionsBase.maxEntrySize}\n     */\n    maxEntrySizeExceeded?: true\n\n    /**\n     * The old value, specified in the case of `set:'update'` or\n     * `set:'replace'`\n     */\n    oldValue?: V\n\n    /**\n     * The results of a {@link LRUCache#has} operation\n     *\n     * - hit: the item was found in the cache\n     * - stale: the item was found in the cache, but is stale\n     * - miss: the item was not found in the cache\n     */\n    has?: 'hit' | 'stale' | 'miss'\n\n    /**\n     * The status of a {@link LRUCache#fetch} operation.\n     * Note that this can change as the underlying fetch() moves through\n     * various states.\n     *\n     * - inflight: there is another fetch() for this key which is in process\n     * - get: there is no {@link OptionsBase.fetchMethod}, so\n     *   {@link LRUCache#get} was called.\n     * - miss: the item is not in cache, and will be fetched.\n     * - hit: the item is in the cache, and was resolved immediately.\n     * - stale: the item is in the cache, but stale.\n     * - refresh: the item is in the cache, and not stale, but\n     *   {@link FetchOptions.forceRefresh} was specified.\n     */\n    fetch?: 'get' | 'inflight' | 'miss' | 'hit' | 'stale' | 'refresh'\n\n    /**\n     * The {@link OptionsBase.fetchMethod} was called\n     */\n    fetchDispatched?: true\n\n    /**\n     * The cached value was updated after a successful call to\n     * {@link OptionsBase.fetchMethod}\n     */\n    fetchUpdated?: true\n\n    /**\n     * The reason for a fetch() rejection.  Either the error raised by the\n     * {@link OptionsBase.fetchMethod}, or the reason for an\n     * AbortSignal.\n     */\n    fetchError?: Error\n\n    /**\n     * The fetch received an abort signal\n     */\n    fetchAborted?: true\n\n    /**\n     * The abort signal received was ignored, and the fetch was allowed to\n     * continue.\n     */\n    fetchAbortIgnored?: true\n\n    /**\n     * The fetchMethod promise resolved successfully\n     */\n    fetchResolved?: true\n\n    /**\n     * The fetchMethod promise was rejected\n     */\n    fetchRejected?: true\n\n    /**\n     * The status of a {@link LRUCache#get} operation.\n     *\n     * - fetching: The item is currently being fetched.  If a previous value\n     *   is present and allowed, that will be returned.\n     * - stale: The item is in the cache, and is stale.\n     * - hit: the item is in the cache\n     * - miss: the item is not in the cache\n     */\n    get?: 'stale' | 'hit' | 'miss'\n\n    /**\n     * A fetch or get operation returned a stale value.\n     */\n    returnedStale?: true\n  }\n\n  /**\n   * options which override the options set in the LRUCache constructor\n   * when calling {@link LRUCache#fetch}.\n   *\n   * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n   * {@link OptionsBase.noDeleteOnFetchRejection},\n   * {@link OptionsBase.allowStaleOnFetchRejection},\n   * {@link FetchOptions.forceRefresh}, and\n   * {@link FetcherOptions.context}\n   *\n   * Any of these may be modified in the {@link OptionsBase.fetchMethod}\n   * function, but the {@link GetOptions} fields will of course have no\n   * effect, as the {@link LRUCache#get} call already happened by the time\n   * the fetchMethod is called.\n   */\n  export interface FetcherFetchOptions\n    extends Pick<\n      OptionsBase,\n      | 'allowStale'\n      | 'updateAgeOnGet'\n      | 'noDeleteOnStaleGet'\n      | 'sizeCalculation'\n      | 'ttl'\n      | 'noDisposeOnSet'\n      | 'noUpdateTTL'\n      | 'noDeleteOnFetchRejection'\n      | 'allowStaleOnFetchRejection'\n      | 'ignoreFetchAbort'\n      | 'allowStaleOnFetchAbort'\n    > {\n    status?: Status\n    size?: Size\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#fetch} method.\n   */\n  export interface FetchOptions\n    extends FetcherFetchOptions {\n    /**\n     * Set to true to force a re-load of the existing data, even if it\n     * is not yet stale.\n     */\n    forceRefresh?: boolean\n    /**\n     * Context provided to the {@link OptionsBase.fetchMethod} as\n     * the {@link FetcherOptions.context} param.\n     *\n     * If the FC type is specified as unknown (the default),\n     * undefined or void, then this is optional.  Otherwise, it will\n     * be required.\n     */\n    context?: FC\n    signal?: AbortSignal\n    status?: Status\n  }\n  /**\n   * Options provided to {@link LRUCache#fetch} when the FC type is something\n   * other than `unknown`, `undefined`, or `void`\n   */\n  export interface FetchOptionsWithContext\n    extends FetchOptions {\n    context: FC\n  }\n  /**\n   * Options provided to {@link LRUCache#fetch} when the FC type is\n   * `undefined` or `void`\n   */\n  export interface FetchOptionsNoContext\n    extends FetchOptions {\n    context?: undefined\n  }\n\n  export interface MemoOptions\n    extends Pick<\n      OptionsBase,\n      | 'allowStale'\n      | 'updateAgeOnGet'\n      | 'noDeleteOnStaleGet'\n      | 'sizeCalculation'\n      | 'ttl'\n      | 'noDisposeOnSet'\n      | 'noUpdateTTL'\n      | 'noDeleteOnFetchRejection'\n      | 'allowStaleOnFetchRejection'\n      | 'ignoreFetchAbort'\n      | 'allowStaleOnFetchAbort'\n    > {\n    /**\n     * Set to true to force a re-load of the existing data, even if it\n     * is not yet stale.\n     */\n    forceRefresh?: boolean\n    /**\n     * Context provided to the {@link OptionsBase.memoMethod} as\n     * the {@link MemoizerOptions.context} param.\n     *\n     * If the FC type is specified as unknown (the default),\n     * undefined or void, then this is optional.  Otherwise, it will\n     * be required.\n     */\n    context?: FC\n    status?: Status\n  }\n  /**\n   * Options provided to {@link LRUCache#memo} when the FC type is something\n   * other than `unknown`, `undefined`, or `void`\n   */\n  export interface MemoOptionsWithContext\n    extends MemoOptions {\n    context: FC\n  }\n  /**\n   * Options provided to {@link LRUCache#memo} when the FC type is\n   * `undefined` or `void`\n   */\n  export interface MemoOptionsNoContext\n    extends MemoOptions {\n    context?: undefined\n  }\n\n  /**\n   * Options provided to the\n   * {@link OptionsBase.memoMethod} function.\n   */\n  export interface MemoizerOptions {\n    options: MemoizerMemoOptions\n    /**\n     * Object provided in the {@link MemoOptions.context} option to\n     * {@link LRUCache#memo}\n     */\n    context: FC\n  }\n\n  /**\n   * options which override the options set in the LRUCache constructor\n   * when calling {@link LRUCache#memo}.\n   *\n   * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n   * {@link MemoOptions.forceRefresh}, and\n   * {@link MemoerOptions.context}\n   *\n   * Any of these may be modified in the {@link OptionsBase.memoMethod}\n   * function, but the {@link GetOptions} fields will of course have no\n   * effect, as the {@link LRUCache#get} call already happened by the time\n   * the memoMethod is called.\n   */\n  export interface MemoizerMemoOptions\n    extends Pick<\n      OptionsBase,\n      | 'allowStale'\n      | 'updateAgeOnGet'\n      | 'noDeleteOnStaleGet'\n      | 'sizeCalculation'\n      | 'ttl'\n      | 'noDisposeOnSet'\n      | 'noUpdateTTL'\n    > {\n    status?: Status\n    size?: Size\n    start?: Milliseconds\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#has} method.\n   */\n  export interface HasOptions\n    extends Pick, 'updateAgeOnHas'> {\n    status?: Status\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#get} method.\n   */\n  export interface GetOptions\n    extends Pick<\n      OptionsBase,\n      'allowStale' | 'updateAgeOnGet' | 'noDeleteOnStaleGet'\n    > {\n    status?: Status\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#peek} method.\n   */\n  export interface PeekOptions\n    extends Pick, 'allowStale'> {}\n\n  /**\n   * Options that may be passed to the {@link LRUCache#set} method.\n   */\n  export interface SetOptions\n    extends Pick<\n      OptionsBase,\n      'sizeCalculation' | 'ttl' | 'noDisposeOnSet' | 'noUpdateTTL'\n    > {\n    /**\n     * If size tracking is enabled, then setting an explicit size\n     * in the {@link LRUCache#set} call will prevent calling the\n     * {@link OptionsBase.sizeCalculation} function.\n     */\n    size?: Size\n    /**\n     * If TTL tracking is enabled, then setting an explicit start\n     * time in the {@link LRUCache#set} call will override the\n     * default time from `performance.now()` or `Date.now()`.\n     *\n     * Note that it must be a valid value for whichever time-tracking\n     * method is in use.\n     */\n    start?: Milliseconds\n    status?: Status\n  }\n\n  /**\n   * The type signature for the {@link OptionsBase.fetchMethod} option.\n   */\n  export type Fetcher = (\n    key: K,\n    staleValue: V | undefined,\n    options: FetcherOptions\n  ) => Promise | V | undefined | void\n\n  /**\n   * the type signature for the {@link OptionsBase.memoMethod} option.\n   */\n  export type Memoizer = (\n    key: K,\n    staleValue: V | undefined,\n    options: MemoizerOptions\n  ) => V\n\n  /**\n   * Options which may be passed to the {@link LRUCache} constructor.\n   *\n   * Most of these may be overridden in the various options that use\n   * them.\n   *\n   * Despite all being technically optional, the constructor requires that\n   * a cache is at minimum limited by one or more of {@link OptionsBase.max},\n   * {@link OptionsBase.ttl}, or {@link OptionsBase.maxSize}.\n   *\n   * If {@link OptionsBase.ttl} is used alone, then it is strongly advised\n   * (and in fact required by the type definitions here) that the cache\n   * also set {@link OptionsBase.ttlAutopurge}, to prevent potentially\n   * unbounded storage.\n   *\n   * All options are also available on the {@link LRUCache} instance, making\n   * it safe to pass an LRUCache instance as the options argumemnt to\n   * make another empty cache of the same type.\n   *\n   * Some options are marked as read-only, because changing them after\n   * instantiation is not safe. Changing any of the other options will of\n   * course only have an effect on subsequent method calls.\n   */\n  export interface OptionsBase {\n    /**\n     * The maximum number of items to store in the cache before evicting\n     * old entries. This is read-only on the {@link LRUCache} instance,\n     * and may not be overridden.\n     *\n     * If set, then storage space will be pre-allocated at construction\n     * time, and the cache will perform significantly faster.\n     *\n     * Note that significantly fewer items may be stored, if\n     * {@link OptionsBase.maxSize} and/or {@link OptionsBase.ttl} are also\n     * set.\n     *\n     * **It is strongly recommended to set a `max` to prevent unbounded growth\n     * of the cache.**\n     */\n    max?: Count\n\n    /**\n     * Max time in milliseconds for items to live in cache before they are\n     * considered stale.  Note that stale items are NOT preemptively removed by\n     * default, and MAY live in the cache, contributing to its LRU max, long\n     * after they have expired, unless {@link OptionsBase.ttlAutopurge} is\n     * set.\n     *\n     * If set to `0` (the default value), then that means \"do not track\n     * TTL\", not \"expire immediately\".\n     *\n     * Also, as this cache is optimized for LRU/MRU operations, some of\n     * the staleness/TTL checks will reduce performance, as they will incur\n     * overhead by deleting items.\n     *\n     * This is not primarily a TTL cache, and does not make strong TTL\n     * guarantees. There is no pre-emptive pruning of expired items, but you\n     * _may_ set a TTL on the cache, and it will treat expired items as missing\n     * when they are fetched, and delete them.\n     *\n     * Optional, but must be a non-negative integer in ms if specified.\n     *\n     * This may be overridden by passing an options object to `cache.set()`.\n     *\n     * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n     * positive integer if set.\n     *\n     * Even if ttl tracking is enabled, **it is strongly recommended to set a\n     * `max` to prevent unbounded growth of the cache.**\n     *\n     * If ttl tracking is enabled, and `max` and `maxSize` are not set,\n     * and `ttlAutopurge` is not set, then a warning will be emitted\n     * cautioning about the potential for unbounded memory consumption.\n     * (The TypeScript definitions will also discourage this.)\n     */\n    ttl?: Milliseconds\n\n    /**\n     * Minimum amount of time in ms in which to check for staleness.\n     * Defaults to 1, which means that the current time is checked\n     * at most once per millisecond.\n     *\n     * Set to 0 to check the current time every time staleness is tested.\n     * (This reduces performance, and is theoretically unnecessary.)\n     *\n     * Setting this to a higher value will improve performance somewhat\n     * while using ttl tracking, albeit at the expense of keeping stale\n     * items around a bit longer than their TTLs would indicate.\n     *\n     * @default 1\n     */\n    ttlResolution?: Milliseconds\n\n    /**\n     * Preemptively remove stale items from the cache.\n     *\n     * Note that this may *significantly* degrade performance, especially if\n     * the cache is storing a large number of items. It is almost always best\n     * to just leave the stale items in the cache, and let them fall out as new\n     * items are added.\n     *\n     * Note that this means that {@link OptionsBase.allowStale} is a bit\n     * pointless, as stale items will be deleted almost as soon as they\n     * expire.\n     *\n     * Use with caution!\n     */\n    ttlAutopurge?: boolean\n\n    /**\n     * When using time-expiring entries with `ttl`, setting this to `true` will\n     * make each item's age reset to 0 whenever it is retrieved from cache with\n     * {@link LRUCache#get}, causing it to not expire. (It can still fall out\n     * of cache based on recency of use, of course.)\n     *\n     * Has no effect if {@link OptionsBase.ttl} is not set.\n     *\n     * This may be overridden by passing an options object to `cache.get()`.\n     */\n    updateAgeOnGet?: boolean\n\n    /**\n     * When using time-expiring entries with `ttl`, setting this to `true` will\n     * make each item's age reset to 0 whenever its presence in the cache is\n     * checked with {@link LRUCache#has}, causing it to not expire. (It can\n     * still fall out of cache based on recency of use, of course.)\n     *\n     * Has no effect if {@link OptionsBase.ttl} is not set.\n     */\n    updateAgeOnHas?: boolean\n\n    /**\n     * Allow {@link LRUCache#get} and {@link LRUCache#fetch} calls to return\n     * stale data, if available.\n     *\n     * By default, if you set `ttl`, stale items will only be deleted from the\n     * cache when you `get(key)`. That is, it's not preemptively pruning items,\n     * unless {@link OptionsBase.ttlAutopurge} is set.\n     *\n     * If you set `allowStale:true`, it'll return the stale value *as well as*\n     * deleting it. If you don't set this, then it'll return `undefined` when\n     * you try to get a stale entry.\n     *\n     * Note that when a stale entry is fetched, _even if it is returned due to\n     * `allowStale` being set_, it is removed from the cache immediately. You\n     * can suppress this behavior by setting\n     * {@link OptionsBase.noDeleteOnStaleGet}, either in the constructor, or in\n     * the options provided to {@link LRUCache#get}.\n     *\n     * This may be overridden by passing an options object to `cache.get()`.\n     * The `cache.has()` method will always return `false` for stale items.\n     *\n     * Only relevant if a ttl is set.\n     */\n    allowStale?: boolean\n\n    /**\n     * Function that is called on items when they are dropped from the\n     * cache, as `dispose(value, key, reason)`.\n     *\n     * This can be handy if you want to close file descriptors or do\n     * other cleanup tasks when items are no longer stored in the cache.\n     *\n     * **NOTE**: It is called _before_ the item has been fully removed\n     * from the cache, so if you want to put it right back in, you need\n     * to wait until the next tick. If you try to add it back in during\n     * the `dispose()` function call, it will break things in subtle and\n     * weird ways.\n     *\n     * Unlike several other options, this may _not_ be overridden by\n     * passing an option to `set()`, for performance reasons.\n     *\n     * The `reason` will be one of the following strings, corresponding\n     * to the reason for the item's deletion:\n     *\n     * - `evict` Item was evicted to make space for a new addition\n     * - `set` Item was overwritten by a new value\n     * - `expire` Item expired its TTL\n     * - `fetch` Item was deleted due to a failed or aborted fetch, or a\n     *   fetchMethod returning `undefined.\n     * - `delete` Item was removed by explicit `cache.delete(key)`,\n     *   `cache.clear()`, or `cache.set(key, undefined)`.\n     */\n    dispose?: Disposer\n\n    /**\n     * The same as {@link OptionsBase.dispose}, but called *after* the entry\n     * is completely removed and the cache is once again in a clean state.\n     *\n     * It is safe to add an item right back into the cache at this point.\n     * However, note that it is *very* easy to inadvertently create infinite\n     * recursion this way.\n     */\n    disposeAfter?: Disposer\n\n    /**\n     * Set to true to suppress calling the\n     * {@link OptionsBase.dispose} function if the entry key is\n     * still accessible within the cache.\n     *\n     * This may be overridden by passing an options object to\n     * {@link LRUCache#set}.\n     *\n     * Only relevant if `dispose` or `disposeAfter` are set.\n     */\n    noDisposeOnSet?: boolean\n\n    /**\n     * Boolean flag to tell the cache to not update the TTL when setting a new\n     * value for an existing key (ie, when updating a value rather than\n     * inserting a new value).  Note that the TTL value is _always_ set (if\n     * provided) when adding a new entry into the cache.\n     *\n     * Has no effect if a {@link OptionsBase.ttl} is not set.\n     *\n     * May be passed as an option to {@link LRUCache#set}.\n     */\n    noUpdateTTL?: boolean\n\n    /**\n     * Set to a positive integer to track the sizes of items added to the\n     * cache, and automatically evict items in order to stay below this size.\n     * Note that this may result in fewer than `max` items being stored.\n     *\n     * Attempting to add an item to the cache whose calculated size is greater\n     * that this amount will be a no-op. The item will not be cached, and no\n     * other items will be evicted.\n     *\n     * Optional, must be a positive integer if provided.\n     *\n     * Sets `maxEntrySize` to the same value, unless a different value is\n     * provided for `maxEntrySize`.\n     *\n     * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n     * positive integer if set.\n     *\n     * Even if size tracking is enabled, **it is strongly recommended to set a\n     * `max` to prevent unbounded growth of the cache.**\n     *\n     * Note also that size tracking can negatively impact performance,\n     * though for most cases, only minimally.\n     */\n    maxSize?: Size\n\n    /**\n     * The maximum allowed size for any single item in the cache.\n     *\n     * If a larger item is passed to {@link LRUCache#set} or returned by a\n     * {@link OptionsBase.fetchMethod} or {@link OptionsBase.memoMethod}, then\n     * it will not be stored in the cache.\n     *\n     * Attempting to add an item whose calculated size is greater than\n     * this amount will not cache the item or evict any old items, but\n     * WILL delete an existing value if one is already present.\n     *\n     * Optional, must be a positive integer if provided. Defaults to\n     * the value of `maxSize` if provided.\n     */\n    maxEntrySize?: Size\n\n    /**\n     * A function that returns a number indicating the item's size.\n     *\n     * Requires {@link OptionsBase.maxSize} to be set.\n     *\n     * If not provided, and {@link OptionsBase.maxSize} or\n     * {@link OptionsBase.maxEntrySize} are set, then all\n     * {@link LRUCache#set} calls **must** provide an explicit\n     * {@link SetOptions.size} or sizeCalculation param.\n     */\n    sizeCalculation?: SizeCalculator\n\n    /**\n     * Method that provides the implementation for {@link LRUCache#fetch}\n     *\n     * ```ts\n     * fetchMethod(key, staleValue, { signal, options, context })\n     * ```\n     *\n     * If `fetchMethod` is not provided, then `cache.fetch(key)` is equivalent\n     * to `Promise.resolve(cache.get(key))`.\n     *\n     * If at any time, `signal.aborted` is set to `true`, or if the\n     * `signal.onabort` method is called, or if it emits an `'abort'` event\n     * which you can listen to with `addEventListener`, then that means that\n     * the fetch should be abandoned. This may be passed along to async\n     * functions aware of AbortController/AbortSignal behavior.\n     *\n     * The `fetchMethod` should **only** return `undefined` or a Promise\n     * resolving to `undefined` if the AbortController signaled an `abort`\n     * event. In all other cases, it should return or resolve to a value\n     * suitable for adding to the cache.\n     *\n     * The `options` object is a union of the options that may be provided to\n     * `set()` and `get()`. If they are modified, then that will result in\n     * modifying the settings to `cache.set()` when the value is resolved, and\n     * in the case of\n     * {@link OptionsBase.noDeleteOnFetchRejection} and\n     * {@link OptionsBase.allowStaleOnFetchRejection}, the handling of\n     * `fetchMethod` failures.\n     *\n     * For example, a DNS cache may update the TTL based on the value returned\n     * from a remote DNS server by changing `options.ttl` in the `fetchMethod`.\n     */\n    fetchMethod?: Fetcher\n\n    /**\n     * Method that provides the implementation for {@link LRUCache#memo}\n     */\n    memoMethod?: Memoizer\n\n    /**\n     * Set to true to suppress the deletion of stale data when a\n     * {@link OptionsBase.fetchMethod} returns a rejected promise.\n     */\n    noDeleteOnFetchRejection?: boolean\n\n    /**\n     * Do not delete stale items when they are retrieved with\n     * {@link LRUCache#get}.\n     *\n     * Note that the `get` return value will still be `undefined`\n     * unless {@link OptionsBase.allowStale} is true.\n     *\n     * When using time-expiring entries with `ttl`, by default stale\n     * items will be removed from the cache when the key is accessed\n     * with `cache.get()`.\n     *\n     * Setting this option will cause stale items to remain in the cache, until\n     * they are explicitly deleted with `cache.delete(key)`, or retrieved with\n     * `noDeleteOnStaleGet` set to `false`.\n     *\n     * This may be overridden by passing an options object to `cache.get()`.\n     *\n     * Only relevant if a ttl is used.\n     */\n    noDeleteOnStaleGet?: boolean\n\n    /**\n     * Set to true to allow returning stale data when a\n     * {@link OptionsBase.fetchMethod} throws an error or returns a rejected\n     * promise.\n     *\n     * This differs from using {@link OptionsBase.allowStale} in that stale\n     * data will ONLY be returned in the case that the {@link LRUCache#fetch}\n     * fails, not any other times.\n     *\n     * If a `fetchMethod` fails, and there is no stale value available, the\n     * `fetch()` will resolve to `undefined`. Ie, all `fetchMethod` errors are\n     * suppressed.\n     *\n     * Implies `noDeleteOnFetchRejection`.\n     *\n     * This may be set in calls to `fetch()`, or defaulted on the constructor,\n     * or overridden by modifying the options object in the `fetchMethod`.\n     */\n    allowStaleOnFetchRejection?: boolean\n\n    /**\n     * Set to true to return a stale value from the cache when the\n     * `AbortSignal` passed to the {@link OptionsBase.fetchMethod} dispatches\n     * an `'abort'` event, whether user-triggered, or due to internal cache\n     * behavior.\n     *\n     * Unless {@link OptionsBase.ignoreFetchAbort} is also set, the underlying\n     * {@link OptionsBase.fetchMethod} will still be considered canceled, and\n     * any value it returns will be ignored and not cached.\n     *\n     * Caveat: since fetches are aborted when a new value is explicitly\n     * set in the cache, this can lead to fetch returning a stale value,\n     * since that was the fallback value _at the moment the `fetch()` was\n     * initiated_, even though the new updated value is now present in\n     * the cache.\n     *\n     * For example:\n     *\n     * ```ts\n     * const cache = new LRUCache({\n     *   ttl: 100,\n     *   fetchMethod: async (url, oldValue, { signal }) =>  {\n     *     const res = await fetch(url, { signal })\n     *     return await res.json()\n     *   }\n     * })\n     * cache.set('https://example.com/', { some: 'data' })\n     * // 100ms go by...\n     * const result = cache.fetch('https://example.com/')\n     * cache.set('https://example.com/', { other: 'thing' })\n     * console.log(await result) // { some: 'data' }\n     * console.log(cache.get('https://example.com/')) // { other: 'thing' }\n     * ```\n     */\n    allowStaleOnFetchAbort?: boolean\n\n    /**\n     * Set to true to ignore the `abort` event emitted by the `AbortSignal`\n     * object passed to {@link OptionsBase.fetchMethod}, and still cache the\n     * resulting resolution value, as long as it is not `undefined`.\n     *\n     * When used on its own, this means aborted {@link LRUCache#fetch} calls\n     * are not immediately resolved or rejected when they are aborted, and\n     * instead take the full time to await.\n     *\n     * When used with {@link OptionsBase.allowStaleOnFetchAbort}, aborted\n     * {@link LRUCache#fetch} calls will resolve immediately to their stale\n     * cached value or `undefined`, and will continue to process and eventually\n     * update the cache when they resolve, as long as the resulting value is\n     * not `undefined`, thus supporting a \"return stale on timeout while\n     * refreshing\" mechanism by passing `AbortSignal.timeout(n)` as the signal.\n     *\n     * For example:\n     *\n     * ```ts\n     * const c = new LRUCache({\n     *   ttl: 100,\n     *   ignoreFetchAbort: true,\n     *   allowStaleOnFetchAbort: true,\n     *   fetchMethod: async (key, oldValue, { signal }) => {\n     *     // note: do NOT pass the signal to fetch()!\n     *     // let's say this fetch can take a long time.\n     *     const res = await fetch(`https://slow-backend-server/${key}`)\n     *     return await res.json()\n     *   },\n     * })\n     *\n     * // this will return the stale value after 100ms, while still\n     * // updating in the background for next time.\n     * const val = await c.fetch('key', { signal: AbortSignal.timeout(100) })\n     * ```\n     *\n     * **Note**: regardless of this setting, an `abort` event _is still\n     * emitted on the `AbortSignal` object_, so may result in invalid results\n     * when passed to other underlying APIs that use AbortSignals.\n     *\n     * This may be overridden in the {@link OptionsBase.fetchMethod} or the\n     * call to {@link LRUCache#fetch}.\n     */\n    ignoreFetchAbort?: boolean\n  }\n\n  export interface OptionsMaxLimit\n    extends OptionsBase {\n    max: Count\n  }\n  export interface OptionsTTLLimit\n    extends OptionsBase {\n    ttl: Milliseconds\n    ttlAutopurge: boolean\n  }\n  export interface OptionsSizeLimit\n    extends OptionsBase {\n    maxSize: Size\n  }\n\n  /**\n   * The valid safe options for the {@link LRUCache} constructor\n   */\n  export type Options =\n    | OptionsMaxLimit\n    | OptionsSizeLimit\n    | OptionsTTLLimit\n\n  /**\n   * Entry objects used by {@link LRUCache#load} and {@link LRUCache#dump},\n   * and returned by {@link LRUCache#info}.\n   */\n  export interface Entry {\n    value: V\n    ttl?: Milliseconds\n    size?: Size\n    start?: Milliseconds\n  }\n}\n\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache\n  implements Map\n{\n  // options that cannot be changed without disaster\n  readonly #max: LRUCache.Count\n  readonly #maxSize: LRUCache.Size\n  readonly #dispose?: LRUCache.Disposer\n  readonly #disposeAfter?: LRUCache.Disposer\n  readonly #fetchMethod?: LRUCache.Fetcher\n  readonly #memoMethod?: LRUCache.Memoizer\n\n  /**\n   * {@link LRUCache.OptionsBase.ttl}\n   */\n  ttl: LRUCache.Milliseconds\n\n  /**\n   * {@link LRUCache.OptionsBase.ttlResolution}\n   */\n  ttlResolution: LRUCache.Milliseconds\n  /**\n   * {@link LRUCache.OptionsBase.ttlAutopurge}\n   */\n  ttlAutopurge: boolean\n  /**\n   * {@link LRUCache.OptionsBase.updateAgeOnGet}\n   */\n  updateAgeOnGet: boolean\n  /**\n   * {@link LRUCache.OptionsBase.updateAgeOnHas}\n   */\n  updateAgeOnHas: boolean\n  /**\n   * {@link LRUCache.OptionsBase.allowStale}\n   */\n  allowStale: boolean\n\n  /**\n   * {@link LRUCache.OptionsBase.noDisposeOnSet}\n   */\n  noDisposeOnSet: boolean\n  /**\n   * {@link LRUCache.OptionsBase.noUpdateTTL}\n   */\n  noUpdateTTL: boolean\n  /**\n   * {@link LRUCache.OptionsBase.maxEntrySize}\n   */\n  maxEntrySize: LRUCache.Size\n  /**\n   * {@link LRUCache.OptionsBase.sizeCalculation}\n   */\n  sizeCalculation?: LRUCache.SizeCalculator\n  /**\n   * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n   */\n  noDeleteOnFetchRejection: boolean\n  /**\n   * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n   */\n  noDeleteOnStaleGet: boolean\n  /**\n   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n   */\n  allowStaleOnFetchAbort: boolean\n  /**\n   * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n   */\n  allowStaleOnFetchRejection: boolean\n  /**\n   * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n   */\n  ignoreFetchAbort: boolean\n\n  // computed properties\n  #size: LRUCache.Count\n  #calculatedSize: LRUCache.Size\n  #keyMap: Map\n  #keyList: (K | undefined)[]\n  #valList: (V | BackgroundFetch | undefined)[]\n  #next: NumberArray\n  #prev: NumberArray\n  #head: Index\n  #tail: Index\n  #free: StackLike\n  #disposed?: DisposeTask[]\n  #sizes?: ZeroArray\n  #starts?: ZeroArray\n  #ttls?: ZeroArray\n\n  #hasDispose: boolean\n  #hasFetchMethod: boolean\n  #hasDisposeAfter: boolean\n\n  /**\n   * Do not call this method unless you need to inspect the\n   * inner workings of the cache.  If anything returned by this\n   * object is modified in any way, strange breakage may occur.\n   *\n   * These fields are private for a reason!\n   *\n   * @internal\n   */\n  static unsafeExposeInternals<\n    K extends {},\n    V extends {},\n    FC extends unknown = unknown\n  >(c: LRUCache) {\n    return {\n      // properties\n      starts: c.#starts,\n      ttls: c.#ttls,\n      sizes: c.#sizes,\n      keyMap: c.#keyMap as Map,\n      keyList: c.#keyList,\n      valList: c.#valList,\n      next: c.#next,\n      prev: c.#prev,\n      get head() {\n        return c.#head\n      },\n      get tail() {\n        return c.#tail\n      },\n      free: c.#free,\n      // methods\n      isBackgroundFetch: (p: any) => c.#isBackgroundFetch(p),\n      backgroundFetch: (\n        k: K,\n        index: number | undefined,\n        options: LRUCache.FetchOptions,\n        context: any\n      ): BackgroundFetch =>\n        c.#backgroundFetch(\n          k,\n          index as Index | undefined,\n          options,\n          context\n        ),\n      moveToTail: (index: number): void =>\n        c.#moveToTail(index as Index),\n      indexes: (options?: { allowStale: boolean }) =>\n        c.#indexes(options),\n      rindexes: (options?: { allowStale: boolean }) =>\n        c.#rindexes(options),\n      isStale: (index: number | undefined) =>\n        c.#isStale(index as Index),\n    }\n  }\n\n  // Protected read-only members\n\n  /**\n   * {@link LRUCache.OptionsBase.max} (read-only)\n   */\n  get max(): LRUCache.Count {\n    return this.#max\n  }\n  /**\n   * {@link LRUCache.OptionsBase.maxSize} (read-only)\n   */\n  get maxSize(): LRUCache.Count {\n    return this.#maxSize\n  }\n  /**\n   * The total computed size of items in the cache (read-only)\n   */\n  get calculatedSize(): LRUCache.Size {\n    return this.#calculatedSize\n  }\n  /**\n   * The number of items stored in the cache (read-only)\n   */\n  get size(): LRUCache.Count {\n    return this.#size\n  }\n  /**\n   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n   */\n  get fetchMethod(): LRUCache.Fetcher | undefined {\n    return this.#fetchMethod\n  }\n  get memoMethod(): LRUCache.Memoizer | undefined {\n    return this.#memoMethod\n  }\n  /**\n   * {@link LRUCache.OptionsBase.dispose} (read-only)\n   */\n  get dispose() {\n    return this.#dispose\n  }\n  /**\n   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n   */\n  get disposeAfter() {\n    return this.#disposeAfter\n  }\n\n  constructor(\n    options: LRUCache.Options | LRUCache\n  ) {\n    const {\n      max = 0,\n      ttl,\n      ttlResolution = 1,\n      ttlAutopurge,\n      updateAgeOnGet,\n      updateAgeOnHas,\n      allowStale,\n      dispose,\n      disposeAfter,\n      noDisposeOnSet,\n      noUpdateTTL,\n      maxSize = 0,\n      maxEntrySize = 0,\n      sizeCalculation,\n      fetchMethod,\n      memoMethod,\n      noDeleteOnFetchRejection,\n      noDeleteOnStaleGet,\n      allowStaleOnFetchRejection,\n      allowStaleOnFetchAbort,\n      ignoreFetchAbort,\n    } = options\n\n    if (max !== 0 && !isPosInt(max)) {\n      throw new TypeError('max option must be a nonnegative integer')\n    }\n\n    const UintArray = max ? getUintArray(max) : Array\n    if (!UintArray) {\n      throw new Error('invalid max value: ' + max)\n    }\n\n    this.#max = max\n    this.#maxSize = maxSize\n    this.maxEntrySize = maxEntrySize || this.#maxSize\n    this.sizeCalculation = sizeCalculation\n    if (this.sizeCalculation) {\n      if (!this.#maxSize && !this.maxEntrySize) {\n        throw new TypeError(\n          'cannot set sizeCalculation without setting maxSize or maxEntrySize'\n        )\n      }\n      if (typeof this.sizeCalculation !== 'function') {\n        throw new TypeError('sizeCalculation set to non-function')\n      }\n    }\n\n    if (\n      memoMethod !== undefined &&\n      typeof memoMethod !== 'function'\n    ) {\n      throw new TypeError('memoMethod must be a function if defined')\n    }\n    this.#memoMethod = memoMethod\n\n    if (\n      fetchMethod !== undefined &&\n      typeof fetchMethod !== 'function'\n    ) {\n      throw new TypeError(\n        'fetchMethod must be a function if specified'\n      )\n    }\n    this.#fetchMethod = fetchMethod\n    this.#hasFetchMethod = !!fetchMethod\n\n    this.#keyMap = new Map()\n    this.#keyList = new Array(max).fill(undefined)\n    this.#valList = new Array(max).fill(undefined)\n    this.#next = new UintArray(max)\n    this.#prev = new UintArray(max)\n    this.#head = 0 as Index\n    this.#tail = 0 as Index\n    this.#free = Stack.create(max)\n    this.#size = 0\n    this.#calculatedSize = 0\n\n    if (typeof dispose === 'function') {\n      this.#dispose = dispose\n    }\n    if (typeof disposeAfter === 'function') {\n      this.#disposeAfter = disposeAfter\n      this.#disposed = []\n    } else {\n      this.#disposeAfter = undefined\n      this.#disposed = undefined\n    }\n    this.#hasDispose = !!this.#dispose\n    this.#hasDisposeAfter = !!this.#disposeAfter\n\n    this.noDisposeOnSet = !!noDisposeOnSet\n    this.noUpdateTTL = !!noUpdateTTL\n    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection\n    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection\n    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort\n    this.ignoreFetchAbort = !!ignoreFetchAbort\n\n    // NB: maxEntrySize is set to maxSize if it's set\n    if (this.maxEntrySize !== 0) {\n      if (this.#maxSize !== 0) {\n        if (!isPosInt(this.#maxSize)) {\n          throw new TypeError(\n            'maxSize must be a positive integer if specified'\n          )\n        }\n      }\n      if (!isPosInt(this.maxEntrySize)) {\n        throw new TypeError(\n          'maxEntrySize must be a positive integer if specified'\n        )\n      }\n      this.#initializeSizeTracking()\n    }\n\n    this.allowStale = !!allowStale\n    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet\n    this.updateAgeOnGet = !!updateAgeOnGet\n    this.updateAgeOnHas = !!updateAgeOnHas\n    this.ttlResolution =\n      isPosInt(ttlResolution) || ttlResolution === 0\n        ? ttlResolution\n        : 1\n    this.ttlAutopurge = !!ttlAutopurge\n    this.ttl = ttl || 0\n    if (this.ttl) {\n      if (!isPosInt(this.ttl)) {\n        throw new TypeError(\n          'ttl must be a positive integer if specified'\n        )\n      }\n      this.#initializeTTLTracking()\n    }\n\n    // do not allow completely unbounded caches\n    if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n      throw new TypeError(\n        'At least one of max, maxSize, or ttl is required'\n      )\n    }\n    if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n      const code = 'LRU_CACHE_UNBOUNDED'\n      if (shouldWarn(code)) {\n        warned.add(code)\n        const msg =\n          'TTL caching without ttlAutopurge, max, or maxSize can ' +\n          'result in unbounded memory consumption.'\n        emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)\n      }\n    }\n  }\n\n  /**\n   * Return the number of ms left in the item's TTL. If item is not in cache,\n   * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n   */\n  getRemainingTTL(key: K) {\n    return this.#keyMap.has(key) ? Infinity : 0\n  }\n\n  #initializeTTLTracking() {\n    const ttls = new ZeroArray(this.#max)\n    const starts = new ZeroArray(this.#max)\n    this.#ttls = ttls\n    this.#starts = starts\n\n    this.#setItemTTL = (index, ttl, start = perf.now()) => {\n      starts[index] = ttl !== 0 ? start : 0\n      ttls[index] = ttl\n      if (ttl !== 0 && this.ttlAutopurge) {\n        const t = setTimeout(() => {\n          if (this.#isStale(index)) {\n            this.#delete(this.#keyList[index] as K, 'expire')\n          }\n        }, ttl + 1)\n        // unref() not supported on all platforms\n        /* c8 ignore start */\n        if (t.unref) {\n          t.unref()\n        }\n        /* c8 ignore stop */\n      }\n    }\n\n    this.#updateItemAge = index => {\n      starts[index] = ttls[index] !== 0 ? perf.now() : 0\n    }\n\n    this.#statusTTL = (status, index) => {\n      if (ttls[index]) {\n        const ttl = ttls[index]\n        const start = starts[index]\n        /* c8 ignore next */\n        if (!ttl || !start) return\n        status.ttl = ttl\n        status.start = start\n        status.now = cachedNow || getNow()\n        const age = status.now - start\n        status.remainingTTL = ttl - age\n      }\n    }\n\n    // debounce calls to perf.now() to 1s so we're not hitting\n    // that costly call repeatedly.\n    let cachedNow = 0\n    const getNow = () => {\n      const n = perf.now()\n      if (this.ttlResolution > 0) {\n        cachedNow = n\n        const t = setTimeout(\n          () => (cachedNow = 0),\n          this.ttlResolution\n        )\n        // not available on all platforms\n        /* c8 ignore start */\n        if (t.unref) {\n          t.unref()\n        }\n        /* c8 ignore stop */\n      }\n      return n\n    }\n\n    this.getRemainingTTL = key => {\n      const index = this.#keyMap.get(key)\n      if (index === undefined) {\n        return 0\n      }\n      const ttl = ttls[index]\n      const start = starts[index]\n      if (!ttl || !start) {\n        return Infinity\n      }\n      const age = (cachedNow || getNow()) - start\n      return ttl - age\n    }\n\n    this.#isStale = index => {\n      const s = starts[index]\n      const t = ttls[index]\n      return !!t && !!s && (cachedNow || getNow()) - s > t\n    }\n  }\n\n  // conditionally set private methods related to TTL\n  #updateItemAge: (index: Index) => void = () => {}\n  #statusTTL: (status: LRUCache.Status, index: Index) => void =\n    () => {}\n  #setItemTTL: (\n    index: Index,\n    ttl: LRUCache.Milliseconds,\n    start?: LRUCache.Milliseconds\n    // ignore because we never call this if we're not already in TTL mode\n    /* c8 ignore start */\n  ) => void = () => {}\n  /* c8 ignore stop */\n\n  #isStale: (index: Index) => boolean = () => false\n\n  #initializeSizeTracking() {\n    const sizes = new ZeroArray(this.#max)\n    this.#calculatedSize = 0\n    this.#sizes = sizes\n    this.#removeItemSize = index => {\n      this.#calculatedSize -= sizes[index] as number\n      sizes[index] = 0\n    }\n    this.#requireSize = (k, v, size, sizeCalculation) => {\n      // provisionally accept background fetches.\n      // actual value size will be checked when they return.\n      if (this.#isBackgroundFetch(v)) {\n        return 0\n      }\n      if (!isPosInt(size)) {\n        if (sizeCalculation) {\n          if (typeof sizeCalculation !== 'function') {\n            throw new TypeError('sizeCalculation must be a function')\n          }\n          size = sizeCalculation(v, k)\n          if (!isPosInt(size)) {\n            throw new TypeError(\n              'sizeCalculation return invalid (expect positive integer)'\n            )\n          }\n        } else {\n          throw new TypeError(\n            'invalid size value (must be positive integer). ' +\n              'When maxSize or maxEntrySize is used, sizeCalculation ' +\n              'or size must be set.'\n          )\n        }\n      }\n      return size\n    }\n    this.#addItemSize = (\n      index: Index,\n      size: LRUCache.Size,\n      status?: LRUCache.Status\n    ) => {\n      sizes[index] = size\n      if (this.#maxSize) {\n        const maxSize = this.#maxSize - (sizes[index] as number)\n        while (this.#calculatedSize > maxSize) {\n          this.#evict(true)\n        }\n      }\n      this.#calculatedSize += sizes[index] as number\n      if (status) {\n        status.entrySize = size\n        status.totalCalculatedSize = this.#calculatedSize\n      }\n    }\n  }\n\n  #removeItemSize: (index: Index) => void = _i => {}\n  #addItemSize: (\n    index: Index,\n    size: LRUCache.Size,\n    status?: LRUCache.Status\n  ) => void = (_i, _s, _st) => {}\n  #requireSize: (\n    k: K,\n    v: V | BackgroundFetch,\n    size?: LRUCache.Size,\n    sizeCalculation?: LRUCache.SizeCalculator\n  ) => LRUCache.Size = (\n    _k: K,\n    _v: V | BackgroundFetch,\n    size?: LRUCache.Size,\n    sizeCalculation?: LRUCache.SizeCalculator\n  ) => {\n    if (size || sizeCalculation) {\n      throw new TypeError(\n        'cannot set size without setting maxSize or maxEntrySize on cache'\n      )\n    }\n    return 0\n  };\n\n  *#indexes({ allowStale = this.allowStale } = {}) {\n    if (this.#size) {\n      for (let i = this.#tail; true; ) {\n        if (!this.#isValidIndex(i)) {\n          break\n        }\n        if (allowStale || !this.#isStale(i)) {\n          yield i\n        }\n        if (i === this.#head) {\n          break\n        } else {\n          i = this.#prev[i] as Index\n        }\n      }\n    }\n  }\n\n  *#rindexes({ allowStale = this.allowStale } = {}) {\n    if (this.#size) {\n      for (let i = this.#head; true; ) {\n        if (!this.#isValidIndex(i)) {\n          break\n        }\n        if (allowStale || !this.#isStale(i)) {\n          yield i\n        }\n        if (i === this.#tail) {\n          break\n        } else {\n          i = this.#next[i] as Index\n        }\n      }\n    }\n  }\n\n  #isValidIndex(index: Index) {\n    return (\n      index !== undefined &&\n      this.#keyMap.get(this.#keyList[index] as K) === index\n    )\n  }\n\n  /**\n   * Return a generator yielding `[key, value]` pairs,\n   * in order from most recently used to least recently used.\n   */\n  *entries() {\n    for (const i of this.#indexes()) {\n      if (\n        this.#valList[i] !== undefined &&\n        this.#keyList[i] !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield [this.#keyList[i], this.#valList[i]] as [K, V]\n      }\n    }\n  }\n\n  /**\n   * Inverse order version of {@link LRUCache.entries}\n   *\n   * Return a generator yielding `[key, value]` pairs,\n   * in order from least recently used to most recently used.\n   */\n  *rentries() {\n    for (const i of this.#rindexes()) {\n      if (\n        this.#valList[i] !== undefined &&\n        this.#keyList[i] !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield [this.#keyList[i], this.#valList[i]]\n      }\n    }\n  }\n\n  /**\n   * Return a generator yielding the keys in the cache,\n   * in order from most recently used to least recently used.\n   */\n  *keys() {\n    for (const i of this.#indexes()) {\n      const k = this.#keyList[i]\n      if (\n        k !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield k\n      }\n    }\n  }\n\n  /**\n   * Inverse order version of {@link LRUCache.keys}\n   *\n   * Return a generator yielding the keys in the cache,\n   * in order from least recently used to most recently used.\n   */\n  *rkeys() {\n    for (const i of this.#rindexes()) {\n      const k = this.#keyList[i]\n      if (\n        k !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield k\n      }\n    }\n  }\n\n  /**\n   * Return a generator yielding the values in the cache,\n   * in order from most recently used to least recently used.\n   */\n  *values() {\n    for (const i of this.#indexes()) {\n      const v = this.#valList[i]\n      if (\n        v !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield this.#valList[i] as V\n      }\n    }\n  }\n\n  /**\n   * Inverse order version of {@link LRUCache.values}\n   *\n   * Return a generator yielding the values in the cache,\n   * in order from least recently used to most recently used.\n   */\n  *rvalues() {\n    for (const i of this.#rindexes()) {\n      const v = this.#valList[i]\n      if (\n        v !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield this.#valList[i]\n      }\n    }\n  }\n\n  /**\n   * Iterating over the cache itself yields the same results as\n   * {@link LRUCache.entries}\n   */\n  [Symbol.iterator]() {\n    return this.entries()\n  }\n\n  /**\n   * A String value that is used in the creation of the default string\n   * description of an object. Called by the built-in method\n   * `Object.prototype.toString`.\n   */\n  [Symbol.toStringTag] = 'LRUCache'\n\n  /**\n   * Find a value for which the supplied fn method returns a truthy value,\n   * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n   */\n  find(\n    fn: (v: V, k: K, self: LRUCache) => boolean,\n    getOptions: LRUCache.GetOptions = {}\n  ) {\n    for (const i of this.#indexes()) {\n      const v = this.#valList[i]\n      const value = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined) continue\n      if (fn(value, this.#keyList[i] as K, this)) {\n        return this.get(this.#keyList[i] as K, getOptions)\n      }\n    }\n  }\n\n  /**\n   * Call the supplied function on each item in the cache, in order from most\n   * recently used to least recently used.\n   *\n   * `fn` is called as `fn(value, key, cache)`.\n   *\n   * If `thisp` is provided, function will be called in the `this`-context of\n   * the provided object, or the cache if no `thisp` object is provided.\n   *\n   * Does not update age or recenty of use, or iterate over stale values.\n   */\n  forEach(\n    fn: (v: V, k: K, self: LRUCache) => any,\n    thisp: any = this\n  ) {\n    for (const i of this.#indexes()) {\n      const v = this.#valList[i]\n      const value = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined) continue\n      fn.call(thisp, value, this.#keyList[i] as K, this)\n    }\n  }\n\n  /**\n   * The same as {@link LRUCache.forEach} but items are iterated over in\n   * reverse order.  (ie, less recently used items are iterated over first.)\n   */\n  rforEach(\n    fn: (v: V, k: K, self: LRUCache) => any,\n    thisp: any = this\n  ) {\n    for (const i of this.#rindexes()) {\n      const v = this.#valList[i]\n      const value = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined) continue\n      fn.call(thisp, value, this.#keyList[i] as K, this)\n    }\n  }\n\n  /**\n   * Delete any stale entries. Returns true if anything was removed,\n   * false otherwise.\n   */\n  purgeStale() {\n    let deleted = false\n    for (const i of this.#rindexes({ allowStale: true })) {\n      if (this.#isStale(i)) {\n        this.#delete(this.#keyList[i] as K, 'expire')\n        deleted = true\n      }\n    }\n    return deleted\n  }\n\n  /**\n   * Get the extended info about a given entry, to get its value, size, and\n   * TTL info simultaneously. Returns `undefined` if the key is not present.\n   *\n   * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n   * serialization, the `start` value is always the current timestamp, and the\n   * `ttl` is a calculated remaining time to live (negative if expired).\n   *\n   * Always returns stale values, if their info is found in the cache, so be\n   * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n   * if relevant.\n   */\n  info(key: K): LRUCache.Entry | undefined {\n    const i = this.#keyMap.get(key)\n    if (i === undefined) return undefined\n    const v = this.#valList[i]\n    const value: V | undefined = this.#isBackgroundFetch(v)\n      ? v.__staleWhileFetching\n      : v\n    if (value === undefined) return undefined\n    const entry: LRUCache.Entry = { value }\n    if (this.#ttls && this.#starts) {\n      const ttl = this.#ttls[i]\n      const start = this.#starts[i]\n      if (ttl && start) {\n        const remain = ttl - (perf.now() - start)\n        entry.ttl = remain\n        entry.start = Date.now()\n      }\n    }\n    if (this.#sizes) {\n      entry.size = this.#sizes[i]\n    }\n    return entry\n  }\n\n  /**\n   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n   * passed to {@link LRLUCache#load}.\n   *\n   * The `start` fields are calculated relative to a portable `Date.now()`\n   * timestamp, even if `performance.now()` is available.\n   *\n   * Stale entries are always included in the `dump`, even if\n   * {@link LRUCache.OptionsBase.allowStale} is false.\n   *\n   * Note: this returns an actual array, not a generator, so it can be more\n   * easily passed around.\n   */\n  dump() {\n    const arr: [K, LRUCache.Entry][] = []\n    for (const i of this.#indexes({ allowStale: true })) {\n      const key = this.#keyList[i]\n      const v = this.#valList[i]\n      const value: V | undefined = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined || key === undefined) continue\n      const entry: LRUCache.Entry = { value }\n      if (this.#ttls && this.#starts) {\n        entry.ttl = this.#ttls[i]\n        // always dump the start relative to a portable timestamp\n        // it's ok for this to be a bit slow, it's a rare operation.\n        const age = perf.now() - (this.#starts[i] as number)\n        entry.start = Math.floor(Date.now() - age)\n      }\n      if (this.#sizes) {\n        entry.size = this.#sizes[i]\n      }\n      arr.unshift([key, entry])\n    }\n    return arr\n  }\n\n  /**\n   * Reset the cache and load in the items in entries in the order listed.\n   *\n   * The shape of the resulting cache may be different if the same options are\n   * not used in both caches.\n   *\n   * The `start` fields are assumed to be calculated relative to a portable\n   * `Date.now()` timestamp, even if `performance.now()` is available.\n   */\n  load(arr: [K, LRUCache.Entry][]) {\n    this.clear()\n    for (const [key, entry] of arr) {\n      if (entry.start) {\n        // entry.start is a portable timestamp, but we may be using\n        // node's performance.now(), so calculate the offset, so that\n        // we get the intended remaining TTL, no matter how long it's\n        // been on ice.\n        //\n        // it's ok for this to be a bit slow, it's a rare operation.\n        const age = Date.now() - entry.start\n        entry.start = perf.now() - age\n      }\n      this.set(key, entry.value, entry)\n    }\n  }\n\n  /**\n   * Add a value to the cache.\n   *\n   * Note: if `undefined` is specified as a value, this is an alias for\n   * {@link LRUCache#delete}\n   *\n   * Fields on the {@link LRUCache.SetOptions} options param will override\n   * their corresponding values in the constructor options for the scope\n   * of this single `set()` operation.\n   *\n   * If `start` is provided, then that will set the effective start\n   * time for the TTL calculation. Note that this must be a previous\n   * value of `performance.now()` if supported, or a previous value of\n   * `Date.now()` if not.\n   *\n   * Options object may also include `size`, which will prevent\n   * calling the `sizeCalculation` function and just use the specified\n   * number if it is a positive integer, and `noDisposeOnSet` which\n   * will prevent calling a `dispose` function in the case of\n   * overwrites.\n   *\n   * If the `size` (or return value of `sizeCalculation`) for a given\n   * entry is greater than `maxEntrySize`, then the item will not be\n   * added to the cache.\n   *\n   * Will update the recency of the entry.\n   *\n   * If the value is `undefined`, then this is an alias for\n   * `cache.delete(key)`. `undefined` is never stored in the cache.\n   */\n  set(\n    k: K,\n    v: V | BackgroundFetch | undefined,\n    setOptions: LRUCache.SetOptions = {}\n  ) {\n    if (v === undefined) {\n      this.delete(k)\n      return this\n    }\n    const {\n      ttl = this.ttl,\n      start,\n      noDisposeOnSet = this.noDisposeOnSet,\n      sizeCalculation = this.sizeCalculation,\n      status,\n    } = setOptions\n    let { noUpdateTTL = this.noUpdateTTL } = setOptions\n\n    const size = this.#requireSize(\n      k,\n      v,\n      setOptions.size || 0,\n      sizeCalculation\n    )\n    // if the item doesn't fit, don't do anything\n    // NB: maxEntrySize set to maxSize by default\n    if (this.maxEntrySize && size > this.maxEntrySize) {\n      if (status) {\n        status.set = 'miss'\n        status.maxEntrySizeExceeded = true\n      }\n      // have to delete, in case something is there already.\n      this.#delete(k, 'set')\n      return this\n    }\n    let index = this.#size === 0 ? undefined : this.#keyMap.get(k)\n    if (index === undefined) {\n      // addition\n      index = (\n        this.#size === 0\n          ? this.#tail\n          : this.#free.length !== 0\n          ? this.#free.pop()\n          : this.#size === this.#max\n          ? this.#evict(false)\n          : this.#size\n      ) as Index\n      this.#keyList[index] = k\n      this.#valList[index] = v\n      this.#keyMap.set(k, index)\n      this.#next[this.#tail] = index\n      this.#prev[index] = this.#tail\n      this.#tail = index\n      this.#size++\n      this.#addItemSize(index, size, status)\n      if (status) status.set = 'add'\n      noUpdateTTL = false\n    } else {\n      // update\n      this.#moveToTail(index)\n      const oldVal = this.#valList[index] as V | BackgroundFetch\n      if (v !== oldVal) {\n        if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n          oldVal.__abortController.abort(new Error('replaced'))\n          const { __staleWhileFetching: s } = oldVal\n          if (s !== undefined && !noDisposeOnSet) {\n            if (this.#hasDispose) {\n              this.#dispose?.(s as V, k, 'set')\n            }\n            if (this.#hasDisposeAfter) {\n              this.#disposed?.push([s as V, k, 'set'])\n            }\n          }\n        } else if (!noDisposeOnSet) {\n          if (this.#hasDispose) {\n            this.#dispose?.(oldVal as V, k, 'set')\n          }\n          if (this.#hasDisposeAfter) {\n            this.#disposed?.push([oldVal as V, k, 'set'])\n          }\n        }\n        this.#removeItemSize(index)\n        this.#addItemSize(index, size, status)\n        this.#valList[index] = v\n        if (status) {\n          status.set = 'replace'\n          const oldValue =\n            oldVal && this.#isBackgroundFetch(oldVal)\n              ? oldVal.__staleWhileFetching\n              : oldVal\n          if (oldValue !== undefined) status.oldValue = oldValue\n        }\n      } else if (status) {\n        status.set = 'update'\n      }\n    }\n    if (ttl !== 0 && !this.#ttls) {\n      this.#initializeTTLTracking()\n    }\n    if (this.#ttls) {\n      if (!noUpdateTTL) {\n        this.#setItemTTL(index, ttl, start)\n      }\n      if (status) this.#statusTTL(status, index)\n    }\n    if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n      const dt = this.#disposed\n      let task: DisposeTask | undefined\n      while ((task = dt?.shift())) {\n        this.#disposeAfter?.(...task)\n      }\n    }\n    return this\n  }\n\n  /**\n   * Evict the least recently used item, returning its value or\n   * `undefined` if cache is empty.\n   */\n  pop(): V | undefined {\n    try {\n      while (this.#size) {\n        const val = this.#valList[this.#head]\n        this.#evict(true)\n        if (this.#isBackgroundFetch(val)) {\n          if (val.__staleWhileFetching) {\n            return val.__staleWhileFetching\n          }\n        } else if (val !== undefined) {\n          return val\n        }\n      }\n    } finally {\n      if (this.#hasDisposeAfter && this.#disposed) {\n        const dt = this.#disposed\n        let task: DisposeTask | undefined\n        while ((task = dt?.shift())) {\n          this.#disposeAfter?.(...task)\n        }\n      }\n    }\n  }\n\n  #evict(free: boolean) {\n    const head = this.#head\n    const k = this.#keyList[head] as K\n    const v = this.#valList[head] as V\n    if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n      v.__abortController.abort(new Error('evicted'))\n    } else if (this.#hasDispose || this.#hasDisposeAfter) {\n      if (this.#hasDispose) {\n        this.#dispose?.(v, k, 'evict')\n      }\n      if (this.#hasDisposeAfter) {\n        this.#disposed?.push([v, k, 'evict'])\n      }\n    }\n    this.#removeItemSize(head)\n    // if we aren't about to use the index, then null these out\n    if (free) {\n      this.#keyList[head] = undefined\n      this.#valList[head] = undefined\n      this.#free.push(head)\n    }\n    if (this.#size === 1) {\n      this.#head = this.#tail = 0 as Index\n      this.#free.length = 0\n    } else {\n      this.#head = this.#next[head] as Index\n    }\n    this.#keyMap.delete(k)\n    this.#size--\n    return head\n  }\n\n  /**\n   * Check if a key is in the cache, without updating the recency of use.\n   * Will return false if the item is stale, even though it is technically\n   * in the cache.\n   *\n   * Check if a key is in the cache, without updating the recency of\n   * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n   * to `true` in either the options or the constructor.\n   *\n   * Will return `false` if the item is stale, even though it is technically in\n   * the cache. The difference can be determined (if it matters) by using a\n   * `status` argument, and inspecting the `has` field.\n   *\n   * Will not update item age unless\n   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n   */\n  has(k: K, hasOptions: LRUCache.HasOptions = {}) {\n    const { updateAgeOnHas = this.updateAgeOnHas, status } =\n      hasOptions\n    const index = this.#keyMap.get(k)\n    if (index !== undefined) {\n      const v = this.#valList[index]\n      if (\n        this.#isBackgroundFetch(v) &&\n        v.__staleWhileFetching === undefined\n      ) {\n        return false\n      }\n      if (!this.#isStale(index)) {\n        if (updateAgeOnHas) {\n          this.#updateItemAge(index)\n        }\n        if (status) {\n          status.has = 'hit'\n          this.#statusTTL(status, index)\n        }\n        return true\n      } else if (status) {\n        status.has = 'stale'\n        this.#statusTTL(status, index)\n      }\n    } else if (status) {\n      status.has = 'miss'\n    }\n    return false\n  }\n\n  /**\n   * Like {@link LRUCache#get} but doesn't update recency or delete stale\n   * items.\n   *\n   * Returns `undefined` if the item is stale, unless\n   * {@link LRUCache.OptionsBase.allowStale} is set.\n   */\n  peek(k: K, peekOptions: LRUCache.PeekOptions = {}) {\n    const { allowStale = this.allowStale } = peekOptions\n    const index = this.#keyMap.get(k)\n    if (\n      index === undefined ||\n      (!allowStale && this.#isStale(index))\n    ) {\n      return\n    }\n    const v = this.#valList[index]\n    // either stale and allowed, or forcing a refresh of non-stale value\n    return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n  }\n\n  #backgroundFetch(\n    k: K,\n    index: Index | undefined,\n    options: LRUCache.FetchOptions,\n    context: any\n  ): BackgroundFetch {\n    const v = index === undefined ? undefined : this.#valList[index]\n    if (this.#isBackgroundFetch(v)) {\n      return v\n    }\n\n    const ac = new AC()\n    const { signal } = options\n    // when/if our AC signals, then stop listening to theirs.\n    signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n      signal: ac.signal,\n    })\n\n    const fetchOpts = {\n      signal: ac.signal,\n      options,\n      context,\n    }\n\n    const cb = (\n      v: V | undefined,\n      updateCache = false\n    ): V | undefined => {\n      const { aborted } = ac.signal\n      const ignoreAbort = options.ignoreFetchAbort && v !== undefined\n      if (options.status) {\n        if (aborted && !updateCache) {\n          options.status.fetchAborted = true\n          options.status.fetchError = ac.signal.reason\n          if (ignoreAbort) options.status.fetchAbortIgnored = true\n        } else {\n          options.status.fetchResolved = true\n        }\n      }\n      if (aborted && !ignoreAbort && !updateCache) {\n        return fetchFail(ac.signal.reason)\n      }\n      // either we didn't abort, and are still here, or we did, and ignored\n      const bf = p as BackgroundFetch\n      if (this.#valList[index as Index] === p) {\n        if (v === undefined) {\n          if (bf.__staleWhileFetching) {\n            this.#valList[index as Index] = bf.__staleWhileFetching\n          } else {\n            this.#delete(k, 'fetch')\n          }\n        } else {\n          if (options.status) options.status.fetchUpdated = true\n          this.set(k, v, fetchOpts.options)\n        }\n      }\n      return v\n    }\n\n    const eb = (er: any) => {\n      if (options.status) {\n        options.status.fetchRejected = true\n        options.status.fetchError = er\n      }\n      return fetchFail(er)\n    }\n\n    const fetchFail = (er: any): V | undefined => {\n      const { aborted } = ac.signal\n      const allowStaleAborted =\n        aborted && options.allowStaleOnFetchAbort\n      const allowStale =\n        allowStaleAborted || options.allowStaleOnFetchRejection\n      const noDelete = allowStale || options.noDeleteOnFetchRejection\n      const bf = p as BackgroundFetch\n      if (this.#valList[index as Index] === p) {\n        // if we allow stale on fetch rejections, then we need to ensure that\n        // the stale value is not removed from the cache when the fetch fails.\n        const del = !noDelete || bf.__staleWhileFetching === undefined\n        if (del) {\n          this.#delete(k, 'fetch')\n        } else if (!allowStaleAborted) {\n          // still replace the *promise* with the stale value,\n          // since we are done with the promise at this point.\n          // leave it untouched if we're still waiting for an\n          // aborted background fetch that hasn't yet returned.\n          this.#valList[index as Index] = bf.__staleWhileFetching\n        }\n      }\n      if (allowStale) {\n        if (options.status && bf.__staleWhileFetching !== undefined) {\n          options.status.returnedStale = true\n        }\n        return bf.__staleWhileFetching\n      } else if (bf.__returned === bf) {\n        throw er\n      }\n    }\n\n    const pcall = (\n      res: (v: V | undefined) => void,\n      rej: (e: any) => void\n    ) => {\n      const fmp = this.#fetchMethod?.(k, v, fetchOpts)\n      if (fmp && fmp instanceof Promise) {\n        fmp.then(v => res(v === undefined ? undefined : v), rej)\n      }\n      // ignored, we go until we finish, regardless.\n      // defer check until we are actually aborting,\n      // so fetchMethod can override.\n      ac.signal.addEventListener('abort', () => {\n        if (\n          !options.ignoreFetchAbort ||\n          options.allowStaleOnFetchAbort\n        ) {\n          res(undefined)\n          // when it eventually resolves, update the cache.\n          if (options.allowStaleOnFetchAbort) {\n            res = v => cb(v, true)\n          }\n        }\n      })\n    }\n\n    if (options.status) options.status.fetchDispatched = true\n    const p = new Promise(pcall).then(cb, eb)\n    const bf: BackgroundFetch = Object.assign(p, {\n      __abortController: ac,\n      __staleWhileFetching: v,\n      __returned: undefined,\n    })\n\n    if (index === undefined) {\n      // internal, don't expose status.\n      this.set(k, bf, { ...fetchOpts.options, status: undefined })\n      index = this.#keyMap.get(k)\n    } else {\n      this.#valList[index] = bf\n    }\n    return bf\n  }\n\n  #isBackgroundFetch(p: any): p is BackgroundFetch {\n    if (!this.#hasFetchMethod) return false\n    const b = p as BackgroundFetch\n    return (\n      !!b &&\n      b instanceof Promise &&\n      b.hasOwnProperty('__staleWhileFetching') &&\n      b.__abortController instanceof AC\n    )\n  }\n\n  /**\n   * Make an asynchronous cached fetch using the\n   * {@link LRUCache.OptionsBase.fetchMethod} function.\n   *\n   * If the value is in the cache and not stale, then the returned\n   * Promise resolves to the value.\n   *\n   * If not in the cache, or beyond its TTL staleness, then\n   * `fetchMethod(key, staleValue, { options, signal, context })` is\n   * called, and the value returned will be added to the cache once\n   * resolved.\n   *\n   * If called with `allowStale`, and an asynchronous fetch is\n   * currently in progress to reload a stale value, then the former\n   * stale value will be returned.\n   *\n   * If called with `forceRefresh`, then the cached item will be\n   * re-fetched, even if it is not stale. However, if `allowStale` is also\n   * set, then the old value will still be returned. This is useful\n   * in cases where you want to force a reload of a cached value. If\n   * a background fetch is already in progress, then `forceRefresh`\n   * has no effect.\n   *\n   * If multiple fetches for the same key are issued, then they will all be\n   * coalesced into a single call to fetchMethod.\n   *\n   * Note that this means that handling options such as\n   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort},\n   * {@link LRUCache.FetchOptions.signal},\n   * and {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} will be\n   * determined by the FIRST fetch() call for a given key.\n   *\n   * This is a known (fixable) shortcoming which will be addresed on when\n   * someone complains about it, as the fix would involve added complexity and\n   * may not be worth the costs for this edge case.\n   *\n   * If {@link LRUCache.OptionsBase.fetchMethod} is not specified, then this is\n   * effectively an alias for `Promise.resolve(cache.get(key))`.\n   *\n   * When the fetch method resolves to a value, if the fetch has not\n   * been aborted due to deletion, eviction, or being overwritten,\n   * then it is added to the cache using the options provided.\n   *\n   * If the key is evicted or deleted before the `fetchMethod`\n   * resolves, then the AbortSignal passed to the `fetchMethod` will\n   * receive an `abort` event, and the promise returned by `fetch()`\n   * will reject with the reason for the abort.\n   *\n   * If a `signal` is passed to the `fetch()` call, then aborting the\n   * signal will abort the fetch and cause the `fetch()` promise to\n   * reject with the reason provided.\n   *\n   * **Setting `context`**\n   *\n   * If an `FC` type is set to a type other than `unknown`, `void`, or\n   * `undefined` in the {@link LRUCache} constructor, then all\n   * calls to `cache.fetch()` _must_ provide a `context` option. If\n   * set to `undefined` or `void`, then calls to fetch _must not_\n   * provide a `context` option.\n   *\n   * The `context` param allows you to provide arbitrary data that\n   * might be relevant in the course of fetching the data. It is only\n   * relevant for the course of a single `fetch()` operation, and\n   * discarded afterwards.\n   *\n   * **Note: `fetch()` calls are inflight-unique**\n   *\n   * If you call `fetch()` multiple times with the same key value,\n   * then every call after the first will resolve on the same\n   * promise1,\n   * _even if they have different settings that would otherwise change\n   * the behavior of the fetch_, such as `noDeleteOnFetchRejection`\n   * or `ignoreFetchAbort`.\n   *\n   * In most cases, this is not a problem (in fact, only fetching\n   * something once is what you probably want, if you're caching in\n   * the first place). If you are changing the fetch() options\n   * dramatically between runs, there's a good chance that you might\n   * be trying to fit divergent semantics into a single object, and\n   * would be better off with multiple cache instances.\n   *\n   * **1**: Ie, they're not the \"same Promise\", but they resolve at\n   * the same time, because they're both waiting on the same\n   * underlying fetchMethod response.\n   */\n\n  fetch(\n    k: K,\n    fetchOptions: unknown extends FC\n      ? LRUCache.FetchOptions\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext\n      : LRUCache.FetchOptionsWithContext\n  ): Promise\n\n  // this overload not allowed if context is required\n  fetch(\n    k: unknown extends FC\n      ? K\n      : FC extends undefined | void\n      ? K\n      : never,\n    fetchOptions?: unknown extends FC\n      ? LRUCache.FetchOptions\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext\n      : never\n  ): Promise\n\n  async fetch(\n    k: K,\n    fetchOptions: LRUCache.FetchOptions = {}\n  ): Promise {\n    const {\n      // get options\n      allowStale = this.allowStale,\n      updateAgeOnGet = this.updateAgeOnGet,\n      noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n      // set options\n      ttl = this.ttl,\n      noDisposeOnSet = this.noDisposeOnSet,\n      size = 0,\n      sizeCalculation = this.sizeCalculation,\n      noUpdateTTL = this.noUpdateTTL,\n      // fetch exclusive options\n      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,\n      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,\n      ignoreFetchAbort = this.ignoreFetchAbort,\n      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,\n      context,\n      forceRefresh = false,\n      status,\n      signal,\n    } = fetchOptions\n\n    if (!this.#hasFetchMethod) {\n      if (status) status.fetch = 'get'\n      return this.get(k, {\n        allowStale,\n        updateAgeOnGet,\n        noDeleteOnStaleGet,\n        status,\n      })\n    }\n\n    const options = {\n      allowStale,\n      updateAgeOnGet,\n      noDeleteOnStaleGet,\n      ttl,\n      noDisposeOnSet,\n      size,\n      sizeCalculation,\n      noUpdateTTL,\n      noDeleteOnFetchRejection,\n      allowStaleOnFetchRejection,\n      allowStaleOnFetchAbort,\n      ignoreFetchAbort,\n      status,\n      signal,\n    }\n\n    let index = this.#keyMap.get(k)\n    if (index === undefined) {\n      if (status) status.fetch = 'miss'\n      const p = this.#backgroundFetch(k, index, options, context)\n      return (p.__returned = p)\n    } else {\n      // in cache, maybe already fetching\n      const v = this.#valList[index]\n      if (this.#isBackgroundFetch(v)) {\n        const stale =\n          allowStale && v.__staleWhileFetching !== undefined\n        if (status) {\n          status.fetch = 'inflight'\n          if (stale) status.returnedStale = true\n        }\n        return stale ? v.__staleWhileFetching : (v.__returned = v)\n      }\n\n      // if we force a refresh, that means do NOT serve the cached value,\n      // unless we are already in the process of refreshing the cache.\n      const isStale = this.#isStale(index)\n      if (!forceRefresh && !isStale) {\n        if (status) status.fetch = 'hit'\n        this.#moveToTail(index)\n        if (updateAgeOnGet) {\n          this.#updateItemAge(index)\n        }\n        if (status) this.#statusTTL(status, index)\n        return v\n      }\n\n      // ok, it is stale or a forced refresh, and not already fetching.\n      // refresh the cache.\n      const p = this.#backgroundFetch(k, index, options, context)\n      const hasStale = p.__staleWhileFetching !== undefined\n      const staleVal = hasStale && allowStale\n      if (status) {\n        status.fetch = isStale ? 'stale' : 'refresh'\n        if (staleVal && isStale) status.returnedStale = true\n      }\n      return staleVal ? p.__staleWhileFetching : (p.__returned = p)\n    }\n  }\n\n  /**\n   * In some cases, `cache.fetch()` may resolve to `undefined`, either because\n   * a {@link LRUCache.OptionsBase#fetchMethod} was not provided (turning\n   * `cache.fetch(k)` into just an async wrapper around `cache.get(k)`) or\n   * because `ignoreFetchAbort` was specified (either to the constructor or\n   * in the {@link LRUCache.FetchOptions}). Also, the\n   * {@link OptionsBase.fetchMethod} may return `undefined` or `void`, making\n   * the test even more complicated.\n   *\n   * Because inferring the cases where `undefined` might be returned are so\n   * cumbersome, but testing for `undefined` can also be annoying, this method\n   * can be used, which will reject if `this.fetch()` resolves to undefined.\n   */\n  forceFetch(\n    k: K,\n    fetchOptions: unknown extends FC\n      ? LRUCache.FetchOptions\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext\n      : LRUCache.FetchOptionsWithContext\n  ): Promise\n  // this overload not allowed if context is required\n  forceFetch(\n    k: unknown extends FC\n      ? K\n      : FC extends undefined | void\n      ? K\n      : never,\n    fetchOptions?: unknown extends FC\n      ? LRUCache.FetchOptions\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext\n      : never\n  ): Promise\n  async forceFetch(\n    k: K,\n    fetchOptions: LRUCache.FetchOptions = {}\n  ): Promise {\n    const v = await this.fetch(\n      k,\n      fetchOptions as unknown extends FC\n        ? LRUCache.FetchOptions\n        : FC extends undefined | void\n        ? LRUCache.FetchOptionsNoContext\n        : LRUCache.FetchOptionsWithContext\n    )\n    if (v === undefined) throw new Error('fetch() returned undefined')\n    return v\n  }\n\n  /**\n   * If the key is found in the cache, then this is equivalent to\n   * {@link LRUCache#get}. If not, in the cache, then calculate the value using\n   * the {@link LRUCache.OptionsBase.memoMethod}, and add it to the cache.\n   *\n   * If an `FC` type is set to a type other than `unknown`, `void`, or\n   * `undefined` in the LRUCache constructor, then all calls to `cache.memo()`\n   * _must_ provide a `context` option. If set to `undefined` or `void`, then\n   * calls to memo _must not_ provide a `context` option.\n   *\n   * The `context` param allows you to provide arbitrary data that might be\n   * relevant in the course of fetching the data. It is only relevant for the\n   * course of a single `memo()` operation, and discarded afterwards.\n   */\n  memo(\n    k: K,\n    memoOptions: unknown extends FC\n      ? LRUCache.MemoOptions\n      : FC extends undefined | void\n      ? LRUCache.MemoOptionsNoContext\n      : LRUCache.MemoOptionsWithContext\n  ): V\n  // this overload not allowed if context is required\n  memo(\n    k: unknown extends FC\n      ? K\n      : FC extends undefined | void\n      ? K\n      : never,\n    memoOptions?: unknown extends FC\n      ? LRUCache.MemoOptions\n      : FC extends undefined | void\n      ? LRUCache.MemoOptionsNoContext\n      : never\n  ): V\n  memo(k: K, memoOptions: LRUCache.MemoOptions = {}) {\n    const memoMethod = this.#memoMethod\n    if (!memoMethod) {\n      throw new Error('no memoMethod provided to constructor')\n    }\n    const { context, forceRefresh, ...options } = memoOptions\n    const v = this.get(k, options)\n    if (!forceRefresh && v !== undefined) return v\n    const vv = memoMethod(k, v, {\n      options,\n      context,\n    } as LRUCache.MemoizerOptions)\n    this.set(k, vv, options)\n    return vv\n  }\n\n  /**\n   * Return a value from the cache. Will update the recency of the cache\n   * entry found.\n   *\n   * If the key is not found, get() will return `undefined`.\n   */\n  get(k: K, getOptions: LRUCache.GetOptions = {}) {\n    const {\n      allowStale = this.allowStale,\n      updateAgeOnGet = this.updateAgeOnGet,\n      noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n      status,\n    } = getOptions\n    const index = this.#keyMap.get(k)\n    if (index !== undefined) {\n      const value = this.#valList[index]\n      const fetching = this.#isBackgroundFetch(value)\n      if (status) this.#statusTTL(status, index)\n      if (this.#isStale(index)) {\n        if (status) status.get = 'stale'\n        // delete only if not an in-flight background fetch\n        if (!fetching) {\n          if (!noDeleteOnStaleGet) {\n            this.#delete(k, 'expire')\n          }\n          if (status && allowStale) status.returnedStale = true\n          return allowStale ? value : undefined\n        } else {\n          if (\n            status &&\n            allowStale &&\n            value.__staleWhileFetching !== undefined\n          ) {\n            status.returnedStale = true\n          }\n          return allowStale ? value.__staleWhileFetching : undefined\n        }\n      } else {\n        if (status) status.get = 'hit'\n        // if we're currently fetching it, we don't actually have it yet\n        // it's not stale, which means this isn't a staleWhileRefetching.\n        // If it's not stale, and fetching, AND has a __staleWhileFetching\n        // value, then that means the user fetched with {forceRefresh:true},\n        // so it's safe to return that value.\n        if (fetching) {\n          return value.__staleWhileFetching\n        }\n        this.#moveToTail(index)\n        if (updateAgeOnGet) {\n          this.#updateItemAge(index)\n        }\n        return value\n      }\n    } else if (status) {\n      status.get = 'miss'\n    }\n  }\n\n  #connect(p: Index, n: Index) {\n    this.#prev[n] = p\n    this.#next[p] = n\n  }\n\n  #moveToTail(index: Index): void {\n    // if tail already, nothing to do\n    // if head, move head to next[index]\n    // else\n    //   move next[prev[index]] to next[index] (head has no prev)\n    //   move prev[next[index]] to prev[index]\n    // prev[index] = tail\n    // next[tail] = index\n    // tail = index\n    if (index !== this.#tail) {\n      if (index === this.#head) {\n        this.#head = this.#next[index] as Index\n      } else {\n        this.#connect(\n          this.#prev[index] as Index,\n          this.#next[index] as Index\n        )\n      }\n      this.#connect(this.#tail, index)\n      this.#tail = index\n    }\n  }\n\n  /**\n   * Deletes a key out of the cache.\n   *\n   * Returns true if the key was deleted, false otherwise.\n   */\n  delete(k: K) {\n    return this.#delete(k, 'delete')\n  }\n\n  #delete(k: K, reason: LRUCache.DisposeReason) {\n    let deleted = false\n    if (this.#size !== 0) {\n      const index = this.#keyMap.get(k)\n      if (index !== undefined) {\n        deleted = true\n        if (this.#size === 1) {\n          this.#clear(reason)\n        } else {\n          this.#removeItemSize(index)\n          const v = this.#valList[index]\n          if (this.#isBackgroundFetch(v)) {\n            v.__abortController.abort(new Error('deleted'))\n          } else if (this.#hasDispose || this.#hasDisposeAfter) {\n            if (this.#hasDispose) {\n              this.#dispose?.(v as V, k, reason)\n            }\n            if (this.#hasDisposeAfter) {\n              this.#disposed?.push([v as V, k, reason])\n            }\n          }\n          this.#keyMap.delete(k)\n          this.#keyList[index] = undefined\n          this.#valList[index] = undefined\n          if (index === this.#tail) {\n            this.#tail = this.#prev[index] as Index\n          } else if (index === this.#head) {\n            this.#head = this.#next[index] as Index\n          } else {\n            const pi = this.#prev[index] as number\n            this.#next[pi] = this.#next[index] as number\n            const ni = this.#next[index] as number\n            this.#prev[ni] = this.#prev[index] as number\n          }\n          this.#size--\n          this.#free.push(index)\n        }\n      }\n    }\n    if (this.#hasDisposeAfter && this.#disposed?.length) {\n      const dt = this.#disposed\n      let task: DisposeTask | undefined\n      while ((task = dt?.shift())) {\n        this.#disposeAfter?.(...task)\n      }\n    }\n    return deleted\n  }\n\n  /**\n   * Clear the cache entirely, throwing away all values.\n   */\n  clear() {\n    return this.#clear('delete')\n  }\n  #clear(reason: LRUCache.DisposeReason) {\n    for (const index of this.#rindexes({ allowStale: true })) {\n      const v = this.#valList[index]\n      if (this.#isBackgroundFetch(v)) {\n        v.__abortController.abort(new Error('deleted'))\n      } else {\n        const k = this.#keyList[index]\n        if (this.#hasDispose) {\n          this.#dispose?.(v as V, k as K, reason)\n        }\n        if (this.#hasDisposeAfter) {\n          this.#disposed?.push([v as V, k as K, reason])\n        }\n      }\n    }\n\n    this.#keyMap.clear()\n    this.#valList.fill(undefined)\n    this.#keyList.fill(undefined)\n    if (this.#ttls && this.#starts) {\n      this.#ttls.fill(0)\n      this.#starts.fill(0)\n    }\n    if (this.#sizes) {\n      this.#sizes.fill(0)\n    }\n    this.#head = 0 as Index\n    this.#tail = 0 as Index\n    this.#free.length = 0\n    this.#calculatedSize = 0\n    this.#size = 0\n    if (this.#hasDisposeAfter && this.#disposed) {\n      const dt = this.#disposed\n      let task: DisposeTask | undefined\n      while ((task = dt?.shift())) {\n        this.#disposeAfter?.(...task)\n      }\n    }\n  }\n}\n", "'use strict'\n\nconst { LRUCache } = require('lru-cache')\n\nconst MEMOIZED = new LRUCache({\n  max: 500,\n  maxSize: 50 * 1024 * 1024, // 50MB\n  ttl: 3 * 60 * 1000, // 3 minutes\n  sizeCalculation: (entry, key) => key.startsWith('key:') ? entry.data.length : entry.length,\n})\n\nmodule.exports.clearMemoized = clearMemoized\n\nfunction clearMemoized () {\n  const old = {}\n  MEMOIZED.forEach((v, k) => {\n    old[k] = v\n  })\n  MEMOIZED.clear()\n  return old\n}\n\nmodule.exports.put = put\n\nfunction put (cache, entry, data, opts) {\n  pickMem(opts).set(`key:${cache}:${entry.key}`, { entry, data })\n  putDigest(cache, entry.integrity, data, opts)\n}\n\nmodule.exports.put.byDigest = putDigest\n\nfunction putDigest (cache, integrity, data, opts) {\n  pickMem(opts).set(`digest:${cache}:${integrity}`, data)\n}\n\nmodule.exports.get = get\n\nfunction get (cache, key, opts) {\n  return pickMem(opts).get(`key:${cache}:${key}`)\n}\n\nmodule.exports.get.byDigest = getDigest\n\nfunction getDigest (cache, integrity, opts) {\n  return pickMem(opts).get(`digest:${cache}:${integrity}`)\n}\n\nclass ObjProxy {\n  constructor (obj) {\n    this.obj = obj\n  }\n\n  get (key) {\n    return this.obj[key]\n  }\n\n  set (key, val) {\n    this.obj[key] = val\n  }\n}\n\nfunction pickMem (opts) {\n  if (!opts || !opts.memoize) {\n    return MEMOIZED\n  } else if (opts.memoize.get && opts.memoize.set) {\n    return opts.memoize\n  } else if (typeof opts.memoize === 'object') {\n    return new ObjProxy(opts.memoize)\n  } else {\n    return MEMOIZED\n  }\n}\n", "'use strict'\nconst { Minipass } = require('minipass')\nconst EE = require('events').EventEmitter\nconst fs = require('fs')\n\nconst writev = fs.writev\n\nconst _autoClose = Symbol('_autoClose')\nconst _close = Symbol('_close')\nconst _ended = Symbol('_ended')\nconst _fd = Symbol('_fd')\nconst _finished = Symbol('_finished')\nconst _flags = Symbol('_flags')\nconst _flush = Symbol('_flush')\nconst _handleChunk = Symbol('_handleChunk')\nconst _makeBuf = Symbol('_makeBuf')\nconst _mode = Symbol('_mode')\nconst _needDrain = Symbol('_needDrain')\nconst _onerror = Symbol('_onerror')\nconst _onopen = Symbol('_onopen')\nconst _onread = Symbol('_onread')\nconst _onwrite = Symbol('_onwrite')\nconst _open = Symbol('_open')\nconst _path = Symbol('_path')\nconst _pos = Symbol('_pos')\nconst _queue = Symbol('_queue')\nconst _read = Symbol('_read')\nconst _readSize = Symbol('_readSize')\nconst _reading = Symbol('_reading')\nconst _remain = Symbol('_remain')\nconst _size = Symbol('_size')\nconst _write = Symbol('_write')\nconst _writing = Symbol('_writing')\nconst _defaultFlag = Symbol('_defaultFlag')\nconst _errored = Symbol('_errored')\n\nclass ReadStream extends Minipass {\n  constructor (path, opt) {\n    opt = opt || {}\n    super(opt)\n\n    this.readable = true\n    this.writable = false\n\n    if (typeof path !== 'string') {\n      throw new TypeError('path must be a string')\n    }\n\n    this[_errored] = false\n    this[_fd] = typeof opt.fd === 'number' ? opt.fd : null\n    this[_path] = path\n    this[_readSize] = opt.readSize || 16 * 1024 * 1024\n    this[_reading] = false\n    this[_size] = typeof opt.size === 'number' ? opt.size : Infinity\n    this[_remain] = this[_size]\n    this[_autoClose] = typeof opt.autoClose === 'boolean' ?\n      opt.autoClose : true\n\n    if (typeof this[_fd] === 'number') {\n      this[_read]()\n    } else {\n      this[_open]()\n    }\n  }\n\n  get fd () {\n    return this[_fd]\n  }\n\n  get path () {\n    return this[_path]\n  }\n\n  write () {\n    throw new TypeError('this is a readable stream')\n  }\n\n  end () {\n    throw new TypeError('this is a readable stream')\n  }\n\n  [_open] () {\n    fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd))\n  }\n\n  [_onopen] (er, fd) {\n    if (er) {\n      this[_onerror](er)\n    } else {\n      this[_fd] = fd\n      this.emit('open', fd)\n      this[_read]()\n    }\n  }\n\n  [_makeBuf] () {\n    return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain]))\n  }\n\n  [_read] () {\n    if (!this[_reading]) {\n      this[_reading] = true\n      const buf = this[_makeBuf]()\n      /* istanbul ignore if */\n      if (buf.length === 0) {\n        return process.nextTick(() => this[_onread](null, 0, buf))\n      }\n      fs.read(this[_fd], buf, 0, buf.length, null, (er, br, b) =>\n        this[_onread](er, br, b))\n    }\n  }\n\n  [_onread] (er, br, buf) {\n    this[_reading] = false\n    if (er) {\n      this[_onerror](er)\n    } else if (this[_handleChunk](br, buf)) {\n      this[_read]()\n    }\n  }\n\n  [_close] () {\n    if (this[_autoClose] && typeof this[_fd] === 'number') {\n      const fd = this[_fd]\n      this[_fd] = null\n      fs.close(fd, er => er ? this.emit('error', er) : this.emit('close'))\n    }\n  }\n\n  [_onerror] (er) {\n    this[_reading] = true\n    this[_close]()\n    this.emit('error', er)\n  }\n\n  [_handleChunk] (br, buf) {\n    let ret = false\n    // no effect if infinite\n    this[_remain] -= br\n    if (br > 0) {\n      ret = super.write(br < buf.length ? buf.slice(0, br) : buf)\n    }\n\n    if (br === 0 || this[_remain] <= 0) {\n      ret = false\n      this[_close]()\n      super.end()\n    }\n\n    return ret\n  }\n\n  emit (ev, data) {\n    switch (ev) {\n      case 'prefinish':\n      case 'finish':\n        break\n\n      case 'drain':\n        if (typeof this[_fd] === 'number') {\n          this[_read]()\n        }\n        break\n\n      case 'error':\n        if (this[_errored]) {\n          return\n        }\n        this[_errored] = true\n        return super.emit(ev, data)\n\n      default:\n        return super.emit(ev, data)\n    }\n  }\n}\n\nclass ReadStreamSync extends ReadStream {\n  [_open] () {\n    let threw = true\n    try {\n      this[_onopen](null, fs.openSync(this[_path], 'r'))\n      threw = false\n    } finally {\n      if (threw) {\n        this[_close]()\n      }\n    }\n  }\n\n  [_read] () {\n    let threw = true\n    try {\n      if (!this[_reading]) {\n        this[_reading] = true\n        do {\n          const buf = this[_makeBuf]()\n          /* istanbul ignore next */\n          const br = buf.length === 0 ? 0\n            : fs.readSync(this[_fd], buf, 0, buf.length, null)\n          if (!this[_handleChunk](br, buf)) {\n            break\n          }\n        } while (true)\n        this[_reading] = false\n      }\n      threw = false\n    } finally {\n      if (threw) {\n        this[_close]()\n      }\n    }\n  }\n\n  [_close] () {\n    if (this[_autoClose] && typeof this[_fd] === 'number') {\n      const fd = this[_fd]\n      this[_fd] = null\n      fs.closeSync(fd)\n      this.emit('close')\n    }\n  }\n}\n\nclass WriteStream extends EE {\n  constructor (path, opt) {\n    opt = opt || {}\n    super(opt)\n    this.readable = false\n    this.writable = true\n    this[_errored] = false\n    this[_writing] = false\n    this[_ended] = false\n    this[_needDrain] = false\n    this[_queue] = []\n    this[_path] = path\n    this[_fd] = typeof opt.fd === 'number' ? opt.fd : null\n    this[_mode] = opt.mode === undefined ? 0o666 : opt.mode\n    this[_pos] = typeof opt.start === 'number' ? opt.start : null\n    this[_autoClose] = typeof opt.autoClose === 'boolean' ?\n      opt.autoClose : true\n\n    // truncating makes no sense when writing into the middle\n    const defaultFlag = this[_pos] !== null ? 'r+' : 'w'\n    this[_defaultFlag] = opt.flags === undefined\n    this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags\n\n    if (this[_fd] === null) {\n      this[_open]()\n    }\n  }\n\n  emit (ev, data) {\n    if (ev === 'error') {\n      if (this[_errored]) {\n        return\n      }\n      this[_errored] = true\n    }\n    return super.emit(ev, data)\n  }\n\n  get fd () {\n    return this[_fd]\n  }\n\n  get path () {\n    return this[_path]\n  }\n\n  [_onerror] (er) {\n    this[_close]()\n    this[_writing] = true\n    this.emit('error', er)\n  }\n\n  [_open] () {\n    fs.open(this[_path], this[_flags], this[_mode],\n      (er, fd) => this[_onopen](er, fd))\n  }\n\n  [_onopen] (er, fd) {\n    if (this[_defaultFlag] &&\n        this[_flags] === 'r+' &&\n        er && er.code === 'ENOENT') {\n      this[_flags] = 'w'\n      this[_open]()\n    } else if (er) {\n      this[_onerror](er)\n    } else {\n      this[_fd] = fd\n      this.emit('open', fd)\n      if (!this[_writing]) {\n        this[_flush]()\n      }\n    }\n  }\n\n  end (buf, enc) {\n    if (buf) {\n      this.write(buf, enc)\n    }\n\n    this[_ended] = true\n\n    // synthetic after-write logic, where drain/finish live\n    if (!this[_writing] && !this[_queue].length &&\n        typeof this[_fd] === 'number') {\n      this[_onwrite](null, 0)\n    }\n    return this\n  }\n\n  write (buf, enc) {\n    if (typeof buf === 'string') {\n      buf = Buffer.from(buf, enc)\n    }\n\n    if (this[_ended]) {\n      this.emit('error', new Error('write() after end()'))\n      return false\n    }\n\n    if (this[_fd] === null || this[_writing] || this[_queue].length) {\n      this[_queue].push(buf)\n      this[_needDrain] = true\n      return false\n    }\n\n    this[_writing] = true\n    this[_write](buf)\n    return true\n  }\n\n  [_write] (buf) {\n    fs.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) =>\n      this[_onwrite](er, bw))\n  }\n\n  [_onwrite] (er, bw) {\n    if (er) {\n      this[_onerror](er)\n    } else {\n      if (this[_pos] !== null) {\n        this[_pos] += bw\n      }\n      if (this[_queue].length) {\n        this[_flush]()\n      } else {\n        this[_writing] = false\n\n        if (this[_ended] && !this[_finished]) {\n          this[_finished] = true\n          this[_close]()\n          this.emit('finish')\n        } else if (this[_needDrain]) {\n          this[_needDrain] = false\n          this.emit('drain')\n        }\n      }\n    }\n  }\n\n  [_flush] () {\n    if (this[_queue].length === 0) {\n      if (this[_ended]) {\n        this[_onwrite](null, 0)\n      }\n    } else if (this[_queue].length === 1) {\n      this[_write](this[_queue].pop())\n    } else {\n      const iovec = this[_queue]\n      this[_queue] = []\n      writev(this[_fd], iovec, this[_pos],\n        (er, bw) => this[_onwrite](er, bw))\n    }\n  }\n\n  [_close] () {\n    if (this[_autoClose] && typeof this[_fd] === 'number') {\n      const fd = this[_fd]\n      this[_fd] = null\n      fs.close(fd, er => er ? this.emit('error', er) : this.emit('close'))\n    }\n  }\n}\n\nclass WriteStreamSync extends WriteStream {\n  [_open] () {\n    let fd\n    // only wrap in a try{} block if we know we'll retry, to avoid\n    // the rethrow obscuring the error's source frame in most cases.\n    if (this[_defaultFlag] && this[_flags] === 'r+') {\n      try {\n        fd = fs.openSync(this[_path], this[_flags], this[_mode])\n      } catch (er) {\n        if (er.code === 'ENOENT') {\n          this[_flags] = 'w'\n          return this[_open]()\n        } else {\n          throw er\n        }\n      }\n    } else {\n      fd = fs.openSync(this[_path], this[_flags], this[_mode])\n    }\n\n    this[_onopen](null, fd)\n  }\n\n  [_close] () {\n    if (this[_autoClose] && typeof this[_fd] === 'number') {\n      const fd = this[_fd]\n      this[_fd] = null\n      fs.closeSync(fd)\n      this.emit('close')\n    }\n  }\n\n  [_write] (buf) {\n    // throw the original, but try to close if it fails\n    let threw = true\n    try {\n      this[_onwrite](null,\n        fs.writeSync(this[_fd], buf, 0, buf.length, this[_pos]))\n      threw = false\n    } finally {\n      if (threw) {\n        try {\n          this[_close]()\n        } catch {\n          // ok error\n        }\n      }\n    }\n  }\n}\n\nexports.ReadStream = ReadStream\nexports.ReadStreamSync = ReadStreamSync\n\nexports.WriteStream = WriteStream\nexports.WriteStreamSync = WriteStreamSync\n", "'use strict'\n\nconst fs = require('fs/promises')\nconst fsm = require('fs-minipass')\nconst ssri = require('ssri')\nconst contentPath = require('./path')\nconst Pipeline = require('minipass-pipeline')\n\nmodule.exports = read\n\nconst MAX_SINGLE_READ_SIZE = 64 * 1024 * 1024\nasync function read (cache, integrity, opts = {}) {\n  const { size } = opts\n  const { stat, cpath, sri } = await withContentSri(cache, integrity, async (cpath, sri) => {\n    // get size\n    const stat = size ? { size } : await fs.stat(cpath)\n    return { stat, cpath, sri }\n  })\n\n  if (stat.size > MAX_SINGLE_READ_SIZE) {\n    return readPipeline(cpath, stat.size, sri, new Pipeline()).concat()\n  }\n\n  const data = await fs.readFile(cpath, { encoding: null })\n\n  if (stat.size !== data.length) {\n    throw sizeError(stat.size, data.length)\n  }\n\n  if (!ssri.checkData(data, sri)) {\n    throw integrityError(sri, cpath)\n  }\n\n  return data\n}\n\nconst readPipeline = (cpath, size, sri, stream) => {\n  stream.push(\n    new fsm.ReadStream(cpath, {\n      size,\n      readSize: MAX_SINGLE_READ_SIZE,\n    }),\n    ssri.integrityStream({\n      integrity: sri,\n      size,\n    })\n  )\n  return stream\n}\n\nmodule.exports.stream = readStream\nmodule.exports.readStream = readStream\n\nfunction readStream (cache, integrity, opts = {}) {\n  const { size } = opts\n  const stream = new Pipeline()\n  // Set all this up to run on the stream and then just return the stream\n  Promise.resolve().then(async () => {\n    const { stat, cpath, sri } = await withContentSri(cache, integrity, async (cpath, sri) => {\n      // get size\n      const stat = size ? { size } : await fs.stat(cpath)\n      return { stat, cpath, sri }\n    })\n\n    return readPipeline(cpath, stat.size, sri, stream)\n  }).catch(err => stream.emit('error', err))\n\n  return stream\n}\n\nmodule.exports.copy = copy\n\nfunction copy (cache, integrity, dest) {\n  return withContentSri(cache, integrity, (cpath) => {\n    return fs.copyFile(cpath, dest)\n  })\n}\n\nmodule.exports.hasContent = hasContent\n\nasync function hasContent (cache, integrity) {\n  if (!integrity) {\n    return false\n  }\n\n  try {\n    return await withContentSri(cache, integrity, async (cpath, sri) => {\n      const stat = await fs.stat(cpath)\n      return { size: stat.size, sri, stat }\n    })\n  } catch (err) {\n    if (err.code === 'ENOENT') {\n      return false\n    }\n\n    if (err.code === 'EPERM') {\n      /* istanbul ignore else */\n      if (process.platform !== 'win32') {\n        throw err\n      } else {\n        return false\n      }\n    }\n  }\n}\n\nasync function withContentSri (cache, integrity, fn) {\n  const sri = ssri.parse(integrity)\n  // If `integrity` has multiple entries, pick the first digest\n  // with available local data.\n  const algo = sri.pickAlgorithm()\n  const digests = sri[algo]\n\n  if (digests.length <= 1) {\n    const cpath = contentPath(cache, digests[0])\n    return fn(cpath, digests[0])\n  } else {\n    // Can't use race here because a generic error can happen before\n    // a ENOENT error, and can happen before a valid result\n    const results = await Promise.all(digests.map(async (meta) => {\n      try {\n        return await withContentSri(cache, meta, fn)\n      } catch (err) {\n        if (err.code === 'ENOENT') {\n          return Object.assign(\n            new Error('No matching content found for ' + sri.toString()),\n            { code: 'ENOENT' }\n          )\n        }\n        return err\n      }\n    }))\n    // Return the first non error if it is found\n    const result = results.find((r) => !(r instanceof Error))\n    if (result) {\n      return result\n    }\n\n    // Throw the No matching content found error\n    const enoentError = results.find((r) => r.code === 'ENOENT')\n    if (enoentError) {\n      throw enoentError\n    }\n\n    // Throw generic error\n    throw results.find((r) => r instanceof Error)\n  }\n}\n\nfunction sizeError (expected, found) {\n  /* eslint-disable-next-line max-len */\n  const err = new Error(`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)\n  err.expected = expected\n  err.found = found\n  err.code = 'EBADSIZE'\n  return err\n}\n\nfunction integrityError (sri, path) {\n  const err = new Error(`Integrity verification failed for ${sri} (${path})`)\n  err.code = 'EINTEGRITY'\n  err.sri = sri\n  err.path = path\n  return err\n}\n", "'use strict'\n\nconst Collect = require('minipass-collect')\nconst { Minipass } = require('minipass')\nconst Pipeline = require('minipass-pipeline')\n\nconst index = require('./entry-index')\nconst memo = require('./memoization')\nconst read = require('./content/read')\n\nasync function getData (cache, key, opts = {}) {\n  const { integrity, memoize, size } = opts\n  const memoized = memo.get(cache, key, opts)\n  if (memoized && memoize !== false) {\n    return {\n      metadata: memoized.entry.metadata,\n      data: memoized.data,\n      integrity: memoized.entry.integrity,\n      size: memoized.entry.size,\n    }\n  }\n\n  const entry = await index.find(cache, key, opts)\n  if (!entry) {\n    throw new index.NotFoundError(cache, key)\n  }\n  const data = await read(cache, entry.integrity, { integrity, size })\n  if (memoize) {\n    memo.put(cache, entry, data, opts)\n  }\n\n  return {\n    data,\n    metadata: entry.metadata,\n    size: entry.size,\n    integrity: entry.integrity,\n  }\n}\nmodule.exports = getData\n\nasync function getDataByDigest (cache, key, opts = {}) {\n  const { integrity, memoize, size } = opts\n  const memoized = memo.get.byDigest(cache, key, opts)\n  if (memoized && memoize !== false) {\n    return memoized\n  }\n\n  const res = await read(cache, key, { integrity, size })\n  if (memoize) {\n    memo.put.byDigest(cache, key, res, opts)\n  }\n  return res\n}\nmodule.exports.byDigest = getDataByDigest\n\nconst getMemoizedStream = (memoized) => {\n  const stream = new Minipass()\n  stream.on('newListener', function (ev, cb) {\n    ev === 'metadata' && cb(memoized.entry.metadata)\n    ev === 'integrity' && cb(memoized.entry.integrity)\n    ev === 'size' && cb(memoized.entry.size)\n  })\n  stream.end(memoized.data)\n  return stream\n}\n\nfunction getStream (cache, key, opts = {}) {\n  const { memoize, size } = opts\n  const memoized = memo.get(cache, key, opts)\n  if (memoized && memoize !== false) {\n    return getMemoizedStream(memoized)\n  }\n\n  const stream = new Pipeline()\n  // Set all this up to run on the stream and then just return the stream\n  Promise.resolve().then(async () => {\n    const entry = await index.find(cache, key)\n    if (!entry) {\n      throw new index.NotFoundError(cache, key)\n    }\n\n    stream.emit('metadata', entry.metadata)\n    stream.emit('integrity', entry.integrity)\n    stream.emit('size', entry.size)\n    stream.on('newListener', function (ev, cb) {\n      ev === 'metadata' && cb(entry.metadata)\n      ev === 'integrity' && cb(entry.integrity)\n      ev === 'size' && cb(entry.size)\n    })\n\n    const src = read.readStream(\n      cache,\n      entry.integrity,\n      { ...opts, size: typeof size !== 'number' ? entry.size : size }\n    )\n\n    if (memoize) {\n      const memoStream = new Collect.PassThrough()\n      memoStream.on('collect', data => memo.put(cache, entry, data, opts))\n      stream.unshift(memoStream)\n    }\n    stream.unshift(src)\n    return stream\n  }).catch((err) => stream.emit('error', err))\n\n  return stream\n}\n\nmodule.exports.stream = getStream\n\nfunction getStreamDigest (cache, integrity, opts = {}) {\n  const { memoize } = opts\n  const memoized = memo.get.byDigest(cache, integrity, opts)\n  if (memoized && memoize !== false) {\n    const stream = new Minipass()\n    stream.end(memoized)\n    return stream\n  } else {\n    const stream = read.readStream(cache, integrity, opts)\n    if (!memoize) {\n      return stream\n    }\n\n    const memoStream = new Collect.PassThrough()\n    memoStream.on('collect', data => memo.put.byDigest(\n      cache,\n      integrity,\n      data,\n      opts\n    ))\n    return new Pipeline(stream, memoStream)\n  }\n}\n\nmodule.exports.stream.byDigest = getStreamDigest\n\nfunction info (cache, key, opts = {}) {\n  const { memoize } = opts\n  const memoized = memo.get(cache, key, opts)\n  if (memoized && memoize !== false) {\n    return Promise.resolve(memoized.entry)\n  } else {\n    return index.find(cache, key)\n  }\n}\nmodule.exports.info = info\n\nasync function copy (cache, key, dest, opts = {}) {\n  const entry = await index.find(cache, key, opts)\n  if (!entry) {\n    throw new index.NotFoundError(cache, key)\n  }\n  await read.copy(cache, entry.integrity, dest, opts)\n  return {\n    metadata: entry.metadata,\n    size: entry.size,\n    integrity: entry.integrity,\n  }\n}\n\nmodule.exports.copy = copy\n\nasync function copyByDigest (cache, key, dest, opts = {}) {\n  await read.copy(cache, key, dest, opts)\n  return key\n}\n\nmodule.exports.copy.byDigest = copyByDigest\n\nmodule.exports.hasContent = read.hasContent\n", "const Minipass = require('minipass')\nconst _flush = Symbol('_flush')\nconst _flushed = Symbol('_flushed')\nconst _flushing = Symbol('_flushing')\nclass Flush extends Minipass {\n  constructor (opt = {}) {\n    if (typeof opt === 'function')\n      opt = { flush: opt }\n\n    super(opt)\n\n    // or extend this class and provide a 'flush' method in your subclass\n    if (typeof opt.flush !== 'function' && typeof this.flush !== 'function')\n      throw new TypeError('must provide flush function in options')\n\n    this[_flush] = opt.flush || this.flush\n  }\n\n  emit (ev, ...data) {\n    if ((ev !== 'end' && ev !== 'finish') || this[_flushed])\n      return super.emit(ev, ...data)\n\n    if (this[_flushing])\n      return\n\n    this[_flushing] = true\n\n    const afterFlush = er => {\n      this[_flushed] = true\n      er ? super.emit('error', er) : super.emit('end')\n    }\n\n    const ret = this[_flush](afterFlush)\n    if (ret && ret.then)\n      ret.then(() => afterFlush(), er => afterFlush(er))\n  }\n}\n\nmodule.exports = Flush\n", "'use strict'\n\nconst events = require('events')\n\nconst contentPath = require('./path')\nconst fs = require('fs/promises')\nconst { moveFile } = require('@npmcli/fs')\nconst { Minipass } = require('minipass')\nconst Pipeline = require('minipass-pipeline')\nconst Flush = require('minipass-flush')\nconst path = require('path')\nconst ssri = require('ssri')\nconst uniqueFilename = require('unique-filename')\nconst fsm = require('fs-minipass')\n\nmodule.exports = write\n\n// Cache of move operations in process so we don't duplicate\nconst moveOperations = new Map()\n\nasync function write (cache, data, opts = {}) {\n  const { algorithms, size, integrity } = opts\n\n  if (typeof size === 'number' && data.length !== size) {\n    throw sizeError(size, data.length)\n  }\n\n  const sri = ssri.fromData(data, algorithms ? { algorithms } : {})\n  if (integrity && !ssri.checkData(data, integrity, opts)) {\n    throw checksumError(integrity, sri)\n  }\n\n  for (const algo in sri) {\n    const tmp = await makeTmp(cache, opts)\n    const hash = sri[algo].toString()\n    try {\n      await fs.writeFile(tmp.target, data, { flag: 'wx' })\n      await moveToDestination(tmp, cache, hash, opts)\n    } finally {\n      if (!tmp.moved) {\n        await fs.rm(tmp.target, { recursive: true, force: true })\n      }\n    }\n  }\n  return { integrity: sri, size: data.length }\n}\n\nmodule.exports.stream = writeStream\n\n// writes proxied to the 'inputStream' that is passed to the Promise\n// 'end' is deferred until content is handled.\nclass CacacheWriteStream extends Flush {\n  constructor (cache, opts) {\n    super()\n    this.opts = opts\n    this.cache = cache\n    this.inputStream = new Minipass()\n    this.inputStream.on('error', er => this.emit('error', er))\n    this.inputStream.on('drain', () => this.emit('drain'))\n    this.handleContentP = null\n  }\n\n  write (chunk, encoding, cb) {\n    if (!this.handleContentP) {\n      this.handleContentP = handleContent(\n        this.inputStream,\n        this.cache,\n        this.opts\n      )\n      this.handleContentP.catch(error => this.emit('error', error))\n    }\n    return this.inputStream.write(chunk, encoding, cb)\n  }\n\n  flush (cb) {\n    this.inputStream.end(() => {\n      if (!this.handleContentP) {\n        const e = new Error('Cache input stream was empty')\n        e.code = 'ENODATA'\n        // empty streams are probably emitting end right away.\n        // defer this one tick by rejecting a promise on it.\n        return Promise.reject(e).catch(cb)\n      }\n      // eslint-disable-next-line promise/catch-or-return\n      this.handleContentP.then(\n        (res) => {\n          res.integrity && this.emit('integrity', res.integrity)\n          // eslint-disable-next-line promise/always-return\n          res.size !== null && this.emit('size', res.size)\n          cb()\n        },\n        (er) => cb(er)\n      )\n    })\n  }\n}\n\nfunction writeStream (cache, opts = {}) {\n  return new CacacheWriteStream(cache, opts)\n}\n\nasync function handleContent (inputStream, cache, opts) {\n  const tmp = await makeTmp(cache, opts)\n  try {\n    const res = await pipeToTmp(inputStream, cache, tmp.target, opts)\n    await moveToDestination(\n      tmp,\n      cache,\n      res.integrity,\n      opts\n    )\n    return res\n  } finally {\n    if (!tmp.moved) {\n      await fs.rm(tmp.target, { recursive: true, force: true })\n    }\n  }\n}\n\nasync function pipeToTmp (inputStream, cache, tmpTarget, opts) {\n  const outStream = new fsm.WriteStream(tmpTarget, {\n    flags: 'wx',\n  })\n\n  if (opts.integrityEmitter) {\n    // we need to create these all simultaneously since they can fire in any order\n    const [integrity, size] = await Promise.all([\n      events.once(opts.integrityEmitter, 'integrity').then(res => res[0]),\n      events.once(opts.integrityEmitter, 'size').then(res => res[0]),\n      new Pipeline(inputStream, outStream).promise(),\n    ])\n    return { integrity, size }\n  }\n\n  let integrity\n  let size\n  const hashStream = ssri.integrityStream({\n    integrity: opts.integrity,\n    algorithms: opts.algorithms,\n    size: opts.size,\n  })\n  hashStream.on('integrity', i => {\n    integrity = i\n  })\n  hashStream.on('size', s => {\n    size = s\n  })\n\n  const pipeline = new Pipeline(inputStream, hashStream, outStream)\n  await pipeline.promise()\n  return { integrity, size }\n}\n\nasync function makeTmp (cache, opts) {\n  const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)\n  await fs.mkdir(path.dirname(tmpTarget), { recursive: true })\n  return {\n    target: tmpTarget,\n    moved: false,\n  }\n}\n\nasync function moveToDestination (tmp, cache, sri) {\n  const destination = contentPath(cache, sri)\n  const destDir = path.dirname(destination)\n  if (moveOperations.has(destination)) {\n    return moveOperations.get(destination)\n  }\n  moveOperations.set(\n    destination,\n    fs.mkdir(destDir, { recursive: true })\n      .then(async () => {\n        await moveFile(tmp.target, destination, { overwrite: false })\n        tmp.moved = true\n        return tmp.moved\n      })\n      .catch(err => {\n        if (!err.message.startsWith('The destination file exists')) {\n          throw Object.assign(err, { code: 'EEXIST' })\n        }\n      }).finally(() => {\n        moveOperations.delete(destination)\n      })\n\n  )\n  return moveOperations.get(destination)\n}\n\nfunction sizeError (expected, found) {\n  /* eslint-disable-next-line max-len */\n  const err = new Error(`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)\n  err.expected = expected\n  err.found = found\n  err.code = 'EBADSIZE'\n  return err\n}\n\nfunction checksumError (expected, found) {\n  const err = new Error(`Integrity check failed:\n  Wanted: ${expected}\n   Found: ${found}`)\n  err.code = 'EINTEGRITY'\n  err.expected = expected\n  err.found = found\n  return err\n}\n", "'use strict'\n\nconst index = require('./entry-index')\nconst memo = require('./memoization')\nconst write = require('./content/write')\nconst Flush = require('minipass-flush')\nconst { PassThrough } = require('minipass-collect')\nconst Pipeline = require('minipass-pipeline')\n\nconst putOpts = (opts) => ({\n  algorithms: ['sha512'],\n  ...opts,\n})\n\nmodule.exports = putData\n\nasync function putData (cache, key, data, opts = {}) {\n  const { memoize } = opts\n  opts = putOpts(opts)\n  const res = await write(cache, data, opts)\n  const entry = await index.insert(cache, key, res.integrity, { ...opts, size: res.size })\n  if (memoize) {\n    memo.put(cache, entry, data, opts)\n  }\n\n  return res.integrity\n}\n\nmodule.exports.stream = putStream\n\nfunction putStream (cache, key, opts = {}) {\n  const { memoize } = opts\n  opts = putOpts(opts)\n  let integrity\n  let size\n  let error\n\n  let memoData\n  const pipeline = new Pipeline()\n  // first item in the pipeline is the memoizer, because we need\n  // that to end first and get the collected data.\n  if (memoize) {\n    const memoizer = new PassThrough().on('collect', data => {\n      memoData = data\n    })\n    pipeline.push(memoizer)\n  }\n\n  // contentStream is a write-only, not a passthrough\n  // no data comes out of it.\n  const contentStream = write.stream(cache, opts)\n    .on('integrity', (int) => {\n      integrity = int\n    })\n    .on('size', (s) => {\n      size = s\n    })\n    .on('error', (err) => {\n      error = err\n    })\n\n  pipeline.push(contentStream)\n\n  // last but not least, we write the index and emit hash and size,\n  // and memoize if we're doing that\n  pipeline.push(new Flush({\n    async flush () {\n      if (!error) {\n        const entry = await index.insert(cache, key, integrity, { ...opts, size })\n        if (memoize && memoData) {\n          memo.put(cache, entry, memoData, opts)\n        }\n        pipeline.emit('integrity', integrity)\n        pipeline.emit('size', size)\n      }\n    },\n  }))\n\n  return pipeline\n}\n", "const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n  pattern: any\n): asserts pattern is string => {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('invalid pattern')\n  }\n\n  if (pattern.length > MAX_PATTERN_LENGTH) {\n    throw new TypeError('pattern is too long')\n  }\n}\n", "// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n\n// { : [, /u flag required, negated]\nconst posixClasses: { [k: string]: [e: string, u: boolean, n?: boolean] } = {\n  '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n  '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n  '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n  '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n  '[:cntrl:]': ['\\\\p{Cc}', true],\n  '[:digit:]': ['\\\\p{Nd}', true],\n  '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n  '[:lower:]': ['\\\\p{Ll}', true],\n  '[:print:]': ['\\\\p{C}', true],\n  '[:punct:]': ['\\\\p{P}', true],\n  '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n  '[:upper:]': ['\\\\p{Lu}', true],\n  '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n  '[:xdigit:]': ['A-Fa-f0-9', false],\n}\n\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s: string) => s.replace(/[[\\]\\\\-]/g, '\\\\$&')\n// escape all regexp magic characters\nconst regexpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges: string[]): string => ranges.join('')\n\nexport type ParseClassResult = [\n  src: string,\n  uFlag: boolean,\n  consumed: number,\n  hasMagic: boolean\n]\n\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (\n  glob: string,\n  position: number\n): ParseClassResult => {\n  const pos = position\n  /* c8 ignore start */\n  if (glob.charAt(pos) !== '[') {\n    throw new Error('not in a brace expression')\n  }\n  /* c8 ignore stop */\n  const ranges: string[] = []\n  const negs: string[] = []\n\n  let i = pos + 1\n  let sawStart = false\n  let uflag = false\n  let escaping = false\n  let negate = false\n  let endPos = pos\n  let rangeStart = ''\n  WHILE: while (i < glob.length) {\n    const c = glob.charAt(i)\n    if ((c === '!' || c === '^') && i === pos + 1) {\n      negate = true\n      i++\n      continue\n    }\n\n    if (c === ']' && sawStart && !escaping) {\n      endPos = i + 1\n      break\n    }\n\n    sawStart = true\n    if (c === '\\\\') {\n      if (!escaping) {\n        escaping = true\n        i++\n        continue\n      }\n      // escaped \\ char, fall through and treat like normal char\n    }\n    if (c === '[' && !escaping) {\n      // either a posix class, a collation equivalent, or just a [\n      for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n        if (glob.startsWith(cls, i)) {\n          // invalid, [a-[] is fine, but not [a-[:alpha]]\n          if (rangeStart) {\n            return ['$.', false, glob.length - pos, true]\n          }\n          i += cls.length\n          if (neg) negs.push(unip)\n          else ranges.push(unip)\n          uflag = uflag || u\n          continue WHILE\n        }\n      }\n    }\n\n    // now it's just a normal character, effectively\n    escaping = false\n    if (rangeStart) {\n      // throw this range away if it's not valid, but others\n      // can still match.\n      if (c > rangeStart) {\n        ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c))\n      } else if (c === rangeStart) {\n        ranges.push(braceEscape(c))\n      }\n      rangeStart = ''\n      i++\n      continue\n    }\n\n    // now might be the start of a range.\n    // can be either c-d or c-] or c] or c] at this point\n    if (glob.startsWith('-]', i + 1)) {\n      ranges.push(braceEscape(c + '-'))\n      i += 2\n      continue\n    }\n    if (glob.startsWith('-', i + 1)) {\n      rangeStart = c\n      i += 2\n      continue\n    }\n\n    // not the start of a range, just a single character\n    ranges.push(braceEscape(c))\n    i++\n  }\n\n  if (endPos < i) {\n    // didn't see the end of the class, not a valid class,\n    // but might still be valid as a literal match.\n    return ['', false, 0, false]\n  }\n\n  // if we got no ranges and no negates, then we have a range that\n  // cannot possibly match anything, and that poisons the whole glob\n  if (!ranges.length && !negs.length) {\n    return ['$.', false, glob.length - pos, true]\n  }\n\n  // if we got one positive range, and it's a single character, then that's\n  // not actually a magic pattern, it's just that one literal character.\n  // we should not treat that as \"magic\", we should just return the literal\n  // character. [_] is a perfectly valid way to escape glob magic chars.\n  if (\n    negs.length === 0 &&\n    ranges.length === 1 &&\n    /^\\\\?.$/.test(ranges[0]) &&\n    !negate\n  ) {\n    const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]\n    return [regexpEscape(r), false, endPos - pos, false]\n  }\n\n  const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'\n  const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'\n  const comb =\n    ranges.length && negs.length\n      ? '(' + sranges + '|' + snegs + ')'\n      : ranges.length\n      ? sranges\n      : snegs\n\n  return [comb, uflag, endPos - pos, true]\n}\n", "import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick = {}\n) => {\n  return windowsPathsNoEscape\n    ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n    : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n", "// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n//   1   2 3   4 5 6      1   2    3   46      5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n//                                 v----- .* because there's more following,\n//                                 v    v  otherwise, .+ because it must be\n//                                 v    v  *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n//   copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n  types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n  type: ExtglobType | null\n  readonly #root: AST\n\n  #hasMagic?: boolean\n  #uflag: boolean = false\n  #parts: (string | AST)[] = []\n  readonly #parent?: AST\n  readonly #parentIndex: number\n  #negs: AST[]\n  #filledNegs: boolean = false\n  #options: MinimatchOptions\n  #toString?: string\n  // set to true if it's an extglob with no children\n  // (which really means one child of '')\n  #emptyExt: boolean = false\n\n  constructor(\n    type: ExtglobType | null,\n    parent?: AST,\n    options: MinimatchOptions = {}\n  ) {\n    this.type = type\n    // extglobs are inherently magical\n    if (type) this.#hasMagic = true\n    this.#parent = parent\n    this.#root = this.#parent ? this.#parent.#root : this\n    this.#options = this.#root === this ? options : this.#root.#options\n    this.#negs = this.#root === this ? [] : this.#root.#negs\n    if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n  }\n\n  get hasMagic(): boolean | undefined {\n    /* c8 ignore start */\n    if (this.#hasMagic !== undefined) return this.#hasMagic\n    /* c8 ignore stop */\n    for (const p of this.#parts) {\n      if (typeof p === 'string') continue\n      if (p.type || p.hasMagic) return (this.#hasMagic = true)\n    }\n    // note: will be undefined until we generate the regexp src and find out\n    return this.#hasMagic\n  }\n\n  // reconstructs the pattern\n  toString(): string {\n    if (this.#toString !== undefined) return this.#toString\n    if (!this.type) {\n      return (this.#toString = this.#parts.map(p => String(p)).join(''))\n    } else {\n      return (this.#toString =\n        this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n    }\n  }\n\n  #fillNegs() {\n    /* c8 ignore start */\n    if (this !== this.#root) throw new Error('should only call on root')\n    if (this.#filledNegs) return this\n    /* c8 ignore stop */\n\n    // call toString() once to fill this out\n    this.toString()\n    this.#filledNegs = true\n    let n: AST | undefined\n    while ((n = this.#negs.pop())) {\n      if (n.type !== '!') continue\n      // walk up the tree, appending everthing that comes AFTER parentIndex\n      let p: AST | undefined = n\n      let pp = p.#parent\n      while (pp) {\n        for (\n          let i = p.#parentIndex + 1;\n          !pp.type && i < pp.#parts.length;\n          i++\n        ) {\n          for (const part of n.#parts) {\n            /* c8 ignore start */\n            if (typeof part === 'string') {\n              throw new Error('string part in extglob AST??')\n            }\n            /* c8 ignore stop */\n            part.copyIn(pp.#parts[i])\n          }\n        }\n        p = pp\n        pp = p.#parent\n      }\n    }\n    return this\n  }\n\n  push(...parts: (string | AST)[]) {\n    for (const p of parts) {\n      if (p === '') continue\n      /* c8 ignore start */\n      if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n        throw new Error('invalid part: ' + p)\n      }\n      /* c8 ignore stop */\n      this.#parts.push(p)\n    }\n  }\n\n  toJSON() {\n    const ret: any[] =\n      this.type === null\n        ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n        : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n    if (this.isStart() && !this.type) ret.unshift([])\n    if (\n      this.isEnd() &&\n      (this === this.#root ||\n        (this.#root.#filledNegs && this.#parent?.type === '!'))\n    ) {\n      ret.push({})\n    }\n    return ret\n  }\n\n  isStart(): boolean {\n    if (this.#root === this) return true\n    // if (this.type) return !!this.#parent?.isStart()\n    if (!this.#parent?.isStart()) return false\n    if (this.#parentIndex === 0) return true\n    // if everything AHEAD of this is a negation, then it's still the \"start\"\n    const p = this.#parent\n    for (let i = 0; i < this.#parentIndex; i++) {\n      const pp = p.#parts[i]\n      if (!(pp instanceof AST && pp.type === '!')) {\n        return false\n      }\n    }\n    return true\n  }\n\n  isEnd(): boolean {\n    if (this.#root === this) return true\n    if (this.#parent?.type === '!') return true\n    if (!this.#parent?.isEnd()) return false\n    if (!this.type) return this.#parent?.isEnd()\n    // if not root, it'll always have a parent\n    /* c8 ignore start */\n    const pl = this.#parent ? this.#parent.#parts.length : 0\n    /* c8 ignore stop */\n    return this.#parentIndex === pl - 1\n  }\n\n  copyIn(part: AST | string) {\n    if (typeof part === 'string') this.push(part)\n    else this.push(part.clone(this))\n  }\n\n  clone(parent: AST) {\n    const c = new AST(this.type, parent)\n    for (const p of this.#parts) {\n      c.copyIn(p)\n    }\n    return c\n  }\n\n  static #parseAST(\n    str: string,\n    ast: AST,\n    pos: number,\n    opt: MinimatchOptions\n  ): number {\n    let escaping = false\n    let inBrace = false\n    let braceStart = -1\n    let braceNeg = false\n    if (ast.type === null) {\n      // outside of a extglob, append until we find a start\n      let i = pos\n      let acc = ''\n      while (i < str.length) {\n        const c = str.charAt(i++)\n        // still accumulate escapes at this point, but we do ignore\n        // starts that are escaped\n        if (escaping || c === '\\\\') {\n          escaping = !escaping\n          acc += c\n          continue\n        }\n\n        if (inBrace) {\n          if (i === braceStart + 1) {\n            if (c === '^' || c === '!') {\n              braceNeg = true\n            }\n          } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n            inBrace = false\n          }\n          acc += c\n          continue\n        } else if (c === '[') {\n          inBrace = true\n          braceStart = i\n          braceNeg = false\n          acc += c\n          continue\n        }\n\n        if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n          ast.push(acc)\n          acc = ''\n          const ext = new AST(c, ast)\n          i = AST.#parseAST(str, ext, i, opt)\n          ast.push(ext)\n          continue\n        }\n        acc += c\n      }\n      ast.push(acc)\n      return i\n    }\n\n    // some kind of extglob, pos is at the (\n    // find the next | or )\n    let i = pos + 1\n    let part = new AST(null, ast)\n    const parts: AST[] = []\n    let acc = ''\n    while (i < str.length) {\n      const c = str.charAt(i++)\n      // still accumulate escapes at this point, but we do ignore\n      // starts that are escaped\n      if (escaping || c === '\\\\') {\n        escaping = !escaping\n        acc += c\n        continue\n      }\n\n      if (inBrace) {\n        if (i === braceStart + 1) {\n          if (c === '^' || c === '!') {\n            braceNeg = true\n          }\n        } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n          inBrace = false\n        }\n        acc += c\n        continue\n      } else if (c === '[') {\n        inBrace = true\n        braceStart = i\n        braceNeg = false\n        acc += c\n        continue\n      }\n\n      if (isExtglobType(c) && str.charAt(i) === '(') {\n        part.push(acc)\n        acc = ''\n        const ext = new AST(c, part)\n        part.push(ext)\n        i = AST.#parseAST(str, ext, i, opt)\n        continue\n      }\n      if (c === '|') {\n        part.push(acc)\n        acc = ''\n        parts.push(part)\n        part = new AST(null, ast)\n        continue\n      }\n      if (c === ')') {\n        if (acc === '' && ast.#parts.length === 0) {\n          ast.#emptyExt = true\n        }\n        part.push(acc)\n        acc = ''\n        ast.push(...parts, part)\n        return i\n      }\n      acc += c\n    }\n\n    // unfinished extglob\n    // if we got here, it was a malformed extglob! not an extglob, but\n    // maybe something else in there.\n    ast.type = null\n    ast.#hasMagic = undefined\n    ast.#parts = [str.substring(pos - 1)]\n    return i\n  }\n\n  static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n    const ast = new AST(null, undefined, options)\n    AST.#parseAST(pattern, ast, 0, options)\n    return ast\n  }\n\n  // returns the regular expression if there's magic, or the unescaped\n  // string if not.\n  toMMPattern(): MMRegExp | string {\n    // should only be called on root\n    /* c8 ignore start */\n    if (this !== this.#root) return this.#root.toMMPattern()\n    /* c8 ignore stop */\n    const glob = this.toString()\n    const [re, body, hasMagic, uflag] = this.toRegExpSource()\n    // if we're in nocase mode, and not nocaseMagicOnly, then we do\n    // still need a regular expression if we have to case-insensitively\n    // match capital/lowercase characters.\n    const anyMagic =\n      hasMagic ||\n      this.#hasMagic ||\n      (this.#options.nocase &&\n        !this.#options.nocaseMagicOnly &&\n        glob.toUpperCase() !== glob.toLowerCase())\n    if (!anyMagic) {\n      return body\n    }\n\n    const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n    return Object.assign(new RegExp(`^${re}$`, flags), {\n      _src: re,\n      _glob: glob,\n    })\n  }\n\n  get options() {\n    return this.#options\n  }\n\n  // returns the string match, the regexp source, whether there's magic\n  // in the regexp (so a regular expression is required) and whether or\n  // not the uflag is needed for the regular expression (for posix classes)\n  // TODO: instead of injecting the start/end at this point, just return\n  // the BODY of the regexp, along with the start/end portions suitable\n  // for binding the start/end in either a joined full-path makeRe context\n  // (where we bind to (^|/), or a standalone matchPart context (where\n  // we bind to ^, and not /).  Otherwise slashes get duped!\n  //\n  // In part-matching mode, the start is:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n  // - if dots allowed or not possible: ^\n  // - if dots possible and not allowed: ^(?!\\.)\n  // end is:\n  // - if not isEnd(): nothing\n  // - else: $\n  //\n  // In full-path matching mode, we put the slash at the START of the\n  // pattern, so start is:\n  // - if first pattern: same as part-matching mode\n  // - if not isStart(): nothing\n  // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n  // - if dots allowed or not possible: /\n  // - if dots possible and not allowed: /(?!\\.)\n  // end is:\n  // - if last pattern, same as part-matching mode\n  // - else nothing\n  //\n  // Always put the (?:$|/) on negated tails, though, because that has to be\n  // there to bind the end of the negated pattern portion, and it's easier to\n  // just stick it in now rather than try to inject it later in the middle of\n  // the pattern.\n  //\n  // We can just always return the same end, and leave it up to the caller\n  // to know whether it's going to be used joined or in parts.\n  // And, if the start is adjusted slightly, can do the same there:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n  // - if dots allowed or not possible: (?:/|^)\n  // - if dots possible and not allowed: (?:/|^)(?!\\.)\n  //\n  // But it's better to have a simpler binding without a conditional, for\n  // performance, so probably better to return both start options.\n  //\n  // Then the caller just ignores the end if it's not the first pattern,\n  // and the start always gets applied.\n  //\n  // But that's always going to be $ if it's the ending pattern, or nothing,\n  // so the caller can just attach $ at the end of the pattern when building.\n  //\n  // So the todo is:\n  // - better detect what kind of start is needed\n  // - return both flavors of starting pattern\n  // - attach $ at the end of the pattern when creating the actual RegExp\n  //\n  // Ah, but wait, no, that all only applies to the root when the first pattern\n  // is not an extglob. If the first pattern IS an extglob, then we need all\n  // that dot prevention biz to live in the extglob portions, because eg\n  // +(*|.x*) can match .xy but not .yx.\n  //\n  // So, return the two flavors if it's #root and the first child is not an\n  // AST, otherwise leave it to the child AST to handle it, and there,\n  // use the (?:^|/) style of start binding.\n  //\n  // Even simplified further:\n  // - Since the start for a join is eg /(?!\\.) and the start for a part\n  // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n  // or start or whatever) and prepend ^ or / at the Regexp construction.\n  toRegExpSource(\n    allowDot?: boolean\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    const dot = allowDot ?? !!this.#options.dot\n    if (this.#root === this) this.#fillNegs()\n    if (!this.type) {\n      const noEmpty = this.isStart() && this.isEnd()\n      const src = this.#parts\n        .map(p => {\n          const [re, _, hasMagic, uflag] =\n            typeof p === 'string'\n              ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n              : p.toRegExpSource(allowDot)\n          this.#hasMagic = this.#hasMagic || hasMagic\n          this.#uflag = this.#uflag || uflag\n          return re\n        })\n        .join('')\n\n      let start = ''\n      if (this.isStart()) {\n        if (typeof this.#parts[0] === 'string') {\n          // this is the string that will match the start of the pattern,\n          // so we need to protect against dots and such.\n\n          // '.' and '..' cannot match unless the pattern is that exactly,\n          // even if it starts with . or dot:true is set.\n          const dotTravAllowed =\n            this.#parts.length === 1 && justDots.has(this.#parts[0])\n          if (!dotTravAllowed) {\n            const aps = addPatternStart\n            // check if we have a possibility of matching . or ..,\n            // and prevent that.\n            const needNoTrav =\n              // dots are allowed, and the pattern starts with [ or .\n              (dot && aps.has(src.charAt(0))) ||\n              // the pattern starts with \\., and then [ or .\n              (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n              // the pattern starts with \\.\\., and then [ or .\n              (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n            // no need to prevent dots if it can't match a dot, or if a\n            // sub-pattern will be preventing it anyway.\n            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n            start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n          }\n        }\n      }\n\n      // append the \"end of path portion\" pattern to negation tails\n      let end = ''\n      if (\n        this.isEnd() &&\n        this.#root.#filledNegs &&\n        this.#parent?.type === '!'\n      ) {\n        end = '(?:$|\\\\/)'\n      }\n      const final = start + src + end\n      return [\n        final,\n        unescape(src),\n        (this.#hasMagic = !!this.#hasMagic),\n        this.#uflag,\n      ]\n    }\n\n    // We need to calculate the body *twice* if it's a repeat pattern\n    // at the start, once in nodot mode, then again in dot mode, so a\n    // pattern like *(?) can match 'x.y'\n\n    const repeated = this.type === '*' || this.type === '+'\n    // some kind of extglob\n    const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n    let body = this.#partsToRegExp(dot)\n\n    if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n      // invalid extglob, has to at least be *something* present, if it's\n      // the entire path portion.\n      const s = this.toString()\n      this.#parts = [s]\n      this.type = null\n      this.#hasMagic = undefined\n      return [s, unescape(this.toString()), false, false]\n    }\n\n    // XXX abstract out this map method\n    let bodyDotAllowed =\n      !repeated || allowDot || dot || !startNoDot\n        ? ''\n        : this.#partsToRegExp(true)\n    if (bodyDotAllowed === body) {\n      bodyDotAllowed = ''\n    }\n    if (bodyDotAllowed) {\n      body = `(?:${body})(?:${bodyDotAllowed})*?`\n    }\n\n    // an empty !() is exactly equivalent to a starNoEmpty\n    let final = ''\n    if (this.type === '!' && this.#emptyExt) {\n      final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n    } else {\n      const close =\n        this.type === '!'\n          ? // !() must match something,but !(x) can match ''\n            '))' +\n            (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n            star +\n            ')'\n          : this.type === '@'\n          ? ')'\n          : this.type === '?'\n          ? ')?'\n          : this.type === '+' && bodyDotAllowed\n          ? ')'\n          : this.type === '*' && bodyDotAllowed\n          ? `)?`\n          : `)${this.type}`\n      final = start + body + close\n    }\n    return [\n      final,\n      unescape(body),\n      (this.#hasMagic = !!this.#hasMagic),\n      this.#uflag,\n    ]\n  }\n\n  #partsToRegExp(dot: boolean) {\n    return this.#parts\n      .map(p => {\n        // extglob ASTs should only contain parent ASTs\n        /* c8 ignore start */\n        if (typeof p === 'string') {\n          throw new Error('string type in extglob ast??')\n        }\n        /* c8 ignore stop */\n        // can ignore hasMagic, because extglobs are already always magic\n        const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n        this.#uflag = this.#uflag || uflag\n        return re\n      })\n      .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n      .join('|')\n  }\n\n  static #parseGlob(\n    glob: string,\n    hasMagic: boolean | undefined,\n    noEmpty: boolean = false\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    let escaping = false\n    let re = ''\n    let uflag = false\n    for (let i = 0; i < glob.length; i++) {\n      const c = glob.charAt(i)\n      if (escaping) {\n        escaping = false\n        re += (reSpecials.has(c) ? '\\\\' : '') + c\n        continue\n      }\n      if (c === '\\\\') {\n        if (i === glob.length - 1) {\n          re += '\\\\\\\\'\n        } else {\n          escaping = true\n        }\n        continue\n      }\n      if (c === '[') {\n        const [src, needUflag, consumed, magic] = parseClass(glob, i)\n        if (consumed) {\n          re += src\n          uflag = uflag || needUflag\n          i += consumed - 1\n          hasMagic = hasMagic || magic\n          continue\n        }\n      }\n      if (c === '*') {\n        if (noEmpty && glob === '*') re += starNoEmpty\n        else re += star\n        hasMagic = true\n        continue\n      }\n      if (c === '?') {\n        re += qmark\n        hasMagic = true\n        continue\n      }\n      re += regExpEscape(c)\n    }\n    return [re, unescape(glob), !!hasMagic, uflag]\n  }\n}\n", "import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick = {}\n) => {\n  // don't need to escape +@! because we escape the parens\n  // that make those magic, and escaping ! as [!] isn't valid,\n  // because [!]] is a valid glob class meaning not ']'.\n  return windowsPathsNoEscape\n    ? s.replace(/[?*()[\\]]/g, '[$&]')\n    : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n", "import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n  | 'aix'\n  | 'android'\n  | 'darwin'\n  | 'freebsd'\n  | 'haiku'\n  | 'linux'\n  | 'openbsd'\n  | 'sunos'\n  | 'win32'\n  | 'cygwin'\n  | 'netbsd'\n\nexport interface MinimatchOptions {\n  nobrace?: boolean\n  nocomment?: boolean\n  nonegate?: boolean\n  debug?: boolean\n  noglobstar?: boolean\n  noext?: boolean\n  nonull?: boolean\n  windowsPathsNoEscape?: boolean\n  allowWindowsEscape?: boolean\n  partial?: boolean\n  dot?: boolean\n  nocase?: boolean\n  nocaseMagicOnly?: boolean\n  magicalBraces?: boolean\n  matchBase?: boolean\n  flipNegate?: boolean\n  preserveMultipleSlashes?: boolean\n  optimizationLevel?: number\n  platform?: Platform\n  windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n  p: string,\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n  !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n  f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n  typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n      process.platform\n    : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n  win32: { sep: '\\\\' },\n  posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n  (pattern: string, options: MinimatchOptions = {}) =>\n  (p: string) =>\n    minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n  Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  const orig = minimatch\n\n  const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n    orig(p, pattern, ext(def, options))\n\n  return Object.assign(m, {\n    Minimatch: class Minimatch extends orig.Minimatch {\n      constructor(pattern: string, options: MinimatchOptions = {}) {\n        super(pattern, ext(def, options))\n      }\n      static defaults(options: MinimatchOptions) {\n        return orig.defaults(ext(def, options)).Minimatch\n      }\n    },\n\n    AST: class AST extends orig.AST {\n      /* c8 ignore start */\n      constructor(\n        type: ExtglobType | null,\n        parent?: AST,\n        options: MinimatchOptions = {}\n      ) {\n        super(type, parent, ext(def, options))\n      }\n      /* c8 ignore stop */\n\n      static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n        return orig.AST.fromGlob(pattern, ext(def, options))\n      }\n    },\n\n    unescape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.unescape(s, ext(def, options)),\n\n    escape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.escape(s, ext(def, options)),\n\n    filter: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.filter(pattern, ext(def, options)),\n\n    defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n    makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.makeRe(pattern, ext(def, options)),\n\n    braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.braceExpand(pattern, ext(def, options)),\n\n    match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n      orig.match(list, pattern, ext(def, options)),\n\n    sep: orig.sep,\n    GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n  })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li  for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n  new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n  list: string[],\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  const mm = new Minimatch(pattern, options)\n  list = list.filter(f => mm.match(f))\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n  _src?: string\n  _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n  options: MinimatchOptions\n  set: ParseReturnFiltered[][]\n  pattern: string\n\n  windowsPathsNoEscape: boolean\n  nonegate: boolean\n  negate: boolean\n  comment: boolean\n  empty: boolean\n  preserveMultipleSlashes: boolean\n  partial: boolean\n  globSet: string[]\n  globParts: string[][]\n  nocase: boolean\n\n  isWindows: boolean\n  platform: Platform\n  windowsNoMagicRoot: boolean\n\n  regexp: false | null | MMRegExp\n  constructor(pattern: string, options: MinimatchOptions = {}) {\n    assertValidPattern(pattern)\n\n    options = options || {}\n    this.options = options\n    this.pattern = pattern\n    this.platform = options.platform || defaultPlatform\n    this.isWindows = this.platform === 'win32'\n    this.windowsPathsNoEscape =\n      !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n    if (this.windowsPathsNoEscape) {\n      this.pattern = this.pattern.replace(/\\\\/g, '/')\n    }\n    this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n    this.regexp = null\n    this.negate = false\n    this.nonegate = !!options.nonegate\n    this.comment = false\n    this.empty = false\n    this.partial = !!options.partial\n    this.nocase = !!this.options.nocase\n    this.windowsNoMagicRoot =\n      options.windowsNoMagicRoot !== undefined\n        ? options.windowsNoMagicRoot\n        : !!(this.isWindows && this.nocase)\n\n    this.globSet = []\n    this.globParts = []\n    this.set = []\n\n    // make the set of regexps etc.\n    this.make()\n  }\n\n  hasMagic(): boolean {\n    if (this.options.magicalBraces && this.set.length > 1) {\n      return true\n    }\n    for (const pattern of this.set) {\n      for (const part of pattern) {\n        if (typeof part !== 'string') return true\n      }\n    }\n    return false\n  }\n\n  debug(..._: any[]) {}\n\n  make() {\n    const pattern = this.pattern\n    const options = this.options\n\n    // empty patterns and comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n      this.comment = true\n      return\n    }\n\n    if (!pattern) {\n      this.empty = true\n      return\n    }\n\n    // step 1: figure out negation, etc.\n    this.parseNegate()\n\n    // step 2: expand braces\n    this.globSet = [...new Set(this.braceExpand())]\n\n    if (options.debug) {\n      this.debug = (...args: any[]) => console.error(...args)\n    }\n\n    this.debug(this.pattern, this.globSet)\n\n    // step 3: now we have a set, so turn each one into a series of\n    // path-portion matching patterns.\n    // These will be regexps, except in the case of \"**\", which is\n    // set to the GLOBSTAR object for globstar behavior,\n    // and will not contain any / characters\n    //\n    // First, we preprocess to make the glob pattern sets a bit simpler\n    // and deduped.  There are some perf-killing patterns that can cause\n    // problems with a glob walk, but we can simplify them down a bit.\n    const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n    this.globParts = this.preprocess(rawGlobParts)\n    this.debug(this.pattern, this.globParts)\n\n    // glob --> regexps\n    let set = this.globParts.map((s, _, __) => {\n      if (this.isWindows && this.windowsNoMagicRoot) {\n        // check if it's a drive or unc path.\n        const isUNC =\n          s[0] === '' &&\n          s[1] === '' &&\n          (s[2] === '?' || !globMagic.test(s[2])) &&\n          !globMagic.test(s[3])\n        const isDrive = /^[a-z]:/i.test(s[0])\n        if (isUNC) {\n          return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n        } else if (isDrive) {\n          return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n        }\n      }\n      return s.map(ss => this.parse(ss))\n    })\n\n    this.debug(this.pattern, set)\n\n    // filter out everything that didn't compile properly.\n    this.set = set.filter(\n      s => s.indexOf(false) === -1\n    ) as ParseReturnFiltered[][]\n\n    // do not treat the ? in UNC paths as magic\n    if (this.isWindows) {\n      for (let i = 0; i < this.set.length; i++) {\n        const p = this.set[i]\n        if (\n          p[0] === '' &&\n          p[1] === '' &&\n          this.globParts[i][2] === '?' &&\n          typeof p[3] === 'string' &&\n          /^[a-z]:$/i.test(p[3])\n        ) {\n          p[2] = '?'\n        }\n      }\n    }\n\n    this.debug(this.pattern, this.set)\n  }\n\n  // various transforms to equivalent pattern sets that are\n  // faster to process in a filesystem walk.  The goal is to\n  // eliminate what we can, and push all ** patterns as far\n  // to the right as possible, even if it increases the number\n  // of patterns that we have to process.\n  preprocess(globParts: string[][]) {\n    // if we're not in globstar mode, then turn all ** into *\n    if (this.options.noglobstar) {\n      for (let i = 0; i < globParts.length; i++) {\n        for (let j = 0; j < globParts[i].length; j++) {\n          if (globParts[i][j] === '**') {\n            globParts[i][j] = '*'\n          }\n        }\n      }\n    }\n\n    const { optimizationLevel = 1 } = this.options\n\n    if (optimizationLevel >= 2) {\n      // aggressive optimization for the purpose of fs walking\n      globParts = this.firstPhasePreProcess(globParts)\n      globParts = this.secondPhasePreProcess(globParts)\n    } else if (optimizationLevel >= 1) {\n      // just basic optimizations to remove some .. parts\n      globParts = this.levelOneOptimize(globParts)\n    } else {\n      // just collapse multiple ** portions into one\n      globParts = this.adjascentGlobstarOptimize(globParts)\n    }\n\n    return globParts\n  }\n\n  // just get rid of adjascent ** portions\n  adjascentGlobstarOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      let gs: number = -1\n      while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n        let i = gs\n        while (parts[i + 1] === '**') {\n          i++\n        }\n        if (i !== gs) {\n          parts.splice(gs, i - gs)\n        }\n      }\n      return parts\n    })\n  }\n\n  // get rid of adjascent ** and resolve .. portions\n  levelOneOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      parts = parts.reduce((set: string[], part) => {\n        const prev = set[set.length - 1]\n        if (part === '**' && prev === '**') {\n          return set\n        }\n        if (part === '..') {\n          if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n            set.pop()\n            return set\n          }\n        }\n        set.push(part)\n        return set\n      }, [])\n      return parts.length === 0 ? [''] : parts\n    })\n  }\n\n  levelTwoFileOptimize(parts: string | string[]) {\n    if (!Array.isArray(parts)) {\n      parts = this.slashSplit(parts)\n    }\n    let didSomething: boolean = false\n    do {\n      didSomething = false\n      // 
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (matched) {\n          globParts[i] = []\n          globParts[j] = matched\n          break\n        }\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice(pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n", "import { LRUCache } from 'lru-cache'\nimport { posix, win32 } from 'node:path'\n\nimport { fileURLToPath } from 'node:url'\n\nimport {\n  lstatSync,\n  readdir as readdirCB,\n  readdirSync,\n  readlinkSync,\n  realpathSync as rps,\n} from 'fs'\nimport * as actualFS from 'node:fs'\n\nconst realpathSync = rps.native\n// TODO: test perf of fs/promises realpath vs realpathCB,\n// since the promises one uses realpath.native\n\nimport { lstat, readdir, readlink, realpath } from 'node:fs/promises'\n\nimport { Minipass } from 'minipass'\nimport type { Dirent, Stats } from 'node:fs'\n\n/**\n * An object that will be used to override the default `fs`\n * methods.  Any methods that are not overridden will use Node's\n * built-in implementations.\n *\n * - lstatSync\n * - readdir (callback `withFileTypes` Dirent variant, used for\n *   readdirCB and most walks)\n * - readdirSync\n * - readlinkSync\n * - realpathSync\n * - promises: Object containing the following async methods:\n *   - lstat\n *   - readdir (Dirent variant only)\n *   - readlink\n *   - realpath\n */\nexport interface FSOption {\n  lstatSync?: (path: string) => Stats\n  readdir?: (\n    path: string,\n    options: { withFileTypes: true },\n    cb: (er: NodeJS.ErrnoException | null, entries?: Dirent[]) => any,\n  ) => void\n  readdirSync?: (\n    path: string,\n    options: { withFileTypes: true },\n  ) => Dirent[]\n  readlinkSync?: (path: string) => string\n  realpathSync?: (path: string) => string\n  promises?: {\n    lstat?: (path: string) => Promise\n    readdir?: (\n      path: string,\n      options: { withFileTypes: true },\n    ) => Promise\n    readlink?: (path: string) => Promise\n    realpath?: (path: string) => Promise\n    [k: string]: any\n  }\n  [k: string]: any\n}\n\ninterface FSValue {\n  lstatSync: (path: string) => Stats\n  readdir: (\n    path: string,\n    options: { withFileTypes: true },\n    cb: (er: NodeJS.ErrnoException | null, entries?: Dirent[]) => any,\n  ) => void\n  readdirSync: (path: string, options: { withFileTypes: true }) => Dirent[]\n  readlinkSync: (path: string) => string\n  realpathSync: (path: string) => string\n  promises: {\n    lstat: (path: string) => Promise\n    readdir: (\n      path: string,\n      options: { withFileTypes: true },\n    ) => Promise\n    readlink: (path: string) => Promise\n    realpath: (path: string) => Promise\n    [k: string]: any\n  }\n  [k: string]: any\n}\n\nconst defaultFS: FSValue = {\n  lstatSync,\n  readdir: readdirCB,\n  readdirSync,\n  readlinkSync,\n  realpathSync,\n  promises: {\n    lstat,\n    readdir,\n    readlink,\n    realpath,\n  },\n}\n\n// if they just gave us require('fs') then use our default\nconst fsFromOption = (fsOption?: FSOption): FSValue =>\n  !fsOption || fsOption === defaultFS || fsOption === actualFS ?\n    defaultFS\n  : {\n      ...defaultFS,\n      ...fsOption,\n      promises: {\n        ...defaultFS.promises,\n        ...(fsOption.promises || {}),\n      },\n    }\n\n// turn something like //?/c:/ into c:\\\nconst uncDriveRegexp = /^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i\nconst uncToDrive = (rootPath: string): string =>\n  rootPath.replace(/\\//g, '\\\\').replace(uncDriveRegexp, '$1\\\\')\n\n// windows paths are separated by either / or \\\nconst eitherSep = /[\\\\\\/]/\n\nconst UNKNOWN = 0 // may not even exist, for all we know\nconst IFIFO = 0b0001\nconst IFCHR = 0b0010\nconst IFDIR = 0b0100\nconst IFBLK = 0b0110\nconst IFREG = 0b1000\nconst IFLNK = 0b1010\nconst IFSOCK = 0b1100\nconst IFMT = 0b1111\n\nexport type Type =\n  | 'Unknown'\n  | 'FIFO'\n  | 'CharacterDevice'\n  | 'Directory'\n  | 'BlockDevice'\n  | 'File'\n  | 'SymbolicLink'\n  | 'Socket'\n\n// mask to unset low 4 bits\nconst IFMT_UNKNOWN = ~IFMT\n\n// set after successfully calling readdir() and getting entries.\nconst READDIR_CALLED = 0b0000_0001_0000\n// set after a successful lstat()\nconst LSTAT_CALLED = 0b0000_0010_0000\n// set if an entry (or one of its parents) is definitely not a dir\nconst ENOTDIR = 0b0000_0100_0000\n// set if an entry (or one of its parents) does not exist\n// (can also be set on lstat errors like EACCES or ENAMETOOLONG)\nconst ENOENT = 0b0000_1000_0000\n// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK\n// set if we fail to readlink\nconst ENOREADLINK = 0b0001_0000_0000\n// set if we know realpath() will fail\nconst ENOREALPATH = 0b0010_0000_0000\n\nconst ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH\nconst TYPEMASK = 0b0011_1111_1111\n\nconst entToType = (s: Dirent | Stats) =>\n  s.isFile() ? IFREG\n  : s.isDirectory() ? IFDIR\n  : s.isSymbolicLink() ? IFLNK\n  : s.isCharacterDevice() ? IFCHR\n  : s.isBlockDevice() ? IFBLK\n  : s.isSocket() ? IFSOCK\n  : s.isFIFO() ? IFIFO\n  : UNKNOWN\n\n// normalize unicode path names\nconst normalizeCache = new Map()\nconst normalize = (s: string) => {\n  const c = normalizeCache.get(s)\n  if (c) return c\n  const n = s.normalize('NFKD')\n  normalizeCache.set(s, n)\n  return n\n}\n\nconst normalizeNocaseCache = new Map()\nconst normalizeNocase = (s: string) => {\n  const c = normalizeNocaseCache.get(s)\n  if (c) return c\n  const n = normalize(s.toLowerCase())\n  normalizeNocaseCache.set(s, n)\n  return n\n}\n\n/**\n * Options that may be provided to the Path constructor\n */\nexport interface PathOpts {\n  fullpath?: string\n  relative?: string\n  relativePosix?: string\n  parent?: PathBase\n  /**\n   * See {@link FSOption}\n   */\n  fs?: FSOption\n}\n\n/**\n * An LRUCache for storing resolved path strings or Path objects.\n * @internal\n */\nexport class ResolveCache extends LRUCache {\n  constructor() {\n    super({ max: 256 })\n  }\n}\n\n// In order to prevent blowing out the js heap by allocating hundreds of\n// thousands of Path entries when walking extremely large trees, the \"children\"\n// in this tree are represented by storing an array of Path entries in an\n// LRUCache, indexed by the parent.  At any time, Path.children() may return an\n// empty array, indicating that it doesn't know about any of its children, and\n// thus has to rebuild that cache.  This is fine, it just means that we don't\n// benefit as much from having the cached entries, but huge directory walks\n// don't blow out the stack, and smaller ones are still as fast as possible.\n//\n//It does impose some complexity when building up the readdir data, because we\n//need to pass a reference to the children array that we started with.\n\n/**\n * an LRUCache for storing child entries.\n * @internal\n */\nexport class ChildrenCache extends LRUCache {\n  constructor(maxSize: number = 16 * 1024) {\n    super({\n      maxSize,\n      // parent + children\n      sizeCalculation: a => a.length + 1,\n    })\n  }\n}\n\n/**\n * Array of Path objects, plus a marker indicating the first provisional entry\n *\n * @internal\n */\nexport type Children = PathBase[] & { provisional: number }\n\nconst setAsCwd = Symbol('PathScurry setAsCwd')\n\n/**\n * Path objects are sort of like a super-powered\n * {@link https://nodejs.org/docs/latest/api/fs.html#class-fsdirent fs.Dirent}\n *\n * Each one represents a single filesystem entry on disk, which may or may not\n * exist. It includes methods for reading various types of information via\n * lstat, readlink, and readdir, and caches all information to the greatest\n * degree possible.\n *\n * Note that fs operations that would normally throw will instead return an\n * \"empty\" value. This is in order to prevent excessive overhead from error\n * stack traces.\n */\nexport abstract class PathBase implements Dirent {\n  /**\n   * the basename of this path\n   *\n   * **Important**: *always* test the path name against any test string\n   * usingthe {@link isNamed} method, and not by directly comparing this\n   * string. Otherwise, unicode path strings that the system sees as identical\n   * will not be properly treated as the same path, leading to incorrect\n   * behavior and possible security issues.\n   */\n  name: string\n  /**\n   * the Path entry corresponding to the path root.\n   *\n   * @internal\n   */\n  root: PathBase\n  /**\n   * All roots found within the current PathScurry family\n   *\n   * @internal\n   */\n  roots: { [k: string]: PathBase }\n  /**\n   * a reference to the parent path, or undefined in the case of root entries\n   *\n   * @internal\n   */\n  parent?: PathBase\n  /**\n   * boolean indicating whether paths are compared case-insensitively\n   * @internal\n   */\n  nocase: boolean\n\n  /**\n   * boolean indicating that this path is the current working directory\n   * of the PathScurry collection that contains it.\n   */\n  isCWD: boolean = false\n\n  /**\n   * the string or regexp used to split paths. On posix, it is `'/'`, and on\n   * windows it is a RegExp matching either `'/'` or `'\\\\'`\n   */\n  abstract splitSep: string | RegExp\n  /**\n   * The path separator string to use when joining paths\n   */\n  abstract sep: string\n\n  // potential default fs override\n  #fs: FSValue\n\n  // Stats fields\n  #dev?: number\n  get dev() {\n    return this.#dev\n  }\n  #mode?: number\n  get mode() {\n    return this.#mode\n  }\n  #nlink?: number\n  get nlink() {\n    return this.#nlink\n  }\n  #uid?: number\n  get uid() {\n    return this.#uid\n  }\n  #gid?: number\n  get gid() {\n    return this.#gid\n  }\n  #rdev?: number\n  get rdev() {\n    return this.#rdev\n  }\n  #blksize?: number\n  get blksize() {\n    return this.#blksize\n  }\n  #ino?: number\n  get ino() {\n    return this.#ino\n  }\n  #size?: number\n  get size() {\n    return this.#size\n  }\n  #blocks?: number\n  get blocks() {\n    return this.#blocks\n  }\n  #atimeMs?: number\n  get atimeMs() {\n    return this.#atimeMs\n  }\n  #mtimeMs?: number\n  get mtimeMs() {\n    return this.#mtimeMs\n  }\n  #ctimeMs?: number\n  get ctimeMs() {\n    return this.#ctimeMs\n  }\n  #birthtimeMs?: number\n  get birthtimeMs() {\n    return this.#birthtimeMs\n  }\n  #atime?: Date\n  get atime() {\n    return this.#atime\n  }\n  #mtime?: Date\n  get mtime() {\n    return this.#mtime\n  }\n  #ctime?: Date\n  get ctime() {\n    return this.#ctime\n  }\n  #birthtime?: Date\n  get birthtime() {\n    return this.#birthtime\n  }\n\n  #matchName: string\n  #depth?: number\n  #fullpath?: string\n  #fullpathPosix?: string\n  #relative?: string\n  #relativePosix?: string\n  #type: number\n  #children: ChildrenCache\n  #linkTarget?: PathBase\n  #realpath?: PathBase\n\n  /**\n   * This property is for compatibility with the Dirent class as of\n   * Node v20, where Dirent['parentPath'] refers to the path of the\n   * directory that was passed to readdir. For root entries, it's the path\n   * to the entry itself.\n   */\n  get parentPath(): string {\n    return (this.parent || this).fullpath()\n  }\n\n  /**\n   * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,\n   * this property refers to the *parent* path, not the path object itself.\n   */\n  get path(): string {\n    return this.parentPath\n  }\n\n  /**\n   * Do not create new Path objects directly.  They should always be accessed\n   * via the PathScurry class or other methods on the Path class.\n   *\n   * @internal\n   */\n  constructor(\n    name: string,\n    type: number = UNKNOWN,\n    root: PathBase | undefined,\n    roots: { [k: string]: PathBase },\n    nocase: boolean,\n    children: ChildrenCache,\n    opts: PathOpts,\n  ) {\n    this.name = name\n    this.#matchName = nocase ? normalizeNocase(name) : normalize(name)\n    this.#type = type & TYPEMASK\n    this.nocase = nocase\n    this.roots = roots\n    this.root = root || this\n    this.#children = children\n    this.#fullpath = opts.fullpath\n    this.#relative = opts.relative\n    this.#relativePosix = opts.relativePosix\n    this.parent = opts.parent\n    if (this.parent) {\n      this.#fs = this.parent.#fs\n    } else {\n      this.#fs = fsFromOption(opts.fs)\n    }\n  }\n\n  /**\n   * Returns the depth of the Path object from its root.\n   *\n   * For example, a path at `/foo/bar` would have a depth of 2.\n   */\n  depth(): number {\n    if (this.#depth !== undefined) return this.#depth\n    if (!this.parent) return (this.#depth = 0)\n    return (this.#depth = this.parent.depth() + 1)\n  }\n\n  /**\n   * @internal\n   */\n  abstract getRootString(path: string): string\n  /**\n   * @internal\n   */\n  abstract getRoot(rootPath: string): PathBase\n  /**\n   * @internal\n   */\n  abstract newChild(name: string, type?: number, opts?: PathOpts): PathBase\n\n  /**\n   * @internal\n   */\n  childrenCache() {\n    return this.#children\n  }\n\n  /**\n   * Get the Path object referenced by the string path, resolved from this Path\n   */\n  resolve(path?: string): PathBase {\n    if (!path) {\n      return this\n    }\n    const rootPath = this.getRootString(path)\n    const dir = path.substring(rootPath.length)\n    const dirParts = dir.split(this.splitSep)\n    const result: PathBase =\n      rootPath ?\n        this.getRoot(rootPath).#resolveParts(dirParts)\n      : this.#resolveParts(dirParts)\n    return result\n  }\n\n  #resolveParts(dirParts: string[]) {\n    let p: PathBase = this\n    for (const part of dirParts) {\n      p = p.child(part)\n    }\n    return p\n  }\n\n  /**\n   * Returns the cached children Path objects, if still available.  If they\n   * have fallen out of the cache, then returns an empty array, and resets the\n   * READDIR_CALLED bit, so that future calls to readdir() will require an fs\n   * lookup.\n   *\n   * @internal\n   */\n  children(): Children {\n    const cached = this.#children.get(this)\n    if (cached) {\n      return cached\n    }\n    const children: Children = Object.assign([], { provisional: 0 })\n    this.#children.set(this, children)\n    this.#type &= ~READDIR_CALLED\n    return children\n  }\n\n  /**\n   * Resolves a path portion and returns or creates the child Path.\n   *\n   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is\n   * `'..'`.\n   *\n   * This should not be called directly.  If `pathPart` contains any path\n   * separators, it will lead to unsafe undefined behavior.\n   *\n   * Use `Path.resolve()` instead.\n   *\n   * @internal\n   */\n  child(pathPart: string, opts?: PathOpts): PathBase {\n    if (pathPart === '' || pathPart === '.') {\n      return this\n    }\n    if (pathPart === '..') {\n      return this.parent || this\n    }\n\n    // find the child\n    const children = this.children()\n    const name =\n      this.nocase ? normalizeNocase(pathPart) : normalize(pathPart)\n    for (const p of children) {\n      if (p.#matchName === name) {\n        return p\n      }\n    }\n\n    // didn't find it, create provisional child, since it might not\n    // actually exist.  If we know the parent isn't a dir, then\n    // in fact it CAN'T exist.\n    const s = this.parent ? this.sep : ''\n    const fullpath =\n      this.#fullpath ? this.#fullpath + s + pathPart : undefined\n    const pchild = this.newChild(pathPart, UNKNOWN, {\n      ...opts,\n      parent: this,\n      fullpath,\n    })\n\n    if (!this.canReaddir()) {\n      pchild.#type |= ENOENT\n    }\n\n    // don't have to update provisional, because if we have real children,\n    // then provisional is set to children.length, otherwise a lower number\n    children.push(pchild)\n    return pchild\n  }\n\n  /**\n   * The relative path from the cwd. If it does not share an ancestor with\n   * the cwd, then this ends up being equivalent to the fullpath()\n   */\n  relative(): string {\n    if (this.isCWD) return ''\n    if (this.#relative !== undefined) {\n      return this.#relative\n    }\n    const name = this.name\n    const p = this.parent\n    if (!p) {\n      return (this.#relative = this.name)\n    }\n    const pv = p.relative()\n    return pv + (!pv || !p.parent ? '' : this.sep) + name\n  }\n\n  /**\n   * The relative path from the cwd, using / as the path separator.\n   * If it does not share an ancestor with\n   * the cwd, then this ends up being equivalent to the fullpathPosix()\n   * On posix systems, this is identical to relative().\n   */\n  relativePosix(): string {\n    if (this.sep === '/') return this.relative()\n    if (this.isCWD) return ''\n    if (this.#relativePosix !== undefined) return this.#relativePosix\n    const name = this.name\n    const p = this.parent\n    if (!p) {\n      return (this.#relativePosix = this.fullpathPosix())\n    }\n    const pv = p.relativePosix()\n    return pv + (!pv || !p.parent ? '' : '/') + name\n  }\n\n  /**\n   * The fully resolved path string for this Path entry\n   */\n  fullpath(): string {\n    if (this.#fullpath !== undefined) {\n      return this.#fullpath\n    }\n    const name = this.name\n    const p = this.parent\n    if (!p) {\n      return (this.#fullpath = this.name)\n    }\n    const pv = p.fullpath()\n    const fp = pv + (!p.parent ? '' : this.sep) + name\n    return (this.#fullpath = fp)\n  }\n\n  /**\n   * On platforms other than windows, this is identical to fullpath.\n   *\n   * On windows, this is overridden to return the forward-slash form of the\n   * full UNC path.\n   */\n  fullpathPosix(): string {\n    if (this.#fullpathPosix !== undefined) return this.#fullpathPosix\n    if (this.sep === '/') return (this.#fullpathPosix = this.fullpath())\n    if (!this.parent) {\n      const p = this.fullpath().replace(/\\\\/g, '/')\n      if (/^[a-z]:\\//i.test(p)) {\n        return (this.#fullpathPosix = `//?/${p}`)\n      } else {\n        return (this.#fullpathPosix = p)\n      }\n    }\n    const p = this.parent\n    const pfpp = p.fullpathPosix()\n    const fpp = pfpp + (!pfpp || !p.parent ? '' : '/') + this.name\n    return (this.#fullpathPosix = fpp)\n  }\n\n  /**\n   * Is the Path of an unknown type?\n   *\n   * Note that we might know *something* about it if there has been a previous\n   * filesystem operation, for example that it does not exist, or is not a\n   * link, or whether it has child entries.\n   */\n  isUnknown(): boolean {\n    return (this.#type & IFMT) === UNKNOWN\n  }\n\n  isType(type: Type): boolean {\n    return this[`is${type}`]()\n  }\n\n  getType(): Type {\n    return (\n      this.isUnknown() ? 'Unknown'\n      : this.isDirectory() ? 'Directory'\n      : this.isFile() ? 'File'\n      : this.isSymbolicLink() ? 'SymbolicLink'\n      : this.isFIFO() ? 'FIFO'\n      : this.isCharacterDevice() ? 'CharacterDevice'\n      : this.isBlockDevice() ? 'BlockDevice'\n      : /* c8 ignore start */ this.isSocket() ? 'Socket'\n      : 'Unknown'\n    )\n    /* c8 ignore stop */\n  }\n\n  /**\n   * Is the Path a regular file?\n   */\n  isFile(): boolean {\n    return (this.#type & IFMT) === IFREG\n  }\n\n  /**\n   * Is the Path a directory?\n   */\n  isDirectory(): boolean {\n    return (this.#type & IFMT) === IFDIR\n  }\n\n  /**\n   * Is the path a character device?\n   */\n  isCharacterDevice(): boolean {\n    return (this.#type & IFMT) === IFCHR\n  }\n\n  /**\n   * Is the path a block device?\n   */\n  isBlockDevice(): boolean {\n    return (this.#type & IFMT) === IFBLK\n  }\n\n  /**\n   * Is the path a FIFO pipe?\n   */\n  isFIFO(): boolean {\n    return (this.#type & IFMT) === IFIFO\n  }\n\n  /**\n   * Is the path a socket?\n   */\n  isSocket(): boolean {\n    return (this.#type & IFMT) === IFSOCK\n  }\n\n  /**\n   * Is the path a symbolic link?\n   */\n  isSymbolicLink(): boolean {\n    return (this.#type & IFLNK) === IFLNK\n  }\n\n  /**\n   * Return the entry if it has been subject of a successful lstat, or\n   * undefined otherwise.\n   *\n   * Does not read the filesystem, so an undefined result *could* simply\n   * mean that we haven't called lstat on it.\n   */\n  lstatCached(): PathBase | undefined {\n    return this.#type & LSTAT_CALLED ? this : undefined\n  }\n\n  /**\n   * Return the cached link target if the entry has been the subject of a\n   * successful readlink, or undefined otherwise.\n   *\n   * Does not read the filesystem, so an undefined result *could* just mean we\n   * don't have any cached data. Only use it if you are very sure that a\n   * readlink() has been called at some point.\n   */\n  readlinkCached(): PathBase | undefined {\n    return this.#linkTarget\n  }\n\n  /**\n   * Returns the cached realpath target if the entry has been the subject\n   * of a successful realpath, or undefined otherwise.\n   *\n   * Does not read the filesystem, so an undefined result *could* just mean we\n   * don't have any cached data. Only use it if you are very sure that a\n   * realpath() has been called at some point.\n   */\n  realpathCached(): PathBase | undefined {\n    return this.#realpath\n  }\n\n  /**\n   * Returns the cached child Path entries array if the entry has been the\n   * subject of a successful readdir(), or [] otherwise.\n   *\n   * Does not read the filesystem, so an empty array *could* just mean we\n   * don't have any cached data. Only use it if you are very sure that a\n   * readdir() has been called recently enough to still be valid.\n   */\n  readdirCached(): PathBase[] {\n    const children = this.children()\n    return children.slice(0, children.provisional)\n  }\n\n  /**\n   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have\n   * any indication that readlink will definitely fail.\n   *\n   * Returns false if the path is known to not be a symlink, if a previous\n   * readlink failed, or if the entry does not exist.\n   */\n  canReadlink(): boolean {\n    if (this.#linkTarget) return true\n    if (!this.parent) return false\n    // cases where it cannot possibly succeed\n    const ifmt = this.#type & IFMT\n    return !(\n      (ifmt !== UNKNOWN && ifmt !== IFLNK) ||\n      this.#type & ENOREADLINK ||\n      this.#type & ENOENT\n    )\n  }\n\n  /**\n   * Return true if readdir has previously been successfully called on this\n   * path, indicating that cachedReaddir() is likely valid.\n   */\n  calledReaddir(): boolean {\n    return !!(this.#type & READDIR_CALLED)\n  }\n\n  /**\n   * Returns true if the path is known to not exist. That is, a previous lstat\n   * or readdir failed to verify its existence when that would have been\n   * expected, or a parent entry was marked either enoent or enotdir.\n   */\n  isENOENT(): boolean {\n    return !!(this.#type & ENOENT)\n  }\n\n  /**\n   * Return true if the path is a match for the given path name.  This handles\n   * case sensitivity and unicode normalization.\n   *\n   * Note: even on case-sensitive systems, it is **not** safe to test the\n   * equality of the `.name` property to determine whether a given pathname\n   * matches, due to unicode normalization mismatches.\n   *\n   * Always use this method instead of testing the `path.name` property\n   * directly.\n   */\n  isNamed(n: string): boolean {\n    return !this.nocase ?\n        this.#matchName === normalize(n)\n      : this.#matchName === normalizeNocase(n)\n  }\n\n  /**\n   * Return the Path object corresponding to the target of a symbolic link.\n   *\n   * If the Path is not a symbolic link, or if the readlink call fails for any\n   * reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   */\n  async readlink(): Promise {\n    const target = this.#linkTarget\n    if (target) {\n      return target\n    }\n    if (!this.canReadlink()) {\n      return undefined\n    }\n    /* c8 ignore start */\n    // already covered by the canReadlink test, here for ts grumples\n    if (!this.parent) {\n      return undefined\n    }\n    /* c8 ignore stop */\n    try {\n      const read = await this.#fs.promises.readlink(this.fullpath())\n      const linkTarget = (await this.parent.realpath())?.resolve(read)\n      if (linkTarget) {\n        return (this.#linkTarget = linkTarget)\n      }\n    } catch (er) {\n      this.#readlinkFail((er as NodeJS.ErrnoException).code)\n      return undefined\n    }\n  }\n\n  /**\n   * Synchronous {@link PathBase.readlink}\n   */\n  readlinkSync(): PathBase | undefined {\n    const target = this.#linkTarget\n    if (target) {\n      return target\n    }\n    if (!this.canReadlink()) {\n      return undefined\n    }\n    /* c8 ignore start */\n    // already covered by the canReadlink test, here for ts grumples\n    if (!this.parent) {\n      return undefined\n    }\n    /* c8 ignore stop */\n    try {\n      const read = this.#fs.readlinkSync(this.fullpath())\n      const linkTarget = this.parent.realpathSync()?.resolve(read)\n      if (linkTarget) {\n        return (this.#linkTarget = linkTarget)\n      }\n    } catch (er) {\n      this.#readlinkFail((er as NodeJS.ErrnoException).code)\n      return undefined\n    }\n  }\n\n  #readdirSuccess(children: Children) {\n    // succeeded, mark readdir called bit\n    this.#type |= READDIR_CALLED\n    // mark all remaining provisional children as ENOENT\n    for (let p = children.provisional; p < children.length; p++) {\n      const c = children[p]\n      if (c) c.#markENOENT()\n    }\n  }\n\n  #markENOENT() {\n    // mark as UNKNOWN and ENOENT\n    if (this.#type & ENOENT) return\n    this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN\n    this.#markChildrenENOENT()\n  }\n\n  #markChildrenENOENT() {\n    // all children are provisional and do not exist\n    const children = this.children()\n    children.provisional = 0\n    for (const p of children) {\n      p.#markENOENT()\n    }\n  }\n\n  #markENOREALPATH() {\n    this.#type |= ENOREALPATH\n    this.#markENOTDIR()\n  }\n\n  // save the information when we know the entry is not a dir\n  #markENOTDIR() {\n    // entry is not a directory, so any children can't exist.\n    // this *should* be impossible, since any children created\n    // after it's been marked ENOTDIR should be marked ENOENT,\n    // so it won't even get to this point.\n    /* c8 ignore start */\n    if (this.#type & ENOTDIR) return\n    /* c8 ignore stop */\n    let t = this.#type\n    // this could happen if we stat a dir, then delete it,\n    // then try to read it or one of its children.\n    if ((t & IFMT) === IFDIR) t &= IFMT_UNKNOWN\n    this.#type = t | ENOTDIR\n    this.#markChildrenENOENT()\n  }\n\n  #readdirFail(code: string = '') {\n    // markENOTDIR and markENOENT also set provisional=0\n    if (code === 'ENOTDIR' || code === 'EPERM') {\n      this.#markENOTDIR()\n    } else if (code === 'ENOENT') {\n      this.#markENOENT()\n    } else {\n      this.children().provisional = 0\n    }\n  }\n\n  #lstatFail(code: string = '') {\n    // Windows just raises ENOENT in this case, disable for win CI\n    /* c8 ignore start */\n    if (code === 'ENOTDIR') {\n      // already know it has a parent by this point\n      const p = this.parent as PathBase\n      p.#markENOTDIR()\n    } else if (code === 'ENOENT') {\n      /* c8 ignore stop */\n      this.#markENOENT()\n    }\n  }\n\n  #readlinkFail(code: string = '') {\n    let ter = this.#type\n    ter |= ENOREADLINK\n    if (code === 'ENOENT') ter |= ENOENT\n    // windows gets a weird error when you try to readlink a file\n    if (code === 'EINVAL' || code === 'UNKNOWN') {\n      // exists, but not a symlink, we don't know WHAT it is, so remove\n      // all IFMT bits.\n      ter &= IFMT_UNKNOWN\n    }\n    this.#type = ter\n    // windows just gets ENOENT in this case.  We do cover the case,\n    // just disabled because it's impossible on Windows CI\n    /* c8 ignore start */\n    if (code === 'ENOTDIR' && this.parent) {\n      this.parent.#markENOTDIR()\n    }\n    /* c8 ignore stop */\n  }\n\n  #readdirAddChild(e: Dirent, c: Children) {\n    return (\n      this.#readdirMaybePromoteChild(e, c) ||\n      this.#readdirAddNewChild(e, c)\n    )\n  }\n\n  #readdirAddNewChild(e: Dirent, c: Children): PathBase {\n    // alloc new entry at head, so it's never provisional\n    const type = entToType(e)\n    const child = this.newChild(e.name, type, { parent: this })\n    const ifmt = child.#type & IFMT\n    if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {\n      child.#type |= ENOTDIR\n    }\n    c.unshift(child)\n    c.provisional++\n    return child\n  }\n\n  #readdirMaybePromoteChild(e: Dirent, c: Children): PathBase | undefined {\n    for (let p = c.provisional; p < c.length; p++) {\n      const pchild = c[p]\n      const name =\n        this.nocase ? normalizeNocase(e.name) : normalize(e.name)\n      if (name !== pchild!.#matchName) {\n        continue\n      }\n\n      return this.#readdirPromoteChild(e, pchild!, p, c)\n    }\n  }\n\n  #readdirPromoteChild(\n    e: Dirent,\n    p: PathBase,\n    index: number,\n    c: Children,\n  ): PathBase {\n    const v = p.name\n    // retain any other flags, but set ifmt from dirent\n    p.#type = (p.#type & IFMT_UNKNOWN) | entToType(e)\n    // case sensitivity fixing when we learn the true name.\n    if (v !== e.name) p.name = e.name\n\n    // just advance provisional index (potentially off the list),\n    // otherwise we have to splice/pop it out and re-insert at head\n    if (index !== c.provisional) {\n      if (index === c.length - 1) c.pop()\n      else c.splice(index, 1)\n      c.unshift(p)\n    }\n    c.provisional++\n    return p\n  }\n\n  /**\n   * Call lstat() on this Path, and update all known information that can be\n   * determined.\n   *\n   * Note that unlike `fs.lstat()`, the returned value does not contain some\n   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n   * information is required, you will need to call `fs.lstat` yourself.\n   *\n   * If the Path refers to a nonexistent file, or if the lstat call fails for\n   * any reason, `undefined` is returned.  Otherwise the updated Path object is\n   * returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   */\n  async lstat(): Promise {\n    if ((this.#type & ENOENT) === 0) {\n      try {\n        this.#applyStat(await this.#fs.promises.lstat(this.fullpath()))\n        return this\n      } catch (er) {\n        this.#lstatFail((er as NodeJS.ErrnoException).code)\n      }\n    }\n  }\n\n  /**\n   * synchronous {@link PathBase.lstat}\n   */\n  lstatSync(): PathBase | undefined {\n    if ((this.#type & ENOENT) === 0) {\n      try {\n        this.#applyStat(this.#fs.lstatSync(this.fullpath()))\n        return this\n      } catch (er) {\n        this.#lstatFail((er as NodeJS.ErrnoException).code)\n      }\n    }\n  }\n\n  #applyStat(st: Stats) {\n    const {\n      atime,\n      atimeMs,\n      birthtime,\n      birthtimeMs,\n      blksize,\n      blocks,\n      ctime,\n      ctimeMs,\n      dev,\n      gid,\n      ino,\n      mode,\n      mtime,\n      mtimeMs,\n      nlink,\n      rdev,\n      size,\n      uid,\n    } = st\n    this.#atime = atime\n    this.#atimeMs = atimeMs\n    this.#birthtime = birthtime\n    this.#birthtimeMs = birthtimeMs\n    this.#blksize = blksize\n    this.#blocks = blocks\n    this.#ctime = ctime\n    this.#ctimeMs = ctimeMs\n    this.#dev = dev\n    this.#gid = gid\n    this.#ino = ino\n    this.#mode = mode\n    this.#mtime = mtime\n    this.#mtimeMs = mtimeMs\n    this.#nlink = nlink\n    this.#rdev = rdev\n    this.#size = size\n    this.#uid = uid\n    const ifmt = entToType(st)\n    // retain any other flags, but set the ifmt\n    this.#type = (this.#type & IFMT_UNKNOWN) | ifmt | LSTAT_CALLED\n    if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {\n      this.#type |= ENOTDIR\n    }\n  }\n\n  #onReaddirCB: ((\n    er: NodeJS.ErrnoException | null,\n    entries: Path[],\n  ) => any)[] = []\n  #readdirCBInFlight: boolean = false\n  #callOnReaddirCB(children: Path[]) {\n    this.#readdirCBInFlight = false\n    const cbs = this.#onReaddirCB.slice()\n    this.#onReaddirCB.length = 0\n    cbs.forEach(cb => cb(null, children))\n  }\n\n  /**\n   * Standard node-style callback interface to get list of directory entries.\n   *\n   * If the Path cannot or does not contain any children, then an empty array\n   * is returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   *\n   * @param cb The callback called with (er, entries).  Note that the `er`\n   * param is somewhat extraneous, as all readdir() errors are handled and\n   * simply result in an empty set of entries being returned.\n   * @param allowZalgo Boolean indicating that immediately known results should\n   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release\n   * zalgo at your peril, the dark pony lord is devious and unforgiving.\n   */\n  readdirCB(\n    cb: (er: NodeJS.ErrnoException | null, entries: PathBase[]) => any,\n    allowZalgo: boolean = false,\n  ): void {\n    if (!this.canReaddir()) {\n      if (allowZalgo) cb(null, [])\n      else queueMicrotask(() => cb(null, []))\n      return\n    }\n\n    const children = this.children()\n    if (this.calledReaddir()) {\n      const c = children.slice(0, children.provisional)\n      if (allowZalgo) cb(null, c)\n      else queueMicrotask(() => cb(null, c))\n      return\n    }\n\n    // don't have to worry about zalgo at this point.\n    this.#onReaddirCB.push(cb)\n    if (this.#readdirCBInFlight) {\n      return\n    }\n    this.#readdirCBInFlight = true\n\n    // else read the directory, fill up children\n    // de-provisionalize any provisional children.\n    const fullpath = this.fullpath()\n    this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {\n      if (er) {\n        this.#readdirFail((er as NodeJS.ErrnoException).code)\n        children.provisional = 0\n      } else {\n        // if we didn't get an error, we always get entries.\n        //@ts-ignore\n        for (const e of entries) {\n          this.#readdirAddChild(e, children)\n        }\n        this.#readdirSuccess(children)\n      }\n      this.#callOnReaddirCB(children.slice(0, children.provisional))\n      return\n    })\n  }\n\n  #asyncReaddirInFlight?: Promise\n\n  /**\n   * Return an array of known child entries.\n   *\n   * If the Path cannot or does not contain any children, then an empty array\n   * is returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   */\n  async readdir(): Promise {\n    if (!this.canReaddir()) {\n      return []\n    }\n\n    const children = this.children()\n    if (this.calledReaddir()) {\n      return children.slice(0, children.provisional)\n    }\n\n    // else read the directory, fill up children\n    // de-provisionalize any provisional children.\n    const fullpath = this.fullpath()\n    if (this.#asyncReaddirInFlight) {\n      await this.#asyncReaddirInFlight\n    } else {\n      /* c8 ignore start */\n      let resolve: () => void = () => {}\n      /* c8 ignore stop */\n      this.#asyncReaddirInFlight = new Promise(\n        res => (resolve = res),\n      )\n      try {\n        for (const e of await this.#fs.promises.readdir(fullpath, {\n          withFileTypes: true,\n        })) {\n          this.#readdirAddChild(e, children)\n        }\n        this.#readdirSuccess(children)\n      } catch (er) {\n        this.#readdirFail((er as NodeJS.ErrnoException).code)\n        children.provisional = 0\n      }\n      this.#asyncReaddirInFlight = undefined\n      resolve()\n    }\n    return children.slice(0, children.provisional)\n  }\n\n  /**\n   * synchronous {@link PathBase.readdir}\n   */\n  readdirSync(): PathBase[] {\n    if (!this.canReaddir()) {\n      return []\n    }\n\n    const children = this.children()\n    if (this.calledReaddir()) {\n      return children.slice(0, children.provisional)\n    }\n\n    // else read the directory, fill up children\n    // de-provisionalize any provisional children.\n    const fullpath = this.fullpath()\n    try {\n      for (const e of this.#fs.readdirSync(fullpath, {\n        withFileTypes: true,\n      })) {\n        this.#readdirAddChild(e, children)\n      }\n      this.#readdirSuccess(children)\n    } catch (er) {\n      this.#readdirFail((er as NodeJS.ErrnoException).code)\n      children.provisional = 0\n    }\n    return children.slice(0, children.provisional)\n  }\n\n  canReaddir() {\n    if (this.#type & ENOCHILD) return false\n    const ifmt = IFMT & this.#type\n    // we always set ENOTDIR when setting IFMT, so should be impossible\n    /* c8 ignore start */\n    if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {\n      return false\n    }\n    /* c8 ignore stop */\n    return true\n  }\n\n  shouldWalk(\n    dirs: Set,\n    walkFilter?: (e: PathBase) => boolean,\n  ): boolean {\n    return (\n      (this.#type & IFDIR) === IFDIR &&\n      !(this.#type & ENOCHILD) &&\n      !dirs.has(this) &&\n      (!walkFilter || walkFilter(this))\n    )\n  }\n\n  /**\n   * Return the Path object corresponding to path as resolved\n   * by realpath(3).\n   *\n   * If the realpath call fails for any reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   * On success, returns a Path object.\n   */\n  async realpath(): Promise {\n    if (this.#realpath) return this.#realpath\n    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) return undefined\n    try {\n      const rp = await this.#fs.promises.realpath(this.fullpath())\n      return (this.#realpath = this.resolve(rp))\n    } catch (_) {\n      this.#markENOREALPATH()\n    }\n  }\n\n  /**\n   * Synchronous {@link realpath}\n   */\n  realpathSync(): PathBase | undefined {\n    if (this.#realpath) return this.#realpath\n    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) return undefined\n    try {\n      const rp = this.#fs.realpathSync(this.fullpath())\n      return (this.#realpath = this.resolve(rp))\n    } catch (_) {\n      this.#markENOREALPATH()\n    }\n  }\n\n  /**\n   * Internal method to mark this Path object as the scurry cwd,\n   * called by {@link PathScurry#chdir}\n   *\n   * @internal\n   */\n  [setAsCwd](oldCwd: PathBase): void {\n    if (oldCwd === this) return\n    oldCwd.isCWD = false\n    this.isCWD = true\n\n    const changed = new Set([])\n    let rp = []\n    let p: PathBase = this\n    while (p && p.parent) {\n      changed.add(p)\n      p.#relative = rp.join(this.sep)\n      p.#relativePosix = rp.join('/')\n      p = p.parent\n      rp.push('..')\n    }\n    // now un-memoize parents of old cwd\n    p = oldCwd\n    while (p && p.parent && !changed.has(p)) {\n      p.#relative = undefined\n      p.#relativePosix = undefined\n      p = p.parent\n    }\n  }\n}\n\n/**\n * Path class used on win32 systems\n *\n * Uses `'\\\\'` as the path separator for returned paths, either `'\\\\'` or `'/'`\n * as the path separator for parsing paths.\n */\nexport class PathWin32 extends PathBase {\n  /**\n   * Separator for generating path strings.\n   */\n  sep: '\\\\' = '\\\\'\n  /**\n   * Separator for parsing path strings.\n   */\n  splitSep: RegExp = eitherSep\n\n  /**\n   * Do not create new Path objects directly.  They should always be accessed\n   * via the PathScurry class or other methods on the Path class.\n   *\n   * @internal\n   */\n  constructor(\n    name: string,\n    type: number = UNKNOWN,\n    root: PathBase | undefined,\n    roots: { [k: string]: PathBase },\n    nocase: boolean,\n    children: ChildrenCache,\n    opts: PathOpts,\n  ) {\n    super(name, type, root, roots, nocase, children, opts)\n  }\n\n  /**\n   * @internal\n   */\n  newChild(name: string, type: number = UNKNOWN, opts: PathOpts = {}) {\n    return new PathWin32(\n      name,\n      type,\n      this.root,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      opts,\n    )\n  }\n\n  /**\n   * @internal\n   */\n  getRootString(path: string): string {\n    return win32.parse(path).root\n  }\n\n  /**\n   * @internal\n   */\n  getRoot(rootPath: string): PathBase {\n    rootPath = uncToDrive(rootPath.toUpperCase())\n    if (rootPath === this.root.name) {\n      return this.root\n    }\n    // ok, not that one, check if it matches another we know about\n    for (const [compare, root] of Object.entries(this.roots)) {\n      if (this.sameRoot(rootPath, compare)) {\n        return (this.roots[rootPath] = root)\n      }\n    }\n    // otherwise, have to create a new one.\n    return (this.roots[rootPath] = new PathScurryWin32(\n      rootPath,\n      this,\n    ).root)\n  }\n\n  /**\n   * @internal\n   */\n  sameRoot(rootPath: string, compare: string = this.root.name): boolean {\n    // windows can (rarely) have case-sensitive filesystem, but\n    // UNC and drive letters are always case-insensitive, and canonically\n    // represented uppercase.\n    rootPath = rootPath\n      .toUpperCase()\n      .replace(/\\//g, '\\\\')\n      .replace(uncDriveRegexp, '$1\\\\')\n    return rootPath === compare\n  }\n}\n\n/**\n * Path class used on all posix systems.\n *\n * Uses `'/'` as the path separator.\n */\nexport class PathPosix extends PathBase {\n  /**\n   * separator for parsing path strings\n   */\n  splitSep: '/' = '/'\n  /**\n   * separator for generating path strings\n   */\n  sep: '/' = '/'\n\n  /**\n   * Do not create new Path objects directly.  They should always be accessed\n   * via the PathScurry class or other methods on the Path class.\n   *\n   * @internal\n   */\n  constructor(\n    name: string,\n    type: number = UNKNOWN,\n    root: PathBase | undefined,\n    roots: { [k: string]: PathBase },\n    nocase: boolean,\n    children: ChildrenCache,\n    opts: PathOpts,\n  ) {\n    super(name, type, root, roots, nocase, children, opts)\n  }\n\n  /**\n   * @internal\n   */\n  getRootString(path: string): string {\n    return path.startsWith('/') ? '/' : ''\n  }\n\n  /**\n   * @internal\n   */\n  getRoot(_rootPath: string): PathBase {\n    return this.root\n  }\n\n  /**\n   * @internal\n   */\n  newChild(name: string, type: number = UNKNOWN, opts: PathOpts = {}) {\n    return new PathPosix(\n      name,\n      type,\n      this.root,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      opts,\n    )\n  }\n}\n\n/**\n * Options that may be provided to the PathScurry constructor\n */\nexport interface PathScurryOpts {\n  /**\n   * perform case-insensitive path matching. Default based on platform\n   * subclass.\n   */\n  nocase?: boolean\n  /**\n   * Number of Path entries to keep in the cache of Path child references.\n   *\n   * Setting this higher than 65536 will dramatically increase the data\n   * consumption and construction time overhead of each PathScurry.\n   *\n   * Setting this value to 256 or lower will significantly reduce the data\n   * consumption and construction time overhead, but may also reduce resolve()\n   * and readdir() performance on large filesystems.\n   *\n   * Default `16384`.\n   */\n  childrenCacheSize?: number\n  /**\n   * An object that overrides the built-in functions from the fs and\n   * fs/promises modules.\n   *\n   * See {@link FSOption}\n   */\n  fs?: FSOption\n}\n\n/**\n * The base class for all PathScurry classes, providing the interface for path\n * resolution and filesystem operations.\n *\n * Typically, you should *not* instantiate this class directly, but rather one\n * of the platform-specific classes, or the exported {@link PathScurry} which\n * defaults to the current platform.\n */\nexport abstract class PathScurryBase {\n  /**\n   * The root Path entry for the current working directory of this Scurry\n   */\n  root: PathBase\n  /**\n   * The string path for the root of this Scurry's current working directory\n   */\n  rootPath: string\n  /**\n   * A collection of all roots encountered, referenced by rootPath\n   */\n  roots: { [k: string]: PathBase }\n  /**\n   * The Path entry corresponding to this PathScurry's current working directory.\n   */\n  cwd: PathBase\n  #resolveCache: ResolveCache\n  #resolvePosixCache: ResolveCache\n  #children: ChildrenCache\n  /**\n   * Perform path comparisons case-insensitively.\n   *\n   * Defaults true on Darwin and Windows systems, false elsewhere.\n   */\n  nocase: boolean\n\n  /**\n   * The path separator used for parsing paths\n   *\n   * `'/'` on Posix systems, either `'/'` or `'\\\\'` on Windows\n   */\n  abstract sep: string | RegExp\n\n  #fs: FSValue\n\n  /**\n   * This class should not be instantiated directly.\n   *\n   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry\n   *\n   * @internal\n   */\n  constructor(\n    cwd: URL | string = process.cwd(),\n    pathImpl: typeof win32 | typeof posix,\n    sep: string | RegExp,\n    {\n      nocase,\n      childrenCacheSize = 16 * 1024,\n      fs = defaultFS,\n    }: PathScurryOpts = {},\n  ) {\n    this.#fs = fsFromOption(fs)\n    if (cwd instanceof URL || cwd.startsWith('file://')) {\n      cwd = fileURLToPath(cwd)\n    }\n    // resolve and split root, and then add to the store.\n    // this is the only time we call path.resolve()\n    const cwdPath = pathImpl.resolve(cwd)\n    this.roots = Object.create(null)\n    this.rootPath = this.parseRootPath(cwdPath)\n    this.#resolveCache = new ResolveCache()\n    this.#resolvePosixCache = new ResolveCache()\n    this.#children = new ChildrenCache(childrenCacheSize)\n\n    const split = cwdPath.substring(this.rootPath.length).split(sep)\n    // resolve('/') leaves '', splits to [''], we don't want that.\n    if (split.length === 1 && !split[0]) {\n      split.pop()\n    }\n    /* c8 ignore start */\n    if (nocase === undefined) {\n      throw new TypeError(\n        'must provide nocase setting to PathScurryBase ctor',\n      )\n    }\n    /* c8 ignore stop */\n    this.nocase = nocase\n    this.root = this.newRoot(this.#fs)\n    this.roots[this.rootPath] = this.root\n    let prev: PathBase = this.root\n    let len = split.length - 1\n    const joinSep = pathImpl.sep\n    let abs = this.rootPath\n    let sawFirst = false\n    for (const part of split) {\n      const l = len--\n      prev = prev.child(part, {\n        relative: new Array(l).fill('..').join(joinSep),\n        relativePosix: new Array(l).fill('..').join('/'),\n        fullpath: (abs += (sawFirst ? '' : joinSep) + part),\n      })\n      sawFirst = true\n    }\n    this.cwd = prev\n  }\n\n  /**\n   * Get the depth of a provided path, string, or the cwd\n   */\n  depth(path: Path | string = this.cwd): number {\n    if (typeof path === 'string') {\n      path = this.cwd.resolve(path)\n    }\n    return path.depth()\n  }\n\n  /**\n   * Parse the root portion of a path string\n   *\n   * @internal\n   */\n  abstract parseRootPath(dir: string): string\n  /**\n   * create a new Path to use as root during construction.\n   *\n   * @internal\n   */\n  abstract newRoot(fs: FSValue): PathBase\n  /**\n   * Determine whether a given path string is absolute\n   */\n  abstract isAbsolute(p: string): boolean\n\n  /**\n   * Return the cache of child entries.  Exposed so subclasses can create\n   * child Path objects in a platform-specific way.\n   *\n   * @internal\n   */\n  childrenCache() {\n    return this.#children\n  }\n\n  /**\n   * Resolve one or more path strings to a resolved string\n   *\n   * Same interface as require('path').resolve.\n   *\n   * Much faster than path.resolve() when called multiple times for the same\n   * path, because the resolved Path objects are cached.  Much slower\n   * otherwise.\n   */\n  resolve(...paths: string[]): string {\n    // first figure out the minimum number of paths we have to test\n    // we always start at cwd, but any absolutes will bump the start\n    let r = ''\n    for (let i = paths.length - 1; i >= 0; i--) {\n      const p = paths[i]\n      if (!p || p === '.') continue\n      r = r ? `${p}/${r}` : p\n      if (this.isAbsolute(p)) {\n        break\n      }\n    }\n    const cached = this.#resolveCache.get(r)\n    if (cached !== undefined) {\n      return cached\n    }\n    const result = this.cwd.resolve(r).fullpath()\n    this.#resolveCache.set(r, result)\n    return result\n  }\n\n  /**\n   * Resolve one or more path strings to a resolved string, returning\n   * the posix path.  Identical to .resolve() on posix systems, but on\n   * windows will return a forward-slash separated UNC path.\n   *\n   * Same interface as require('path').resolve.\n   *\n   * Much faster than path.resolve() when called multiple times for the same\n   * path, because the resolved Path objects are cached.  Much slower\n   * otherwise.\n   */\n  resolvePosix(...paths: string[]): string {\n    // first figure out the minimum number of paths we have to test\n    // we always start at cwd, but any absolutes will bump the start\n    let r = ''\n    for (let i = paths.length - 1; i >= 0; i--) {\n      const p = paths[i]\n      if (!p || p === '.') continue\n      r = r ? `${p}/${r}` : p\n      if (this.isAbsolute(p)) {\n        break\n      }\n    }\n    const cached = this.#resolvePosixCache.get(r)\n    if (cached !== undefined) {\n      return cached\n    }\n    const result = this.cwd.resolve(r).fullpathPosix()\n    this.#resolvePosixCache.set(r, result)\n    return result\n  }\n\n  /**\n   * find the relative path from the cwd to the supplied path string or entry\n   */\n  relative(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.relative()\n  }\n\n  /**\n   * find the relative path from the cwd to the supplied path string or\n   * entry, using / as the path delimiter, even on Windows.\n   */\n  relativePosix(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.relativePosix()\n  }\n\n  /**\n   * Return the basename for the provided string or Path object\n   */\n  basename(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.name\n  }\n\n  /**\n   * Return the dirname for the provided string or Path object\n   */\n  dirname(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return (entry.parent || entry).fullpath()\n  }\n\n  /**\n   * Return an array of known child entries.\n   *\n   * First argument may be either a string, or a Path object.\n   *\n   * If the Path cannot or does not contain any children, then an empty array\n   * is returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   *\n   * Unlike `fs.readdir()`, the `withFileTypes` option defaults to `true`. Set\n   * `{ withFileTypes: false }` to return strings.\n   */\n\n  readdir(): Promise\n  readdir(opts: { withFileTypes: true }): Promise\n  readdir(opts: { withFileTypes: false }): Promise\n  readdir(opts: { withFileTypes: boolean }): Promise\n  readdir(entry: PathBase | string): Promise\n  readdir(\n    entry: PathBase | string,\n    opts: { withFileTypes: true },\n  ): Promise\n  readdir(\n    entry: PathBase | string,\n    opts: { withFileTypes: false },\n  ): Promise\n  readdir(\n    entry: PathBase | string,\n    opts: { withFileTypes: boolean },\n  ): Promise\n  async readdir(\n    entry: PathBase | string | { withFileTypes: boolean } = this.cwd,\n    opts: { withFileTypes: boolean } = {\n      withFileTypes: true,\n    },\n  ): Promise {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const { withFileTypes } = opts\n    if (!entry.canReaddir()) {\n      return []\n    } else {\n      const p = await entry.readdir()\n      return withFileTypes ? p : p.map(e => e.name)\n    }\n  }\n\n  /**\n   * synchronous {@link PathScurryBase.readdir}\n   */\n  readdirSync(): PathBase[]\n  readdirSync(opts: { withFileTypes: true }): PathBase[]\n  readdirSync(opts: { withFileTypes: false }): string[]\n  readdirSync(opts: { withFileTypes: boolean }): PathBase[] | string[]\n  readdirSync(entry: PathBase | string): PathBase[]\n  readdirSync(\n    entry: PathBase | string,\n    opts: { withFileTypes: true },\n  ): PathBase[]\n  readdirSync(\n    entry: PathBase | string,\n    opts: { withFileTypes: false },\n  ): string[]\n  readdirSync(\n    entry: PathBase | string,\n    opts: { withFileTypes: boolean },\n  ): PathBase[] | string[]\n  readdirSync(\n    entry: PathBase | string | { withFileTypes: boolean } = this.cwd,\n    opts: { withFileTypes: boolean } = {\n      withFileTypes: true,\n    },\n  ): PathBase[] | string[] {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const { withFileTypes = true } = opts\n    if (!entry.canReaddir()) {\n      return []\n    } else if (withFileTypes) {\n      return entry.readdirSync()\n    } else {\n      return entry.readdirSync().map(e => e.name)\n    }\n  }\n\n  /**\n   * Call lstat() on the string or Path object, and update all known\n   * information that can be determined.\n   *\n   * Note that unlike `fs.lstat()`, the returned value does not contain some\n   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n   * information is required, you will need to call `fs.lstat` yourself.\n   *\n   * If the Path refers to a nonexistent file, or if the lstat call fails for\n   * any reason, `undefined` is returned.  Otherwise the updated Path object is\n   * returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   */\n  async lstat(\n    entry: string | PathBase = this.cwd,\n  ): Promise {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.lstat()\n  }\n\n  /**\n   * synchronous {@link PathScurryBase.lstat}\n   */\n  lstatSync(entry: string | PathBase = this.cwd): PathBase | undefined {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.lstatSync()\n  }\n\n  /**\n   * Return the Path object or string path corresponding to the target of a\n   * symbolic link.\n   *\n   * If the path is not a symbolic link, or if the readlink call fails for any\n   * reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   *\n   * `{withFileTypes}` option defaults to `false`.\n   *\n   * On success, returns a Path object if `withFileTypes` option is true,\n   * otherwise a string.\n   */\n  readlink(): Promise\n  readlink(opt: { withFileTypes: false }): Promise\n  readlink(opt: { withFileTypes: true }): Promise\n  readlink(opt: {\n    withFileTypes: boolean\n  }): Promise\n  readlink(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): Promise\n  readlink(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): Promise\n  readlink(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): Promise\n  async readlink(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): Promise {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = await entry.readlink()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  /**\n   * synchronous {@link PathScurryBase.readlink}\n   */\n  readlinkSync(): string | undefined\n  readlinkSync(opt: { withFileTypes: false }): string | undefined\n  readlinkSync(opt: { withFileTypes: true }): PathBase | undefined\n  readlinkSync(opt: {\n    withFileTypes: boolean\n  }): PathBase | string | undefined\n  readlinkSync(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): string | undefined\n  readlinkSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): PathBase | undefined\n  readlinkSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): string | PathBase | undefined\n  readlinkSync(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): string | PathBase | undefined {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = entry.readlinkSync()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  /**\n   * Return the Path object or string path corresponding to path as resolved\n   * by realpath(3).\n   *\n   * If the realpath call fails for any reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   *\n   * `{withFileTypes}` option defaults to `false`.\n   *\n   * On success, returns a Path object if `withFileTypes` option is true,\n   * otherwise a string.\n   */\n  realpath(): Promise\n  realpath(opt: { withFileTypes: false }): Promise\n  realpath(opt: { withFileTypes: true }): Promise\n  realpath(opt: {\n    withFileTypes: boolean\n  }): Promise\n  realpath(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): Promise\n  realpath(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): Promise\n  realpath(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): Promise\n  async realpath(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): Promise {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = await entry.realpath()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  realpathSync(): string | undefined\n  realpathSync(opt: { withFileTypes: false }): string | undefined\n  realpathSync(opt: { withFileTypes: true }): PathBase | undefined\n  realpathSync(opt: {\n    withFileTypes: boolean\n  }): PathBase | string | undefined\n  realpathSync(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): string | undefined\n  realpathSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): PathBase | undefined\n  realpathSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): string | PathBase | undefined\n  realpathSync(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): string | PathBase | undefined {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = entry.realpathSync()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  /**\n   * Asynchronously walk the directory tree, returning an array of\n   * all path strings or Path objects found.\n   *\n   * Note that this will be extremely memory-hungry on large filesystems.\n   * In such cases, it may be better to use the stream or async iterator\n   * walk implementation.\n   */\n  walk(): Promise\n  walk(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Promise\n  walk(opts: WalkOptionsWithFileTypesFalse): Promise\n  walk(opts: WalkOptions): Promise\n  walk(entry: string | PathBase): Promise\n  walk(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Promise\n  walk(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Promise\n  walk(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Promise\n  async walk(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Promise {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results: (string | PathBase)[] = []\n    if (!filter || filter(entry)) {\n      results.push(withFileTypes ? entry : entry.fullpath())\n    }\n    const dirs = new Set()\n    const walk = (\n      dir: PathBase,\n      cb: (er?: NodeJS.ErrnoException) => void,\n    ) => {\n      dirs.add(dir)\n      dir.readdirCB((er, entries) => {\n        /* c8 ignore start */\n        if (er) {\n          return cb(er)\n        }\n        /* c8 ignore stop */\n        let len = entries.length\n        if (!len) return cb()\n        const next = () => {\n          if (--len === 0) {\n            cb()\n          }\n        }\n        for (const e of entries) {\n          if (!filter || filter(e)) {\n            results.push(withFileTypes ? e : e.fullpath())\n          }\n          if (follow && e.isSymbolicLink()) {\n            e.realpath()\n              .then(r => (r?.isUnknown() ? r.lstat() : r))\n              .then(r =>\n                r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next(),\n              )\n          } else {\n            if (e.shouldWalk(dirs, walkFilter)) {\n              walk(e, next)\n            } else {\n              next()\n            }\n          }\n        }\n      }, true) // zalgooooooo\n    }\n\n    const start = entry\n    return new Promise((res, rej) => {\n      walk(start, er => {\n        /* c8 ignore start */\n        if (er) return rej(er)\n        /* c8 ignore stop */\n        res(results as PathBase[] | string[])\n      })\n    })\n  }\n\n  /**\n   * Synchronously walk the directory tree, returning an array of\n   * all path strings or Path objects found.\n   *\n   * Note that this will be extremely memory-hungry on large filesystems.\n   * In such cases, it may be better to use the stream or async iterator\n   * walk implementation.\n   */\n  walkSync(): PathBase[]\n  walkSync(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): PathBase[]\n  walkSync(opts: WalkOptionsWithFileTypesFalse): string[]\n  walkSync(opts: WalkOptions): string[] | PathBase[]\n  walkSync(entry: string | PathBase): PathBase[]\n  walkSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesUnset | WalkOptionsWithFileTypesTrue,\n  ): PathBase[]\n  walkSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): string[]\n  walkSync(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): PathBase[] | string[]\n  walkSync(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): PathBase[] | string[] {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results: (string | PathBase)[] = []\n    if (!filter || filter(entry)) {\n      results.push(withFileTypes ? entry : entry.fullpath())\n    }\n    const dirs = new Set([entry])\n    for (const dir of dirs) {\n      const entries = dir.readdirSync()\n      for (const e of entries) {\n        if (!filter || filter(e)) {\n          results.push(withFileTypes ? e : e.fullpath())\n        }\n        let r: PathBase | undefined = e\n        if (e.isSymbolicLink()) {\n          if (!(follow && (r = e.realpathSync()))) continue\n          if (r.isUnknown()) r.lstatSync()\n        }\n        if (r.shouldWalk(dirs, walkFilter)) {\n          dirs.add(r)\n        }\n      }\n    }\n    return results as string[] | PathBase[]\n  }\n\n  /**\n   * Support for `for await`\n   *\n   * Alias for {@link PathScurryBase.iterate}\n   *\n   * Note: As of Node 19, this is very slow, compared to other methods of\n   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead\n   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n   */\n  [Symbol.asyncIterator]() {\n    return this.iterate()\n  }\n\n  /**\n   * Async generator form of {@link PathScurryBase.walk}\n   *\n   * Note: As of Node 19, this is very slow, compared to other methods of\n   * walking, especially if most/all of the directory tree has been previously\n   * walked.  Consider using {@link PathScurryBase.stream} if memory overhead\n   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n   */\n  iterate(): AsyncGenerator\n  iterate(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): AsyncGenerator\n  iterate(\n    opts: WalkOptionsWithFileTypesFalse,\n  ): AsyncGenerator\n  iterate(opts: WalkOptions): AsyncGenerator\n  iterate(entry: string | PathBase): AsyncGenerator\n  iterate(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): AsyncGenerator\n  iterate(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): AsyncGenerator\n  iterate(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): AsyncGenerator\n  iterate(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    options: WalkOptions = {},\n  ): AsyncGenerator {\n    // iterating async over the stream is significantly more performant,\n    // especially in the warm-cache scenario, because it buffers up directory\n    // entries in the background instead of waiting for a yield for each one.\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      options = entry\n      entry = this.cwd\n    }\n    return this.stream(entry, options)[Symbol.asyncIterator]()\n  }\n\n  /**\n   * Iterating over a PathScurry performs a synchronous walk.\n   *\n   * Alias for {@link PathScurryBase.iterateSync}\n   */\n  [Symbol.iterator]() {\n    return this.iterateSync()\n  }\n\n  iterateSync(): Generator\n  iterateSync(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Generator\n  iterateSync(\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Generator\n  iterateSync(opts: WalkOptions): Generator\n  iterateSync(entry: string | PathBase): Generator\n  iterateSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Generator\n  iterateSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Generator\n  iterateSync(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Generator\n  *iterateSync(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Generator {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    if (!filter || filter(entry)) {\n      yield withFileTypes ? entry : entry.fullpath()\n    }\n    const dirs = new Set([entry])\n    for (const dir of dirs) {\n      const entries = dir.readdirSync()\n      for (const e of entries) {\n        if (!filter || filter(e)) {\n          yield withFileTypes ? e : e.fullpath()\n        }\n        let r: PathBase | undefined = e\n        if (e.isSymbolicLink()) {\n          if (!(follow && (r = e.realpathSync()))) continue\n          if (r.isUnknown()) r.lstatSync()\n        }\n        if (r.shouldWalk(dirs, walkFilter)) {\n          dirs.add(r)\n        }\n      }\n    }\n  }\n\n  /**\n   * Stream form of {@link PathScurryBase.walk}\n   *\n   * Returns a Minipass stream that emits {@link PathBase} objects by default,\n   * or strings if `{ withFileTypes: false }` is set in the options.\n   */\n  stream(): Minipass\n  stream(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Minipass\n  stream(opts: WalkOptionsWithFileTypesFalse): Minipass\n  stream(opts: WalkOptions): Minipass\n  stream(entry: string | PathBase): Minipass\n  stream(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesUnset | WalkOptionsWithFileTypesTrue,\n  ): Minipass\n  stream(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Minipass\n  stream(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Minipass | Minipass\n  stream(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Minipass | Minipass {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results = new Minipass({ objectMode: true })\n    if (!filter || filter(entry)) {\n      results.write(withFileTypes ? entry : entry.fullpath())\n    }\n    const dirs = new Set()\n    const queue: PathBase[] = [entry]\n    let processing = 0\n    const process = () => {\n      let paused = false\n      while (!paused) {\n        const dir = queue.shift()\n        if (!dir) {\n          if (processing === 0) results.end()\n          return\n        }\n\n        processing++\n        dirs.add(dir)\n\n        const onReaddir = (\n          er: null | NodeJS.ErrnoException,\n          entries: PathBase[],\n          didRealpaths: boolean = false,\n        ) => {\n          /* c8 ignore start */\n          if (er) return results.emit('error', er)\n          /* c8 ignore stop */\n          if (follow && !didRealpaths) {\n            const promises: Promise[] = []\n            for (const e of entries) {\n              if (e.isSymbolicLink()) {\n                promises.push(\n                  e\n                    .realpath()\n                    .then((r: PathBase | undefined) =>\n                      r?.isUnknown() ? r.lstat() : r,\n                    ),\n                )\n              }\n            }\n            if (promises.length) {\n              Promise.all(promises).then(() =>\n                onReaddir(null, entries, true),\n              )\n              return\n            }\n          }\n\n          for (const e of entries) {\n            if (e && (!filter || filter(e))) {\n              if (!results.write(withFileTypes ? e : e.fullpath())) {\n                paused = true\n              }\n            }\n          }\n\n          processing--\n          for (const e of entries) {\n            const r = e.realpathCached() || e\n            if (r.shouldWalk(dirs, walkFilter)) {\n              queue.push(r)\n            }\n          }\n          if (paused && !results.flowing) {\n            results.once('drain', process)\n          } else if (!sync) {\n            process()\n          }\n        }\n\n        // zalgo containment\n        let sync = true\n        dir.readdirCB(onReaddir, true)\n        sync = false\n      }\n    }\n    process()\n    return results as Minipass | Minipass\n  }\n\n  /**\n   * Synchronous form of {@link PathScurryBase.stream}\n   *\n   * Returns a Minipass stream that emits {@link PathBase} objects by default,\n   * or strings if `{ withFileTypes: false }` is set in the options.\n   *\n   * Will complete the walk in a single tick if the stream is consumed fully.\n   * Otherwise, will pause as needed for stream backpressure.\n   */\n  streamSync(): Minipass\n  streamSync(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Minipass\n  streamSync(opts: WalkOptionsWithFileTypesFalse): Minipass\n  streamSync(opts: WalkOptions): Minipass\n  streamSync(entry: string | PathBase): Minipass\n  streamSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesUnset | WalkOptionsWithFileTypesTrue,\n  ): Minipass\n  streamSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Minipass\n  streamSync(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Minipass | Minipass\n  streamSync(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Minipass | Minipass {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results = new Minipass({ objectMode: true })\n    const dirs = new Set()\n    if (!filter || filter(entry)) {\n      results.write(withFileTypes ? entry : entry.fullpath())\n    }\n    const queue: PathBase[] = [entry]\n    let processing = 0\n    const process = () => {\n      let paused = false\n      while (!paused) {\n        const dir = queue.shift()\n        if (!dir) {\n          if (processing === 0) results.end()\n          return\n        }\n        processing++\n        dirs.add(dir)\n\n        const entries = dir.readdirSync()\n        for (const e of entries) {\n          if (!filter || filter(e)) {\n            if (!results.write(withFileTypes ? e : e.fullpath())) {\n              paused = true\n            }\n          }\n        }\n        processing--\n        for (const e of entries) {\n          let r: PathBase | undefined = e\n          if (e.isSymbolicLink()) {\n            if (!(follow && (r = e.realpathSync()))) continue\n            if (r.isUnknown()) r.lstatSync()\n          }\n          if (r.shouldWalk(dirs, walkFilter)) {\n            queue.push(r)\n          }\n        }\n      }\n      if (paused && !results.flowing) results.once('drain', process)\n    }\n    process()\n    return results as Minipass | Minipass\n  }\n\n  chdir(path: string | Path = this.cwd) {\n    const oldCwd = this.cwd\n    this.cwd = typeof path === 'string' ? this.cwd.resolve(path) : path\n    this.cwd[setAsCwd](oldCwd)\n  }\n}\n\n/**\n * Options provided to all walk methods.\n */\nexport interface WalkOptions {\n  /**\n   * Return results as {@link PathBase} objects rather than strings.\n   * When set to false, results are fully resolved paths, as returned by\n   * {@link PathBase.fullpath}.\n   * @default true\n   */\n  withFileTypes?: boolean\n\n  /**\n   *  Attempt to read directory entries from symbolic links. Otherwise, only\n   *  actual directories are traversed. Regardless of this setting, a given\n   *  target path will only ever be walked once, meaning that a symbolic link\n   *  to a previously traversed directory will never be followed.\n   *\n   *  Setting this imposes a slight performance penalty, because `readlink`\n   *  must be called on all symbolic links encountered, in order to avoid\n   *  infinite cycles.\n   * @default false\n   */\n  follow?: boolean\n\n  /**\n   * Only return entries where the provided function returns true.\n   *\n   * This will not prevent directories from being traversed, even if they do\n   * not pass the filter, though it will prevent directories themselves from\n   * being included in the result set.  See {@link walkFilter}\n   *\n   * Asynchronous functions are not supported here.\n   *\n   * By default, if no filter is provided, all entries and traversed\n   * directories are included.\n   */\n  filter?: (entry: PathBase) => boolean\n\n  /**\n   * Only traverse directories (and in the case of {@link follow} being set to\n   * true, symbolic links to directories) if the provided function returns\n   * true.\n   *\n   * This will not prevent directories from being included in the result set,\n   * even if they do not pass the supplied filter function.  See {@link filter}\n   * to do that.\n   *\n   * Asynchronous functions are not supported here.\n   */\n  walkFilter?: (entry: PathBase) => boolean\n}\n\nexport type WalkOptionsWithFileTypesUnset = WalkOptions & {\n  withFileTypes?: undefined\n}\nexport type WalkOptionsWithFileTypesTrue = WalkOptions & {\n  withFileTypes: true\n}\nexport type WalkOptionsWithFileTypesFalse = WalkOptions & {\n  withFileTypes: false\n}\n\n/**\n * Windows implementation of {@link PathScurryBase}\n *\n * Defaults to case insensitve, uses `'\\\\'` to generate path strings.  Uses\n * {@link PathWin32} for Path objects.\n */\nexport class PathScurryWin32 extends PathScurryBase {\n  /**\n   * separator for generating path strings\n   */\n  sep: '\\\\' = '\\\\'\n\n  constructor(\n    cwd: URL | string = process.cwd(),\n    opts: PathScurryOpts = {},\n  ) {\n    const { nocase = true } = opts\n    super(cwd, win32, '\\\\', { ...opts, nocase })\n    this.nocase = nocase\n    for (let p: PathBase | undefined = this.cwd; p; p = p.parent) {\n      p.nocase = this.nocase\n    }\n  }\n\n  /**\n   * @internal\n   */\n  parseRootPath(dir: string): string {\n    // if the path starts with a single separator, it's not a UNC, and we'll\n    // just get separator as the root, and driveFromUNC will return \\\n    // In that case, mount \\ on the root from the cwd.\n    return win32.parse(dir).root.toUpperCase()\n  }\n\n  /**\n   * @internal\n   */\n  newRoot(fs: FSValue) {\n    return new PathWin32(\n      this.rootPath,\n      IFDIR,\n      undefined,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      { fs },\n    )\n  }\n\n  /**\n   * Return true if the provided path string is an absolute path\n   */\n  isAbsolute(p: string): boolean {\n    return (\n      p.startsWith('/') || p.startsWith('\\\\') || /^[a-z]:(\\/|\\\\)/i.test(p)\n    )\n  }\n}\n\n/**\n * {@link PathScurryBase} implementation for all posix systems other than Darwin.\n *\n * Defaults to case-sensitive matching, uses `'/'` to generate path strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nexport class PathScurryPosix extends PathScurryBase {\n  /**\n   * separator for generating path strings\n   */\n  sep: '/' = '/'\n  constructor(\n    cwd: URL | string = process.cwd(),\n    opts: PathScurryOpts = {},\n  ) {\n    const { nocase = false } = opts\n    super(cwd, posix, '/', { ...opts, nocase })\n    this.nocase = nocase\n  }\n\n  /**\n   * @internal\n   */\n  parseRootPath(_dir: string): string {\n    return '/'\n  }\n\n  /**\n   * @internal\n   */\n  newRoot(fs: FSValue) {\n    return new PathPosix(\n      this.rootPath,\n      IFDIR,\n      undefined,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      { fs },\n    )\n  }\n\n  /**\n   * Return true if the provided path string is an absolute path\n   */\n  isAbsolute(p: string): boolean {\n    return p.startsWith('/')\n  }\n}\n\n/**\n * {@link PathScurryBase} implementation for Darwin (macOS) systems.\n *\n * Defaults to case-insensitive matching, uses `'/'` for generating path\n * strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nexport class PathScurryDarwin extends PathScurryPosix {\n  constructor(\n    cwd: URL | string = process.cwd(),\n    opts: PathScurryOpts = {},\n  ) {\n    const { nocase = true } = opts\n    super(cwd, { ...opts, nocase })\n  }\n}\n\n/**\n * Default {@link PathBase} implementation for the current platform.\n *\n * {@link PathWin32} on Windows systems, {@link PathPosix} on all others.\n */\nexport const Path = process.platform === 'win32' ? PathWin32 : PathPosix\nexport type Path = PathBase | InstanceType\n\n/**\n * Default {@link PathScurryBase} implementation for the current platform.\n *\n * {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on\n * Darwin (macOS) systems, {@link PathScurryPosix} on all others.\n */\nexport const PathScurry:\n  | typeof PathScurryWin32\n  | typeof PathScurryDarwin\n  | typeof PathScurryPosix =\n  process.platform === 'win32' ? PathScurryWin32\n  : process.platform === 'darwin' ? PathScurryDarwin\n  : PathScurryPosix\nexport type PathScurry = PathScurryBase | InstanceType\n", "// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n  p0: '',\n  p1: '',\n  p2: string,\n  p3: string,\n  ...rest: MMPattern[],\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n  pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n  readonly #patternList: PatternList\n  readonly #globList: GlobList\n  readonly #index: number\n  readonly length: number\n  readonly #platform: NodeJS.Platform\n  #rest?: Pattern | null\n  #globString?: string\n  #isDrive?: boolean\n  #isUNC?: boolean\n  #isAbsolute?: boolean\n  #followGlobstar: boolean = true\n\n  constructor(\n    patternList: MMPattern[],\n    globList: string[],\n    index: number,\n    platform: NodeJS.Platform,\n  ) {\n    if (!isPatternList(patternList)) {\n      throw new TypeError('empty pattern list')\n    }\n    if (!isGlobList(globList)) {\n      throw new TypeError('empty glob list')\n    }\n    if (globList.length !== patternList.length) {\n      throw new TypeError('mismatched pattern list and glob list lengths')\n    }\n    this.length = patternList.length\n    if (index < 0 || index >= this.length) {\n      throw new TypeError('index out of range')\n    }\n    this.#patternList = patternList\n    this.#globList = globList\n    this.#index = index\n    this.#platform = platform\n\n    // normalize root entries of absolute patterns on initial creation.\n    if (this.#index === 0) {\n      // c: => ['c:/']\n      // C:/ => ['C:/']\n      // C:/x => ['C:/', 'x']\n      // //host/share => ['//host/share/']\n      // //host/share/ => ['//host/share/']\n      // //host/share/x => ['//host/share/', 'x']\n      // /etc => ['/', 'etc']\n      // / => ['/']\n      if (this.isUNC()) {\n        // '' / '' / 'host' / 'share'\n        const [p0, p1, p2, p3, ...prest] = this.#patternList\n        const [g0, g1, g2, g3, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = [p0, p1, p2, p3, ''].join('/')\n        const g = [g0, g1, g2, g3, ''].join('/')\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      } else if (this.isDrive() || this.isAbsolute()) {\n        const [p1, ...prest] = this.#patternList\n        const [g1, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = (p1 as string) + '/'\n        const g = g1 + '/'\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      }\n    }\n  }\n\n  /**\n   * The first entry in the parsed list of patterns\n   */\n  pattern(): MMPattern {\n    return this.#patternList[this.#index] as MMPattern\n  }\n\n  /**\n   * true of if pattern() returns a string\n   */\n  isString(): boolean {\n    return typeof this.#patternList[this.#index] === 'string'\n  }\n  /**\n   * true of if pattern() returns GLOBSTAR\n   */\n  isGlobstar(): boolean {\n    return this.#patternList[this.#index] === GLOBSTAR\n  }\n  /**\n   * true if pattern() returns a regexp\n   */\n  isRegExp(): boolean {\n    return this.#patternList[this.#index] instanceof RegExp\n  }\n\n  /**\n   * The /-joined set of glob parts that make up this pattern\n   */\n  globString(): string {\n    return (this.#globString =\n      this.#globString ||\n      (this.#index === 0 ?\n        this.isAbsolute() ?\n          this.#globList[0] + this.#globList.slice(1).join('/')\n        : this.#globList.join('/')\n      : this.#globList.slice(this.#index).join('/')))\n  }\n\n  /**\n   * true if there are more pattern parts after this one\n   */\n  hasMore(): boolean {\n    return this.length > this.#index + 1\n  }\n\n  /**\n   * The rest of the pattern after this part, or null if this is the end\n   */\n  rest(): Pattern | null {\n    if (this.#rest !== undefined) return this.#rest\n    if (!this.hasMore()) return (this.#rest = null)\n    this.#rest = new Pattern(\n      this.#patternList,\n      this.#globList,\n      this.#index + 1,\n      this.#platform,\n    )\n    this.#rest.#isAbsolute = this.#isAbsolute\n    this.#rest.#isUNC = this.#isUNC\n    this.#rest.#isDrive = this.#isDrive\n    return this.#rest\n  }\n\n  /**\n   * true if the pattern represents a //unc/path/ on windows\n   */\n  isUNC(): boolean {\n    const pl = this.#patternList\n    return this.#isUNC !== undefined ?\n        this.#isUNC\n      : (this.#isUNC =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          pl[0] === '' &&\n          pl[1] === '' &&\n          typeof pl[2] === 'string' &&\n          !!pl[2] &&\n          typeof pl[3] === 'string' &&\n          !!pl[3])\n  }\n\n  // pattern like C:/...\n  // split = ['C:', ...]\n  // XXX: would be nice to handle patterns like `c:*` to test the cwd\n  // in c: for *, but I don't know of a way to even figure out what that\n  // cwd is without actually chdir'ing into it?\n  /**\n   * True if the pattern starts with a drive letter on Windows\n   */\n  isDrive(): boolean {\n    const pl = this.#patternList\n    return this.#isDrive !== undefined ?\n        this.#isDrive\n      : (this.#isDrive =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          this.length > 1 &&\n          typeof pl[0] === 'string' &&\n          /^[a-z]:$/i.test(pl[0]))\n  }\n\n  // pattern = '/' or '/...' or '/x/...'\n  // split = ['', ''] or ['', ...] or ['', 'x', ...]\n  // Drive and UNC both considered absolute on windows\n  /**\n   * True if the pattern is rooted on an absolute path\n   */\n  isAbsolute(): boolean {\n    const pl = this.#patternList\n    return this.#isAbsolute !== undefined ?\n        this.#isAbsolute\n      : (this.#isAbsolute =\n          (pl[0] === '' && pl.length > 1) ||\n          this.isDrive() ||\n          this.isUNC())\n  }\n\n  /**\n   * consume the root of the pattern, and return it\n   */\n  root(): string {\n    const p = this.#patternList[0]\n    return (\n        typeof p === 'string' && this.isAbsolute() && this.#index === 0\n      ) ?\n        p\n      : ''\n  }\n\n  /**\n   * Check to see if the current globstar pattern is allowed to follow\n   * a symbolic link.\n   */\n  checkFollowGlobstar(): boolean {\n    return !(\n      this.#index === 0 ||\n      !this.isGlobstar() ||\n      !this.#followGlobstar\n    )\n  }\n\n  /**\n   * Mark that the current globstar pattern is following a symbolic link\n   */\n  markFollowGlobstar(): boolean {\n    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n      return false\n    this.#followGlobstar = false\n    return true\n  }\n}\n", "// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n  ignored?: (p: Path) => boolean\n  childrenIgnored?: (p: Path) => boolean\n  add?: (ignore: string) => void\n}\n\nconst defaultPlatform: NodeJS.Platform =\n  (\n    typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string'\n  ) ?\n    process.platform\n  : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n  relative: Minimatch[]\n  relativeChildren: Minimatch[]\n  absolute: Minimatch[]\n  absoluteChildren: Minimatch[]\n  platform: NodeJS.Platform\n  mmopts: MinimatchOptions\n\n  constructor(\n    ignored: string[],\n    {\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      platform = defaultPlatform,\n    }: GlobWalkerOpts,\n  ) {\n    this.relative = []\n    this.absolute = []\n    this.relativeChildren = []\n    this.absoluteChildren = []\n    this.platform = platform\n    this.mmopts = {\n      dot: true,\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      optimizationLevel: 2,\n      platform,\n      nocomment: true,\n      nonegate: true,\n    }\n    for (const ign of ignored) this.add(ign)\n  }\n\n  add(ign: string) {\n    // this is a little weird, but it gives us a clean set of optimized\n    // minimatch matchers, without getting tripped up if one of them\n    // ends in /** inside a brace section, and it's only inefficient at\n    // the start of the walk, not along it.\n    // It'd be nice if the Pattern class just had a .test() method, but\n    // handling globstars is a bit of a pita, and that code already lives\n    // in minimatch anyway.\n    // Another way would be if maybe Minimatch could take its set/globParts\n    // as an option, and then we could at least just use Pattern to test\n    // for absolute-ness.\n    // Yet another way, Minimatch could take an array of glob strings, and\n    // a cwd option, and do the right thing.\n    const mm = new Minimatch(ign, this.mmopts)\n    for (let i = 0; i < mm.set.length; i++) {\n      const parsed = mm.set[i]\n      const globParts = mm.globParts[i]\n      /* c8 ignore start */\n      if (!parsed || !globParts) {\n        throw new Error('invalid pattern object')\n      }\n      // strip off leading ./ portions\n      // https://github.com/isaacs/node-glob/issues/570\n      while (parsed[0] === '.' && globParts[0] === '.') {\n        parsed.shift()\n        globParts.shift()\n      }\n      /* c8 ignore stop */\n      const p = new Pattern(parsed, globParts, 0, this.platform)\n      const m = new Minimatch(p.globString(), this.mmopts)\n      const children = globParts[globParts.length - 1] === '**'\n      const absolute = p.isAbsolute()\n      if (absolute) this.absolute.push(m)\n      else this.relative.push(m)\n      if (children) {\n        if (absolute) this.absoluteChildren.push(m)\n        else this.relativeChildren.push(m)\n      }\n    }\n  }\n\n  ignored(p: Path): boolean {\n    const fullpath = p.fullpath()\n    const fullpaths = `${fullpath}/`\n    const relative = p.relative() || '.'\n    const relatives = `${relative}/`\n    for (const m of this.relative) {\n      if (m.match(relative) || m.match(relatives)) return true\n    }\n    for (const m of this.absolute) {\n      if (m.match(fullpath) || m.match(fullpaths)) return true\n    }\n    return false\n  }\n\n  childrenIgnored(p: Path): boolean {\n    const fullpath = p.fullpath() + '/'\n    const relative = (p.relative() || '.') + '/'\n    for (const m of this.relativeChildren) {\n      if (m.match(relative)) return true\n    }\n    for (const m of this.absoluteChildren) {\n      if (m.match(fullpath)) return true\n    }\n    return false\n  }\n}\n", "// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n  store: Map>\n  constructor(store: Map> = new Map()) {\n    this.store = store\n  }\n  copy() {\n    return new HasWalkedCache(new Map(this.store))\n  }\n  hasWalked(target: Path, pattern: Pattern) {\n    return this.store.get(target.fullpath())?.has(pattern.globString())\n  }\n  storeWalked(target: Path, pattern: Pattern) {\n    const fullpath = target.fullpath()\n    const cached = this.store.get(fullpath)\n    if (cached) cached.add(pattern.globString())\n    else this.store.set(fullpath, new Set([pattern.globString()]))\n  }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n  store: Map = new Map()\n  add(target: Path, absolute: boolean, ifDir: boolean) {\n    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n    const current = this.store.get(target)\n    this.store.set(target, current === undefined ? n : n & current)\n  }\n  // match, absolute, ifdir\n  entries(): [Path, boolean, boolean][] {\n    return [...this.store.entries()].map(([path, n]) => [\n      path,\n      !!(n & 2),\n      !!(n & 1),\n    ])\n  }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n  store: Map = new Map()\n  add(target: Path, pattern: Pattern) {\n    if (!target.canReaddir()) {\n      return\n    }\n    const subs = this.store.get(target)\n    if (subs) {\n      if (!subs.find(p => p.globString() === pattern.globString())) {\n        subs.push(pattern)\n      }\n    } else this.store.set(target, [pattern])\n  }\n  get(target: Path): Pattern[] {\n    const subs = this.store.get(target)\n    /* c8 ignore start */\n    if (!subs) {\n      throw new Error('attempting to walk unknown path')\n    }\n    /* c8 ignore stop */\n    return subs\n  }\n  entries(): [Path, Pattern[]][] {\n    return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n  }\n  keys(): Path[] {\n    return [...this.store.keys()].filter(t => t.canReaddir())\n  }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n  hasWalkedCache: HasWalkedCache\n  matches = new MatchRecord()\n  subwalks = new SubWalks()\n  patterns?: Pattern[]\n  follow: boolean\n  dot: boolean\n  opts: GlobWalkerOpts\n\n  constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n    this.opts = opts\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.hasWalkedCache =\n      hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache()\n  }\n\n  processPatterns(target: Path, patterns: Pattern[]) {\n    this.patterns = patterns\n    const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n    // map of paths to the magic-starting subwalks they need to walk\n    // first item in patterns is the filter\n\n    for (let [t, pattern] of processingSet) {\n      this.hasWalkedCache.storeWalked(t, pattern)\n\n      const root = pattern.root()\n      const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n      // start absolute patterns at root\n      if (root) {\n        t = t.resolve(\n          root === '/' && this.opts.root !== undefined ?\n            this.opts.root\n          : root,\n        )\n        const rest = pattern.rest()\n        if (!rest) {\n          this.matches.add(t, true, false)\n          continue\n        } else {\n          pattern = rest\n        }\n      }\n\n      if (t.isENOENT()) continue\n\n      let p: MMPattern\n      let rest: Pattern | null\n      let changed = false\n      while (\n        typeof (p = pattern.pattern()) === 'string' &&\n        (rest = pattern.rest())\n      ) {\n        const c = t.resolve(p)\n        t = c\n        pattern = rest\n        changed = true\n      }\n      p = pattern.pattern()\n      rest = pattern.rest()\n      if (changed) {\n        if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n        this.hasWalkedCache.storeWalked(t, pattern)\n      }\n\n      // now we have either a final string for a known entry,\n      // more strings for an unknown entry,\n      // or a pattern starting with magic, mounted on t.\n      if (typeof p === 'string') {\n        // must not be final entry, otherwise we would have\n        // concatenated it earlier.\n        const ifDir = p === '..' || p === '' || p === '.'\n        this.matches.add(t.resolve(p), absolute, ifDir)\n        continue\n      } else if (p === GLOBSTAR) {\n        // if no rest, match and subwalk pattern\n        // if rest, process rest and subwalk pattern\n        // if it's a symlink, but we didn't get here by way of a\n        // globstar match (meaning it's the first time THIS globstar\n        // has traversed a symlink), then we follow it. Otherwise, stop.\n        if (\n          !t.isSymbolicLink() ||\n          this.follow ||\n          pattern.checkFollowGlobstar()\n        ) {\n          this.subwalks.add(t, pattern)\n        }\n        const rp = rest?.pattern()\n        const rrest = rest?.rest()\n        if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n          // only HAS to be a dir if it ends in **/ or **/.\n          // but ending in ** will match files as well.\n          this.matches.add(t, absolute, rp === '' || rp === '.')\n        } else {\n          if (rp === '..') {\n            // this would mean you're matching **/.. at the fs root,\n            // and no thanks, I'm not gonna test that specific case.\n            /* c8 ignore start */\n            const tp = t.parent || t\n            /* c8 ignore stop */\n            if (!rrest) this.matches.add(tp, absolute, true)\n            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n              this.subwalks.add(tp, rrest)\n            }\n          }\n        }\n      } else if (p instanceof RegExp) {\n        this.subwalks.add(t, pattern)\n      }\n    }\n\n    return this\n  }\n\n  subwalkTargets(): Path[] {\n    return this.subwalks.keys()\n  }\n\n  child() {\n    return new Processor(this.opts, this.hasWalkedCache)\n  }\n\n  // return a new Processor containing the subwalks for each\n  // child entry, and a set of matches, and\n  // a hasWalkedCache that's a copy of this one\n  // then we're going to call\n  filterEntries(parent: Path, entries: Path[]): Processor {\n    const patterns = this.subwalks.get(parent)\n    // put matches and entry walks into the results processor\n    const results = this.child()\n    for (const e of entries) {\n      for (const pattern of patterns) {\n        const absolute = pattern.isAbsolute()\n        const p = pattern.pattern()\n        const rest = pattern.rest()\n        if (p === GLOBSTAR) {\n          results.testGlobstar(e, pattern, rest, absolute)\n        } else if (p instanceof RegExp) {\n          results.testRegExp(e, p, rest, absolute)\n        } else {\n          results.testString(e, p, rest, absolute)\n        }\n      }\n    }\n    return results\n  }\n\n  testGlobstar(\n    e: Path,\n    pattern: Pattern,\n    rest: Pattern | null,\n    absolute: boolean,\n  ) {\n    if (this.dot || !e.name.startsWith('.')) {\n      if (!pattern.hasMore()) {\n        this.matches.add(e, absolute, false)\n      }\n      if (e.canReaddir()) {\n        // if we're in follow mode or it's not a symlink, just keep\n        // testing the same pattern. If there's more after the globstar,\n        // then this symlink consumes the globstar. If not, then we can\n        // follow at most ONE symlink along the way, so we mark it, which\n        // also checks to ensure that it wasn't already marked.\n        if (this.follow || !e.isSymbolicLink()) {\n          this.subwalks.add(e, pattern)\n        } else if (e.isSymbolicLink()) {\n          if (rest && pattern.checkFollowGlobstar()) {\n            this.subwalks.add(e, rest)\n          } else if (pattern.markFollowGlobstar()) {\n            this.subwalks.add(e, pattern)\n          }\n        }\n      }\n    }\n    // if the NEXT thing matches this entry, then also add\n    // the rest.\n    if (rest) {\n      const rp = rest.pattern()\n      if (\n        typeof rp === 'string' &&\n        // dots and empty were handled already\n        rp !== '..' &&\n        rp !== '' &&\n        rp !== '.'\n      ) {\n        this.testString(e, rp, rest.rest(), absolute)\n      } else if (rp === '..') {\n        /* c8 ignore start */\n        const ep = e.parent || e\n        /* c8 ignore stop */\n        this.subwalks.add(ep, rest)\n      } else if (rp instanceof RegExp) {\n        this.testRegExp(e, rp, rest.rest(), absolute)\n      }\n    }\n  }\n\n  testRegExp(\n    e: Path,\n    p: MMRegExp,\n    rest: Pattern | null,\n    absolute: boolean,\n  ) {\n    if (!p.test(e.name)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n\n  testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n    // should never happen?\n    if (!e.isNamed(p)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n}\n", "/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport { Ignore, IgnoreLike } from './ignore.js'\n\n// XXX can we somehow make it so that it NEVER processes a given path more than\n// once, enough that the match set tracking is no longer needed?  that'd speed\n// things up a lot.  Or maybe bring back nounique, and skip it in that case?\n\n// a single minimatch set entry with 1 or more parts\nimport { Pattern } from './pattern.js'\nimport { Processor } from './processor.js'\n\nexport interface GlobWalkerOpts {\n  absolute?: boolean\n  allowWindowsEscape?: boolean\n  cwd?: string | URL\n  dot?: boolean\n  dotRelative?: boolean\n  follow?: boolean\n  ignore?: string | string[] | IgnoreLike\n  mark?: boolean\n  matchBase?: boolean\n  // Note: maxDepth here means \"maximum actual Path.depth()\",\n  // not \"maximum depth beyond cwd\"\n  maxDepth?: number\n  nobrace?: boolean\n  nocase?: boolean\n  nodir?: boolean\n  noext?: boolean\n  noglobstar?: boolean\n  platform?: NodeJS.Platform\n  posix?: boolean\n  realpath?: boolean\n  root?: string\n  stat?: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape?: boolean\n  withFileTypes?: boolean\n  includeChildMatches?: boolean\n}\n\nexport type GWOFileTypesTrue = GlobWalkerOpts & {\n  withFileTypes: true\n}\nexport type GWOFileTypesFalse = GlobWalkerOpts & {\n  withFileTypes: false\n}\nexport type GWOFileTypesUnset = GlobWalkerOpts & {\n  withFileTypes?: undefined\n}\n\nexport type Result =\n  O extends GWOFileTypesTrue ? Path\n  : O extends GWOFileTypesFalse ? string\n  : O extends GWOFileTypesUnset ? string\n  : Path | string\n\nexport type Matches =\n  O extends GWOFileTypesTrue ? Set\n  : O extends GWOFileTypesFalse ? Set\n  : O extends GWOFileTypesUnset ? Set\n  : Set\n\nexport type MatchStream = Minipass<\n  Result,\n  Result\n>\n\nconst makeIgnore = (\n  ignore: string | string[] | IgnoreLike,\n  opts: GlobWalkerOpts,\n): IgnoreLike =>\n  typeof ignore === 'string' ? new Ignore([ignore], opts)\n  : Array.isArray(ignore) ? new Ignore(ignore, opts)\n  : ignore\n\n/**\n * basic walking utilities that all the glob walker types use\n */\nexport abstract class GlobUtil {\n  path: Path\n  patterns: Pattern[]\n  opts: O\n  seen: Set = new Set()\n  paused: boolean = false\n  aborted: boolean = false\n  #onResume: (() => any)[] = []\n  #ignore?: IgnoreLike\n  #sep: '\\\\' | '/'\n  signal?: AbortSignal\n  maxDepth: number\n  includeChildMatches: boolean\n\n  constructor(patterns: Pattern[], path: Path, opts: O)\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    this.patterns = patterns\n    this.path = path\n    this.opts = opts\n    this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/'\n    this.includeChildMatches = opts.includeChildMatches !== false\n    if (opts.ignore || !this.includeChildMatches) {\n      this.#ignore = makeIgnore(opts.ignore ?? [], opts)\n      if (\n        !this.includeChildMatches &&\n        typeof this.#ignore.add !== 'function'\n      ) {\n        const m = 'cannot ignore child matches, ignore lacks add() method.'\n        throw new Error(m)\n      }\n    }\n    // ignore, always set with maxDepth, but it's optional on the\n    // GlobOptions type\n    /* c8 ignore start */\n    this.maxDepth = opts.maxDepth || Infinity\n    /* c8 ignore stop */\n    if (opts.signal) {\n      this.signal = opts.signal\n      this.signal.addEventListener('abort', () => {\n        this.#onResume.length = 0\n      })\n    }\n  }\n\n  #ignored(path: Path): boolean {\n    return this.seen.has(path) || !!this.#ignore?.ignored?.(path)\n  }\n  #childrenIgnored(path: Path): boolean {\n    return !!this.#ignore?.childrenIgnored?.(path)\n  }\n\n  // backpressure mechanism\n  pause() {\n    this.paused = true\n  }\n  resume() {\n    /* c8 ignore start */\n    if (this.signal?.aborted) return\n    /* c8 ignore stop */\n    this.paused = false\n    let fn: (() => any) | undefined = undefined\n    while (!this.paused && (fn = this.#onResume.shift())) {\n      fn()\n    }\n  }\n  onResume(fn: () => any) {\n    if (this.signal?.aborted) return\n    /* c8 ignore start */\n    if (!this.paused) {\n      fn()\n    } else {\n      /* c8 ignore stop */\n      this.#onResume.push(fn)\n    }\n  }\n\n  // do the requisite realpath/stat checking, and return the path\n  // to add or undefined to filter it out.\n  async matchCheck(e: Path, ifDir: boolean): Promise {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || (await e.realpath())\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    const s = needStat ? await e.lstat() : e\n    if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n      const target = await s.realpath()\n      /* c8 ignore start */\n      if (target && (target.isUnknown() || this.opts.stat)) {\n        await target.lstat()\n      }\n      /* c8 ignore stop */\n    }\n    return this.matchCheckTest(s, ifDir)\n  }\n\n  matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined {\n    return (\n        e &&\n          (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n          (!ifDir || e.canReaddir()) &&\n          (!this.opts.nodir || !e.isDirectory()) &&\n          (!this.opts.nodir ||\n            !this.opts.follow ||\n            !e.isSymbolicLink() ||\n            !e.realpathCached()?.isDirectory()) &&\n          !this.#ignored(e)\n      ) ?\n        e\n      : undefined\n  }\n\n  matchCheckSync(e: Path, ifDir: boolean): Path | undefined {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || e.realpathSync()\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    const s = needStat ? e.lstatSync() : e\n    if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n      const target = s.realpathSync()\n      if (target && (target?.isUnknown() || this.opts.stat)) {\n        target.lstatSync()\n      }\n    }\n    return this.matchCheckTest(s, ifDir)\n  }\n\n  abstract matchEmit(p: Result): void\n  abstract matchEmit(p: string | Path): void\n\n  matchFinish(e: Path, absolute: boolean) {\n    if (this.#ignored(e)) return\n    // we know we have an ignore if this is false, but TS doesn't\n    if (!this.includeChildMatches && this.#ignore?.add) {\n      const ign = `${e.relativePosix()}/**`\n      this.#ignore.add(ign)\n    }\n    const abs =\n      this.opts.absolute === undefined ? absolute : this.opts.absolute\n    this.seen.add(e)\n    const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''\n    // ok, we have what we need!\n    if (this.opts.withFileTypes) {\n      this.matchEmit(e)\n    } else if (abs) {\n      const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath()\n      this.matchEmit(abs + mark)\n    } else {\n      const rel = this.opts.posix ? e.relativePosix() : e.relative()\n      const pre =\n        this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ?\n          '.' + this.#sep\n        : ''\n      this.matchEmit(!rel ? '.' + mark : pre + rel + mark)\n    }\n  }\n\n  async match(e: Path, absolute: boolean, ifDir: boolean): Promise {\n    const p = await this.matchCheck(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  matchSync(e: Path, absolute: boolean, ifDir: boolean): void {\n    const p = this.matchCheckSync(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  walkCB(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() => this.walkCB2(target, patterns, processor, cb))\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const childrenCached = t.readdirCached()\n      if (t.calledReaddir())\n        this.walkCB3(t, childrenCached, processor, next)\n      else {\n        t.readdirCB(\n          (_, entries) => this.walkCB3(t, entries, processor, next),\n          true,\n        )\n      }\n    }\n\n    next()\n  }\n\n  walkCB3(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n\n  walkCBSync(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2Sync(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() =>\n        this.walkCB2Sync(target, patterns, processor, cb),\n      )\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const children = t.readdirSync()\n      this.walkCB3Sync(t, children, processor, next)\n    }\n\n    next()\n  }\n\n  walkCB3Sync(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2Sync(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n}\n\nexport class GlobWalker<\n  O extends GlobWalkerOpts = GlobWalkerOpts,\n> extends GlobUtil {\n  matches = new Set>()\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n  }\n\n  matchEmit(e: Result): void {\n    this.matches.add(e)\n  }\n\n  async walk(): Promise>> {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      await this.path.lstat()\n    }\n    await new Promise((res, rej) => {\n      this.walkCB(this.path, this.patterns, () => {\n        if (this.signal?.aborted) {\n          rej(this.signal.reason)\n        } else {\n          res(this.matches)\n        }\n      })\n    })\n    return this.matches\n  }\n\n  walkSync(): Set> {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    // nothing for the callback to do, because this never pauses\n    this.walkCBSync(this.path, this.patterns, () => {\n      if (this.signal?.aborted) throw this.signal.reason\n    })\n    return this.matches\n  }\n}\n\nexport class GlobStream<\n  O extends GlobWalkerOpts = GlobWalkerOpts,\n> extends GlobUtil {\n  results: Minipass, Result>\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n    this.results = new Minipass, Result>({\n      signal: this.signal,\n      objectMode: true,\n    })\n    this.results.on('drain', () => this.resume())\n    this.results.on('resume', () => this.resume())\n  }\n\n  matchEmit(e: Result): void {\n    this.results.write(e)\n    if (!this.results.flowing) this.pause()\n  }\n\n  stream(): MatchStream {\n    const target = this.path\n    if (target.isUnknown()) {\n      target.lstat().then(() => {\n        this.walkCB(target, this.patterns, () => this.results.end())\n      })\n    } else {\n      this.walkCB(target, this.patterns, () => this.results.end())\n    }\n    return this.results\n  }\n\n  streamSync(): MatchStream {\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    this.walkCBSync(this.path, this.patterns, () => this.results.end())\n    return this.results\n  }\n}\n", "import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { fileURLToPath } from 'node:url'\nimport {\n  FSOption,\n  Path,\n  PathScurry,\n  PathScurryDarwin,\n  PathScurryPosix,\n  PathScurryWin32,\n} from 'path-scurry'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n  (\n    typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string'\n  ) ?\n    process.platform\n  : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n  /**\n   * Set to `true` to always receive absolute paths for\n   * matched files. Set to `false` to always return relative paths.\n   *\n   * When this option is not set, absolute paths are returned for patterns\n   * that are absolute, and otherwise paths are returned that are relative\n   * to the `cwd` setting.\n   *\n   * This does _not_ make an extra system call to get\n   * the realpath, it only does string path resolution.\n   *\n   * Conflicts with {@link withFileTypes}\n   */\n  absolute?: boolean\n\n  /**\n   * Set to false to enable {@link windowsPathsNoEscape}\n   *\n   * @deprecated\n   */\n  allowWindowsEscape?: boolean\n\n  /**\n   * The current working directory in which to search. Defaults to\n   * `process.cwd()`.\n   *\n   * May be eiher a string path or a `file://` URL object or string.\n   */\n  cwd?: string | URL\n\n  /**\n   * Include `.dot` files in normal matches and `globstar`\n   * matches. Note that an explicit dot in a portion of the pattern\n   * will always match dot files.\n   */\n  dot?: boolean\n\n  /**\n   * Prepend all relative path strings with `./` (or `.\\` on Windows).\n   *\n   * Without this option, returned relative paths are \"bare\", so instead of\n   * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n   *\n   * Relative patterns starting with `'../'` are not prepended with `./`, even\n   * if this option is set.\n   */\n  dotRelative?: boolean\n\n  /**\n   * Follow symlinked directories when expanding `**`\n   * patterns. This can result in a lot of duplicate references in\n   * the presence of cyclic links, and make performance quite bad.\n   *\n   * By default, a `**` in a pattern will follow 1 symbolic link if\n   * it is not the first item in the pattern, or none if it is the\n   * first item in the pattern, following the same behavior as Bash.\n   */\n  follow?: boolean\n\n  /**\n   * string or string[], or an object with `ignore` and `ignoreChildren`\n   * methods.\n   *\n   * If a string or string[] is provided, then this is treated as a glob\n   * pattern or array of glob patterns to exclude from matches. To ignore all\n   * children within a directory, as well as the entry itself, append `'/**'`\n   * to the ignore pattern.\n   *\n   * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n   * any other settings.\n   *\n   * If an object is provided that has `ignored(path)` and/or\n   * `childrenIgnored(path)` methods, then these methods will be called to\n   * determine whether any Path is a match or if its children should be\n   * traversed, respectively.\n   */\n  ignore?: string | string[] | IgnoreLike\n\n  /**\n   * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n   * effect if {@link nobrace} is set.\n   *\n   * Only has effect on the {@link hasMagic} function.\n   */\n  magicalBraces?: boolean\n\n  /**\n   * Add a `/` character to directory matches. Note that this requires\n   * additional stat calls in some cases.\n   */\n  mark?: boolean\n\n  /**\n   * Perform a basename-only match if the pattern does not contain any slash\n   * characters. That is, `*.js` would be treated as equivalent to\n   * `**\\/*.js`, matching all js files in all directories.\n   */\n  matchBase?: boolean\n\n  /**\n   * Limit the directory traversal to a given depth below the cwd.\n   * Note that this does NOT prevent traversal to sibling folders,\n   * root patterns, and so on. It only limits the maximum folder depth\n   * that the walk will descend, relative to the cwd.\n   */\n  maxDepth?: number\n\n  /**\n   * Do not expand `{a,b}` and `{1..3}` brace sets.\n   */\n  nobrace?: boolean\n\n  /**\n   * Perform a case-insensitive match. This defaults to `true` on macOS and\n   * Windows systems, and `false` on all others.\n   *\n   * **Note** `nocase` should only be explicitly set when it is\n   * known that the filesystem's case sensitivity differs from the\n   * platform default. If set `true` on case-sensitive file\n   * systems, or `false` on case-insensitive file systems, then the\n   * walk may return more or less results than expected.\n   */\n  nocase?: boolean\n\n  /**\n   * Do not match directories, only files. (Note: to match\n   * _only_ directories, put a `/` at the end of the pattern.)\n   */\n  nodir?: boolean\n\n  /**\n   * Do not match \"extglob\" patterns such as `+(a|b)`.\n   */\n  noext?: boolean\n\n  /**\n   * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n   * `*` instead.)\n   *\n   * Conflicts with {@link matchBase}\n   */\n  noglobstar?: boolean\n\n  /**\n   * Defaults to value of `process.platform` if available, or `'linux'` if\n   * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n   * behavior.\n   */\n  platform?: NodeJS.Platform\n\n  /**\n   * Set to true to call `fs.realpath` on all of the\n   * results. In the case of an entry that cannot be resolved, the\n   * entry is omitted. This incurs a slight performance penalty, of\n   * course, because of the added system calls.\n   */\n  realpath?: boolean\n\n  /**\n   *\n   * A string path resolved against the `cwd` option, which\n   * is used as the starting point for absolute patterns that start\n   * with `/`, (but not drive letters or UNC paths on Windows).\n   *\n   * Note that this _doesn't_ necessarily limit the walk to the\n   * `root` directory, and doesn't affect the cwd starting point for\n   * non-absolute patterns. A pattern containing `..` will still be\n   * able to traverse out of the root directory, if it is not an\n   * actual root directory on the filesystem, and any non-absolute\n   * patterns will be matched in the `cwd`. For example, the\n   * pattern `/../*` with `{root:'/some/path'}` will return all\n   * files in `/some`, not all files in `/some/path`. The pattern\n   * `*` with `{root:'/some/path'}` will return all the entries in\n   * the cwd, not the entries in `/some/path`.\n   *\n   * To start absolute and non-absolute patterns in the same\n   * path, you can use `{root:''}`. However, be aware that on\n   * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n   * _always_ start in the `x:/` or `//host/share` directory,\n   * regardless of the `root` setting.\n   */\n  root?: string\n\n  /**\n   * A [PathScurry](http://npm.im/path-scurry) object used\n   * to traverse the file system. If the `nocase` option is set\n   * explicitly, then any provided `scurry` object must match this\n   * setting.\n   */\n  scurry?: PathScurry\n\n  /**\n   * Call `lstat()` on all entries, whether required or not to determine\n   * if it's a valid match. When used with {@link withFileTypes}, this means\n   * that matches will include data such as modified time, permissions, and\n   * so on.  Note that this will incur a performance cost due to the added\n   * system calls.\n   */\n  stat?: boolean\n\n  /**\n   * An AbortSignal which will cancel the Glob walk when\n   * triggered.\n   */\n  signal?: AbortSignal\n\n  /**\n   * Use `\\\\` as a path separator _only_, and\n   *  _never_ as an escape character. If set, all `\\\\` characters are\n   *  replaced with `/` in the pattern.\n   *\n   *  Note that this makes it **impossible** to match against paths\n   *  containing literal glob pattern characters, but allows matching\n   *  with patterns constructed using `path.join()` and\n   *  `path.resolve()` on Windows platforms, mimicking the (buggy!)\n   *  behavior of Glob v7 and before on Windows. Please use with\n   *  caution, and be mindful of [the caveat below about Windows\n   *  paths](#windows). (For legacy reasons, this is also set if\n   *  `allowWindowsEscape` is set to the exact value `false`.)\n   */\n  windowsPathsNoEscape?: boolean\n\n  /**\n   * Return [PathScurry](http://npm.im/path-scurry)\n   * `Path` objects instead of strings. These are similar to a\n   * NodeJS `Dirent` object, but with additional methods and\n   * properties.\n   *\n   * Conflicts with {@link absolute}\n   */\n  withFileTypes?: boolean\n\n  /**\n   * An fs implementation to override some or all of the defaults.  See\n   * http://npm.im/path-scurry for details about what can be overridden.\n   */\n  fs?: FSOption\n\n  /**\n   * Just passed along to Minimatch.  Note that this makes all pattern\n   * matching operations slower and *extremely* noisy.\n   */\n  debug?: boolean\n\n  /**\n   * Return `/` delimited paths, even on Windows.\n   *\n   * On posix systems, this has no effect.  But, on Windows, it means that\n   * paths will be `/` delimited, and absolute paths will be their full\n   * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n   * `'//?/C:/foo/bar'`\n   */\n  posix?: boolean\n\n  /**\n   * Do not match any children of any matches. For example, the pattern\n   * `**\\/foo` would match `a/foo`, but not `a/foo/b/foo` in this mode.\n   *\n   * This is especially useful for cases like \"find all `node_modules`\n   * folders, but not the ones in `node_modules`\".\n   *\n   * In order to support this, the `Ignore` implementation must support an\n   * `add(pattern: string)` method. If using the default `Ignore` class, then\n   * this is fine, but if this is set to `false`, and a custom `Ignore` is\n   * provided that does not have an `add()` method, then it will throw an\n   * error.\n   *\n   * **Caveat** It *only* ignores matches that would be a descendant of a\n   * previous match, and only if that descendant is matched *after* the\n   * ancestor is encountered. Since the file system walk happens in\n   * indeterminate order, it's possible that a match will already be added\n   * before its ancestor, if multiple or braced patterns are used.\n   *\n   * For example:\n   *\n   * ```ts\n   * const results = await glob([\n   *   // likely to match first, since it's just a stat\n   *   'a/b/c/d/e/f',\n   *\n   *   // this pattern is more complicated! It must to various readdir()\n   *   // calls and test the results against a regular expression, and that\n   *   // is certainly going to take a little bit longer.\n   *   //\n   *   // So, later on, it encounters a match at 'a/b/c/d/e', but it's too\n   *   // late to ignore a/b/c/d/e/f, because it's already been emitted.\n   *   'a/[bdf]/?/[a-z]/*',\n   * ], { includeChildMatches: false })\n   * ```\n   *\n   * It's best to only set this to `false` if you can be reasonably sure that\n   * no components of the pattern will potentially match one another's file\n   * system descendants, or if the occasional included child entry will not\n   * cause problems.\n   *\n   * @default true\n   */\n  includeChildMatches?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n  withFileTypes: true\n  // string options not relevant if returning Path objects.\n  absolute?: undefined\n  mark?: undefined\n  posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n  withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n  withFileTypes?: undefined\n}\n\nexport type Result =\n  Opts extends GlobOptionsWithFileTypesTrue ? Path\n  : Opts extends GlobOptionsWithFileTypesFalse ? string\n  : Opts extends GlobOptionsWithFileTypesUnset ? string\n  : string | Path\nexport type Results = Result[]\n\nexport type FileTypes =\n  Opts extends GlobOptionsWithFileTypesTrue ? true\n  : Opts extends GlobOptionsWithFileTypesFalse ? false\n  : Opts extends GlobOptionsWithFileTypesUnset ? false\n  : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n  absolute?: boolean\n  cwd: string\n  root?: string\n  dot: boolean\n  dotRelative: boolean\n  follow: boolean\n  ignore?: string | string[] | IgnoreLike\n  magicalBraces: boolean\n  mark?: boolean\n  matchBase: boolean\n  maxDepth: number\n  nobrace: boolean\n  nocase: boolean\n  nodir: boolean\n  noext: boolean\n  noglobstar: boolean\n  pattern: string[]\n  platform: NodeJS.Platform\n  realpath: boolean\n  scurry: PathScurry\n  stat: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape: boolean\n  withFileTypes: FileTypes\n  includeChildMatches: boolean\n\n  /**\n   * The options provided to the constructor.\n   */\n  opts: Opts\n\n  /**\n   * An array of parsed immutable {@link Pattern} objects.\n   */\n  patterns: Pattern[]\n\n  /**\n   * All options are stored as properties on the `Glob` object.\n   *\n   * See {@link GlobOptions} for full options descriptions.\n   *\n   * Note that a previous `Glob` object can be passed as the\n   * `GlobOptions` to another `Glob` instantiation to re-use settings\n   * and caches with a new pattern.\n   *\n   * Traversal functions can be called multiple times to run the walk\n   * again.\n   */\n  constructor(pattern: string | string[], opts: Opts) {\n    /* c8 ignore start */\n    if (!opts) throw new TypeError('glob options required')\n    /* c8 ignore stop */\n    this.withFileTypes = !!opts.withFileTypes as FileTypes\n    this.signal = opts.signal\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.dotRelative = !!opts.dotRelative\n    this.nodir = !!opts.nodir\n    this.mark = !!opts.mark\n    if (!opts.cwd) {\n      this.cwd = ''\n    } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n      opts.cwd = fileURLToPath(opts.cwd)\n    }\n    this.cwd = opts.cwd || ''\n    this.root = opts.root\n    this.magicalBraces = !!opts.magicalBraces\n    this.nobrace = !!opts.nobrace\n    this.noext = !!opts.noext\n    this.realpath = !!opts.realpath\n    this.absolute = opts.absolute\n    this.includeChildMatches = opts.includeChildMatches !== false\n\n    this.noglobstar = !!opts.noglobstar\n    this.matchBase = !!opts.matchBase\n    this.maxDepth =\n      typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n    this.stat = !!opts.stat\n    this.ignore = opts.ignore\n\n    if (this.withFileTypes && this.absolute !== undefined) {\n      throw new Error('cannot set absolute and withFileTypes:true')\n    }\n\n    if (typeof pattern === 'string') {\n      pattern = [pattern]\n    }\n\n    this.windowsPathsNoEscape =\n      !!opts.windowsPathsNoEscape ||\n      (opts as { allowWindowsEscape?: boolean }).allowWindowsEscape ===\n        false\n\n    if (this.windowsPathsNoEscape) {\n      pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n    }\n\n    if (this.matchBase) {\n      if (opts.noglobstar) {\n        throw new TypeError('base matching requires globstar')\n      }\n      pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n    }\n\n    this.pattern = pattern\n\n    this.platform = opts.platform || defaultPlatform\n    this.opts = { ...opts, platform: this.platform }\n    if (opts.scurry) {\n      this.scurry = opts.scurry\n      if (\n        opts.nocase !== undefined &&\n        opts.nocase !== opts.scurry.nocase\n      ) {\n        throw new Error('nocase option contradicts provided scurry option')\n      }\n    } else {\n      const Scurry =\n        opts.platform === 'win32' ? PathScurryWin32\n        : opts.platform === 'darwin' ? PathScurryDarwin\n        : opts.platform ? PathScurryPosix\n        : PathScurry\n      this.scurry = new Scurry(this.cwd, {\n        nocase: opts.nocase,\n        fs: opts.fs,\n      })\n    }\n    this.nocase = this.scurry.nocase\n\n    // If you do nocase:true on a case-sensitive file system, then\n    // we need to use regexps instead of strings for non-magic\n    // path portions, because statting `aBc` won't return results\n    // for the file `AbC` for example.\n    const nocaseMagicOnly =\n      this.platform === 'darwin' || this.platform === 'win32'\n\n    const mmo: MinimatchOptions = {\n      // default nocase based on platform\n      ...opts,\n      dot: this.dot,\n      matchBase: this.matchBase,\n      nobrace: this.nobrace,\n      nocase: this.nocase,\n      nocaseMagicOnly,\n      nocomment: true,\n      noext: this.noext,\n      nonegate: true,\n      optimizationLevel: 2,\n      platform: this.platform,\n      windowsPathsNoEscape: this.windowsPathsNoEscape,\n      debug: !!this.opts.debug,\n    }\n\n    const mms = this.pattern.map(p => new Minimatch(p, mmo))\n    const [matchSet, globParts] = mms.reduce(\n      (set: [MatchSet, GlobParts], m) => {\n        set[0].push(...m.set)\n        set[1].push(...m.globParts)\n        return set\n      },\n      [[], []],\n    )\n    this.patterns = matchSet.map((set, i) => {\n      const g = globParts[i]\n      /* c8 ignore start */\n      if (!g) throw new Error('invalid pattern object')\n      /* c8 ignore stop */\n      return new Pattern(set, g, 0, this.platform)\n    })\n  }\n\n  /**\n   * Returns a Promise that resolves to the results array.\n   */\n  async walk(): Promise>\n  async walk(): Promise<(string | Path)[]> {\n    // Walkers always return array of Path objects, so we just have to\n    // coerce them into the right shape.  It will have already called\n    // realpath() if the option was set to do so, so we know that's cached.\n    // start out knowing the cwd, at least\n    return [\n      ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity ?\n            this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n        includeChildMatches: this.includeChildMatches,\n      }).walk()),\n    ]\n  }\n\n  /**\n   * synchronous {@link Glob.walk}\n   */\n  walkSync(): Results\n  walkSync(): (string | Path)[] {\n    return [\n      ...new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity ?\n            this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n        includeChildMatches: this.includeChildMatches,\n      }).walkSync(),\n    ]\n  }\n\n  /**\n   * Stream results asynchronously.\n   */\n  stream(): Minipass, Result>\n  stream(): Minipass {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity ?\n          this.maxDepth + this.scurry.cwd.depth()\n        : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n      includeChildMatches: this.includeChildMatches,\n    }).stream()\n  }\n\n  /**\n   * Stream results synchronously.\n   */\n  streamSync(): Minipass, Result>\n  streamSync(): Minipass {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity ?\n          this.maxDepth + this.scurry.cwd.depth()\n        : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n      includeChildMatches: this.includeChildMatches,\n    }).streamSync()\n  }\n\n  /**\n   * Default sync iteration function. Returns a Generator that\n   * iterates over the results.\n   */\n  iterateSync(): Generator, void, void> {\n    return this.streamSync()[Symbol.iterator]()\n  }\n  [Symbol.iterator]() {\n    return this.iterateSync()\n  }\n\n  /**\n   * Default async iteration function. Returns an AsyncGenerator that\n   * iterates over the results.\n   */\n  iterate(): AsyncGenerator, void, void> {\n    return this.stream()[Symbol.asyncIterator]()\n  }\n  [Symbol.asyncIterator]() {\n    return this.iterate()\n  }\n}\n", "import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n  pattern: string | string[],\n  options: GlobOptions = {},\n): boolean => {\n  if (!Array.isArray(pattern)) {\n    pattern = [pattern]\n  }\n  for (const p of pattern) {\n    if (new Minimatch(p, options).hasMagic()) return true\n  }\n  return false\n}\n", "import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\nexport { escape, unescape } from 'minimatch'\nexport type {\n  FSOption,\n  Path,\n  WalkOptions,\n  WalkOptionsWithFileTypesTrue,\n  WalkOptionsWithFileTypesUnset,\n} from 'path-scurry'\nexport { Glob } from './glob.js'\nexport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport { Ignore } from './ignore.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesUnset,\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions,\n): Minipass | Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions,\n): Minipass | Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Path[]\nexport function globSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions,\n): Path[] | string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions,\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions,\n): Generator | Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions,\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n  sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n  stream: globStreamSync,\n  iterate: globIterateSync,\n})\n\nexport const glob = Object.assign(glob_, {\n  glob: glob_,\n  globSync,\n  sync,\n  globStream,\n  stream,\n  globStreamSync,\n  streamSync,\n  globIterate,\n  iterate,\n  globIterateSync,\n  iterateSync,\n  Glob,\n  hasMagic,\n  escape,\n  unescape,\n})\nglob.glob = glob\n", "'use strict'\n\nconst { glob } = require('glob')\nconst path = require('path')\n\nconst globify = (pattern) => pattern.split(path.win32.sep).join(path.posix.sep)\nmodule.exports = (path, options) => glob(globify(path), options)\n", "'use strict'\n\nconst fs = require('fs/promises')\nconst contentPath = require('./path')\nconst { hasContent } = require('./read')\n\nmodule.exports = rm\n\nasync function rm (cache, integrity) {\n  const content = await hasContent(cache, integrity)\n  // ~pretty~ sure we can't end up with a content lacking sri, but be safe\n  if (content && content.sri) {\n    await fs.rm(contentPath(cache, content.sri), { recursive: true, force: true })\n    return true\n  } else {\n    return false\n  }\n}\n", "'use strict'\n\nconst { rm } = require('fs/promises')\nconst glob = require('./util/glob.js')\nconst index = require('./entry-index')\nconst memo = require('./memoization')\nconst path = require('path')\nconst rmContent = require('./content/rm')\n\nmodule.exports = entry\nmodule.exports.entry = entry\n\nfunction entry (cache, key, opts) {\n  memo.clearMemoized()\n  return index.delete(cache, key, opts)\n}\n\nmodule.exports.content = content\n\nfunction content (cache, integrity) {\n  memo.clearMemoized()\n  return rmContent(cache, integrity)\n}\n\nmodule.exports.all = all\n\nasync function all (cache) {\n  memo.clearMemoized()\n  const paths = await glob(path.join(cache, '*(content-*|index-*)'), { silent: true, nosort: true })\n  return Promise.all(paths.map((p) => rm(p, { recursive: true, force: true })))\n}\n", "'use strict'\n\nconst {\n  mkdir,\n  readFile,\n  rm,\n  stat,\n  truncate,\n  writeFile,\n} = require('fs/promises')\nconst contentPath = require('./content/path')\nconst fsm = require('fs-minipass')\nconst glob = require('./util/glob.js')\nconst index = require('./entry-index')\nconst path = require('path')\nconst ssri = require('ssri')\n\nconst hasOwnProperty = (obj, key) =>\n  Object.prototype.hasOwnProperty.call(obj, key)\n\nconst verifyOpts = (opts) => ({\n  concurrency: 20,\n  log: { silly () {} },\n  ...opts,\n})\n\nmodule.exports = verify\n\nasync function verify (cache, opts) {\n  opts = verifyOpts(opts)\n  opts.log.silly('verify', 'verifying cache at', cache)\n\n  const steps = [\n    markStartTime,\n    fixPerms,\n    garbageCollect,\n    rebuildIndex,\n    cleanTmp,\n    writeVerifile,\n    markEndTime,\n  ]\n\n  const stats = {}\n  for (const step of steps) {\n    const label = step.name\n    const start = new Date()\n    const s = await step(cache, opts)\n    if (s) {\n      Object.keys(s).forEach((k) => {\n        stats[k] = s[k]\n      })\n    }\n    const end = new Date()\n    if (!stats.runTime) {\n      stats.runTime = {}\n    }\n    stats.runTime[label] = end - start\n  }\n  stats.runTime.total = stats.endTime - stats.startTime\n  opts.log.silly(\n    'verify',\n    'verification finished for',\n    cache,\n    'in',\n    `${stats.runTime.total}ms`\n  )\n  return stats\n}\n\nasync function markStartTime () {\n  return { startTime: new Date() }\n}\n\nasync function markEndTime () {\n  return { endTime: new Date() }\n}\n\nasync function fixPerms (cache, opts) {\n  opts.log.silly('verify', 'fixing cache permissions')\n  await mkdir(cache, { recursive: true })\n  return null\n}\n\n// Implements a naive mark-and-sweep tracing garbage collector.\n//\n// The algorithm is basically as follows:\n// 1. Read (and filter) all index entries (\"pointers\")\n// 2. Mark each integrity value as \"live\"\n// 3. Read entire filesystem tree in `content-vX/` dir\n// 4. If content is live, verify its checksum and delete it if it fails\n// 5. If content is not marked as live, rm it.\n//\nasync function garbageCollect (cache, opts) {\n  opts.log.silly('verify', 'garbage collecting content')\n  const { default: pMap } = await import('p-map')\n  const indexStream = index.lsStream(cache)\n  const liveContent = new Set()\n  indexStream.on('data', (entry) => {\n    if (opts.filter && !opts.filter(entry)) {\n      return\n    }\n\n    // integrity is stringified, re-parse it so we can get each hash\n    const integrity = ssri.parse(entry.integrity)\n    for (const algo in integrity) {\n      liveContent.add(integrity[algo].toString())\n    }\n  })\n  await new Promise((resolve, reject) => {\n    indexStream.on('end', resolve).on('error', reject)\n  })\n  const contentDir = contentPath.contentDir(cache)\n  const files = await glob(path.join(contentDir, '**'), {\n    follow: false,\n    nodir: true,\n    nosort: true,\n  })\n  const stats = {\n    verifiedContent: 0,\n    reclaimedCount: 0,\n    reclaimedSize: 0,\n    badContentCount: 0,\n    keptSize: 0,\n  }\n  await pMap(\n    files,\n    async (f) => {\n      const split = f.split(/[/\\\\]/)\n      const digest = split.slice(split.length - 3).join('')\n      const algo = split[split.length - 4]\n      const integrity = ssri.fromHex(digest, algo)\n      if (liveContent.has(integrity.toString())) {\n        const info = await verifyContent(f, integrity)\n        if (!info.valid) {\n          stats.reclaimedCount++\n          stats.badContentCount++\n          stats.reclaimedSize += info.size\n        } else {\n          stats.verifiedContent++\n          stats.keptSize += info.size\n        }\n      } else {\n        // No entries refer to this content. We can delete.\n        stats.reclaimedCount++\n        const s = await stat(f)\n        await rm(f, { recursive: true, force: true })\n        stats.reclaimedSize += s.size\n      }\n      return stats\n    },\n    { concurrency: opts.concurrency }\n  )\n  return stats\n}\n\nasync function verifyContent (filepath, sri) {\n  const contentInfo = {}\n  try {\n    const { size } = await stat(filepath)\n    contentInfo.size = size\n    contentInfo.valid = true\n    await ssri.checkStream(new fsm.ReadStream(filepath), sri)\n  } catch (err) {\n    if (err.code === 'ENOENT') {\n      return { size: 0, valid: false }\n    }\n    if (err.code !== 'EINTEGRITY') {\n      throw err\n    }\n\n    await rm(filepath, { recursive: true, force: true })\n    contentInfo.valid = false\n  }\n  return contentInfo\n}\n\nasync function rebuildIndex (cache, opts) {\n  opts.log.silly('verify', 'rebuilding index')\n  const { default: pMap } = await import('p-map')\n  const entries = await index.ls(cache)\n  const stats = {\n    missingContent: 0,\n    rejectedEntries: 0,\n    totalEntries: 0,\n  }\n  const buckets = {}\n  for (const k in entries) {\n    /* istanbul ignore else */\n    if (hasOwnProperty(entries, k)) {\n      const hashed = index.hashKey(k)\n      const entry = entries[k]\n      const excluded = opts.filter && !opts.filter(entry)\n      excluded && stats.rejectedEntries++\n      if (buckets[hashed] && !excluded) {\n        buckets[hashed].push(entry)\n      } else if (buckets[hashed] && excluded) {\n        // skip\n      } else if (excluded) {\n        buckets[hashed] = []\n        buckets[hashed]._path = index.bucketPath(cache, k)\n      } else {\n        buckets[hashed] = [entry]\n        buckets[hashed]._path = index.bucketPath(cache, k)\n      }\n    }\n  }\n  await pMap(\n    Object.keys(buckets),\n    (key) => {\n      return rebuildBucket(cache, buckets[key], stats, opts)\n    },\n    { concurrency: opts.concurrency }\n  )\n  return stats\n}\n\nasync function rebuildBucket (cache, bucket, stats) {\n  await truncate(bucket._path)\n  // This needs to be serialized because cacache explicitly\n  // lets very racy bucket conflicts clobber each other.\n  for (const entry of bucket) {\n    const content = contentPath(cache, entry.integrity)\n    try {\n      await stat(content)\n      await index.insert(cache, entry.key, entry.integrity, {\n        metadata: entry.metadata,\n        size: entry.size,\n        time: entry.time,\n      })\n      stats.totalEntries++\n    } catch (err) {\n      if (err.code === 'ENOENT') {\n        stats.rejectedEntries++\n        stats.missingContent++\n      } else {\n        throw err\n      }\n    }\n  }\n}\n\nfunction cleanTmp (cache, opts) {\n  opts.log.silly('verify', 'cleaning tmp directory')\n  return rm(path.join(cache, 'tmp'), { recursive: true, force: true })\n}\n\nasync function writeVerifile (cache, opts) {\n  const verifile = path.join(cache, '_lastverified')\n  opts.log.silly('verify', 'writing verifile to ' + verifile)\n  return writeFile(verifile, `${Date.now()}`)\n}\n\nmodule.exports.lastRun = lastRun\n\nasync function lastRun (cache) {\n  const data = await readFile(path.join(cache, '_lastverified'), { encoding: 'utf8' })\n  return new Date(+data)\n}\n", "'use strict'\n\nconst { withTempDir } = require('@npmcli/fs')\nconst fs = require('fs/promises')\nconst path = require('path')\n\nmodule.exports.mkdir = mktmpdir\n\nasync function mktmpdir (cache, opts = {}) {\n  const { tmpPrefix } = opts\n  const tmpDir = path.join(cache, 'tmp')\n  await fs.mkdir(tmpDir, { recursive: true, owner: 'inherit' })\n  // do not use path.join(), it drops the trailing / if tmpPrefix is unset\n  const target = `${tmpDir}${path.sep}${tmpPrefix || ''}`\n  return fs.mkdtemp(target, { owner: 'inherit' })\n}\n\nmodule.exports.withTmp = withTmp\n\nfunction withTmp (cache, opts, cb) {\n  if (!cb) {\n    cb = opts\n    opts = {}\n  }\n  return withTempDir(path.join(cache, 'tmp'), cb, opts)\n}\n", "'use strict'\n\nconst get = require('./get.js')\nconst put = require('./put.js')\nconst rm = require('./rm.js')\nconst verify = require('./verify.js')\nconst { clearMemoized } = require('./memoization.js')\nconst tmp = require('./util/tmp.js')\nconst index = require('./entry-index.js')\n\nmodule.exports.index = {}\nmodule.exports.index.compact = index.compact\nmodule.exports.index.insert = index.insert\n\nmodule.exports.ls = index.ls\nmodule.exports.ls.stream = index.lsStream\n\nmodule.exports.get = get\nmodule.exports.get.byDigest = get.byDigest\nmodule.exports.get.stream = get.stream\nmodule.exports.get.stream.byDigest = get.stream.byDigest\nmodule.exports.get.copy = get.copy\nmodule.exports.get.copy.byDigest = get.copy.byDigest\nmodule.exports.get.info = get.info\nmodule.exports.get.hasContent = get.hasContent\n\nmodule.exports.put = put\nmodule.exports.put.stream = put.stream\n\nmodule.exports.rm = rm.entry\nmodule.exports.rm.all = rm.all\nmodule.exports.rm.entry = module.exports.rm\nmodule.exports.rm.content = rm.content\n\nmodule.exports.clearMemoized = clearMemoized\n\nmodule.exports.tmp = {}\nmodule.exports.tmp.mkdir = tmp.mkdir\nmodule.exports.tmp.withTmp = tmp.withTmp\n\nmodule.exports.verify = verify\nmodule.exports.verify.lastRun = verify.lastRun\n", "// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n  constructor(reason) {\n    super(`Invalid DateTime: ${reason.toMessage()}`);\n  }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n  constructor(reason) {\n    super(`Invalid Interval: ${reason.toMessage()}`);\n  }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n  constructor(reason) {\n    super(`Invalid Duration: ${reason.toMessage()}`);\n  }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n  constructor(unit) {\n    super(`Invalid unit ${unit}`);\n  }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n  constructor() {\n    super(\"Zone is an abstract class\");\n  }\n}\n", "/**\n * @private\n */\n\nconst n = \"numeric\",\n  s = \"short\",\n  l = \"long\";\n\nexport const DATE_SHORT = {\n  year: n,\n  month: n,\n  day: n,\n};\n\nexport const DATE_MED = {\n  year: n,\n  month: s,\n  day: n,\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n  year: n,\n  month: s,\n  day: n,\n  weekday: s,\n};\n\nexport const DATE_FULL = {\n  year: n,\n  month: l,\n  day: n,\n};\n\nexport const DATE_HUGE = {\n  year: n,\n  month: l,\n  day: n,\n  weekday: l,\n};\n\nexport const TIME_SIMPLE = {\n  hour: n,\n  minute: n,\n};\n\nexport const TIME_WITH_SECONDS = {\n  hour: n,\n  minute: n,\n  second: n,\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n  hour: n,\n  minute: n,\n  second: n,\n  timeZoneName: s,\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n  hour: n,\n  minute: n,\n  second: n,\n  timeZoneName: l,\n};\n\nexport const TIME_24_SIMPLE = {\n  hour: n,\n  minute: n,\n  hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SECONDS = {\n  hour: n,\n  minute: n,\n  second: n,\n  hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SHORT_OFFSET = {\n  hour: n,\n  minute: n,\n  second: n,\n  hourCycle: \"h23\",\n  timeZoneName: s,\n};\n\nexport const TIME_24_WITH_LONG_OFFSET = {\n  hour: n,\n  minute: n,\n  second: n,\n  hourCycle: \"h23\",\n  timeZoneName: l,\n};\n\nexport const DATETIME_SHORT = {\n  year: n,\n  month: n,\n  day: n,\n  hour: n,\n  minute: n,\n};\n\nexport const DATETIME_SHORT_WITH_SECONDS = {\n  year: n,\n  month: n,\n  day: n,\n  hour: n,\n  minute: n,\n  second: n,\n};\n\nexport const DATETIME_MED = {\n  year: n,\n  month: s,\n  day: n,\n  hour: n,\n  minute: n,\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n  year: n,\n  month: s,\n  day: n,\n  hour: n,\n  minute: n,\n  second: n,\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n  year: n,\n  month: s,\n  day: n,\n  weekday: s,\n  hour: n,\n  minute: n,\n};\n\nexport const DATETIME_FULL = {\n  year: n,\n  month: l,\n  day: n,\n  hour: n,\n  minute: n,\n  timeZoneName: s,\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n  year: n,\n  month: l,\n  day: n,\n  hour: n,\n  minute: n,\n  second: n,\n  timeZoneName: s,\n};\n\nexport const DATETIME_HUGE = {\n  year: n,\n  month: l,\n  day: n,\n  weekday: l,\n  hour: n,\n  minute: n,\n  timeZoneName: l,\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n  year: n,\n  month: l,\n  day: n,\n  weekday: l,\n  hour: n,\n  minute: n,\n  second: n,\n  timeZoneName: l,\n};\n", "import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n  /**\n   * The type of zone\n   * @abstract\n   * @type {string}\n   */\n  get type() {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * The name of this zone.\n   * @abstract\n   * @type {string}\n   */\n  get name() {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * The IANA name of this zone.\n   * Defaults to `name` if not overwritten by a subclass.\n   * @abstract\n   * @type {string}\n   */\n  get ianaName() {\n    return this.name;\n  }\n\n  /**\n   * Returns whether the offset is known to be fixed for the whole year.\n   * @abstract\n   * @type {boolean}\n   */\n  get isUniversal() {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * Returns the offset's common name (such as EST) at the specified timestamp\n   * @abstract\n   * @param {number} ts - Epoch milliseconds for which to get the name\n   * @param {Object} opts - Options to affect the format\n   * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n   * @param {string} opts.locale - What locale to return the offset name in.\n   * @return {string}\n   */\n  offsetName(ts, opts) {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * Returns the offset's value as a string\n   * @abstract\n   * @param {number} ts - Epoch milliseconds for which to get the offset\n   * @param {string} format - What style of offset to return.\n   *                          Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n   * @return {string}\n   */\n  formatOffset(ts, format) {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * Return the offset in minutes for this zone at the specified timestamp.\n   * @abstract\n   * @param {number} ts - Epoch milliseconds for which to compute the offset\n   * @return {number}\n   */\n  offset(ts) {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * Return whether this Zone is equal to another zone\n   * @abstract\n   * @param {Zone} otherZone - the zone to compare\n   * @return {boolean}\n   */\n  equals(otherZone) {\n    throw new ZoneIsAbstractError();\n  }\n\n  /**\n   * Return whether this Zone is valid.\n   * @abstract\n   * @type {boolean}\n   */\n  get isValid() {\n    throw new ZoneIsAbstractError();\n  }\n}\n", "import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n  /**\n   * Get a singleton instance of the local zone\n   * @return {SystemZone}\n   */\n  static get instance() {\n    if (singleton === null) {\n      singleton = new SystemZone();\n    }\n    return singleton;\n  }\n\n  /** @override **/\n  get type() {\n    return \"system\";\n  }\n\n  /** @override **/\n  get name() {\n    return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n  }\n\n  /** @override **/\n  get isUniversal() {\n    return false;\n  }\n\n  /** @override **/\n  offsetName(ts, { format, locale }) {\n    return parseZoneInfo(ts, format, locale);\n  }\n\n  /** @override **/\n  formatOffset(ts, format) {\n    return formatOffset(this.offset(ts), format);\n  }\n\n  /** @override **/\n  offset(ts) {\n    return -new Date(ts).getTimezoneOffset();\n  }\n\n  /** @override **/\n  equals(otherZone) {\n    return otherZone.type === \"system\";\n  }\n\n  /** @override **/\n  get isValid() {\n    return true;\n  }\n}\n", "import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n  if (!dtfCache[zone]) {\n    dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n      hour12: false,\n      timeZone: zone,\n      year: \"numeric\",\n      month: \"2-digit\",\n      day: \"2-digit\",\n      hour: \"2-digit\",\n      minute: \"2-digit\",\n      second: \"2-digit\",\n      era: \"short\",\n    });\n  }\n  return dtfCache[zone];\n}\n\nconst typeToPos = {\n  year: 0,\n  month: 1,\n  day: 2,\n  era: 3,\n  hour: 4,\n  minute: 5,\n  second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n  const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n    parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n    [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n  return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n  const formatted = dtf.formatToParts(date);\n  const filled = [];\n  for (let i = 0; i < formatted.length; i++) {\n    const { type, value } = formatted[i];\n    const pos = typeToPos[type];\n\n    if (type === \"era\") {\n      filled[pos] = value;\n    } else if (!isUndefined(pos)) {\n      filled[pos] = parseInt(value, 10);\n    }\n  }\n  return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n  /**\n   * @param {string} name - Zone name\n   * @return {IANAZone}\n   */\n  static create(name) {\n    if (!ianaZoneCache[name]) {\n      ianaZoneCache[name] = new IANAZone(name);\n    }\n    return ianaZoneCache[name];\n  }\n\n  /**\n   * Reset local caches. Should only be necessary in testing scenarios.\n   * @return {void}\n   */\n  static resetCache() {\n    ianaZoneCache = {};\n    dtfCache = {};\n  }\n\n  /**\n   * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n   * @param {string} s - The string to check validity on\n   * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n   * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n   * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead.\n   * @return {boolean}\n   */\n  static isValidSpecifier(s) {\n    return this.isValidZone(s);\n  }\n\n  /**\n   * Returns whether the provided string identifies a real zone\n   * @param {string} zone - The string to check\n   * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n   * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n   * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n   * @return {boolean}\n   */\n  static isValidZone(zone) {\n    if (!zone) {\n      return false;\n    }\n    try {\n      new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n\n  constructor(name) {\n    super();\n    /** @private **/\n    this.zoneName = name;\n    /** @private **/\n    this.valid = IANAZone.isValidZone(name);\n  }\n\n  /**\n   * The type of zone. `iana` for all instances of `IANAZone`.\n   * @override\n   * @type {string}\n   */\n  get type() {\n    return \"iana\";\n  }\n\n  /**\n   * The name of this zone (i.e. the IANA zone name).\n   * @override\n   * @type {string}\n   */\n  get name() {\n    return this.zoneName;\n  }\n\n  /**\n   * Returns whether the offset is known to be fixed for the whole year:\n   * Always returns false for all IANA zones.\n   * @override\n   * @type {boolean}\n   */\n  get isUniversal() {\n    return false;\n  }\n\n  /**\n   * Returns the offset's common name (such as EST) at the specified timestamp\n   * @override\n   * @param {number} ts - Epoch milliseconds for which to get the name\n   * @param {Object} opts - Options to affect the format\n   * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n   * @param {string} opts.locale - What locale to return the offset name in.\n   * @return {string}\n   */\n  offsetName(ts, { format, locale }) {\n    return parseZoneInfo(ts, format, locale, this.name);\n  }\n\n  /**\n   * Returns the offset's value as a string\n   * @override\n   * @param {number} ts - Epoch milliseconds for which to get the offset\n   * @param {string} format - What style of offset to return.\n   *                          Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n   * @return {string}\n   */\n  formatOffset(ts, format) {\n    return formatOffset(this.offset(ts), format);\n  }\n\n  /**\n   * Return the offset in minutes for this zone at the specified timestamp.\n   * @override\n   * @param {number} ts - Epoch milliseconds for which to compute the offset\n   * @return {number}\n   */\n  offset(ts) {\n    const date = new Date(ts);\n\n    if (isNaN(date)) return NaN;\n\n    const dtf = makeDTF(this.name);\n    let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n      ? partsOffset(dtf, date)\n      : hackyOffset(dtf, date);\n\n    if (adOrBc === \"BC\") {\n      year = -Math.abs(year) + 1;\n    }\n\n    // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n    const adjustedHour = hour === 24 ? 0 : hour;\n\n    const asUTC = objToLocalTS({\n      year,\n      month,\n      day,\n      hour: adjustedHour,\n      minute,\n      second,\n      millisecond: 0,\n    });\n\n    let asTS = +date;\n    const over = asTS % 1000;\n    asTS -= over >= 0 ? over : 1000 + over;\n    return (asUTC - asTS) / (60 * 1000);\n  }\n\n  /**\n   * Return whether this Zone is equal to another zone\n   * @override\n   * @param {Zone} otherZone - the zone to compare\n   * @return {boolean}\n   */\n  equals(otherZone) {\n    return otherZone.type === \"iana\" && otherZone.name === this.name;\n  }\n\n  /**\n   * Return whether this Zone is valid.\n   * @override\n   * @type {boolean}\n   */\n  get isValid() {\n    return this.valid;\n  }\n}\n", "import { hasLocaleWeekInfo, hasRelative, padStart, roundTo, validateWeekSettings } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n  const key = JSON.stringify([locString, opts]);\n  let dtf = intlLFCache[key];\n  if (!dtf) {\n    dtf = new Intl.ListFormat(locString, opts);\n    intlLFCache[key] = dtf;\n  }\n  return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n  const key = JSON.stringify([locString, opts]);\n  let dtf = intlDTCache[key];\n  if (!dtf) {\n    dtf = new Intl.DateTimeFormat(locString, opts);\n    intlDTCache[key] = dtf;\n  }\n  return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n  const key = JSON.stringify([locString, opts]);\n  let inf = intlNumCache[key];\n  if (!inf) {\n    inf = new Intl.NumberFormat(locString, opts);\n    intlNumCache[key] = inf;\n  }\n  return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n  const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n  const key = JSON.stringify([locString, cacheKeyOpts]);\n  let inf = intlRelCache[key];\n  if (!inf) {\n    inf = new Intl.RelativeTimeFormat(locString, opts);\n    intlRelCache[key] = inf;\n  }\n  return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n  if (sysLocaleCache) {\n    return sysLocaleCache;\n  } else {\n    sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n    return sysLocaleCache;\n  }\n}\n\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n  let data = weekInfoCache[locString];\n  if (!data) {\n    const locale = new Intl.Locale(locString);\n    // browsers currently implement this as a property, but spec says it should be a getter function\n    data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n    weekInfoCache[locString] = data;\n  }\n  return data;\n}\n\nfunction parseLocaleString(localeStr) {\n  // I really want to avoid writing a BCP 47 parser\n  // see, e.g. https://github.com/wooorm/bcp-47\n  // Instead, we'll do this:\n\n  // a) if the string has no -u extensions, just leave it alone\n  // b) if it does, use Intl to resolve everything\n  // c) if Intl fails, try again without the -u\n\n  // private subtags and unicode subtags have ordering requirements,\n  // and we're not properly parsing this, so just strip out the\n  // private ones if they exist.\n  const xIndex = localeStr.indexOf(\"-x-\");\n  if (xIndex !== -1) {\n    localeStr = localeStr.substring(0, xIndex);\n  }\n\n  const uIndex = localeStr.indexOf(\"-u-\");\n  if (uIndex === -1) {\n    return [localeStr];\n  } else {\n    let options;\n    let selectedStr;\n    try {\n      options = getCachedDTF(localeStr).resolvedOptions();\n      selectedStr = localeStr;\n    } catch (e) {\n      const smaller = localeStr.substring(0, uIndex);\n      options = getCachedDTF(smaller).resolvedOptions();\n      selectedStr = smaller;\n    }\n\n    const { numberingSystem, calendar } = options;\n    return [selectedStr, numberingSystem, calendar];\n  }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n  if (outputCalendar || numberingSystem) {\n    if (!localeStr.includes(\"-u-\")) {\n      localeStr += \"-u\";\n    }\n\n    if (outputCalendar) {\n      localeStr += `-ca-${outputCalendar}`;\n    }\n\n    if (numberingSystem) {\n      localeStr += `-nu-${numberingSystem}`;\n    }\n    return localeStr;\n  } else {\n    return localeStr;\n  }\n}\n\nfunction mapMonths(f) {\n  const ms = [];\n  for (let i = 1; i <= 12; i++) {\n    const dt = DateTime.utc(2009, i, 1);\n    ms.push(f(dt));\n  }\n  return ms;\n}\n\nfunction mapWeekdays(f) {\n  const ms = [];\n  for (let i = 1; i <= 7; i++) {\n    const dt = DateTime.utc(2016, 11, 13 + i);\n    ms.push(f(dt));\n  }\n  return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n  const mode = loc.listingMode();\n\n  if (mode === \"error\") {\n    return null;\n  } else if (mode === \"en\") {\n    return englishFn(length);\n  } else {\n    return intlFn(length);\n  }\n}\n\nfunction supportsFastNumbers(loc) {\n  if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n    return false;\n  } else {\n    return (\n      loc.numberingSystem === \"latn\" ||\n      !loc.locale ||\n      loc.locale.startsWith(\"en\") ||\n      new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n    );\n  }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n  constructor(intl, forceSimple, opts) {\n    this.padTo = opts.padTo || 0;\n    this.floor = opts.floor || false;\n\n    const { padTo, floor, ...otherOpts } = opts;\n\n    if (!forceSimple || Object.keys(otherOpts).length > 0) {\n      const intlOpts = { useGrouping: false, ...opts };\n      if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n      this.inf = getCachedINF(intl, intlOpts);\n    }\n  }\n\n  format(i) {\n    if (this.inf) {\n      const fixed = this.floor ? Math.floor(i) : i;\n      return this.inf.format(fixed);\n    } else {\n      // to match the browser's numberformatter defaults\n      const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n      return padStart(fixed, this.padTo);\n    }\n  }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n  constructor(dt, intl, opts) {\n    this.opts = opts;\n    this.originalZone = undefined;\n\n    let z = undefined;\n    if (this.opts.timeZone) {\n      // Don't apply any workarounds if a timeZone is explicitly provided in opts\n      this.dt = dt;\n    } else if (dt.zone.type === \"fixed\") {\n      // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n      // That is why fixed-offset TZ is set to that unless it is:\n      // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n      // 2. Unsupported by the browser:\n      //    - some do not support Etc/\n      //    - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n      const gmtOffset = -1 * (dt.offset / 60);\n      const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n      if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n        z = offsetZ;\n        this.dt = dt;\n      } else {\n        // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n        // we manually apply the offset and substitute the zone as needed.\n        z = \"UTC\";\n        this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n        this.originalZone = dt.zone;\n      }\n    } else if (dt.zone.type === \"system\") {\n      this.dt = dt;\n    } else if (dt.zone.type === \"iana\") {\n      this.dt = dt;\n      z = dt.zone.name;\n    } else {\n      // Custom zones can have any offset / offsetName so we just manually\n      // apply the offset and substitute the zone as needed.\n      z = \"UTC\";\n      this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n      this.originalZone = dt.zone;\n    }\n\n    const intlOpts = { ...this.opts };\n    intlOpts.timeZone = intlOpts.timeZone || z;\n    this.dtf = getCachedDTF(intl, intlOpts);\n  }\n\n  format() {\n    if (this.originalZone) {\n      // If we have to substitute in the actual zone name, we have to use\n      // formatToParts so that the timezone can be replaced.\n      return this.formatToParts()\n        .map(({ value }) => value)\n        .join(\"\");\n    }\n    return this.dtf.format(this.dt.toJSDate());\n  }\n\n  formatToParts() {\n    const parts = this.dtf.formatToParts(this.dt.toJSDate());\n    if (this.originalZone) {\n      return parts.map((part) => {\n        if (part.type === \"timeZoneName\") {\n          const offsetName = this.originalZone.offsetName(this.dt.ts, {\n            locale: this.dt.locale,\n            format: this.opts.timeZoneName,\n          });\n          return {\n            ...part,\n            value: offsetName,\n          };\n        } else {\n          return part;\n        }\n      });\n    }\n    return parts;\n  }\n\n  resolvedOptions() {\n    return this.dtf.resolvedOptions();\n  }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n  constructor(intl, isEnglish, opts) {\n    this.opts = { style: \"long\", ...opts };\n    if (!isEnglish && hasRelative()) {\n      this.rtf = getCachedRTF(intl, opts);\n    }\n  }\n\n  format(count, unit) {\n    if (this.rtf) {\n      return this.rtf.format(count, unit);\n    } else {\n      return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n    }\n  }\n\n  formatToParts(count, unit) {\n    if (this.rtf) {\n      return this.rtf.formatToParts(count, unit);\n    } else {\n      return [];\n    }\n  }\n}\n\nconst fallbackWeekSettings = {\n  firstDay: 1,\n  minimalDays: 4,\n  weekend: [6, 7],\n};\n\n/**\n * @private\n */\n\nexport default class Locale {\n  static fromOpts(opts) {\n    return Locale.create(\n      opts.locale,\n      opts.numberingSystem,\n      opts.outputCalendar,\n      opts.weekSettings,\n      opts.defaultToEN\n    );\n  }\n\n  static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n    const specifiedLocale = locale || Settings.defaultLocale;\n    // the system locale is useful for human-readable strings but annoying for parsing/formatting known formats\n    const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n    const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n    const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n    const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n    return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n  }\n\n  static resetCache() {\n    sysLocaleCache = null;\n    intlDTCache = {};\n    intlNumCache = {};\n    intlRelCache = {};\n  }\n\n  static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n    return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n  }\n\n  constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n    const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n    this.locale = parsedLocale;\n    this.numberingSystem = numbering || parsedNumberingSystem || null;\n    this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n    this.weekSettings = weekSettings;\n    this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n    this.weekdaysCache = { format: {}, standalone: {} };\n    this.monthsCache = { format: {}, standalone: {} };\n    this.meridiemCache = null;\n    this.eraCache = {};\n\n    this.specifiedLocale = specifiedLocale;\n    this.fastNumbersCached = null;\n  }\n\n  get fastNumbers() {\n    if (this.fastNumbersCached == null) {\n      this.fastNumbersCached = supportsFastNumbers(this);\n    }\n\n    return this.fastNumbersCached;\n  }\n\n  listingMode() {\n    const isActuallyEn = this.isEnglish();\n    const hasNoWeirdness =\n      (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n      (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n    return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n  }\n\n  clone(alts) {\n    if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n      return this;\n    } else {\n      return Locale.create(\n        alts.locale || this.specifiedLocale,\n        alts.numberingSystem || this.numberingSystem,\n        alts.outputCalendar || this.outputCalendar,\n        validateWeekSettings(alts.weekSettings) || this.weekSettings,\n        alts.defaultToEN || false\n      );\n    }\n  }\n\n  redefaultToEN(alts = {}) {\n    return this.clone({ ...alts, defaultToEN: true });\n  }\n\n  redefaultToSystem(alts = {}) {\n    return this.clone({ ...alts, defaultToEN: false });\n  }\n\n  months(length, format = false) {\n    return listStuff(this, length, English.months, () => {\n      const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n        formatStr = format ? \"format\" : \"standalone\";\n      if (!this.monthsCache[formatStr][length]) {\n        this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n      }\n      return this.monthsCache[formatStr][length];\n    });\n  }\n\n  weekdays(length, format = false) {\n    return listStuff(this, length, English.weekdays, () => {\n      const intl = format\n          ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n          : { weekday: length },\n        formatStr = format ? \"format\" : \"standalone\";\n      if (!this.weekdaysCache[formatStr][length]) {\n        this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n          this.extract(dt, intl, \"weekday\")\n        );\n      }\n      return this.weekdaysCache[formatStr][length];\n    });\n  }\n\n  meridiems() {\n    return listStuff(\n      this,\n      undefined,\n      () => English.meridiems,\n      () => {\n        // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n        // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n        if (!this.meridiemCache) {\n          const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n          this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n            (dt) => this.extract(dt, intl, \"dayperiod\")\n          );\n        }\n\n        return this.meridiemCache;\n      }\n    );\n  }\n\n  eras(length) {\n    return listStuff(this, length, English.eras, () => {\n      const intl = { era: length };\n\n      // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n      // to definitely enumerate them.\n      if (!this.eraCache[length]) {\n        this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n          this.extract(dt, intl, \"era\")\n        );\n      }\n\n      return this.eraCache[length];\n    });\n  }\n\n  extract(dt, intlOpts, field) {\n    const df = this.dtFormatter(dt, intlOpts),\n      results = df.formatToParts(),\n      matching = results.find((m) => m.type.toLowerCase() === field);\n    return matching ? matching.value : null;\n  }\n\n  numberFormatter(opts = {}) {\n    // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n    // (in contrast, the rest of the condition is used heavily)\n    return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n  }\n\n  dtFormatter(dt, intlOpts = {}) {\n    return new PolyDateFormatter(dt, this.intl, intlOpts);\n  }\n\n  relFormatter(opts = {}) {\n    return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n  }\n\n  listFormatter(opts = {}) {\n    return getCachedLF(this.intl, opts);\n  }\n\n  isEnglish() {\n    return (\n      this.locale === \"en\" ||\n      this.locale.toLowerCase() === \"en-us\" ||\n      new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n    );\n  }\n\n  getWeekSettings() {\n    if (this.weekSettings) {\n      return this.weekSettings;\n    } else if (!hasLocaleWeekInfo()) {\n      return fallbackWeekSettings;\n    } else {\n      return getCachedWeekInfo(this.locale);\n    }\n  }\n\n  getStartOfWeek() {\n    return this.getWeekSettings().firstDay;\n  }\n\n  getMinDaysInFirstWeek() {\n    return this.getWeekSettings().minimalDays;\n  }\n\n  getWeekendDays() {\n    return this.getWeekSettings().weekend;\n  }\n\n  equals(other) {\n    return (\n      this.locale === other.locale &&\n      this.numberingSystem === other.numberingSystem &&\n      this.outputCalendar === other.outputCalendar\n    );\n  }\n\n  toString() {\n    return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`;\n  }\n}\n", "import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n  /**\n   * Get a singleton instance of UTC\n   * @return {FixedOffsetZone}\n   */\n  static get utcInstance() {\n    if (singleton === null) {\n      singleton = new FixedOffsetZone(0);\n    }\n    return singleton;\n  }\n\n  /**\n   * Get an instance with a specified offset\n   * @param {number} offset - The offset in minutes\n   * @return {FixedOffsetZone}\n   */\n  static instance(offset) {\n    return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n  }\n\n  /**\n   * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n   * @param {string} s - The offset string to parse\n   * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n   * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n   * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n   * @return {FixedOffsetZone}\n   */\n  static parseSpecifier(s) {\n    if (s) {\n      const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n      if (r) {\n        return new FixedOffsetZone(signedOffset(r[1], r[2]));\n      }\n    }\n    return null;\n  }\n\n  constructor(offset) {\n    super();\n    /** @private **/\n    this.fixed = offset;\n  }\n\n  /**\n   * The type of zone. `fixed` for all instances of `FixedOffsetZone`.\n   * @override\n   * @type {string}\n   */\n  get type() {\n    return \"fixed\";\n  }\n\n  /**\n   * The name of this zone.\n   * All fixed zones' names always start with \"UTC\" (plus optional offset)\n   * @override\n   * @type {string}\n   */\n  get name() {\n    return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n  }\n\n  /**\n   * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn`\n   *\n   * @override\n   * @type {string}\n   */\n  get ianaName() {\n    if (this.fixed === 0) {\n      return \"Etc/UTC\";\n    } else {\n      return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n    }\n  }\n\n  /**\n   * Returns the offset's common name at the specified timestamp.\n   *\n   * For fixed offset zones this equals to the zone name.\n   * @override\n   */\n  offsetName() {\n    return this.name;\n  }\n\n  /**\n   * Returns the offset's value as a string\n   * @override\n   * @param {number} ts - Epoch milliseconds for which to get the offset\n   * @param {string} format - What style of offset to return.\n   *                          Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n   * @return {string}\n   */\n  formatOffset(ts, format) {\n    return formatOffset(this.fixed, format);\n  }\n\n  /**\n   * Returns whether the offset is known to be fixed for the whole year:\n   * Always returns true for all fixed offset zones.\n   * @override\n   * @type {boolean}\n   */\n  get isUniversal() {\n    return true;\n  }\n\n  /**\n   * Return the offset in minutes for this zone at the specified timestamp.\n   *\n   * For fixed offset zones, this is constant and does not depend on a timestamp.\n   * @override\n   * @return {number}\n   */\n  offset() {\n    return this.fixed;\n  }\n\n  /**\n   * Return whether this Zone is equal to another zone (i.e. also fixed and same offset)\n   * @override\n   * @param {Zone} otherZone - the zone to compare\n   * @return {boolean}\n   */\n  equals(otherZone) {\n    return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n  }\n\n  /**\n   * Return whether this Zone is valid:\n   * All fixed offset zones are valid.\n   * @override\n   * @type {boolean}\n   */\n  get isValid() {\n    return true;\n  }\n}\n", "import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n  constructor(zoneName) {\n    super();\n    /**  @private */\n    this.zoneName = zoneName;\n  }\n\n  /** @override **/\n  get type() {\n    return \"invalid\";\n  }\n\n  /** @override **/\n  get name() {\n    return this.zoneName;\n  }\n\n  /** @override **/\n  get isUniversal() {\n    return false;\n  }\n\n  /** @override **/\n  offsetName() {\n    return null;\n  }\n\n  /** @override **/\n  formatOffset() {\n    return \"\";\n  }\n\n  /** @override **/\n  offset() {\n    return NaN;\n  }\n\n  /** @override **/\n  equals() {\n    return false;\n  }\n\n  /** @override **/\n  get isValid() {\n    return false;\n  }\n}\n", "/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\nimport SystemZone from \"../zones/systemZone.js\";\n\nexport function normalizeZone(input, defaultZone) {\n  let offset;\n  if (isUndefined(input) || input === null) {\n    return defaultZone;\n  } else if (input instanceof Zone) {\n    return input;\n  } else if (isString(input)) {\n    const lowered = input.toLowerCase();\n    if (lowered === \"default\") return defaultZone;\n    else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n    else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n    else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n  } else if (isNumber(input)) {\n    return FixedOffsetZone.instance(input);\n  } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n    // This is dumb, but the instanceof check above doesn't seem to really work\n    // so we're duck checking it\n    return input;\n  } else {\n    return new InvalidZone(input);\n  }\n}\n", "const numberingSystems = {\n  arab: \"[\\u0660-\\u0669]\",\n  arabext: \"[\\u06F0-\\u06F9]\",\n  bali: \"[\\u1B50-\\u1B59]\",\n  beng: \"[\\u09E6-\\u09EF]\",\n  deva: \"[\\u0966-\\u096F]\",\n  fullwide: \"[\\uFF10-\\uFF19]\",\n  gujr: \"[\\u0AE6-\\u0AEF]\",\n  hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n  khmr: \"[\\u17E0-\\u17E9]\",\n  knda: \"[\\u0CE6-\\u0CEF]\",\n  laoo: \"[\\u0ED0-\\u0ED9]\",\n  limb: \"[\\u1946-\\u194F]\",\n  mlym: \"[\\u0D66-\\u0D6F]\",\n  mong: \"[\\u1810-\\u1819]\",\n  mymr: \"[\\u1040-\\u1049]\",\n  orya: \"[\\u0B66-\\u0B6F]\",\n  tamldec: \"[\\u0BE6-\\u0BEF]\",\n  telu: \"[\\u0C66-\\u0C6F]\",\n  thai: \"[\\u0E50-\\u0E59]\",\n  tibt: \"[\\u0F20-\\u0F29]\",\n  latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n  arab: [1632, 1641],\n  arabext: [1776, 1785],\n  bali: [6992, 7001],\n  beng: [2534, 2543],\n  deva: [2406, 2415],\n  fullwide: [65296, 65303],\n  gujr: [2790, 2799],\n  khmr: [6112, 6121],\n  knda: [3302, 3311],\n  laoo: [3792, 3801],\n  limb: [6470, 6479],\n  mlym: [3430, 3439],\n  mong: [6160, 6169],\n  mymr: [4160, 4169],\n  orya: [2918, 2927],\n  tamldec: [3046, 3055],\n  telu: [3174, 3183],\n  thai: [3664, 3673],\n  tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n  let value = parseInt(str, 10);\n  if (isNaN(value)) {\n    value = \"\";\n    for (let i = 0; i < str.length; i++) {\n      const code = str.charCodeAt(i);\n\n      if (str[i].search(numberingSystems.hanidec) !== -1) {\n        value += hanidecChars.indexOf(str[i]);\n      } else {\n        for (const key in numberingSystemsUTF16) {\n          const [min, max] = numberingSystemsUTF16[key];\n          if (code >= min && code <= max) {\n            value += code - min;\n          }\n        }\n      }\n    }\n    return parseInt(value, 10);\n  } else {\n    return value;\n  }\n}\n\n// cache of {numberingSystem: {append: regex}}\nlet digitRegexCache = {};\nexport function resetDigitRegexCache() {\n  digitRegexCache = {};\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n  const ns = numberingSystem || \"latn\";\n\n  if (!digitRegexCache[ns]) {\n    digitRegexCache[ns] = {};\n  }\n  if (!digitRegexCache[ns][append]) {\n    digitRegexCache[ns][append] = new RegExp(`${numberingSystems[ns]}${append}`);\n  }\n\n  return digitRegexCache[ns][append];\n}\n", "import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport DateTime from \"./datetime.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport { validateWeekSettings } from \"./impl/util.js\";\nimport { resetDigitRegexCache } from \"./impl/digits.js\";\n\nlet now = () => Date.now(),\n  defaultZone = \"system\",\n  defaultLocale = null,\n  defaultNumberingSystem = null,\n  defaultOutputCalendar = null,\n  twoDigitCutoffYear = 60,\n  throwOnInvalid,\n  defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n  /**\n   * Get the callback for returning the current timestamp.\n   * @type {function}\n   */\n  static get now() {\n    return now;\n  }\n\n  /**\n   * Set the callback for returning the current timestamp.\n   * The function should return a number, which will be interpreted as an Epoch millisecond count\n   * @type {function}\n   * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n   * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n   */\n  static set now(n) {\n    now = n;\n  }\n\n  /**\n   * Set the default time zone to create DateTimes in. Does not affect existing instances.\n   * Use the value \"system\" to reset this value to the system's time zone.\n   * @type {string}\n   */\n  static set defaultZone(zone) {\n    defaultZone = zone;\n  }\n\n  /**\n   * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n   * The default value is the system's time zone (the one set on the machine that runs this code).\n   * @type {Zone}\n   */\n  static get defaultZone() {\n    return normalizeZone(defaultZone, SystemZone.instance);\n  }\n\n  /**\n   * Get the default locale to create DateTimes with. Does not affect existing instances.\n   * @type {string}\n   */\n  static get defaultLocale() {\n    return defaultLocale;\n  }\n\n  /**\n   * Set the default locale to create DateTimes with. Does not affect existing instances.\n   * @type {string}\n   */\n  static set defaultLocale(locale) {\n    defaultLocale = locale;\n  }\n\n  /**\n   * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n   * @type {string}\n   */\n  static get defaultNumberingSystem() {\n    return defaultNumberingSystem;\n  }\n\n  /**\n   * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n   * @type {string}\n   */\n  static set defaultNumberingSystem(numberingSystem) {\n    defaultNumberingSystem = numberingSystem;\n  }\n\n  /**\n   * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n   * @type {string}\n   */\n  static get defaultOutputCalendar() {\n    return defaultOutputCalendar;\n  }\n\n  /**\n   * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n   * @type {string}\n   */\n  static set defaultOutputCalendar(outputCalendar) {\n    defaultOutputCalendar = outputCalendar;\n  }\n\n  /**\n   * @typedef {Object} WeekSettings\n   * @property {number} firstDay\n   * @property {number} minimalDays\n   * @property {number[]} weekend\n   */\n\n  /**\n   * @return {WeekSettings|null}\n   */\n  static get defaultWeekSettings() {\n    return defaultWeekSettings;\n  }\n\n  /**\n   * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n   * how many days are required in the first week of a year.\n   * Does not affect existing instances.\n   *\n   * @param {WeekSettings|null} weekSettings\n   */\n  static set defaultWeekSettings(weekSettings) {\n    defaultWeekSettings = validateWeekSettings(weekSettings);\n  }\n\n  /**\n   * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n   * @type {number}\n   */\n  static get twoDigitCutoffYear() {\n    return twoDigitCutoffYear;\n  }\n\n  /**\n   * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n   * @type {number}\n   * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century\n   * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century\n   * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950\n   * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n   * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n   */\n  static set twoDigitCutoffYear(cutoffYear) {\n    twoDigitCutoffYear = cutoffYear % 100;\n  }\n\n  /**\n   * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n   * @type {boolean}\n   */\n  static get throwOnInvalid() {\n    return throwOnInvalid;\n  }\n\n  /**\n   * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n   * @type {boolean}\n   */\n  static set throwOnInvalid(t) {\n    throwOnInvalid = t;\n  }\n\n  /**\n   * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n   * @return {void}\n   */\n  static resetCaches() {\n    Locale.resetCache();\n    IANAZone.resetCache();\n    DateTime.resetCache();\n    resetDigitRegexCache();\n  }\n}\n", "export default class Invalid {\n  constructor(reason, explanation) {\n    this.reason = reason;\n    this.explanation = explanation;\n  }\n\n  toMessage() {\n    if (this.explanation) {\n      return `${this.reason}: ${this.explanation}`;\n    } else {\n      return this.reason;\n    }\n  }\n}\n", "import {\n  integerBetween,\n  isLeapYear,\n  timeObject,\n  daysInYear,\n  daysInMonth,\n  weeksInWeekYear,\n  isInteger,\n  isUndefined,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n  leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n  return new Invalid(\n    \"unit out of range\",\n    `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n  );\n}\n\nexport function dayOfWeek(year, month, day) {\n  const d = new Date(Date.UTC(year, month - 1, day));\n\n  if (year < 100 && year >= 0) {\n    d.setUTCFullYear(d.getUTCFullYear() - 1900);\n  }\n\n  const js = d.getUTCDay();\n\n  return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n  return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n  const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n    month0 = table.findIndex((i) => i < ordinal),\n    day = ordinal - table[month0];\n  return { month: month0 + 1, day };\n}\n\nexport function isoWeekdayToLocal(isoWeekday, startOfWeek) {\n  return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n  const { year, month, day } = gregObj,\n    ordinal = computeOrdinal(year, month, day),\n    weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n  let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n    weekYear;\n\n  if (weekNumber < 1) {\n    weekYear = year - 1;\n    weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n  } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n    weekYear = year + 1;\n    weekNumber = 1;\n  } else {\n    weekYear = year;\n  }\n\n  return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n  const { weekYear, weekNumber, weekday } = weekData,\n    weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n    yearInDays = daysInYear(weekYear);\n\n  let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n    year;\n\n  if (ordinal < 1) {\n    year = weekYear - 1;\n    ordinal += daysInYear(year);\n  } else if (ordinal > yearInDays) {\n    year = weekYear + 1;\n    ordinal -= daysInYear(weekYear);\n  } else {\n    year = weekYear;\n  }\n\n  const { month, day } = uncomputeOrdinal(year, ordinal);\n  return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n  const { year, month, day } = gregData;\n  const ordinal = computeOrdinal(year, month, day);\n  return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n  const { year, ordinal } = ordinalData;\n  const { month, day } = uncomputeOrdinal(year, ordinal);\n  return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nexport function usesLocalWeekValues(obj, loc) {\n  const hasLocaleWeekData =\n    !isUndefined(obj.localWeekday) ||\n    !isUndefined(obj.localWeekNumber) ||\n    !isUndefined(obj.localWeekYear);\n  if (hasLocaleWeekData) {\n    const hasIsoWeekData =\n      !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n    if (hasIsoWeekData) {\n      throw new ConflictingSpecificationError(\n        \"Cannot mix locale-based week fields with ISO-based week fields\"\n      );\n    }\n    if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n    if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n    if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n    delete obj.localWeekday;\n    delete obj.localWeekNumber;\n    delete obj.localWeekYear;\n    return {\n      minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n      startOfWeek: loc.getStartOfWeek(),\n    };\n  } else {\n    return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n  }\n}\n\nexport function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n  const validYear = isInteger(obj.weekYear),\n    validWeek = integerBetween(\n      obj.weekNumber,\n      1,\n      weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n    ),\n    validWeekday = integerBetween(obj.weekday, 1, 7);\n\n  if (!validYear) {\n    return unitOutOfRange(\"weekYear\", obj.weekYear);\n  } else if (!validWeek) {\n    return unitOutOfRange(\"week\", obj.weekNumber);\n  } else if (!validWeekday) {\n    return unitOutOfRange(\"weekday\", obj.weekday);\n  } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n  const validYear = isInteger(obj.year),\n    validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n  if (!validYear) {\n    return unitOutOfRange(\"year\", obj.year);\n  } else if (!validOrdinal) {\n    return unitOutOfRange(\"ordinal\", obj.ordinal);\n  } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n  const validYear = isInteger(obj.year),\n    validMonth = integerBetween(obj.month, 1, 12),\n    validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n  if (!validYear) {\n    return unitOutOfRange(\"year\", obj.year);\n  } else if (!validMonth) {\n    return unitOutOfRange(\"month\", obj.month);\n  } else if (!validDay) {\n    return unitOutOfRange(\"day\", obj.day);\n  } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n  const { hour, minute, second, millisecond } = obj;\n  const validHour =\n      integerBetween(hour, 0, 23) ||\n      (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n    validMinute = integerBetween(minute, 0, 59),\n    validSecond = integerBetween(second, 0, 59),\n    validMillisecond = integerBetween(millisecond, 0, 999);\n\n  if (!validHour) {\n    return unitOutOfRange(\"hour\", hour);\n  } else if (!validMinute) {\n    return unitOutOfRange(\"minute\", minute);\n  } else if (!validSecond) {\n    return unitOutOfRange(\"second\", second);\n  } else if (!validMillisecond) {\n    return unitOutOfRange(\"millisecond\", millisecond);\n  } else return false;\n}\n", "/*\n  This is just a junk drawer, containing anything used across multiple classes.\n  Because Luxon is small(ish), this should stay small and we won't worry about splitting\n  it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\nimport Settings from \"../settings.js\";\nimport { dayOfWeek, isoWeekdayToLocal } from \"./conversions.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n  return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n  return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n  return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n  return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n  return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n  try {\n    return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n  } catch (e) {\n    return false;\n  }\n}\n\nexport function hasLocaleWeekInfo() {\n  try {\n    return (\n      typeof Intl !== \"undefined\" &&\n      !!Intl.Locale &&\n      (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n    );\n  } catch (e) {\n    return false;\n  }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n  return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n  if (arr.length === 0) {\n    return undefined;\n  }\n  return arr.reduce((best, next) => {\n    const pair = [by(next), next];\n    if (!best) {\n      return pair;\n    } else if (compare(best[0], pair[0]) === best[0]) {\n      return best;\n    } else {\n      return pair;\n    }\n  }, null)[1];\n}\n\nexport function pick(obj, keys) {\n  return keys.reduce((a, k) => {\n    a[k] = obj[k];\n    return a;\n  }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function validateWeekSettings(settings) {\n  if (settings == null) {\n    return null;\n  } else if (typeof settings !== \"object\") {\n    throw new InvalidArgumentError(\"Week settings must be an object\");\n  } else {\n    if (\n      !integerBetween(settings.firstDay, 1, 7) ||\n      !integerBetween(settings.minimalDays, 1, 7) ||\n      !Array.isArray(settings.weekend) ||\n      settings.weekend.some((v) => !integerBetween(v, 1, 7))\n    ) {\n      throw new InvalidArgumentError(\"Invalid week settings\");\n    }\n    return {\n      firstDay: settings.firstDay,\n      minimalDays: settings.minimalDays,\n      weekend: Array.from(settings.weekend),\n    };\n  }\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n  return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n  return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n  const isNeg = input < 0;\n  let padded;\n  if (isNeg) {\n    padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n  } else {\n    padded = (\"\" + input).padStart(n, \"0\");\n  }\n  return padded;\n}\n\nexport function parseInteger(string) {\n  if (isUndefined(string) || string === null || string === \"\") {\n    return undefined;\n  } else {\n    return parseInt(string, 10);\n  }\n}\n\nexport function parseFloating(string) {\n  if (isUndefined(string) || string === null || string === \"\") {\n    return undefined;\n  } else {\n    return parseFloat(string);\n  }\n}\n\nexport function parseMillis(fraction) {\n  // Return undefined (instead of 0) in these cases, where fraction is not set\n  if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n    return undefined;\n  } else {\n    const f = parseFloat(\"0.\" + fraction) * 1000;\n    return Math.floor(f);\n  }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n  const factor = 10 ** digits,\n    rounder = towardZero ? Math.trunc : Math.round;\n  return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n  return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n  return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n  const modMonth = floorMod(month - 1, 12) + 1,\n    modYear = year + (month - modMonth) / 12;\n\n  if (modMonth === 2) {\n    return isLeapYear(modYear) ? 29 : 28;\n  } else {\n    return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n  }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n  let d = Date.UTC(\n    obj.year,\n    obj.month - 1,\n    obj.day,\n    obj.hour,\n    obj.minute,\n    obj.second,\n    obj.millisecond\n  );\n\n  // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n  if (obj.year < 100 && obj.year >= 0) {\n    d = new Date(d);\n    // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n    // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n    // the calculations done by Date.UTC are using year 2000 - which is incorrect\n    d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n  }\n  return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n  const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n  return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nexport function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n  const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n  const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n  return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nexport function untruncateYear(year) {\n  if (year > 99) {\n    return year;\n  } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n  const date = new Date(ts),\n    intlOpts = {\n      hourCycle: \"h23\",\n      year: \"numeric\",\n      month: \"2-digit\",\n      day: \"2-digit\",\n      hour: \"2-digit\",\n      minute: \"2-digit\",\n    };\n\n  if (timeZone) {\n    intlOpts.timeZone = timeZone;\n  }\n\n  const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n  const parsed = new Intl.DateTimeFormat(locale, modified)\n    .formatToParts(date)\n    .find((m) => m.type.toLowerCase() === \"timezonename\");\n  return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n  let offHour = parseInt(offHourStr, 10);\n\n  // don't || this because we want to preserve -0\n  if (Number.isNaN(offHour)) {\n    offHour = 0;\n  }\n\n  const offMin = parseInt(offMinuteStr, 10) || 0,\n    offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n  return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n  const numericValue = Number(value);\n  if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n    throw new InvalidArgumentError(`Invalid unit value ${value}`);\n  return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n  const normalized = {};\n  for (const u in obj) {\n    if (hasOwnProperty(obj, u)) {\n      const v = obj[u];\n      if (v === undefined || v === null) continue;\n      normalized[normalizer(u)] = asNumber(v);\n    }\n  }\n  return normalized;\n}\n\n/**\n * Returns the offset's value as a string\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n *                          Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\nexport function formatOffset(offset, format) {\n  const hours = Math.trunc(Math.abs(offset / 60)),\n    minutes = Math.trunc(Math.abs(offset % 60)),\n    sign = offset >= 0 ? \"+\" : \"-\";\n\n  switch (format) {\n    case \"short\":\n      return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n    case \"narrow\":\n      return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n    case \"techie\":\n      return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n    default:\n      throw new RangeError(`Value format ${format} is out of range for property format`);\n  }\n}\n\nexport function timeObject(obj) {\n  return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n", "import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n  return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n  \"January\",\n  \"February\",\n  \"March\",\n  \"April\",\n  \"May\",\n  \"June\",\n  \"July\",\n  \"August\",\n  \"September\",\n  \"October\",\n  \"November\",\n  \"December\",\n];\n\nexport const monthsShort = [\n  \"Jan\",\n  \"Feb\",\n  \"Mar\",\n  \"Apr\",\n  \"May\",\n  \"Jun\",\n  \"Jul\",\n  \"Aug\",\n  \"Sep\",\n  \"Oct\",\n  \"Nov\",\n  \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n  switch (length) {\n    case \"narrow\":\n      return [...monthsNarrow];\n    case \"short\":\n      return [...monthsShort];\n    case \"long\":\n      return [...monthsLong];\n    case \"numeric\":\n      return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n    case \"2-digit\":\n      return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n    default:\n      return null;\n  }\n}\n\nexport const weekdaysLong = [\n  \"Monday\",\n  \"Tuesday\",\n  \"Wednesday\",\n  \"Thursday\",\n  \"Friday\",\n  \"Saturday\",\n  \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n  switch (length) {\n    case \"narrow\":\n      return [...weekdaysNarrow];\n    case \"short\":\n      return [...weekdaysShort];\n    case \"long\":\n      return [...weekdaysLong];\n    case \"numeric\":\n      return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n    default:\n      return null;\n  }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n  switch (length) {\n    case \"narrow\":\n      return [...erasNarrow];\n    case \"short\":\n      return [...erasShort];\n    case \"long\":\n      return [...erasLong];\n    default:\n      return null;\n  }\n}\n\nexport function meridiemForDateTime(dt) {\n  return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n  return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n  return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n  return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n  const units = {\n    years: [\"year\", \"yr.\"],\n    quarters: [\"quarter\", \"qtr.\"],\n    months: [\"month\", \"mo.\"],\n    weeks: [\"week\", \"wk.\"],\n    days: [\"day\", \"day\", \"days\"],\n    hours: [\"hour\", \"hr.\"],\n    minutes: [\"minute\", \"min.\"],\n    seconds: [\"second\", \"sec.\"],\n  };\n\n  const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n  if (numeric === \"auto\" && lastable) {\n    const isDay = unit === \"days\";\n    switch (count) {\n      case 1:\n        return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n      case -1:\n        return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n      case 0:\n        return isDay ? \"today\" : `this ${units[unit][0]}`;\n      default: // fall through\n    }\n  }\n\n  const isInPast = Object.is(count, -0) || count < 0,\n    fmtValue = Math.abs(count),\n    singular = fmtValue === 1,\n    lilUnits = units[unit],\n    fmtUnit = narrow\n      ? singular\n        ? lilUnits[1]\n        : lilUnits[2] || lilUnits[1]\n      : singular\n      ? units[unit][0]\n      : unit;\n  return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n  // these all have the offsets removed because we don't have access to them\n  // without all the intl stuff this is backfilling\n  const filtered = pick(knownFormat, [\n      \"weekday\",\n      \"era\",\n      \"year\",\n      \"month\",\n      \"day\",\n      \"hour\",\n      \"minute\",\n      \"second\",\n      \"timeZoneName\",\n      \"hourCycle\",\n    ]),\n    key = stringify(filtered),\n    dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n  switch (key) {\n    case stringify(Formats.DATE_SHORT):\n      return \"M/d/yyyy\";\n    case stringify(Formats.DATE_MED):\n      return \"LLL d, yyyy\";\n    case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n      return \"EEE, LLL d, yyyy\";\n    case stringify(Formats.DATE_FULL):\n      return \"LLLL d, yyyy\";\n    case stringify(Formats.DATE_HUGE):\n      return \"EEEE, LLLL d, yyyy\";\n    case stringify(Formats.TIME_SIMPLE):\n      return \"h:mm a\";\n    case stringify(Formats.TIME_WITH_SECONDS):\n      return \"h:mm:ss a\";\n    case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n      return \"h:mm a\";\n    case stringify(Formats.TIME_WITH_LONG_OFFSET):\n      return \"h:mm a\";\n    case stringify(Formats.TIME_24_SIMPLE):\n      return \"HH:mm\";\n    case stringify(Formats.TIME_24_WITH_SECONDS):\n      return \"HH:mm:ss\";\n    case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n      return \"HH:mm\";\n    case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n      return \"HH:mm\";\n    case stringify(Formats.DATETIME_SHORT):\n      return \"M/d/yyyy, h:mm a\";\n    case stringify(Formats.DATETIME_MED):\n      return \"LLL d, yyyy, h:mm a\";\n    case stringify(Formats.DATETIME_FULL):\n      return \"LLLL d, yyyy, h:mm a\";\n    case stringify(Formats.DATETIME_HUGE):\n      return dateTimeHuge;\n    case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n      return \"M/d/yyyy, h:mm:ss a\";\n    case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n      return \"LLL d, yyyy, h:mm:ss a\";\n    case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n      return \"EEE, d LLL yyyy, h:mm a\";\n    case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n      return \"LLLL d, yyyy, h:mm:ss a\";\n    case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n      return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n    default:\n      return dateTimeHuge;\n  }\n}\n", "import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n  let s = \"\";\n  for (const token of splits) {\n    if (token.literal) {\n      s += token.val;\n    } else {\n      s += tokenToString(token.val);\n    }\n  }\n  return s;\n}\n\nconst macroTokenToFormatOpts = {\n  D: Formats.DATE_SHORT,\n  DD: Formats.DATE_MED,\n  DDD: Formats.DATE_FULL,\n  DDDD: Formats.DATE_HUGE,\n  t: Formats.TIME_SIMPLE,\n  tt: Formats.TIME_WITH_SECONDS,\n  ttt: Formats.TIME_WITH_SHORT_OFFSET,\n  tttt: Formats.TIME_WITH_LONG_OFFSET,\n  T: Formats.TIME_24_SIMPLE,\n  TT: Formats.TIME_24_WITH_SECONDS,\n  TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n  TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n  f: Formats.DATETIME_SHORT,\n  ff: Formats.DATETIME_MED,\n  fff: Formats.DATETIME_FULL,\n  ffff: Formats.DATETIME_HUGE,\n  F: Formats.DATETIME_SHORT_WITH_SECONDS,\n  FF: Formats.DATETIME_MED_WITH_SECONDS,\n  FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n  FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n  static create(locale, opts = {}) {\n    return new Formatter(locale, opts);\n  }\n\n  static parseFormat(fmt) {\n    // white-space is always considered a literal in user-provided formats\n    // the \" \" token has a special meaning (see unitForToken)\n\n    let current = null,\n      currentFull = \"\",\n      bracketed = false;\n    const splits = [];\n    for (let i = 0; i < fmt.length; i++) {\n      const c = fmt.charAt(i);\n      if (c === \"'\") {\n        if (currentFull.length > 0) {\n          splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n        }\n        current = null;\n        currentFull = \"\";\n        bracketed = !bracketed;\n      } else if (bracketed) {\n        currentFull += c;\n      } else if (c === current) {\n        currentFull += c;\n      } else {\n        if (currentFull.length > 0) {\n          splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n        }\n        currentFull = c;\n        current = c;\n      }\n    }\n\n    if (currentFull.length > 0) {\n      splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n    }\n\n    return splits;\n  }\n\n  static macroTokenToFormatOpts(token) {\n    return macroTokenToFormatOpts[token];\n  }\n\n  constructor(locale, formatOpts) {\n    this.opts = formatOpts;\n    this.loc = locale;\n    this.systemLoc = null;\n  }\n\n  formatWithSystemDefault(dt, opts) {\n    if (this.systemLoc === null) {\n      this.systemLoc = this.loc.redefaultToSystem();\n    }\n    const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n    return df.format();\n  }\n\n  dtFormatter(dt, opts = {}) {\n    return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n  }\n\n  formatDateTime(dt, opts) {\n    return this.dtFormatter(dt, opts).format();\n  }\n\n  formatDateTimeParts(dt, opts) {\n    return this.dtFormatter(dt, opts).formatToParts();\n  }\n\n  formatInterval(interval, opts) {\n    const df = this.dtFormatter(interval.start, opts);\n    return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n  }\n\n  resolvedOptions(dt, opts) {\n    return this.dtFormatter(dt, opts).resolvedOptions();\n  }\n\n  num(n, p = 0) {\n    // we get some perf out of doing this here, annoyingly\n    if (this.opts.forceSimple) {\n      return padStart(n, p);\n    }\n\n    const opts = { ...this.opts };\n\n    if (p > 0) {\n      opts.padTo = p;\n    }\n\n    return this.loc.numberFormatter(opts).format(n);\n  }\n\n  formatDateTimeFromString(dt, fmt) {\n    const knownEnglish = this.loc.listingMode() === \"en\",\n      useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n      string = (opts, extract) => this.loc.extract(dt, opts, extract),\n      formatOffset = (opts) => {\n        if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n          return \"Z\";\n        }\n\n        return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n      },\n      meridiem = () =>\n        knownEnglish\n          ? English.meridiemForDateTime(dt)\n          : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n      month = (length, standalone) =>\n        knownEnglish\n          ? English.monthForDateTime(dt, length)\n          : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n      weekday = (length, standalone) =>\n        knownEnglish\n          ? English.weekdayForDateTime(dt, length)\n          : string(\n              standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n              \"weekday\"\n            ),\n      maybeMacro = (token) => {\n        const formatOpts = Formatter.macroTokenToFormatOpts(token);\n        if (formatOpts) {\n          return this.formatWithSystemDefault(dt, formatOpts);\n        } else {\n          return token;\n        }\n      },\n      era = (length) =>\n        knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n      tokenToString = (token) => {\n        // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n        switch (token) {\n          // ms\n          case \"S\":\n            return this.num(dt.millisecond);\n          case \"u\":\n          // falls through\n          case \"SSS\":\n            return this.num(dt.millisecond, 3);\n          // seconds\n          case \"s\":\n            return this.num(dt.second);\n          case \"ss\":\n            return this.num(dt.second, 2);\n          // fractional seconds\n          case \"uu\":\n            return this.num(Math.floor(dt.millisecond / 10), 2);\n          case \"uuu\":\n            return this.num(Math.floor(dt.millisecond / 100));\n          // minutes\n          case \"m\":\n            return this.num(dt.minute);\n          case \"mm\":\n            return this.num(dt.minute, 2);\n          // hours\n          case \"h\":\n            return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n          case \"hh\":\n            return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n          case \"H\":\n            return this.num(dt.hour);\n          case \"HH\":\n            return this.num(dt.hour, 2);\n          // offset\n          case \"Z\":\n            // like +6\n            return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n          case \"ZZ\":\n            // like +06:00\n            return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n          case \"ZZZ\":\n            // like +0600\n            return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n          case \"ZZZZ\":\n            // like EST\n            return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n          case \"ZZZZZ\":\n            // like Eastern Standard Time\n            return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n          // zone\n          case \"z\":\n            // like America/New_York\n            return dt.zoneName;\n          // meridiems\n          case \"a\":\n            return meridiem();\n          // dates\n          case \"d\":\n            return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n          case \"dd\":\n            return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n          // weekdays - standalone\n          case \"c\":\n            // like 1\n            return this.num(dt.weekday);\n          case \"ccc\":\n            // like 'Tues'\n            return weekday(\"short\", true);\n          case \"cccc\":\n            // like 'Tuesday'\n            return weekday(\"long\", true);\n          case \"ccccc\":\n            // like 'T'\n            return weekday(\"narrow\", true);\n          // weekdays - format\n          case \"E\":\n            // like 1\n            return this.num(dt.weekday);\n          case \"EEE\":\n            // like 'Tues'\n            return weekday(\"short\", false);\n          case \"EEEE\":\n            // like 'Tuesday'\n            return weekday(\"long\", false);\n          case \"EEEEE\":\n            // like 'T'\n            return weekday(\"narrow\", false);\n          // months - standalone\n          case \"L\":\n            // like 1\n            return useDateTimeFormatter\n              ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n              : this.num(dt.month);\n          case \"LL\":\n            // like 01, doesn't seem to work\n            return useDateTimeFormatter\n              ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n              : this.num(dt.month, 2);\n          case \"LLL\":\n            // like Jan\n            return month(\"short\", true);\n          case \"LLLL\":\n            // like January\n            return month(\"long\", true);\n          case \"LLLLL\":\n            // like J\n            return month(\"narrow\", true);\n          // months - format\n          case \"M\":\n            // like 1\n            return useDateTimeFormatter\n              ? string({ month: \"numeric\" }, \"month\")\n              : this.num(dt.month);\n          case \"MM\":\n            // like 01\n            return useDateTimeFormatter\n              ? string({ month: \"2-digit\" }, \"month\")\n              : this.num(dt.month, 2);\n          case \"MMM\":\n            // like Jan\n            return month(\"short\", false);\n          case \"MMMM\":\n            // like January\n            return month(\"long\", false);\n          case \"MMMMM\":\n            // like J\n            return month(\"narrow\", false);\n          // years\n          case \"y\":\n            // like 2014\n            return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n          case \"yy\":\n            // like 14\n            return useDateTimeFormatter\n              ? string({ year: \"2-digit\" }, \"year\")\n              : this.num(dt.year.toString().slice(-2), 2);\n          case \"yyyy\":\n            // like 0012\n            return useDateTimeFormatter\n              ? string({ year: \"numeric\" }, \"year\")\n              : this.num(dt.year, 4);\n          case \"yyyyyy\":\n            // like 000012\n            return useDateTimeFormatter\n              ? string({ year: \"numeric\" }, \"year\")\n              : this.num(dt.year, 6);\n          // eras\n          case \"G\":\n            // like AD\n            return era(\"short\");\n          case \"GG\":\n            // like Anno Domini\n            return era(\"long\");\n          case \"GGGGG\":\n            return era(\"narrow\");\n          case \"kk\":\n            return this.num(dt.weekYear.toString().slice(-2), 2);\n          case \"kkkk\":\n            return this.num(dt.weekYear, 4);\n          case \"W\":\n            return this.num(dt.weekNumber);\n          case \"WW\":\n            return this.num(dt.weekNumber, 2);\n          case \"n\":\n            return this.num(dt.localWeekNumber);\n          case \"nn\":\n            return this.num(dt.localWeekNumber, 2);\n          case \"ii\":\n            return this.num(dt.localWeekYear.toString().slice(-2), 2);\n          case \"iiii\":\n            return this.num(dt.localWeekYear, 4);\n          case \"o\":\n            return this.num(dt.ordinal);\n          case \"ooo\":\n            return this.num(dt.ordinal, 3);\n          case \"q\":\n            // like 1\n            return this.num(dt.quarter);\n          case \"qq\":\n            // like 01\n            return this.num(dt.quarter, 2);\n          case \"X\":\n            return this.num(Math.floor(dt.ts / 1000));\n          case \"x\":\n            return this.num(dt.ts);\n          default:\n            return maybeMacro(token);\n        }\n      };\n\n    return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n  }\n\n  formatDurationFromString(dur, fmt) {\n    const tokenToField = (token) => {\n        switch (token[0]) {\n          case \"S\":\n            return \"millisecond\";\n          case \"s\":\n            return \"second\";\n          case \"m\":\n            return \"minute\";\n          case \"h\":\n            return \"hour\";\n          case \"d\":\n            return \"day\";\n          case \"w\":\n            return \"week\";\n          case \"M\":\n            return \"month\";\n          case \"y\":\n            return \"year\";\n          default:\n            return null;\n        }\n      },\n      tokenToString = (lildur) => (token) => {\n        const mapped = tokenToField(token);\n        if (mapped) {\n          return this.num(lildur.get(mapped), token.length);\n        } else {\n          return token;\n        }\n      },\n      tokens = Formatter.parseFormat(fmt),\n      realTokens = tokens.reduce(\n        (found, { literal, val }) => (literal ? found : found.concat(val)),\n        []\n      ),\n      collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n    return stringifyTokens(tokens, tokenToString(collapsed));\n  }\n}\n", "import {\n  untruncateYear,\n  signedOffset,\n  parseInteger,\n  parseMillis,\n  isUndefined,\n  parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n  const full = regexes.reduce((f, r) => f + r.source, \"\");\n  return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n  return (m) =>\n    extractors\n      .reduce(\n        ([mergedVals, mergedZone, cursor], ex) => {\n          const [val, zone, next] = ex(m, cursor);\n          return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n        },\n        [{}, null, 1]\n      )\n      .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n  if (s == null) {\n    return [null, null];\n  }\n\n  for (const [regex, extractor] of patterns) {\n    const m = regex.exec(s);\n    if (m) {\n      return extractor(m);\n    }\n  }\n  return [null, null];\n}\n\nfunction simpleParse(...keys) {\n  return (match, cursor) => {\n    const ret = {};\n    let i;\n\n    for (i = 0; i < keys.length; i++) {\n      ret[keys[i]] = parseInteger(match[cursor + i]);\n    }\n    return [ret, null, cursor + i];\n  };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n  `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n  const m = match[pos];\n  return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n  const item = {\n    year: int(match, cursor),\n    month: int(match, cursor + 1, 1),\n    day: int(match, cursor + 2, 1),\n  };\n\n  return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n  const item = {\n    hours: int(match, cursor, 0),\n    minutes: int(match, cursor + 1, 0),\n    seconds: int(match, cursor + 2, 0),\n    milliseconds: parseMillis(match[cursor + 3]),\n  };\n\n  return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n  const local = !match[cursor] && !match[cursor + 1],\n    fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n    zone = local ? null : FixedOffsetZone.instance(fullOffset);\n  return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n  const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n  return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n  /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n  const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n    match;\n\n  const hasNegativePrefix = s[0] === \"-\";\n  const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n  const maybeNegate = (num, force = false) =>\n    num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n  return [\n    {\n      years: maybeNegate(parseFloating(yearStr)),\n      months: maybeNegate(parseFloating(monthStr)),\n      weeks: maybeNegate(parseFloating(weekStr)),\n      days: maybeNegate(parseFloating(dayStr)),\n      hours: maybeNegate(parseFloating(hourStr)),\n      minutes: maybeNegate(parseFloating(minuteStr)),\n      seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n      milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n    },\n  ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n  GMT: 0,\n  EDT: -4 * 60,\n  EST: -5 * 60,\n  CDT: -5 * 60,\n  CST: -6 * 60,\n  MDT: -6 * 60,\n  MST: -7 * 60,\n  PDT: -7 * 60,\n  PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n  const result = {\n    year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n    month: English.monthsShort.indexOf(monthStr) + 1,\n    day: parseInteger(dayStr),\n    hour: parseInteger(hourStr),\n    minute: parseInteger(minuteStr),\n  };\n\n  if (secondStr) result.second = parseInteger(secondStr);\n  if (weekdayStr) {\n    result.weekday =\n      weekdayStr.length > 3\n        ? English.weekdaysLong.indexOf(weekdayStr) + 1\n        : English.weekdaysShort.indexOf(weekdayStr) + 1;\n  }\n\n  return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n  /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n  const [\n      ,\n      weekdayStr,\n      dayStr,\n      monthStr,\n      yearStr,\n      hourStr,\n      minuteStr,\n      secondStr,\n      obsOffset,\n      milOffset,\n      offHourStr,\n      offMinuteStr,\n    ] = match,\n    result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n  let offset;\n  if (obsOffset) {\n    offset = obsOffsets[obsOffset];\n  } else if (milOffset) {\n    offset = 0;\n  } else {\n    offset = signedOffset(offHourStr, offMinuteStr);\n  }\n\n  return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n  // Remove comments and folding whitespace and replace multiple-spaces with a single space\n  return s\n    .replace(/\\([^()]*\\)|[\\n\\t]/g, \" \")\n    .replace(/(\\s\\s+)/g, \" \")\n    .trim();\n}\n\n// http date\n\nconst rfc1123 =\n    /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n  rfc850 =\n    /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n  ascii =\n    /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n  const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n    result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n  return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n  const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n    result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n  return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n  extractISOYmd,\n  extractISOTime,\n  extractISOOffset,\n  extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n  extractISOWeekData,\n  extractISOTime,\n  extractISOOffset,\n  extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n  extractISOOrdinalData,\n  extractISOTime,\n  extractISOOffset,\n  extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n  extractISOTime,\n  extractISOOffset,\n  extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n  return parse(\n    s,\n    [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n    [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n    [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n    [isoTimeCombinedRegex, extractISOTimeAndOffset]\n  );\n}\n\nexport function parseRFC2822Date(s) {\n  return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n  return parse(\n    s,\n    [rfc1123, extractRFC1123Or850],\n    [rfc850, extractRFC1123Or850],\n    [ascii, extractASCII]\n  );\n}\n\nexport function parseISODuration(s) {\n  return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n  return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n  extractISOTime,\n  extractISOOffset,\n  extractIANAZone\n);\n\nexport function parseSQL(s) {\n  return parse(\n    s,\n    [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n    [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n  );\n}\n", "import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n  asNumber,\n  hasOwnProperty,\n  isNumber,\n  isUndefined,\n  normalizeObject,\n  roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\nimport DateTime from \"./datetime.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n    weeks: {\n      days: 7,\n      hours: 7 * 24,\n      minutes: 7 * 24 * 60,\n      seconds: 7 * 24 * 60 * 60,\n      milliseconds: 7 * 24 * 60 * 60 * 1000,\n    },\n    days: {\n      hours: 24,\n      minutes: 24 * 60,\n      seconds: 24 * 60 * 60,\n      milliseconds: 24 * 60 * 60 * 1000,\n    },\n    hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n    minutes: { seconds: 60, milliseconds: 60 * 1000 },\n    seconds: { milliseconds: 1000 },\n  },\n  casualMatrix = {\n    years: {\n      quarters: 4,\n      months: 12,\n      weeks: 52,\n      days: 365,\n      hours: 365 * 24,\n      minutes: 365 * 24 * 60,\n      seconds: 365 * 24 * 60 * 60,\n      milliseconds: 365 * 24 * 60 * 60 * 1000,\n    },\n    quarters: {\n      months: 3,\n      weeks: 13,\n      days: 91,\n      hours: 91 * 24,\n      minutes: 91 * 24 * 60,\n      seconds: 91 * 24 * 60 * 60,\n      milliseconds: 91 * 24 * 60 * 60 * 1000,\n    },\n    months: {\n      weeks: 4,\n      days: 30,\n      hours: 30 * 24,\n      minutes: 30 * 24 * 60,\n      seconds: 30 * 24 * 60 * 60,\n      milliseconds: 30 * 24 * 60 * 60 * 1000,\n    },\n\n    ...lowOrderMatrix,\n  },\n  daysInYearAccurate = 146097.0 / 400,\n  daysInMonthAccurate = 146097.0 / 4800,\n  accurateMatrix = {\n    years: {\n      quarters: 4,\n      months: 12,\n      weeks: daysInYearAccurate / 7,\n      days: daysInYearAccurate,\n      hours: daysInYearAccurate * 24,\n      minutes: daysInYearAccurate * 24 * 60,\n      seconds: daysInYearAccurate * 24 * 60 * 60,\n      milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n    },\n    quarters: {\n      months: 3,\n      weeks: daysInYearAccurate / 28,\n      days: daysInYearAccurate / 4,\n      hours: (daysInYearAccurate * 24) / 4,\n      minutes: (daysInYearAccurate * 24 * 60) / 4,\n      seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n      milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n    },\n    months: {\n      weeks: daysInMonthAccurate / 7,\n      days: daysInMonthAccurate,\n      hours: daysInMonthAccurate * 24,\n      minutes: daysInMonthAccurate * 24 * 60,\n      seconds: daysInMonthAccurate * 24 * 60 * 60,\n      milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n    },\n    ...lowOrderMatrix,\n  };\n\n// units ordered by size\nconst orderedUnits = [\n  \"years\",\n  \"quarters\",\n  \"months\",\n  \"weeks\",\n  \"days\",\n  \"hours\",\n  \"minutes\",\n  \"seconds\",\n  \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n  // deep merge for vals\n  const conf = {\n    values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n    loc: dur.loc.clone(alts.loc),\n    conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n    matrix: alts.matrix || dur.matrix,\n  };\n  return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n  let sum = vals.milliseconds ?? 0;\n  for (const unit of reverseUnits.slice(1)) {\n    if (vals[unit]) {\n      sum += vals[unit] * matrix[unit][\"milliseconds\"];\n    }\n  }\n  return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n  // the logic below assumes the overall value of the duration is positive\n  // if this is not the case, factor is used to make it so\n  const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n  orderedUnits.reduceRight((previous, current) => {\n    if (!isUndefined(vals[current])) {\n      if (previous) {\n        const previousVal = vals[previous] * factor;\n        const conv = matrix[current][previous];\n\n        // if (previousVal < 0):\n        // lower order unit is negative (e.g. { years: 2, days: -2 })\n        // normalize this by reducing the higher order unit by the appropriate amount\n        // and increasing the lower order unit\n        // this can never make the higher order unit negative, because this function only operates\n        // on positive durations, so the amount of time represented by the lower order unit cannot\n        // be larger than the higher order unit\n        // else:\n        // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n        // in this case we attempt to convert as much as possible from the lower order unit into\n        // the higher order one\n        //\n        // Math.floor takes care of both of these cases, rounding away from 0\n        // if previousVal < 0 it makes the absolute value larger\n        // if previousVal >= it makes the absolute value smaller\n        const rollUp = Math.floor(previousVal / conv);\n        vals[current] += rollUp * factor;\n        vals[previous] -= rollUp * conv * factor;\n      }\n      return current;\n    } else {\n      return previous;\n    }\n  }, null);\n\n  // try to convert any decimals into smaller units if possible\n  // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n  orderedUnits.reduce((previous, current) => {\n    if (!isUndefined(vals[current])) {\n      if (previous) {\n        const fraction = vals[previous] % 1;\n        vals[previous] -= fraction;\n        vals[current] += fraction * matrix[previous][current];\n      }\n      return current;\n    } else {\n      return previous;\n    }\n  }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n  const newVals = {};\n  for (const [key, value] of Object.entries(vals)) {\n    if (value !== 0) {\n      newVals[key] = value;\n    }\n  }\n  return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See  {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n  /**\n   * @private\n   */\n  constructor(config) {\n    const accurate = config.conversionAccuracy === \"longterm\" || false;\n    let matrix = accurate ? accurateMatrix : casualMatrix;\n\n    if (config.matrix) {\n      matrix = config.matrix;\n    }\n\n    /**\n     * @access private\n     */\n    this.values = config.values;\n    /**\n     * @access private\n     */\n    this.loc = config.loc || Locale.create();\n    /**\n     * @access private\n     */\n    this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n    /**\n     * @access private\n     */\n    this.invalid = config.invalid || null;\n    /**\n     * @access private\n     */\n    this.matrix = matrix;\n    /**\n     * @access private\n     */\n    this.isLuxonDuration = true;\n  }\n\n  /**\n   * Create Duration from a number of milliseconds.\n   * @param {number} count of milliseconds\n   * @param {Object} opts - options for parsing\n   * @param {string} [opts.locale='en-US'] - the locale to use\n   * @param {string} opts.numberingSystem - the numbering system to use\n   * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n   * @return {Duration}\n   */\n  static fromMillis(count, opts) {\n    return Duration.fromObject({ milliseconds: count }, opts);\n  }\n\n  /**\n   * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n   * If this object is empty then a zero milliseconds duration is returned.\n   * @param {Object} obj - the object to create the DateTime from\n   * @param {number} obj.years\n   * @param {number} obj.quarters\n   * @param {number} obj.months\n   * @param {number} obj.weeks\n   * @param {number} obj.days\n   * @param {number} obj.hours\n   * @param {number} obj.minutes\n   * @param {number} obj.seconds\n   * @param {number} obj.milliseconds\n   * @param {Object} [opts=[]] - options for creating this Duration\n   * @param {string} [opts.locale='en-US'] - the locale to use\n   * @param {string} opts.numberingSystem - the numbering system to use\n   * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n   * @param {string} [opts.matrix=Object] - the custom conversion system to use\n   * @return {Duration}\n   */\n  static fromObject(obj, opts = {}) {\n    if (obj == null || typeof obj !== \"object\") {\n      throw new InvalidArgumentError(\n        `Duration.fromObject: argument expected to be an object, got ${\n          obj === null ? \"null\" : typeof obj\n        }`\n      );\n    }\n\n    return new Duration({\n      values: normalizeObject(obj, Duration.normalizeUnit),\n      loc: Locale.fromObject(opts),\n      conversionAccuracy: opts.conversionAccuracy,\n      matrix: opts.matrix,\n    });\n  }\n\n  /**\n   * Create a Duration from DurationLike.\n   *\n   * @param {Object | number | Duration} durationLike\n   * One of:\n   * - object with keys like 'years' and 'hours'.\n   * - number representing milliseconds\n   * - Duration instance\n   * @return {Duration}\n   */\n  static fromDurationLike(durationLike) {\n    if (isNumber(durationLike)) {\n      return Duration.fromMillis(durationLike);\n    } else if (Duration.isDuration(durationLike)) {\n      return durationLike;\n    } else if (typeof durationLike === \"object\") {\n      return Duration.fromObject(durationLike);\n    } else {\n      throw new InvalidArgumentError(\n        `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n      );\n    }\n  }\n\n  /**\n   * Create a Duration from an ISO 8601 duration string.\n   * @param {string} text - text to parse\n   * @param {Object} opts - options for parsing\n   * @param {string} [opts.locale='en-US'] - the locale to use\n   * @param {string} opts.numberingSystem - the numbering system to use\n   * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n   * @param {string} [opts.matrix=Object] - the preset conversion system to use\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n   * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n   * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n   * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n   * @return {Duration}\n   */\n  static fromISO(text, opts) {\n    const [parsed] = parseISODuration(text);\n    if (parsed) {\n      return Duration.fromObject(parsed, opts);\n    } else {\n      return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n    }\n  }\n\n  /**\n   * Create a Duration from an ISO 8601 time string.\n   * @param {string} text - text to parse\n   * @param {Object} opts - options for parsing\n   * @param {string} [opts.locale='en-US'] - the locale to use\n   * @param {string} opts.numberingSystem - the numbering system to use\n   * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n   * @param {string} [opts.matrix=Object] - the conversion system to use\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n   * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n   * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n   * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n   * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n   * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n   * @return {Duration}\n   */\n  static fromISOTime(text, opts) {\n    const [parsed] = parseISOTimeOnly(text);\n    if (parsed) {\n      return Duration.fromObject(parsed, opts);\n    } else {\n      return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n    }\n  }\n\n  /**\n   * Create an invalid Duration.\n   * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n   * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n   * @return {Duration}\n   */\n  static invalid(reason, explanation = null) {\n    if (!reason) {\n      throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n    }\n\n    const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n    if (Settings.throwOnInvalid) {\n      throw new InvalidDurationError(invalid);\n    } else {\n      return new Duration({ invalid });\n    }\n  }\n\n  /**\n   * @private\n   */\n  static normalizeUnit(unit) {\n    const normalized = {\n      year: \"years\",\n      years: \"years\",\n      quarter: \"quarters\",\n      quarters: \"quarters\",\n      month: \"months\",\n      months: \"months\",\n      week: \"weeks\",\n      weeks: \"weeks\",\n      day: \"days\",\n      days: \"days\",\n      hour: \"hours\",\n      hours: \"hours\",\n      minute: \"minutes\",\n      minutes: \"minutes\",\n      second: \"seconds\",\n      seconds: \"seconds\",\n      millisecond: \"milliseconds\",\n      milliseconds: \"milliseconds\",\n    }[unit ? unit.toLowerCase() : unit];\n\n    if (!normalized) throw new InvalidUnitError(unit);\n\n    return normalized;\n  }\n\n  /**\n   * Check if an object is a Duration. Works across context boundaries\n   * @param {object} o\n   * @return {boolean}\n   */\n  static isDuration(o) {\n    return (o && o.isLuxonDuration) || false;\n  }\n\n  /**\n   * Get  the locale of a Duration, such 'en-GB'\n   * @type {string}\n   */\n  get locale() {\n    return this.isValid ? this.loc.locale : null;\n  }\n\n  /**\n   * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n   *\n   * @type {string}\n   */\n  get numberingSystem() {\n    return this.isValid ? this.loc.numberingSystem : null;\n  }\n\n  /**\n   * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n   * * `S` for milliseconds\n   * * `s` for seconds\n   * * `m` for minutes\n   * * `h` for hours\n   * * `d` for days\n   * * `w` for weeks\n   * * `M` for months\n   * * `y` for years\n   * Notes:\n   * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n   * * Tokens can be escaped by wrapping with single quotes.\n   * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n   * @param {string} fmt - the format string\n   * @param {Object} opts - options\n   * @param {boolean} [opts.floor=true] - floor numerical values\n   * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n   * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n   * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n   * @return {string}\n   */\n  toFormat(fmt, opts = {}) {\n    // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n    const fmtOpts = {\n      ...opts,\n      floor: opts.round !== false && opts.floor !== false,\n    };\n    return this.isValid\n      ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n      : INVALID;\n  }\n\n  /**\n   * Returns a string representation of a Duration with all units included.\n   * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n   * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n   * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n   * @example\n   * ```js\n   * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n   * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n   * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n   * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n   * ```\n   */\n  toHuman(opts = {}) {\n    if (!this.isValid) return INVALID;\n\n    const l = orderedUnits\n      .map((unit) => {\n        const val = this.values[unit];\n        if (isUndefined(val)) {\n          return null;\n        }\n        return this.loc\n          .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n          .format(val);\n      })\n      .filter((n) => n);\n\n    return this.loc\n      .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n      .format(l);\n  }\n\n  /**\n   * Returns a JavaScript object with this Duration's values.\n   * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n   * @return {Object}\n   */\n  toObject() {\n    if (!this.isValid) return {};\n    return { ...this.values };\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this Duration.\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n   * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n   * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n   * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n   * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n   * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n   * @return {string}\n   */\n  toISO() {\n    // we could use the formatter, but this is an easier way to get the minimum string\n    if (!this.isValid) return null;\n\n    let s = \"P\";\n    if (this.years !== 0) s += this.years + \"Y\";\n    if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n    if (this.weeks !== 0) s += this.weeks + \"W\";\n    if (this.days !== 0) s += this.days + \"D\";\n    if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n      s += \"T\";\n    if (this.hours !== 0) s += this.hours + \"H\";\n    if (this.minutes !== 0) s += this.minutes + \"M\";\n    if (this.seconds !== 0 || this.milliseconds !== 0)\n      // this will handle \"floating point madness\" by removing extra decimal places\n      // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n      s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n    if (s === \"P\") s += \"T0S\";\n    return s;\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n   * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n   * @param {Object} opts - options\n   * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n   * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n   * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n   * @param {string} [opts.format='extended'] - choose between the basic and extended format\n   * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n   * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n   * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n   * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n   * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n   * @return {string}\n   */\n  toISOTime(opts = {}) {\n    if (!this.isValid) return null;\n\n    const millis = this.toMillis();\n    if (millis < 0 || millis >= 86400000) return null;\n\n    opts = {\n      suppressMilliseconds: false,\n      suppressSeconds: false,\n      includePrefix: false,\n      format: \"extended\",\n      ...opts,\n      includeOffset: false,\n    };\n\n    const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n    return dateTime.toISOTime(opts);\n  }\n\n  /**\n   * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n   * @return {string}\n   */\n  toJSON() {\n    return this.toISO();\n  }\n\n  /**\n   * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n   * @return {string}\n   */\n  toString() {\n    return this.toISO();\n  }\n\n  /**\n   * Returns a string representation of this Duration appropriate for the REPL.\n   * @return {string}\n   */\n  [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n    if (this.isValid) {\n      return `Duration { values: ${JSON.stringify(this.values)} }`;\n    } else {\n      return `Duration { Invalid, reason: ${this.invalidReason} }`;\n    }\n  }\n\n  /**\n   * Returns an milliseconds value of this Duration.\n   * @return {number}\n   */\n  toMillis() {\n    if (!this.isValid) return NaN;\n\n    return durationToMillis(this.matrix, this.values);\n  }\n\n  /**\n   * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n   * @return {number}\n   */\n  valueOf() {\n    return this.toMillis();\n  }\n\n  /**\n   * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n   * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n   * @return {Duration}\n   */\n  plus(duration) {\n    if (!this.isValid) return this;\n\n    const dur = Duration.fromDurationLike(duration),\n      result = {};\n\n    for (const k of orderedUnits) {\n      if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n        result[k] = dur.get(k) + this.get(k);\n      }\n    }\n\n    return clone(this, { values: result }, true);\n  }\n\n  /**\n   * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n   * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n   * @return {Duration}\n   */\n  minus(duration) {\n    if (!this.isValid) return this;\n\n    const dur = Duration.fromDurationLike(duration);\n    return this.plus(dur.negate());\n  }\n\n  /**\n   * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n   * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n   * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n   * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n   * @return {Duration}\n   */\n  mapUnits(fn) {\n    if (!this.isValid) return this;\n    const result = {};\n    for (const k of Object.keys(this.values)) {\n      result[k] = asNumber(fn(this.values[k], k));\n    }\n    return clone(this, { values: result }, true);\n  }\n\n  /**\n   * Get the value of unit.\n   * @param {string} unit - a unit such as 'minute' or 'day'\n   * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n   * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n   * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n   * @return {number}\n   */\n  get(unit) {\n    return this[Duration.normalizeUnit(unit)];\n  }\n\n  /**\n   * \"Set\" the values of specified units. Return a newly-constructed Duration.\n   * @param {Object} values - a mapping of units to numbers\n   * @example dur.set({ years: 2017 })\n   * @example dur.set({ hours: 8, minutes: 30 })\n   * @return {Duration}\n   */\n  set(values) {\n    if (!this.isValid) return this;\n\n    const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n    return clone(this, { values: mixed });\n  }\n\n  /**\n   * \"Set\" the locale and/or numberingSystem.  Returns a newly-constructed Duration.\n   * @example dur.reconfigure({ locale: 'en-GB' })\n   * @return {Duration}\n   */\n  reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n    const loc = this.loc.clone({ locale, numberingSystem });\n    const opts = { loc, matrix, conversionAccuracy };\n    return clone(this, opts);\n  }\n\n  /**\n   * Return the length of the duration in the specified unit.\n   * @param {string} unit - a unit such as 'minutes' or 'days'\n   * @example Duration.fromObject({years: 1}).as('days') //=> 365\n   * @example Duration.fromObject({years: 1}).as('months') //=> 12\n   * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n   * @return {number}\n   */\n  as(unit) {\n    return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n  }\n\n  /**\n   * Reduce this Duration to its canonical representation in its current units.\n   * Assuming the overall value of the Duration is positive, this means:\n   * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n   * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n   *   the overall value would be negative, see third example)\n   * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n   *\n   * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n   * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n   * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n   * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n   * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n   * @return {Duration}\n   */\n  normalize() {\n    if (!this.isValid) return this;\n    const vals = this.toObject();\n    normalizeValues(this.matrix, vals);\n    return clone(this, { values: vals }, true);\n  }\n\n  /**\n   * Rescale units to its largest representation\n   * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n   * @return {Duration}\n   */\n  rescale() {\n    if (!this.isValid) return this;\n    const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n    return clone(this, { values: vals }, true);\n  }\n\n  /**\n   * Convert this Duration into its representation in a different set of units.\n   * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n   * @return {Duration}\n   */\n  shiftTo(...units) {\n    if (!this.isValid) return this;\n\n    if (units.length === 0) {\n      return this;\n    }\n\n    units = units.map((u) => Duration.normalizeUnit(u));\n\n    const built = {},\n      accumulated = {},\n      vals = this.toObject();\n    let lastUnit;\n\n    for (const k of orderedUnits) {\n      if (units.indexOf(k) >= 0) {\n        lastUnit = k;\n\n        let own = 0;\n\n        // anything we haven't boiled down yet should get boiled to this unit\n        for (const ak in accumulated) {\n          own += this.matrix[ak][k] * accumulated[ak];\n          accumulated[ak] = 0;\n        }\n\n        // plus anything that's already in this unit\n        if (isNumber(vals[k])) {\n          own += vals[k];\n        }\n\n        // only keep the integer part for now in the hopes of putting any decimal part\n        // into a smaller unit later\n        const i = Math.trunc(own);\n        built[k] = i;\n        accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n        // otherwise, keep it in the wings to boil it later\n      } else if (isNumber(vals[k])) {\n        accumulated[k] = vals[k];\n      }\n    }\n\n    // anything leftover becomes the decimal for the last unit\n    // lastUnit must be defined since units is not empty\n    for (const key in accumulated) {\n      if (accumulated[key] !== 0) {\n        built[lastUnit] +=\n          key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n      }\n    }\n\n    normalizeValues(this.matrix, built);\n    return clone(this, { values: built }, true);\n  }\n\n  /**\n   * Shift this Duration to all available units.\n   * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n   * @return {Duration}\n   */\n  shiftToAll() {\n    if (!this.isValid) return this;\n    return this.shiftTo(\n      \"years\",\n      \"months\",\n      \"weeks\",\n      \"days\",\n      \"hours\",\n      \"minutes\",\n      \"seconds\",\n      \"milliseconds\"\n    );\n  }\n\n  /**\n   * Return the negative of this Duration.\n   * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n   * @return {Duration}\n   */\n  negate() {\n    if (!this.isValid) return this;\n    const negated = {};\n    for (const k of Object.keys(this.values)) {\n      negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n    }\n    return clone(this, { values: negated }, true);\n  }\n\n  /**\n   * Get the years.\n   * @type {number}\n   */\n  get years() {\n    return this.isValid ? this.values.years || 0 : NaN;\n  }\n\n  /**\n   * Get the quarters.\n   * @type {number}\n   */\n  get quarters() {\n    return this.isValid ? this.values.quarters || 0 : NaN;\n  }\n\n  /**\n   * Get the months.\n   * @type {number}\n   */\n  get months() {\n    return this.isValid ? this.values.months || 0 : NaN;\n  }\n\n  /**\n   * Get the weeks\n   * @type {number}\n   */\n  get weeks() {\n    return this.isValid ? this.values.weeks || 0 : NaN;\n  }\n\n  /**\n   * Get the days.\n   * @type {number}\n   */\n  get days() {\n    return this.isValid ? this.values.days || 0 : NaN;\n  }\n\n  /**\n   * Get the hours.\n   * @type {number}\n   */\n  get hours() {\n    return this.isValid ? this.values.hours || 0 : NaN;\n  }\n\n  /**\n   * Get the minutes.\n   * @type {number}\n   */\n  get minutes() {\n    return this.isValid ? this.values.minutes || 0 : NaN;\n  }\n\n  /**\n   * Get the seconds.\n   * @return {number}\n   */\n  get seconds() {\n    return this.isValid ? this.values.seconds || 0 : NaN;\n  }\n\n  /**\n   * Get the milliseconds.\n   * @return {number}\n   */\n  get milliseconds() {\n    return this.isValid ? this.values.milliseconds || 0 : NaN;\n  }\n\n  /**\n   * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n   * on invalid DateTimes or Intervals.\n   * @return {boolean}\n   */\n  get isValid() {\n    return this.invalid === null;\n  }\n\n  /**\n   * Returns an error code if this Duration became invalid, or null if the Duration is valid\n   * @return {string}\n   */\n  get invalidReason() {\n    return this.invalid ? this.invalid.reason : null;\n  }\n\n  /**\n   * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n   * @type {string}\n   */\n  get invalidExplanation() {\n    return this.invalid ? this.invalid.explanation : null;\n  }\n\n  /**\n   * Equality check\n   * Two Durations are equal iff they have the same units and the same values for each unit.\n   * @param {Duration} other\n   * @return {boolean}\n   */\n  equals(other) {\n    if (!this.isValid || !other.isValid) {\n      return false;\n    }\n\n    if (!this.loc.equals(other.loc)) {\n      return false;\n    }\n\n    function eq(v1, v2) {\n      // Consider 0 and undefined as equal\n      if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n      return v1 === v2;\n    }\n\n    for (const u of orderedUnits) {\n      if (!eq(this.values[u], other.values[u])) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n", "import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport * as Formats from \"./impl/formats.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n  if (!start || !start.isValid) {\n    return Interval.invalid(\"missing or invalid start\");\n  } else if (!end || !end.isValid) {\n    return Interval.invalid(\"missing or invalid end\");\n  } else if (end < start) {\n    return Interval.invalid(\n      \"end before start\",\n      `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n    );\n  } else {\n    return null;\n  }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n  /**\n   * @private\n   */\n  constructor(config) {\n    /**\n     * @access private\n     */\n    this.s = config.start;\n    /**\n     * @access private\n     */\n    this.e = config.end;\n    /**\n     * @access private\n     */\n    this.invalid = config.invalid || null;\n    /**\n     * @access private\n     */\n    this.isLuxonInterval = true;\n  }\n\n  /**\n   * Create an invalid Interval.\n   * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n   * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n   * @return {Interval}\n   */\n  static invalid(reason, explanation = null) {\n    if (!reason) {\n      throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n    }\n\n    const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n    if (Settings.throwOnInvalid) {\n      throw new InvalidIntervalError(invalid);\n    } else {\n      return new Interval({ invalid });\n    }\n  }\n\n  /**\n   * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n   * @param {DateTime|Date|Object} start\n   * @param {DateTime|Date|Object} end\n   * @return {Interval}\n   */\n  static fromDateTimes(start, end) {\n    const builtStart = friendlyDateTime(start),\n      builtEnd = friendlyDateTime(end);\n\n    const validateError = validateStartEnd(builtStart, builtEnd);\n\n    if (validateError == null) {\n      return new Interval({\n        start: builtStart,\n        end: builtEnd,\n      });\n    } else {\n      return validateError;\n    }\n  }\n\n  /**\n   * Create an Interval from a start DateTime and a Duration to extend to.\n   * @param {DateTime|Date|Object} start\n   * @param {Duration|Object|number} duration - the length of the Interval.\n   * @return {Interval}\n   */\n  static after(start, duration) {\n    const dur = Duration.fromDurationLike(duration),\n      dt = friendlyDateTime(start);\n    return Interval.fromDateTimes(dt, dt.plus(dur));\n  }\n\n  /**\n   * Create an Interval from an end DateTime and a Duration to extend backwards to.\n   * @param {DateTime|Date|Object} end\n   * @param {Duration|Object|number} duration - the length of the Interval.\n   * @return {Interval}\n   */\n  static before(end, duration) {\n    const dur = Duration.fromDurationLike(duration),\n      dt = friendlyDateTime(end);\n    return Interval.fromDateTimes(dt.minus(dur), dt);\n  }\n\n  /**\n   * Create an Interval from an ISO 8601 string.\n   * Accepts `/`, `/`, and `/` formats.\n   * @param {string} text - the ISO string to parse\n   * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n   * @return {Interval}\n   */\n  static fromISO(text, opts) {\n    const [s, e] = (text || \"\").split(\"/\", 2);\n    if (s && e) {\n      let start, startIsValid;\n      try {\n        start = DateTime.fromISO(s, opts);\n        startIsValid = start.isValid;\n      } catch (e) {\n        startIsValid = false;\n      }\n\n      let end, endIsValid;\n      try {\n        end = DateTime.fromISO(e, opts);\n        endIsValid = end.isValid;\n      } catch (e) {\n        endIsValid = false;\n      }\n\n      if (startIsValid && endIsValid) {\n        return Interval.fromDateTimes(start, end);\n      }\n\n      if (startIsValid) {\n        const dur = Duration.fromISO(e, opts);\n        if (dur.isValid) {\n          return Interval.after(start, dur);\n        }\n      } else if (endIsValid) {\n        const dur = Duration.fromISO(s, opts);\n        if (dur.isValid) {\n          return Interval.before(end, dur);\n        }\n      }\n    }\n    return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n  }\n\n  /**\n   * Check if an object is an Interval. Works across context boundaries\n   * @param {object} o\n   * @return {boolean}\n   */\n  static isInterval(o) {\n    return (o && o.isLuxonInterval) || false;\n  }\n\n  /**\n   * Returns the start of the Interval\n   * @type {DateTime}\n   */\n  get start() {\n    return this.isValid ? this.s : null;\n  }\n\n  /**\n   * Returns the end of the Interval\n   * @type {DateTime}\n   */\n  get end() {\n    return this.isValid ? this.e : null;\n  }\n\n  /**\n   * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n   * @type {boolean}\n   */\n  get isValid() {\n    return this.invalidReason === null;\n  }\n\n  /**\n   * Returns an error code if this Interval is invalid, or null if the Interval is valid\n   * @type {string}\n   */\n  get invalidReason() {\n    return this.invalid ? this.invalid.reason : null;\n  }\n\n  /**\n   * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n   * @type {string}\n   */\n  get invalidExplanation() {\n    return this.invalid ? this.invalid.explanation : null;\n  }\n\n  /**\n   * Returns the length of the Interval in the specified unit.\n   * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n   * @return {number}\n   */\n  length(unit = \"milliseconds\") {\n    return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n  }\n\n  /**\n   * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n   * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n   * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n   * @param {string} [unit='milliseconds'] - the unit of time to count.\n   * @param {Object} opts - options\n   * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n   * @return {number}\n   */\n  count(unit = \"milliseconds\", opts) {\n    if (!this.isValid) return NaN;\n    const start = this.start.startOf(unit, opts);\n    let end;\n    if (opts?.useLocaleWeeks) {\n      end = this.end.reconfigure({ locale: start.locale });\n    } else {\n      end = this.end;\n    }\n    end = end.startOf(unit, opts);\n    return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n  }\n\n  /**\n   * Returns whether this Interval's start and end are both in the same unit of time\n   * @param {string} unit - the unit of time to check sameness on\n   * @return {boolean}\n   */\n  hasSame(unit) {\n    return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n  }\n\n  /**\n   * Return whether this Interval has the same start and end DateTimes.\n   * @return {boolean}\n   */\n  isEmpty() {\n    return this.s.valueOf() === this.e.valueOf();\n  }\n\n  /**\n   * Return whether this Interval's start is after the specified DateTime.\n   * @param {DateTime} dateTime\n   * @return {boolean}\n   */\n  isAfter(dateTime) {\n    if (!this.isValid) return false;\n    return this.s > dateTime;\n  }\n\n  /**\n   * Return whether this Interval's end is before the specified DateTime.\n   * @param {DateTime} dateTime\n   * @return {boolean}\n   */\n  isBefore(dateTime) {\n    if (!this.isValid) return false;\n    return this.e <= dateTime;\n  }\n\n  /**\n   * Return whether this Interval contains the specified DateTime.\n   * @param {DateTime} dateTime\n   * @return {boolean}\n   */\n  contains(dateTime) {\n    if (!this.isValid) return false;\n    return this.s <= dateTime && this.e > dateTime;\n  }\n\n  /**\n   * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n   * @param {Object} values - the values to set\n   * @param {DateTime} values.start - the starting DateTime\n   * @param {DateTime} values.end - the ending DateTime\n   * @return {Interval}\n   */\n  set({ start, end } = {}) {\n    if (!this.isValid) return this;\n    return Interval.fromDateTimes(start || this.s, end || this.e);\n  }\n\n  /**\n   * Split this Interval at each of the specified DateTimes\n   * @param {...DateTime} dateTimes - the unit of time to count.\n   * @return {Array}\n   */\n  splitAt(...dateTimes) {\n    if (!this.isValid) return [];\n    const sorted = dateTimes\n        .map(friendlyDateTime)\n        .filter((d) => this.contains(d))\n        .sort((a, b) => a.toMillis() - b.toMillis()),\n      results = [];\n    let { s } = this,\n      i = 0;\n\n    while (s < this.e) {\n      const added = sorted[i] || this.e,\n        next = +added > +this.e ? this.e : added;\n      results.push(Interval.fromDateTimes(s, next));\n      s = next;\n      i += 1;\n    }\n\n    return results;\n  }\n\n  /**\n   * Split this Interval into smaller Intervals, each of the specified length.\n   * Left over time is grouped into a smaller interval\n   * @param {Duration|Object|number} duration - The length of each resulting interval.\n   * @return {Array}\n   */\n  splitBy(duration) {\n    const dur = Duration.fromDurationLike(duration);\n\n    if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n      return [];\n    }\n\n    let { s } = this,\n      idx = 1,\n      next;\n\n    const results = [];\n    while (s < this.e) {\n      const added = this.start.plus(dur.mapUnits((x) => x * idx));\n      next = +added > +this.e ? this.e : added;\n      results.push(Interval.fromDateTimes(s, next));\n      s = next;\n      idx += 1;\n    }\n\n    return results;\n  }\n\n  /**\n   * Split this Interval into the specified number of smaller intervals.\n   * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n   * @return {Array}\n   */\n  divideEqually(numberOfParts) {\n    if (!this.isValid) return [];\n    return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n  }\n\n  /**\n   * Return whether this Interval overlaps with the specified Interval\n   * @param {Interval} other\n   * @return {boolean}\n   */\n  overlaps(other) {\n    return this.e > other.s && this.s < other.e;\n  }\n\n  /**\n   * Return whether this Interval's end is adjacent to the specified Interval's start.\n   * @param {Interval} other\n   * @return {boolean}\n   */\n  abutsStart(other) {\n    if (!this.isValid) return false;\n    return +this.e === +other.s;\n  }\n\n  /**\n   * Return whether this Interval's start is adjacent to the specified Interval's end.\n   * @param {Interval} other\n   * @return {boolean}\n   */\n  abutsEnd(other) {\n    if (!this.isValid) return false;\n    return +other.e === +this.s;\n  }\n\n  /**\n   * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise.\n   * @param {Interval} other\n   * @return {boolean}\n   */\n  engulfs(other) {\n    if (!this.isValid) return false;\n    return this.s <= other.s && this.e >= other.e;\n  }\n\n  /**\n   * Return whether this Interval has the same start and end as the specified Interval.\n   * @param {Interval} other\n   * @return {boolean}\n   */\n  equals(other) {\n    if (!this.isValid || !other.isValid) {\n      return false;\n    }\n\n    return this.s.equals(other.s) && this.e.equals(other.e);\n  }\n\n  /**\n   * Return an Interval representing the intersection of this Interval and the specified Interval.\n   * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n   * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n   * @param {Interval} other\n   * @return {Interval}\n   */\n  intersection(other) {\n    if (!this.isValid) return this;\n    const s = this.s > other.s ? this.s : other.s,\n      e = this.e < other.e ? this.e : other.e;\n\n    if (s >= e) {\n      return null;\n    } else {\n      return Interval.fromDateTimes(s, e);\n    }\n  }\n\n  /**\n   * Return an Interval representing the union of this Interval and the specified Interval.\n   * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n   * @param {Interval} other\n   * @return {Interval}\n   */\n  union(other) {\n    if (!this.isValid) return this;\n    const s = this.s < other.s ? this.s : other.s,\n      e = this.e > other.e ? this.e : other.e;\n    return Interval.fromDateTimes(s, e);\n  }\n\n  /**\n   * Merge an array of Intervals into a equivalent minimal set of Intervals.\n   * Combines overlapping and adjacent Intervals.\n   * @param {Array} intervals\n   * @return {Array}\n   */\n  static merge(intervals) {\n    const [found, final] = intervals\n      .sort((a, b) => a.s - b.s)\n      .reduce(\n        ([sofar, current], item) => {\n          if (!current) {\n            return [sofar, item];\n          } else if (current.overlaps(item) || current.abutsStart(item)) {\n            return [sofar, current.union(item)];\n          } else {\n            return [sofar.concat([current]), item];\n          }\n        },\n        [[], null]\n      );\n    if (final) {\n      found.push(final);\n    }\n    return found;\n  }\n\n  /**\n   * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n   * @param {Array} intervals\n   * @return {Array}\n   */\n  static xor(intervals) {\n    let start = null,\n      currentCount = 0;\n    const results = [],\n      ends = intervals.map((i) => [\n        { time: i.s, type: \"s\" },\n        { time: i.e, type: \"e\" },\n      ]),\n      flattened = Array.prototype.concat(...ends),\n      arr = flattened.sort((a, b) => a.time - b.time);\n\n    for (const i of arr) {\n      currentCount += i.type === \"s\" ? 1 : -1;\n\n      if (currentCount === 1) {\n        start = i.time;\n      } else {\n        if (start && +start !== +i.time) {\n          results.push(Interval.fromDateTimes(start, i.time));\n        }\n\n        start = null;\n      }\n    }\n\n    return Interval.merge(results);\n  }\n\n  /**\n   * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n   * @param {...Interval} intervals\n   * @return {Array}\n   */\n  difference(...intervals) {\n    return Interval.xor([this].concat(intervals))\n      .map((i) => this.intersection(i))\n      .filter((i) => i && !i.isEmpty());\n  }\n\n  /**\n   * Returns a string representation of this Interval appropriate for debugging.\n   * @return {string}\n   */\n  toString() {\n    if (!this.isValid) return INVALID;\n    return `[${this.s.toISO()} – ${this.e.toISO()})`;\n  }\n\n  /**\n   * Returns a string representation of this Interval appropriate for the REPL.\n   * @return {string}\n   */\n  [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n    if (this.isValid) {\n      return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n    } else {\n      return `Interval { Invalid, reason: ${this.invalidReason} }`;\n    }\n  }\n\n  /**\n   * Returns a localized string representing this Interval. Accepts the same options as the\n   * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n   * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n   * is browser-specific, but in general it will return an appropriate representation of the\n   * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n   * specified.\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n   * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n   * Intl.DateTimeFormat constructor options.\n   * @param {Object} opts - Options to override the configuration of the start DateTime.\n   * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n   * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n   * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n   * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n   * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n   * @return {string}\n   */\n  toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n    return this.isValid\n      ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n      : INVALID;\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this Interval.\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n   * @param {Object} opts - The same options as {@link DateTime#toISO}\n   * @return {string}\n   */\n  toISO(opts) {\n    if (!this.isValid) return INVALID;\n    return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of date of this Interval.\n   * The time components are ignored.\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n   * @return {string}\n   */\n  toISODate() {\n    if (!this.isValid) return INVALID;\n    return `${this.s.toISODate()}/${this.e.toISODate()}`;\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of time of this Interval.\n   * The date components are ignored.\n   * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n   * @param {Object} opts - The same options as {@link DateTime#toISO}\n   * @return {string}\n   */\n  toISOTime(opts) {\n    if (!this.isValid) return INVALID;\n    return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n  }\n\n  /**\n   * Returns a string representation of this Interval formatted according to the specified format\n   * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n   * formatting tool.\n   * @param {string} dateFormat - The format string. This string formats the start and end time.\n   * See {@link DateTime#toFormat} for details.\n   * @param {Object} opts - Options.\n   * @param {string} [opts.separator =  ' – '] - A separator to place between the start and end\n   * representations.\n   * @return {string}\n   */\n  toFormat(dateFormat, { separator = \" – \" } = {}) {\n    if (!this.isValid) return INVALID;\n    return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n  }\n\n  /**\n   * Return a Duration representing the time spanned by this interval.\n   * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n   * @param {Object} opts - options that affect the creation of the Duration\n   * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n   * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n   * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n   * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n   * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n   * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n   * @return {Duration}\n   */\n  toDuration(unit, opts) {\n    if (!this.isValid) {\n      return Duration.invalid(this.invalidReason);\n    }\n    return this.e.diff(this.s, unit, opts);\n  }\n\n  /**\n   * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n   * @param {function} mapFn\n   * @return {Interval}\n   * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n   * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n   */\n  mapEndpoints(mapFn) {\n    return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n  }\n}\n", "import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasLocaleWeekInfo, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n  /**\n   * Return whether the specified zone contains a DST.\n   * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n   * @return {boolean}\n   */\n  static hasDST(zone = Settings.defaultZone) {\n    const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n    return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n  }\n\n  /**\n   * Return whether the specified zone is a valid IANA specifier.\n   * @param {string} zone - Zone to check\n   * @return {boolean}\n   */\n  static isValidIANAZone(zone) {\n    return IANAZone.isValidZone(zone);\n  }\n\n  /**\n   * Converts the input into a {@link Zone} instance.\n   *\n   * * If `input` is already a Zone instance, it is returned unchanged.\n   * * If `input` is a string containing a valid time zone name, a Zone instance\n   *   with that name is returned.\n   * * If `input` is a string that doesn't refer to a known time zone, a Zone\n   *   instance with {@link Zone#isValid} == false is returned.\n   * * If `input is a number, a Zone instance with the specified fixed offset\n   *   in minutes is returned.\n   * * If `input` is `null` or `undefined`, the default zone is returned.\n   * @param {string|Zone|number} [input] - the value to be converted\n   * @return {Zone}\n   */\n  static normalizeZone(input) {\n    return normalizeZone(input, Settings.defaultZone);\n  }\n\n  /**\n   * Get the weekday on which the week starts according to the given locale.\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n   */\n  static getStartOfWeek({ locale = null, locObj = null } = {}) {\n    return (locObj || Locale.create(locale)).getStartOfWeek();\n  }\n\n  /**\n   * Get the minimum number of days necessary in a week before it is considered part of the next year according\n   * to the given locale.\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @returns {number}\n   */\n  static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n    return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n  }\n\n  /**\n   * Get the weekdays, which are considered the weekend according to the given locale\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n   */\n  static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n    // copy the array, because we cache it internally\n    return (locObj || Locale.create(locale)).getWeekendDays().slice();\n  }\n\n  /**\n   * Return an array of standalone month names.\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n   * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @param {string} [opts.numberingSystem=null] - the numbering system\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @param {string} [opts.outputCalendar='gregory'] - the calendar\n   * @example Info.months()[0] //=> 'January'\n   * @example Info.months('short')[0] //=> 'Jan'\n   * @example Info.months('numeric')[0] //=> '1'\n   * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n   * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n   * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n   * @return {Array}\n   */\n  static months(\n    length = \"long\",\n    { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n  ) {\n    return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n  }\n\n  /**\n   * Return an array of format month names.\n   * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n   * changes the string.\n   * See {@link Info#months}\n   * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @param {string} [opts.numberingSystem=null] - the numbering system\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @param {string} [opts.outputCalendar='gregory'] - the calendar\n   * @return {Array}\n   */\n  static monthsFormat(\n    length = \"long\",\n    { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n  ) {\n    return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n  }\n\n  /**\n   * Return an array of standalone week names.\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n   * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @param {string} [opts.numberingSystem=null] - the numbering system\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @example Info.weekdays()[0] //=> 'Monday'\n   * @example Info.weekdays('short')[0] //=> 'Mon'\n   * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n   * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n   * @return {Array}\n   */\n  static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n    return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n  }\n\n  /**\n   * Return an array of format week names.\n   * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n   * changes the string.\n   * See {@link Info#weekdays}\n   * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n   * @param {Object} opts - options\n   * @param {string} [opts.locale=null] - the locale code\n   * @param {string} [opts.numberingSystem=null] - the numbering system\n   * @param {string} [opts.locObj=null] - an existing locale object to use\n   * @return {Array}\n   */\n  static weekdaysFormat(\n    length = \"long\",\n    { locale = null, numberingSystem = null, locObj = null } = {}\n  ) {\n    return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n  }\n\n  /**\n   * Return an array of meridiems.\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n   * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n   * @return {Array}\n   */\n  static meridiems({ locale = null } = {}) {\n    return Locale.create(locale).meridiems();\n  }\n\n  /**\n   * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n   * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n   * @param {Object} opts - options\n   * @param {string} [opts.locale] - the locale code\n   * @example Info.eras() //=> [ 'BC', 'AD' ]\n   * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n   * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n   * @return {Array}\n   */\n  static eras(length = \"short\", { locale = null } = {}) {\n    return Locale.create(locale, null, \"gregory\").eras(length);\n  }\n\n  /**\n   * Return the set of available features in this environment.\n   * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n   * Keys:\n   * * `relative`: whether this environment supports relative time formatting\n   * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n   * @example Info.features() //=> { relative: false, localeWeek: true }\n   * @return {Object}\n   */\n  static features() {\n    return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n  }\n}\n", "import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n  const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n    ms = utcDayStart(later) - utcDayStart(earlier);\n  return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n  const differs = [\n    [\"years\", (a, b) => b.year - a.year],\n    [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n    [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n    [\n      \"weeks\",\n      (a, b) => {\n        const days = dayDiff(a, b);\n        return (days - (days % 7)) / 7;\n      },\n    ],\n    [\"days\", dayDiff],\n  ];\n\n  const results = {};\n  const earlier = cursor;\n  let lowestOrder, highWater;\n\n  /* This loop tries to diff using larger units first.\n     If we overshoot, we backtrack and try the next smaller unit.\n     \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n     as we use smaller and smaller units.\n     highWater keeps track of where we would be if we added one more of the smallest unit,\n     this is used later to potentially convert any difference smaller than the smallest higher order unit\n     into a fraction of that smallest higher order unit\n  */\n  for (const [unit, differ] of differs) {\n    if (units.indexOf(unit) >= 0) {\n      lowestOrder = unit;\n\n      results[unit] = differ(cursor, later);\n      highWater = earlier.plus(results);\n\n      if (highWater > later) {\n        // we overshot the end point, backtrack cursor by 1\n        results[unit]--;\n        cursor = earlier.plus(results);\n\n        // if we are still overshooting now, we need to backtrack again\n        // this happens in certain situations when diffing times in different zones,\n        // because this calculation ignores time zones\n        if (cursor > later) {\n          // keep the \"overshot by 1\" around as highWater\n          highWater = cursor;\n          // backtrack cursor by 1\n          results[unit]--;\n          cursor = earlier.plus(results);\n        }\n      } else {\n        cursor = highWater;\n      }\n    }\n  }\n\n  return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n  let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n  const remainingMillis = later - cursor;\n\n  const lowerOrderUnits = units.filter(\n    (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n  );\n\n  if (lowerOrderUnits.length === 0) {\n    if (highWater < later) {\n      highWater = cursor.plus({ [lowestOrder]: 1 });\n    }\n\n    if (highWater !== cursor) {\n      results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n    }\n  }\n\n  const duration = Duration.fromObject(results, opts);\n\n  if (lowerOrderUnits.length > 0) {\n    return Duration.fromMillis(remainingMillis, opts)\n      .shiftTo(...lowerOrderUnits)\n      .plus(duration);\n  } else {\n    return duration;\n  }\n}\n", "import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n  return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n  // make dots optional and also make them literal\n  // make space and non breakable space characters interchangeable\n  return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n  return s\n    .replace(/\\./g, \"\") // ignore dots that were made optional\n    .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n    .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n  if (strings === null) {\n    return null;\n  } else {\n    return {\n      regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n      deser: ([s]) =>\n        strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n    };\n  }\n}\n\nfunction offset(regex, groups) {\n  return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n  return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n  return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n  const one = digitRegex(loc),\n    two = digitRegex(loc, \"{2}\"),\n    three = digitRegex(loc, \"{3}\"),\n    four = digitRegex(loc, \"{4}\"),\n    six = digitRegex(loc, \"{6}\"),\n    oneOrTwo = digitRegex(loc, \"{1,2}\"),\n    oneToThree = digitRegex(loc, \"{1,3}\"),\n    oneToSix = digitRegex(loc, \"{1,6}\"),\n    oneToNine = digitRegex(loc, \"{1,9}\"),\n    twoToFour = digitRegex(loc, \"{2,4}\"),\n    fourToSix = digitRegex(loc, \"{4,6}\"),\n    literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n    unitate = (t) => {\n      if (token.literal) {\n        return literal(t);\n      }\n      switch (t.val) {\n        // era\n        case \"G\":\n          return oneOf(loc.eras(\"short\"), 0);\n        case \"GG\":\n          return oneOf(loc.eras(\"long\"), 0);\n        // years\n        case \"y\":\n          return intUnit(oneToSix);\n        case \"yy\":\n          return intUnit(twoToFour, untruncateYear);\n        case \"yyyy\":\n          return intUnit(four);\n        case \"yyyyy\":\n          return intUnit(fourToSix);\n        case \"yyyyyy\":\n          return intUnit(six);\n        // months\n        case \"M\":\n          return intUnit(oneOrTwo);\n        case \"MM\":\n          return intUnit(two);\n        case \"MMM\":\n          return oneOf(loc.months(\"short\", true), 1);\n        case \"MMMM\":\n          return oneOf(loc.months(\"long\", true), 1);\n        case \"L\":\n          return intUnit(oneOrTwo);\n        case \"LL\":\n          return intUnit(two);\n        case \"LLL\":\n          return oneOf(loc.months(\"short\", false), 1);\n        case \"LLLL\":\n          return oneOf(loc.months(\"long\", false), 1);\n        // dates\n        case \"d\":\n          return intUnit(oneOrTwo);\n        case \"dd\":\n          return intUnit(two);\n        // ordinals\n        case \"o\":\n          return intUnit(oneToThree);\n        case \"ooo\":\n          return intUnit(three);\n        // time\n        case \"HH\":\n          return intUnit(two);\n        case \"H\":\n          return intUnit(oneOrTwo);\n        case \"hh\":\n          return intUnit(two);\n        case \"h\":\n          return intUnit(oneOrTwo);\n        case \"mm\":\n          return intUnit(two);\n        case \"m\":\n          return intUnit(oneOrTwo);\n        case \"q\":\n          return intUnit(oneOrTwo);\n        case \"qq\":\n          return intUnit(two);\n        case \"s\":\n          return intUnit(oneOrTwo);\n        case \"ss\":\n          return intUnit(two);\n        case \"S\":\n          return intUnit(oneToThree);\n        case \"SSS\":\n          return intUnit(three);\n        case \"u\":\n          return simple(oneToNine);\n        case \"uu\":\n          return simple(oneOrTwo);\n        case \"uuu\":\n          return intUnit(one);\n        // meridiem\n        case \"a\":\n          return oneOf(loc.meridiems(), 0);\n        // weekYear (k)\n        case \"kkkk\":\n          return intUnit(four);\n        case \"kk\":\n          return intUnit(twoToFour, untruncateYear);\n        // weekNumber (W)\n        case \"W\":\n          return intUnit(oneOrTwo);\n        case \"WW\":\n          return intUnit(two);\n        // weekdays\n        case \"E\":\n        case \"c\":\n          return intUnit(one);\n        case \"EEE\":\n          return oneOf(loc.weekdays(\"short\", false), 1);\n        case \"EEEE\":\n          return oneOf(loc.weekdays(\"long\", false), 1);\n        case \"ccc\":\n          return oneOf(loc.weekdays(\"short\", true), 1);\n        case \"cccc\":\n          return oneOf(loc.weekdays(\"long\", true), 1);\n        // offset/zone\n        case \"Z\":\n        case \"ZZ\":\n          return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n        case \"ZZZ\":\n          return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n        // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n        // because we don't have any way to figure out what they are\n        case \"z\":\n          return simple(/[a-z_+-/]{1,256}?/i);\n        // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n        // in this case we accept any non-newline white-space\n        case \" \":\n          return simple(/[^\\S\\n\\r]/);\n        default:\n          return literal(t);\n      }\n    };\n\n  const unit = unitate(token) || {\n    invalidReason: MISSING_FTP,\n  };\n\n  unit.token = token;\n\n  return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n  year: {\n    \"2-digit\": \"yy\",\n    numeric: \"yyyyy\",\n  },\n  month: {\n    numeric: \"M\",\n    \"2-digit\": \"MM\",\n    short: \"MMM\",\n    long: \"MMMM\",\n  },\n  day: {\n    numeric: \"d\",\n    \"2-digit\": \"dd\",\n  },\n  weekday: {\n    short: \"EEE\",\n    long: \"EEEE\",\n  },\n  dayperiod: \"a\",\n  dayPeriod: \"a\",\n  hour12: {\n    numeric: \"h\",\n    \"2-digit\": \"hh\",\n  },\n  hour24: {\n    numeric: \"H\",\n    \"2-digit\": \"HH\",\n  },\n  minute: {\n    numeric: \"m\",\n    \"2-digit\": \"mm\",\n  },\n  second: {\n    numeric: \"s\",\n    \"2-digit\": \"ss\",\n  },\n  timeZoneName: {\n    long: \"ZZZZZ\",\n    short: \"ZZZ\",\n  },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n  const { type, value } = part;\n\n  if (type === \"literal\") {\n    const isSpace = /^\\s+$/.test(value);\n    return {\n      literal: !isSpace,\n      val: isSpace ? \" \" : value,\n    };\n  }\n\n  const style = formatOpts[type];\n\n  // The user might have explicitly specified hour12 or hourCycle\n  // if so, respect their decision\n  // if not, refer back to the resolvedOpts, which are based on the locale\n  let actualType = type;\n  if (type === \"hour\") {\n    if (formatOpts.hour12 != null) {\n      actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n    } else if (formatOpts.hourCycle != null) {\n      if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n        actualType = \"hour12\";\n      } else {\n        actualType = \"hour24\";\n      }\n    } else {\n      // tokens only differentiate between 24 hours or not,\n      // so we do not need to check hourCycle here, which is less supported anyways\n      actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n    }\n  }\n  let val = partTypeStyleToTokenVal[actualType];\n  if (typeof val === \"object\") {\n    val = val[style];\n  }\n\n  if (val) {\n    return {\n      literal: false,\n      val,\n    };\n  }\n\n  return undefined;\n}\n\nfunction buildRegex(units) {\n  const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n  return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n  const matches = input.match(regex);\n\n  if (matches) {\n    const all = {};\n    let matchIndex = 1;\n    for (const i in handlers) {\n      if (hasOwnProperty(handlers, i)) {\n        const h = handlers[i],\n          groups = h.groups ? h.groups + 1 : 1;\n        if (!h.literal && h.token) {\n          all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n        }\n        matchIndex += groups;\n      }\n    }\n    return [matches, all];\n  } else {\n    return [matches, {}];\n  }\n}\n\nfunction dateTimeFromMatches(matches) {\n  const toField = (token) => {\n    switch (token) {\n      case \"S\":\n        return \"millisecond\";\n      case \"s\":\n        return \"second\";\n      case \"m\":\n        return \"minute\";\n      case \"h\":\n      case \"H\":\n        return \"hour\";\n      case \"d\":\n        return \"day\";\n      case \"o\":\n        return \"ordinal\";\n      case \"L\":\n      case \"M\":\n        return \"month\";\n      case \"y\":\n        return \"year\";\n      case \"E\":\n      case \"c\":\n        return \"weekday\";\n      case \"W\":\n        return \"weekNumber\";\n      case \"k\":\n        return \"weekYear\";\n      case \"q\":\n        return \"quarter\";\n      default:\n        return null;\n    }\n  };\n\n  let zone = null;\n  let specificOffset;\n  if (!isUndefined(matches.z)) {\n    zone = IANAZone.create(matches.z);\n  }\n\n  if (!isUndefined(matches.Z)) {\n    if (!zone) {\n      zone = new FixedOffsetZone(matches.Z);\n    }\n    specificOffset = matches.Z;\n  }\n\n  if (!isUndefined(matches.q)) {\n    matches.M = (matches.q - 1) * 3 + 1;\n  }\n\n  if (!isUndefined(matches.h)) {\n    if (matches.h < 12 && matches.a === 1) {\n      matches.h += 12;\n    } else if (matches.h === 12 && matches.a === 0) {\n      matches.h = 0;\n    }\n  }\n\n  if (matches.G === 0 && matches.y) {\n    matches.y = -matches.y;\n  }\n\n  if (!isUndefined(matches.u)) {\n    matches.S = parseMillis(matches.u);\n  }\n\n  const vals = Object.keys(matches).reduce((r, k) => {\n    const f = toField(k);\n    if (f) {\n      r[f] = matches[k];\n    }\n\n    return r;\n  }, {});\n\n  return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n  if (!dummyDateTimeCache) {\n    dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n  }\n\n  return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n  if (token.literal) {\n    return token;\n  }\n\n  const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n  const tokens = formatOptsToTokens(formatOpts, locale);\n\n  if (tokens == null || tokens.includes(undefined)) {\n    return token;\n  }\n\n  return tokens;\n}\n\nexport function expandMacroTokens(tokens, locale) {\n  return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport class TokenParser {\n  constructor(locale, format) {\n    this.locale = locale;\n    this.format = format;\n    this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale);\n    this.units = this.tokens.map((t) => unitForToken(t, locale));\n    this.disqualifyingUnit = this.units.find((t) => t.invalidReason);\n\n    if (!this.disqualifyingUnit) {\n      const [regexString, handlers] = buildRegex(this.units);\n      this.regex = RegExp(regexString, \"i\");\n      this.handlers = handlers;\n    }\n  }\n\n  explainFromTokens(input) {\n    if (!this.isValid) {\n      return { input, tokens: this.tokens, invalidReason: this.invalidReason };\n    } else {\n      const [rawMatches, matches] = match(input, this.regex, this.handlers),\n        [result, zone, specificOffset] = matches\n          ? dateTimeFromMatches(matches)\n          : [null, null, undefined];\n      if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n        throw new ConflictingSpecificationError(\n          \"Can't include meridiem when specifying 24-hour format\"\n        );\n      }\n      return {\n        input,\n        tokens: this.tokens,\n        regex: this.regex,\n        rawMatches,\n        matches,\n        result,\n        zone,\n        specificOffset,\n      };\n    }\n  }\n\n  get isValid() {\n    return !this.disqualifyingUnit;\n  }\n\n  get invalidReason() {\n    return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null;\n  }\n}\n\nexport function explainFromTokens(locale, input, format) {\n  const parser = new TokenParser(locale, format);\n  return parser.explainFromTokens(input);\n}\n\nexport function parseFromTokens(locale, input, format) {\n  const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n  return [result, zone, specificOffset, invalidReason];\n}\n\nexport function formatOptsToTokens(formatOpts, locale) {\n  if (!formatOpts) {\n    return null;\n  }\n\n  const formatter = Formatter.create(locale, formatOpts);\n  const df = formatter.dtFormatter(getDummyDateTime());\n  const parts = df.formatToParts();\n  const resolvedOpts = df.resolvedOptions();\n  return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n", "import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n  isUndefined,\n  maybeArray,\n  isDate,\n  isNumber,\n  bestBy,\n  daysInMonth,\n  daysInYear,\n  isLeapYear,\n  weeksInWeekYear,\n  normalizeObject,\n  roundTo,\n  objToLocalTS,\n  padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport {\n  parseFromTokens,\n  explainFromTokens,\n  formatOptsToTokens,\n  expandMacroTokens,\n  TokenParser,\n} from \"./impl/tokenParser.js\";\nimport {\n  gregorianToWeek,\n  weekToGregorian,\n  gregorianToOrdinal,\n  ordinalToGregorian,\n  hasInvalidGregorianData,\n  hasInvalidWeekData,\n  hasInvalidOrdinalData,\n  hasInvalidTimeData,\n  usesLocalWeekValues,\n  isoWeekdayToLocal,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n  InvalidArgumentError,\n  ConflictingSpecificationError,\n  InvalidUnitError,\n  InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n  return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n  if (dt.weekData === null) {\n    dt.weekData = gregorianToWeek(dt.c);\n  }\n  return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n  if (dt.localWeekData === null) {\n    dt.localWeekData = gregorianToWeek(\n      dt.c,\n      dt.loc.getMinDaysInFirstWeek(),\n      dt.loc.getStartOfWeek()\n    );\n  }\n  return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n  const current = {\n    ts: inst.ts,\n    zone: inst.zone,\n    c: inst.c,\n    o: inst.o,\n    loc: inst.loc,\n    invalid: inst.invalid,\n  };\n  return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n  // Our UTC time is just a guess because our offset is just a guess\n  let utcGuess = localTS - o * 60 * 1000;\n\n  // Test whether the zone matches the offset for this ts\n  const o2 = tz.offset(utcGuess);\n\n  // If so, offset didn't change and we're done\n  if (o === o2) {\n    return [utcGuess, o];\n  }\n\n  // If not, change the ts by the difference in the offset\n  utcGuess -= (o2 - o) * 60 * 1000;\n\n  // If that gives us the local time we want, we're done\n  const o3 = tz.offset(utcGuess);\n  if (o2 === o3) {\n    return [utcGuess, o2];\n  }\n\n  // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n  return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n  ts += offset * 60 * 1000;\n\n  const d = new Date(ts);\n\n  return {\n    year: d.getUTCFullYear(),\n    month: d.getUTCMonth() + 1,\n    day: d.getUTCDate(),\n    hour: d.getUTCHours(),\n    minute: d.getUTCMinutes(),\n    second: d.getUTCSeconds(),\n    millisecond: d.getUTCMilliseconds(),\n  };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n  return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n  const oPre = inst.o,\n    year = inst.c.year + Math.trunc(dur.years),\n    month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n    c = {\n      ...inst.c,\n      year,\n      month,\n      day:\n        Math.min(inst.c.day, daysInMonth(year, month)) +\n        Math.trunc(dur.days) +\n        Math.trunc(dur.weeks) * 7,\n    },\n    millisToAdd = Duration.fromObject({\n      years: dur.years - Math.trunc(dur.years),\n      quarters: dur.quarters - Math.trunc(dur.quarters),\n      months: dur.months - Math.trunc(dur.months),\n      weeks: dur.weeks - Math.trunc(dur.weeks),\n      days: dur.days - Math.trunc(dur.days),\n      hours: dur.hours,\n      minutes: dur.minutes,\n      seconds: dur.seconds,\n      milliseconds: dur.milliseconds,\n    }).as(\"milliseconds\"),\n    localTS = objToLocalTS(c);\n\n  let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n  if (millisToAdd !== 0) {\n    ts += millisToAdd;\n    // that could have changed the offset by going over a DST, but we want to keep the ts the same\n    o = inst.zone.offset(ts);\n  }\n\n  return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n  const { setZone, zone } = opts;\n  if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n    const interpretationZone = parsedZone || zone,\n      inst = DateTime.fromObject(parsed, {\n        ...opts,\n        zone: interpretationZone,\n        specificOffset,\n      });\n    return setZone ? inst : inst.setZone(zone);\n  } else {\n    return DateTime.invalid(\n      new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n    );\n  }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n  return dt.isValid\n    ? Formatter.create(Locale.create(\"en-US\"), {\n        allowZ,\n        forceSimple: true,\n      }).formatDateTimeFromString(dt, format)\n    : null;\n}\n\nfunction toISODate(o, extended) {\n  const longFormat = o.c.year > 9999 || o.c.year < 0;\n  let c = \"\";\n  if (longFormat && o.c.year >= 0) c += \"+\";\n  c += padStart(o.c.year, longFormat ? 6 : 4);\n\n  if (extended) {\n    c += \"-\";\n    c += padStart(o.c.month);\n    c += \"-\";\n    c += padStart(o.c.day);\n  } else {\n    c += padStart(o.c.month);\n    c += padStart(o.c.day);\n  }\n  return c;\n}\n\nfunction toISOTime(\n  o,\n  extended,\n  suppressSeconds,\n  suppressMilliseconds,\n  includeOffset,\n  extendedZone\n) {\n  let c = padStart(o.c.hour);\n  if (extended) {\n    c += \":\";\n    c += padStart(o.c.minute);\n    if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n      c += \":\";\n    }\n  } else {\n    c += padStart(o.c.minute);\n  }\n\n  if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n    c += padStart(o.c.second);\n\n    if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n      c += \".\";\n      c += padStart(o.c.millisecond, 3);\n    }\n  }\n\n  if (includeOffset) {\n    if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n      c += \"Z\";\n    } else if (o.o < 0) {\n      c += \"-\";\n      c += padStart(Math.trunc(-o.o / 60));\n      c += \":\";\n      c += padStart(Math.trunc(-o.o % 60));\n    } else {\n      c += \"+\";\n      c += padStart(Math.trunc(o.o / 60));\n      c += \":\";\n      c += padStart(Math.trunc(o.o % 60));\n    }\n  }\n\n  if (extendedZone) {\n    c += \"[\" + o.zone.ianaName + \"]\";\n  }\n  return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n    month: 1,\n    day: 1,\n    hour: 0,\n    minute: 0,\n    second: 0,\n    millisecond: 0,\n  },\n  defaultWeekUnitValues = {\n    weekNumber: 1,\n    weekday: 1,\n    hour: 0,\n    minute: 0,\n    second: 0,\n    millisecond: 0,\n  },\n  defaultOrdinalUnitValues = {\n    ordinal: 1,\n    hour: 0,\n    minute: 0,\n    second: 0,\n    millisecond: 0,\n  };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n  orderedWeekUnits = [\n    \"weekYear\",\n    \"weekNumber\",\n    \"weekday\",\n    \"hour\",\n    \"minute\",\n    \"second\",\n    \"millisecond\",\n  ],\n  orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n  const normalized = {\n    year: \"year\",\n    years: \"year\",\n    month: \"month\",\n    months: \"month\",\n    day: \"day\",\n    days: \"day\",\n    hour: \"hour\",\n    hours: \"hour\",\n    minute: \"minute\",\n    minutes: \"minute\",\n    quarter: \"quarter\",\n    quarters: \"quarter\",\n    second: \"second\",\n    seconds: \"second\",\n    millisecond: \"millisecond\",\n    milliseconds: \"millisecond\",\n    weekday: \"weekday\",\n    weekdays: \"weekday\",\n    weeknumber: \"weekNumber\",\n    weeksnumber: \"weekNumber\",\n    weeknumbers: \"weekNumber\",\n    weekyear: \"weekYear\",\n    weekyears: \"weekYear\",\n    ordinal: \"ordinal\",\n  }[unit.toLowerCase()];\n\n  if (!normalized) throw new InvalidUnitError(unit);\n\n  return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n  switch (unit.toLowerCase()) {\n    case \"localweekday\":\n    case \"localweekdays\":\n      return \"localWeekday\";\n    case \"localweeknumber\":\n    case \"localweeknumbers\":\n      return \"localWeekNumber\";\n    case \"localweekyear\":\n    case \"localweekyears\":\n      return \"localWeekYear\";\n    default:\n      return normalizeUnit(unit);\n  }\n}\n\n// cache offsets for zones based on the current timestamp when this function is\n// first called. When we are handling a datetime from components like (year,\n// month, day, hour) in a time zone, we need a guess about what the timezone\n// offset is so that we can convert into a UTC timestamp. One way is to find the\n// offset of now in the zone. The actual date may have a different offset (for\n// example, if we handle a date in June while we're in December in a zone that\n// observes DST), but we can check and adjust that.\n//\n// When handling many dates, calculating the offset for now every time is\n// expensive. It's just a guess, so we can cache the offset to use even if we\n// are right on a time change boundary (we'll just correct in the other\n// direction). Using a timestamp from first read is a slight optimization for\n// handling dates close to the current date, since those dates will usually be\n// in the same offset (we could set the timestamp statically, instead). We use a\n// single timestamp for all zones to make things a bit more predictable.\n//\n// This is safe for quickDT (used by local() and utc()) because we don't fill in\n// higher-order units from tsNow (as we do in fromObject, this requires that\n// offset is calculated from tsNow).\nfunction guessOffsetForZone(zone) {\n  if (!zoneOffsetGuessCache[zone]) {\n    if (zoneOffsetTs === undefined) {\n      zoneOffsetTs = Settings.now();\n    }\n\n    zoneOffsetGuessCache[zone] = zone.offset(zoneOffsetTs);\n  }\n  return zoneOffsetGuessCache[zone];\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n  const zone = normalizeZone(opts.zone, Settings.defaultZone);\n  if (!zone.isValid) {\n    return DateTime.invalid(unsupportedZone(zone));\n  }\n\n  const loc = Locale.fromObject(opts);\n\n  let ts, o;\n\n  // assume we have the higher-order units\n  if (!isUndefined(obj.year)) {\n    for (const u of orderedUnits) {\n      if (isUndefined(obj[u])) {\n        obj[u] = defaultUnitValues[u];\n      }\n    }\n\n    const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n    if (invalid) {\n      return DateTime.invalid(invalid);\n    }\n\n    const offsetProvis = guessOffsetForZone(zone);\n    [ts, o] = objToTS(obj, offsetProvis, zone);\n  } else {\n    ts = Settings.now();\n  }\n\n  return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n  const round = isUndefined(opts.round) ? true : opts.round,\n    format = (c, unit) => {\n      c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n      const formatter = end.loc.clone(opts).relFormatter(opts);\n      return formatter.format(c, unit);\n    },\n    differ = (unit) => {\n      if (opts.calendary) {\n        if (!end.hasSame(start, unit)) {\n          return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n        } else return 0;\n      } else {\n        return end.diff(start, unit).get(unit);\n      }\n    };\n\n  if (opts.unit) {\n    return format(differ(opts.unit), opts.unit);\n  }\n\n  for (const unit of opts.units) {\n    const count = differ(unit);\n    if (Math.abs(count) >= 1) {\n      return format(count, unit);\n    }\n  }\n  return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n  let opts = {},\n    args;\n  if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n    opts = argList[argList.length - 1];\n    args = Array.from(argList).slice(0, argList.length - 1);\n  } else {\n    args = Array.from(argList);\n  }\n  return [opts, args];\n}\n\n/**\n * Timestamp to use for cached zone offset guesses (exposed for test)\n */\nlet zoneOffsetTs;\n/**\n * Cache for zone offset guesses (exposed for test).\n *\n * This optimizes quickDT via guessOffsetForZone to avoid repeated calls of\n * zone.offset().\n */\nlet zoneOffsetGuessCache = {};\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n  /**\n   * @access private\n   */\n  constructor(config) {\n    const zone = config.zone || Settings.defaultZone;\n\n    let invalid =\n      config.invalid ||\n      (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n      (!zone.isValid ? unsupportedZone(zone) : null);\n    /**\n     * @access private\n     */\n    this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n    let c = null,\n      o = null;\n    if (!invalid) {\n      const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n      if (unchanged) {\n        [c, o] = [config.old.c, config.old.o];\n      } else {\n        // If an offset has been passed and we have not been called from\n        // clone(), we can trust it and avoid the offset calculation.\n        const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts);\n        c = tsToObj(this.ts, ot);\n        invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n        c = invalid ? null : c;\n        o = invalid ? null : ot;\n      }\n    }\n\n    /**\n     * @access private\n     */\n    this._zone = zone;\n    /**\n     * @access private\n     */\n    this.loc = config.loc || Locale.create();\n    /**\n     * @access private\n     */\n    this.invalid = invalid;\n    /**\n     * @access private\n     */\n    this.weekData = null;\n    /**\n     * @access private\n     */\n    this.localWeekData = null;\n    /**\n     * @access private\n     */\n    this.c = c;\n    /**\n     * @access private\n     */\n    this.o = o;\n    /**\n     * @access private\n     */\n    this.isLuxonDateTime = true;\n  }\n\n  // CONSTRUCT\n\n  /**\n   * Create a DateTime for the current instant, in the system's time zone.\n   *\n   * Use Settings to override these default values if needed.\n   * @example DateTime.now().toISO() //~> now in the ISO format\n   * @return {DateTime}\n   */\n  static now() {\n    return new DateTime({});\n  }\n\n  /**\n   * Create a local DateTime\n   * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n   * @param {number} [month=1] - The month, 1-indexed\n   * @param {number} [day=1] - The day of the month, 1-indexed\n   * @param {number} [hour=0] - The hour of the day, in 24-hour time\n   * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n   * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n   * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n   * @example DateTime.local()                                  //~> now\n   * @example DateTime.local({ zone: \"America/New_York\" })      //~> now, in US east coast time\n   * @example DateTime.local(2017)                              //~> 2017-01-01T00:00:00\n   * @example DateTime.local(2017, 3)                           //~> 2017-03-01T00:00:00\n   * @example DateTime.local(2017, 3, 12, { locale: \"fr\" })     //~> 2017-03-12T00:00:00, with a French locale\n   * @example DateTime.local(2017, 3, 12, 5)                    //~> 2017-03-12T05:00:00\n   * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" })   //~> 2017-03-12T05:00:00, in UTC\n   * @example DateTime.local(2017, 3, 12, 5, 45)                //~> 2017-03-12T05:45:00\n   * @example DateTime.local(2017, 3, 12, 5, 45, 10)            //~> 2017-03-12T05:45:10\n   * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765)       //~> 2017-03-12T05:45:10.765\n   * @return {DateTime}\n   */\n  static local() {\n    const [opts, args] = lastOpts(arguments),\n      [year, month, day, hour, minute, second, millisecond] = args;\n    return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n  }\n\n  /**\n   * Create a DateTime in UTC\n   * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n   * @param {number} [month=1] - The month, 1-indexed\n   * @param {number} [day=1] - The day of the month\n   * @param {number} [hour=0] - The hour of the day, in 24-hour time\n   * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n   * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n   * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n   * @param {Object} options - configuration options for the DateTime\n   * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n   * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n   * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n   * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance\n   * @example DateTime.utc()                                              //~> now\n   * @example DateTime.utc(2017)                                          //~> 2017-01-01T00:00:00Z\n   * @example DateTime.utc(2017, 3)                                       //~> 2017-03-01T00:00:00Z\n   * @example DateTime.utc(2017, 3, 12)                                   //~> 2017-03-12T00:00:00Z\n   * @example DateTime.utc(2017, 3, 12, 5)                                //~> 2017-03-12T05:00:00Z\n   * @example DateTime.utc(2017, 3, 12, 5, 45)                            //~> 2017-03-12T05:45:00Z\n   * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" })          //~> 2017-03-12T05:45:00Z with a French locale\n   * @example DateTime.utc(2017, 3, 12, 5, 45, 10)                        //~> 2017-03-12T05:45:10Z\n   * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n   * @return {DateTime}\n   */\n  static utc() {\n    const [opts, args] = lastOpts(arguments),\n      [year, month, day, hour, minute, second, millisecond] = args;\n\n    opts.zone = FixedOffsetZone.utcInstance;\n    return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n  }\n\n  /**\n   * Create a DateTime from a JavaScript Date object. Uses the default zone.\n   * @param {Date} date - a JavaScript Date object\n   * @param {Object} options - configuration options for the DateTime\n   * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n   * @return {DateTime}\n   */\n  static fromJSDate(date, options = {}) {\n    const ts = isDate(date) ? date.valueOf() : NaN;\n    if (Number.isNaN(ts)) {\n      return DateTime.invalid(\"invalid input\");\n    }\n\n    const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n    if (!zoneToUse.isValid) {\n      return DateTime.invalid(unsupportedZone(zoneToUse));\n    }\n\n    return new DateTime({\n      ts: ts,\n      zone: zoneToUse,\n      loc: Locale.fromObject(options),\n    });\n  }\n\n  /**\n   * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n   * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n   * @param {Object} options - configuration options for the DateTime\n   * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n   * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n   * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n   * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n   * @return {DateTime}\n   */\n  static fromMillis(milliseconds, options = {}) {\n    if (!isNumber(milliseconds)) {\n      throw new InvalidArgumentError(\n        `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n      );\n    } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n      // this isn't perfect because we can still end up out of range because of additional shifting, but it's a start\n      return DateTime.invalid(\"Timestamp out of range\");\n    } else {\n      return new DateTime({\n        ts: milliseconds,\n        zone: normalizeZone(options.zone, Settings.defaultZone),\n        loc: Locale.fromObject(options),\n      });\n    }\n  }\n\n  /**\n   * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n   * @param {number} seconds - a number of seconds since 1970 UTC\n   * @param {Object} options - configuration options for the DateTime\n   * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n   * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n   * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n   * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n   * @return {DateTime}\n   */\n  static fromSeconds(seconds, options = {}) {\n    if (!isNumber(seconds)) {\n      throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n    } else {\n      return new DateTime({\n        ts: seconds * 1000,\n        zone: normalizeZone(options.zone, Settings.defaultZone),\n        loc: Locale.fromObject(options),\n      });\n    }\n  }\n\n  /**\n   * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n   * @param {Object} obj - the object to create the DateTime from\n   * @param {number} obj.year - a year, such as 1987\n   * @param {number} obj.month - a month, 1-12\n   * @param {number} obj.day - a day of the month, 1-31, depending on the month\n   * @param {number} obj.ordinal - day of the year, 1-365 or 366\n   * @param {number} obj.weekYear - an ISO week year\n   * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n   * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n   * @param {number} obj.localWeekYear - a week year, according to the locale\n   * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n   * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n   * @param {number} obj.hour - hour of the day, 0-23\n   * @param {number} obj.minute - minute of the hour, 0-59\n   * @param {number} obj.second - second of the minute, 0-59\n   * @param {number} obj.millisecond - millisecond of the second, 0-999\n   * @param {Object} opts - options for creating this DateTime\n   * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n   * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n   * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n   * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n   * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n   * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n   * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n   * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n   * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n   * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n   * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n   * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n   * @return {DateTime}\n   */\n  static fromObject(obj, opts = {}) {\n    obj = obj || {};\n    const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n    if (!zoneToUse.isValid) {\n      return DateTime.invalid(unsupportedZone(zoneToUse));\n    }\n\n    const loc = Locale.fromObject(opts);\n    const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n    const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n    const tsNow = Settings.now(),\n      offsetProvis = !isUndefined(opts.specificOffset)\n        ? opts.specificOffset\n        : zoneToUse.offset(tsNow),\n      containsOrdinal = !isUndefined(normalized.ordinal),\n      containsGregorYear = !isUndefined(normalized.year),\n      containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n      containsGregor = containsGregorYear || containsGregorMD,\n      definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n    // cases:\n    // just a weekday -> this week's instance of that weekday, no worries\n    // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n    // (gregorian month or day) + ordinal -> error\n    // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n    if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n      throw new ConflictingSpecificationError(\n        \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n      );\n    }\n\n    if (containsGregorMD && containsOrdinal) {\n      throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n    }\n\n    const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n    // configure ourselves to deal with gregorian dates or week stuff\n    let units,\n      defaultValues,\n      objNow = tsToObj(tsNow, offsetProvis);\n    if (useWeekData) {\n      units = orderedWeekUnits;\n      defaultValues = defaultWeekUnitValues;\n      objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n    } else if (containsOrdinal) {\n      units = orderedOrdinalUnits;\n      defaultValues = defaultOrdinalUnitValues;\n      objNow = gregorianToOrdinal(objNow);\n    } else {\n      units = orderedUnits;\n      defaultValues = defaultUnitValues;\n    }\n\n    // set default values for missing stuff\n    let foundFirst = false;\n    for (const u of units) {\n      const v = normalized[u];\n      if (!isUndefined(v)) {\n        foundFirst = true;\n      } else if (foundFirst) {\n        normalized[u] = defaultValues[u];\n      } else {\n        normalized[u] = objNow[u];\n      }\n    }\n\n    // make sure the values we have are in range\n    const higherOrderInvalid = useWeekData\n        ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n        : containsOrdinal\n        ? hasInvalidOrdinalData(normalized)\n        : hasInvalidGregorianData(normalized),\n      invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n    if (invalid) {\n      return DateTime.invalid(invalid);\n    }\n\n    // compute the actual time\n    const gregorian = useWeekData\n        ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n        : containsOrdinal\n        ? ordinalToGregorian(normalized)\n        : normalized,\n      [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n      inst = new DateTime({\n        ts: tsFinal,\n        zone: zoneToUse,\n        o: offsetFinal,\n        loc,\n      });\n\n    // gregorian data + weekday serves only to validate\n    if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n      return DateTime.invalid(\n        \"mismatched weekday\",\n        `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n      );\n    }\n\n    if (!inst.isValid) {\n      return DateTime.invalid(inst.invalid);\n    }\n\n    return inst;\n  }\n\n  /**\n   * Create a DateTime from an ISO 8601 string\n   * @param {string} text - the ISO string\n   * @param {Object} opts - options to affect the creation\n   * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n   * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n   * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n   * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n   * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n   * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance\n   * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n   * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n   * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n   * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n   * @example DateTime.fromISO('2016-W05-4')\n   * @return {DateTime}\n   */\n  static fromISO(text, opts = {}) {\n    const [vals, parsedZone] = parseISODate(text);\n    return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n  }\n\n  /**\n   * Create a DateTime from an RFC 2822 string\n   * @param {string} text - the RFC 2822 string\n   * @param {Object} opts - options to affect the creation\n   * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n   * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n   * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n   * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n   * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n   * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n   * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n   * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n   * @return {DateTime}\n   */\n  static fromRFC2822(text, opts = {}) {\n    const [vals, parsedZone] = parseRFC2822Date(text);\n    return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n  }\n\n  /**\n   * Create a DateTime from an HTTP header date\n   * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n   * @param {string} text - the HTTP header date\n   * @param {Object} opts - options to affect the creation\n   * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n   * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n   * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n   * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n   * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n   * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n   * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n   * @example DateTime.fromHTTP('Sun Nov  6 08:49:37 1994')\n   * @return {DateTime}\n   */\n  static fromHTTP(text, opts = {}) {\n    const [vals, parsedZone] = parseHTTPDate(text);\n    return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n  }\n\n  /**\n   * Create a DateTime from an input string and format string.\n   * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n   * @param {string} text - the string to parse\n   * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n   * @param {Object} opts - options to affect the creation\n   * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n   * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n   * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n   * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n   * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n   * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @return {DateTime}\n   */\n  static fromFormat(text, fmt, opts = {}) {\n    if (isUndefined(text) || isUndefined(fmt)) {\n      throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n    }\n\n    const { locale = null, numberingSystem = null } = opts,\n      localeToUse = Locale.fromOpts({\n        locale,\n        numberingSystem,\n        defaultToEN: true,\n      }),\n      [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n    if (invalid) {\n      return DateTime.invalid(invalid);\n    } else {\n      return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n    }\n  }\n\n  /**\n   * @deprecated use fromFormat instead\n   */\n  static fromString(text, fmt, opts = {}) {\n    return DateTime.fromFormat(text, fmt, opts);\n  }\n\n  /**\n   * Create a DateTime from a SQL date, time, or datetime\n   * Defaults to en-US if no locale has been specified, regardless of the system's locale\n   * @param {string} text - the string to parse\n   * @param {Object} opts - options to affect the creation\n   * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n   * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n   * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n   * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n   * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n   * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n   * @example DateTime.fromSQL('2017-05-15')\n   * @example DateTime.fromSQL('2017-05-15 09:12:34')\n   * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n   * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n   * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n   * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n   * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n   * @example DateTime.fromSQL('09:12:34.342')\n   * @return {DateTime}\n   */\n  static fromSQL(text, opts = {}) {\n    const [vals, parsedZone] = parseSQL(text);\n    return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n  }\n\n  /**\n   * Create an invalid DateTime.\n   * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n   * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n   * @return {DateTime}\n   */\n  static invalid(reason, explanation = null) {\n    if (!reason) {\n      throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n    }\n\n    const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n    if (Settings.throwOnInvalid) {\n      throw new InvalidDateTimeError(invalid);\n    } else {\n      return new DateTime({ invalid });\n    }\n  }\n\n  /**\n   * Check if an object is an instance of DateTime. Works across context boundaries\n   * @param {object} o\n   * @return {boolean}\n   */\n  static isDateTime(o) {\n    return (o && o.isLuxonDateTime) || false;\n  }\n\n  /**\n   * Produce the format string for a set of options\n   * @param formatOpts\n   * @param localeOpts\n   * @returns {string}\n   */\n  static parseFormatForOpts(formatOpts, localeOpts = {}) {\n    const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n    return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n  }\n\n  /**\n   * Produce the the fully expanded format token for the locale\n   * Does NOT quote characters, so quoted tokens will not round trip correctly\n   * @param fmt\n   * @param localeOpts\n   * @returns {string}\n   */\n  static expandFormat(fmt, localeOpts = {}) {\n    const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n    return expanded.map((t) => t.val).join(\"\");\n  }\n\n  static resetCache() {\n    zoneOffsetTs = undefined;\n    zoneOffsetGuessCache = {};\n  }\n\n  // INFO\n\n  /**\n   * Get the value of unit.\n   * @param {string} unit - a unit such as 'minute' or 'day'\n   * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n   * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n   * @return {number}\n   */\n  get(unit) {\n    return this[unit];\n  }\n\n  /**\n   * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n   * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n   * * The DateTime was created by an operation on another invalid date\n   * @type {boolean}\n   */\n  get isValid() {\n    return this.invalid === null;\n  }\n\n  /**\n   * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n   * @type {string}\n   */\n  get invalidReason() {\n    return this.invalid ? this.invalid.reason : null;\n  }\n\n  /**\n   * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n   * @type {string}\n   */\n  get invalidExplanation() {\n    return this.invalid ? this.invalid.explanation : null;\n  }\n\n  /**\n   * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n   *\n   * @type {string}\n   */\n  get locale() {\n    return this.isValid ? this.loc.locale : null;\n  }\n\n  /**\n   * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n   *\n   * @type {string}\n   */\n  get numberingSystem() {\n    return this.isValid ? this.loc.numberingSystem : null;\n  }\n\n  /**\n   * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n   *\n   * @type {string}\n   */\n  get outputCalendar() {\n    return this.isValid ? this.loc.outputCalendar : null;\n  }\n\n  /**\n   * Get the time zone associated with this DateTime.\n   * @type {Zone}\n   */\n  get zone() {\n    return this._zone;\n  }\n\n  /**\n   * Get the name of the time zone.\n   * @type {string}\n   */\n  get zoneName() {\n    return this.isValid ? this.zone.name : null;\n  }\n\n  /**\n   * Get the year\n   * @example DateTime.local(2017, 5, 25).year //=> 2017\n   * @type {number}\n   */\n  get year() {\n    return this.isValid ? this.c.year : NaN;\n  }\n\n  /**\n   * Get the quarter\n   * @example DateTime.local(2017, 5, 25).quarter //=> 2\n   * @type {number}\n   */\n  get quarter() {\n    return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n  }\n\n  /**\n   * Get the month (1-12).\n   * @example DateTime.local(2017, 5, 25).month //=> 5\n   * @type {number}\n   */\n  get month() {\n    return this.isValid ? this.c.month : NaN;\n  }\n\n  /**\n   * Get the day of the month (1-30ish).\n   * @example DateTime.local(2017, 5, 25).day //=> 25\n   * @type {number}\n   */\n  get day() {\n    return this.isValid ? this.c.day : NaN;\n  }\n\n  /**\n   * Get the hour of the day (0-23).\n   * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n   * @type {number}\n   */\n  get hour() {\n    return this.isValid ? this.c.hour : NaN;\n  }\n\n  /**\n   * Get the minute of the hour (0-59).\n   * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n   * @type {number}\n   */\n  get minute() {\n    return this.isValid ? this.c.minute : NaN;\n  }\n\n  /**\n   * Get the second of the minute (0-59).\n   * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n   * @type {number}\n   */\n  get second() {\n    return this.isValid ? this.c.second : NaN;\n  }\n\n  /**\n   * Get the millisecond of the second (0-999).\n   * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n   * @type {number}\n   */\n  get millisecond() {\n    return this.isValid ? this.c.millisecond : NaN;\n  }\n\n  /**\n   * Get the week year\n   * @see https://en.wikipedia.org/wiki/ISO_week_date\n   * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n   * @type {number}\n   */\n  get weekYear() {\n    return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n  }\n\n  /**\n   * Get the week number of the week year (1-52ish).\n   * @see https://en.wikipedia.org/wiki/ISO_week_date\n   * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n   * @type {number}\n   */\n  get weekNumber() {\n    return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n  }\n\n  /**\n   * Get the day of the week.\n   * 1 is Monday and 7 is Sunday\n   * @see https://en.wikipedia.org/wiki/ISO_week_date\n   * @example DateTime.local(2014, 11, 31).weekday //=> 4\n   * @type {number}\n   */\n  get weekday() {\n    return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n  }\n\n  /**\n   * Returns true if this date is on a weekend according to the locale, false otherwise\n   * @returns {boolean}\n   */\n  get isWeekend() {\n    return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n  }\n\n  /**\n   * Get the day of the week according to the locale.\n   * 1 is the first day of the week and 7 is the last day of the week.\n   * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n   * @returns {number}\n   */\n  get localWeekday() {\n    return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n  }\n\n  /**\n   * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n   * because the week can start on different days of the week (see localWeekday) and because a different number of days\n   * is required for a week to count as the first week of a year.\n   * @returns {number}\n   */\n  get localWeekNumber() {\n    return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n  }\n\n  /**\n   * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n   * differently, see localWeekNumber.\n   * @returns {number}\n   */\n  get localWeekYear() {\n    return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n  }\n\n  /**\n   * Get the ordinal (meaning the day of the year)\n   * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n   * @type {number|DateTime}\n   */\n  get ordinal() {\n    return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n  }\n\n  /**\n   * Get the human readable short month name, such as 'Oct'.\n   * Defaults to the system's locale if no locale has been specified\n   * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n   * @type {string}\n   */\n  get monthShort() {\n    return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n  }\n\n  /**\n   * Get the human readable long month name, such as 'October'.\n   * Defaults to the system's locale if no locale has been specified\n   * @example DateTime.local(2017, 10, 30).monthLong //=> October\n   * @type {string}\n   */\n  get monthLong() {\n    return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n  }\n\n  /**\n   * Get the human readable short weekday, such as 'Mon'.\n   * Defaults to the system's locale if no locale has been specified\n   * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n   * @type {string}\n   */\n  get weekdayShort() {\n    return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n  }\n\n  /**\n   * Get the human readable long weekday, such as 'Monday'.\n   * Defaults to the system's locale if no locale has been specified\n   * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n   * @type {string}\n   */\n  get weekdayLong() {\n    return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n  }\n\n  /**\n   * Get the UTC offset of this DateTime in minutes\n   * @example DateTime.now().offset //=> -240\n   * @example DateTime.utc().offset //=> 0\n   * @type {number}\n   */\n  get offset() {\n    return this.isValid ? +this.o : NaN;\n  }\n\n  /**\n   * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n   * Defaults to the system's locale if no locale has been specified\n   * @type {string}\n   */\n  get offsetNameShort() {\n    if (this.isValid) {\n      return this.zone.offsetName(this.ts, {\n        format: \"short\",\n        locale: this.locale,\n      });\n    } else {\n      return null;\n    }\n  }\n\n  /**\n   * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n   * Defaults to the system's locale if no locale has been specified\n   * @type {string}\n   */\n  get offsetNameLong() {\n    if (this.isValid) {\n      return this.zone.offsetName(this.ts, {\n        format: \"long\",\n        locale: this.locale,\n      });\n    } else {\n      return null;\n    }\n  }\n\n  /**\n   * Get whether this zone's offset ever changes, as in a DST.\n   * @type {boolean}\n   */\n  get isOffsetFixed() {\n    return this.isValid ? this.zone.isUniversal : null;\n  }\n\n  /**\n   * Get whether the DateTime is in a DST.\n   * @type {boolean}\n   */\n  get isInDST() {\n    if (this.isOffsetFixed) {\n      return false;\n    } else {\n      return (\n        this.offset > this.set({ month: 1, day: 1 }).offset ||\n        this.offset > this.set({ month: 5 }).offset\n      );\n    }\n  }\n\n  /**\n   * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n   * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n   * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n   * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n   * @returns {DateTime[]}\n   */\n  getPossibleOffsets() {\n    if (!this.isValid || this.isOffsetFixed) {\n      return [this];\n    }\n    const dayMs = 86400000;\n    const minuteMs = 60000;\n    const localTS = objToLocalTS(this.c);\n    const oEarlier = this.zone.offset(localTS - dayMs);\n    const oLater = this.zone.offset(localTS + dayMs);\n\n    const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n    const o2 = this.zone.offset(localTS - oLater * minuteMs);\n    if (o1 === o2) {\n      return [this];\n    }\n    const ts1 = localTS - o1 * minuteMs;\n    const ts2 = localTS - o2 * minuteMs;\n    const c1 = tsToObj(ts1, o1);\n    const c2 = tsToObj(ts2, o2);\n    if (\n      c1.hour === c2.hour &&\n      c1.minute === c2.minute &&\n      c1.second === c2.second &&\n      c1.millisecond === c2.millisecond\n    ) {\n      return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n    }\n    return [this];\n  }\n\n  /**\n   * Returns true if this DateTime is in a leap year, false otherwise\n   * @example DateTime.local(2016).isInLeapYear //=> true\n   * @example DateTime.local(2013).isInLeapYear //=> false\n   * @type {boolean}\n   */\n  get isInLeapYear() {\n    return isLeapYear(this.year);\n  }\n\n  /**\n   * Returns the number of days in this DateTime's month\n   * @example DateTime.local(2016, 2).daysInMonth //=> 29\n   * @example DateTime.local(2016, 3).daysInMonth //=> 31\n   * @type {number}\n   */\n  get daysInMonth() {\n    return daysInMonth(this.year, this.month);\n  }\n\n  /**\n   * Returns the number of days in this DateTime's year\n   * @example DateTime.local(2016).daysInYear //=> 366\n   * @example DateTime.local(2013).daysInYear //=> 365\n   * @type {number}\n   */\n  get daysInYear() {\n    return this.isValid ? daysInYear(this.year) : NaN;\n  }\n\n  /**\n   * Returns the number of weeks in this DateTime's year\n   * @see https://en.wikipedia.org/wiki/ISO_week_date\n   * @example DateTime.local(2004).weeksInWeekYear //=> 53\n   * @example DateTime.local(2013).weeksInWeekYear //=> 52\n   * @type {number}\n   */\n  get weeksInWeekYear() {\n    return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n  }\n\n  /**\n   * Returns the number of weeks in this DateTime's local week year\n   * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n   * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n   * @type {number}\n   */\n  get weeksInLocalWeekYear() {\n    return this.isValid\n      ? weeksInWeekYear(\n          this.localWeekYear,\n          this.loc.getMinDaysInFirstWeek(),\n          this.loc.getStartOfWeek()\n        )\n      : NaN;\n  }\n\n  /**\n   * Returns the resolved Intl options for this DateTime.\n   * This is useful in understanding the behavior of formatting methods\n   * @param {Object} opts - the same options as toLocaleString\n   * @return {Object}\n   */\n  resolvedLocaleOptions(opts = {}) {\n    const { locale, numberingSystem, calendar } = Formatter.create(\n      this.loc.clone(opts),\n      opts\n    ).resolvedOptions(this);\n    return { locale, numberingSystem, outputCalendar: calendar };\n  }\n\n  // TRANSFORM\n\n  /**\n   * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n   *\n   * Equivalent to {@link DateTime#setZone}('utc')\n   * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n   * @param {Object} [opts={}] - options to pass to `setZone()`\n   * @return {DateTime}\n   */\n  toUTC(offset = 0, opts = {}) {\n    return this.setZone(FixedOffsetZone.instance(offset), opts);\n  }\n\n  /**\n   * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n   *\n   * Equivalent to `setZone('local')`\n   * @return {DateTime}\n   */\n  toLocal() {\n    return this.setZone(Settings.defaultZone);\n  }\n\n  /**\n   * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n   *\n   * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n   * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n   * @param {Object} opts - options\n   * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n   * @return {DateTime}\n   */\n  setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n    zone = normalizeZone(zone, Settings.defaultZone);\n    if (zone.equals(this.zone)) {\n      return this;\n    } else if (!zone.isValid) {\n      return DateTime.invalid(unsupportedZone(zone));\n    } else {\n      let newTS = this.ts;\n      if (keepLocalTime || keepCalendarTime) {\n        const offsetGuess = zone.offset(this.ts);\n        const asObj = this.toObject();\n        [newTS] = objToTS(asObj, offsetGuess, zone);\n      }\n      return clone(this, { ts: newTS, zone });\n    }\n  }\n\n  /**\n   * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n   * @param {Object} properties - the properties to set\n   * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n   * @return {DateTime}\n   */\n  reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n    const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n    return clone(this, { loc });\n  }\n\n  /**\n   * \"Set\" the locale. Returns a newly-constructed DateTime.\n   * Just a convenient alias for reconfigure({ locale })\n   * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n   * @return {DateTime}\n   */\n  setLocale(locale) {\n    return this.reconfigure({ locale });\n  }\n\n  /**\n   * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n   * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n   *\n   * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n   * They cannot be mixed with ISO-week units like `weekday`.\n   * @param {Object} values - a mapping of units to numbers\n   * @example dt.set({ year: 2017 })\n   * @example dt.set({ hour: 8, minute: 30 })\n   * @example dt.set({ weekday: 5 })\n   * @example dt.set({ year: 2005, ordinal: 234 })\n   * @return {DateTime}\n   */\n  set(values) {\n    if (!this.isValid) return this;\n\n    const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n    const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n    const settingWeekStuff =\n        !isUndefined(normalized.weekYear) ||\n        !isUndefined(normalized.weekNumber) ||\n        !isUndefined(normalized.weekday),\n      containsOrdinal = !isUndefined(normalized.ordinal),\n      containsGregorYear = !isUndefined(normalized.year),\n      containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n      containsGregor = containsGregorYear || containsGregorMD,\n      definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n    if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n      throw new ConflictingSpecificationError(\n        \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n      );\n    }\n\n    if (containsGregorMD && containsOrdinal) {\n      throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n    }\n\n    let mixed;\n    if (settingWeekStuff) {\n      mixed = weekToGregorian(\n        { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n        minDaysInFirstWeek,\n        startOfWeek\n      );\n    } else if (!isUndefined(normalized.ordinal)) {\n      mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n    } else {\n      mixed = { ...this.toObject(), ...normalized };\n\n      // if we didn't set the day but we ended up on an overflow date,\n      // use the last day of the right month\n      if (isUndefined(normalized.day)) {\n        mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n      }\n    }\n\n    const [ts, o] = objToTS(mixed, this.o, this.zone);\n    return clone(this, { ts, o });\n  }\n\n  /**\n   * Add a period of time to this DateTime and return the resulting DateTime\n   *\n   * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n   * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n   * @example DateTime.now().plus(123) //~> in 123 milliseconds\n   * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n   * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n   * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n   * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n   * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n   * @return {DateTime}\n   */\n  plus(duration) {\n    if (!this.isValid) return this;\n    const dur = Duration.fromDurationLike(duration);\n    return clone(this, adjustTime(this, dur));\n  }\n\n  /**\n   * Subtract a period of time to this DateTime and return the resulting DateTime\n   * See {@link DateTime#plus}\n   * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n   @return {DateTime}\n   */\n  minus(duration) {\n    if (!this.isValid) return this;\n    const dur = Duration.fromDurationLike(duration).negate();\n    return clone(this, adjustTime(this, dur));\n  }\n\n  /**\n   * \"Set\" this DateTime to the beginning of a unit of time.\n   * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n   * @param {Object} opts - options\n   * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n   * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n   * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n   * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n   * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n   * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n   * @return {DateTime}\n   */\n  startOf(unit, { useLocaleWeeks = false } = {}) {\n    if (!this.isValid) return this;\n\n    const o = {},\n      normalizedUnit = Duration.normalizeUnit(unit);\n    switch (normalizedUnit) {\n      case \"years\":\n        o.month = 1;\n      // falls through\n      case \"quarters\":\n      case \"months\":\n        o.day = 1;\n      // falls through\n      case \"weeks\":\n      case \"days\":\n        o.hour = 0;\n      // falls through\n      case \"hours\":\n        o.minute = 0;\n      // falls through\n      case \"minutes\":\n        o.second = 0;\n      // falls through\n      case \"seconds\":\n        o.millisecond = 0;\n        break;\n      case \"milliseconds\":\n        break;\n      // no default, invalid units throw in normalizeUnit()\n    }\n\n    if (normalizedUnit === \"weeks\") {\n      if (useLocaleWeeks) {\n        const startOfWeek = this.loc.getStartOfWeek();\n        const { weekday } = this;\n        if (weekday < startOfWeek) {\n          o.weekNumber = this.weekNumber - 1;\n        }\n        o.weekday = startOfWeek;\n      } else {\n        o.weekday = 1;\n      }\n    }\n\n    if (normalizedUnit === \"quarters\") {\n      const q = Math.ceil(this.month / 3);\n      o.month = (q - 1) * 3 + 1;\n    }\n\n    return this.set(o);\n  }\n\n  /**\n   * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n   * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n   * @param {Object} opts - options\n   * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n   * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n   * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n   * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n   * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n   * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n   * @return {DateTime}\n   */\n  endOf(unit, opts) {\n    return this.isValid\n      ? this.plus({ [unit]: 1 })\n          .startOf(unit, opts)\n          .minus(1)\n      : this;\n  }\n\n  // OUTPUT\n\n  /**\n   * Returns a string representation of this DateTime formatted according to the specified format string.\n   * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n   * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n   * @param {string} fmt - the format string\n   * @param {Object} opts - opts to override the configuration options on this DateTime\n   * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n   * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n   * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n   * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n   * @return {string}\n   */\n  toFormat(fmt, opts = {}) {\n    return this.isValid\n      ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n      : INVALID;\n  }\n\n  /**\n   * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n   * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n   * of the DateTime in the assigned locale.\n   * Defaults to the system's locale if no locale has been specified\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n   * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n   * @param {Object} opts - opts to override the configuration options on this DateTime\n   * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n   * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n   * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n   * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n   * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n   * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n   * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n   * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n   * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n   * @return {string}\n   */\n  toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n    return this.isValid\n      ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n      : INVALID;\n  }\n\n  /**\n   * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n   * Defaults to the system's locale if no locale has been specified\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n   * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n   * @example DateTime.now().toLocaleParts(); //=> [\n   *                                   //=>   { type: 'day', value: '25' },\n   *                                   //=>   { type: 'literal', value: '/' },\n   *                                   //=>   { type: 'month', value: '05' },\n   *                                   //=>   { type: 'literal', value: '/' },\n   *                                   //=>   { type: 'year', value: '1982' }\n   *                                   //=> ]\n   */\n  toLocaleParts(opts = {}) {\n    return this.isValid\n      ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n      : [];\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this DateTime\n   * @param {Object} opts - options\n   * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n   * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n   * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n   * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n   * @param {string} [opts.format='extended'] - choose between the basic and extended format\n   * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n   * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n   * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n   * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n   * @return {string}\n   */\n  toISO({\n    format = \"extended\",\n    suppressSeconds = false,\n    suppressMilliseconds = false,\n    includeOffset = true,\n    extendedZone = false,\n  } = {}) {\n    if (!this.isValid) {\n      return null;\n    }\n\n    const ext = format === \"extended\";\n\n    let c = toISODate(this, ext);\n    c += \"T\";\n    c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n    return c;\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this DateTime's date component\n   * @param {Object} opts - options\n   * @param {string} [opts.format='extended'] - choose between the basic and extended format\n   * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n   * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n   * @return {string}\n   */\n  toISODate({ format = \"extended\" } = {}) {\n    if (!this.isValid) {\n      return null;\n    }\n\n    return toISODate(this, format === \"extended\");\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this DateTime's week date\n   * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n   * @return {string}\n   */\n  toISOWeekDate() {\n    return toTechFormat(this, \"kkkk-'W'WW-c\");\n  }\n\n  /**\n   * Returns an ISO 8601-compliant string representation of this DateTime's time component\n   * @param {Object} opts - options\n   * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n   * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n   * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n   * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n   * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n   * @param {string} [opts.format='extended'] - choose between the basic and extended format\n   * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n   * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n   * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n   * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n   * @return {string}\n   */\n  toISOTime({\n    suppressMilliseconds = false,\n    suppressSeconds = false,\n    includeOffset = true,\n    includePrefix = false,\n    extendedZone = false,\n    format = \"extended\",\n  } = {}) {\n    if (!this.isValid) {\n      return null;\n    }\n\n    let c = includePrefix ? \"T\" : \"\";\n    return (\n      c +\n      toISOTime(\n        this,\n        format === \"extended\",\n        suppressSeconds,\n        suppressMilliseconds,\n        includeOffset,\n        extendedZone\n      )\n    );\n  }\n\n  /**\n   * Returns an RFC 2822-compatible string representation of this DateTime\n   * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n   * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n   * @return {string}\n   */\n  toRFC2822() {\n    return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n  }\n\n  /**\n   * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n   * Specifically, the string conforms to RFC 1123.\n   * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n   * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n   * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n   * @return {string}\n   */\n  toHTTP() {\n    return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n  }\n\n  /**\n   * Returns a string representation of this DateTime appropriate for use in SQL Date\n   * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n   * @return {string}\n   */\n  toSQLDate() {\n    if (!this.isValid) {\n      return null;\n    }\n    return toISODate(this, true);\n  }\n\n  /**\n   * Returns a string representation of this DateTime appropriate for use in SQL Time\n   * @param {Object} opts - options\n   * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n   * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n   * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n   * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n   * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n   * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n   * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n   * @return {string}\n   */\n  toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n    let fmt = \"HH:mm:ss.SSS\";\n\n    if (includeZone || includeOffset) {\n      if (includeOffsetSpace) {\n        fmt += \" \";\n      }\n      if (includeZone) {\n        fmt += \"z\";\n      } else if (includeOffset) {\n        fmt += \"ZZ\";\n      }\n    }\n\n    return toTechFormat(this, fmt, true);\n  }\n\n  /**\n   * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n   * @param {Object} opts - options\n   * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n   * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n   * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n   * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n   * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n   * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n   * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n   * @return {string}\n   */\n  toSQL(opts = {}) {\n    if (!this.isValid) {\n      return null;\n    }\n\n    return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n  }\n\n  /**\n   * Returns a string representation of this DateTime appropriate for debugging\n   * @return {string}\n   */\n  toString() {\n    return this.isValid ? this.toISO() : INVALID;\n  }\n\n  /**\n   * Returns a string representation of this DateTime appropriate for the REPL.\n   * @return {string}\n   */\n  [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n    if (this.isValid) {\n      return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n    } else {\n      return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n    }\n  }\n\n  /**\n   * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n   * @return {number}\n   */\n  valueOf() {\n    return this.toMillis();\n  }\n\n  /**\n   * Returns the epoch milliseconds of this DateTime.\n   * @return {number}\n   */\n  toMillis() {\n    return this.isValid ? this.ts : NaN;\n  }\n\n  /**\n   * Returns the epoch seconds of this DateTime.\n   * @return {number}\n   */\n  toSeconds() {\n    return this.isValid ? this.ts / 1000 : NaN;\n  }\n\n  /**\n   * Returns the epoch seconds (as a whole number) of this DateTime.\n   * @return {number}\n   */\n  toUnixInteger() {\n    return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n  }\n\n  /**\n   * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n   * @return {string}\n   */\n  toJSON() {\n    return this.toISO();\n  }\n\n  /**\n   * Returns a BSON serializable equivalent to this DateTime.\n   * @return {Date}\n   */\n  toBSON() {\n    return this.toJSDate();\n  }\n\n  /**\n   * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n   * @param opts - options for generating the object\n   * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n   * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n   * @return {Object}\n   */\n  toObject(opts = {}) {\n    if (!this.isValid) return {};\n\n    const base = { ...this.c };\n\n    if (opts.includeConfig) {\n      base.outputCalendar = this.outputCalendar;\n      base.numberingSystem = this.loc.numberingSystem;\n      base.locale = this.loc.locale;\n    }\n    return base;\n  }\n\n  /**\n   * Returns a JavaScript Date equivalent to this DateTime.\n   * @return {Date}\n   */\n  toJSDate() {\n    return new Date(this.isValid ? this.ts : NaN);\n  }\n\n  // COMPARE\n\n  /**\n   * Return the difference between two DateTimes as a Duration.\n   * @param {DateTime} otherDateTime - the DateTime to compare this one to\n   * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n   * @param {Object} opts - options that affect the creation of the Duration\n   * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n   * @example\n   * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n   *     i2 = DateTime.fromISO('1983-10-14T10:30');\n   * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n   * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n   * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n   * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n   * @return {Duration}\n   */\n  diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n    if (!this.isValid || !otherDateTime.isValid) {\n      return Duration.invalid(\"created by diffing an invalid DateTime\");\n    }\n\n    const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n    const units = maybeArray(unit).map(Duration.normalizeUnit),\n      otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n      earlier = otherIsLater ? this : otherDateTime,\n      later = otherIsLater ? otherDateTime : this,\n      diffed = diff(earlier, later, units, durOpts);\n\n    return otherIsLater ? diffed.negate() : diffed;\n  }\n\n  /**\n   * Return the difference between this DateTime and right now.\n   * See {@link DateTime#diff}\n   * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n   * @param {Object} opts - options that affect the creation of the Duration\n   * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n   * @return {Duration}\n   */\n  diffNow(unit = \"milliseconds\", opts = {}) {\n    return this.diff(DateTime.now(), unit, opts);\n  }\n\n  /**\n   * Return an Interval spanning between this DateTime and another DateTime\n   * @param {DateTime} otherDateTime - the other end point of the Interval\n   * @return {Interval}\n   */\n  until(otherDateTime) {\n    return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n  }\n\n  /**\n   * Return whether this DateTime is in the same unit of time as another DateTime.\n   * Higher-order units must also be identical for this function to return `true`.\n   * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n   * @param {DateTime} otherDateTime - the other DateTime\n   * @param {string} unit - the unit of time to check sameness on\n   * @param {Object} opts - options\n   * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n   * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n   * @return {boolean}\n   */\n  hasSame(otherDateTime, unit, opts) {\n    if (!this.isValid) return false;\n\n    const inputMs = otherDateTime.valueOf();\n    const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n    return (\n      adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n    );\n  }\n\n  /**\n   * Equality check\n   * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n   * To compare just the millisecond values, use `+dt1 === +dt2`.\n   * @param {DateTime} other - the other DateTime\n   * @return {boolean}\n   */\n  equals(other) {\n    return (\n      this.isValid &&\n      other.isValid &&\n      this.valueOf() === other.valueOf() &&\n      this.zone.equals(other.zone) &&\n      this.loc.equals(other.loc)\n    );\n  }\n\n  /**\n   * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n   * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n   * @param {Object} options - options that affect the output\n   * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n   * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n   * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n   * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n   * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n   * @param {string} options.locale - override the locale of this DateTime\n   * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n   * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n   * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n   * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n   * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n   * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n   * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n   */\n  toRelative(options = {}) {\n    if (!this.isValid) return null;\n    const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n      padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n    let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n    let unit = options.unit;\n    if (Array.isArray(options.unit)) {\n      units = options.unit;\n      unit = undefined;\n    }\n    return diffRelative(base, this.plus(padding), {\n      ...options,\n      numeric: \"always\",\n      units,\n      unit,\n    });\n  }\n\n  /**\n   * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n   * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n   * @param {Object} options - options that affect the output\n   * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n   * @param {string} options.locale - override the locale of this DateTime\n   * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n   * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n   * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n   * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n   * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n   * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n   */\n  toRelativeCalendar(options = {}) {\n    if (!this.isValid) return null;\n\n    return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n      ...options,\n      numeric: \"auto\",\n      units: [\"years\", \"months\", \"days\"],\n      calendary: true,\n    });\n  }\n\n  /**\n   * Return the min of several date times\n   * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n   * @return {DateTime} the min DateTime, or undefined if called with no argument\n   */\n  static min(...dateTimes) {\n    if (!dateTimes.every(DateTime.isDateTime)) {\n      throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n    }\n    return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n  }\n\n  /**\n   * Return the max of several date times\n   * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n   * @return {DateTime} the max DateTime, or undefined if called with no argument\n   */\n  static max(...dateTimes) {\n    if (!dateTimes.every(DateTime.isDateTime)) {\n      throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n    }\n    return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n  }\n\n  // MISC\n\n  /**\n   * Explain how a string would be parsed by fromFormat()\n   * @param {string} text - the string to parse\n   * @param {string} fmt - the format the string is expected to be in (see description)\n   * @param {Object} options - options taken by fromFormat()\n   * @return {Object}\n   */\n  static fromFormatExplain(text, fmt, options = {}) {\n    const { locale = null, numberingSystem = null } = options,\n      localeToUse = Locale.fromOpts({\n        locale,\n        numberingSystem,\n        defaultToEN: true,\n      });\n    return explainFromTokens(localeToUse, text, fmt);\n  }\n\n  /**\n   * @deprecated use fromFormatExplain instead\n   */\n  static fromStringExplain(text, fmt, options = {}) {\n    return DateTime.fromFormatExplain(text, fmt, options);\n  }\n\n  /**\n   * Build a parser for `fmt` using the given locale. This parser can be passed\n   * to {@link DateTime.fromFormatParser} to a parse a date in this format. This\n   * can be used to optimize cases where many dates need to be parsed in a\n   * specific format.\n   *\n   * @param {String} fmt - the format the string is expected to be in (see\n   * description)\n   * @param {Object} options - options used to set locale and numberingSystem\n   * for parser\n   * @returns {TokenParser} - opaque object to be used\n   */\n  static buildFormatParser(fmt, options = {}) {\n    const { locale = null, numberingSystem = null } = options,\n      localeToUse = Locale.fromOpts({\n        locale,\n        numberingSystem,\n        defaultToEN: true,\n      });\n    return new TokenParser(localeToUse, fmt);\n  }\n\n  /**\n   * Create a DateTime from an input string and format parser.\n   *\n   * The format parser must have been created with the same locale as this call.\n   *\n   * @param {String} text - the string to parse\n   * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser}\n   * @param {Object} opts - options taken by fromFormat()\n   * @returns {DateTime}\n   */\n  static fromFormatParser(text, formatParser, opts = {}) {\n    if (isUndefined(text) || isUndefined(formatParser)) {\n      throw new InvalidArgumentError(\n        \"fromFormatParser requires an input string and a format parser\"\n      );\n    }\n    const { locale = null, numberingSystem = null } = opts,\n      localeToUse = Locale.fromOpts({\n        locale,\n        numberingSystem,\n        defaultToEN: true,\n      });\n\n    if (!localeToUse.equals(formatParser.locale)) {\n      throw new InvalidArgumentError(\n        `fromFormatParser called with a locale of ${localeToUse}, ` +\n          `but the format parser was created for ${formatParser.locale}`\n      );\n    }\n\n    const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);\n\n    if (invalidReason) {\n      return DateTime.invalid(invalidReason);\n    } else {\n      return parseDataToDateTime(\n        result,\n        zone,\n        opts,\n        `format ${formatParser.format}`,\n        text,\n        specificOffset\n      );\n    }\n  }\n\n  // FORMAT PRESETS\n\n  /**\n   * {@link DateTime#toLocaleString} format like 10/14/1983\n   * @type {Object}\n   */\n  static get DATE_SHORT() {\n    return Formats.DATE_SHORT;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n   * @type {Object}\n   */\n  static get DATE_MED() {\n    return Formats.DATE_MED;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n   * @type {Object}\n   */\n  static get DATE_MED_WITH_WEEKDAY() {\n    return Formats.DATE_MED_WITH_WEEKDAY;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n   * @type {Object}\n   */\n  static get DATE_FULL() {\n    return Formats.DATE_FULL;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n   * @type {Object}\n   */\n  static get DATE_HUGE() {\n    return Formats.DATE_HUGE;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get TIME_SIMPLE() {\n    return Formats.TIME_SIMPLE;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get TIME_WITH_SECONDS() {\n    return Formats.TIME_WITH_SECONDS;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get TIME_WITH_SHORT_OFFSET() {\n    return Formats.TIME_WITH_SHORT_OFFSET;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get TIME_WITH_LONG_OFFSET() {\n    return Formats.TIME_WITH_LONG_OFFSET;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n   * @type {Object}\n   */\n  static get TIME_24_SIMPLE() {\n    return Formats.TIME_24_SIMPLE;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n   * @type {Object}\n   */\n  static get TIME_24_WITH_SECONDS() {\n    return Formats.TIME_24_WITH_SECONDS;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n   * @type {Object}\n   */\n  static get TIME_24_WITH_SHORT_OFFSET() {\n    return Formats.TIME_24_WITH_SHORT_OFFSET;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n   * @type {Object}\n   */\n  static get TIME_24_WITH_LONG_OFFSET() {\n    return Formats.TIME_24_WITH_LONG_OFFSET;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_SHORT() {\n    return Formats.DATETIME_SHORT;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_SHORT_WITH_SECONDS() {\n    return Formats.DATETIME_SHORT_WITH_SECONDS;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_MED() {\n    return Formats.DATETIME_MED;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_MED_WITH_SECONDS() {\n    return Formats.DATETIME_MED_WITH_SECONDS;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_MED_WITH_WEEKDAY() {\n    return Formats.DATETIME_MED_WITH_WEEKDAY;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_FULL() {\n    return Formats.DATETIME_FULL;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_FULL_WITH_SECONDS() {\n    return Formats.DATETIME_FULL_WITH_SECONDS;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_HUGE() {\n    return Formats.DATETIME_HUGE;\n  }\n\n  /**\n   * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n   * @type {Object}\n   */\n  static get DATETIME_HUGE_WITH_SECONDS() {\n    return Formats.DATETIME_HUGE_WITH_SECONDS;\n  }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n  if (DateTime.isDateTime(dateTimeish)) {\n    return dateTimeish;\n  } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n    return DateTime.fromJSDate(dateTimeish);\n  } else if (dateTimeish && typeof dateTimeish === \"object\") {\n    return DateTime.fromObject(dateTimeish);\n  } else {\n    throw new InvalidArgumentError(\n      `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n    );\n  }\n}\n", "import DateTime from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Info from \"./info.js\";\nimport Zone from \"./zone.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport InvalidZone from \"./zones/invalidZone.js\";\nimport SystemZone from \"./zones/systemZone.js\";\nimport Settings from \"./settings.js\";\n\nconst VERSION = \"3.5.0\";\n\nexport {\n  VERSION,\n  DateTime,\n  Duration,\n  Interval,\n  Info,\n  Zone,\n  FixedOffsetZone,\n  IANAZone,\n  InvalidZone,\n  SystemZone,\n  Settings,\n};\n", "import { promisify } from 'node:util';\nimport zlib, { constants } from 'node:zlib';\n\nconst brotliCompress = promisify(zlib.brotliCompress);\nconst brotliDecompress = promisify(zlib.brotliDecompress);\n\nexport async function compressToBase64(input: string): Promise {\n  const buf = await brotliCompress(input, {\n    params: {\n      [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT,\n      [constants.BROTLI_PARAM_QUALITY]: 8,\n    },\n  });\n  return buf.toString('base64');\n}\n\nexport async function decompressFromBase64(input: string): Promise {\n  const buf = Buffer.from(input, 'base64');\n  const str = await brotliDecompress(buf);\n  return str.toString('utf8');\n}\n", "import cacache from 'cacache';\nimport { DateTime } from 'luxon';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { compressToBase64, decompressFromBase64 } from '../../compress';\nimport type { PackageCacheNamespace } from './types';\n\nfunction getKey(namespace: PackageCacheNamespace, key: string): string {\n  return `${namespace}-${key}`;\n}\n\nlet cacheFileName: string;\n\nasync function rm(\n  namespace: PackageCacheNamespace,\n  key: string,\n): Promise {\n  logger.trace({ namespace, key }, 'Removing cache entry');\n  await cacache.rm.entry(cacheFileName, getKey(namespace, key));\n}\n\nexport async function get(\n  namespace: PackageCacheNamespace,\n  key: string,\n): Promise {\n  if (!cacheFileName) {\n    return undefined;\n  }\n  try {\n    const res = await cacache.get(cacheFileName, getKey(namespace, key));\n    const cachedValue = JSON.parse(res.data.toString());\n    if (cachedValue) {\n      if (DateTime.local() < DateTime.fromISO(cachedValue.expiry)) {\n        logger.trace({ namespace, key }, 'Returning cached value');\n        // istanbul ignore if\n        if (!cachedValue.compress) {\n          return cachedValue.value;\n        }\n        const res = await decompressFromBase64(cachedValue.value);\n        return JSON.parse(res);\n      }\n      await rm(namespace, key);\n    }\n  } catch {\n    logger.trace({ namespace, key }, 'Cache miss');\n  }\n  return undefined;\n}\n\nexport async function set(\n  namespace: PackageCacheNamespace,\n  key: string,\n  value: unknown,\n  ttlMinutes = 5,\n): Promise {\n  if (!cacheFileName) {\n    return;\n  }\n  logger.trace({ namespace, key, ttlMinutes }, 'Saving cached value');\n  await cacache.put(\n    cacheFileName,\n    getKey(namespace, key),\n    JSON.stringify({\n      compress: true,\n      value: await compressToBase64(JSON.stringify(value)),\n      expiry: DateTime.local().plus({ minutes: ttlMinutes }),\n    }),\n  );\n}\n\nexport function init(cacheDir: string): string {\n  cacheFileName = upath.join(cacheDir, '/renovate/renovate-cache-v1');\n  logger.debug('Initializing Renovate internal cache into ' + cacheFileName);\n  return cacheFileName;\n}\n\nexport async function cleanup(): Promise {\n  logger.debug('Checking file package cache for expired items');\n  let totalCount = 0;\n  let deletedCount = 0;\n  const startTime = Date.now();\n  let errorCount = 0;\n  for await (const item of cacache.ls.stream(cacheFileName)) {\n    try {\n      totalCount += 1;\n      const cachedItem = item as unknown as cacache.CacheObject;\n      const res = await cacache.get(cacheFileName, cachedItem.key);\n      let cachedValue: any;\n      try {\n        cachedValue = JSON.parse(res.data.toString());\n      } catch {\n        logger.debug('Error parsing cached value - deleting');\n      }\n      if (\n        !cachedValue ||\n        (cachedValue?.expiry &&\n          DateTime.local() > DateTime.fromISO(cachedValue.expiry))\n      ) {\n        await cacache.rm.entry(cacheFileName, cachedItem.key);\n        await cacache.rm.content(cacheFileName, cachedItem.integrity);\n        deletedCount += 1;\n      }\n    } catch (err) /* istanbul ignore next */ {\n      logger.trace({ err }, 'Error cleaning up cache entry');\n      errorCount += 1;\n    }\n  }\n  // istanbul ignore if: cannot reproduce error\n  if (errorCount > 0) {\n    logger.debug(`Error count cleaning up cache: ${errorCount}`);\n  }\n  const durationMs = Math.round(Date.now() - startTime);\n  logger.debug(\n    `Deleted ${deletedCount} of ${totalCount} file cached entries in ${durationMs}ms`,\n  );\n}\n", "import type { CombinedKey, PackageCacheNamespace } from './types';\n\n/**\n * Returns the key used by underlying storage implementations\n */\nexport function getCombinedKey(\n  namespace: PackageCacheNamespace,\n  key: string,\n): CombinedKey {\n  return `global%%${namespace}%%${key}`;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, value) {\n    return ['APPEND', key, value];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, range) {\n    const args = ['BITCOUNT', key];\n    if (range) {\n        args.push(range.start.toString(), range.end.toString());\n        if (range.mode) {\n            args.push(range.mode);\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, operations) {\n    const args = ['BITFIELD_RO', key];\n    for (const operation of operations) {\n        args.push('GET', operation.encoding, operation.offset.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, operations) {\n    const args = ['BITFIELD', key];\n    for (const options of operations) {\n        switch (options.operation) {\n            case 'GET':\n                args.push('GET', options.encoding, options.offset.toString());\n                break;\n            case 'SET':\n                args.push('SET', options.encoding, options.offset.toString(), options.value.toString());\n                break;\n            case 'INCRBY':\n                args.push('INCRBY', options.encoding, options.offset.toString(), options.increment.toString());\n                break;\n            case 'OVERFLOW':\n                args.push('OVERFLOW', options.behavior);\n                break;\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformRangeReply = exports.pushSlotRangesArguments = exports.pushSortArguments = exports.transformFunctionListItemReply = exports.RedisFunctionFlags = exports.transformCommandReply = exports.CommandCategories = exports.CommandFlags = exports.pushOptionalVerdictArgument = exports.pushVerdictArgument = exports.pushVerdictNumberArguments = exports.pushVerdictArguments = exports.pushEvalArguments = exports.evalFirstKeyIndex = exports.transformPXAT = exports.transformEXAT = exports.transformGeoMembersWithReply = exports.GeoReplyWith = exports.pushGeoRadiusStoreArguments = exports.pushGeoRadiusArguments = exports.pushGeoSearchArguments = exports.pushGeoCountArgument = exports.transformLMPopArguments = exports.transformZMPopArguments = exports.transformSortedSetWithScoresReply = exports.transformSortedSetMemberReply = exports.transformSortedSetMemberNullReply = exports.transformStreamsMessagesReply = exports.transformStreamMessagesNullReply = exports.transformStreamMessagesReply = exports.transformStreamMessageNullReply = exports.transformStreamMessageReply = exports.transformTuplesReply = exports.transformStringNumberInfinityArgument = exports.transformNumberInfinityArgument = exports.transformNumberInfinityNullArrayReply = exports.transformNumberInfinityNullReply = exports.transformNumberInfinityReply = exports.pushScanArguments = exports.transformBooleanArrayReply = exports.transformBooleanReply = void 0;\nfunction transformBooleanReply(reply) {\n    return reply === 1;\n}\nexports.transformBooleanReply = transformBooleanReply;\nfunction transformBooleanArrayReply(reply) {\n    return reply.map(transformBooleanReply);\n}\nexports.transformBooleanArrayReply = transformBooleanArrayReply;\nfunction pushScanArguments(args, cursor, options) {\n    args.push(cursor.toString());\n    if (options?.MATCH) {\n        args.push('MATCH', options.MATCH);\n    }\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.pushScanArguments = pushScanArguments;\nfunction transformNumberInfinityReply(reply) {\n    switch (reply.toString()) {\n        case '+inf':\n            return Infinity;\n        case '-inf':\n            return -Infinity;\n        default:\n            return Number(reply);\n    }\n}\nexports.transformNumberInfinityReply = transformNumberInfinityReply;\nfunction transformNumberInfinityNullReply(reply) {\n    if (reply === null)\n        return null;\n    return transformNumberInfinityReply(reply);\n}\nexports.transformNumberInfinityNullReply = transformNumberInfinityNullReply;\nfunction transformNumberInfinityNullArrayReply(reply) {\n    return reply.map(transformNumberInfinityNullReply);\n}\nexports.transformNumberInfinityNullArrayReply = transformNumberInfinityNullArrayReply;\nfunction transformNumberInfinityArgument(num) {\n    switch (num) {\n        case Infinity:\n            return '+inf';\n        case -Infinity:\n            return '-inf';\n        default:\n            return num.toString();\n    }\n}\nexports.transformNumberInfinityArgument = transformNumberInfinityArgument;\nfunction transformStringNumberInfinityArgument(num) {\n    if (typeof num !== 'number')\n        return num;\n    return transformNumberInfinityArgument(num);\n}\nexports.transformStringNumberInfinityArgument = transformStringNumberInfinityArgument;\nfunction transformTuplesReply(reply) {\n    const message = Object.create(null);\n    for (let i = 0; i < reply.length; i += 2) {\n        message[reply[i].toString()] = reply[i + 1];\n    }\n    return message;\n}\nexports.transformTuplesReply = transformTuplesReply;\nfunction transformStreamMessageReply([id, message]) {\n    return {\n        id,\n        message: transformTuplesReply(message)\n    };\n}\nexports.transformStreamMessageReply = transformStreamMessageReply;\nfunction transformStreamMessageNullReply(reply) {\n    if (reply === null)\n        return null;\n    return transformStreamMessageReply(reply);\n}\nexports.transformStreamMessageNullReply = transformStreamMessageNullReply;\nfunction transformStreamMessagesReply(reply) {\n    return reply.map(transformStreamMessageReply);\n}\nexports.transformStreamMessagesReply = transformStreamMessagesReply;\nfunction transformStreamMessagesNullReply(reply) {\n    return reply.map(transformStreamMessageNullReply);\n}\nexports.transformStreamMessagesNullReply = transformStreamMessagesNullReply;\nfunction transformStreamsMessagesReply(reply) {\n    if (reply === null)\n        return null;\n    return reply.map(([name, rawMessages]) => ({\n        name,\n        messages: transformStreamMessagesReply(rawMessages)\n    }));\n}\nexports.transformStreamsMessagesReply = transformStreamsMessagesReply;\nfunction transformSortedSetMemberNullReply(reply) {\n    if (!reply.length)\n        return null;\n    return transformSortedSetMemberReply(reply);\n}\nexports.transformSortedSetMemberNullReply = transformSortedSetMemberNullReply;\nfunction transformSortedSetMemberReply(reply) {\n    return {\n        value: reply[0],\n        score: transformNumberInfinityReply(reply[1])\n    };\n}\nexports.transformSortedSetMemberReply = transformSortedSetMemberReply;\nfunction transformSortedSetWithScoresReply(reply) {\n    const members = [];\n    for (let i = 0; i < reply.length; i += 2) {\n        members.push({\n            value: reply[i],\n            score: transformNumberInfinityReply(reply[i + 1])\n        });\n    }\n    return members;\n}\nexports.transformSortedSetWithScoresReply = transformSortedSetWithScoresReply;\nfunction transformZMPopArguments(args, keys, side, options) {\n    pushVerdictArgument(args, keys);\n    args.push(side);\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformZMPopArguments = transformZMPopArguments;\nfunction transformLMPopArguments(args, keys, side, options) {\n    pushVerdictArgument(args, keys);\n    args.push(side);\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformLMPopArguments = transformLMPopArguments;\nfunction pushGeoCountArgument(args, count) {\n    if (typeof count === 'number') {\n        args.push('COUNT', count.toString());\n    }\n    else if (count) {\n        args.push('COUNT', count.value.toString());\n        if (count.ANY) {\n            args.push('ANY');\n        }\n    }\n    return args;\n}\nexports.pushGeoCountArgument = pushGeoCountArgument;\nfunction pushGeoSearchArguments(args, key, from, by, options) {\n    args.push(key);\n    if (typeof from === 'string') {\n        args.push('FROMMEMBER', from);\n    }\n    else {\n        args.push('FROMLONLAT', from.longitude.toString(), from.latitude.toString());\n    }\n    if ('radius' in by) {\n        args.push('BYRADIUS', by.radius.toString());\n    }\n    else {\n        args.push('BYBOX', by.width.toString(), by.height.toString());\n    }\n    args.push(by.unit);\n    if (options?.SORT) {\n        args.push(options.SORT);\n    }\n    pushGeoCountArgument(args, options?.COUNT);\n    return args;\n}\nexports.pushGeoSearchArguments = pushGeoSearchArguments;\nfunction pushGeoRadiusArguments(args, key, from, radius, unit, options) {\n    args.push(key);\n    if (typeof from === 'string') {\n        args.push(from);\n    }\n    else {\n        args.push(from.longitude.toString(), from.latitude.toString());\n    }\n    args.push(radius.toString(), unit);\n    if (options?.SORT) {\n        args.push(options.SORT);\n    }\n    pushGeoCountArgument(args, options?.COUNT);\n    return args;\n}\nexports.pushGeoRadiusArguments = pushGeoRadiusArguments;\nfunction pushGeoRadiusStoreArguments(args, key, from, radius, unit, destination, options) {\n    pushGeoRadiusArguments(args, key, from, radius, unit, options);\n    if (options?.STOREDIST) {\n        args.push('STOREDIST', destination);\n    }\n    else {\n        args.push('STORE', destination);\n    }\n    return args;\n}\nexports.pushGeoRadiusStoreArguments = pushGeoRadiusStoreArguments;\nvar GeoReplyWith;\n(function (GeoReplyWith) {\n    GeoReplyWith[\"DISTANCE\"] = \"WITHDIST\";\n    GeoReplyWith[\"HASH\"] = \"WITHHASH\";\n    GeoReplyWith[\"COORDINATES\"] = \"WITHCOORD\";\n})(GeoReplyWith || (exports.GeoReplyWith = GeoReplyWith = {}));\nfunction transformGeoMembersWithReply(reply, replyWith) {\n    const replyWithSet = new Set(replyWith);\n    let index = 0;\n    const distanceIndex = replyWithSet.has(GeoReplyWith.DISTANCE) && ++index, hashIndex = replyWithSet.has(GeoReplyWith.HASH) && ++index, coordinatesIndex = replyWithSet.has(GeoReplyWith.COORDINATES) && ++index;\n    return reply.map(member => {\n        const transformedMember = {\n            member: member[0]\n        };\n        if (distanceIndex) {\n            transformedMember.distance = member[distanceIndex];\n        }\n        if (hashIndex) {\n            transformedMember.hash = member[hashIndex];\n        }\n        if (coordinatesIndex) {\n            const [longitude, latitude] = member[coordinatesIndex];\n            transformedMember.coordinates = {\n                longitude,\n                latitude\n            };\n        }\n        return transformedMember;\n    });\n}\nexports.transformGeoMembersWithReply = transformGeoMembersWithReply;\nfunction transformEXAT(EXAT) {\n    return (typeof EXAT === 'number' ? EXAT : Math.floor(EXAT.getTime() / 1000)).toString();\n}\nexports.transformEXAT = transformEXAT;\nfunction transformPXAT(PXAT) {\n    return (typeof PXAT === 'number' ? PXAT : PXAT.getTime()).toString();\n}\nexports.transformPXAT = transformPXAT;\nfunction evalFirstKeyIndex(options) {\n    return options?.keys?.[0];\n}\nexports.evalFirstKeyIndex = evalFirstKeyIndex;\nfunction pushEvalArguments(args, options) {\n    if (options?.keys) {\n        args.push(options.keys.length.toString(), ...options.keys);\n    }\n    else {\n        args.push('0');\n    }\n    if (options?.arguments) {\n        args.push(...options.arguments);\n    }\n    return args;\n}\nexports.pushEvalArguments = pushEvalArguments;\nfunction pushVerdictArguments(args, value) {\n    if (Array.isArray(value)) {\n        // https://github.com/redis/node-redis/pull/2160\n        args = args.concat(value);\n    }\n    else {\n        args.push(value);\n    }\n    return args;\n}\nexports.pushVerdictArguments = pushVerdictArguments;\nfunction pushVerdictNumberArguments(args, value) {\n    if (Array.isArray(value)) {\n        for (const item of value) {\n            args.push(item.toString());\n        }\n    }\n    else {\n        args.push(value.toString());\n    }\n    return args;\n}\nexports.pushVerdictNumberArguments = pushVerdictNumberArguments;\nfunction pushVerdictArgument(args, value) {\n    if (Array.isArray(value)) {\n        args.push(value.length.toString(), ...value);\n    }\n    else {\n        args.push('1', value);\n    }\n    return args;\n}\nexports.pushVerdictArgument = pushVerdictArgument;\nfunction pushOptionalVerdictArgument(args, name, value) {\n    if (value === undefined)\n        return args;\n    args.push(name);\n    return pushVerdictArgument(args, value);\n}\nexports.pushOptionalVerdictArgument = pushOptionalVerdictArgument;\nvar CommandFlags;\n(function (CommandFlags) {\n    CommandFlags[\"WRITE\"] = \"write\";\n    CommandFlags[\"READONLY\"] = \"readonly\";\n    CommandFlags[\"DENYOOM\"] = \"denyoom\";\n    CommandFlags[\"ADMIN\"] = \"admin\";\n    CommandFlags[\"PUBSUB\"] = \"pubsub\";\n    CommandFlags[\"NOSCRIPT\"] = \"noscript\";\n    CommandFlags[\"RANDOM\"] = \"random\";\n    CommandFlags[\"SORT_FOR_SCRIPT\"] = \"sort_for_script\";\n    CommandFlags[\"LOADING\"] = \"loading\";\n    CommandFlags[\"STALE\"] = \"stale\";\n    CommandFlags[\"SKIP_MONITOR\"] = \"skip_monitor\";\n    CommandFlags[\"ASKING\"] = \"asking\";\n    CommandFlags[\"FAST\"] = \"fast\";\n    CommandFlags[\"MOVABLEKEYS\"] = \"movablekeys\"; // keys have no pre-determined position. You must discover keys yourself.\n})(CommandFlags || (exports.CommandFlags = CommandFlags = {}));\nvar CommandCategories;\n(function (CommandCategories) {\n    CommandCategories[\"KEYSPACE\"] = \"@keyspace\";\n    CommandCategories[\"READ\"] = \"@read\";\n    CommandCategories[\"WRITE\"] = \"@write\";\n    CommandCategories[\"SET\"] = \"@set\";\n    CommandCategories[\"SORTEDSET\"] = \"@sortedset\";\n    CommandCategories[\"LIST\"] = \"@list\";\n    CommandCategories[\"HASH\"] = \"@hash\";\n    CommandCategories[\"STRING\"] = \"@string\";\n    CommandCategories[\"BITMAP\"] = \"@bitmap\";\n    CommandCategories[\"HYPERLOGLOG\"] = \"@hyperloglog\";\n    CommandCategories[\"GEO\"] = \"@geo\";\n    CommandCategories[\"STREAM\"] = \"@stream\";\n    CommandCategories[\"PUBSUB\"] = \"@pubsub\";\n    CommandCategories[\"ADMIN\"] = \"@admin\";\n    CommandCategories[\"FAST\"] = \"@fast\";\n    CommandCategories[\"SLOW\"] = \"@slow\";\n    CommandCategories[\"BLOCKING\"] = \"@blocking\";\n    CommandCategories[\"DANGEROUS\"] = \"@dangerous\";\n    CommandCategories[\"CONNECTION\"] = \"@connection\";\n    CommandCategories[\"TRANSACTION\"] = \"@transaction\";\n    CommandCategories[\"SCRIPTING\"] = \"@scripting\";\n})(CommandCategories || (exports.CommandCategories = CommandCategories = {}));\nfunction transformCommandReply([name, arity, flags, firstKeyIndex, lastKeyIndex, step, categories]) {\n    return {\n        name,\n        arity,\n        flags: new Set(flags),\n        firstKeyIndex,\n        lastKeyIndex,\n        step,\n        categories: new Set(categories)\n    };\n}\nexports.transformCommandReply = transformCommandReply;\nvar RedisFunctionFlags;\n(function (RedisFunctionFlags) {\n    RedisFunctionFlags[\"NO_WRITES\"] = \"no-writes\";\n    RedisFunctionFlags[\"ALLOW_OOM\"] = \"allow-oom\";\n    RedisFunctionFlags[\"ALLOW_STALE\"] = \"allow-stale\";\n    RedisFunctionFlags[\"NO_CLUSTER\"] = \"no-cluster\";\n})(RedisFunctionFlags || (exports.RedisFunctionFlags = RedisFunctionFlags = {}));\nfunction transformFunctionListItemReply(reply) {\n    return {\n        libraryName: reply[1],\n        engine: reply[3],\n        functions: reply[5].map(fn => ({\n            name: fn[1],\n            description: fn[3],\n            flags: fn[5]\n        }))\n    };\n}\nexports.transformFunctionListItemReply = transformFunctionListItemReply;\nfunction pushSortArguments(args, options) {\n    if (options?.BY) {\n        args.push('BY', options.BY);\n    }\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());\n    }\n    if (options?.GET) {\n        for (const pattern of (typeof options.GET === 'string' ? [options.GET] : options.GET)) {\n            args.push('GET', pattern);\n        }\n    }\n    if (options?.DIRECTION) {\n        args.push(options.DIRECTION);\n    }\n    if (options?.ALPHA) {\n        args.push('ALPHA');\n    }\n    return args;\n}\nexports.pushSortArguments = pushSortArguments;\nfunction pushSlotRangeArguments(args, range) {\n    args.push(range.start.toString(), range.end.toString());\n}\nfunction pushSlotRangesArguments(args, ranges) {\n    if (Array.isArray(ranges)) {\n        for (const range of ranges) {\n            pushSlotRangeArguments(args, range);\n        }\n    }\n    else {\n        pushSlotRangeArguments(args, ranges);\n    }\n    return args;\n}\nexports.pushSlotRangesArguments = pushSlotRangesArguments;\nfunction transformRangeReply([start, end]) {\n    return {\n        start,\n        end\n    };\n}\nexports.transformRangeReply = transformRangeReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(operation, destKey, key) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['BITOP', operation, destKey], key);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, bit, start, end, mode) {\n    const args = ['BITPOS', key, bit.toString()];\n    if (typeof start === 'number') {\n        args.push(start.toString());\n    }\n    if (typeof end === 'number') {\n        args.push(end.toString());\n    }\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination, sourceDirection, destinationDirection, timeout) {\n    return [\n        'BLMOVE',\n        source,\n        destination,\n        sourceDirection,\n        destinationDirection,\n        timeout.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(keys, side, options) {\n    return (0, generic_transformers_1.transformLMPopArguments)(['LMPOP'], keys, side, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 3;\nfunction transformArguments(timeout, keys, side, options) {\n    return (0, generic_transformers_1.transformLMPopArguments)(['BLMPOP', timeout.toString()], keys, side, options);\n}\nexports.transformArguments = transformArguments;\nvar LMPOP_1 = require(\"./LMPOP\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return LMPOP_1.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(keys, timeout) {\n    const args = (0, generic_transformers_1.pushVerdictArguments)(['BLPOP'], keys);\n    args.push(timeout.toString());\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    if (reply === null)\n        return null;\n    return {\n        key: reply[0],\n        element: reply[1]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, timeout) {\n    const args = (0, generic_transformers_1.pushVerdictArguments)(['BRPOP'], key);\n    args.push(timeout.toString());\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar BLPOP_1 = require(\"./BLPOP\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return BLPOP_1.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination, timeout) {\n    return ['BRPOPLPUSH', source, destination, timeout.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(keys, side, options) {\n    return (0, generic_transformers_1.transformZMPopArguments)(['ZMPOP'], keys, side, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply === null ? null : {\n        key: reply[0],\n        elements: reply[1].map(generic_transformers_1.transformSortedSetMemberReply)\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 3;\nfunction transformArguments(timeout, keys, side, options) {\n    return (0, generic_transformers_1.transformZMPopArguments)(['BZMPOP', timeout.toString()], keys, side, options);\n}\nexports.transformArguments = transformArguments;\nvar ZMPOP_1 = require(\"./ZMPOP\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return ZMPOP_1.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, timeout) {\n    const args = (0, generic_transformers_1.pushVerdictArguments)(['BZPOPMAX'], key);\n    args.push(timeout.toString());\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    if (!reply)\n        return null;\n    return {\n        key: reply[0],\n        value: reply[1],\n        score: (0, generic_transformers_1.transformNumberInfinityReply)(reply[2])\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, timeout) {\n    const args = (0, generic_transformers_1.pushVerdictArguments)(['BZPOPMIN'], key);\n    args.push(timeout.toString());\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar BZPOPMAX_1 = require(\"./BZPOPMAX\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return BZPOPMAX_1.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination, options) {\n    const args = ['COPY', source, destination];\n    if (options?.destinationDb) {\n        args.push('DB', options.destinationDb.toString());\n    }\n    if (options?.replace) {\n        args.push('REPLACE');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['DECR', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, decrement) {\n    return ['DECRBY', key, decrement.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['DEL'], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['DUMP', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(script, options) {\n    return (0, generic_transformers_1.pushEvalArguments)(['EVAL_RO', script], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex;\nfunction transformArguments(script, options) {\n    return (0, generic_transformers_1.pushEvalArguments)(['EVAL', script], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(sha1, options) {\n    return (0, generic_transformers_1.pushEvalArguments)(['EVALSHA_RO', sha1], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex;\nfunction transformArguments(sha1, options) {\n    return (0, generic_transformers_1.pushEvalArguments)(['EVALSHA', sha1], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['EXISTS'], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, seconds, mode) {\n    const args = ['EXPIRE', key, seconds.toString()];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, timestamp, mode) {\n    const args = [\n        'EXPIREAT',\n        key,\n        (0, generic_transformers_1.transformEXAT)(timestamp)\n    ];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['EXPIRETIME', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(fn, options) {\n    return (0, generic_transformers_1.pushEvalArguments)(['FCALL_RO', fn], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex;\nfunction transformArguments(fn, options) {\n    return (0, generic_transformers_1.pushEvalArguments)(['FCALL', fn], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, toAdd, options) {\n    const args = ['GEOADD', key];\n    if (options?.NX) {\n        args.push('NX');\n    }\n    else if (options?.XX) {\n        args.push('XX');\n    }\n    if (options?.CH) {\n        args.push('CH');\n    }\n    for (const { longitude, latitude, member } of (Array.isArray(toAdd) ? toAdd : [toAdd])) {\n        args.push(longitude.toString(), latitude.toString(), member);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member1, member2, unit) {\n    const args = ['GEODIST', key, member1, member2];\n    if (unit) {\n        args.push(unit);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply === null ? null : Number(reply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['GEOHASH', key], member);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['GEOPOS', key], member);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(coordinates => coordinates === null ? null : {\n        longitude: coordinates[0],\n        latitude: coordinates[1]\n    });\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, coordinates, radius, unit, options) {\n    return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUS_RO'], key, coordinates, radius, unit, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst GEORADIUS_RO_1 = require(\"./GEORADIUS_RO\");\nvar GEORADIUS_RO_2 = require(\"./GEORADIUS_RO\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEORADIUS_RO_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEORADIUS_RO_2.IS_READ_ONLY; } });\nfunction transformArguments(key, coordinates, radius, unit, replyWith, options) {\n    const args = (0, GEORADIUS_RO_1.transformArguments)(key, coordinates, radius, unit, options);\n    args.push(...replyWith);\n    args.preserve = replyWith;\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, coordinates, radius, unit, options) {\n    return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUS'], key, coordinates, radius, unit, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst GEORADIUS_1 = require(\"./GEORADIUS\");\nvar GEORADIUS_2 = require(\"./GEORADIUS\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEORADIUS_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEORADIUS_2.IS_READ_ONLY; } });\nfunction transformArguments(key, coordinates, radius, unit, replyWith, options) {\n    const args = (0, GEORADIUS_1.transformArguments)(key, coordinates, radius, unit, options);\n    args.push(...replyWith);\n    args.preserve = replyWith;\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member, radius, unit, options) {\n    return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUSBYMEMBER_RO'], key, member, radius, unit, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst GEORADIUSBYMEMBER_RO_1 = require(\"./GEORADIUSBYMEMBER_RO\");\nvar GEORADIUSBYMEMBER_RO_2 = require(\"./GEORADIUSBYMEMBER_RO\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_RO_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_RO_2.IS_READ_ONLY; } });\nfunction transformArguments(key, member, radius, unit, replyWith, options) {\n    const args = (0, GEORADIUSBYMEMBER_RO_1.transformArguments)(key, member, radius, unit, options);\n    args.push(...replyWith);\n    args.preserve = replyWith;\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member, radius, unit, options) {\n    return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUSBYMEMBER'], key, member, radius, unit, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst GEORADIUSBYMEMBER_1 = require(\"./GEORADIUSBYMEMBER\");\nvar GEORADIUSBYMEMBER_2 = require(\"./GEORADIUSBYMEMBER\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_2.IS_READ_ONLY; } });\nfunction transformArguments(key, member, radius, unit, replyWith, options) {\n    const args = (0, GEORADIUSBYMEMBER_1.transformArguments)(key, member, radius, unit, options);\n    args.push(...replyWith);\n    args.preserve = replyWith;\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nvar GEORADIUSBYMEMBER_1 = require(\"./GEORADIUSBYMEMBER\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_1.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_1.IS_READ_ONLY; } });\nfunction transformArguments(key, member, radius, unit, destination, options) {\n    return (0, generic_transformers_1.pushGeoRadiusStoreArguments)(['GEORADIUSBYMEMBER'], key, member, radius, unit, destination, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nvar GEORADIUS_1 = require(\"./GEORADIUS\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEORADIUS_1.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEORADIUS_1.IS_READ_ONLY; } });\nfunction transformArguments(key, coordinates, radius, unit, destination, options) {\n    return (0, generic_transformers_1.pushGeoRadiusStoreArguments)(['GEORADIUS'], key, coordinates, radius, unit, destination, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, from, by, options) {\n    return (0, generic_transformers_1.pushGeoSearchArguments)(['GEOSEARCH'], key, from, by, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst GEOSEARCH_1 = require(\"./GEOSEARCH\");\nvar GEOSEARCH_2 = require(\"./GEOSEARCH\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEOSEARCH_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEOSEARCH_2.IS_READ_ONLY; } });\nfunction transformArguments(key, from, by, replyWith, options) {\n    const args = (0, GEOSEARCH_1.transformArguments)(key, from, by, options);\n    args.push(...replyWith);\n    args.preserve = replyWith;\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nvar GEOSEARCH_1 = require(\"./GEOSEARCH\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return GEOSEARCH_1.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return GEOSEARCH_1.IS_READ_ONLY; } });\nfunction transformArguments(destination, source, from, by, options) {\n    const args = (0, generic_transformers_1.pushGeoSearchArguments)(['GEOSEARCHSTORE', destination], source, from, by, options);\n    if (options?.STOREDIST) {\n        args.push('STOREDIST');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    if (typeof reply !== 'number') {\n        throw new TypeError(`https://github.com/redis/redis/issues/9261`);\n    }\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['GET', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, offset) {\n    return ['GETBIT', key, offset.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['GETDEL', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, mode) {\n    const args = ['GETEX', key];\n    if ('EX' in mode) {\n        args.push('EX', mode.EX.toString());\n    }\n    else if ('PX' in mode) {\n        args.push('PX', mode.PX.toString());\n    }\n    else if ('EXAT' in mode) {\n        args.push('EXAT', (0, generic_transformers_1.transformEXAT)(mode.EXAT));\n    }\n    else if ('PXAT' in mode) {\n        args.push('PXAT', (0, generic_transformers_1.transformPXAT)(mode.PXAT));\n    }\n    else { // PERSIST\n        args.push('PERSIST');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, start, end) {\n    return ['GETRANGE', key, start.toString(), end.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, value) {\n    return ['GETSET', key, value];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, field) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['HDEL', key], field);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, field) {\n    return ['HEXISTS', key, field];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = exports.HASH_EXPIRATION = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\n/**\n * @readonly\n * @enum {number}\n */\nexports.HASH_EXPIRATION = {\n    /** @property {number} */\n    /** The field does not exist */\n    FIELD_NOT_EXISTS: -2,\n    /** @property {number} */\n    /** Specified NX | XX | GT | LT condition not met */\n    CONDITION_NOT_MET: 0,\n    /** @property {number} */\n    /** Expiration time was set or updated */\n    UPDATED: 1,\n    /** @property {number} */\n    /** Field deleted because the specified expiration time is in the past */\n    DELETED: 2\n};\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, fields, seconds, mode) {\n    const args = ['HEXPIRE', key, seconds.toString()];\n    if (mode) {\n        args.push(mode);\n    }\n    args.push('FIELDS');\n    return (0, generic_transformers_1.pushVerdictArgument)(args, fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, fields, timestamp, mode) {\n    const args = [\n        'HEXPIREAT',\n        key,\n        (0, generic_transformers_1.transformEXAT)(timestamp)\n    ];\n    if (mode) {\n        args.push(mode);\n    }\n    args.push('FIELDS');\n    return (0, generic_transformers_1.pushVerdictArgument)(args, fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = exports.HASH_EXPIRATION_TIME = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.HASH_EXPIRATION_TIME = {\n    /** @property {number} */\n    /** The field does not exist */\n    FIELD_NOT_EXISTS: -2,\n    /** @property {number} */\n    /** The field exists but has no associated expire */\n    NO_EXPIRATION: -1,\n};\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fields) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['HEXPIRETIME', key, 'FIELDS'], fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, field) {\n    return ['HGET', key, field];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.TRANSFORM_LEGACY_REPLY = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nexports.TRANSFORM_LEGACY_REPLY = true;\nfunction transformArguments(key) {\n    return ['HGETALL', key];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, field, increment) {\n    return ['HINCRBY', key, field, increment.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, field, increment) {\n    return ['HINCRBYFLOAT', key, field, increment.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['HKEYS', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['HLEN', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fields) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['HMGET', key], fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, fields) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['HPERSIST', key, 'FIELDS'], fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, fields, ms, mode) {\n    const args = ['HPEXPIRE', key, ms.toString()];\n    if (mode) {\n        args.push(mode);\n    }\n    args.push('FIELDS');\n    return (0, generic_transformers_1.pushVerdictArgument)(args, fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fields, timestamp, mode) {\n    const args = ['HPEXPIREAT', key, (0, generic_transformers_1.transformPXAT)(timestamp)];\n    if (mode) {\n        args.push(mode);\n    }\n    args.push('FIELDS');\n    return (0, generic_transformers_1.pushVerdictArgument)(args, fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fields) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['HPEXPIRETIME', key, 'FIELDS'], fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fields) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['HPTTL', key, 'FIELDS'], fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['HRANDFIELD', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst HRANDFIELD_1 = require(\"./HRANDFIELD\");\nvar HRANDFIELD_2 = require(\"./HRANDFIELD\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return HRANDFIELD_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return HRANDFIELD_2.IS_READ_ONLY; } });\nfunction transformArguments(key, count) {\n    return [\n        ...(0, HRANDFIELD_1.transformArguments)(key),\n        count.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst HRANDFIELD_COUNT_1 = require(\"./HRANDFIELD_COUNT\");\nvar HRANDFIELD_COUNT_2 = require(\"./HRANDFIELD_COUNT\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return HRANDFIELD_COUNT_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return HRANDFIELD_COUNT_2.IS_READ_ONLY; } });\nfunction transformArguments(key, count) {\n    return [\n        ...(0, HRANDFIELD_COUNT_1.transformArguments)(key, count),\n        'WITHVALUES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, cursor, options) {\n    return (0, generic_transformers_1.pushScanArguments)([\n        'HSCAN',\n        key\n    ], cursor, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([cursor, rawTuples]) {\n    const parsedTuples = [];\n    for (let i = 0; i < rawTuples.length; i += 2) {\n        parsedTuples.push({\n            field: rawTuples[i],\n            value: rawTuples[i + 1]\n        });\n    }\n    return {\n        cursor: Number(cursor),\n        tuples: parsedTuples\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst HSCAN_1 = require(\"./HSCAN\");\nvar HSCAN_2 = require(\"./HSCAN\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return HSCAN_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return HSCAN_2.IS_READ_ONLY; } });\nfunction transformArguments(key, cursor, options) {\n    const args = (0, HSCAN_1.transformArguments)(key, cursor, options);\n    args.push('NOVALUES');\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([cursor, rawData]) {\n    return {\n        cursor: Number(cursor),\n        keys: rawData\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(...[key, value, fieldValue]) {\n    const args = ['HSET', key];\n    if (typeof value === 'string' || typeof value === 'number' || Buffer.isBuffer(value)) {\n        args.push(convertValue(value), convertValue(fieldValue));\n    }\n    else if (value instanceof Map) {\n        pushMap(args, value);\n    }\n    else if (Array.isArray(value)) {\n        pushTuples(args, value);\n    }\n    else {\n        pushObject(args, value);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction pushMap(args, map) {\n    for (const [key, value] of map.entries()) {\n        args.push(convertValue(key), convertValue(value));\n    }\n}\nfunction pushTuples(args, tuples) {\n    for (const tuple of tuples) {\n        if (Array.isArray(tuple)) {\n            pushTuples(args, tuple);\n            continue;\n        }\n        args.push(convertValue(tuple));\n    }\n}\nfunction pushObject(args, object) {\n    for (const key of Object.keys(object)) {\n        args.push(convertValue(key), convertValue(object[key]));\n    }\n}\nfunction convertValue(value) {\n    return typeof value === 'number' ?\n        value.toString() :\n        value;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, field, value) {\n    return ['HSETNX', key, field, value];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, field) {\n    return ['HSTRLEN', key, field];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fields) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['HTTL', key, 'FIELDS'], fields);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['HVALS', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['INCR', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, increment) {\n    return ['INCRBY', key, increment.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, increment) {\n    return ['INCRBYFLOAT', key, increment.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key1, key2) {\n    return [\n        'LCS',\n        key1,\n        key2\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nconst LCS_1 = require(\"./LCS\");\nvar LCS_2 = require(\"./LCS\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } });\nfunction transformArguments(key1, key2) {\n    const args = (0, LCS_1.transformArguments)(key1, key2);\n    args.push('IDX', 'WITHMATCHLEN');\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        matches: reply[1].map(([key1, key2, length]) => ({\n            key1: (0, generic_transformers_1.transformRangeReply)(key1),\n            key2: (0, generic_transformers_1.transformRangeReply)(key2),\n            length\n        })),\n        length: reply[3]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nconst LCS_1 = require(\"./LCS\");\nvar LCS_2 = require(\"./LCS\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } });\nfunction transformArguments(key1, key2) {\n    const args = (0, LCS_1.transformArguments)(key1, key2);\n    args.push('IDX');\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        matches: reply[1].map(([key1, key2]) => ({\n            key1: (0, generic_transformers_1.transformRangeReply)(key1),\n            key2: (0, generic_transformers_1.transformRangeReply)(key2)\n        })),\n        length: reply[3]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst LCS_1 = require(\"./LCS\");\nvar LCS_2 = require(\"./LCS\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } });\nfunction transformArguments(key1, key2) {\n    const args = (0, LCS_1.transformArguments)(key1, key2);\n    args.push('LEN');\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, index) {\n    return ['LINDEX', key, index.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, position, pivot, element) {\n    return [\n        'LINSERT',\n        key,\n        position,\n        pivot,\n        element\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['LLEN', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination, sourceSide, destinationSide) {\n    return [\n        'LMOVE',\n        source,\n        destination,\n        sourceSide,\n        destinationSide,\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, count) {\n    return ['LPOP', key, count.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['LPOP', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, element, options) {\n    const args = ['LPOS', key, element];\n    if (typeof options?.RANK === 'number') {\n        args.push('RANK', options.RANK.toString());\n    }\n    if (typeof options?.MAXLEN === 'number') {\n        args.push('MAXLEN', options.MAXLEN.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nvar LPOS_1 = require(\"./LPOS\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return LPOS_1.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return LPOS_1.IS_READ_ONLY; } });\nfunction transformArguments(key, element, count, options) {\n    const args = ['LPOS', key, element];\n    if (typeof options?.RANK === 'number') {\n        args.push('RANK', options.RANK.toString());\n    }\n    args.push('COUNT', count.toString());\n    if (typeof options?.MAXLEN === 'number') {\n        args.push('MAXLEN', options.MAXLEN.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, elements) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['LPUSH', key], elements);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, element) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['LPUSHX', key], element);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, start, stop) {\n    return [\n        'LRANGE',\n        key,\n        start.toString(),\n        stop.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, count, element) {\n    return [\n        'LREM',\n        key,\n        count.toString(),\n        element\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, index, element) {\n    return [\n        'LSET',\n        key,\n        index.toString(),\n        element\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, start, stop) {\n    return [\n        'LTRIM',\n        key,\n        start.toString(),\n        stop.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys) {\n    return ['MGET', ...keys];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(host, port, key, destinationDb, timeout, options) {\n    const args = ['MIGRATE', host, port.toString()], isKeyArray = Array.isArray(key);\n    if (isKeyArray) {\n        args.push('');\n    }\n    else {\n        args.push(key);\n    }\n    args.push(destinationDb.toString(), timeout.toString());\n    if (options?.COPY) {\n        args.push('COPY');\n    }\n    if (options?.REPLACE) {\n        args.push('REPLACE');\n    }\n    if (options?.AUTH) {\n        if (options.AUTH.username) {\n            args.push('AUTH2', options.AUTH.username, options.AUTH.password);\n        }\n        else {\n            args.push('AUTH', options.AUTH.password);\n        }\n    }\n    if (isKeyArray) {\n        args.push('KEYS', ...key);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(toSet) {\n    const args = ['MSET'];\n    if (Array.isArray(toSet)) {\n        args.push(...toSet.flat());\n    }\n    else {\n        for (const key of Object.keys(toSet)) {\n            args.push(key, toSet[key]);\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(toSet) {\n    const args = ['MSETNX'];\n    if (Array.isArray(toSet)) {\n        args.push(...toSet.flat());\n    }\n    else {\n        for (const key of Object.keys(toSet)) {\n            args.push(key, toSet[key]);\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['OBJECT', 'ENCODING', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['OBJECT', 'FREQ', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['OBJECT', 'IDLETIME', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['OBJECT', 'REFCOUNT', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['PERSIST', key];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, milliseconds, mode) {\n    const args = ['PEXPIRE', key, milliseconds.toString()];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, millisecondsTimestamp, mode) {\n    const args = [\n        'PEXPIREAT',\n        key,\n        (0, generic_transformers_1.transformPXAT)(millisecondsTimestamp)\n    ];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['PEXPIRETIME', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, element) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['PFADD', key], element);\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['PFCOUNT'], key);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, source) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['PFMERGE', destination], source);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, milliseconds, value) {\n    return [\n        'PSETEX',\n        key,\n        milliseconds.toString(),\n        value\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['PTTL', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(channel, message) {\n    return ['PUBLISH', channel, message];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, newKey) {\n    return ['RENAME', key, newKey];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, newKey) {\n    return ['RENAMENX', key, newKey];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, ttl, serializedValue, options) {\n    const args = ['RESTORE', key, ttl.toString(), serializedValue];\n    if (options?.REPLACE) {\n        args.push('REPLACE');\n    }\n    if (options?.ABSTTL) {\n        args.push('ABSTTL');\n    }\n    if (options?.IDLETIME) {\n        args.push('IDLETIME', options.IDLETIME.toString());\n    }\n    if (options?.FREQ) {\n        args.push('FREQ', options.FREQ.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, count) {\n    return ['RPOP', key, count.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['RPOP', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination) {\n    return ['RPOPLPUSH', source, destination];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, element) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['RPUSH', key], element);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, element) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['RPUSHX', key], element);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, members) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SADD', key], members);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['SCARD', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SDIFF'], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SDIFFSTORE', destination], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, value, options) {\n    const args = [\n        'SET',\n        key,\n        typeof value === 'number' ? value.toString() : value\n    ];\n    if (options?.EX !== undefined) {\n        args.push('EX', options.EX.toString());\n    }\n    else if (options?.PX !== undefined) {\n        args.push('PX', options.PX.toString());\n    }\n    else if (options?.EXAT !== undefined) {\n        args.push('EXAT', options.EXAT.toString());\n    }\n    else if (options?.PXAT !== undefined) {\n        args.push('PXAT', options.PXAT.toString());\n    }\n    else if (options?.KEEPTTL) {\n        args.push('KEEPTTL');\n    }\n    if (options?.NX) {\n        args.push('NX');\n    }\n    else if (options?.XX) {\n        args.push('XX');\n    }\n    if (options?.GET) {\n        args.push('GET');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, offset, value) {\n    return ['SETBIT', key, offset.toString(), value.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, seconds, value) {\n    return [\n        'SETEX',\n        key,\n        seconds.toString(),\n        value\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, value) {\n    return ['SETNX', key, value];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, offset, value) {\n    return ['SETRANGE', key, offset.toString(), value];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SINTER'], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys, limit) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['SINTERCARD'], keys);\n    if (limit) {\n        args.push('LIMIT', limit.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SINTERSTORE', destination], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, member) {\n    return ['SISMEMBER', key, member];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['SMEMBERS', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, members) {\n    return ['SMISMEMBER', key, ...members];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination, member) {\n    return ['SMOVE', source, destination, member];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, options) {\n    return (0, generic_transformers_1.pushSortArguments)(['SORT_RO', key], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, options) {\n    return (0, generic_transformers_1.pushSortArguments)(['SORT', key], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst SORT_1 = require(\"./SORT\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(source, destination, options) {\n    const args = (0, SORT_1.transformArguments)(source, options);\n    args.push('STORE', destination);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, count) {\n    const args = ['SPOP', key];\n    if (typeof count === 'number') {\n        args.push(count.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(channel, message) {\n    return ['SPUBLISH', channel, message];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['SRANDMEMBER', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst SRANDMEMBER_1 = require(\"./SRANDMEMBER\");\nvar SRANDMEMBER_2 = require(\"./SRANDMEMBER\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return SRANDMEMBER_2.FIRST_KEY_INDEX; } });\nfunction transformArguments(key, count) {\n    return [\n        ...(0, SRANDMEMBER_1.transformArguments)(key),\n        count.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, members) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SREM', key], members);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, cursor, options) {\n    return (0, generic_transformers_1.pushScanArguments)([\n        'SSCAN',\n        key,\n    ], cursor, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([cursor, members]) {\n    return {\n        cursor: Number(cursor),\n        members\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['STRLEN', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SUNION'], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, keys) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SUNIONSTORE', destination], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['TOUCH'], key);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['TTL', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['TYPE', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['UNLINK'], key);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['WATCH'], key);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, group, id) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['XACK', key, group], id);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, id, message, options) {\n    const args = ['XADD', key];\n    if (options?.NOMKSTREAM) {\n        args.push('NOMKSTREAM');\n    }\n    if (options?.TRIM) {\n        if (options.TRIM.strategy) {\n            args.push(options.TRIM.strategy);\n        }\n        if (options.TRIM.strategyModifier) {\n            args.push(options.TRIM.strategyModifier);\n        }\n        args.push(options.TRIM.threshold.toString());\n        if (options.TRIM.limit) {\n            args.push('LIMIT', options.TRIM.limit.toString());\n        }\n    }\n    args.push(id);\n    for (const [key, value] of Object.entries(message)) {\n        args.push(key, value);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, group, consumer, minIdleTime, start, options) {\n    const args = ['XAUTOCLAIM', key, group, consumer, minIdleTime.toString(), start];\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        nextId: reply[0],\n        messages: (0, generic_transformers_1.transformStreamMessagesNullReply)(reply[1])\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst XAUTOCLAIM_1 = require(\"./XAUTOCLAIM\");\nvar XAUTOCLAIM_2 = require(\"./XAUTOCLAIM\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return XAUTOCLAIM_2.FIRST_KEY_INDEX; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, XAUTOCLAIM_1.transformArguments)(...args),\n        'JUSTID'\n    ];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        nextId: reply[0],\n        messages: reply[1]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, group, consumer, minIdleTime, id, options) {\n    const args = (0, generic_transformers_1.pushVerdictArguments)(['XCLAIM', key, group, consumer, minIdleTime.toString()], id);\n    if (options?.IDLE) {\n        args.push('IDLE', options.IDLE.toString());\n    }\n    if (options?.TIME) {\n        args.push('TIME', (typeof options.TIME === 'number' ? options.TIME : options.TIME.getTime()).toString());\n    }\n    if (options?.RETRYCOUNT) {\n        args.push('RETRYCOUNT', options.RETRYCOUNT.toString());\n    }\n    if (options?.FORCE) {\n        args.push('FORCE');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformStreamMessagesNullReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst XCLAIM_1 = require(\"./XCLAIM\");\nvar XCLAIM_2 = require(\"./XCLAIM\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return XCLAIM_2.FIRST_KEY_INDEX; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, XCLAIM_1.transformArguments)(...args),\n        'JUSTID'\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, id) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['XDEL', key], id);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(key, group, id, options) {\n    const args = ['XGROUP', 'CREATE', key, group, id];\n    if (options?.MKSTREAM) {\n        args.push('MKSTREAM');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(key, group, consumer) {\n    return ['XGROUP', 'CREATECONSUMER', key, group, consumer];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(key, group, consumer) {\n    return ['XGROUP', 'DELCONSUMER', key, group, consumer];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(key, group) {\n    return ['XGROUP', 'DESTROY', key, group];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(key, group, id) {\n    return ['XGROUP', 'SETID', key, group, id];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, group) {\n    return ['XINFO', 'CONSUMERS', key, group];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    return rawReply.map(consumer => ({\n        name: consumer[1],\n        pending: consumer[3],\n        idle: consumer[5],\n        inactive: consumer[7]\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['XINFO', 'GROUPS', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    return rawReply.map(group => ({\n        name: group[1],\n        consumers: group[3],\n        pending: group[5],\n        lastDeliveredId: group[7]\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['XINFO', 'STREAM', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const parsedReply = {};\n    for (let i = 0; i < rawReply.length; i += 2) {\n        switch (rawReply[i]) {\n            case 'length':\n                parsedReply.length = rawReply[i + 1];\n                break;\n            case 'radix-tree-keys':\n                parsedReply.radixTreeKeys = rawReply[i + 1];\n                break;\n            case 'radix-tree-nodes':\n                parsedReply.radixTreeNodes = rawReply[i + 1];\n                break;\n            case 'groups':\n                parsedReply.groups = rawReply[i + 1];\n                break;\n            case 'last-generated-id':\n                parsedReply.lastGeneratedId = rawReply[i + 1];\n                break;\n            case 'first-entry':\n                parsedReply.firstEntry = rawReply[i + 1] ? {\n                    id: rawReply[i + 1][0],\n                    message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1])\n                } : null;\n                break;\n            case 'last-entry':\n                parsedReply.lastEntry = rawReply[i + 1] ? {\n                    id: rawReply[i + 1][0],\n                    message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1])\n                } : null;\n                break;\n        }\n    }\n    return parsedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['XLEN', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, group, start, end, count, options) {\n    const args = ['XPENDING', key, group];\n    if (options?.IDLE) {\n        args.push('IDLE', options.IDLE.toString());\n    }\n    args.push(start, end, count.toString());\n    if (options?.consumer) {\n        args.push(options.consumer);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(([id, owner, millisecondsSinceLastDelivery, deliveriesCounter]) => ({\n        id,\n        owner,\n        millisecondsSinceLastDelivery,\n        deliveriesCounter\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, group) {\n    return ['XPENDING', key, group];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        pending: reply[0],\n        firstId: reply[1],\n        lastId: reply[2],\n        consumers: reply[3] === null ? null : reply[3].map(([name, deliveriesCounter]) => ({\n            name,\n            deliveriesCounter: Number(deliveriesCounter)\n        }))\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, start, end, options) {\n    const args = ['XRANGE', key, start, end];\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformStreamMessagesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst FIRST_KEY_INDEX = (streams) => {\n    return Array.isArray(streams) ? streams[0].key : streams.key;\n};\nexports.FIRST_KEY_INDEX = FIRST_KEY_INDEX;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(streams, options) {\n    const args = ['XREAD'];\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    if (typeof options?.BLOCK === 'number') {\n        args.push('BLOCK', options.BLOCK.toString());\n    }\n    args.push('STREAMS');\n    const streamsArray = Array.isArray(streams) ? streams : [streams], argsLength = args.length;\n    for (let i = 0; i < streamsArray.length; i++) {\n        const stream = streamsArray[i];\n        args[argsLength + i] = stream.key;\n        args[argsLength + streamsArray.length + i] = stream.id;\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformStreamsMessagesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst FIRST_KEY_INDEX = (_group, _consumer, streams) => {\n    return Array.isArray(streams) ? streams[0].key : streams.key;\n};\nexports.FIRST_KEY_INDEX = FIRST_KEY_INDEX;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(group, consumer, streams, options) {\n    const args = ['XREADGROUP', 'GROUP', group, consumer];\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    if (typeof options?.BLOCK === 'number') {\n        args.push('BLOCK', options.BLOCK.toString());\n    }\n    if (options?.NOACK) {\n        args.push('NOACK');\n    }\n    args.push('STREAMS');\n    const streamsArray = Array.isArray(streams) ? streams : [streams], argsLength = args.length;\n    for (let i = 0; i < streamsArray.length; i++) {\n        const stream = streamsArray[i];\n        args[argsLength + i] = stream.key;\n        args[argsLength + streamsArray.length + i] = stream.id;\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformStreamsMessagesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, start, end, options) {\n    const args = ['XREVRANGE', key, start, end];\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformStreamMessagesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, lastId, options) {\n    const args = ['XSETID', key, lastId];\n    if (options?.ENTRIESADDED) {\n        args.push('ENTRIESADDED', options.ENTRIESADDED.toString());\n    }\n    if (options?.MAXDELETEDID) {\n        args.push('MAXDELETEDID', options.MAXDELETEDID);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, strategy, threshold, options) {\n    const args = ['XTRIM', key, strategy];\n    if (options?.strategyModifier) {\n        args.push(options.strategyModifier);\n    }\n    args.push(threshold.toString());\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, members, options) {\n    const args = ['ZADD', key];\n    if (options?.NX) {\n        args.push('NX');\n    }\n    else {\n        if (options?.XX) {\n            args.push('XX');\n        }\n        if (options?.GT) {\n            args.push('GT');\n        }\n        else if (options?.LT) {\n            args.push('LT');\n        }\n    }\n    if (options?.CH) {\n        args.push('CH');\n    }\n    if (options?.INCR) {\n        args.push('INCR');\n    }\n    for (const { score, value } of (Array.isArray(members) ? members : [members])) {\n        args.push((0, generic_transformers_1.transformNumberInfinityArgument)(score), value);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['ZCARD', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, min, max) {\n    return [\n        'ZCOUNT',\n        key,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['ZDIFF'], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZDIFF_1 = require(\"./ZDIFF\");\nvar ZDIFF_2 = require(\"./ZDIFF\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZDIFF_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZDIFF_2.IS_READ_ONLY; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, ZDIFF_1.transformArguments)(...args),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, keys) {\n    return (0, generic_transformers_1.pushVerdictArgument)(['ZDIFFSTORE', destination], keys);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, increment, member) {\n    return [\n        'ZINCRBY',\n        key,\n        (0, generic_transformers_1.transformNumberInfinityArgument)(increment),\n        member\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys, options) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTER'], keys);\n    if (options?.WEIGHTS) {\n        args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));\n    }\n    if (options?.AGGREGATE) {\n        args.push('AGGREGATE', options.AGGREGATE);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZINTER_1 = require(\"./ZINTER\");\nvar ZINTER_2 = require(\"./ZINTER\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZINTER_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZINTER_2.IS_READ_ONLY; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, ZINTER_1.transformArguments)(...args),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys, limit) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTERCARD'], keys);\n    if (limit) {\n        args.push('LIMIT', limit.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, keys, options) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTERSTORE', destination], keys);\n    if (options?.WEIGHTS) {\n        args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));\n    }\n    if (options?.AGGREGATE) {\n        args.push('AGGREGATE', options.AGGREGATE);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, min, max) {\n    return [\n        'ZLEXCOUNT',\n        key,\n        min,\n        max\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['ZMSCORE', key], member);\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityNullArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return [\n        'ZPOPMAX',\n        key\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetMemberNullReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst ZPOPMAX_1 = require(\"./ZPOPMAX\");\nvar ZPOPMAX_2 = require(\"./ZPOPMAX\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZPOPMAX_2.FIRST_KEY_INDEX; } });\nfunction transformArguments(key, count) {\n    return [\n        ...(0, ZPOPMAX_1.transformArguments)(key),\n        count.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return [\n        'ZPOPMIN',\n        key\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetMemberNullReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst ZPOPMIN_1 = require(\"./ZPOPMIN\");\nvar ZPOPMIN_2 = require(\"./ZPOPMIN\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZPOPMIN_2.FIRST_KEY_INDEX; } });\nfunction transformArguments(key, count) {\n    return [\n        ...(0, ZPOPMIN_1.transformArguments)(key),\n        count.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['ZRANDMEMBER', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZRANDMEMBER_1 = require(\"./ZRANDMEMBER\");\nvar ZRANDMEMBER_2 = require(\"./ZRANDMEMBER\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZRANDMEMBER_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZRANDMEMBER_2.IS_READ_ONLY; } });\nfunction transformArguments(key, count) {\n    return [\n        ...(0, ZRANDMEMBER_1.transformArguments)(key),\n        count.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZRANDMEMBER_COUNT_1 = require(\"./ZRANDMEMBER_COUNT\");\nvar ZRANDMEMBER_COUNT_2 = require(\"./ZRANDMEMBER_COUNT\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZRANDMEMBER_COUNT_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZRANDMEMBER_COUNT_2.IS_READ_ONLY; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, ZRANDMEMBER_COUNT_1.transformArguments)(...args),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, min, max, options) {\n    const args = [\n        'ZRANGE',\n        key,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n    switch (options?.BY) {\n        case 'SCORE':\n            args.push('BYSCORE');\n            break;\n        case 'LEX':\n            args.push('BYLEX');\n            break;\n    }\n    if (options?.REV) {\n        args.push('REV');\n    }\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZRANGE_1 = require(\"./ZRANGE\");\nvar ZRANGE_2 = require(\"./ZRANGE\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZRANGE_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZRANGE_2.IS_READ_ONLY; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, ZRANGE_1.transformArguments)(...args),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, min, max, options) {\n    const args = [\n        'ZRANGEBYLEX',\n        key,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, min, max, options) {\n    const args = [\n        'ZRANGEBYSCORE',\n        key,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZRANGEBYSCORE_1 = require(\"./ZRANGEBYSCORE\");\nvar ZRANGEBYSCORE_2 = require(\"./ZRANGEBYSCORE\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZRANGEBYSCORE_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZRANGEBYSCORE_2.IS_READ_ONLY; } });\nfunction transformArguments(key, min, max, options) {\n    return [\n        ...(0, ZRANGEBYSCORE_1.transformArguments)(key, min, max, options),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(dst, src, min, max, options) {\n    const args = [\n        'ZRANGESTORE',\n        dst,\n        src,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n    switch (options?.BY) {\n        case 'SCORE':\n            args.push('BYSCORE');\n            break;\n        case 'LEX':\n            args.push('BYLEX');\n            break;\n    }\n    if (options?.REV) {\n        args.push('REV');\n    }\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());\n    }\n    if (options?.WITHSCORES) {\n        args.push('WITHSCORES');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    if (typeof reply !== 'number') {\n        throw new TypeError(`Upgrade to Redis 6.2.5 and up (https://github.com/redis/redis/pull/9089)`);\n    }\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member) {\n    return ['ZRANK', key, member];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, member) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['ZREM', key], member);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, min, max) {\n    return [\n        'ZREMRANGEBYLEX',\n        key,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, start, stop) {\n    return ['ZREMRANGEBYRANK', key, start.toString(), stop.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, min, max) {\n    return [\n        'ZREMRANGEBYSCORE',\n        key,\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(min),\n        (0, generic_transformers_1.transformStringNumberInfinityArgument)(max)\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member) {\n    return ['ZREVRANK', key, member];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, cursor, options) {\n    return (0, generic_transformers_1.pushScanArguments)([\n        'ZSCAN',\n        key\n    ], cursor, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([cursor, rawMembers]) {\n    const parsedMembers = [];\n    for (let i = 0; i < rawMembers.length; i += 2) {\n        parsedMembers.push({\n            value: rawMembers[i],\n            score: (0, generic_transformers_1.transformNumberInfinityReply)(rawMembers[i + 1])\n        });\n    }\n    return {\n        cursor: Number(cursor),\n        members: parsedMembers\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, member) {\n    return ['ZSCORE', key, member];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformNumberInfinityNullReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 2;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys, options) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['ZUNION'], keys);\n    if (options?.WEIGHTS) {\n        args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));\n    }\n    if (options?.AGGREGATE) {\n        args.push('AGGREGATE', options.AGGREGATE);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst ZUNION_1 = require(\"./ZUNION\");\nvar ZUNION_2 = require(\"./ZUNION\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return ZUNION_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return ZUNION_2.IS_READ_ONLY; } });\nfunction transformArguments(...args) {\n    return [\n        ...(0, ZUNION_1.transformArguments)(...args),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destination, keys, options) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['ZUNIONSTORE', destination], keys);\n    if (options?.WEIGHTS) {\n        args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));\n    }\n    if (options?.AGGREGATE) {\n        args.push('AGGREGATE', options.AGGREGATE);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst APPEND = require(\"../commands/APPEND\");\nconst BITCOUNT = require(\"../commands/BITCOUNT\");\nconst BITFIELD_RO = require(\"../commands/BITFIELD_RO\");\nconst BITFIELD = require(\"../commands/BITFIELD\");\nconst BITOP = require(\"../commands/BITOP\");\nconst BITPOS = require(\"../commands/BITPOS\");\nconst BLMOVE = require(\"../commands/BLMOVE\");\nconst BLMPOP = require(\"../commands/BLMPOP\");\nconst BLPOP = require(\"../commands/BLPOP\");\nconst BRPOP = require(\"../commands/BRPOP\");\nconst BRPOPLPUSH = require(\"../commands/BRPOPLPUSH\");\nconst BZMPOP = require(\"../commands/BZMPOP\");\nconst BZPOPMAX = require(\"../commands/BZPOPMAX\");\nconst BZPOPMIN = require(\"../commands/BZPOPMIN\");\nconst COPY = require(\"../commands/COPY\");\nconst DECR = require(\"../commands/DECR\");\nconst DECRBY = require(\"../commands/DECRBY\");\nconst DEL = require(\"../commands/DEL\");\nconst DUMP = require(\"../commands/DUMP\");\nconst EVAL_RO = require(\"../commands/EVAL_RO\");\nconst EVAL = require(\"../commands/EVAL\");\nconst EVALSHA_RO = require(\"../commands/EVALSHA_RO\");\nconst EVALSHA = require(\"../commands/EVALSHA\");\nconst EXISTS = require(\"../commands/EXISTS\");\nconst EXPIRE = require(\"../commands/EXPIRE\");\nconst EXPIREAT = require(\"../commands/EXPIREAT\");\nconst EXPIRETIME = require(\"../commands/EXPIRETIME\");\nconst FCALL_RO = require(\"../commands/FCALL_RO\");\nconst FCALL = require(\"../commands/FCALL\");\nconst GEOADD = require(\"../commands/GEOADD\");\nconst GEODIST = require(\"../commands/GEODIST\");\nconst GEOHASH = require(\"../commands/GEOHASH\");\nconst GEOPOS = require(\"../commands/GEOPOS\");\nconst GEORADIUS_RO_WITH = require(\"../commands/GEORADIUS_RO_WITH\");\nconst GEORADIUS_RO = require(\"../commands/GEORADIUS_RO\");\nconst GEORADIUS_WITH = require(\"../commands/GEORADIUS_WITH\");\nconst GEORADIUS = require(\"../commands/GEORADIUS\");\nconst GEORADIUSBYMEMBER_RO_WITH = require(\"../commands/GEORADIUSBYMEMBER_RO_WITH\");\nconst GEORADIUSBYMEMBER_RO = require(\"../commands/GEORADIUSBYMEMBER_RO\");\nconst GEORADIUSBYMEMBER_WITH = require(\"../commands/GEORADIUSBYMEMBER_WITH\");\nconst GEORADIUSBYMEMBER = require(\"../commands/GEORADIUSBYMEMBER\");\nconst GEORADIUSBYMEMBERSTORE = require(\"../commands/GEORADIUSBYMEMBERSTORE\");\nconst GEORADIUSSTORE = require(\"../commands/GEORADIUSSTORE\");\nconst GEOSEARCH_WITH = require(\"../commands/GEOSEARCH_WITH\");\nconst GEOSEARCH = require(\"../commands/GEOSEARCH\");\nconst GEOSEARCHSTORE = require(\"../commands/GEOSEARCHSTORE\");\nconst GET = require(\"../commands/GET\");\nconst GETBIT = require(\"../commands/GETBIT\");\nconst GETDEL = require(\"../commands/GETDEL\");\nconst GETEX = require(\"../commands/GETEX\");\nconst GETRANGE = require(\"../commands/GETRANGE\");\nconst GETSET = require(\"../commands/GETSET\");\nconst HDEL = require(\"../commands/HDEL\");\nconst HEXISTS = require(\"../commands/HEXISTS\");\nconst HEXPIRE = require(\"../commands/HEXPIRE\");\nconst HEXPIREAT = require(\"../commands/HEXPIREAT\");\nconst HEXPIRETIME = require(\"../commands/HEXPIRETIME\");\nconst HGET = require(\"../commands/HGET\");\nconst HGETALL = require(\"../commands/HGETALL\");\nconst HINCRBY = require(\"../commands/HINCRBY\");\nconst HINCRBYFLOAT = require(\"../commands/HINCRBYFLOAT\");\nconst HKEYS = require(\"../commands/HKEYS\");\nconst HLEN = require(\"../commands/HLEN\");\nconst HMGET = require(\"../commands/HMGET\");\nconst HPERSIST = require(\"../commands/HPERSIST\");\nconst HPEXPIRE = require(\"../commands/HPEXPIRE\");\nconst HPEXPIREAT = require(\"../commands/HPEXPIREAT\");\nconst HPEXPIRETIME = require(\"../commands/HPEXPIRETIME\");\nconst HPTTL = require(\"../commands/HPTTL\");\nconst HRANDFIELD_COUNT_WITHVALUES = require(\"../commands/HRANDFIELD_COUNT_WITHVALUES\");\nconst HRANDFIELD_COUNT = require(\"../commands/HRANDFIELD_COUNT\");\nconst HRANDFIELD = require(\"../commands/HRANDFIELD\");\nconst HSCAN = require(\"../commands/HSCAN\");\nconst HSCAN_NOVALUES = require(\"../commands/HSCAN_NOVALUES\");\nconst HSET = require(\"../commands/HSET\");\nconst HSETNX = require(\"../commands/HSETNX\");\nconst HSTRLEN = require(\"../commands/HSTRLEN\");\nconst HTTL = require(\"../commands/HTTL\");\nconst HVALS = require(\"../commands/HVALS\");\nconst INCR = require(\"../commands/INCR\");\nconst INCRBY = require(\"../commands/INCRBY\");\nconst INCRBYFLOAT = require(\"../commands/INCRBYFLOAT\");\nconst LCS_IDX_WITHMATCHLEN = require(\"../commands/LCS_IDX_WITHMATCHLEN\");\nconst LCS_IDX = require(\"../commands/LCS_IDX\");\nconst LCS_LEN = require(\"../commands/LCS_LEN\");\nconst LCS = require(\"../commands/LCS\");\nconst LINDEX = require(\"../commands/LINDEX\");\nconst LINSERT = require(\"../commands/LINSERT\");\nconst LLEN = require(\"../commands/LLEN\");\nconst LMOVE = require(\"../commands/LMOVE\");\nconst LMPOP = require(\"../commands/LMPOP\");\nconst LPOP_COUNT = require(\"../commands/LPOP_COUNT\");\nconst LPOP = require(\"../commands/LPOP\");\nconst LPOS_COUNT = require(\"../commands/LPOS_COUNT\");\nconst LPOS = require(\"../commands/LPOS\");\nconst LPUSH = require(\"../commands/LPUSH\");\nconst LPUSHX = require(\"../commands/LPUSHX\");\nconst LRANGE = require(\"../commands/LRANGE\");\nconst LREM = require(\"../commands/LREM\");\nconst LSET = require(\"../commands/LSET\");\nconst LTRIM = require(\"../commands/LTRIM\");\nconst MGET = require(\"../commands/MGET\");\nconst MIGRATE = require(\"../commands/MIGRATE\");\nconst MSET = require(\"../commands/MSET\");\nconst MSETNX = require(\"../commands/MSETNX\");\nconst OBJECT_ENCODING = require(\"../commands/OBJECT_ENCODING\");\nconst OBJECT_FREQ = require(\"../commands/OBJECT_FREQ\");\nconst OBJECT_IDLETIME = require(\"../commands/OBJECT_IDLETIME\");\nconst OBJECT_REFCOUNT = require(\"../commands/OBJECT_REFCOUNT\");\nconst PERSIST = require(\"../commands/PERSIST\");\nconst PEXPIRE = require(\"../commands/PEXPIRE\");\nconst PEXPIREAT = require(\"../commands/PEXPIREAT\");\nconst PEXPIRETIME = require(\"../commands/PEXPIRETIME\");\nconst PFADD = require(\"../commands/PFADD\");\nconst PFCOUNT = require(\"../commands/PFCOUNT\");\nconst PFMERGE = require(\"../commands/PFMERGE\");\nconst PSETEX = require(\"../commands/PSETEX\");\nconst PTTL = require(\"../commands/PTTL\");\nconst PUBLISH = require(\"../commands/PUBLISH\");\nconst RENAME = require(\"../commands/RENAME\");\nconst RENAMENX = require(\"../commands/RENAMENX\");\nconst RESTORE = require(\"../commands/RESTORE\");\nconst RPOP_COUNT = require(\"../commands/RPOP_COUNT\");\nconst RPOP = require(\"../commands/RPOP\");\nconst RPOPLPUSH = require(\"../commands/RPOPLPUSH\");\nconst RPUSH = require(\"../commands/RPUSH\");\nconst RPUSHX = require(\"../commands/RPUSHX\");\nconst SADD = require(\"../commands/SADD\");\nconst SCARD = require(\"../commands/SCARD\");\nconst SDIFF = require(\"../commands/SDIFF\");\nconst SDIFFSTORE = require(\"../commands/SDIFFSTORE\");\nconst SET = require(\"../commands/SET\");\nconst SETBIT = require(\"../commands/SETBIT\");\nconst SETEX = require(\"../commands/SETEX\");\nconst SETNX = require(\"../commands/SETNX\");\nconst SETRANGE = require(\"../commands/SETRANGE\");\nconst SINTER = require(\"../commands/SINTER\");\nconst SINTERCARD = require(\"../commands/SINTERCARD\");\nconst SINTERSTORE = require(\"../commands/SINTERSTORE\");\nconst SISMEMBER = require(\"../commands/SISMEMBER\");\nconst SMEMBERS = require(\"../commands/SMEMBERS\");\nconst SMISMEMBER = require(\"../commands/SMISMEMBER\");\nconst SMOVE = require(\"../commands/SMOVE\");\nconst SORT_RO = require(\"../commands/SORT_RO\");\nconst SORT_STORE = require(\"../commands/SORT_STORE\");\nconst SORT = require(\"../commands/SORT\");\nconst SPOP = require(\"../commands/SPOP\");\nconst SPUBLISH = require(\"../commands/SPUBLISH\");\nconst SRANDMEMBER_COUNT = require(\"../commands/SRANDMEMBER_COUNT\");\nconst SRANDMEMBER = require(\"../commands/SRANDMEMBER\");\nconst SREM = require(\"../commands/SREM\");\nconst SSCAN = require(\"../commands/SSCAN\");\nconst STRLEN = require(\"../commands/STRLEN\");\nconst SUNION = require(\"../commands/SUNION\");\nconst SUNIONSTORE = require(\"../commands/SUNIONSTORE\");\nconst TOUCH = require(\"../commands/TOUCH\");\nconst TTL = require(\"../commands/TTL\");\nconst TYPE = require(\"../commands/TYPE\");\nconst UNLINK = require(\"../commands/UNLINK\");\nconst WATCH = require(\"../commands/WATCH\");\nconst XACK = require(\"../commands/XACK\");\nconst XADD = require(\"../commands/XADD\");\nconst XAUTOCLAIM_JUSTID = require(\"../commands/XAUTOCLAIM_JUSTID\");\nconst XAUTOCLAIM = require(\"../commands/XAUTOCLAIM\");\nconst XCLAIM_JUSTID = require(\"../commands/XCLAIM_JUSTID\");\nconst XCLAIM = require(\"../commands/XCLAIM\");\nconst XDEL = require(\"../commands/XDEL\");\nconst XGROUP_CREATE = require(\"../commands/XGROUP_CREATE\");\nconst XGROUP_CREATECONSUMER = require(\"../commands/XGROUP_CREATECONSUMER\");\nconst XGROUP_DELCONSUMER = require(\"../commands/XGROUP_DELCONSUMER\");\nconst XGROUP_DESTROY = require(\"../commands/XGROUP_DESTROY\");\nconst XGROUP_SETID = require(\"../commands/XGROUP_SETID\");\nconst XINFO_CONSUMERS = require(\"../commands/XINFO_CONSUMERS\");\nconst XINFO_GROUPS = require(\"../commands/XINFO_GROUPS\");\nconst XINFO_STREAM = require(\"../commands/XINFO_STREAM\");\nconst XLEN = require(\"../commands/XLEN\");\nconst XPENDING_RANGE = require(\"../commands/XPENDING_RANGE\");\nconst XPENDING = require(\"../commands/XPENDING\");\nconst XRANGE = require(\"../commands/XRANGE\");\nconst XREAD = require(\"../commands/XREAD\");\nconst XREADGROUP = require(\"../commands/XREADGROUP\");\nconst XREVRANGE = require(\"../commands/XREVRANGE\");\nconst XSETID = require(\"../commands/XSETID\");\nconst XTRIM = require(\"../commands/XTRIM\");\nconst ZADD = require(\"../commands/ZADD\");\nconst ZCARD = require(\"../commands/ZCARD\");\nconst ZCOUNT = require(\"../commands/ZCOUNT\");\nconst ZDIFF_WITHSCORES = require(\"../commands/ZDIFF_WITHSCORES\");\nconst ZDIFF = require(\"../commands/ZDIFF\");\nconst ZDIFFSTORE = require(\"../commands/ZDIFFSTORE\");\nconst ZINCRBY = require(\"../commands/ZINCRBY\");\nconst ZINTER_WITHSCORES = require(\"../commands/ZINTER_WITHSCORES\");\nconst ZINTER = require(\"../commands/ZINTER\");\nconst ZINTERCARD = require(\"../commands/ZINTERCARD\");\nconst ZINTERSTORE = require(\"../commands/ZINTERSTORE\");\nconst ZLEXCOUNT = require(\"../commands/ZLEXCOUNT\");\nconst ZMPOP = require(\"../commands/ZMPOP\");\nconst ZMSCORE = require(\"../commands/ZMSCORE\");\nconst ZPOPMAX_COUNT = require(\"../commands/ZPOPMAX_COUNT\");\nconst ZPOPMAX = require(\"../commands/ZPOPMAX\");\nconst ZPOPMIN_COUNT = require(\"../commands/ZPOPMIN_COUNT\");\nconst ZPOPMIN = require(\"../commands/ZPOPMIN\");\nconst ZRANDMEMBER_COUNT_WITHSCORES = require(\"../commands/ZRANDMEMBER_COUNT_WITHSCORES\");\nconst ZRANDMEMBER_COUNT = require(\"../commands/ZRANDMEMBER_COUNT\");\nconst ZRANDMEMBER = require(\"../commands/ZRANDMEMBER\");\nconst ZRANGE_WITHSCORES = require(\"../commands/ZRANGE_WITHSCORES\");\nconst ZRANGE = require(\"../commands/ZRANGE\");\nconst ZRANGEBYLEX = require(\"../commands/ZRANGEBYLEX\");\nconst ZRANGEBYSCORE_WITHSCORES = require(\"../commands/ZRANGEBYSCORE_WITHSCORES\");\nconst ZRANGEBYSCORE = require(\"../commands/ZRANGEBYSCORE\");\nconst ZRANGESTORE = require(\"../commands/ZRANGESTORE\");\nconst ZRANK = require(\"../commands/ZRANK\");\nconst ZREM = require(\"../commands/ZREM\");\nconst ZREMRANGEBYLEX = require(\"../commands/ZREMRANGEBYLEX\");\nconst ZREMRANGEBYRANK = require(\"../commands/ZREMRANGEBYRANK\");\nconst ZREMRANGEBYSCORE = require(\"../commands/ZREMRANGEBYSCORE\");\nconst ZREVRANK = require(\"../commands/ZREVRANK\");\nconst ZSCAN = require(\"../commands/ZSCAN\");\nconst ZSCORE = require(\"../commands/ZSCORE\");\nconst ZUNION_WITHSCORES = require(\"../commands/ZUNION_WITHSCORES\");\nconst ZUNION = require(\"../commands/ZUNION\");\nconst ZUNIONSTORE = require(\"../commands/ZUNIONSTORE\");\nexports.default = {\n    APPEND,\n    append: APPEND,\n    BITCOUNT,\n    bitCount: BITCOUNT,\n    BITFIELD_RO,\n    bitFieldRo: BITFIELD_RO,\n    BITFIELD,\n    bitField: BITFIELD,\n    BITOP,\n    bitOp: BITOP,\n    BITPOS,\n    bitPos: BITPOS,\n    BLMOVE,\n    blMove: BLMOVE,\n    BLMPOP,\n    blmPop: BLMPOP,\n    BLPOP,\n    blPop: BLPOP,\n    BRPOP,\n    brPop: BRPOP,\n    BRPOPLPUSH,\n    brPopLPush: BRPOPLPUSH,\n    BZMPOP,\n    bzmPop: BZMPOP,\n    BZPOPMAX,\n    bzPopMax: BZPOPMAX,\n    BZPOPMIN,\n    bzPopMin: BZPOPMIN,\n    COPY,\n    copy: COPY,\n    DECR,\n    decr: DECR,\n    DECRBY,\n    decrBy: DECRBY,\n    DEL,\n    del: DEL,\n    DUMP,\n    dump: DUMP,\n    EVAL_RO,\n    evalRo: EVAL_RO,\n    EVAL,\n    eval: EVAL,\n    EVALSHA,\n    evalSha: EVALSHA,\n    EVALSHA_RO,\n    evalShaRo: EVALSHA_RO,\n    EXISTS,\n    exists: EXISTS,\n    EXPIRE,\n    expire: EXPIRE,\n    EXPIREAT,\n    expireAt: EXPIREAT,\n    EXPIRETIME,\n    expireTime: EXPIRETIME,\n    FCALL_RO,\n    fCallRo: FCALL_RO,\n    FCALL,\n    fCall: FCALL,\n    GEOADD,\n    geoAdd: GEOADD,\n    GEODIST,\n    geoDist: GEODIST,\n    GEOHASH,\n    geoHash: GEOHASH,\n    GEOPOS,\n    geoPos: GEOPOS,\n    GEORADIUS_RO_WITH,\n    geoRadiusRoWith: GEORADIUS_RO_WITH,\n    GEORADIUS_RO,\n    geoRadiusRo: GEORADIUS_RO,\n    GEORADIUS_WITH,\n    geoRadiusWith: GEORADIUS_WITH,\n    GEORADIUS,\n    geoRadius: GEORADIUS,\n    GEORADIUSBYMEMBER_RO_WITH,\n    geoRadiusByMemberRoWith: GEORADIUSBYMEMBER_RO_WITH,\n    GEORADIUSBYMEMBER_RO,\n    geoRadiusByMemberRo: GEORADIUSBYMEMBER_RO,\n    GEORADIUSBYMEMBER_WITH,\n    geoRadiusByMemberWith: GEORADIUSBYMEMBER_WITH,\n    GEORADIUSBYMEMBER,\n    geoRadiusByMember: GEORADIUSBYMEMBER,\n    GEORADIUSBYMEMBERSTORE,\n    geoRadiusByMemberStore: GEORADIUSBYMEMBERSTORE,\n    GEORADIUSSTORE,\n    geoRadiusStore: GEORADIUSSTORE,\n    GEOSEARCH_WITH,\n    geoSearchWith: GEOSEARCH_WITH,\n    GEOSEARCH,\n    geoSearch: GEOSEARCH,\n    GEOSEARCHSTORE,\n    geoSearchStore: GEOSEARCHSTORE,\n    GET,\n    get: GET,\n    GETBIT,\n    getBit: GETBIT,\n    GETDEL,\n    getDel: GETDEL,\n    GETEX,\n    getEx: GETEX,\n    GETRANGE,\n    getRange: GETRANGE,\n    GETSET,\n    getSet: GETSET,\n    HDEL,\n    hDel: HDEL,\n    HEXISTS,\n    hExists: HEXISTS,\n    HEXPIRE,\n    hExpire: HEXPIRE,\n    HEXPIREAT,\n    hExpireAt: HEXPIREAT,\n    HEXPIRETIME,\n    hExpireTime: HEXPIRETIME,\n    HGET,\n    hGet: HGET,\n    HGETALL,\n    hGetAll: HGETALL,\n    HINCRBY,\n    hIncrBy: HINCRBY,\n    HINCRBYFLOAT,\n    hIncrByFloat: HINCRBYFLOAT,\n    HKEYS,\n    hKeys: HKEYS,\n    HLEN,\n    hLen: HLEN,\n    HMGET,\n    hmGet: HMGET,\n    HPERSIST,\n    hPersist: HPERSIST,\n    HPEXPIRE,\n    hpExpire: HPEXPIRE,\n    HPEXPIREAT,\n    hpExpireAt: HPEXPIREAT,\n    HPEXPIRETIME,\n    hpExpireTime: HPEXPIRETIME,\n    HPTTL,\n    hpTTL: HPTTL,\n    HRANDFIELD_COUNT_WITHVALUES,\n    hRandFieldCountWithValues: HRANDFIELD_COUNT_WITHVALUES,\n    HRANDFIELD_COUNT,\n    hRandFieldCount: HRANDFIELD_COUNT,\n    HRANDFIELD,\n    hRandField: HRANDFIELD,\n    HSCAN,\n    hScan: HSCAN,\n    HSCAN_NOVALUES,\n    hScanNoValues: HSCAN_NOVALUES,\n    HSET,\n    hSet: HSET,\n    HSETNX,\n    hSetNX: HSETNX,\n    HSTRLEN,\n    hStrLen: HSTRLEN,\n    HTTL,\n    hTTL: HTTL,\n    HVALS,\n    hVals: HVALS,\n    INCR,\n    incr: INCR,\n    INCRBY,\n    incrBy: INCRBY,\n    INCRBYFLOAT,\n    incrByFloat: INCRBYFLOAT,\n    LCS_IDX_WITHMATCHLEN,\n    lcsIdxWithMatchLen: LCS_IDX_WITHMATCHLEN,\n    LCS_IDX,\n    lcsIdx: LCS_IDX,\n    LCS_LEN,\n    lcsLen: LCS_LEN,\n    LCS,\n    lcs: LCS,\n    LINDEX,\n    lIndex: LINDEX,\n    LINSERT,\n    lInsert: LINSERT,\n    LLEN,\n    lLen: LLEN,\n    LMOVE,\n    lMove: LMOVE,\n    LMPOP,\n    lmPop: LMPOP,\n    LPOP_COUNT,\n    lPopCount: LPOP_COUNT,\n    LPOP,\n    lPop: LPOP,\n    LPOS_COUNT,\n    lPosCount: LPOS_COUNT,\n    LPOS,\n    lPos: LPOS,\n    LPUSH,\n    lPush: LPUSH,\n    LPUSHX,\n    lPushX: LPUSHX,\n    LRANGE,\n    lRange: LRANGE,\n    LREM,\n    lRem: LREM,\n    LSET,\n    lSet: LSET,\n    LTRIM,\n    lTrim: LTRIM,\n    MGET,\n    mGet: MGET,\n    MIGRATE,\n    migrate: MIGRATE,\n    MSET,\n    mSet: MSET,\n    MSETNX,\n    mSetNX: MSETNX,\n    OBJECT_ENCODING,\n    objectEncoding: OBJECT_ENCODING,\n    OBJECT_FREQ,\n    objectFreq: OBJECT_FREQ,\n    OBJECT_IDLETIME,\n    objectIdleTime: OBJECT_IDLETIME,\n    OBJECT_REFCOUNT,\n    objectRefCount: OBJECT_REFCOUNT,\n    PERSIST,\n    persist: PERSIST,\n    PEXPIRE,\n    pExpire: PEXPIRE,\n    PEXPIREAT,\n    pExpireAt: PEXPIREAT,\n    PEXPIRETIME,\n    pExpireTime: PEXPIRETIME,\n    PFADD,\n    pfAdd: PFADD,\n    PFCOUNT,\n    pfCount: PFCOUNT,\n    PFMERGE,\n    pfMerge: PFMERGE,\n    PSETEX,\n    pSetEx: PSETEX,\n    PTTL,\n    pTTL: PTTL,\n    PUBLISH,\n    publish: PUBLISH,\n    RENAME,\n    rename: RENAME,\n    RENAMENX,\n    renameNX: RENAMENX,\n    RESTORE,\n    restore: RESTORE,\n    RPOP_COUNT,\n    rPopCount: RPOP_COUNT,\n    RPOP,\n    rPop: RPOP,\n    RPOPLPUSH,\n    rPopLPush: RPOPLPUSH,\n    RPUSH,\n    rPush: RPUSH,\n    RPUSHX,\n    rPushX: RPUSHX,\n    SADD,\n    sAdd: SADD,\n    SCARD,\n    sCard: SCARD,\n    SDIFF,\n    sDiff: SDIFF,\n    SDIFFSTORE,\n    sDiffStore: SDIFFSTORE,\n    SINTER,\n    sInter: SINTER,\n    SINTERCARD,\n    sInterCard: SINTERCARD,\n    SINTERSTORE,\n    sInterStore: SINTERSTORE,\n    SET,\n    set: SET,\n    SETBIT,\n    setBit: SETBIT,\n    SETEX,\n    setEx: SETEX,\n    SETNX,\n    setNX: SETNX,\n    SETRANGE,\n    setRange: SETRANGE,\n    SISMEMBER,\n    sIsMember: SISMEMBER,\n    SMEMBERS,\n    sMembers: SMEMBERS,\n    SMISMEMBER,\n    smIsMember: SMISMEMBER,\n    SMOVE,\n    sMove: SMOVE,\n    SORT_RO,\n    sortRo: SORT_RO,\n    SORT_STORE,\n    sortStore: SORT_STORE,\n    SORT,\n    sort: SORT,\n    SPOP,\n    sPop: SPOP,\n    SPUBLISH,\n    sPublish: SPUBLISH,\n    SRANDMEMBER_COUNT,\n    sRandMemberCount: SRANDMEMBER_COUNT,\n    SRANDMEMBER,\n    sRandMember: SRANDMEMBER,\n    SREM,\n    sRem: SREM,\n    SSCAN,\n    sScan: SSCAN,\n    STRLEN,\n    strLen: STRLEN,\n    SUNION,\n    sUnion: SUNION,\n    SUNIONSTORE,\n    sUnionStore: SUNIONSTORE,\n    TOUCH,\n    touch: TOUCH,\n    TTL,\n    ttl: TTL,\n    TYPE,\n    type: TYPE,\n    UNLINK,\n    unlink: UNLINK,\n    WATCH,\n    watch: WATCH,\n    XACK,\n    xAck: XACK,\n    XADD,\n    xAdd: XADD,\n    XAUTOCLAIM_JUSTID,\n    xAutoClaimJustId: XAUTOCLAIM_JUSTID,\n    XAUTOCLAIM,\n    xAutoClaim: XAUTOCLAIM,\n    XCLAIM,\n    xClaim: XCLAIM,\n    XCLAIM_JUSTID,\n    xClaimJustId: XCLAIM_JUSTID,\n    XDEL,\n    xDel: XDEL,\n    XGROUP_CREATE,\n    xGroupCreate: XGROUP_CREATE,\n    XGROUP_CREATECONSUMER,\n    xGroupCreateConsumer: XGROUP_CREATECONSUMER,\n    XGROUP_DELCONSUMER,\n    xGroupDelConsumer: XGROUP_DELCONSUMER,\n    XGROUP_DESTROY,\n    xGroupDestroy: XGROUP_DESTROY,\n    XGROUP_SETID,\n    xGroupSetId: XGROUP_SETID,\n    XINFO_CONSUMERS,\n    xInfoConsumers: XINFO_CONSUMERS,\n    XINFO_GROUPS,\n    xInfoGroups: XINFO_GROUPS,\n    XINFO_STREAM,\n    xInfoStream: XINFO_STREAM,\n    XLEN,\n    xLen: XLEN,\n    XPENDING_RANGE,\n    xPendingRange: XPENDING_RANGE,\n    XPENDING,\n    xPending: XPENDING,\n    XRANGE,\n    xRange: XRANGE,\n    XREAD,\n    xRead: XREAD,\n    XREADGROUP,\n    xReadGroup: XREADGROUP,\n    XREVRANGE,\n    xRevRange: XREVRANGE,\n    XSETID,\n    xSetId: XSETID,\n    XTRIM,\n    xTrim: XTRIM,\n    ZADD,\n    zAdd: ZADD,\n    ZCARD,\n    zCard: ZCARD,\n    ZCOUNT,\n    zCount: ZCOUNT,\n    ZDIFF_WITHSCORES,\n    zDiffWithScores: ZDIFF_WITHSCORES,\n    ZDIFF,\n    zDiff: ZDIFF,\n    ZDIFFSTORE,\n    zDiffStore: ZDIFFSTORE,\n    ZINCRBY,\n    zIncrBy: ZINCRBY,\n    ZINTER_WITHSCORES,\n    zInterWithScores: ZINTER_WITHSCORES,\n    ZINTER,\n    zInter: ZINTER,\n    ZINTERCARD,\n    zInterCard: ZINTERCARD,\n    ZINTERSTORE,\n    zInterStore: ZINTERSTORE,\n    ZLEXCOUNT,\n    zLexCount: ZLEXCOUNT,\n    ZMPOP,\n    zmPop: ZMPOP,\n    ZMSCORE,\n    zmScore: ZMSCORE,\n    ZPOPMAX_COUNT,\n    zPopMaxCount: ZPOPMAX_COUNT,\n    ZPOPMAX,\n    zPopMax: ZPOPMAX,\n    ZPOPMIN_COUNT,\n    zPopMinCount: ZPOPMIN_COUNT,\n    ZPOPMIN,\n    zPopMin: ZPOPMIN,\n    ZRANDMEMBER_COUNT_WITHSCORES,\n    zRandMemberCountWithScores: ZRANDMEMBER_COUNT_WITHSCORES,\n    ZRANDMEMBER_COUNT,\n    zRandMemberCount: ZRANDMEMBER_COUNT,\n    ZRANDMEMBER,\n    zRandMember: ZRANDMEMBER,\n    ZRANGE_WITHSCORES,\n    zRangeWithScores: ZRANGE_WITHSCORES,\n    ZRANGE,\n    zRange: ZRANGE,\n    ZRANGEBYLEX,\n    zRangeByLex: ZRANGEBYLEX,\n    ZRANGEBYSCORE_WITHSCORES,\n    zRangeByScoreWithScores: ZRANGEBYSCORE_WITHSCORES,\n    ZRANGEBYSCORE,\n    zRangeByScore: ZRANGEBYSCORE,\n    ZRANGESTORE,\n    zRangeStore: ZRANGESTORE,\n    ZRANK,\n    zRank: ZRANK,\n    ZREM,\n    zRem: ZREM,\n    ZREMRANGEBYLEX,\n    zRemRangeByLex: ZREMRANGEBYLEX,\n    ZREMRANGEBYRANK,\n    zRemRangeByRank: ZREMRANGEBYRANK,\n    ZREMRANGEBYSCORE,\n    zRemRangeByScore: ZREMRANGEBYSCORE,\n    ZREVRANK,\n    zRevRank: ZREVRANK,\n    ZSCAN,\n    zScan: ZSCAN,\n    ZSCORE,\n    zScore: ZSCORE,\n    ZUNION_WITHSCORES,\n    zUnionWithScores: ZUNION_WITHSCORES,\n    ZUNION,\n    zUnion: ZUNION,\n    ZUNIONSTORE,\n    zUnionStore: ZUNIONSTORE\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(categoryName) {\n    const args = ['ACL', 'CAT'];\n    if (categoryName) {\n        args.push(categoryName);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(username) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['ACL', 'DELUSER'], username);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(username, command) {\n    return [\n        'ACL',\n        'DRYRUN',\n        username,\n        ...command\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(bits) {\n    const args = ['ACL', 'GENPASS'];\n    if (bits) {\n        args.push(bits.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(username) {\n    return ['ACL', 'GETUSER', username];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        flags: reply[1],\n        passwords: reply[3],\n        commands: reply[5],\n        keys: reply[7],\n        channels: reply[9],\n        selectors: reply[11]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ACL', 'LIST'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ACL', 'LOAD'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ACL', 'LOG', 'RESET'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(count) {\n    const args = ['ACL', 'LOG'];\n    if (count) {\n        args.push(count.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(log => ({\n        count: log[1],\n        reason: log[3],\n        context: log[5],\n        object: log[7],\n        username: log[9],\n        ageSeconds: Number(log[11]),\n        clientInfo: log[13]\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ACL', 'SAVE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(username, rule) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['ACL', 'SETUSER', username], rule);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ACL', 'USERS'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ACL', 'WHOAMI'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['ASKING'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments({ username, password }) {\n    if (!username) {\n        return ['AUTH', password];\n    }\n    return ['AUTH', username, password];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['BGREWRITEAOF'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(options) {\n    const args = ['BGSAVE'];\n    if (options?.SCHEDULE) {\n        args.push('SCHEDULE');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(value) {\n    return [\n        'CLIENT',\n        'CACHING',\n        value ? 'YES' : 'NO'\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLIENT', 'GETNAME'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLIENT', 'GETREDIR'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['CLIENT', 'ID'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.ClientKillFilters = void 0;\nvar ClientKillFilters;\n(function (ClientKillFilters) {\n    ClientKillFilters[\"ADDRESS\"] = \"ADDR\";\n    ClientKillFilters[\"LOCAL_ADDRESS\"] = \"LADDR\";\n    ClientKillFilters[\"ID\"] = \"ID\";\n    ClientKillFilters[\"TYPE\"] = \"TYPE\";\n    ClientKillFilters[\"USER\"] = \"USER\";\n    ClientKillFilters[\"SKIP_ME\"] = \"SKIPME\";\n    ClientKillFilters[\"MAXAGE\"] = \"MAXAGE\";\n})(ClientKillFilters || (exports.ClientKillFilters = ClientKillFilters = {}));\nfunction transformArguments(filters) {\n    const args = ['CLIENT', 'KILL'];\n    if (Array.isArray(filters)) {\n        for (const filter of filters) {\n            pushFilter(args, filter);\n        }\n    }\n    else {\n        pushFilter(args, filters);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction pushFilter(args, filter) {\n    if (filter === ClientKillFilters.SKIP_ME) {\n        args.push('SKIPME');\n        return;\n    }\n    args.push(filter.filter);\n    switch (filter.filter) {\n        case ClientKillFilters.ADDRESS:\n            args.push(filter.address);\n            break;\n        case ClientKillFilters.LOCAL_ADDRESS:\n            args.push(filter.localAddress);\n            break;\n        case ClientKillFilters.ID:\n            args.push(typeof filter.id === 'number' ?\n                filter.id.toString() :\n                filter.id);\n            break;\n        case ClientKillFilters.TYPE:\n            args.push(filter.type);\n            break;\n        case ClientKillFilters.USER:\n            args.push(filter.username);\n            break;\n        case ClientKillFilters.SKIP_ME:\n            args.push(filter.skipMe ? 'yes' : 'no');\n            break;\n        case ClientKillFilters.MAXAGE:\n            args.push(filter.maxAge.toString());\n            break;\n    }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['CLIENT', 'INFO'];\n}\nexports.transformArguments = transformArguments;\nconst CLIENT_INFO_REGEX = /([^\\s=]+)=([^\\s]*)/g;\nfunction transformReply(rawReply) {\n    const map = {};\n    for (const item of rawReply.matchAll(CLIENT_INFO_REGEX)) {\n        map[item[1]] = item[2];\n    }\n    const reply = {\n        id: Number(map.id),\n        addr: map.addr,\n        fd: Number(map.fd),\n        name: map.name,\n        age: Number(map.age),\n        idle: Number(map.idle),\n        flags: map.flags,\n        db: Number(map.db),\n        sub: Number(map.sub),\n        psub: Number(map.psub),\n        multi: Number(map.multi),\n        qbuf: Number(map.qbuf),\n        qbufFree: Number(map['qbuf-free']),\n        argvMem: Number(map['argv-mem']),\n        obl: Number(map.obl),\n        oll: Number(map.oll),\n        omem: Number(map.omem),\n        totMem: Number(map['tot-mem']),\n        events: map.events,\n        cmd: map.cmd,\n        user: map.user,\n        libName: map['lib-name'],\n        libVer: map['lib-ver'],\n    };\n    if (map.laddr !== undefined) {\n        reply.laddr = map.laddr;\n    }\n    if (map.redir !== undefined) {\n        reply.redir = Number(map.redir);\n    }\n    if (map.ssub !== undefined) {\n        reply.ssub = Number(map.ssub);\n    }\n    if (map['multi-mem'] !== undefined) {\n        reply.multiMem = Number(map['multi-mem']);\n    }\n    if (map.resp !== undefined) {\n        reply.resp = Number(map.resp);\n    }\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nconst CLIENT_INFO_1 = require(\"./CLIENT_INFO\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(filter) {\n    let args = ['CLIENT', 'LIST'];\n    if (filter) {\n        if (filter.TYPE !== undefined) {\n            args.push('TYPE', filter.TYPE);\n        }\n        else {\n            args.push('ID');\n            args = (0, generic_transformers_1.pushVerdictArguments)(args, filter.ID);\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const split = rawReply.split('\\n'), length = split.length - 1, reply = [];\n    for (let i = 0; i < length; i++) {\n        reply.push((0, CLIENT_INFO_1.transformReply)(split[i]));\n    }\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(value) {\n    return [\n        'CLIENT',\n        'NO-EVICT',\n        value ? 'ON' : 'OFF'\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(value) {\n    return [\n        'CLIENT',\n        'NO-TOUCH',\n        value ? 'ON' : 'OFF'\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(timeout, mode) {\n    const args = [\n        'CLIENT',\n        'PAUSE',\n        timeout.toString()\n    ];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(name) {\n    return ['CLIENT', 'SETNAME', name];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode, options) {\n    const args = [\n        'CLIENT',\n        'TRACKING',\n        mode ? 'ON' : 'OFF'\n    ];\n    if (mode) {\n        if (options?.REDIRECT) {\n            args.push('REDIRECT', options.REDIRECT.toString());\n        }\n        if (isBroadcast(options)) {\n            args.push('BCAST');\n            if (options?.PREFIX) {\n                if (Array.isArray(options.PREFIX)) {\n                    for (const prefix of options.PREFIX) {\n                        args.push('PREFIX', prefix);\n                    }\n                }\n                else {\n                    args.push('PREFIX', options.PREFIX);\n                }\n            }\n        }\n        else if (isOptIn(options)) {\n            args.push('OPTIN');\n        }\n        else if (isOptOut(options)) {\n            args.push('OPTOUT');\n        }\n        if (options?.NOLOOP) {\n            args.push('NOLOOP');\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction isBroadcast(options) {\n    return options?.BCAST === true;\n}\nfunction isOptIn(options) {\n    return options?.OPTIN === true;\n}\nfunction isOptOut(options) {\n    return options?.OPTOUT === true;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLIENT', 'TRACKINGINFO'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        flags: new Set(reply[1]),\n        redirect: reply[3],\n        prefixes: reply[5]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLIENT', 'UNPAUSE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(slots) {\n    return (0, generic_transformers_1.pushVerdictNumberArguments)(['CLUSTER', 'ADDSLOTS'], slots);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(ranges) {\n    return (0, generic_transformers_1.pushSlotRangesArguments)(['CLUSTER', 'ADDSLOTSRANGE'], ranges);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'BUMPEPOCH'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(nodeId) {\n    return ['CLUSTER', 'COUNT-FAILURE-REPORTS', nodeId];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(slot) {\n    return ['CLUSTER', 'COUNTKEYSINSLOT', slot.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(slots) {\n    return (0, generic_transformers_1.pushVerdictNumberArguments)(['CLUSTER', 'DELSLOTS'], slots);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(ranges) {\n    return (0, generic_transformers_1.pushSlotRangesArguments)(['CLUSTER', 'DELSLOTSRANGE'], ranges);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FailoverModes = void 0;\nvar FailoverModes;\n(function (FailoverModes) {\n    FailoverModes[\"FORCE\"] = \"FORCE\";\n    FailoverModes[\"TAKEOVER\"] = \"TAKEOVER\";\n})(FailoverModes || (exports.FailoverModes = FailoverModes = {}));\nfunction transformArguments(mode) {\n    const args = ['CLUSTER', 'FAILOVER'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'FLUSHSLOTS'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(nodeId) {\n    return ['CLUSTER', 'FORGET', nodeId];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(slot, count) {\n    return ['CLUSTER', 'GETKEYSINSLOT', slot.toString(), count.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractLineValue = exports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'INFO'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    const lines = reply.split('\\r\\n');\n    return {\n        state: extractLineValue(lines[0]),\n        slots: {\n            assigned: Number(extractLineValue(lines[1])),\n            ok: Number(extractLineValue(lines[2])),\n            pfail: Number(extractLineValue(lines[3])),\n            fail: Number(extractLineValue(lines[4]))\n        },\n        knownNodes: Number(extractLineValue(lines[5])),\n        size: Number(extractLineValue(lines[6])),\n        currentEpoch: Number(extractLineValue(lines[7])),\n        myEpoch: Number(extractLineValue(lines[8])),\n        stats: {\n            messagesSent: Number(extractLineValue(lines[9])),\n            messagesReceived: Number(extractLineValue(lines[10]))\n        }\n    };\n}\nexports.transformReply = transformReply;\nfunction extractLineValue(line) {\n    return line.substring(line.indexOf(':') + 1);\n}\nexports.extractLineValue = extractLineValue;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(key) {\n    return ['CLUSTER', 'KEYSLOT', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'LINKS'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(peerLink => ({\n        direction: peerLink[1],\n        node: peerLink[3],\n        createTime: Number(peerLink[5]),\n        events: peerLink[7],\n        sendBufferAllocated: Number(peerLink[9]),\n        sendBufferUsed: Number(peerLink[11])\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(ip, port) {\n    return ['CLUSTER', 'MEET', ip, port.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'MYID'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['CLUSTER', 'MYSHARDID'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.RedisClusterNodeLinkStates = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'NODES'];\n}\nexports.transformArguments = transformArguments;\nvar RedisClusterNodeLinkStates;\n(function (RedisClusterNodeLinkStates) {\n    RedisClusterNodeLinkStates[\"CONNECTED\"] = \"connected\";\n    RedisClusterNodeLinkStates[\"DISCONNECTED\"] = \"disconnected\";\n})(RedisClusterNodeLinkStates || (exports.RedisClusterNodeLinkStates = RedisClusterNodeLinkStates = {}));\nfunction transformReply(reply) {\n    const lines = reply.split('\\n');\n    lines.pop(); // last line is empty\n    const mastersMap = new Map(), replicasMap = new Map();\n    for (const line of lines) {\n        const [id, address, flags, masterId, pingSent, pongRecv, configEpoch, linkState, ...slots] = line.split(' '), node = {\n            id,\n            address,\n            ...transformNodeAddress(address),\n            flags: flags.split(','),\n            pingSent: Number(pingSent),\n            pongRecv: Number(pongRecv),\n            configEpoch: Number(configEpoch),\n            linkState: linkState\n        };\n        if (masterId === '-') {\n            let replicas = replicasMap.get(id);\n            if (!replicas) {\n                replicas = [];\n                replicasMap.set(id, replicas);\n            }\n            mastersMap.set(id, {\n                ...node,\n                slots: slots.map(slot => {\n                    // TODO: importing & exporting (https://redis.io/commands/cluster-nodes#special-slot-entries)\n                    const [fromString, toString] = slot.split('-', 2), from = Number(fromString);\n                    return {\n                        from,\n                        to: toString ? Number(toString) : from\n                    };\n                }),\n                replicas\n            });\n        }\n        else {\n            const replicas = replicasMap.get(masterId);\n            if (!replicas) {\n                replicasMap.set(masterId, [node]);\n            }\n            else {\n                replicas.push(node);\n            }\n        }\n    }\n    return [...mastersMap.values()];\n}\nexports.transformReply = transformReply;\nfunction transformNodeAddress(address) {\n    const indexOfColon = address.lastIndexOf(':'), indexOfAt = address.indexOf('@', indexOfColon), host = address.substring(0, indexOfColon);\n    if (indexOfAt === -1) {\n        return {\n            host,\n            port: Number(address.substring(indexOfColon + 1)),\n            cport: null\n        };\n    }\n    return {\n        host: address.substring(0, indexOfColon),\n        port: Number(address.substring(indexOfColon + 1, indexOfAt)),\n        cport: Number(address.substring(indexOfAt + 1))\n    };\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(nodeId) {\n    return ['CLUSTER', 'REPLICAS', nodeId];\n}\nexports.transformArguments = transformArguments;\nvar CLUSTER_NODES_1 = require(\"./CLUSTER_NODES\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return CLUSTER_NODES_1.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(nodeId) {\n    return ['CLUSTER', 'REPLICATE', nodeId];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode) {\n    const args = ['CLUSTER', 'RESET'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'SAVECONFIG'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(configEpoch) {\n    return ['CLUSTER', 'SET-CONFIG-EPOCH', configEpoch.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.ClusterSlotStates = void 0;\nvar ClusterSlotStates;\n(function (ClusterSlotStates) {\n    ClusterSlotStates[\"IMPORTING\"] = \"IMPORTING\";\n    ClusterSlotStates[\"MIGRATING\"] = \"MIGRATING\";\n    ClusterSlotStates[\"STABLE\"] = \"STABLE\";\n    ClusterSlotStates[\"NODE\"] = \"NODE\";\n})(ClusterSlotStates || (exports.ClusterSlotStates = ClusterSlotStates = {}));\nfunction transformArguments(slot, state, nodeId) {\n    const args = ['CLUSTER', 'SETSLOT', slot.toString(), state];\n    if (nodeId) {\n        args.push(nodeId);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CLUSTER', 'SLOTS'];\n}\nexports.transformArguments = transformArguments;\n;\nfunction transformReply(reply) {\n    return reply.map(([from, to, master, ...replicas]) => {\n        return {\n            from,\n            to,\n            master: transformNode(master),\n            replicas: replicas.map(transformNode)\n        };\n    });\n}\nexports.transformReply = transformReply;\nfunction transformNode([ip, port, id]) {\n    return {\n        ip,\n        port,\n        id\n    };\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['COMMAND', 'COUNT'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(args) {\n    return ['COMMAND', 'GETKEYS', ...args];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(args) {\n    return ['COMMAND', 'GETKEYSANDFLAGS', ...args];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(([key, flags]) => ({\n        key,\n        flags\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(commands) {\n    return ['COMMAND', 'INFO', ...commands];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(command => command ? (0, generic_transformers_1.transformCommandReply)(command) : null);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FilterBy = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nvar FilterBy;\n(function (FilterBy) {\n    FilterBy[\"MODULE\"] = \"MODULE\";\n    FilterBy[\"ACLCAT\"] = \"ACLCAT\";\n    FilterBy[\"PATTERN\"] = \"PATTERN\";\n})(FilterBy || (exports.FilterBy = FilterBy = {}));\nfunction transformArguments(filter) {\n    const args = ['COMMAND', 'LIST'];\n    if (filter) {\n        args.push('FILTERBY', filter.filterBy, filter.value);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['COMMAND'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(generic_transformers_1.transformCommandReply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(parameter) {\n    return ['CONFIG', 'GET', parameter];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CONFIG', 'RESETSTAT'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['CONFIG', 'REWRITE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(...[parameterOrConfig, value]) {\n    const args = ['CONFIG', 'SET'];\n    if (typeof parameterOrConfig === 'string') {\n        args.push(parameterOrConfig, value);\n    }\n    else {\n        for (const [key, value] of Object.entries(parameterOrConfig)) {\n            args.push(key, value);\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['DBSIZE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['DISCARD'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(message) {\n    return ['ECHO', message];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(options) {\n    const args = ['FAILOVER'];\n    if (options?.TO) {\n        args.push('TO', options.TO.host, options.TO.port.toString());\n        if (options.TO.FORCE) {\n            args.push('FORCE');\n        }\n    }\n    if (options?.ABORT) {\n        args.push('ABORT');\n    }\n    if (options?.TIMEOUT) {\n        args.push('TIMEOUT', options.TIMEOUT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.RedisFlushModes = void 0;\nvar RedisFlushModes;\n(function (RedisFlushModes) {\n    RedisFlushModes[\"ASYNC\"] = \"ASYNC\";\n    RedisFlushModes[\"SYNC\"] = \"SYNC\";\n})(RedisFlushModes || (exports.RedisFlushModes = RedisFlushModes = {}));\nfunction transformArguments(mode) {\n    const args = ['FLUSHALL'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode) {\n    const args = ['FLUSHDB'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(library) {\n    return ['FUNCTION', 'DELETE', library];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['FUNCTION', 'DUMP'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode) {\n    const args = ['FUNCTION', 'FLUSH'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['FUNCTION', 'KILL'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(pattern) {\n    const args = ['FUNCTION', 'LIST'];\n    if (pattern) {\n        args.push(pattern);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(generic_transformers_1.transformFunctionListItemReply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nconst FUNCTION_LIST_1 = require(\"./FUNCTION_LIST\");\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(pattern) {\n    const args = (0, FUNCTION_LIST_1.transformArguments)(pattern);\n    args.push('WITHCODE');\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(library => ({\n        ...(0, generic_transformers_1.transformFunctionListItemReply)(library),\n        libraryCode: library[7]\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(code, options) {\n    const args = ['FUNCTION', 'LOAD'];\n    if (options?.REPLACE) {\n        args.push('REPLACE');\n    }\n    args.push(code);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(dump, mode) {\n    const args = ['FUNCTION', 'RESTORE', dump];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['FUNCTION', 'STATS'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    const engines = Object.create(null);\n    for (let i = 0; i < reply[3].length; i++) {\n        engines[reply[3][i]] = {\n            librariesCount: reply[3][++i][1],\n            functionsCount: reply[3][i][3]\n        };\n    }\n    return {\n        runningScript: reply[1] === null ? null : {\n            name: reply[1][1],\n            command: reply[1][3],\n            durationMs: reply[1][5]\n        },\n        engines\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(options) {\n    const args = ['HELLO'];\n    if (options) {\n        args.push(options.protover.toString());\n        if (options.auth) {\n            args.push('AUTH', options.auth.username, options.auth.password);\n        }\n        if (options.clientName) {\n            args.push('SETNAME', options.clientName);\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        server: reply[1],\n        version: reply[3],\n        proto: reply[5],\n        id: reply[7],\n        mode: reply[9],\n        role: reply[11],\n        modules: reply[13]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(section) {\n    const args = ['INFO'];\n    if (section) {\n        args.push(section);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(pattern) {\n    return ['KEYS', pattern];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['LASTSAVE'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return new Date(reply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['LATENCY', 'DOCTOR'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(event) {\n    return ['LATENCY', 'GRAPH', event];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(event) {\n    return ['LATENCY', 'HISTORY', event];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['LATENCY', 'LATEST'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(version, ...optionalArguments) {\n    const args = ['LOLWUT'];\n    if (version) {\n        args.push('VERSION', version.toString(), ...optionalArguments.map(String));\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['MEMORY', 'DOCTOR'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['MEMORY', 'MALLOC-STATS'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['MEMORY', 'PURGE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['MEMORY', 'STATS'];\n}\nexports.transformArguments = transformArguments;\nconst FIELDS_MAPPING = {\n    'peak.allocated': 'peakAllocated',\n    'total.allocated': 'totalAllocated',\n    'startup.allocated': 'startupAllocated',\n    'replication.backlog': 'replicationBacklog',\n    'clients.slaves': 'clientsReplicas',\n    'clients.normal': 'clientsNormal',\n    'aof.buffer': 'aofBuffer',\n    'lua.caches': 'luaCaches',\n    'overhead.total': 'overheadTotal',\n    'keys.count': 'keysCount',\n    'keys.bytes-per-key': 'keysBytesPerKey',\n    'dataset.bytes': 'datasetBytes',\n    'dataset.percentage': 'datasetPercentage',\n    'peak.percentage': 'peakPercentage',\n    'allocator.allocated': 'allocatorAllocated',\n    'allocator.active': 'allocatorActive',\n    'allocator.resident': 'allocatorResident',\n    'allocator-fragmentation.ratio': 'allocatorFragmentationRatio',\n    'allocator-fragmentation.bytes': 'allocatorFragmentationBytes',\n    'allocator-rss.ratio': 'allocatorRssRatio',\n    'allocator-rss.bytes': 'allocatorRssBytes',\n    'rss-overhead.ratio': 'rssOverheadRatio',\n    'rss-overhead.bytes': 'rssOverheadBytes',\n    'fragmentation': 'fragmentation',\n    'fragmentation.bytes': 'fragmentationBytes'\n}, DB_FIELDS_MAPPING = {\n    'overhead.hashtable.main': 'overheadHashtableMain',\n    'overhead.hashtable.expires': 'overheadHashtableExpires'\n};\nfunction transformReply(rawReply) {\n    const reply = {\n        db: {}\n    };\n    for (let i = 0; i < rawReply.length; i += 2) {\n        const key = rawReply[i];\n        if (key.startsWith('db.')) {\n            const dbTuples = rawReply[i + 1], db = {};\n            for (let j = 0; j < dbTuples.length; j += 2) {\n                db[DB_FIELDS_MAPPING[dbTuples[j]]] = dbTuples[j + 1];\n            }\n            reply.db[key.substring(3)] = db;\n            continue;\n        }\n        reply[FIELDS_MAPPING[key]] = Number(rawReply[i + 1]);\n    }\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, options) {\n    const args = ['MEMORY', 'USAGE', key];\n    if (options?.SAMPLES) {\n        args.push('SAMPLES', options.SAMPLES.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['MODULE', 'LIST'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(path, moduleArgs) {\n    const args = ['MODULE', 'LOAD', path];\n    if (moduleArgs) {\n        args.push(...moduleArgs);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(name) {\n    return ['MODULE', 'UNLOAD', name];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, db) {\n    return ['MOVE', key, db.toString()];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(message) {\n    const args = ['PING'];\n    if (message) {\n        args.push(message);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(pattern) {\n    const args = ['PUBSUB', 'CHANNELS'];\n    if (pattern) {\n        args.push(pattern);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['PUBSUB', 'NUMPAT'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(channels) {\n    const args = ['PUBSUB', 'NUMSUB'];\n    if (channels)\n        return (0, generic_transformers_1.pushVerdictArguments)(args, channels);\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const transformedReply = Object.create(null);\n    for (let i = 0; i < rawReply.length; i += 2) {\n        transformedReply[rawReply[i]] = rawReply[i + 1];\n    }\n    return transformedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(pattern) {\n    const args = ['PUBSUB', 'SHARDCHANNELS'];\n    if (pattern)\n        args.push(pattern);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(channels) {\n    const args = ['PUBSUB', 'SHARDNUMSUB'];\n    if (channels)\n        return (0, generic_transformers_1.pushVerdictArguments)(args, channels);\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const transformedReply = Object.create(null);\n    for (let i = 0; i < rawReply.length; i += 2) {\n        transformedReply[rawReply[i]] = rawReply[i + 1];\n    }\n    return transformedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['RANDOMKEY'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['READONLY'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['READWRITE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(host, port) {\n    return ['REPLICAOF', host, port.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['RESTORE-ASKING'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['ROLE'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    switch (reply[0]) {\n        case 'master':\n            return {\n                role: 'master',\n                replicationOffest: reply[1],\n                replicas: reply[2].map(([ip, port, replicationOffest]) => ({\n                    ip,\n                    port: Number(port),\n                    replicationOffest: Number(replicationOffest)\n                }))\n            };\n        case 'slave':\n            return {\n                role: 'slave',\n                master: {\n                    ip: reply[1],\n                    port: reply[2]\n                },\n                state: reply[3],\n                dataReceived: reply[4]\n            };\n        case 'sentinel':\n            return {\n                role: 'sentinel',\n                masterNames: reply[1]\n            };\n    }\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['SAVE'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(cursor, options) {\n    const args = (0, generic_transformers_1.pushScanArguments)(['SCAN'], cursor, options);\n    if (options?.TYPE) {\n        args.push('TYPE', options.TYPE);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([cursor, keys]) {\n    return {\n        cursor: Number(cursor),\n        keys\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode) {\n    return ['SCRIPT', 'DEBUG', mode];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"./generic-transformers\");\nfunction transformArguments(sha1) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['SCRIPT', 'EXISTS'], sha1);\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"./generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode) {\n    const args = ['SCRIPT', 'FLUSH'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['SCRIPT', 'KILL'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(script) {\n    return ['SCRIPT', 'LOAD', script];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(mode) {\n    const args = ['SHUTDOWN'];\n    if (mode) {\n        args.push(mode);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(index1, index2) {\n    return ['SWAPDB', index1.toString(), index2.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['TIME'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    const seconds = Number(reply[0]), microseconds = Number(reply[1]), d = new Date(seconds * 1000 + microseconds / 1000);\n    d.microseconds = microseconds;\n    return d;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['UNWATCH'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(numberOfReplicas, timeout) {\n    return ['WAIT', numberOfReplicas.toString(), timeout.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst commands_1 = require(\"../cluster/commands\");\nconst ACL_CAT = require(\"../commands/ACL_CAT\");\nconst ACL_DELUSER = require(\"../commands/ACL_DELUSER\");\nconst ACL_DRYRUN = require(\"../commands/ACL_DRYRUN\");\nconst ACL_GENPASS = require(\"../commands/ACL_GENPASS\");\nconst ACL_GETUSER = require(\"../commands/ACL_GETUSER\");\nconst ACL_LIST = require(\"../commands/ACL_LIST\");\nconst ACL_LOAD = require(\"../commands/ACL_LOAD\");\nconst ACL_LOG_RESET = require(\"../commands/ACL_LOG_RESET\");\nconst ACL_LOG = require(\"../commands/ACL_LOG\");\nconst ACL_SAVE = require(\"../commands/ACL_SAVE\");\nconst ACL_SETUSER = require(\"../commands/ACL_SETUSER\");\nconst ACL_USERS = require(\"../commands/ACL_USERS\");\nconst ACL_WHOAMI = require(\"../commands/ACL_WHOAMI\");\nconst ASKING = require(\"../commands/ASKING\");\nconst AUTH = require(\"../commands/AUTH\");\nconst BGREWRITEAOF = require(\"../commands/BGREWRITEAOF\");\nconst BGSAVE = require(\"../commands/BGSAVE\");\nconst CLIENT_CACHING = require(\"../commands/CLIENT_CACHING\");\nconst CLIENT_GETNAME = require(\"../commands/CLIENT_GETNAME\");\nconst CLIENT_GETREDIR = require(\"../commands/CLIENT_GETREDIR\");\nconst CLIENT_ID = require(\"../commands/CLIENT_ID\");\nconst CLIENT_KILL = require(\"../commands/CLIENT_KILL\");\nconst CLIENT_LIST = require(\"../commands/CLIENT_LIST\");\nconst CLIENT_NO_EVICT = require(\"../commands/CLIENT_NO-EVICT\");\nconst CLIENT_NO_TOUCH = require(\"../commands/CLIENT_NO-TOUCH\");\nconst CLIENT_PAUSE = require(\"../commands/CLIENT_PAUSE\");\nconst CLIENT_SETNAME = require(\"../commands/CLIENT_SETNAME\");\nconst CLIENT_TRACKING = require(\"../commands/CLIENT_TRACKING\");\nconst CLIENT_TRACKINGINFO = require(\"../commands/CLIENT_TRACKINGINFO\");\nconst CLIENT_UNPAUSE = require(\"../commands/CLIENT_UNPAUSE\");\nconst CLIENT_INFO = require(\"../commands/CLIENT_INFO\");\nconst CLUSTER_ADDSLOTS = require(\"../commands/CLUSTER_ADDSLOTS\");\nconst CLUSTER_ADDSLOTSRANGE = require(\"../commands/CLUSTER_ADDSLOTSRANGE\");\nconst CLUSTER_BUMPEPOCH = require(\"../commands/CLUSTER_BUMPEPOCH\");\nconst CLUSTER_COUNT_FAILURE_REPORTS = require(\"../commands/CLUSTER_COUNT-FAILURE-REPORTS\");\nconst CLUSTER_COUNTKEYSINSLOT = require(\"../commands/CLUSTER_COUNTKEYSINSLOT\");\nconst CLUSTER_DELSLOTS = require(\"../commands/CLUSTER_DELSLOTS\");\nconst CLUSTER_DELSLOTSRANGE = require(\"../commands/CLUSTER_DELSLOTSRANGE\");\nconst CLUSTER_FAILOVER = require(\"../commands/CLUSTER_FAILOVER\");\nconst CLUSTER_FLUSHSLOTS = require(\"../commands/CLUSTER_FLUSHSLOTS\");\nconst CLUSTER_FORGET = require(\"../commands/CLUSTER_FORGET\");\nconst CLUSTER_GETKEYSINSLOT = require(\"../commands/CLUSTER_GETKEYSINSLOT\");\nconst CLUSTER_INFO = require(\"../commands/CLUSTER_INFO\");\nconst CLUSTER_KEYSLOT = require(\"../commands/CLUSTER_KEYSLOT\");\nconst CLUSTER_LINKS = require(\"../commands/CLUSTER_LINKS\");\nconst CLUSTER_MEET = require(\"../commands/CLUSTER_MEET\");\nconst CLUSTER_MYID = require(\"../commands/CLUSTER_MYID\");\nconst CLUSTER_MYSHARDID = require(\"../commands/CLUSTER_MYSHARDID\");\nconst CLUSTER_NODES = require(\"../commands/CLUSTER_NODES\");\nconst CLUSTER_REPLICAS = require(\"../commands/CLUSTER_REPLICAS\");\nconst CLUSTER_REPLICATE = require(\"../commands/CLUSTER_REPLICATE\");\nconst CLUSTER_RESET = require(\"../commands/CLUSTER_RESET\");\nconst CLUSTER_SAVECONFIG = require(\"../commands/CLUSTER_SAVECONFIG\");\nconst CLUSTER_SET_CONFIG_EPOCH = require(\"../commands/CLUSTER_SET-CONFIG-EPOCH\");\nconst CLUSTER_SETSLOT = require(\"../commands/CLUSTER_SETSLOT\");\nconst CLUSTER_SLOTS = require(\"../commands/CLUSTER_SLOTS\");\nconst COMMAND_COUNT = require(\"../commands/COMMAND_COUNT\");\nconst COMMAND_GETKEYS = require(\"../commands/COMMAND_GETKEYS\");\nconst COMMAND_GETKEYSANDFLAGS = require(\"../commands/COMMAND_GETKEYSANDFLAGS\");\nconst COMMAND_INFO = require(\"../commands/COMMAND_INFO\");\nconst COMMAND_LIST = require(\"../commands/COMMAND_LIST\");\nconst COMMAND = require(\"../commands/COMMAND\");\nconst CONFIG_GET = require(\"../commands/CONFIG_GET\");\nconst CONFIG_RESETASTAT = require(\"../commands/CONFIG_RESETSTAT\");\nconst CONFIG_REWRITE = require(\"../commands/CONFIG_REWRITE\");\nconst CONFIG_SET = require(\"../commands/CONFIG_SET\");\nconst DBSIZE = require(\"../commands/DBSIZE\");\nconst DISCARD = require(\"../commands/DISCARD\");\nconst ECHO = require(\"../commands/ECHO\");\nconst FAILOVER = require(\"../commands/FAILOVER\");\nconst FLUSHALL = require(\"../commands/FLUSHALL\");\nconst FLUSHDB = require(\"../commands/FLUSHDB\");\nconst FUNCTION_DELETE = require(\"../commands/FUNCTION_DELETE\");\nconst FUNCTION_DUMP = require(\"../commands/FUNCTION_DUMP\");\nconst FUNCTION_FLUSH = require(\"../commands/FUNCTION_FLUSH\");\nconst FUNCTION_KILL = require(\"../commands/FUNCTION_KILL\");\nconst FUNCTION_LIST_WITHCODE = require(\"../commands/FUNCTION_LIST_WITHCODE\");\nconst FUNCTION_LIST = require(\"../commands/FUNCTION_LIST\");\nconst FUNCTION_LOAD = require(\"../commands/FUNCTION_LOAD\");\nconst FUNCTION_RESTORE = require(\"../commands/FUNCTION_RESTORE\");\nconst FUNCTION_STATS = require(\"../commands/FUNCTION_STATS\");\nconst HELLO = require(\"../commands/HELLO\");\nconst INFO = require(\"../commands/INFO\");\nconst KEYS = require(\"../commands/KEYS\");\nconst LASTSAVE = require(\"../commands/LASTSAVE\");\nconst LATENCY_DOCTOR = require(\"../commands/LATENCY_DOCTOR\");\nconst LATENCY_GRAPH = require(\"../commands/LATENCY_GRAPH\");\nconst LATENCY_HISTORY = require(\"../commands/LATENCY_HISTORY\");\nconst LATENCY_LATEST = require(\"../commands/LATENCY_LATEST\");\nconst LOLWUT = require(\"../commands/LOLWUT\");\nconst MEMORY_DOCTOR = require(\"../commands/MEMORY_DOCTOR\");\nconst MEMORY_MALLOC_STATS = require(\"../commands/MEMORY_MALLOC-STATS\");\nconst MEMORY_PURGE = require(\"../commands/MEMORY_PURGE\");\nconst MEMORY_STATS = require(\"../commands/MEMORY_STATS\");\nconst MEMORY_USAGE = require(\"../commands/MEMORY_USAGE\");\nconst MODULE_LIST = require(\"../commands/MODULE_LIST\");\nconst MODULE_LOAD = require(\"../commands/MODULE_LOAD\");\nconst MODULE_UNLOAD = require(\"../commands/MODULE_UNLOAD\");\nconst MOVE = require(\"../commands/MOVE\");\nconst PING = require(\"../commands/PING\");\nconst PUBSUB_CHANNELS = require(\"../commands/PUBSUB_CHANNELS\");\nconst PUBSUB_NUMPAT = require(\"../commands/PUBSUB_NUMPAT\");\nconst PUBSUB_NUMSUB = require(\"../commands/PUBSUB_NUMSUB\");\nconst PUBSUB_SHARDCHANNELS = require(\"../commands/PUBSUB_SHARDCHANNELS\");\nconst PUBSUB_SHARDNUMSUB = require(\"../commands/PUBSUB_SHARDNUMSUB\");\nconst RANDOMKEY = require(\"../commands/RANDOMKEY\");\nconst READONLY = require(\"../commands/READONLY\");\nconst READWRITE = require(\"../commands/READWRITE\");\nconst REPLICAOF = require(\"../commands/REPLICAOF\");\nconst RESTORE_ASKING = require(\"../commands/RESTORE-ASKING\");\nconst ROLE = require(\"../commands/ROLE\");\nconst SAVE = require(\"../commands/SAVE\");\nconst SCAN = require(\"../commands/SCAN\");\nconst SCRIPT_DEBUG = require(\"../commands/SCRIPT_DEBUG\");\nconst SCRIPT_EXISTS = require(\"../commands/SCRIPT_EXISTS\");\nconst SCRIPT_FLUSH = require(\"../commands/SCRIPT_FLUSH\");\nconst SCRIPT_KILL = require(\"../commands/SCRIPT_KILL\");\nconst SCRIPT_LOAD = require(\"../commands/SCRIPT_LOAD\");\nconst SHUTDOWN = require(\"../commands/SHUTDOWN\");\nconst SWAPDB = require(\"../commands/SWAPDB\");\nconst TIME = require(\"../commands/TIME\");\nconst UNWATCH = require(\"../commands/UNWATCH\");\nconst WAIT = require(\"../commands/WAIT\");\nexports.default = {\n    ...commands_1.default,\n    ACL_CAT,\n    aclCat: ACL_CAT,\n    ACL_DELUSER,\n    aclDelUser: ACL_DELUSER,\n    ACL_DRYRUN,\n    aclDryRun: ACL_DRYRUN,\n    ACL_GENPASS,\n    aclGenPass: ACL_GENPASS,\n    ACL_GETUSER,\n    aclGetUser: ACL_GETUSER,\n    ACL_LIST,\n    aclList: ACL_LIST,\n    ACL_LOAD,\n    aclLoad: ACL_LOAD,\n    ACL_LOG_RESET,\n    aclLogReset: ACL_LOG_RESET,\n    ACL_LOG,\n    aclLog: ACL_LOG,\n    ACL_SAVE,\n    aclSave: ACL_SAVE,\n    ACL_SETUSER,\n    aclSetUser: ACL_SETUSER,\n    ACL_USERS,\n    aclUsers: ACL_USERS,\n    ACL_WHOAMI,\n    aclWhoAmI: ACL_WHOAMI,\n    ASKING,\n    asking: ASKING,\n    AUTH,\n    auth: AUTH,\n    BGREWRITEAOF,\n    bgRewriteAof: BGREWRITEAOF,\n    BGSAVE,\n    bgSave: BGSAVE,\n    CLIENT_CACHING,\n    clientCaching: CLIENT_CACHING,\n    CLIENT_GETNAME,\n    clientGetName: CLIENT_GETNAME,\n    CLIENT_GETREDIR,\n    clientGetRedir: CLIENT_GETREDIR,\n    CLIENT_ID,\n    clientId: CLIENT_ID,\n    CLIENT_KILL,\n    clientKill: CLIENT_KILL,\n    'CLIENT_NO-EVICT': CLIENT_NO_EVICT,\n    clientNoEvict: CLIENT_NO_EVICT,\n    'CLIENT_NO-TOUCH': CLIENT_NO_TOUCH,\n    clientNoTouch: CLIENT_NO_TOUCH,\n    CLIENT_LIST,\n    clientList: CLIENT_LIST,\n    CLIENT_PAUSE,\n    clientPause: CLIENT_PAUSE,\n    CLIENT_SETNAME,\n    clientSetName: CLIENT_SETNAME,\n    CLIENT_TRACKING,\n    clientTracking: CLIENT_TRACKING,\n    CLIENT_TRACKINGINFO,\n    clientTrackingInfo: CLIENT_TRACKINGINFO,\n    CLIENT_UNPAUSE,\n    clientUnpause: CLIENT_UNPAUSE,\n    CLIENT_INFO,\n    clientInfo: CLIENT_INFO,\n    CLUSTER_ADDSLOTS,\n    clusterAddSlots: CLUSTER_ADDSLOTS,\n    CLUSTER_ADDSLOTSRANGE,\n    clusterAddSlotsRange: CLUSTER_ADDSLOTSRANGE,\n    CLUSTER_BUMPEPOCH,\n    clusterBumpEpoch: CLUSTER_BUMPEPOCH,\n    CLUSTER_COUNT_FAILURE_REPORTS,\n    clusterCountFailureReports: CLUSTER_COUNT_FAILURE_REPORTS,\n    CLUSTER_COUNTKEYSINSLOT,\n    clusterCountKeysInSlot: CLUSTER_COUNTKEYSINSLOT,\n    CLUSTER_DELSLOTS,\n    clusterDelSlots: CLUSTER_DELSLOTS,\n    CLUSTER_DELSLOTSRANGE,\n    clusterDelSlotsRange: CLUSTER_DELSLOTSRANGE,\n    CLUSTER_FAILOVER,\n    clusterFailover: CLUSTER_FAILOVER,\n    CLUSTER_FLUSHSLOTS,\n    clusterFlushSlots: CLUSTER_FLUSHSLOTS,\n    CLUSTER_FORGET,\n    clusterForget: CLUSTER_FORGET,\n    CLUSTER_GETKEYSINSLOT,\n    clusterGetKeysInSlot: CLUSTER_GETKEYSINSLOT,\n    CLUSTER_INFO,\n    clusterInfo: CLUSTER_INFO,\n    CLUSTER_KEYSLOT,\n    clusterKeySlot: CLUSTER_KEYSLOT,\n    CLUSTER_LINKS,\n    clusterLinks: CLUSTER_LINKS,\n    CLUSTER_MEET,\n    clusterMeet: CLUSTER_MEET,\n    CLUSTER_MYID,\n    clusterMyId: CLUSTER_MYID,\n    CLUSTER_MYSHARDID,\n    clusterMyShardId: CLUSTER_MYSHARDID,\n    CLUSTER_NODES,\n    clusterNodes: CLUSTER_NODES,\n    CLUSTER_REPLICAS,\n    clusterReplicas: CLUSTER_REPLICAS,\n    CLUSTER_REPLICATE,\n    clusterReplicate: CLUSTER_REPLICATE,\n    CLUSTER_RESET,\n    clusterReset: CLUSTER_RESET,\n    CLUSTER_SAVECONFIG,\n    clusterSaveConfig: CLUSTER_SAVECONFIG,\n    CLUSTER_SET_CONFIG_EPOCH,\n    clusterSetConfigEpoch: CLUSTER_SET_CONFIG_EPOCH,\n    CLUSTER_SETSLOT,\n    clusterSetSlot: CLUSTER_SETSLOT,\n    CLUSTER_SLOTS,\n    clusterSlots: CLUSTER_SLOTS,\n    COMMAND_COUNT,\n    commandCount: COMMAND_COUNT,\n    COMMAND_GETKEYS,\n    commandGetKeys: COMMAND_GETKEYS,\n    COMMAND_GETKEYSANDFLAGS,\n    commandGetKeysAndFlags: COMMAND_GETKEYSANDFLAGS,\n    COMMAND_INFO,\n    commandInfo: COMMAND_INFO,\n    COMMAND_LIST,\n    commandList: COMMAND_LIST,\n    COMMAND,\n    command: COMMAND,\n    CONFIG_GET,\n    configGet: CONFIG_GET,\n    CONFIG_RESETASTAT,\n    configResetStat: CONFIG_RESETASTAT,\n    CONFIG_REWRITE,\n    configRewrite: CONFIG_REWRITE,\n    CONFIG_SET,\n    configSet: CONFIG_SET,\n    DBSIZE,\n    dbSize: DBSIZE,\n    DISCARD,\n    discard: DISCARD,\n    ECHO,\n    echo: ECHO,\n    FAILOVER,\n    failover: FAILOVER,\n    FLUSHALL,\n    flushAll: FLUSHALL,\n    FLUSHDB,\n    flushDb: FLUSHDB,\n    FUNCTION_DELETE,\n    functionDelete: FUNCTION_DELETE,\n    FUNCTION_DUMP,\n    functionDump: FUNCTION_DUMP,\n    FUNCTION_FLUSH,\n    functionFlush: FUNCTION_FLUSH,\n    FUNCTION_KILL,\n    functionKill: FUNCTION_KILL,\n    FUNCTION_LIST_WITHCODE,\n    functionListWithCode: FUNCTION_LIST_WITHCODE,\n    FUNCTION_LIST,\n    functionList: FUNCTION_LIST,\n    FUNCTION_LOAD,\n    functionLoad: FUNCTION_LOAD,\n    FUNCTION_RESTORE,\n    functionRestore: FUNCTION_RESTORE,\n    FUNCTION_STATS,\n    functionStats: FUNCTION_STATS,\n    HELLO,\n    hello: HELLO,\n    INFO,\n    info: INFO,\n    KEYS,\n    keys: KEYS,\n    LASTSAVE,\n    lastSave: LASTSAVE,\n    LATENCY_DOCTOR,\n    latencyDoctor: LATENCY_DOCTOR,\n    LATENCY_GRAPH,\n    latencyGraph: LATENCY_GRAPH,\n    LATENCY_HISTORY,\n    latencyHistory: LATENCY_HISTORY,\n    LATENCY_LATEST,\n    latencyLatest: LATENCY_LATEST,\n    LOLWUT,\n    lolwut: LOLWUT,\n    MEMORY_DOCTOR,\n    memoryDoctor: MEMORY_DOCTOR,\n    'MEMORY_MALLOC-STATS': MEMORY_MALLOC_STATS,\n    memoryMallocStats: MEMORY_MALLOC_STATS,\n    MEMORY_PURGE,\n    memoryPurge: MEMORY_PURGE,\n    MEMORY_STATS,\n    memoryStats: MEMORY_STATS,\n    MEMORY_USAGE,\n    memoryUsage: MEMORY_USAGE,\n    MODULE_LIST,\n    moduleList: MODULE_LIST,\n    MODULE_LOAD,\n    moduleLoad: MODULE_LOAD,\n    MODULE_UNLOAD,\n    moduleUnload: MODULE_UNLOAD,\n    MOVE,\n    move: MOVE,\n    PING,\n    ping: PING,\n    PUBSUB_CHANNELS,\n    pubSubChannels: PUBSUB_CHANNELS,\n    PUBSUB_NUMPAT,\n    pubSubNumPat: PUBSUB_NUMPAT,\n    PUBSUB_NUMSUB,\n    pubSubNumSub: PUBSUB_NUMSUB,\n    PUBSUB_SHARDCHANNELS,\n    pubSubShardChannels: PUBSUB_SHARDCHANNELS,\n    PUBSUB_SHARDNUMSUB,\n    pubSubShardNumSub: PUBSUB_SHARDNUMSUB,\n    RANDOMKEY,\n    randomKey: RANDOMKEY,\n    READONLY,\n    readonly: READONLY,\n    READWRITE,\n    readwrite: READWRITE,\n    REPLICAOF,\n    replicaOf: REPLICAOF,\n    'RESTORE-ASKING': RESTORE_ASKING,\n    restoreAsking: RESTORE_ASKING,\n    ROLE,\n    role: ROLE,\n    SAVE,\n    save: SAVE,\n    SCAN,\n    scan: SCAN,\n    SCRIPT_DEBUG,\n    scriptDebug: SCRIPT_DEBUG,\n    SCRIPT_EXISTS,\n    scriptExists: SCRIPT_EXISTS,\n    SCRIPT_FLUSH,\n    scriptFlush: SCRIPT_FLUSH,\n    SCRIPT_KILL,\n    scriptKill: SCRIPT_KILL,\n    SCRIPT_LOAD,\n    scriptLoad: SCRIPT_LOAD,\n    SHUTDOWN,\n    shutdown: SHUTDOWN,\n    SWAPDB,\n    swapDb: SWAPDB,\n    TIME,\n    time: TIME,\n    UNWATCH,\n    unwatch: UNWATCH,\n    WAIT,\n    wait: WAIT\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultiErrorReply = exports.ErrorReply = exports.ReconnectStrategyError = exports.RootNodesUnavailableError = exports.SocketClosedUnexpectedlyError = exports.DisconnectsClientError = exports.ClientOfflineError = exports.ClientClosedError = exports.ConnectionTimeoutError = exports.WatchError = exports.AbortError = void 0;\nclass AbortError extends Error {\n    constructor() {\n        super('The command was aborted');\n    }\n}\nexports.AbortError = AbortError;\nclass WatchError extends Error {\n    constructor() {\n        super('One (or more) of the watched keys has been changed');\n    }\n}\nexports.WatchError = WatchError;\nclass ConnectionTimeoutError extends Error {\n    constructor() {\n        super('Connection timeout');\n    }\n}\nexports.ConnectionTimeoutError = ConnectionTimeoutError;\nclass ClientClosedError extends Error {\n    constructor() {\n        super('The client is closed');\n    }\n}\nexports.ClientClosedError = ClientClosedError;\nclass ClientOfflineError extends Error {\n    constructor() {\n        super('The client is offline');\n    }\n}\nexports.ClientOfflineError = ClientOfflineError;\nclass DisconnectsClientError extends Error {\n    constructor() {\n        super('Disconnects client');\n    }\n}\nexports.DisconnectsClientError = DisconnectsClientError;\nclass SocketClosedUnexpectedlyError extends Error {\n    constructor() {\n        super('Socket closed unexpectedly');\n    }\n}\nexports.SocketClosedUnexpectedlyError = SocketClosedUnexpectedlyError;\nclass RootNodesUnavailableError extends Error {\n    constructor() {\n        super('All the root nodes are unavailable');\n    }\n}\nexports.RootNodesUnavailableError = RootNodesUnavailableError;\nclass ReconnectStrategyError extends Error {\n    constructor(originalError, socketError) {\n        super(originalError.message);\n        Object.defineProperty(this, \"originalError\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"socketError\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.originalError = originalError;\n        this.socketError = socketError;\n    }\n}\nexports.ReconnectStrategyError = ReconnectStrategyError;\nclass ErrorReply extends Error {\n    constructor(message) {\n        super(message);\n        this.stack = undefined;\n    }\n}\nexports.ErrorReply = ErrorReply;\nclass MultiErrorReply extends ErrorReply {\n    constructor(replies, errorIndexes) {\n        super(`${errorIndexes.length} commands failed, see .replies and .errorIndexes for more information`);\n        Object.defineProperty(this, \"replies\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"errorIndexes\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.replies = replies;\n        this.errorIndexes = errorIndexes;\n    }\n    *errors() {\n        for (const index of this.errorIndexes) {\n            yield this.replies[index];\n        }\n    }\n}\nexports.MultiErrorReply = MultiErrorReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.promiseTimeout = void 0;\nfunction promiseTimeout(ms) {\n    return new Promise(resolve => setTimeout(resolve, ms));\n}\nexports.promiseTimeout = promiseTimeout;\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _RedisSocket_instances, _a, _RedisSocket_initiateOptions, _RedisSocket_isTlsSocket, _RedisSocket_initiator, _RedisSocket_options, _RedisSocket_socket, _RedisSocket_isOpen, _RedisSocket_isReady, _RedisSocket_writableNeedDrain, _RedisSocket_isSocketUnrefed, _RedisSocket_reconnectStrategy, _RedisSocket_shouldReconnect, _RedisSocket_connect, _RedisSocket_createSocket, _RedisSocket_createNetSocket, _RedisSocket_createTlsSocket, _RedisSocket_onSocketError, _RedisSocket_disconnect, _RedisSocket_isCorked;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst net = require(\"net\");\nconst tls = require(\"tls\");\nconst errors_1 = require(\"../errors\");\nconst utils_1 = require(\"../utils\");\nclass RedisSocket extends events_1.EventEmitter {\n    get isOpen() {\n        return __classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\");\n    }\n    get isReady() {\n        return __classPrivateFieldGet(this, _RedisSocket_isReady, \"f\");\n    }\n    get writableNeedDrain() {\n        return __classPrivateFieldGet(this, _RedisSocket_writableNeedDrain, \"f\");\n    }\n    constructor(initiator, options) {\n        super();\n        _RedisSocket_instances.add(this);\n        _RedisSocket_initiator.set(this, void 0);\n        _RedisSocket_options.set(this, void 0);\n        _RedisSocket_socket.set(this, void 0);\n        _RedisSocket_isOpen.set(this, false);\n        _RedisSocket_isReady.set(this, false);\n        // `writable.writableNeedDrain` was added in v15.2.0 and therefore can't be used\n        // https://nodejs.org/api/stream.html#stream_writable_writableneeddrain\n        _RedisSocket_writableNeedDrain.set(this, false);\n        _RedisSocket_isSocketUnrefed.set(this, false);\n        _RedisSocket_isCorked.set(this, false);\n        __classPrivateFieldSet(this, _RedisSocket_initiator, initiator, \"f\");\n        __classPrivateFieldSet(this, _RedisSocket_options, __classPrivateFieldGet(_a, _a, \"m\", _RedisSocket_initiateOptions).call(_a, options), \"f\");\n    }\n    async connect() {\n        if (__classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\")) {\n            throw new Error('Socket already opened');\n        }\n        __classPrivateFieldSet(this, _RedisSocket_isOpen, true, \"f\");\n        return __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_connect).call(this);\n    }\n    writeCommand(args) {\n        if (!__classPrivateFieldGet(this, _RedisSocket_socket, \"f\")) {\n            throw new errors_1.ClientClosedError();\n        }\n        for (const toWrite of args) {\n            __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, !__classPrivateFieldGet(this, _RedisSocket_socket, \"f\").write(toWrite), \"f\");\n        }\n    }\n    disconnect() {\n        if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\")) {\n            throw new errors_1.ClientClosedError();\n        }\n        __classPrivateFieldSet(this, _RedisSocket_isOpen, false, \"f\");\n        __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_disconnect).call(this);\n    }\n    async quit(fn) {\n        if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\")) {\n            throw new errors_1.ClientClosedError();\n        }\n        __classPrivateFieldSet(this, _RedisSocket_isOpen, false, \"f\");\n        const reply = await fn();\n        __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_disconnect).call(this);\n        return reply;\n    }\n    cork() {\n        if (!__classPrivateFieldGet(this, _RedisSocket_socket, \"f\") || __classPrivateFieldGet(this, _RedisSocket_isCorked, \"f\")) {\n            return;\n        }\n        __classPrivateFieldGet(this, _RedisSocket_socket, \"f\").cork();\n        __classPrivateFieldSet(this, _RedisSocket_isCorked, true, \"f\");\n        setImmediate(() => {\n            __classPrivateFieldGet(this, _RedisSocket_socket, \"f\")?.uncork();\n            __classPrivateFieldSet(this, _RedisSocket_isCorked, false, \"f\");\n        });\n    }\n    ref() {\n        __classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, false, \"f\");\n        __classPrivateFieldGet(this, _RedisSocket_socket, \"f\")?.ref();\n    }\n    unref() {\n        __classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, true, \"f\");\n        __classPrivateFieldGet(this, _RedisSocket_socket, \"f\")?.unref();\n    }\n}\n_a = RedisSocket, _RedisSocket_initiator = new WeakMap(), _RedisSocket_options = new WeakMap(), _RedisSocket_socket = new WeakMap(), _RedisSocket_isOpen = new WeakMap(), _RedisSocket_isReady = new WeakMap(), _RedisSocket_writableNeedDrain = new WeakMap(), _RedisSocket_isSocketUnrefed = new WeakMap(), _RedisSocket_isCorked = new WeakMap(), _RedisSocket_instances = new WeakSet(), _RedisSocket_initiateOptions = function _RedisSocket_initiateOptions(options) {\n    var _b, _c;\n    options ?? (options = {});\n    if (!options.path) {\n        (_b = options).port ?? (_b.port = 6379);\n        (_c = options).host ?? (_c.host = 'localhost');\n    }\n    options.connectTimeout ?? (options.connectTimeout = 5000);\n    options.keepAlive ?? (options.keepAlive = 5000);\n    options.noDelay ?? (options.noDelay = true);\n    return options;\n}, _RedisSocket_isTlsSocket = function _RedisSocket_isTlsSocket(options) {\n    return options.tls === true;\n}, _RedisSocket_reconnectStrategy = function _RedisSocket_reconnectStrategy(retries, cause) {\n    if (__classPrivateFieldGet(this, _RedisSocket_options, \"f\").reconnectStrategy === false) {\n        return false;\n    }\n    else if (typeof __classPrivateFieldGet(this, _RedisSocket_options, \"f\").reconnectStrategy === 'number') {\n        return __classPrivateFieldGet(this, _RedisSocket_options, \"f\").reconnectStrategy;\n    }\n    else if (__classPrivateFieldGet(this, _RedisSocket_options, \"f\").reconnectStrategy) {\n        try {\n            const retryIn = __classPrivateFieldGet(this, _RedisSocket_options, \"f\").reconnectStrategy(retries, cause);\n            if (retryIn !== false && !(retryIn instanceof Error) && typeof retryIn !== 'number') {\n                throw new TypeError(`Reconnect strategy should return \\`false | Error | number\\`, got ${retryIn} instead`);\n            }\n            return retryIn;\n        }\n        catch (err) {\n            this.emit('error', err);\n        }\n    }\n    return Math.min(retries * 50, 500);\n}, _RedisSocket_shouldReconnect = function _RedisSocket_shouldReconnect(retries, cause) {\n    const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_reconnectStrategy).call(this, retries, cause);\n    if (retryIn === false) {\n        __classPrivateFieldSet(this, _RedisSocket_isOpen, false, \"f\");\n        this.emit('error', cause);\n        return cause;\n    }\n    else if (retryIn instanceof Error) {\n        __classPrivateFieldSet(this, _RedisSocket_isOpen, false, \"f\");\n        this.emit('error', cause);\n        return new errors_1.ReconnectStrategyError(retryIn, cause);\n    }\n    return retryIn;\n}, _RedisSocket_connect = async function _RedisSocket_connect() {\n    let retries = 0;\n    do {\n        try {\n            __classPrivateFieldSet(this, _RedisSocket_socket, await __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_createSocket).call(this), \"f\");\n            __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, \"f\");\n            this.emit('connect');\n            try {\n                await __classPrivateFieldGet(this, _RedisSocket_initiator, \"f\").call(this);\n            }\n            catch (err) {\n                __classPrivateFieldGet(this, _RedisSocket_socket, \"f\").destroy();\n                __classPrivateFieldSet(this, _RedisSocket_socket, undefined, \"f\");\n                throw err;\n            }\n            __classPrivateFieldSet(this, _RedisSocket_isReady, true, \"f\");\n            this.emit('ready');\n        }\n        catch (err) {\n            const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_shouldReconnect).call(this, retries++, err);\n            if (typeof retryIn !== 'number') {\n                throw retryIn;\n            }\n            this.emit('error', err);\n            await (0, utils_1.promiseTimeout)(retryIn);\n            this.emit('reconnecting');\n        }\n    } while (__classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\") && !__classPrivateFieldGet(this, _RedisSocket_isReady, \"f\"));\n}, _RedisSocket_createSocket = function _RedisSocket_createSocket() {\n    return new Promise((resolve, reject) => {\n        const { connectEvent, socket } = __classPrivateFieldGet(_a, _a, \"m\", _RedisSocket_isTlsSocket).call(_a, __classPrivateFieldGet(this, _RedisSocket_options, \"f\")) ?\n            __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_createTlsSocket).call(this) :\n            __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_createNetSocket).call(this);\n        if (__classPrivateFieldGet(this, _RedisSocket_options, \"f\").connectTimeout) {\n            socket.setTimeout(__classPrivateFieldGet(this, _RedisSocket_options, \"f\").connectTimeout, () => socket.destroy(new errors_1.ConnectionTimeoutError()));\n        }\n        if (__classPrivateFieldGet(this, _RedisSocket_isSocketUnrefed, \"f\")) {\n            socket.unref();\n        }\n        socket\n            .setNoDelay(__classPrivateFieldGet(this, _RedisSocket_options, \"f\").noDelay)\n            .once('error', reject)\n            .once(connectEvent, () => {\n            socket\n                .setTimeout(0)\n                // https://github.com/nodejs/node/issues/31663\n                .setKeepAlive(__classPrivateFieldGet(this, _RedisSocket_options, \"f\").keepAlive !== false, __classPrivateFieldGet(this, _RedisSocket_options, \"f\").keepAlive || 0)\n                .off('error', reject)\n                .once('error', (err) => __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_onSocketError).call(this, err))\n                .once('close', hadError => {\n                if (!hadError && __classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\") && __classPrivateFieldGet(this, _RedisSocket_socket, \"f\") === socket) {\n                    __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_onSocketError).call(this, new errors_1.SocketClosedUnexpectedlyError());\n                }\n            })\n                .on('drain', () => {\n                __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, \"f\");\n                this.emit('drain');\n            })\n                .on('data', data => this.emit('data', data));\n            resolve(socket);\n        });\n    });\n}, _RedisSocket_createNetSocket = function _RedisSocket_createNetSocket() {\n    return {\n        connectEvent: 'connect',\n        socket: net.connect(__classPrivateFieldGet(this, _RedisSocket_options, \"f\")) // TODO\n    };\n}, _RedisSocket_createTlsSocket = function _RedisSocket_createTlsSocket() {\n    return {\n        connectEvent: 'secureConnect',\n        socket: tls.connect(__classPrivateFieldGet(this, _RedisSocket_options, \"f\")) // TODO\n    };\n}, _RedisSocket_onSocketError = function _RedisSocket_onSocketError(err) {\n    const wasReady = __classPrivateFieldGet(this, _RedisSocket_isReady, \"f\");\n    __classPrivateFieldSet(this, _RedisSocket_isReady, false, \"f\");\n    this.emit('error', err);\n    if (!wasReady || !__classPrivateFieldGet(this, _RedisSocket_isOpen, \"f\") || typeof __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_shouldReconnect).call(this, 0, err) !== 'number')\n        return;\n    this.emit('reconnecting');\n    __classPrivateFieldGet(this, _RedisSocket_instances, \"m\", _RedisSocket_connect).call(this).catch(() => {\n        // the error was already emitted, silently ignore it\n    });\n}, _RedisSocket_disconnect = function _RedisSocket_disconnect() {\n    __classPrivateFieldSet(this, _RedisSocket_isReady, false, \"f\");\n    if (__classPrivateFieldGet(this, _RedisSocket_socket, \"f\")) {\n        __classPrivateFieldGet(this, _RedisSocket_socket, \"f\").destroy();\n        __classPrivateFieldSet(this, _RedisSocket_socket, undefined, \"f\");\n    }\n    this.emit('end');\n};\nexports.default = RedisSocket;\n", "'use strict'\nmodule.exports = function (Yallist) {\n  Yallist.prototype[Symbol.iterator] = function* () {\n    for (let walker = this.head; walker; walker = walker.next) {\n      yield walker.value\n    }\n  }\n}\n", "'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n  var self = this\n  if (!(self instanceof Yallist)) {\n    self = new Yallist()\n  }\n\n  self.tail = null\n  self.head = null\n  self.length = 0\n\n  if (list && typeof list.forEach === 'function') {\n    list.forEach(function (item) {\n      self.push(item)\n    })\n  } else if (arguments.length > 0) {\n    for (var i = 0, l = arguments.length; i < l; i++) {\n      self.push(arguments[i])\n    }\n  }\n\n  return self\n}\n\nYallist.prototype.removeNode = function (node) {\n  if (node.list !== this) {\n    throw new Error('removing node which does not belong to this list')\n  }\n\n  var next = node.next\n  var prev = node.prev\n\n  if (next) {\n    next.prev = prev\n  }\n\n  if (prev) {\n    prev.next = next\n  }\n\n  if (node === this.head) {\n    this.head = next\n  }\n  if (node === this.tail) {\n    this.tail = prev\n  }\n\n  node.list.length--\n  node.next = null\n  node.prev = null\n  node.list = null\n\n  return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n  if (node === this.head) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var head = this.head\n  node.list = this\n  node.next = head\n  if (head) {\n    head.prev = node\n  }\n\n  this.head = node\n  if (!this.tail) {\n    this.tail = node\n  }\n  this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n  if (node === this.tail) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var tail = this.tail\n  node.list = this\n  node.prev = tail\n  if (tail) {\n    tail.next = node\n  }\n\n  this.tail = node\n  if (!this.head) {\n    this.head = node\n  }\n  this.length++\n}\n\nYallist.prototype.push = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    push(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.unshift = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    unshift(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.pop = function () {\n  if (!this.tail) {\n    return undefined\n  }\n\n  var res = this.tail.value\n  this.tail = this.tail.prev\n  if (this.tail) {\n    this.tail.next = null\n  } else {\n    this.head = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.shift = function () {\n  if (!this.head) {\n    return undefined\n  }\n\n  var res = this.head.value\n  this.head = this.head.next\n  if (this.head) {\n    this.head.prev = null\n  } else {\n    this.tail = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.head, i = 0; walker !== null; i++) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.next\n  }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.prev\n  }\n}\n\nYallist.prototype.get = function (n) {\n  for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.next\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.getReverse = function (n) {\n  for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.prev\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.head; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.next\n  }\n  return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.tail; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.prev\n  }\n  return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n  var acc\n  var walker = this.head\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.head) {\n    walker = this.head.next\n    acc = this.head.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = 0; walker !== null; i++) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.next\n  }\n\n  return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n  var acc\n  var walker = this.tail\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.tail) {\n    walker = this.tail.prev\n    acc = this.tail.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = this.length - 1; walker !== null; i--) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.prev\n  }\n\n  return acc\n}\n\nYallist.prototype.toArray = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.head; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.next\n  }\n  return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.tail; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.prev\n  }\n  return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n    walker = walker.next\n  }\n  for (; walker !== null && i < to; i++, walker = walker.next) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n    walker = walker.prev\n  }\n  for (; walker !== null && i > from; i--, walker = walker.prev) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n  if (start > this.length) {\n    start = this.length - 1\n  }\n  if (start < 0) {\n    start = this.length + start;\n  }\n\n  for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n    walker = walker.next\n  }\n\n  var ret = []\n  for (var i = 0; walker && i < deleteCount; i++) {\n    ret.push(walker.value)\n    walker = this.removeNode(walker)\n  }\n  if (walker === null) {\n    walker = this.tail\n  }\n\n  if (walker !== this.head && walker !== this.tail) {\n    walker = walker.prev\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    walker = insert(this, walker, nodes[i])\n  }\n  return ret;\n}\n\nYallist.prototype.reverse = function () {\n  var head = this.head\n  var tail = this.tail\n  for (var walker = head; walker !== null; walker = walker.prev) {\n    var p = walker.prev\n    walker.prev = walker.next\n    walker.next = p\n  }\n  this.head = tail\n  this.tail = head\n  return this\n}\n\nfunction insert (self, node, value) {\n  var inserted = node === self.head ?\n    new Node(value, null, node, self) :\n    new Node(value, node, node.next, self)\n\n  if (inserted.next === null) {\n    self.tail = inserted\n  }\n  if (inserted.prev === null) {\n    self.head = inserted\n  }\n\n  self.length++\n\n  return inserted\n}\n\nfunction push (self, item) {\n  self.tail = new Node(item, self.tail, null, self)\n  if (!self.head) {\n    self.head = self.tail\n  }\n  self.length++\n}\n\nfunction unshift (self, item) {\n  self.head = new Node(item, null, self.head, self)\n  if (!self.tail) {\n    self.tail = self.head\n  }\n  self.length++\n}\n\nfunction Node (value, prev, next, list) {\n  if (!(this instanceof Node)) {\n    return new Node(value, prev, next, list)\n  }\n\n  this.list = list\n  this.value = value\n\n  if (prev) {\n    prev.next = this\n    this.prev = prev\n  } else {\n    this.prev = null\n  }\n\n  if (next) {\n    next.prev = this\n    this.next = next\n  } else {\n    this.next = null\n  }\n}\n\ntry {\n  // add if support for Symbol.iterator is present\n  require('./iterator.js')(Yallist)\n} catch (er) {}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BufferComposer {\n    constructor() {\n        Object.defineProperty(this, \"chunks\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: []\n        });\n    }\n    write(buffer) {\n        this.chunks.push(buffer);\n    }\n    end(buffer) {\n        this.write(buffer);\n        return Buffer.concat(this.chunks.splice(0));\n    }\n    reset() {\n        this.chunks = [];\n    }\n}\nexports.default = BufferComposer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst string_decoder_1 = require(\"string_decoder\");\nclass StringComposer {\n    constructor() {\n        Object.defineProperty(this, \"decoder\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new string_decoder_1.StringDecoder()\n        });\n        Object.defineProperty(this, \"string\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: ''\n        });\n    }\n    write(buffer) {\n        this.string += this.decoder.write(buffer);\n    }\n    end(buffer) {\n        const string = this.string + this.decoder.end(buffer);\n        this.string = '';\n        return string;\n    }\n    reset() {\n        this.string = '';\n    }\n}\nexports.default = StringComposer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_1 = require(\"../../errors\");\nconst buffer_1 = require(\"./composers/buffer\");\nconst string_1 = require(\"./composers/string\");\n// RESP2 specification\n// https://redis.io/topics/protocol\nvar Types;\n(function (Types) {\n    Types[Types[\"SIMPLE_STRING\"] = 43] = \"SIMPLE_STRING\";\n    Types[Types[\"ERROR\"] = 45] = \"ERROR\";\n    Types[Types[\"INTEGER\"] = 58] = \"INTEGER\";\n    Types[Types[\"BULK_STRING\"] = 36] = \"BULK_STRING\";\n    Types[Types[\"ARRAY\"] = 42] = \"ARRAY\"; // *\n})(Types || (Types = {}));\nvar ASCII;\n(function (ASCII) {\n    ASCII[ASCII[\"CR\"] = 13] = \"CR\";\n    ASCII[ASCII[\"ZERO\"] = 48] = \"ZERO\";\n    ASCII[ASCII[\"MINUS\"] = 45] = \"MINUS\";\n})(ASCII || (ASCII = {}));\n// Using TypeScript `private` and not the build-in `#` to avoid __classPrivateFieldGet and __classPrivateFieldSet\nclass RESP2Decoder {\n    constructor(options) {\n        Object.defineProperty(this, \"options\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: options\n        });\n        Object.defineProperty(this, \"cursor\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: 0\n        });\n        Object.defineProperty(this, \"type\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"bufferComposer\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new buffer_1.default()\n        });\n        Object.defineProperty(this, \"stringComposer\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new string_1.default()\n        });\n        Object.defineProperty(this, \"currentStringComposer\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.stringComposer\n        });\n        Object.defineProperty(this, \"integer\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: 0\n        });\n        Object.defineProperty(this, \"isNegativeInteger\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"bulkStringRemainingLength\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"arraysInProcess\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: []\n        });\n        Object.defineProperty(this, \"initializeArray\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: false\n        });\n        Object.defineProperty(this, \"arrayItemType\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n    }\n    reset() {\n        this.cursor = 0;\n        this.type = undefined;\n        this.bufferComposer.reset();\n        this.stringComposer.reset();\n        this.currentStringComposer = this.stringComposer;\n    }\n    write(chunk) {\n        while (this.cursor < chunk.length) {\n            if (!this.type) {\n                this.currentStringComposer = this.options.returnStringsAsBuffers() ?\n                    this.bufferComposer :\n                    this.stringComposer;\n                this.type = chunk[this.cursor];\n                if (++this.cursor >= chunk.length)\n                    break;\n            }\n            const reply = this.parseType(chunk, this.type);\n            if (reply === undefined)\n                break;\n            this.type = undefined;\n            this.options.onReply(reply);\n        }\n        this.cursor -= chunk.length;\n    }\n    parseType(chunk, type, arraysToKeep) {\n        switch (type) {\n            case Types.SIMPLE_STRING:\n                return this.parseSimpleString(chunk);\n            case Types.ERROR:\n                return this.parseError(chunk);\n            case Types.INTEGER:\n                return this.parseInteger(chunk);\n            case Types.BULK_STRING:\n                return this.parseBulkString(chunk);\n            case Types.ARRAY:\n                return this.parseArray(chunk, arraysToKeep);\n        }\n    }\n    compose(chunk, composer) {\n        for (let i = this.cursor; i < chunk.length; i++) {\n            if (chunk[i] === ASCII.CR) {\n                const reply = composer.end(chunk.subarray(this.cursor, i));\n                this.cursor = i + 2;\n                return reply;\n            }\n        }\n        const toWrite = chunk.subarray(this.cursor);\n        composer.write(toWrite);\n        this.cursor = chunk.length;\n    }\n    parseSimpleString(chunk) {\n        return this.compose(chunk, this.currentStringComposer);\n    }\n    parseError(chunk) {\n        const message = this.compose(chunk, this.stringComposer);\n        if (message !== undefined) {\n            return new errors_1.ErrorReply(message);\n        }\n    }\n    parseInteger(chunk) {\n        if (this.isNegativeInteger === undefined) {\n            this.isNegativeInteger = chunk[this.cursor] === ASCII.MINUS;\n            if (this.isNegativeInteger && ++this.cursor === chunk.length)\n                return;\n        }\n        do {\n            const byte = chunk[this.cursor];\n            if (byte === ASCII.CR) {\n                const integer = this.isNegativeInteger ? -this.integer : this.integer;\n                this.integer = 0;\n                this.isNegativeInteger = undefined;\n                this.cursor += 2;\n                return integer;\n            }\n            this.integer = this.integer * 10 + byte - ASCII.ZERO;\n        } while (++this.cursor < chunk.length);\n    }\n    parseBulkString(chunk) {\n        if (this.bulkStringRemainingLength === undefined) {\n            const length = this.parseInteger(chunk);\n            if (length === undefined)\n                return;\n            if (length === -1)\n                return null;\n            this.bulkStringRemainingLength = length;\n            if (this.cursor >= chunk.length)\n                return;\n        }\n        const end = this.cursor + this.bulkStringRemainingLength;\n        if (chunk.length >= end) {\n            const reply = this.currentStringComposer.end(chunk.subarray(this.cursor, end));\n            this.bulkStringRemainingLength = undefined;\n            this.cursor = end + 2;\n            return reply;\n        }\n        const toWrite = chunk.subarray(this.cursor);\n        this.currentStringComposer.write(toWrite);\n        this.bulkStringRemainingLength -= toWrite.length;\n        this.cursor = chunk.length;\n    }\n    parseArray(chunk, arraysToKeep = 0) {\n        if (this.initializeArray || this.arraysInProcess.length === arraysToKeep) {\n            const length = this.parseInteger(chunk);\n            if (length === undefined) {\n                this.initializeArray = true;\n                return undefined;\n            }\n            this.initializeArray = false;\n            this.arrayItemType = undefined;\n            if (length === -1) {\n                return this.returnArrayReply(null, arraysToKeep, chunk);\n            }\n            else if (length === 0) {\n                return this.returnArrayReply([], arraysToKeep, chunk);\n            }\n            this.arraysInProcess.push({\n                array: new Array(length),\n                pushCounter: 0\n            });\n        }\n        while (this.cursor < chunk.length) {\n            if (!this.arrayItemType) {\n                this.arrayItemType = chunk[this.cursor];\n                if (++this.cursor >= chunk.length)\n                    break;\n            }\n            const item = this.parseType(chunk, this.arrayItemType, arraysToKeep + 1);\n            if (item === undefined)\n                break;\n            this.arrayItemType = undefined;\n            const reply = this.pushArrayItem(item, arraysToKeep);\n            if (reply !== undefined)\n                return reply;\n        }\n    }\n    returnArrayReply(reply, arraysToKeep, chunk) {\n        if (this.arraysInProcess.length <= arraysToKeep)\n            return reply;\n        return this.pushArrayItem(reply, arraysToKeep, chunk);\n    }\n    pushArrayItem(item, arraysToKeep, chunk) {\n        const to = this.arraysInProcess[this.arraysInProcess.length - 1];\n        to.array[to.pushCounter] = item;\n        if (++to.pushCounter === to.array.length) {\n            return this.returnArrayReply(this.arraysInProcess.pop().array, arraysToKeep, chunk);\n        }\n        else if (chunk && chunk.length > this.cursor) {\n            return this.parseArray(chunk, arraysToKeep);\n        }\n    }\n}\nexports.default = RESP2Decoder;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst CRLF = '\\r\\n';\nfunction encodeCommand(args) {\n    const toWrite = [];\n    let strings = '*' + args.length + CRLF;\n    for (let i = 0; i < args.length; i++) {\n        const arg = args[i];\n        if (typeof arg === 'string') {\n            strings += '$' + Buffer.byteLength(arg) + CRLF + arg + CRLF;\n        }\n        else if (arg instanceof Buffer) {\n            toWrite.push(strings + '$' + arg.length.toString() + CRLF, arg);\n            strings = CRLF;\n        }\n        else {\n            throw new TypeError('Invalid argument type');\n        }\n    }\n    toWrite.push(strings);\n    return toWrite;\n}\nexports.default = encodeCommand;\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _PubSub_instances, _a, _PubSub_channelsArray, _PubSub_listenersSet, _PubSub_subscribing, _PubSub_isActive, _PubSub_listeners, _PubSub_extendChannelListeners, _PubSub_unsubscribeCommand, _PubSub_updateIsActive, _PubSub_emitPubSubMessage;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PubSub = exports.PubSubType = void 0;\nvar PubSubType;\n(function (PubSubType) {\n    PubSubType[\"CHANNELS\"] = \"CHANNELS\";\n    PubSubType[\"PATTERNS\"] = \"PATTERNS\";\n    PubSubType[\"SHARDED\"] = \"SHARDED\";\n})(PubSubType || (exports.PubSubType = PubSubType = {}));\nconst COMMANDS = {\n    [PubSubType.CHANNELS]: {\n        subscribe: Buffer.from('subscribe'),\n        unsubscribe: Buffer.from('unsubscribe'),\n        message: Buffer.from('message')\n    },\n    [PubSubType.PATTERNS]: {\n        subscribe: Buffer.from('psubscribe'),\n        unsubscribe: Buffer.from('punsubscribe'),\n        message: Buffer.from('pmessage')\n    },\n    [PubSubType.SHARDED]: {\n        subscribe: Buffer.from('ssubscribe'),\n        unsubscribe: Buffer.from('sunsubscribe'),\n        message: Buffer.from('smessage')\n    }\n};\nclass PubSub {\n    constructor() {\n        _PubSub_instances.add(this);\n        _PubSub_subscribing.set(this, 0);\n        _PubSub_isActive.set(this, false);\n        _PubSub_listeners.set(this, {\n            [PubSubType.CHANNELS]: new Map(),\n            [PubSubType.PATTERNS]: new Map(),\n            [PubSubType.SHARDED]: new Map()\n        });\n    }\n    static isStatusReply(reply) {\n        return (COMMANDS[PubSubType.CHANNELS].subscribe.equals(reply[0]) ||\n            COMMANDS[PubSubType.CHANNELS].unsubscribe.equals(reply[0]) ||\n            COMMANDS[PubSubType.PATTERNS].subscribe.equals(reply[0]) ||\n            COMMANDS[PubSubType.PATTERNS].unsubscribe.equals(reply[0]) ||\n            COMMANDS[PubSubType.SHARDED].subscribe.equals(reply[0]));\n    }\n    static isShardedUnsubscribe(reply) {\n        return COMMANDS[PubSubType.SHARDED].unsubscribe.equals(reply[0]);\n    }\n    get isActive() {\n        return __classPrivateFieldGet(this, _PubSub_isActive, \"f\");\n    }\n    subscribe(type, channels, listener, returnBuffers) {\n        var _b;\n        const args = [COMMANDS[type].subscribe], channelsArray = __classPrivateFieldGet(_a, _a, \"m\", _PubSub_channelsArray).call(_a, channels);\n        for (const channel of channelsArray) {\n            let channelListeners = __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].get(channel);\n            if (!channelListeners || channelListeners.unsubscribing) {\n                args.push(channel);\n            }\n        }\n        if (args.length === 1) {\n            // all channels are already subscribed, add listeners without issuing a command\n            for (const channel of channelsArray) {\n                __classPrivateFieldGet(_a, _a, \"m\", _PubSub_listenersSet).call(_a, __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].get(channel), returnBuffers).add(listener);\n            }\n            return;\n        }\n        __classPrivateFieldSet(this, _PubSub_isActive, true, \"f\");\n        __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b++, _b), \"f\");\n        return {\n            args,\n            channelsCounter: args.length - 1,\n            resolve: () => {\n                var _b;\n                __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b--, _b), \"f\");\n                for (const channel of channelsArray) {\n                    let listeners = __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].get(channel);\n                    if (!listeners) {\n                        listeners = {\n                            unsubscribing: false,\n                            buffers: new Set(),\n                            strings: new Set()\n                        };\n                        __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].set(channel, listeners);\n                    }\n                    __classPrivateFieldGet(_a, _a, \"m\", _PubSub_listenersSet).call(_a, listeners, returnBuffers).add(listener);\n                }\n            },\n            reject: () => {\n                var _b;\n                __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b--, _b), \"f\");\n                __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_updateIsActive).call(this);\n            }\n        };\n    }\n    extendChannelListeners(type, channel, listeners) {\n        var _b;\n        if (!__classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_extendChannelListeners).call(this, type, channel, listeners))\n            return;\n        __classPrivateFieldSet(this, _PubSub_isActive, true, \"f\");\n        __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b++, _b), \"f\");\n        return {\n            args: [\n                COMMANDS[type].subscribe,\n                channel\n            ],\n            channelsCounter: 1,\n            resolve: () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b = _c--, _c), \"f\"), _b; },\n            reject: () => {\n                var _b;\n                __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b--, _b), \"f\");\n                __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_updateIsActive).call(this);\n            }\n        };\n    }\n    extendTypeListeners(type, listeners) {\n        var _b;\n        const args = [COMMANDS[type].subscribe];\n        for (const [channel, channelListeners] of listeners) {\n            if (__classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_extendChannelListeners).call(this, type, channel, channelListeners)) {\n                args.push(channel);\n            }\n        }\n        if (args.length === 1)\n            return;\n        __classPrivateFieldSet(this, _PubSub_isActive, true, \"f\");\n        __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b++, _b), \"f\");\n        return {\n            args,\n            channelsCounter: args.length - 1,\n            resolve: () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b = _c--, _c), \"f\"), _b; },\n            reject: () => {\n                var _b;\n                __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b--, _b), \"f\");\n                __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_updateIsActive).call(this);\n            }\n        };\n    }\n    unsubscribe(type, channels, listener, returnBuffers) {\n        const listeners = __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type];\n        if (!channels) {\n            return __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_unsubscribeCommand).call(this, [COMMANDS[type].unsubscribe], \n            // cannot use `this.#subscribed` because there might be some `SUBSCRIBE` commands in the queue\n            // cannot use `this.#subscribed + this.#subscribing` because some `SUBSCRIBE` commands might fail\n            NaN, () => listeners.clear());\n        }\n        const channelsArray = __classPrivateFieldGet(_a, _a, \"m\", _PubSub_channelsArray).call(_a, channels);\n        if (!listener) {\n            return __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_unsubscribeCommand).call(this, [COMMANDS[type].unsubscribe, ...channelsArray], channelsArray.length, () => {\n                for (const channel of channelsArray) {\n                    listeners.delete(channel);\n                }\n            });\n        }\n        const args = [COMMANDS[type].unsubscribe];\n        for (const channel of channelsArray) {\n            const sets = listeners.get(channel);\n            if (sets) {\n                let current, other;\n                if (returnBuffers) {\n                    current = sets.buffers;\n                    other = sets.strings;\n                }\n                else {\n                    current = sets.strings;\n                    other = sets.buffers;\n                }\n                const currentSize = current.has(listener) ? current.size - 1 : current.size;\n                if (currentSize !== 0 || other.size !== 0)\n                    continue;\n                sets.unsubscribing = true;\n            }\n            args.push(channel);\n        }\n        if (args.length === 1) {\n            // all channels has other listeners,\n            // delete the listeners without issuing a command\n            for (const channel of channelsArray) {\n                __classPrivateFieldGet(_a, _a, \"m\", _PubSub_listenersSet).call(_a, listeners.get(channel), returnBuffers).delete(listener);\n            }\n            return;\n        }\n        return __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_unsubscribeCommand).call(this, args, args.length - 1, () => {\n            for (const channel of channelsArray) {\n                const sets = listeners.get(channel);\n                if (!sets)\n                    continue;\n                (returnBuffers ? sets.buffers : sets.strings).delete(listener);\n                if (sets.buffers.size === 0 && sets.strings.size === 0) {\n                    listeners.delete(channel);\n                }\n            }\n        });\n    }\n    reset() {\n        __classPrivateFieldSet(this, _PubSub_isActive, false, \"f\");\n        __classPrivateFieldSet(this, _PubSub_subscribing, 0, \"f\");\n    }\n    resubscribe() {\n        var _b;\n        const commands = [];\n        for (const [type, listeners] of Object.entries(__classPrivateFieldGet(this, _PubSub_listeners, \"f\"))) {\n            if (!listeners.size)\n                continue;\n            __classPrivateFieldSet(this, _PubSub_isActive, true, \"f\");\n            __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b++, _b), \"f\");\n            const callback = () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, \"f\"), _b = _c--, _c), \"f\"), _b; };\n            commands.push({\n                args: [\n                    COMMANDS[type].subscribe,\n                    ...listeners.keys()\n                ],\n                channelsCounter: listeners.size,\n                resolve: callback,\n                reject: callback\n            });\n        }\n        return commands;\n    }\n    handleMessageReply(reply) {\n        if (COMMANDS[PubSubType.CHANNELS].message.equals(reply[0])) {\n            __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_emitPubSubMessage).call(this, PubSubType.CHANNELS, reply[2], reply[1]);\n            return true;\n        }\n        else if (COMMANDS[PubSubType.PATTERNS].message.equals(reply[0])) {\n            __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_emitPubSubMessage).call(this, PubSubType.PATTERNS, reply[3], reply[2], reply[1]);\n            return true;\n        }\n        else if (COMMANDS[PubSubType.SHARDED].message.equals(reply[0])) {\n            __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_emitPubSubMessage).call(this, PubSubType.SHARDED, reply[2], reply[1]);\n            return true;\n        }\n        return false;\n    }\n    removeShardedListeners(channel) {\n        const listeners = __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[PubSubType.SHARDED].get(channel);\n        __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[PubSubType.SHARDED].delete(channel);\n        __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_updateIsActive).call(this);\n        return listeners;\n    }\n    getTypeListeners(type) {\n        return __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type];\n    }\n}\nexports.PubSub = PubSub;\n_a = PubSub, _PubSub_subscribing = new WeakMap(), _PubSub_isActive = new WeakMap(), _PubSub_listeners = new WeakMap(), _PubSub_instances = new WeakSet(), _PubSub_channelsArray = function _PubSub_channelsArray(channels) {\n    return (Array.isArray(channels) ? channels : [channels]);\n}, _PubSub_listenersSet = function _PubSub_listenersSet(listeners, returnBuffers) {\n    return (returnBuffers ? listeners.buffers : listeners.strings);\n}, _PubSub_extendChannelListeners = function _PubSub_extendChannelListeners(type, channel, listeners) {\n    const existingListeners = __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].get(channel);\n    if (!existingListeners) {\n        __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].set(channel, listeners);\n        return true;\n    }\n    for (const listener of listeners.buffers) {\n        existingListeners.buffers.add(listener);\n    }\n    for (const listener of listeners.strings) {\n        existingListeners.strings.add(listener);\n    }\n    return false;\n}, _PubSub_unsubscribeCommand = function _PubSub_unsubscribeCommand(args, channelsCounter, removeListeners) {\n    return {\n        args,\n        channelsCounter,\n        resolve: () => {\n            removeListeners();\n            __classPrivateFieldGet(this, _PubSub_instances, \"m\", _PubSub_updateIsActive).call(this);\n        },\n        reject: undefined // use the same structure as `subscribe`\n    };\n}, _PubSub_updateIsActive = function _PubSub_updateIsActive() {\n    __classPrivateFieldSet(this, _PubSub_isActive, (__classPrivateFieldGet(this, _PubSub_listeners, \"f\")[PubSubType.CHANNELS].size !== 0 ||\n        __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[PubSubType.PATTERNS].size !== 0 ||\n        __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[PubSubType.SHARDED].size !== 0 ||\n        __classPrivateFieldGet(this, _PubSub_subscribing, \"f\") !== 0), \"f\");\n}, _PubSub_emitPubSubMessage = function _PubSub_emitPubSubMessage(type, message, channel, pattern) {\n    const keyString = (pattern ?? channel).toString(), listeners = __classPrivateFieldGet(this, _PubSub_listeners, \"f\")[type].get(keyString);\n    if (!listeners)\n        return;\n    for (const listener of listeners.buffers) {\n        listener(message, channel);\n    }\n    if (!listeners.strings.size)\n        return;\n    const channelString = pattern ? channel.toString() : keyString, messageString = channelString === '__redis__:invalidate' ?\n        // https://github.com/redis/redis/pull/7469\n        // https://github.com/redis/redis/issues/7463\n        (message === null ? null : message.map(x => x.toString())) :\n        message.toString();\n    for (const listener of listeners.strings) {\n        listener(messageString, channelString);\n    }\n};\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _RedisCommandsQueue_instances, _a, _RedisCommandsQueue_flushQueue, _RedisCommandsQueue_maxLength, _RedisCommandsQueue_waitingToBeSent, _RedisCommandsQueue_waitingForReply, _RedisCommandsQueue_onShardedChannelMoved, _RedisCommandsQueue_pubSub, _RedisCommandsQueue_chainInExecution, _RedisCommandsQueue_decoder, _RedisCommandsQueue_pushPubSubCommand;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst LinkedList = require(\"yallist\");\nconst errors_1 = require(\"../errors\");\nconst decoder_1 = require(\"./RESP2/decoder\");\nconst encoder_1 = require(\"./RESP2/encoder\");\nconst pub_sub_1 = require(\"./pub-sub\");\nconst PONG = Buffer.from('pong');\nclass RedisCommandsQueue {\n    get isPubSubActive() {\n        return __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").isActive;\n    }\n    constructor(maxLength, onShardedChannelMoved) {\n        _RedisCommandsQueue_instances.add(this);\n        _RedisCommandsQueue_maxLength.set(this, void 0);\n        _RedisCommandsQueue_waitingToBeSent.set(this, new LinkedList());\n        _RedisCommandsQueue_waitingForReply.set(this, new LinkedList());\n        _RedisCommandsQueue_onShardedChannelMoved.set(this, void 0);\n        _RedisCommandsQueue_pubSub.set(this, new pub_sub_1.PubSub());\n        _RedisCommandsQueue_chainInExecution.set(this, void 0);\n        _RedisCommandsQueue_decoder.set(this, new decoder_1.default({\n            returnStringsAsBuffers: () => {\n                return !!__classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").head?.value.returnBuffers ||\n                    __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").isActive;\n            },\n            onReply: reply => {\n                if (__classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").isActive && Array.isArray(reply)) {\n                    if (__classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").handleMessageReply(reply))\n                        return;\n                    const isShardedUnsubscribe = pub_sub_1.PubSub.isShardedUnsubscribe(reply);\n                    if (isShardedUnsubscribe && !__classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").length) {\n                        const channel = reply[1].toString();\n                        __classPrivateFieldGet(this, _RedisCommandsQueue_onShardedChannelMoved, \"f\").call(this, channel, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").removeShardedListeners(channel));\n                        return;\n                    }\n                    else if (isShardedUnsubscribe || pub_sub_1.PubSub.isStatusReply(reply)) {\n                        const head = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").head.value;\n                        if ((Number.isNaN(head.channelsCounter) && reply[2] === 0) ||\n                            --head.channelsCounter === 0) {\n                            __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").shift().resolve();\n                        }\n                        return;\n                    }\n                    if (PONG.equals(reply[0])) {\n                        const { resolve, returnBuffers } = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").shift(), buffer = (reply[1].length === 0 ? reply[0] : reply[1]);\n                        resolve(returnBuffers ? buffer : buffer.toString());\n                        return;\n                    }\n                }\n                const { resolve, reject } = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").shift();\n                if (reply instanceof errors_1.ErrorReply) {\n                    reject(reply);\n                }\n                else {\n                    resolve(reply);\n                }\n            }\n        }));\n        __classPrivateFieldSet(this, _RedisCommandsQueue_maxLength, maxLength, \"f\");\n        __classPrivateFieldSet(this, _RedisCommandsQueue_onShardedChannelMoved, onShardedChannelMoved, \"f\");\n    }\n    addCommand(args, options) {\n        if (__classPrivateFieldGet(this, _RedisCommandsQueue_maxLength, \"f\") && __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").length + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").length >= __classPrivateFieldGet(this, _RedisCommandsQueue_maxLength, \"f\")) {\n            return Promise.reject(new Error('The queue is full'));\n        }\n        else if (options?.signal?.aborted) {\n            return Promise.reject(new errors_1.AbortError());\n        }\n        return new Promise((resolve, reject) => {\n            const node = new LinkedList.Node({\n                args,\n                chainId: options?.chainId,\n                returnBuffers: options?.returnBuffers,\n                resolve,\n                reject\n            });\n            if (options?.signal) {\n                const listener = () => {\n                    __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").removeNode(node);\n                    node.value.reject(new errors_1.AbortError());\n                };\n                node.value.abort = {\n                    signal: options.signal,\n                    listener\n                };\n                // AbortSignal type is incorrent\n                options.signal.addEventListener('abort', listener, {\n                    once: true\n                });\n            }\n            if (options?.asap) {\n                __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").unshiftNode(node);\n            }\n            else {\n                __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").pushNode(node);\n            }\n        });\n    }\n    subscribe(type, channels, listener, returnBuffers) {\n        return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, \"m\", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").subscribe(type, channels, listener, returnBuffers));\n    }\n    unsubscribe(type, channels, listener, returnBuffers) {\n        return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, \"m\", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").unsubscribe(type, channels, listener, returnBuffers));\n    }\n    resubscribe() {\n        const commands = __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").resubscribe();\n        if (!commands.length)\n            return;\n        return Promise.all(commands.map(command => __classPrivateFieldGet(this, _RedisCommandsQueue_instances, \"m\", _RedisCommandsQueue_pushPubSubCommand).call(this, command)));\n    }\n    extendPubSubChannelListeners(type, channel, listeners) {\n        return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, \"m\", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").extendChannelListeners(type, channel, listeners));\n    }\n    extendPubSubListeners(type, listeners) {\n        return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, \"m\", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").extendTypeListeners(type, listeners));\n    }\n    getPubSubListeners(type) {\n        return __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").getTypeListeners(type);\n    }\n    getCommandToSend() {\n        const toSend = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").shift();\n        if (!toSend)\n            return;\n        let encoded;\n        try {\n            encoded = (0, encoder_1.default)(toSend.args);\n        }\n        catch (err) {\n            toSend.reject(err);\n            return;\n        }\n        __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\").push({\n            resolve: toSend.resolve,\n            reject: toSend.reject,\n            channelsCounter: toSend.channelsCounter,\n            returnBuffers: toSend.returnBuffers\n        });\n        __classPrivateFieldSet(this, _RedisCommandsQueue_chainInExecution, toSend.chainId, \"f\");\n        return encoded;\n    }\n    onReplyChunk(chunk) {\n        __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, \"f\").write(chunk);\n    }\n    flushWaitingForReply(err) {\n        __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, \"f\").reset();\n        __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").reset();\n        __classPrivateFieldGet(_a, _a, \"m\", _RedisCommandsQueue_flushQueue).call(_a, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\"), err);\n        if (!__classPrivateFieldGet(this, _RedisCommandsQueue_chainInExecution, \"f\"))\n            return;\n        while (__classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").head?.value.chainId === __classPrivateFieldGet(this, _RedisCommandsQueue_chainInExecution, \"f\")) {\n            __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").shift();\n        }\n        __classPrivateFieldSet(this, _RedisCommandsQueue_chainInExecution, undefined, \"f\");\n    }\n    flushAll(err) {\n        __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, \"f\").reset();\n        __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, \"f\").reset();\n        __classPrivateFieldGet(_a, _a, \"m\", _RedisCommandsQueue_flushQueue).call(_a, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, \"f\"), err);\n        __classPrivateFieldGet(_a, _a, \"m\", _RedisCommandsQueue_flushQueue).call(_a, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\"), err);\n    }\n}\n_a = RedisCommandsQueue, _RedisCommandsQueue_maxLength = new WeakMap(), _RedisCommandsQueue_waitingToBeSent = new WeakMap(), _RedisCommandsQueue_waitingForReply = new WeakMap(), _RedisCommandsQueue_onShardedChannelMoved = new WeakMap(), _RedisCommandsQueue_pubSub = new WeakMap(), _RedisCommandsQueue_chainInExecution = new WeakMap(), _RedisCommandsQueue_decoder = new WeakMap(), _RedisCommandsQueue_instances = new WeakSet(), _RedisCommandsQueue_flushQueue = function _RedisCommandsQueue_flushQueue(queue, err) {\n    while (queue.length) {\n        queue.shift().reject(err);\n    }\n}, _RedisCommandsQueue_pushPubSubCommand = function _RedisCommandsQueue_pushPubSubCommand(command) {\n    if (command === undefined)\n        return;\n    return new Promise((resolve, reject) => {\n        __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, \"f\").push({\n            args: command.args,\n            channelsCounter: command.channelsCounter,\n            returnBuffers: true,\n            resolve: () => {\n                command.resolve();\n                resolve();\n            },\n            reject: err => {\n                command.reject?.();\n                reject(err);\n            }\n        });\n    });\n};\nexports.default = RedisCommandsQueue;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCommandOptions = exports.commandOptions = void 0;\nconst symbol = Symbol('Command Options');\nfunction commandOptions(options) {\n    options[symbol] = true;\n    return options;\n}\nexports.commandOptions = commandOptions;\nfunction isCommandOptions(options) {\n    return options?.[symbol] === true;\n}\nexports.isCommandOptions = isCommandOptions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fCallArguments = exports.transformCommandReply = exports.transformLegacyCommandArguments = exports.transformCommandArguments = exports.attachExtensions = exports.attachCommands = void 0;\nconst command_options_1 = require(\"./command-options\");\nfunction attachCommands({ BaseClass, commands, executor }) {\n    for (const [name, command] of Object.entries(commands)) {\n        BaseClass.prototype[name] = function (...args) {\n            return executor.call(this, command, args, name);\n        };\n    }\n}\nexports.attachCommands = attachCommands;\nfunction attachExtensions(config) {\n    let Commander;\n    if (config.modules) {\n        Commander = attachWithNamespaces({\n            BaseClass: config.BaseClass,\n            namespaces: config.modules,\n            executor: config.modulesExecutor\n        });\n    }\n    if (config.functions) {\n        Commander = attachWithNamespaces({\n            BaseClass: Commander ?? config.BaseClass,\n            namespaces: config.functions,\n            executor: config.functionsExecutor\n        });\n    }\n    if (config.scripts) {\n        Commander ?? (Commander = class extends config.BaseClass {\n        });\n        attachCommands({\n            BaseClass: Commander,\n            commands: config.scripts,\n            executor: config.scriptsExecutor\n        });\n    }\n    return Commander ?? config.BaseClass;\n}\nexports.attachExtensions = attachExtensions;\nfunction attachWithNamespaces({ BaseClass, namespaces, executor }) {\n    const Commander = class extends BaseClass {\n        constructor(...args) {\n            super(...args);\n            for (const namespace of Object.keys(namespaces)) {\n                this[namespace] = Object.create(this[namespace], {\n                    self: {\n                        value: this\n                    }\n                });\n            }\n        }\n    };\n    for (const [namespace, commands] of Object.entries(namespaces)) {\n        Commander.prototype[namespace] = {};\n        for (const [name, command] of Object.entries(commands)) {\n            Commander.prototype[namespace][name] = function (...args) {\n                return executor.call(this.self, command, args, name);\n            };\n        }\n    }\n    return Commander;\n}\nfunction transformCommandArguments(command, args) {\n    let options;\n    if ((0, command_options_1.isCommandOptions)(args[0])) {\n        options = args[0];\n        args = args.slice(1);\n    }\n    return {\n        jsArgs: args,\n        args: command.transformArguments(...args),\n        options\n    };\n}\nexports.transformCommandArguments = transformCommandArguments;\nfunction transformLegacyCommandArguments(args) {\n    return args.flat().map(arg => {\n        return typeof arg === 'number' || arg instanceof Date ?\n            arg.toString() :\n            arg;\n    });\n}\nexports.transformLegacyCommandArguments = transformLegacyCommandArguments;\nfunction transformCommandReply(command, rawReply, preserved) {\n    if (!command.transformReply) {\n        return rawReply;\n    }\n    return command.transformReply(rawReply, preserved);\n}\nexports.transformCommandReply = transformCommandReply;\nfunction fCallArguments(name, fn, args) {\n    const actualArgs = [\n        fn.IS_READ_ONLY ? 'FCALL_RO' : 'FCALL',\n        name\n    ];\n    if (fn.NUMBER_OF_KEYS !== undefined) {\n        actualArgs.push(fn.NUMBER_OF_KEYS.toString());\n    }\n    actualArgs.push(...args);\n    return actualArgs;\n}\nexports.fCallArguments = fCallArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst commander_1 = require(\"./commander\");\nconst errors_1 = require(\"./errors\");\nclass RedisMultiCommand {\n    constructor() {\n        Object.defineProperty(this, \"queue\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: []\n        });\n        Object.defineProperty(this, \"scriptsInUse\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new Set()\n        });\n    }\n    static generateChainId() {\n        return Symbol('RedisMultiCommand Chain Id');\n    }\n    addCommand(args, transformReply) {\n        this.queue.push({\n            args,\n            transformReply\n        });\n    }\n    addFunction(name, fn, args) {\n        const transformedArguments = (0, commander_1.fCallArguments)(name, fn, fn.transformArguments(...args));\n        this.queue.push({\n            args: transformedArguments,\n            transformReply: fn.transformReply\n        });\n        return transformedArguments;\n    }\n    addScript(script, args) {\n        const transformedArguments = [];\n        if (this.scriptsInUse.has(script.SHA1)) {\n            transformedArguments.push('EVALSHA', script.SHA1);\n        }\n        else {\n            this.scriptsInUse.add(script.SHA1);\n            transformedArguments.push('EVAL', script.SCRIPT);\n        }\n        if (script.NUMBER_OF_KEYS !== undefined) {\n            transformedArguments.push(script.NUMBER_OF_KEYS.toString());\n        }\n        const scriptArguments = script.transformArguments(...args);\n        transformedArguments.push(...scriptArguments);\n        if (scriptArguments.preserve) {\n            transformedArguments.preserve = scriptArguments.preserve;\n        }\n        this.addCommand(transformedArguments, script.transformReply);\n        return transformedArguments;\n    }\n    handleExecReplies(rawReplies) {\n        const execReply = rawReplies[rawReplies.length - 1];\n        if (execReply === null) {\n            throw new errors_1.WatchError();\n        }\n        return this.transformReplies(execReply);\n    }\n    transformReplies(rawReplies) {\n        const errorIndexes = [], replies = rawReplies.map((reply, i) => {\n            if (reply instanceof errors_1.ErrorReply) {\n                errorIndexes.push(i);\n                return reply;\n            }\n            const { transformReply, args } = this.queue[i];\n            return transformReply ? transformReply(reply, args.preserve) : reply;\n        });\n        if (errorIndexes.length)\n            throw new errors_1.MultiErrorReply(replies, errorIndexes);\n        return replies;\n    }\n}\nexports.default = RedisMultiCommand;\n", "\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _RedisClientMultiCommand_instances, _RedisClientMultiCommand_multi, _RedisClientMultiCommand_executor, _RedisClientMultiCommand_selectedDB, _RedisClientMultiCommand_legacyMode, _RedisClientMultiCommand_defineLegacyCommand;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst commands_1 = require(\"./commands\");\nconst multi_command_1 = require(\"../multi-command\");\nconst commander_1 = require(\"../commander\");\nclass RedisClientMultiCommand {\n    static extend(extensions) {\n        return (0, commander_1.attachExtensions)({\n            BaseClass: RedisClientMultiCommand,\n            modulesExecutor: RedisClientMultiCommand.prototype.commandsExecutor,\n            modules: extensions?.modules,\n            functionsExecutor: RedisClientMultiCommand.prototype.functionsExecutor,\n            functions: extensions?.functions,\n            scriptsExecutor: RedisClientMultiCommand.prototype.scriptsExecutor,\n            scripts: extensions?.scripts\n        });\n    }\n    constructor(executor, legacyMode = false) {\n        _RedisClientMultiCommand_instances.add(this);\n        _RedisClientMultiCommand_multi.set(this, new multi_command_1.default());\n        _RedisClientMultiCommand_executor.set(this, void 0);\n        Object.defineProperty(this, \"v4\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: {}\n        });\n        _RedisClientMultiCommand_selectedDB.set(this, void 0);\n        Object.defineProperty(this, \"select\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SELECT\n        });\n        Object.defineProperty(this, \"EXEC\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.exec\n        });\n        __classPrivateFieldSet(this, _RedisClientMultiCommand_executor, executor, \"f\");\n        if (legacyMode) {\n            __classPrivateFieldGet(this, _RedisClientMultiCommand_instances, \"m\", _RedisClientMultiCommand_legacyMode).call(this);\n        }\n    }\n    commandsExecutor(command, args) {\n        return this.addCommand(command.transformArguments(...args), command.transformReply);\n    }\n    SELECT(db, transformReply) {\n        __classPrivateFieldSet(this, _RedisClientMultiCommand_selectedDB, db, \"f\");\n        return this.addCommand(['SELECT', db.toString()], transformReply);\n    }\n    addCommand(args, transformReply) {\n        __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").addCommand(args, transformReply);\n        return this;\n    }\n    functionsExecutor(fn, args, name) {\n        __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").addFunction(name, fn, args);\n        return this;\n    }\n    scriptsExecutor(script, args) {\n        __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").addScript(script, args);\n        return this;\n    }\n    async exec(execAsPipeline = false) {\n        if (execAsPipeline) {\n            return this.execAsPipeline();\n        }\n        return __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").handleExecReplies(await __classPrivateFieldGet(this, _RedisClientMultiCommand_executor, \"f\").call(this, __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").queue, __classPrivateFieldGet(this, _RedisClientMultiCommand_selectedDB, \"f\"), multi_command_1.default.generateChainId()));\n    }\n    async execAsPipeline() {\n        if (__classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").queue.length === 0)\n            return [];\n        return __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").transformReplies(await __classPrivateFieldGet(this, _RedisClientMultiCommand_executor, \"f\").call(this, __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").queue, __classPrivateFieldGet(this, _RedisClientMultiCommand_selectedDB, \"f\")));\n    }\n}\n_RedisClientMultiCommand_multi = new WeakMap(), _RedisClientMultiCommand_executor = new WeakMap(), _RedisClientMultiCommand_selectedDB = new WeakMap(), _RedisClientMultiCommand_instances = new WeakSet(), _RedisClientMultiCommand_legacyMode = function _RedisClientMultiCommand_legacyMode() {\n    var _a, _b;\n    this.v4.addCommand = this.addCommand.bind(this);\n    this.addCommand = (...args) => {\n        __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").addCommand((0, commander_1.transformLegacyCommandArguments)(args));\n        return this;\n    };\n    this.v4.exec = this.exec.bind(this);\n    this.exec = (callback) => {\n        this.v4.exec()\n            .then((reply) => {\n            if (!callback)\n                return;\n            callback(null, reply);\n        })\n            .catch((err) => {\n            if (!callback) {\n                // this.emit('error', err);\n                return;\n            }\n            callback(err);\n        });\n    };\n    for (const [name, command] of Object.entries(commands_1.default)) {\n        __classPrivateFieldGet(this, _RedisClientMultiCommand_instances, \"m\", _RedisClientMultiCommand_defineLegacyCommand).call(this, name, command);\n        (_a = this)[_b = name.toLowerCase()] ?? (_a[_b] = this[name]);\n    }\n}, _RedisClientMultiCommand_defineLegacyCommand = function _RedisClientMultiCommand_defineLegacyCommand(name, command) {\n    this.v4[name] = this[name].bind(this.v4);\n    this[name] = command && command.TRANSFORM_LEGACY_REPLY && command.transformReply ?\n        (...args) => {\n            __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, \"f\").addCommand([name, ...(0, commander_1.transformLegacyCommandArguments)(args)], command.transformReply);\n            return this;\n        } :\n        (...args) => this.addCommand(name, ...args);\n};\nexports.default = RedisClientMultiCommand;\n(0, commander_1.attachCommands)({\n    BaseClass: RedisClientMultiCommand,\n    commands: commands_1.default,\n    executor: RedisClientMultiCommand.prototype.commandsExecutor\n});\n", "module.exports = function(factory) {\n  if (typeof factory.create !== \"function\") {\n    throw new TypeError(\"factory.create must be a function\");\n  }\n\n  if (typeof factory.destroy !== \"function\") {\n    throw new TypeError(\"factory.destroy must be a function\");\n  }\n\n  if (\n    typeof factory.validate !== \"undefined\" &&\n    typeof factory.validate !== \"function\"\n  ) {\n    throw new TypeError(\"factory.validate must be a function\");\n  }\n};\n", "\"use strict\";\n/**\n * Create the default settings used by the pool\n *\n * @class\n */\nclass PoolDefaults {\n  constructor() {\n    this.fifo = true;\n    this.priorityRange = 1;\n\n    this.testOnBorrow = false;\n    this.testOnReturn = false;\n\n    this.autostart = true;\n\n    this.evictionRunIntervalMillis = 0;\n    this.numTestsPerEvictionRun = 3;\n    this.softIdleTimeoutMillis = -1;\n    this.idleTimeoutMillis = 30000;\n\n    // FIXME: no defaults!\n    this.acquireTimeoutMillis = null;\n    this.destroyTimeoutMillis = null;\n    this.maxWaitingClients = null;\n\n    this.min = null;\n    this.max = null;\n    // FIXME: this seems odd?\n    this.Promise = Promise;\n  }\n}\n\nmodule.exports = PoolDefaults;\n", "\"use strict\";\n\nconst PoolDefaults = require(\"./PoolDefaults\");\n\nclass PoolOptions {\n  /**\n   * @param {Object} opts\n   *   configuration for the pool\n   * @param {Number} [opts.max=null]\n   *   Maximum number of items that can exist at the same time.  Default: 1.\n   *   Any further acquire requests will be pushed to the waiting list.\n   * @param {Number} [opts.min=null]\n   *   Minimum number of items in pool (including in-use). Default: 0.\n   *   When the pool is created, or a resource destroyed, this minimum will\n   *   be checked. If the pool resource count is below the minimum, a new\n   *   resource will be created and added to the pool.\n   * @param {Number} [opts.maxWaitingClients=null]\n   *   maximum number of queued requests allowed after which acquire calls will be rejected\n   * @param {Boolean} [opts.testOnBorrow=false]\n   *   should the pool validate resources before giving them to clients. Requires that\n   *   `factory.validate` is specified.\n   * @param {Boolean} [opts.testOnReturn=false]\n   *   should the pool validate resources before returning them to the pool.\n   * @param {Number} [opts.acquireTimeoutMillis=null]\n   *   Delay in milliseconds after which the an `acquire` call will fail. optional.\n   *   Default: undefined. Should be positive and non-zero\n   * @param {Number} [opts.destroyTimeoutMillis=null]\n   *   Delay in milliseconds after which the an `destroy` call will fail, causing it to emit a factoryDestroyError event. optional.\n   *   Default: undefined. Should be positive and non-zero\n   * @param {Number} [opts.priorityRange=1]\n   *   The range from 1 to be treated as a valid priority\n   * @param {Boolean} [opts.fifo=true]\n   *   Sets whether the pool has LIFO (last in, first out) behaviour with respect to idle objects.\n   *   if false then pool has FIFO behaviour\n   * @param {Boolean} [opts.autostart=true]\n   *   Should the pool start creating resources etc once the constructor is called\n   * @param {Number} [opts.evictionRunIntervalMillis=0]\n   *   How often to run eviction checks.  Default: 0 (does not run).\n   * @param {Number} [opts.numTestsPerEvictionRun=3]\n   *   Number of resources to check each eviction run.  Default: 3.\n   * @param {Number} [opts.softIdleTimeoutMillis=-1]\n   *   amount of time an object may sit idle in the pool before it is eligible\n   *   for eviction by the idle object evictor (if any), with the extra condition\n   *   that at least \"min idle\" object instances remain in the pool. Default -1 (nothing can get evicted)\n   * @param {Number} [opts.idleTimeoutMillis=30000]\n   *   the minimum amount of time that an object may sit idle in the pool before it is eligible for eviction\n   *   due to idle time. Supercedes \"softIdleTimeoutMillis\" Default: 30000\n   * @param {typeof Promise} [opts.Promise=Promise]\n   *   What promise implementation should the pool use, defaults to native promises.\n   */\n  constructor(opts) {\n    const poolDefaults = new PoolDefaults();\n\n    opts = opts || {};\n\n    this.fifo = typeof opts.fifo === \"boolean\" ? opts.fifo : poolDefaults.fifo;\n    this.priorityRange = opts.priorityRange || poolDefaults.priorityRange;\n\n    this.testOnBorrow =\n      typeof opts.testOnBorrow === \"boolean\"\n        ? opts.testOnBorrow\n        : poolDefaults.testOnBorrow;\n    this.testOnReturn =\n      typeof opts.testOnReturn === \"boolean\"\n        ? opts.testOnReturn\n        : poolDefaults.testOnReturn;\n\n    this.autostart =\n      typeof opts.autostart === \"boolean\"\n        ? opts.autostart\n        : poolDefaults.autostart;\n\n    if (opts.acquireTimeoutMillis) {\n      // @ts-ignore\n      this.acquireTimeoutMillis = parseInt(opts.acquireTimeoutMillis, 10);\n    }\n\n    if (opts.destroyTimeoutMillis) {\n      // @ts-ignore\n      this.destroyTimeoutMillis = parseInt(opts.destroyTimeoutMillis, 10);\n    }\n\n    if (opts.maxWaitingClients !== undefined) {\n      // @ts-ignore\n      this.maxWaitingClients = parseInt(opts.maxWaitingClients, 10);\n    }\n\n    // @ts-ignore\n    this.max = parseInt(opts.max, 10);\n    // @ts-ignore\n    this.min = parseInt(opts.min, 10);\n\n    this.max = Math.max(isNaN(this.max) ? 1 : this.max, 1);\n    this.min = Math.min(isNaN(this.min) ? 0 : this.min, this.max);\n\n    this.evictionRunIntervalMillis =\n      opts.evictionRunIntervalMillis || poolDefaults.evictionRunIntervalMillis;\n    this.numTestsPerEvictionRun =\n      opts.numTestsPerEvictionRun || poolDefaults.numTestsPerEvictionRun;\n    this.softIdleTimeoutMillis =\n      opts.softIdleTimeoutMillis || poolDefaults.softIdleTimeoutMillis;\n    this.idleTimeoutMillis =\n      opts.idleTimeoutMillis || poolDefaults.idleTimeoutMillis;\n\n    this.Promise = opts.Promise != null ? opts.Promise : poolDefaults.Promise;\n  }\n}\n\nmodule.exports = PoolOptions;\n", "\"use strict\";\n\n/**\n * This is apparently a bit like a Jquery deferred, hence the name\n */\n\nclass Deferred {\n  constructor(Promise) {\n    this._state = Deferred.PENDING;\n    this._resolve = undefined;\n    this._reject = undefined;\n\n    this._promise = new Promise((resolve, reject) => {\n      this._resolve = resolve;\n      this._reject = reject;\n    });\n  }\n\n  get state() {\n    return this._state;\n  }\n\n  get promise() {\n    return this._promise;\n  }\n\n  reject(reason) {\n    if (this._state !== Deferred.PENDING) {\n      return;\n    }\n    this._state = Deferred.REJECTED;\n    this._reject(reason);\n  }\n\n  resolve(value) {\n    if (this._state !== Deferred.PENDING) {\n      return;\n    }\n    this._state = Deferred.FULFILLED;\n    this._resolve(value);\n  }\n}\n\n// TODO: should these really live here? or be a seperate 'state' enum\nDeferred.PENDING = \"PENDING\";\nDeferred.FULFILLED = \"FULFILLED\";\nDeferred.REJECTED = \"REJECTED\";\n\nmodule.exports = Deferred;\n", "\"use strict\";\n\nclass ExtendableError extends Error {\n  constructor(message) {\n    super(message);\n    // @ts-ignore\n    this.name = this.constructor.name;\n    this.message = message;\n    if (typeof Error.captureStackTrace === \"function\") {\n      Error.captureStackTrace(this, this.constructor);\n    } else {\n      this.stack = new Error(message).stack;\n    }\n  }\n}\n\n/* eslint-disable no-useless-constructor */\nclass TimeoutError extends ExtendableError {\n  constructor(m) {\n    super(m);\n  }\n}\n/* eslint-enable no-useless-constructor */\n\nmodule.exports = {\n  TimeoutError: TimeoutError\n};\n", "\"use strict\";\n\nconst Deferred = require(\"./Deferred\");\nconst errors = require(\"./errors\");\n\nfunction fbind(fn, ctx) {\n  return function bound() {\n    return fn.apply(ctx, arguments);\n  };\n}\n\n/**\n * Wraps a users request for a resource\n * Basically a promise mashed in with a timeout\n * @private\n */\nclass ResourceRequest extends Deferred {\n  /**\n   * [constructor description]\n   * @param  {Number} ttl     timeout\n   */\n  constructor(ttl, Promise) {\n    super(Promise);\n    this._creationTimestamp = Date.now();\n    this._timeout = null;\n\n    if (ttl !== undefined) {\n      this.setTimeout(ttl);\n    }\n  }\n\n  setTimeout(delay) {\n    if (this._state !== ResourceRequest.PENDING) {\n      return;\n    }\n    const ttl = parseInt(delay, 10);\n\n    if (isNaN(ttl) || ttl <= 0) {\n      throw new Error(\"delay must be a positive int\");\n    }\n\n    const age = Date.now() - this._creationTimestamp;\n\n    if (this._timeout) {\n      this.removeTimeout();\n    }\n\n    this._timeout = setTimeout(\n      fbind(this._fireTimeout, this),\n      Math.max(ttl - age, 0)\n    );\n  }\n\n  removeTimeout() {\n    if (this._timeout) {\n      clearTimeout(this._timeout);\n    }\n    this._timeout = null;\n  }\n\n  _fireTimeout() {\n    this.reject(new errors.TimeoutError(\"ResourceRequest timed out\"));\n  }\n\n  reject(reason) {\n    this.removeTimeout();\n    super.reject(reason);\n  }\n\n  resolve(value) {\n    this.removeTimeout();\n    super.resolve(value);\n  }\n}\n\nmodule.exports = ResourceRequest;\n", "\"use strict\";\n\nconst Deferred = require(\"./Deferred\");\n\n/**\n * Plan is to maybe add tracking via Error objects\n * and other fun stuff!\n */\n\nclass ResourceLoan extends Deferred {\n  /**\n   *\n   * @param  {any} pooledResource the PooledResource this loan belongs to\n   * @return {any}                [description]\n   */\n  constructor(pooledResource, Promise) {\n    super(Promise);\n    this._creationTimestamp = Date.now();\n    this.pooledResource = pooledResource;\n  }\n\n  reject() {\n    /**\n     * Loans can only be resolved at the moment\n     */\n  }\n}\n\nmodule.exports = ResourceLoan;\n", "\"use strict\";\n\nconst PooledResourceStateEnum = {\n  ALLOCATED: \"ALLOCATED\", // In use\n  IDLE: \"IDLE\", // In the queue, not in use.\n  INVALID: \"INVALID\", // Failed validation\n  RETURNING: \"RETURNING\", // Resource is in process of returning\n  VALIDATION: \"VALIDATION\" // Currently being tested\n};\n\nmodule.exports = PooledResourceStateEnum;\n", "\"use strict\";\n\nconst PooledResourceStateEnum = require(\"./PooledResourceStateEnum\");\n\n/**\n * @class\n * @private\n */\nclass PooledResource {\n  constructor(resource) {\n    this.creationTime = Date.now();\n    this.lastReturnTime = null;\n    this.lastBorrowTime = null;\n    this.lastIdleTime = null;\n    this.obj = resource;\n    this.state = PooledResourceStateEnum.IDLE;\n  }\n\n  // mark the resource as \"allocated\"\n  allocate() {\n    this.lastBorrowTime = Date.now();\n    this.state = PooledResourceStateEnum.ALLOCATED;\n  }\n\n  // mark the resource as \"deallocated\"\n  deallocate() {\n    this.lastReturnTime = Date.now();\n    this.state = PooledResourceStateEnum.IDLE;\n  }\n\n  invalidate() {\n    this.state = PooledResourceStateEnum.INVALID;\n  }\n\n  test() {\n    this.state = PooledResourceStateEnum.VALIDATION;\n  }\n\n  idle() {\n    this.lastIdleTime = Date.now();\n    this.state = PooledResourceStateEnum.IDLE;\n  }\n\n  returning() {\n    this.state = PooledResourceStateEnum.RETURNING;\n  }\n}\n\nmodule.exports = PooledResource;\n", "\"use strict\";\n\nclass DefaultEvictor {\n  evict(config, pooledResource, availableObjectsCount) {\n    const idleTime = Date.now() - pooledResource.lastIdleTime;\n\n    if (\n      config.softIdleTimeoutMillis > 0 &&\n      config.softIdleTimeoutMillis < idleTime &&\n      config.min < availableObjectsCount\n    ) {\n      return true;\n    }\n\n    if (config.idleTimeoutMillis < idleTime) {\n      return true;\n    }\n\n    return false;\n  }\n}\n\nmodule.exports = DefaultEvictor;\n", "\"use strict\";\n\n/**\n * A Doubly Linked List, because there aren't enough in the world...\n * this is pretty much a direct JS port of the one wikipedia\n * https://en.wikipedia.org/wiki/Doubly_linked_list\n *\n * For most usage 'insertBeginning' and 'insertEnd' should be enough\n *\n * nodes are expected to something like a POJSO like\n * {\n *   prev: null,\n *   next: null,\n *   something: 'whatever you like'\n * }\n */\nclass DoublyLinkedList {\n  constructor() {\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  insertBeginning(node) {\n    if (this.head === null) {\n      this.head = node;\n      this.tail = node;\n      node.prev = null;\n      node.next = null;\n      this.length++;\n    } else {\n      this.insertBefore(this.head, node);\n    }\n  }\n\n  insertEnd(node) {\n    if (this.tail === null) {\n      this.insertBeginning(node);\n    } else {\n      this.insertAfter(this.tail, node);\n    }\n  }\n\n  insertAfter(node, newNode) {\n    newNode.prev = node;\n    newNode.next = node.next;\n    if (node.next === null) {\n      this.tail = newNode;\n    } else {\n      node.next.prev = newNode;\n    }\n    node.next = newNode;\n    this.length++;\n  }\n\n  insertBefore(node, newNode) {\n    newNode.prev = node.prev;\n    newNode.next = node;\n    if (node.prev === null) {\n      this.head = newNode;\n    } else {\n      node.prev.next = newNode;\n    }\n    node.prev = newNode;\n    this.length++;\n  }\n\n  remove(node) {\n    if (node.prev === null) {\n      this.head = node.next;\n    } else {\n      node.prev.next = node.next;\n    }\n    if (node.next === null) {\n      this.tail = node.prev;\n    } else {\n      node.next.prev = node.prev;\n    }\n    node.prev = null;\n    node.next = null;\n    this.length--;\n  }\n\n  // FIXME: this should not live here and has become a dumping ground...\n  static createNode(data) {\n    return {\n      prev: null,\n      next: null,\n      data: data\n    };\n  }\n}\n\nmodule.exports = DoublyLinkedList;\n", "\"use strict\";\n\n/**\n * Creates an interator for a DoublyLinkedList starting at the given node\n * It's internal cursor will remains relative to the last \"iterated\" node as that\n * node moves through the list until it either iterates to the end of the list,\n * or the the node it's tracking is removed from the list. Until the first 'next'\n * call it tracks the head/tail of the linked list. This means that one can create\n * an iterator on an empty list, then add nodes, and then the iterator will follow\n * those nodes. Because the DoublyLinkedList nodes don't track their owning \"list\" and\n * it's highly inefficient to walk the list for every iteration, the iterator won't know\n * if the node has been detached from one List and added to another list, or if the iterator\n *\n * The created object is an es6 compatible iterator\n */\nclass DoublyLinkedListIterator {\n  /**\n   * @param  {Object} doublyLinkedList     a node that is part of a doublyLinkedList\n   * @param  {Boolean} [reverse=false]     is this a reverse iterator? default: false\n   */\n  constructor(doublyLinkedList, reverse) {\n    this._list = doublyLinkedList;\n    // NOTE: these key names are tied to the DoublyLinkedListIterator\n    this._direction = reverse === true ? \"prev\" : \"next\";\n    this._startPosition = reverse === true ? \"tail\" : \"head\";\n    this._started = false;\n    this._cursor = null;\n    this._done = false;\n  }\n\n  _start() {\n    this._cursor = this._list[this._startPosition];\n    this._started = true;\n  }\n\n  _advanceCursor() {\n    if (this._started === false) {\n      this._started = true;\n      this._cursor = this._list[this._startPosition];\n      return;\n    }\n    this._cursor = this._cursor[this._direction];\n  }\n\n  reset() {\n    this._done = false;\n    this._started = false;\n    this._cursor = null;\n  }\n\n  remove() {\n    if (\n      this._started === false ||\n      this._done === true ||\n      this._isCursorDetached()\n    ) {\n      return false;\n    }\n    this._list.remove(this._cursor);\n  }\n\n  next() {\n    if (this._done === true) {\n      return { done: true };\n    }\n\n    this._advanceCursor();\n\n    // if there is no node at the cursor or the node at the cursor is no longer part of\n    // a doubly linked list then we are done/finished/kaput\n    if (this._cursor === null || this._isCursorDetached()) {\n      this._done = true;\n      return { done: true };\n    }\n\n    return {\n      value: this._cursor,\n      done: false\n    };\n  }\n\n  /**\n   * Is the node detached from a list?\n   * NOTE: you can trick/bypass/confuse this check by removing a node from one DoublyLinkedList\n   * and adding it to another.\n   * TODO: We can make this smarter by checking the direction of travel and only checking\n   * the required next/prev/head/tail rather than all of them\n   * @return {Boolean}      [description]\n   */\n  _isCursorDetached() {\n    return (\n      this._cursor.prev === null &&\n      this._cursor.next === null &&\n      this._list.tail !== this._cursor &&\n      this._list.head !== this._cursor\n    );\n  }\n}\n\nmodule.exports = DoublyLinkedListIterator;\n", "\"use strict\";\n\nconst DoublyLinkedListIterator = require(\"./DoublyLinkedListIterator\");\n/**\n * Thin wrapper around an underlying DDL iterator\n */\nclass DequeIterator extends DoublyLinkedListIterator {\n  next() {\n    const result = super.next();\n\n    // unwrap the node...\n    if (result.value) {\n      result.value = result.value.data;\n    }\n\n    return result;\n  }\n}\n\nmodule.exports = DequeIterator;\n", "\"use strict\";\n\nconst DoublyLinkedList = require(\"./DoublyLinkedList\");\nconst DequeIterator = require(\"./DequeIterator\");\n/**\n * DoublyLinkedList backed double ended queue\n * implements just enough to keep the Pool\n */\nclass Deque {\n  constructor() {\n    this._list = new DoublyLinkedList();\n  }\n\n  /**\n   * removes and returns the first element from the queue\n   * @return {any} [description]\n   */\n  shift() {\n    if (this.length === 0) {\n      return undefined;\n    }\n\n    const node = this._list.head;\n    this._list.remove(node);\n\n    return node.data;\n  }\n\n  /**\n   * adds one elemts to the beginning of the queue\n   * @param  {any} element [description]\n   * @return {any}         [description]\n   */\n  unshift(element) {\n    const node = DoublyLinkedList.createNode(element);\n\n    this._list.insertBeginning(node);\n  }\n\n  /**\n   * adds one to the end of the queue\n   * @param  {any} element [description]\n   * @return {any}         [description]\n   */\n  push(element) {\n    const node = DoublyLinkedList.createNode(element);\n\n    this._list.insertEnd(node);\n  }\n\n  /**\n   * removes and returns the last element from the queue\n   */\n  pop() {\n    if (this.length === 0) {\n      return undefined;\n    }\n\n    const node = this._list.tail;\n    this._list.remove(node);\n\n    return node.data;\n  }\n\n  [Symbol.iterator]() {\n    return new DequeIterator(this._list);\n  }\n\n  iterator() {\n    return new DequeIterator(this._list);\n  }\n\n  reverseIterator() {\n    return new DequeIterator(this._list, true);\n  }\n\n  /**\n   * get a reference to the item at the head of the queue\n   * @return {any} [description]\n   */\n  get head() {\n    if (this.length === 0) {\n      return undefined;\n    }\n    const node = this._list.head;\n    return node.data;\n  }\n\n  /**\n   * get a reference to the item at the tail of the queue\n   * @return {any} [description]\n   */\n  get tail() {\n    if (this.length === 0) {\n      return undefined;\n    }\n    const node = this._list.tail;\n    return node.data;\n  }\n\n  get length() {\n    return this._list.length;\n  }\n}\n\nmodule.exports = Deque;\n", "\"use strict\";\n\nconst DoublyLinkedList = require(\"./DoublyLinkedList\");\nconst Deque = require(\"./Deque\");\n\n/**\n * Sort of a internal queue for holding the waiting\n * resource requets for a given \"priority\".\n * Also handles managing timeouts rejections on items (is this the best place for this?)\n * This is the last point where we know which queue a resourceRequest is in\n *\n */\nclass Queue extends Deque {\n  /**\n   * Adds the obj to the end of the list for this slot\n   * we completely override the parent method because we need access to the\n   * node for our rejection handler\n   * @param {any} resourceRequest [description]\n   */\n  push(resourceRequest) {\n    const node = DoublyLinkedList.createNode(resourceRequest);\n    resourceRequest.promise.catch(this._createTimeoutRejectionHandler(node));\n    this._list.insertEnd(node);\n  }\n\n  _createTimeoutRejectionHandler(node) {\n    return reason => {\n      if (reason.name === \"TimeoutError\") {\n        this._list.remove(node);\n      }\n    };\n  }\n}\n\nmodule.exports = Queue;\n", "\"use strict\";\n\nconst Queue = require(\"./Queue\");\n\n/**\n * @class\n * @private\n */\nclass PriorityQueue {\n  constructor(size) {\n    this._size = Math.max(+size | 0, 1);\n    /** @type {Queue[]} */\n    this._slots = [];\n    // initialize arrays to hold queue elements\n    for (let i = 0; i < this._size; i++) {\n      this._slots.push(new Queue());\n    }\n  }\n\n  get length() {\n    let _length = 0;\n    for (let i = 0, slots = this._slots.length; i < slots; i++) {\n      _length += this._slots[i].length;\n    }\n    return _length;\n  }\n\n  enqueue(obj, priority) {\n    // Convert to integer with a default value of 0.\n    priority = (priority && +priority | 0) || 0;\n\n    if (priority) {\n      if (priority < 0 || priority >= this._size) {\n        priority = this._size - 1;\n        // put obj at the end of the line\n      }\n    }\n    this._slots[priority].push(obj);\n  }\n\n  dequeue() {\n    for (let i = 0, sl = this._slots.length; i < sl; i += 1) {\n      if (this._slots[i].length) {\n        return this._slots[i].shift();\n      }\n    }\n    return;\n  }\n\n  get head() {\n    for (let i = 0, sl = this._slots.length; i < sl; i += 1) {\n      if (this._slots[i].length > 0) {\n        return this._slots[i].head;\n      }\n    }\n    return;\n  }\n\n  get tail() {\n    for (let i = this._slots.length - 1; i >= 0; i--) {\n      if (this._slots[i].length > 0) {\n        return this._slots[i].tail;\n      }\n    }\n    return;\n  }\n}\n\nmodule.exports = PriorityQueue;\n", "\"use strict\";\n\nfunction noop() {}\n\n/**\n * Reflects a promise but does not expose any\n * underlying value or rejection from that promise.\n * @param  {Promise} promise [description]\n * @return {Promise}         [description]\n */\nexports.reflector = function(promise) {\n  return promise.then(noop, noop);\n};\n", "\"use strict\";\n\nconst EventEmitter = require(\"events\").EventEmitter;\n\nconst factoryValidator = require(\"./factoryValidator\");\nconst PoolOptions = require(\"./PoolOptions\");\nconst ResourceRequest = require(\"./ResourceRequest\");\nconst ResourceLoan = require(\"./ResourceLoan\");\nconst PooledResource = require(\"./PooledResource\");\nconst DefaultEvictor = require(\"./DefaultEvictor\");\nconst Deque = require(\"./Deque\");\nconst Deferred = require(\"./Deferred\");\nconst PriorityQueue = require(\"./PriorityQueue\");\nconst DequeIterator = require(\"./DequeIterator\");\n\nconst reflector = require(\"./utils\").reflector;\n\n/**\n * TODO: move me\n */\nconst FACTORY_CREATE_ERROR = \"factoryCreateError\";\nconst FACTORY_DESTROY_ERROR = \"factoryDestroyError\";\n\nclass Pool extends EventEmitter {\n  /**\n   * Generate an Object pool with a specified `factory` and `config`.\n   *\n   * @param {typeof DefaultEvictor} Evictor\n   * @param {typeof Deque} Deque\n   * @param {typeof PriorityQueue} PriorityQueue\n   * @param {Object} factory\n   *   Factory to be used for generating and destroying the items.\n   * @param {Function} factory.create\n   *   Should create the item to be acquired,\n   *   and call it's first callback argument with the generated item as it's argument.\n   * @param {Function} factory.destroy\n   *   Should gently close any resources that the item is using.\n   *   Called before the items is destroyed.\n   * @param {Function} factory.validate\n   *   Test if a resource is still valid .Should return a promise that resolves to a boolean, true if resource is still valid and false\n   *   If it should be removed from pool.\n   * @param {Object} options\n   */\n  constructor(Evictor, Deque, PriorityQueue, factory, options) {\n    super();\n\n    factoryValidator(factory);\n\n    this._config = new PoolOptions(options);\n\n    // TODO: fix up this ugly glue-ing\n    this._Promise = this._config.Promise;\n\n    this._factory = factory;\n    this._draining = false;\n    this._started = false;\n    /**\n     * Holds waiting clients\n     * @type {PriorityQueue}\n     */\n    this._waitingClientsQueue = new PriorityQueue(this._config.priorityRange);\n\n    /**\n     * Collection of promises for resource creation calls made by the pool to factory.create\n     * @type {Set}\n     */\n    this._factoryCreateOperations = new Set();\n\n    /**\n     * Collection of promises for resource destruction calls made by the pool to factory.destroy\n     * @type {Set}\n     */\n    this._factoryDestroyOperations = new Set();\n\n    /**\n     * A queue/stack of pooledResources awaiting acquisition\n     * TODO: replace with LinkedList backed array\n     * @type {Deque}\n     */\n    this._availableObjects = new Deque();\n\n    /**\n     * Collection of references for any resource that are undergoing validation before being acquired\n     * @type {Set}\n     */\n    this._testOnBorrowResources = new Set();\n\n    /**\n     * Collection of references for any resource that are undergoing validation before being returned\n     * @type {Set}\n     */\n    this._testOnReturnResources = new Set();\n\n    /**\n     * Collection of promises for any validations currently in process\n     * @type {Set}\n     */\n    this._validationOperations = new Set();\n\n    /**\n     * All objects associated with this pool in any state (except destroyed)\n     * @type {Set}\n     */\n    this._allObjects = new Set();\n\n    /**\n     * Loans keyed by the borrowed resource\n     * @type {Map}\n     */\n    this._resourceLoans = new Map();\n\n    /**\n     * Infinitely looping iterator over available object\n     * @type {DequeIterator}\n     */\n    this._evictionIterator = this._availableObjects.iterator();\n\n    this._evictor = new Evictor();\n\n    /**\n     * handle for setTimeout for next eviction run\n     * @type {(number|null)}\n     */\n    this._scheduledEviction = null;\n\n    // create initial resources (if factory.min > 0)\n    if (this._config.autostart === true) {\n      this.start();\n    }\n  }\n\n  _destroy(pooledResource) {\n    // FIXME: do we need another state for \"in destruction\"?\n    pooledResource.invalidate();\n    this._allObjects.delete(pooledResource);\n    // NOTE: this maybe very bad promise usage?\n    const destroyPromise = this._factory.destroy(pooledResource.obj);\n    const wrappedDestroyPromise = this._config.destroyTimeoutMillis\n      ? this._Promise.resolve(this._applyDestroyTimeout(destroyPromise))\n      : this._Promise.resolve(destroyPromise);\n\n    this._trackOperation(\n      wrappedDestroyPromise,\n      this._factoryDestroyOperations\n    ).catch(reason => {\n      this.emit(FACTORY_DESTROY_ERROR, reason);\n    });\n\n    // TODO: maybe ensuring minimum pool size should live outside here\n    this._ensureMinimum();\n  }\n\n  _applyDestroyTimeout(promise) {\n    const timeoutPromise = new this._Promise((resolve, reject) => {\n      setTimeout(() => {\n        reject(new Error(\"destroy timed out\"));\n      }, this._config.destroyTimeoutMillis).unref();\n    });\n    return this._Promise.race([timeoutPromise, promise]);\n  }\n\n  /**\n   * Attempt to move an available resource into test and then onto a waiting client\n   * @return {Boolean} could we move an available resource into test\n   */\n  _testOnBorrow() {\n    if (this._availableObjects.length < 1) {\n      return false;\n    }\n\n    const pooledResource = this._availableObjects.shift();\n    // Mark the resource as in test\n    pooledResource.test();\n    this._testOnBorrowResources.add(pooledResource);\n    const validationPromise = this._factory.validate(pooledResource.obj);\n    const wrappedValidationPromise = this._Promise.resolve(validationPromise);\n\n    this._trackOperation(\n      wrappedValidationPromise,\n      this._validationOperations\n    ).then(isValid => {\n      this._testOnBorrowResources.delete(pooledResource);\n\n      if (isValid === false) {\n        pooledResource.invalidate();\n        this._destroy(pooledResource);\n        this._dispense();\n        return;\n      }\n      this._dispatchPooledResourceToNextWaitingClient(pooledResource);\n    });\n\n    return true;\n  }\n\n  /**\n   * Attempt to move an available resource to a waiting client\n   * @return {Boolean} [description]\n   */\n  _dispatchResource() {\n    if (this._availableObjects.length < 1) {\n      return false;\n    }\n\n    const pooledResource = this._availableObjects.shift();\n    this._dispatchPooledResourceToNextWaitingClient(pooledResource);\n    return false;\n  }\n\n  /**\n   * Attempt to resolve an outstanding resource request using an available resource from\n   * the pool, or creating new ones\n   *\n   * @private\n   */\n  _dispense() {\n    /**\n     * Local variables for ease of reading/writing\n     * these don't (shouldn't) change across the execution of this fn\n     */\n    const numWaitingClients = this._waitingClientsQueue.length;\n\n    // If there aren't any waiting requests then there is nothing to do\n    // so lets short-circuit\n    if (numWaitingClients < 1) {\n      return;\n    }\n\n    const resourceShortfall =\n      numWaitingClients - this._potentiallyAllocableResourceCount;\n\n    const actualNumberOfResourcesToCreate = Math.min(\n      this.spareResourceCapacity,\n      resourceShortfall\n    );\n    for (let i = 0; actualNumberOfResourcesToCreate > i; i++) {\n      this._createResource();\n    }\n\n    // If we are doing test-on-borrow see how many more resources need to be moved into test\n    // to help satisfy waitingClients\n    if (this._config.testOnBorrow === true) {\n      // how many available resources do we need to shift into test\n      const desiredNumberOfResourcesToMoveIntoTest =\n        numWaitingClients - this._testOnBorrowResources.size;\n      const actualNumberOfResourcesToMoveIntoTest = Math.min(\n        this._availableObjects.length,\n        desiredNumberOfResourcesToMoveIntoTest\n      );\n      for (let i = 0; actualNumberOfResourcesToMoveIntoTest > i; i++) {\n        this._testOnBorrow();\n      }\n    }\n\n    // if we aren't testing-on-borrow then lets try to allocate what we can\n    if (this._config.testOnBorrow === false) {\n      const actualNumberOfResourcesToDispatch = Math.min(\n        this._availableObjects.length,\n        numWaitingClients\n      );\n      for (let i = 0; actualNumberOfResourcesToDispatch > i; i++) {\n        this._dispatchResource();\n      }\n    }\n  }\n\n  /**\n   * Dispatches a pooledResource to the next waiting client (if any) else\n   * puts the PooledResource back on the available list\n   * @param  {PooledResource} pooledResource [description]\n   * @return {Boolean}                [description]\n   */\n  _dispatchPooledResourceToNextWaitingClient(pooledResource) {\n    const clientResourceRequest = this._waitingClientsQueue.dequeue();\n    if (\n      clientResourceRequest === undefined ||\n      clientResourceRequest.state !== Deferred.PENDING\n    ) {\n      // While we were away either all the waiting clients timed out\n      // or were somehow fulfilled. put our pooledResource back.\n      this._addPooledResourceToAvailableObjects(pooledResource);\n      // TODO: do need to trigger anything before we leave?\n      return false;\n    }\n    const loan = new ResourceLoan(pooledResource, this._Promise);\n    this._resourceLoans.set(pooledResource.obj, loan);\n    pooledResource.allocate();\n    clientResourceRequest.resolve(pooledResource.obj);\n    return true;\n  }\n\n  /**\n   * tracks on operation using given set\n   * handles adding/removing from the set and resolve/rejects the value/reason\n   * @param  {Promise} operation\n   * @param  {Set} set       Set holding operations\n   * @return {Promise}       Promise that resolves once operation has been removed from set\n   */\n  _trackOperation(operation, set) {\n    set.add(operation);\n\n    return operation.then(\n      v => {\n        set.delete(operation);\n        return this._Promise.resolve(v);\n      },\n      e => {\n        set.delete(operation);\n        return this._Promise.reject(e);\n      }\n    );\n  }\n\n  /**\n   * @private\n   */\n  _createResource() {\n    // An attempt to create a resource\n    const factoryPromise = this._factory.create();\n    const wrappedFactoryPromise = this._Promise\n      .resolve(factoryPromise)\n      .then(resource => {\n        const pooledResource = new PooledResource(resource);\n        this._allObjects.add(pooledResource);\n        this._addPooledResourceToAvailableObjects(pooledResource);\n      });\n\n    this._trackOperation(wrappedFactoryPromise, this._factoryCreateOperations)\n      .then(() => {\n        this._dispense();\n        // Stop bluebird complaining about this side-effect only handler\n        // - a promise was created in a handler but was not returned from it\n        // https://goo.gl/rRqMUw\n        return null;\n      })\n      .catch(reason => {\n        this.emit(FACTORY_CREATE_ERROR, reason);\n        this._dispense();\n      });\n  }\n\n  /**\n   * @private\n   */\n  _ensureMinimum() {\n    if (this._draining === true) {\n      return;\n    }\n    const minShortfall = this._config.min - this._count;\n    for (let i = 0; i < minShortfall; i++) {\n      this._createResource();\n    }\n  }\n\n  _evict() {\n    const testsToRun = Math.min(\n      this._config.numTestsPerEvictionRun,\n      this._availableObjects.length\n    );\n    const evictionConfig = {\n      softIdleTimeoutMillis: this._config.softIdleTimeoutMillis,\n      idleTimeoutMillis: this._config.idleTimeoutMillis,\n      min: this._config.min\n    };\n    for (let testsHaveRun = 0; testsHaveRun < testsToRun; ) {\n      const iterationResult = this._evictionIterator.next();\n\n      // Safety check incase we could get stuck in infinite loop because we\n      // somehow emptied the array after checking its length.\n      if (iterationResult.done === true && this._availableObjects.length < 1) {\n        this._evictionIterator.reset();\n        return;\n      }\n      // If this happens it should just mean we reached the end of the\n      // list and can reset the cursor.\n      if (iterationResult.done === true && this._availableObjects.length > 0) {\n        this._evictionIterator.reset();\n        continue;\n      }\n\n      const resource = iterationResult.value;\n\n      const shouldEvict = this._evictor.evict(\n        evictionConfig,\n        resource,\n        this._availableObjects.length\n      );\n      testsHaveRun++;\n\n      if (shouldEvict === true) {\n        // take it out of the _availableObjects list\n        this._evictionIterator.remove();\n        this._destroy(resource);\n      }\n    }\n  }\n\n  _scheduleEvictorRun() {\n    // Start eviction if set\n    if (this._config.evictionRunIntervalMillis > 0) {\n      // @ts-ignore\n      this._scheduledEviction = setTimeout(() => {\n        this._evict();\n        this._scheduleEvictorRun();\n      }, this._config.evictionRunIntervalMillis).unref();\n    }\n  }\n\n  _descheduleEvictorRun() {\n    if (this._scheduledEviction) {\n      clearTimeout(this._scheduledEviction);\n    }\n    this._scheduledEviction = null;\n  }\n\n  start() {\n    if (this._draining === true) {\n      return;\n    }\n    if (this._started === true) {\n      return;\n    }\n    this._started = true;\n    this._scheduleEvictorRun();\n    this._ensureMinimum();\n  }\n\n  /**\n   * Request a new resource. The callback will be called,\n   * when a new resource is available, passing the resource to the callback.\n   * TODO: should we add a seperate \"acquireWithPriority\" function\n   *\n   * @param {Number} [priority=0]\n   *   Optional.  Integer between 0 and (priorityRange - 1).  Specifies the priority\n   *   of the caller if there are no available resources.  Lower numbers mean higher\n   *   priority.\n   *\n   * @returns {Promise}\n   */\n  acquire(priority) {\n    if (this._started === false && this._config.autostart === false) {\n      this.start();\n    }\n\n    if (this._draining) {\n      return this._Promise.reject(\n        new Error(\"pool is draining and cannot accept work\")\n      );\n    }\n\n    // TODO: should we defer this check till after this event loop incase \"the situation\" changes in the meantime\n    if (\n      this.spareResourceCapacity < 1 &&\n      this._availableObjects.length < 1 &&\n      this._config.maxWaitingClients !== undefined &&\n      this._waitingClientsQueue.length >= this._config.maxWaitingClients\n    ) {\n      return this._Promise.reject(\n        new Error(\"max waitingClients count exceeded\")\n      );\n    }\n\n    const resourceRequest = new ResourceRequest(\n      this._config.acquireTimeoutMillis,\n      this._Promise\n    );\n    this._waitingClientsQueue.enqueue(resourceRequest, priority);\n    this._dispense();\n\n    return resourceRequest.promise;\n  }\n\n  /**\n   * [use method, aquires a resource, passes the resource to a user supplied function and releases it]\n   * @param  {Function} fn [a function that accepts a resource and returns a promise that resolves/rejects once it has finished using the resource]\n   * @return {Promise}      [resolves once the resource is released to the pool]\n   */\n  use(fn, priority) {\n    return this.acquire(priority).then(resource => {\n      return fn(resource).then(\n        result => {\n          this.release(resource);\n          return result;\n        },\n        err => {\n          this.destroy(resource);\n          throw err;\n        }\n      );\n    });\n  }\n\n  /**\n   * Check if resource is currently on loan from the pool\n   *\n   * @param {Function} resource\n   *    Resource for checking.\n   *\n   * @returns {Boolean}\n   *  True if resource belongs to this pool and false otherwise\n   */\n  isBorrowedResource(resource) {\n    return this._resourceLoans.has(resource);\n  }\n\n  /**\n   * Return the resource to the pool when it is no longer required.\n   *\n   * @param {Object} resource\n   *   The acquired object to be put back to the pool.\n   */\n  release(resource) {\n    // check for an outstanding loan\n    const loan = this._resourceLoans.get(resource);\n\n    if (loan === undefined) {\n      return this._Promise.reject(\n        new Error(\"Resource not currently part of this pool\")\n      );\n    }\n\n    this._resourceLoans.delete(resource);\n    loan.resolve();\n    const pooledResource = loan.pooledResource;\n\n    pooledResource.deallocate();\n    this._addPooledResourceToAvailableObjects(pooledResource);\n\n    this._dispense();\n    return this._Promise.resolve();\n  }\n\n  /**\n   * Request the resource to be destroyed. The factory's destroy handler\n   * will also be called.\n   *\n   * This should be called within an acquire() block as an alternative to release().\n   *\n   * @param {Object} resource\n   *   The acquired resource to be destoyed.\n   */\n  destroy(resource) {\n    // check for an outstanding loan\n    const loan = this._resourceLoans.get(resource);\n\n    if (loan === undefined) {\n      return this._Promise.reject(\n        new Error(\"Resource not currently part of this pool\")\n      );\n    }\n\n    this._resourceLoans.delete(resource);\n    loan.resolve();\n    const pooledResource = loan.pooledResource;\n\n    pooledResource.deallocate();\n    this._destroy(pooledResource);\n\n    this._dispense();\n    return this._Promise.resolve();\n  }\n\n  _addPooledResourceToAvailableObjects(pooledResource) {\n    pooledResource.idle();\n    if (this._config.fifo === true) {\n      this._availableObjects.push(pooledResource);\n    } else {\n      this._availableObjects.unshift(pooledResource);\n    }\n  }\n\n  /**\n   * Disallow any new acquire calls and let the request backlog dissapate.\n   * The Pool will no longer attempt to maintain a \"min\" number of resources\n   * and will only make new resources on demand.\n   * Resolves once all resource requests are fulfilled and all resources are returned to pool and available...\n   * Should probably be called \"drain work\"\n   * @returns {Promise}\n   */\n  drain() {\n    this._draining = true;\n    return this.__allResourceRequestsSettled()\n      .then(() => {\n        return this.__allResourcesReturned();\n      })\n      .then(() => {\n        this._descheduleEvictorRun();\n      });\n  }\n\n  __allResourceRequestsSettled() {\n    if (this._waitingClientsQueue.length > 0) {\n      // wait for last waiting client to be settled\n      // FIXME: what if they can \"resolve\" out of order....?\n      return reflector(this._waitingClientsQueue.tail.promise);\n    }\n    return this._Promise.resolve();\n  }\n\n  // FIXME: this is a horrific mess\n  __allResourcesReturned() {\n    const ps = Array.from(this._resourceLoans.values())\n      .map(loan => loan.promise)\n      .map(reflector);\n    return this._Promise.all(ps);\n  }\n\n  /**\n   * Forcibly destroys all available resources regardless of timeout.  Intended to be\n   * invoked as part of a drain.  Does not prevent the creation of new\n   * resources as a result of subsequent calls to acquire.\n   *\n   * Note that if factory.min > 0 and the pool isn't \"draining\", the pool will destroy all idle resources\n   * in the pool, but replace them with newly created resources up to the\n   * specified factory.min value.  If this is not desired, set factory.min\n   * to zero before calling clear()\n   *\n   */\n  clear() {\n    const reflectedCreatePromises = Array.from(\n      this._factoryCreateOperations\n    ).map(reflector);\n\n    // wait for outstanding factory.create to complete\n    return this._Promise.all(reflectedCreatePromises).then(() => {\n      // Destroy existing resources\n      // @ts-ignore\n      for (const resource of this._availableObjects) {\n        this._destroy(resource);\n      }\n      const reflectedDestroyPromises = Array.from(\n        this._factoryDestroyOperations\n      ).map(reflector);\n      return reflector(this._Promise.all(reflectedDestroyPromises));\n    });\n  }\n\n  /**\n   * Waits until the pool is ready.\n   * We define ready by checking if the current resource number is at least\n   * the minimum number defined.\n   * @returns {Promise} that resolves when the minimum number is ready.\n   */\n  ready() {\n    return new this._Promise(resolve => {\n      const isReady = () => {\n        if (this.available >= this.min) {\n          resolve();\n        } else {\n          setTimeout(isReady, 100);\n        }\n      };\n\n      isReady();\n    });\n  }\n\n  /**\n   * How many resources are available to allocated\n   * (includes resources that have not been tested and may faul validation)\n   * NOTE: internal for now as the name is awful and might not be useful to anyone\n   * @return {Number} number of resources the pool has to allocate\n   */\n  get _potentiallyAllocableResourceCount() {\n    return (\n      this._availableObjects.length +\n      this._testOnBorrowResources.size +\n      this._testOnReturnResources.size +\n      this._factoryCreateOperations.size\n    );\n  }\n\n  /**\n   * The combined count of the currently created objects and those in the\n   * process of being created\n   * Does NOT include resources in the process of being destroyed\n   * sort of legacy...\n   * @return {Number}\n   */\n  get _count() {\n    return this._allObjects.size + this._factoryCreateOperations.size;\n  }\n\n  /**\n   * How many more resources does the pool have room for\n   * @return {Number} number of resources the pool could create before hitting any limits\n   */\n  get spareResourceCapacity() {\n    return (\n      this._config.max -\n      (this._allObjects.size + this._factoryCreateOperations.size)\n    );\n  }\n\n  /**\n   * see _count above\n   * @return {Number} [description]\n   */\n  get size() {\n    return this._count;\n  }\n\n  /**\n   * number of available resources\n   * @return {Number} [description]\n   */\n  get available() {\n    return this._availableObjects.length;\n  }\n\n  /**\n   * number of resources that are currently acquired\n   * @return {Number} [description]\n   */\n  get borrowed() {\n    return this._resourceLoans.size;\n  }\n\n  /**\n   * number of waiting acquire calls\n   * @return {Number} [description]\n   */\n  get pending() {\n    return this._waitingClientsQueue.length;\n  }\n\n  /**\n   * maximum size of the pool\n   * @return {Number} [description]\n   */\n  get max() {\n    return this._config.max;\n  }\n\n  /**\n   * minimum size of the pool\n   * @return {Number} [description]\n   */\n  get min() {\n    return this._config.min;\n  }\n}\n\nmodule.exports = Pool;\n", "const Pool = require(\"./lib/Pool\");\nconst Deque = require(\"./lib/Deque\");\nconst PriorityQueue = require(\"./lib/PriorityQueue\");\nconst DefaultEvictor = require(\"./lib/DefaultEvictor\");\nmodule.exports = {\n  Pool: Pool,\n  Deque: Deque,\n  PriorityQueue: PriorityQueue,\n  DefaultEvictor: DefaultEvictor,\n  createPool: function(factory, config) {\n    return new Pool(DefaultEvictor, Deque, PriorityQueue, factory, config);\n  }\n};\n", "{\n    \"name\": \"@redis/client\",\n    \"version\": \"1.5.17\",\n    \"license\": \"MIT\",\n    \"main\": \"./dist/index.js\",\n    \"types\": \"./dist/index.d.ts\",\n    \"files\": [\n        \"dist/\"\n    ],\n    \"scripts\": {\n        \"test\": \"nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'\",\n        \"build\": \"tsc\",\n        \"lint\": \"eslint ./*.ts ./lib/**/*.ts\",\n        \"documentation\": \"typedoc\"\n    },\n    \"dependencies\": {\n        \"cluster-key-slot\": \"1.1.2\",\n        \"generic-pool\": \"3.9.0\",\n        \"yallist\": \"4.0.0\"\n    },\n    \"devDependencies\": {\n        \"@istanbuljs/nyc-config-typescript\": \"^1.0.2\",\n        \"@redis/test-utils\": \"*\",\n        \"@types/node\": \"^20.6.2\",\n        \"@types/sinon\": \"^10.0.16\",\n        \"@types/yallist\": \"^4.0.1\",\n        \"@typescript-eslint/eslint-plugin\": \"^6.7.2\",\n        \"@typescript-eslint/parser\": \"^6.7.2\",\n        \"eslint\": \"^8.49.0\",\n        \"nyc\": \"^15.1.0\",\n        \"release-it\": \"^16.1.5\",\n        \"sinon\": \"^16.0.0\",\n        \"source-map-support\": \"^0.5.21\",\n        \"ts-node\": \"^10.9.1\",\n        \"typedoc\": \"^0.25.1\",\n        \"typescript\": \"^5.2.2\"\n    },\n    \"engines\": {\n        \"node\": \">=14\"\n    },\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/redis/node-redis.git\"\n    },\n    \"bugs\": {\n        \"url\": \"https://github.com/redis/node-redis/issues\"\n    },\n    \"homepage\": \"https://github.com/redis/node-redis/tree/master/packages/client\",\n    \"keywords\": [\n        \"redis\"\n    ]\n}\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _RedisClient_instances, _a, _RedisClient_options, _RedisClient_socket, _RedisClient_queue, _RedisClient_isolationPool, _RedisClient_v4, _RedisClient_selectedDB, _RedisClient_initiateOptions, _RedisClient_initiateQueue, _RedisClient_initiateSocket, _RedisClient_initiateIsolationPool, _RedisClient_legacyMode, _RedisClient_legacySendCommand, _RedisClient_defineLegacyCommand, _RedisClient_pingTimer, _RedisClient_setPingTimer, _RedisClient_sendCommand, _RedisClient_pubSubCommand, _RedisClient_tick, _RedisClient_addMultiCommands, _RedisClient_destroyIsolationPool;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst commands_1 = require(\"./commands\");\nconst socket_1 = require(\"./socket\");\nconst commands_queue_1 = require(\"./commands-queue\");\nconst multi_command_1 = require(\"./multi-command\");\nconst events_1 = require(\"events\");\nconst command_options_1 = require(\"../command-options\");\nconst commander_1 = require(\"../commander\");\nconst generic_pool_1 = require(\"generic-pool\");\nconst errors_1 = require(\"../errors\");\nconst url_1 = require(\"url\");\nconst pub_sub_1 = require(\"./pub-sub\");\nconst package_json_1 = require(\"../../package.json\");\nclass RedisClient extends events_1.EventEmitter {\n    static commandOptions(options) {\n        return (0, command_options_1.commandOptions)(options);\n    }\n    static extend(extensions) {\n        const Client = (0, commander_1.attachExtensions)({\n            BaseClass: _a,\n            modulesExecutor: _a.prototype.commandsExecutor,\n            modules: extensions?.modules,\n            functionsExecutor: _a.prototype.functionsExecuter,\n            functions: extensions?.functions,\n            scriptsExecutor: _a.prototype.scriptsExecuter,\n            scripts: extensions?.scripts\n        });\n        if (Client !== _a) {\n            Client.prototype.Multi = multi_command_1.default.extend(extensions);\n        }\n        return Client;\n    }\n    static create(options) {\n        return new (_a.extend(options))(options);\n    }\n    static parseURL(url) {\n        // https://www.iana.org/assignments/uri-schemes/prov/redis\n        const { hostname, port, protocol, username, password, pathname } = new url_1.URL(url), parsed = {\n            socket: {\n                host: hostname\n            }\n        };\n        if (protocol === 'rediss:') {\n            parsed.socket.tls = true;\n        }\n        else if (protocol !== 'redis:') {\n            throw new TypeError('Invalid protocol');\n        }\n        if (port) {\n            parsed.socket.port = Number(port);\n        }\n        if (username) {\n            parsed.username = decodeURIComponent(username);\n        }\n        if (password) {\n            parsed.password = decodeURIComponent(password);\n        }\n        if (pathname.length > 1) {\n            const database = Number(pathname.substring(1));\n            if (isNaN(database)) {\n                throw new TypeError('Invalid pathname');\n            }\n            parsed.database = database;\n        }\n        return parsed;\n    }\n    get options() {\n        return __classPrivateFieldGet(this, _RedisClient_options, \"f\");\n    }\n    get isOpen() {\n        return __classPrivateFieldGet(this, _RedisClient_socket, \"f\").isOpen;\n    }\n    get isReady() {\n        return __classPrivateFieldGet(this, _RedisClient_socket, \"f\").isReady;\n    }\n    get isPubSubActive() {\n        return __classPrivateFieldGet(this, _RedisClient_queue, \"f\").isPubSubActive;\n    }\n    get v4() {\n        if (!__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.legacyMode) {\n            throw new Error('the client is not in \"legacy mode\"');\n        }\n        return __classPrivateFieldGet(this, _RedisClient_v4, \"f\");\n    }\n    constructor(options) {\n        super();\n        _RedisClient_instances.add(this);\n        Object.defineProperty(this, \"commandOptions\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _a.commandOptions\n        });\n        _RedisClient_options.set(this, void 0);\n        _RedisClient_socket.set(this, void 0);\n        _RedisClient_queue.set(this, void 0);\n        _RedisClient_isolationPool.set(this, void 0);\n        _RedisClient_v4.set(this, {});\n        _RedisClient_selectedDB.set(this, 0);\n        _RedisClient_pingTimer.set(this, void 0);\n        Object.defineProperty(this, \"select\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SELECT\n        });\n        Object.defineProperty(this, \"subscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SUBSCRIBE\n        });\n        Object.defineProperty(this, \"unsubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.UNSUBSCRIBE\n        });\n        Object.defineProperty(this, \"pSubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.PSUBSCRIBE\n        });\n        Object.defineProperty(this, \"pUnsubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.PUNSUBSCRIBE\n        });\n        Object.defineProperty(this, \"sSubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SSUBSCRIBE\n        });\n        Object.defineProperty(this, \"sUnsubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SUNSUBSCRIBE\n        });\n        Object.defineProperty(this, \"quit\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.QUIT\n        });\n        Object.defineProperty(this, \"multi\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.MULTI\n        });\n        __classPrivateFieldSet(this, _RedisClient_options, __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_initiateOptions).call(this, options), \"f\");\n        __classPrivateFieldSet(this, _RedisClient_queue, __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_initiateQueue).call(this), \"f\");\n        __classPrivateFieldSet(this, _RedisClient_socket, __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_initiateSocket).call(this), \"f\");\n        // should be initiated in connect, not here\n        // TODO: consider breaking in v5\n        __classPrivateFieldSet(this, _RedisClient_isolationPool, __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_initiateIsolationPool).call(this), \"f\");\n        __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_legacyMode).call(this);\n    }\n    duplicate(overrides) {\n        return new (Object.getPrototypeOf(this).constructor)({\n            ...__classPrivateFieldGet(this, _RedisClient_options, \"f\"),\n            ...overrides\n        });\n    }\n    async connect() {\n        // see comment in constructor\n        __classPrivateFieldSet(this, _RedisClient_isolationPool, __classPrivateFieldGet(this, _RedisClient_isolationPool, \"f\") ?? __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_initiateIsolationPool).call(this), \"f\");\n        await __classPrivateFieldGet(this, _RedisClient_socket, \"f\").connect();\n        return this;\n    }\n    async commandsExecutor(command, args) {\n        const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(command, args);\n        return (0, commander_1.transformCommandReply)(command, await __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, redisArgs, options), redisArgs.preserve);\n    }\n    sendCommand(args, options) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, args, options);\n    }\n    async functionsExecuter(fn, args, name) {\n        const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(fn, args);\n        return (0, commander_1.transformCommandReply)(fn, await this.executeFunction(name, fn, redisArgs, options), redisArgs.preserve);\n    }\n    executeFunction(name, fn, args, options) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, (0, commander_1.fCallArguments)(name, fn, args), options);\n    }\n    async scriptsExecuter(script, args) {\n        const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(script, args);\n        return (0, commander_1.transformCommandReply)(script, await this.executeScript(script, redisArgs, options), redisArgs.preserve);\n    }\n    async executeScript(script, args, options) {\n        const redisArgs = ['EVALSHA', script.SHA1];\n        if (script.NUMBER_OF_KEYS !== undefined) {\n            redisArgs.push(script.NUMBER_OF_KEYS.toString());\n        }\n        redisArgs.push(...args);\n        try {\n            return await __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, redisArgs, options);\n        }\n        catch (err) {\n            if (!err?.message?.startsWith?.('NOSCRIPT')) {\n                throw err;\n            }\n            redisArgs[0] = 'EVAL';\n            redisArgs[1] = script.SCRIPT;\n            return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, redisArgs, options);\n        }\n    }\n    async SELECT(options, db) {\n        if (!(0, command_options_1.isCommandOptions)(options)) {\n            db = options;\n            options = null;\n        }\n        await __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, ['SELECT', db.toString()], options);\n        __classPrivateFieldSet(this, _RedisClient_selectedDB, db, \"f\");\n    }\n    SUBSCRIBE(channels, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").subscribe(pub_sub_1.PubSubType.CHANNELS, channels, listener, bufferMode));\n    }\n    UNSUBSCRIBE(channels, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").unsubscribe(pub_sub_1.PubSubType.CHANNELS, channels, listener, bufferMode));\n    }\n    PSUBSCRIBE(patterns, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").subscribe(pub_sub_1.PubSubType.PATTERNS, patterns, listener, bufferMode));\n    }\n    PUNSUBSCRIBE(patterns, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").unsubscribe(pub_sub_1.PubSubType.PATTERNS, patterns, listener, bufferMode));\n    }\n    SSUBSCRIBE(channels, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").subscribe(pub_sub_1.PubSubType.SHARDED, channels, listener, bufferMode));\n    }\n    SUNSUBSCRIBE(channels, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").unsubscribe(pub_sub_1.PubSubType.SHARDED, channels, listener, bufferMode));\n    }\n    getPubSubListeners(type) {\n        return __classPrivateFieldGet(this, _RedisClient_queue, \"f\").getPubSubListeners(type);\n    }\n    extendPubSubChannelListeners(type, channel, listeners) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").extendPubSubChannelListeners(type, channel, listeners));\n    }\n    extendPubSubListeners(type, listeners) {\n        return __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, \"f\").extendPubSubListeners(type, listeners));\n    }\n    QUIT() {\n        return __classPrivateFieldGet(this, _RedisClient_socket, \"f\").quit(async () => {\n            if (__classPrivateFieldGet(this, _RedisClient_pingTimer, \"f\"))\n                clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, \"f\"));\n            const quitPromise = __classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(['QUIT']);\n            __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this);\n            const [reply] = await Promise.all([\n                quitPromise,\n                __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_destroyIsolationPool).call(this)\n            ]);\n            return reply;\n        });\n    }\n    executeIsolated(fn) {\n        if (!__classPrivateFieldGet(this, _RedisClient_isolationPool, \"f\"))\n            return Promise.reject(new errors_1.ClientClosedError());\n        return __classPrivateFieldGet(this, _RedisClient_isolationPool, \"f\").use(fn);\n    }\n    MULTI() {\n        return new this.Multi(this.multiExecutor.bind(this), __classPrivateFieldGet(this, _RedisClient_options, \"f\")?.legacyMode);\n    }\n    async multiExecutor(commands, selectedDB, chainId) {\n        if (!__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isOpen) {\n            return Promise.reject(new errors_1.ClientClosedError());\n        }\n        const promise = chainId ?\n            // if `chainId` has a value, it's a `MULTI` (and not \"pipeline\") - need to add the `MULTI` and `EXEC` commands\n            Promise.all([\n                __classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(['MULTI'], { chainId }),\n                __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_addMultiCommands).call(this, commands, chainId),\n                __classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(['EXEC'], { chainId })\n            ]) :\n            __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_addMultiCommands).call(this, commands);\n        __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this);\n        const results = await promise;\n        if (selectedDB !== undefined) {\n            __classPrivateFieldSet(this, _RedisClient_selectedDB, selectedDB, \"f\");\n        }\n        return results;\n    }\n    async *scanIterator(options) {\n        let cursor = 0;\n        do {\n            const reply = await this.scan(cursor, options);\n            cursor = reply.cursor;\n            for (const key of reply.keys) {\n                yield key;\n            }\n        } while (cursor !== 0);\n    }\n    async *hScanIterator(key, options) {\n        let cursor = 0;\n        do {\n            const reply = await this.hScan(key, cursor, options);\n            cursor = reply.cursor;\n            for (const tuple of reply.tuples) {\n                yield tuple;\n            }\n        } while (cursor !== 0);\n    }\n    async *hScanNoValuesIterator(key, options) {\n        let cursor = 0;\n        do {\n            const reply = await this.hScanNoValues(key, cursor, options);\n            cursor = reply.cursor;\n            for (const k of reply.keys) {\n                yield k;\n            }\n        } while (cursor !== 0);\n    }\n    async *sScanIterator(key, options) {\n        let cursor = 0;\n        do {\n            const reply = await this.sScan(key, cursor, options);\n            cursor = reply.cursor;\n            for (const member of reply.members) {\n                yield member;\n            }\n        } while (cursor !== 0);\n    }\n    async *zScanIterator(key, options) {\n        let cursor = 0;\n        do {\n            const reply = await this.zScan(key, cursor, options);\n            cursor = reply.cursor;\n            for (const member of reply.members) {\n                yield member;\n            }\n        } while (cursor !== 0);\n    }\n    async disconnect() {\n        if (__classPrivateFieldGet(this, _RedisClient_pingTimer, \"f\"))\n            clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, \"f\"));\n        __classPrivateFieldGet(this, _RedisClient_queue, \"f\").flushAll(new errors_1.DisconnectsClientError());\n        __classPrivateFieldGet(this, _RedisClient_socket, \"f\").disconnect();\n        await __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_destroyIsolationPool).call(this);\n    }\n    ref() {\n        __classPrivateFieldGet(this, _RedisClient_socket, \"f\").ref();\n    }\n    unref() {\n        __classPrivateFieldGet(this, _RedisClient_socket, \"f\").unref();\n    }\n}\n_a = RedisClient, _RedisClient_options = new WeakMap(), _RedisClient_socket = new WeakMap(), _RedisClient_queue = new WeakMap(), _RedisClient_isolationPool = new WeakMap(), _RedisClient_v4 = new WeakMap(), _RedisClient_selectedDB = new WeakMap(), _RedisClient_pingTimer = new WeakMap(), _RedisClient_instances = new WeakSet(), _RedisClient_initiateOptions = function _RedisClient_initiateOptions(options) {\n    if (options?.url) {\n        const parsed = _a.parseURL(options.url);\n        if (options.socket) {\n            parsed.socket = Object.assign(options.socket, parsed.socket);\n        }\n        Object.assign(options, parsed);\n    }\n    if (options?.database) {\n        __classPrivateFieldSet(this, _RedisClient_selectedDB, options.database, \"f\");\n    }\n    return options;\n}, _RedisClient_initiateQueue = function _RedisClient_initiateQueue() {\n    return new commands_queue_1.default(__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.commandsQueueMaxLength, (channel, listeners) => this.emit('sharded-channel-moved', channel, listeners));\n}, _RedisClient_initiateSocket = function _RedisClient_initiateSocket() {\n    const socketInitiator = async () => {\n        const promises = [];\n        if (__classPrivateFieldGet(this, _RedisClient_selectedDB, \"f\") !== 0) {\n            promises.push(__classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(['SELECT', __classPrivateFieldGet(this, _RedisClient_selectedDB, \"f\").toString()], { asap: true }));\n        }\n        if (__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.readonly) {\n            promises.push(__classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(commands_1.default.READONLY.transformArguments(), { asap: true }));\n        }\n        if (!__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.disableClientInfo) {\n            promises.push(__classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(['CLIENT', 'SETINFO', 'LIB-VER', package_json_1.version], { asap: true }).catch(err => {\n                if (!(err instanceof errors_1.ErrorReply)) {\n                    throw err;\n                }\n            }));\n            promises.push(__classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand([\n                'CLIENT', 'SETINFO', 'LIB-NAME',\n                __classPrivateFieldGet(this, _RedisClient_options, \"f\")?.clientInfoTag ? `node-redis(${__classPrivateFieldGet(this, _RedisClient_options, \"f\").clientInfoTag})` : 'node-redis'\n            ], { asap: true }).catch(err => {\n                if (!(err instanceof errors_1.ErrorReply)) {\n                    throw err;\n                }\n            }));\n        }\n        if (__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.name) {\n            promises.push(__classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(commands_1.default.CLIENT_SETNAME.transformArguments(__classPrivateFieldGet(this, _RedisClient_options, \"f\").name), { asap: true }));\n        }\n        if (__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.username || __classPrivateFieldGet(this, _RedisClient_options, \"f\")?.password) {\n            promises.push(__classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(commands_1.default.AUTH.transformArguments({\n                username: __classPrivateFieldGet(this, _RedisClient_options, \"f\").username,\n                password: __classPrivateFieldGet(this, _RedisClient_options, \"f\").password ?? ''\n            }), { asap: true }));\n        }\n        const resubscribePromise = __classPrivateFieldGet(this, _RedisClient_queue, \"f\").resubscribe();\n        if (resubscribePromise) {\n            promises.push(resubscribePromise);\n        }\n        if (promises.length) {\n            __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this, true);\n            await Promise.all(promises);\n        }\n    };\n    return new socket_1.default(socketInitiator, __classPrivateFieldGet(this, _RedisClient_options, \"f\")?.socket)\n        .on('data', chunk => __classPrivateFieldGet(this, _RedisClient_queue, \"f\").onReplyChunk(chunk))\n        .on('error', err => {\n        this.emit('error', err);\n        if (__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isOpen && !__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.disableOfflineQueue) {\n            __classPrivateFieldGet(this, _RedisClient_queue, \"f\").flushWaitingForReply(err);\n        }\n        else {\n            __classPrivateFieldGet(this, _RedisClient_queue, \"f\").flushAll(err);\n        }\n    })\n        .on('connect', () => {\n        this.emit('connect');\n    })\n        .on('ready', () => {\n        this.emit('ready');\n        __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_setPingTimer).call(this);\n        __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this);\n    })\n        .on('reconnecting', () => this.emit('reconnecting'))\n        .on('drain', () => __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this))\n        .on('end', () => this.emit('end'));\n}, _RedisClient_initiateIsolationPool = function _RedisClient_initiateIsolationPool() {\n    return (0, generic_pool_1.createPool)({\n        create: async () => {\n            const duplicate = this.duplicate({\n                isolationPoolOptions: undefined\n            }).on('error', err => this.emit('error', err));\n            await duplicate.connect();\n            return duplicate;\n        },\n        destroy: client => client.disconnect()\n    }, __classPrivateFieldGet(this, _RedisClient_options, \"f\")?.isolationPoolOptions);\n}, _RedisClient_legacyMode = function _RedisClient_legacyMode() {\n    var _b, _c;\n    if (!__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.legacyMode)\n        return;\n    __classPrivateFieldGet(this, _RedisClient_v4, \"f\").sendCommand = __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).bind(this);\n    this.sendCommand = (...args) => {\n        const result = __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_legacySendCommand).call(this, ...args);\n        if (result) {\n            result.promise\n                .then(reply => result.callback(null, reply))\n                .catch(err => result.callback(err));\n        }\n    };\n    for (const [name, command] of Object.entries(commands_1.default)) {\n        __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, name, command);\n        (_b = this)[_c = name.toLowerCase()] ?? (_b[_c] = this[name]);\n    }\n    // hard coded commands\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'SELECT');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'select');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'SUBSCRIBE');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'subscribe');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'PSUBSCRIBE');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'pSubscribe');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'UNSUBSCRIBE');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'unsubscribe');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'PUNSUBSCRIBE');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'pUnsubscribe');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'QUIT');\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_defineLegacyCommand).call(this, 'quit');\n}, _RedisClient_legacySendCommand = function _RedisClient_legacySendCommand(...args) {\n    const callback = typeof args[args.length - 1] === 'function' ?\n        args.pop() :\n        undefined;\n    const promise = __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, (0, commander_1.transformLegacyCommandArguments)(args));\n    if (callback)\n        return {\n            promise,\n            callback\n        };\n    promise.catch(err => this.emit('error', err));\n}, _RedisClient_defineLegacyCommand = function _RedisClient_defineLegacyCommand(name, command) {\n    __classPrivateFieldGet(this, _RedisClient_v4, \"f\")[name] = this[name].bind(this);\n    this[name] = command && command.TRANSFORM_LEGACY_REPLY && command.transformReply ?\n        (...args) => {\n            const result = __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_legacySendCommand).call(this, name, ...args);\n            if (result) {\n                result.promise\n                    .then(reply => result.callback(null, command.transformReply(reply)))\n                    .catch(err => result.callback(err));\n            }\n        } :\n        (...args) => this.sendCommand(name, ...args);\n}, _RedisClient_setPingTimer = function _RedisClient_setPingTimer() {\n    if (!__classPrivateFieldGet(this, _RedisClient_options, \"f\")?.pingInterval || !__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isReady)\n        return;\n    clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, \"f\"));\n    __classPrivateFieldSet(this, _RedisClient_pingTimer, setTimeout(() => {\n        if (!__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isReady)\n            return;\n        // using #sendCommand to support legacy mode\n        __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_sendCommand).call(this, ['PING'])\n            .then(reply => this.emit('ping-interval', reply))\n            .catch(err => this.emit('error', err))\n            .finally(() => __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_setPingTimer).call(this));\n    }, __classPrivateFieldGet(this, _RedisClient_options, \"f\").pingInterval), \"f\");\n}, _RedisClient_sendCommand = function _RedisClient_sendCommand(args, options) {\n    if (!__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isOpen) {\n        return Promise.reject(new errors_1.ClientClosedError());\n    }\n    else if (options?.isolated) {\n        return this.executeIsolated(isolatedClient => isolatedClient.sendCommand(args, {\n            ...options,\n            isolated: false\n        }));\n    }\n    else if (!__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isReady && __classPrivateFieldGet(this, _RedisClient_options, \"f\")?.disableOfflineQueue) {\n        return Promise.reject(new errors_1.ClientOfflineError());\n    }\n    const promise = __classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(args, options);\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this);\n    return promise;\n}, _RedisClient_pubSubCommand = function _RedisClient_pubSubCommand(promise) {\n    if (promise === undefined)\n        return Promise.resolve();\n    __classPrivateFieldGet(this, _RedisClient_instances, \"m\", _RedisClient_tick).call(this);\n    return promise;\n}, _RedisClient_tick = function _RedisClient_tick(force = false) {\n    if (__classPrivateFieldGet(this, _RedisClient_socket, \"f\").writableNeedDrain || (!force && !__classPrivateFieldGet(this, _RedisClient_socket, \"f\").isReady)) {\n        return;\n    }\n    __classPrivateFieldGet(this, _RedisClient_socket, \"f\").cork();\n    while (!__classPrivateFieldGet(this, _RedisClient_socket, \"f\").writableNeedDrain) {\n        const args = __classPrivateFieldGet(this, _RedisClient_queue, \"f\").getCommandToSend();\n        if (args === undefined)\n            break;\n        __classPrivateFieldGet(this, _RedisClient_socket, \"f\").writeCommand(args);\n    }\n}, _RedisClient_addMultiCommands = function _RedisClient_addMultiCommands(commands, chainId) {\n    return Promise.all(commands.map(({ args }) => __classPrivateFieldGet(this, _RedisClient_queue, \"f\").addCommand(args, { chainId })));\n}, _RedisClient_destroyIsolationPool = async function _RedisClient_destroyIsolationPool() {\n    await __classPrivateFieldGet(this, _RedisClient_isolationPool, \"f\").drain();\n    await __classPrivateFieldGet(this, _RedisClient_isolationPool, \"f\").clear();\n    __classPrivateFieldSet(this, _RedisClient_isolationPool, undefined, \"f\");\n};\nexports.default = RedisClient;\n(0, commander_1.attachCommands)({\n    BaseClass: RedisClient,\n    commands: commands_1.default,\n    executor: RedisClient.prototype.commandsExecutor\n});\nRedisClient.prototype.Multi = multi_command_1.default;\n", "/*\n * Copyright 2001-2010 Georges Menie (www.menie.org)\n * Copyright 2010 Salvatore Sanfilippo (adapted to Redis coding style)\n * Copyright 2015 Zihua Li (http://zihua.li) (ported to JavaScript)\n * Copyright 2016 Mike Diarmid (http://github.com/salakar) (re-write for performance, ~700% perf inc)\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n *     * Redistributions of source code must retain the above copyright\n *       notice, this list of conditions and the following disclaimer.\n *     * Redistributions in binary form must reproduce the above copyright\n *       notice, this list of conditions and the following disclaimer in the\n *       documentation and/or other materials provided with the distribution.\n *     * Neither the name of the University of California, Berkeley nor the\n *       names of its contributors may be used to endorse or promote products\n *       derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* CRC16 implementation according to CCITT standards.\n *\n * Note by @antirez: this is actually the XMODEM CRC 16 algorithm, using the\n * following parameters:\n *\n * Name                       : \"XMODEM\", also known as \"ZMODEM\", \"CRC-16/ACORN\"\n * Width                      : 16 bit\n * Poly                       : 1021 (That is actually x^16 + x^12 + x^5 + 1)\n * Initialization             : 0000\n * Reflect Input byte         : False\n * Reflect Output CRC         : False\n * Xor constant to output CRC : 0000\n * Output for \"123456789\"     : 31C3\n */\n\nvar lookup = [\n  0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\n  0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\n  0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n  0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\n  0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\n  0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n  0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\n  0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\n  0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n  0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\n  0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\n  0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n  0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\n  0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\n  0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n  0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\n  0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\n  0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n  0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\n  0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\n  0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n  0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n  0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\n  0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n  0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\n  0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\n  0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n  0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\n  0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\n  0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n  0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\n  0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n\n/**\n * Convert a string to a UTF8 array - faster than via buffer\n * @param str\n * @returns {Array}\n */\nvar toUTF8Array = function toUTF8Array(str) {\n  var char;\n  var i = 0;\n  var p = 0;\n  var utf8 = [];\n  var len = str.length;\n\n  for (; i < len; i++) {\n    char = str.charCodeAt(i);\n    if (char < 128) {\n      utf8[p++] = char;\n    } else if (char < 2048) {\n      utf8[p++] = (char >> 6) | 192;\n      utf8[p++] = (char & 63) | 128;\n    } else if (\n        ((char & 0xFC00) === 0xD800) && (i + 1) < str.length &&\n        ((str.charCodeAt(i + 1) & 0xFC00) === 0xDC00)) {\n      char = 0x10000 + ((char & 0x03FF) << 10) + (str.charCodeAt(++i) & 0x03FF);\n      utf8[p++] = (char >> 18) | 240;\n      utf8[p++] = ((char >> 12) & 63) | 128;\n      utf8[p++] = ((char >> 6) & 63) | 128;\n      utf8[p++] = (char & 63) | 128;\n    } else {\n      utf8[p++] = (char >> 12) | 224;\n      utf8[p++] = ((char >> 6) & 63) | 128;\n      utf8[p++] = (char & 63) | 128;\n    }\n  }\n\n  return utf8;\n};\n\n/**\n * Convert a string into a redis slot hash.\n * @param str\n * @returns {number}\n */\nvar generate = module.exports = function generate(str) {\n  var char;\n  var i = 0;\n  var start = -1;\n  var result = 0;\n  var resultHash = 0;\n  var utf8 = typeof str === 'string' ? toUTF8Array(str) : str;\n  var len = utf8.length;\n\n  while (i < len) {\n    char = utf8[i++];\n    if (start === -1) {\n      if (char === 0x7B) {\n        start = i;\n      }\n    } else if (char !== 0x7D) {\n      resultHash = lookup[(char ^ (resultHash >> 8)) & 0xFF] ^ (resultHash << 8);\n    } else if (i - 1 !== start) {\n      return resultHash & 0x3FFF;\n    }\n\n    result = lookup[(char ^ (result >> 8)) & 0xFF] ^ (result << 8);\n  }\n\n  return result & 0x3FFF;\n};\n\n/**\n * Convert an array of multiple strings into a redis slot hash.\n * Returns -1 if one of the keys is not for the same slot as the others\n * @param keys\n * @returns {number}\n */\nmodule.exports.generateMulti = function generateMulti(keys) {\n  var i = 1;\n  var len = keys.length;\n  var base = generate(keys[0]);\n\n  while (i < len) {\n    if (generate(keys[i++]) !== base) return -1;\n  }\n\n  return base;\n};\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _RedisClusterSlots_instances, _a, _RedisClusterSlots_SLOTS, _RedisClusterSlots_options, _RedisClusterSlots_Client, _RedisClusterSlots_emit, _RedisClusterSlots_isOpen, _RedisClusterSlots_discoverWithRootNodes, _RedisClusterSlots_resetSlots, _RedisClusterSlots_discover, _RedisClusterSlots_getShards, _RedisClusterSlots_getNodeAddress, _RedisClusterSlots_clientOptionsDefaults, _RedisClusterSlots_initiateSlotNode, _RedisClusterSlots_createClient, _RedisClusterSlots_createNodeClient, _RedisClusterSlots_runningRediscoverPromise, _RedisClusterSlots_rediscover, _RedisClusterSlots_destroy, _RedisClusterSlots_execOnNodeClient, _RedisClusterSlots_iterateAllNodes, _RedisClusterSlots_randomNodeIterator, _RedisClusterSlots_slotNodesIterator, _RedisClusterSlots_initiatePubSubClient, _RedisClusterSlots_initiateShardedPubSubClient;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_1 = require(\"../client\");\nconst errors_1 = require(\"../errors\");\nconst util_1 = require(\"util\");\nconst pub_sub_1 = require(\"../client/pub-sub\");\n// We need to use 'require', because it's not possible with Typescript to import\n// function that are exported as 'module.exports = function`, without esModuleInterop\n// set to true.\nconst calculateSlot = require('cluster-key-slot');\nclass RedisClusterSlots {\n    get isOpen() {\n        return __classPrivateFieldGet(this, _RedisClusterSlots_isOpen, \"f\");\n    }\n    constructor(options, emit) {\n        _RedisClusterSlots_instances.add(this);\n        _RedisClusterSlots_options.set(this, void 0);\n        _RedisClusterSlots_Client.set(this, void 0);\n        _RedisClusterSlots_emit.set(this, void 0);\n        Object.defineProperty(this, \"slots\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new Array(__classPrivateFieldGet(_a, _a, \"f\", _RedisClusterSlots_SLOTS))\n        });\n        Object.defineProperty(this, \"shards\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new Array()\n        });\n        Object.defineProperty(this, \"masters\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new Array()\n        });\n        Object.defineProperty(this, \"replicas\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new Array()\n        });\n        Object.defineProperty(this, \"nodeByAddress\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: new Map()\n        });\n        Object.defineProperty(this, \"pubSubNode\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        _RedisClusterSlots_isOpen.set(this, false);\n        _RedisClusterSlots_runningRediscoverPromise.set(this, void 0);\n        _RedisClusterSlots_randomNodeIterator.set(this, void 0);\n        __classPrivateFieldSet(this, _RedisClusterSlots_options, options, \"f\");\n        __classPrivateFieldSet(this, _RedisClusterSlots_Client, client_1.default.extend(options), \"f\");\n        __classPrivateFieldSet(this, _RedisClusterSlots_emit, emit, \"f\");\n    }\n    async connect() {\n        if (__classPrivateFieldGet(this, _RedisClusterSlots_isOpen, \"f\")) {\n            throw new Error('Cluster already open');\n        }\n        __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, true, \"f\");\n        try {\n            await __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_discoverWithRootNodes).call(this);\n        }\n        catch (err) {\n            __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, false, \"f\");\n            throw err;\n        }\n    }\n    nodeClient(node) {\n        return node.client ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_createNodeClient).call(this, node);\n    }\n    async rediscover(startWith) {\n        __classPrivateFieldSet(this, _RedisClusterSlots_runningRediscoverPromise, __classPrivateFieldGet(this, _RedisClusterSlots_runningRediscoverPromise, \"f\") ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_rediscover).call(this, startWith)\n            .finally(() => __classPrivateFieldSet(this, _RedisClusterSlots_runningRediscoverPromise, undefined, \"f\")), \"f\");\n        return __classPrivateFieldGet(this, _RedisClusterSlots_runningRediscoverPromise, \"f\");\n    }\n    quit() {\n        return __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_destroy).call(this, client => client.quit());\n    }\n    disconnect() {\n        return __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_destroy).call(this, client => client.disconnect());\n    }\n    getClient(firstKey, isReadonly) {\n        if (!firstKey) {\n            return this.nodeClient(this.getRandomNode());\n        }\n        const slotNumber = calculateSlot(firstKey);\n        if (!isReadonly) {\n            return this.nodeClient(this.slots[slotNumber].master);\n        }\n        return this.nodeClient(this.getSlotRandomNode(slotNumber));\n    }\n    getRandomNode() {\n        __classPrivateFieldSet(this, _RedisClusterSlots_randomNodeIterator, __classPrivateFieldGet(this, _RedisClusterSlots_randomNodeIterator, \"f\") ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_iterateAllNodes).call(this), \"f\");\n        return __classPrivateFieldGet(this, _RedisClusterSlots_randomNodeIterator, \"f\").next().value;\n    }\n    getSlotRandomNode(slotNumber) {\n        const slot = this.slots[slotNumber];\n        if (!slot.replicas?.length) {\n            return slot.master;\n        }\n        slot.nodesIterator ?? (slot.nodesIterator = __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_slotNodesIterator).call(this, slot));\n        return slot.nodesIterator.next().value;\n    }\n    getMasterByAddress(address) {\n        const master = this.nodeByAddress.get(address);\n        if (!master)\n            return;\n        return this.nodeClient(master);\n    }\n    getPubSubClient() {\n        return this.pubSubNode ?\n            this.pubSubNode.client :\n            __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_initiatePubSubClient).call(this);\n    }\n    async executeUnsubscribeCommand(unsubscribe) {\n        const client = await this.getPubSubClient();\n        await unsubscribe(client);\n        if (!client.isPubSubActive && client.isOpen) {\n            await client.disconnect();\n            this.pubSubNode = undefined;\n        }\n    }\n    getShardedPubSubClient(channel) {\n        const { master } = this.slots[calculateSlot(channel)];\n        return master.pubSubClient ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_initiateShardedPubSubClient).call(this, master);\n    }\n    async executeShardedUnsubscribeCommand(channel, unsubscribe) {\n        const { master } = this.slots[calculateSlot(channel)];\n        if (!master.pubSubClient)\n            return Promise.resolve();\n        const client = await master.pubSubClient;\n        await unsubscribe(client);\n        if (!client.isPubSubActive && client.isOpen) {\n            await client.disconnect();\n            master.pubSubClient = undefined;\n        }\n    }\n}\n_a = RedisClusterSlots, _RedisClusterSlots_options = new WeakMap(), _RedisClusterSlots_Client = new WeakMap(), _RedisClusterSlots_emit = new WeakMap(), _RedisClusterSlots_isOpen = new WeakMap(), _RedisClusterSlots_runningRediscoverPromise = new WeakMap(), _RedisClusterSlots_randomNodeIterator = new WeakMap(), _RedisClusterSlots_instances = new WeakSet(), _RedisClusterSlots_discoverWithRootNodes = async function _RedisClusterSlots_discoverWithRootNodes() {\n    let start = Math.floor(Math.random() * __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").rootNodes.length);\n    for (let i = start; i < __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").rootNodes.length; i++) {\n        if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_discover).call(this, __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").rootNodes[i]))\n            return;\n    }\n    for (let i = 0; i < start; i++) {\n        if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_discover).call(this, __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").rootNodes[i]))\n            return;\n    }\n    throw new errors_1.RootNodesUnavailableError();\n}, _RedisClusterSlots_resetSlots = function _RedisClusterSlots_resetSlots() {\n    this.slots = new Array(__classPrivateFieldGet(_a, _a, \"f\", _RedisClusterSlots_SLOTS));\n    this.shards = [];\n    this.masters = [];\n    this.replicas = [];\n    __classPrivateFieldSet(this, _RedisClusterSlots_randomNodeIterator, undefined, \"f\");\n}, _RedisClusterSlots_discover = async function _RedisClusterSlots_discover(rootNode) {\n    const addressesInUse = new Set();\n    try {\n        const shards = await __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_getShards).call(this, rootNode), promises = [], eagerConnect = __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").minimizeConnections !== true;\n        __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_resetSlots).call(this);\n        for (const { from, to, master, replicas } of shards) {\n            const shard = {\n                master: __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_initiateSlotNode).call(this, master, false, eagerConnect, addressesInUse, promises)\n            };\n            if (__classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").useReplicas) {\n                shard.replicas = replicas.map(replica => __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_initiateSlotNode).call(this, replica, true, eagerConnect, addressesInUse, promises));\n            }\n            this.shards.push(shard);\n            for (let i = from; i <= to; i++) {\n                this.slots[i] = shard;\n            }\n        }\n        if (this.pubSubNode && !addressesInUse.has(this.pubSubNode.address)) {\n            if (util_1.types.isPromise(this.pubSubNode.client)) {\n                promises.push(this.pubSubNode.client.then(client => client.disconnect()));\n                this.pubSubNode = undefined;\n            }\n            else {\n                promises.push(this.pubSubNode.client.disconnect());\n                const channelsListeners = this.pubSubNode.client.getPubSubListeners(pub_sub_1.PubSubType.CHANNELS), patternsListeners = this.pubSubNode.client.getPubSubListeners(pub_sub_1.PubSubType.PATTERNS);\n                if (channelsListeners.size || patternsListeners.size) {\n                    promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_initiatePubSubClient).call(this, {\n                        [pub_sub_1.PubSubType.CHANNELS]: channelsListeners,\n                        [pub_sub_1.PubSubType.PATTERNS]: patternsListeners\n                    }));\n                }\n            }\n        }\n        for (const [address, node] of this.nodeByAddress.entries()) {\n            if (addressesInUse.has(address))\n                continue;\n            if (node.client) {\n                promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_execOnNodeClient).call(this, node.client, client => client.disconnect()));\n            }\n            const { pubSubClient } = node;\n            if (pubSubClient) {\n                promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_execOnNodeClient).call(this, pubSubClient, client => client.disconnect()));\n            }\n            this.nodeByAddress.delete(address);\n        }\n        await Promise.all(promises);\n        return true;\n    }\n    catch (err) {\n        __classPrivateFieldGet(this, _RedisClusterSlots_emit, \"f\").call(this, 'error', err);\n        return false;\n    }\n}, _RedisClusterSlots_getShards = async function _RedisClusterSlots_getShards(rootNode) {\n    const client = new (__classPrivateFieldGet(this, _RedisClusterSlots_Client, \"f\"))(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_clientOptionsDefaults).call(this, rootNode, true));\n    client.on('error', err => __classPrivateFieldGet(this, _RedisClusterSlots_emit, \"f\").call(this, 'error', err));\n    await client.connect();\n    try {\n        // using `CLUSTER SLOTS` and not `CLUSTER SHARDS` to support older versions\n        return await client.clusterSlots();\n    }\n    finally {\n        await client.disconnect();\n    }\n}, _RedisClusterSlots_getNodeAddress = function _RedisClusterSlots_getNodeAddress(address) {\n    switch (typeof __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").nodeAddressMap) {\n        case 'object':\n            return __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").nodeAddressMap[address];\n        case 'function':\n            return __classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").nodeAddressMap(address);\n    }\n}, _RedisClusterSlots_clientOptionsDefaults = function _RedisClusterSlots_clientOptionsDefaults(options, disableReconnect) {\n    let result;\n    if (__classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").defaults) {\n        let socket;\n        if (__classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").defaults.socket) {\n            socket = {\n                ...__classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").defaults.socket,\n                ...options?.socket\n            };\n        }\n        else {\n            socket = options?.socket;\n        }\n        result = {\n            ...__classPrivateFieldGet(this, _RedisClusterSlots_options, \"f\").defaults,\n            ...options,\n            socket\n        };\n    }\n    else {\n        result = options;\n    }\n    if (disableReconnect) {\n        result ?? (result = {});\n        result.socket ?? (result.socket = {});\n        result.socket.reconnectStrategy = false;\n    }\n    return result;\n}, _RedisClusterSlots_initiateSlotNode = function _RedisClusterSlots_initiateSlotNode({ id, ip, port }, readonly, eagerConnent, addressesInUse, promises) {\n    const address = `${ip}:${port}`;\n    addressesInUse.add(address);\n    let node = this.nodeByAddress.get(address);\n    if (!node) {\n        node = {\n            id,\n            host: ip,\n            port,\n            address,\n            readonly,\n            client: undefined\n        };\n        if (eagerConnent) {\n            promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_createNodeClient).call(this, node));\n        }\n        this.nodeByAddress.set(address, node);\n    }\n    (readonly ? this.replicas : this.masters).push(node);\n    return node;\n}, _RedisClusterSlots_createClient = async function _RedisClusterSlots_createClient(node, readonly = node.readonly) {\n    const client = new (__classPrivateFieldGet(this, _RedisClusterSlots_Client, \"f\"))(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_clientOptionsDefaults).call(this, {\n        socket: __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_getNodeAddress).call(this, node.address) ?? {\n            host: node.host,\n            port: node.port\n        },\n        readonly\n    }));\n    client.on('error', err => __classPrivateFieldGet(this, _RedisClusterSlots_emit, \"f\").call(this, 'error', err));\n    await client.connect();\n    return client;\n}, _RedisClusterSlots_createNodeClient = function _RedisClusterSlots_createNodeClient(node) {\n    const promise = __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_createClient).call(this, node)\n        .then(client => {\n        node.client = client;\n        return client;\n    })\n        .catch(err => {\n        node.client = undefined;\n        throw err;\n    });\n    node.client = promise;\n    return promise;\n}, _RedisClusterSlots_rediscover = async function _RedisClusterSlots_rediscover(startWith) {\n    if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_discover).call(this, startWith.options))\n        return;\n    return __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_discoverWithRootNodes).call(this);\n}, _RedisClusterSlots_destroy = async function _RedisClusterSlots_destroy(fn) {\n    __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, false, \"f\");\n    const promises = [];\n    for (const { master, replicas } of this.shards) {\n        if (master.client) {\n            promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_execOnNodeClient).call(this, master.client, fn));\n        }\n        if (master.pubSubClient) {\n            promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_execOnNodeClient).call(this, master.pubSubClient, fn));\n        }\n        if (replicas) {\n            for (const { client } of replicas) {\n                if (client) {\n                    promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_execOnNodeClient).call(this, client, fn));\n                }\n            }\n        }\n    }\n    if (this.pubSubNode) {\n        promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_execOnNodeClient).call(this, this.pubSubNode.client, fn));\n        this.pubSubNode = undefined;\n    }\n    __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_resetSlots).call(this);\n    this.nodeByAddress.clear();\n    await Promise.allSettled(promises);\n}, _RedisClusterSlots_execOnNodeClient = function _RedisClusterSlots_execOnNodeClient(client, fn) {\n    return util_1.types.isPromise(client) ?\n        client.then(fn) :\n        fn(client);\n}, _RedisClusterSlots_iterateAllNodes = function* _RedisClusterSlots_iterateAllNodes() {\n    let i = Math.floor(Math.random() * (this.masters.length + this.replicas.length));\n    if (i < this.masters.length) {\n        do {\n            yield this.masters[i];\n        } while (++i < this.masters.length);\n        for (const replica of this.replicas) {\n            yield replica;\n        }\n    }\n    else {\n        i -= this.masters.length;\n        do {\n            yield this.replicas[i];\n        } while (++i < this.replicas.length);\n    }\n    while (true) {\n        for (const master of this.masters) {\n            yield master;\n        }\n        for (const replica of this.replicas) {\n            yield replica;\n        }\n    }\n}, _RedisClusterSlots_slotNodesIterator = function* _RedisClusterSlots_slotNodesIterator(slot) {\n    let i = Math.floor(Math.random() * (1 + slot.replicas.length));\n    if (i < slot.replicas.length) {\n        do {\n            yield slot.replicas[i];\n        } while (++i < slot.replicas.length);\n    }\n    while (true) {\n        yield slot.master;\n        for (const replica of slot.replicas) {\n            yield replica;\n        }\n    }\n}, _RedisClusterSlots_initiatePubSubClient = async function _RedisClusterSlots_initiatePubSubClient(toResubscribe) {\n    const index = Math.floor(Math.random() * (this.masters.length + this.replicas.length)), node = index < this.masters.length ?\n        this.masters[index] :\n        this.replicas[index - this.masters.length];\n    this.pubSubNode = {\n        address: node.address,\n        client: __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_createClient).call(this, node, true)\n            .then(async (client) => {\n            if (toResubscribe) {\n                await Promise.all([\n                    client.extendPubSubListeners(pub_sub_1.PubSubType.CHANNELS, toResubscribe[pub_sub_1.PubSubType.CHANNELS]),\n                    client.extendPubSubListeners(pub_sub_1.PubSubType.PATTERNS, toResubscribe[pub_sub_1.PubSubType.PATTERNS])\n                ]);\n            }\n            this.pubSubNode.client = client;\n            return client;\n        })\n            .catch(err => {\n            this.pubSubNode = undefined;\n            throw err;\n        })\n    };\n    return this.pubSubNode.client;\n}, _RedisClusterSlots_initiateShardedPubSubClient = function _RedisClusterSlots_initiateShardedPubSubClient(master) {\n    const promise = __classPrivateFieldGet(this, _RedisClusterSlots_instances, \"m\", _RedisClusterSlots_createClient).call(this, master, true)\n        .then(client => {\n        client.on('server-sunsubscribe', async (channel, listeners) => {\n            try {\n                await this.rediscover(client);\n                const redirectTo = await this.getShardedPubSubClient(channel);\n                redirectTo.extendPubSubChannelListeners(pub_sub_1.PubSubType.SHARDED, channel, listeners);\n            }\n            catch (err) {\n                __classPrivateFieldGet(this, _RedisClusterSlots_emit, \"f\").call(this, 'sharded-shannel-moved-error', err, channel, listeners);\n            }\n        });\n        master.pubSubClient = client;\n        return client;\n    })\n        .catch(err => {\n        master.pubSubClient = undefined;\n        throw err;\n    });\n    master.pubSubClient = promise;\n    return promise;\n};\n_RedisClusterSlots_SLOTS = { value: 16384 };\nexports.default = RedisClusterSlots;\n", "\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _RedisClusterMultiCommand_multi, _RedisClusterMultiCommand_executor, _RedisClusterMultiCommand_firstKey;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst commands_1 = require(\"./commands\");\nconst multi_command_1 = require(\"../multi-command\");\nconst commander_1 = require(\"../commander\");\nconst _1 = require(\".\");\nclass RedisClusterMultiCommand {\n    static extend(extensions) {\n        return (0, commander_1.attachExtensions)({\n            BaseClass: RedisClusterMultiCommand,\n            modulesExecutor: RedisClusterMultiCommand.prototype.commandsExecutor,\n            modules: extensions?.modules,\n            functionsExecutor: RedisClusterMultiCommand.prototype.functionsExecutor,\n            functions: extensions?.functions,\n            scriptsExecutor: RedisClusterMultiCommand.prototype.scriptsExecutor,\n            scripts: extensions?.scripts\n        });\n    }\n    constructor(executor, firstKey) {\n        _RedisClusterMultiCommand_multi.set(this, new multi_command_1.default());\n        _RedisClusterMultiCommand_executor.set(this, void 0);\n        _RedisClusterMultiCommand_firstKey.set(this, void 0);\n        Object.defineProperty(this, \"EXEC\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.exec\n        });\n        __classPrivateFieldSet(this, _RedisClusterMultiCommand_executor, executor, \"f\");\n        __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, firstKey, \"f\");\n    }\n    commandsExecutor(command, args) {\n        const transformedArguments = command.transformArguments(...args);\n        __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, \"f\") ?? _1.default.extractFirstKey(command, args, transformedArguments), \"f\");\n        return this.addCommand(undefined, transformedArguments, command.transformReply);\n    }\n    addCommand(firstKey, args, transformReply) {\n        __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, \"f\") ?? firstKey, \"f\");\n        __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").addCommand(args, transformReply);\n        return this;\n    }\n    functionsExecutor(fn, args, name) {\n        const transformedArguments = __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").addFunction(name, fn, args);\n        __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, \"f\") ?? _1.default.extractFirstKey(fn, args, transformedArguments), \"f\");\n        return this;\n    }\n    scriptsExecutor(script, args) {\n        const transformedArguments = __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").addScript(script, args);\n        __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, \"f\") ?? _1.default.extractFirstKey(script, args, transformedArguments), \"f\");\n        return this;\n    }\n    async exec(execAsPipeline = false) {\n        if (execAsPipeline) {\n            return this.execAsPipeline();\n        }\n        return __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").handleExecReplies(await __classPrivateFieldGet(this, _RedisClusterMultiCommand_executor, \"f\").call(this, __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").queue, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, \"f\"), multi_command_1.default.generateChainId()));\n    }\n    async execAsPipeline() {\n        return __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").transformReplies(await __classPrivateFieldGet(this, _RedisClusterMultiCommand_executor, \"f\").call(this, __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, \"f\").queue, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, \"f\")));\n    }\n}\n_RedisClusterMultiCommand_multi = new WeakMap(), _RedisClusterMultiCommand_executor = new WeakMap(), _RedisClusterMultiCommand_firstKey = new WeakMap();\nexports.default = RedisClusterMultiCommand;\n(0, commander_1.attachCommands)({\n    BaseClass: RedisClusterMultiCommand,\n    commands: commands_1.default,\n    executor: RedisClusterMultiCommand.prototype.commandsExecutor\n});\n", "\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _RedisCluster_instances, _RedisCluster_options, _RedisCluster_slots, _RedisCluster_Multi, _RedisCluster_execute;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst commands_1 = require(\"./commands\");\nconst cluster_slots_1 = require(\"./cluster-slots\");\nconst commander_1 = require(\"../commander\");\nconst events_1 = require(\"events\");\nconst multi_command_1 = require(\"./multi-command\");\nconst errors_1 = require(\"../errors\");\nclass RedisCluster extends events_1.EventEmitter {\n    static extractFirstKey(command, originalArgs, redisArgs) {\n        if (command.FIRST_KEY_INDEX === undefined) {\n            return undefined;\n        }\n        else if (typeof command.FIRST_KEY_INDEX === 'number') {\n            return redisArgs[command.FIRST_KEY_INDEX];\n        }\n        return command.FIRST_KEY_INDEX(...originalArgs);\n    }\n    static create(options) {\n        return new ((0, commander_1.attachExtensions)({\n            BaseClass: RedisCluster,\n            modulesExecutor: RedisCluster.prototype.commandsExecutor,\n            modules: options?.modules,\n            functionsExecutor: RedisCluster.prototype.functionsExecutor,\n            functions: options?.functions,\n            scriptsExecutor: RedisCluster.prototype.scriptsExecutor,\n            scripts: options?.scripts\n        }))(options);\n    }\n    get slots() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").slots;\n    }\n    get shards() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").shards;\n    }\n    get masters() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").masters;\n    }\n    get replicas() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").replicas;\n    }\n    get nodeByAddress() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").nodeByAddress;\n    }\n    get pubSubNode() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").pubSubNode;\n    }\n    get isOpen() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").isOpen;\n    }\n    constructor(options) {\n        super();\n        _RedisCluster_instances.add(this);\n        _RedisCluster_options.set(this, void 0);\n        _RedisCluster_slots.set(this, void 0);\n        _RedisCluster_Multi.set(this, void 0);\n        Object.defineProperty(this, \"multi\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.MULTI\n        });\n        Object.defineProperty(this, \"subscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SUBSCRIBE\n        });\n        Object.defineProperty(this, \"unsubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.UNSUBSCRIBE\n        });\n        Object.defineProperty(this, \"pSubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.PSUBSCRIBE\n        });\n        Object.defineProperty(this, \"pUnsubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.PUNSUBSCRIBE\n        });\n        Object.defineProperty(this, \"sSubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SSUBSCRIBE\n        });\n        Object.defineProperty(this, \"sUnsubscribe\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: this.SUNSUBSCRIBE\n        });\n        __classPrivateFieldSet(this, _RedisCluster_options, options, \"f\");\n        __classPrivateFieldSet(this, _RedisCluster_slots, new cluster_slots_1.default(options, this.emit.bind(this)), \"f\");\n        __classPrivateFieldSet(this, _RedisCluster_Multi, multi_command_1.default.extend(options), \"f\");\n    }\n    duplicate(overrides) {\n        return new (Object.getPrototypeOf(this).constructor)({\n            ...__classPrivateFieldGet(this, _RedisCluster_options, \"f\"),\n            ...overrides\n        });\n    }\n    connect() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").connect();\n    }\n    async commandsExecutor(command, args) {\n        const { jsArgs, args: redisArgs, options } = (0, commander_1.transformCommandArguments)(command, args);\n        return (0, commander_1.transformCommandReply)(command, await this.sendCommand(RedisCluster.extractFirstKey(command, jsArgs, redisArgs), command.IS_READ_ONLY, redisArgs, options), redisArgs.preserve);\n    }\n    async sendCommand(firstKey, isReadonly, args, options) {\n        return __classPrivateFieldGet(this, _RedisCluster_instances, \"m\", _RedisCluster_execute).call(this, firstKey, isReadonly, client => client.sendCommand(args, options));\n    }\n    async functionsExecutor(fn, args, name) {\n        const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(fn, args);\n        return (0, commander_1.transformCommandReply)(fn, await this.executeFunction(name, fn, args, redisArgs, options), redisArgs.preserve);\n    }\n    async executeFunction(name, fn, originalArgs, redisArgs, options) {\n        return __classPrivateFieldGet(this, _RedisCluster_instances, \"m\", _RedisCluster_execute).call(this, RedisCluster.extractFirstKey(fn, originalArgs, redisArgs), fn.IS_READ_ONLY, client => client.executeFunction(name, fn, redisArgs, options));\n    }\n    async scriptsExecutor(script, args) {\n        const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(script, args);\n        return (0, commander_1.transformCommandReply)(script, await this.executeScript(script, args, redisArgs, options), redisArgs.preserve);\n    }\n    async executeScript(script, originalArgs, redisArgs, options) {\n        return __classPrivateFieldGet(this, _RedisCluster_instances, \"m\", _RedisCluster_execute).call(this, RedisCluster.extractFirstKey(script, originalArgs, redisArgs), script.IS_READ_ONLY, client => client.executeScript(script, redisArgs, options));\n    }\n    MULTI(routing) {\n        return new (__classPrivateFieldGet(this, _RedisCluster_Multi, \"f\"))((commands, firstKey, chainId) => {\n            return __classPrivateFieldGet(this, _RedisCluster_instances, \"m\", _RedisCluster_execute).call(this, firstKey, false, client => client.multiExecutor(commands, undefined, chainId));\n        }, routing);\n    }\n    async SUBSCRIBE(channels, listener, bufferMode) {\n        return (await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getPubSubClient())\n            .SUBSCRIBE(channels, listener, bufferMode);\n    }\n    async UNSUBSCRIBE(channels, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").executeUnsubscribeCommand(client => client.UNSUBSCRIBE(channels, listener, bufferMode));\n    }\n    async PSUBSCRIBE(patterns, listener, bufferMode) {\n        return (await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getPubSubClient())\n            .PSUBSCRIBE(patterns, listener, bufferMode);\n    }\n    async PUNSUBSCRIBE(patterns, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").executeUnsubscribeCommand(client => client.PUNSUBSCRIBE(patterns, listener, bufferMode));\n    }\n    async SSUBSCRIBE(channels, listener, bufferMode) {\n        const maxCommandRedirections = __classPrivateFieldGet(this, _RedisCluster_options, \"f\").maxCommandRedirections ?? 16, firstChannel = Array.isArray(channels) ? channels[0] : channels;\n        let client = await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getShardedPubSubClient(firstChannel);\n        for (let i = 0;; i++) {\n            try {\n                return await client.SSUBSCRIBE(channels, listener, bufferMode);\n            }\n            catch (err) {\n                if (++i > maxCommandRedirections || !(err instanceof errors_1.ErrorReply)) {\n                    throw err;\n                }\n                if (err.message.startsWith('MOVED')) {\n                    await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").rediscover(client);\n                    client = await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getShardedPubSubClient(firstChannel);\n                    continue;\n                }\n                throw err;\n            }\n        }\n    }\n    SUNSUBSCRIBE(channels, listener, bufferMode) {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").executeShardedUnsubscribeCommand(Array.isArray(channels) ? channels[0] : channels, client => client.SUNSUBSCRIBE(channels, listener, bufferMode));\n    }\n    quit() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").quit();\n    }\n    disconnect() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").disconnect();\n    }\n    nodeClient(node) {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").nodeClient(node);\n    }\n    getRandomNode() {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getRandomNode();\n    }\n    getSlotRandomNode(slot) {\n        return __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getSlotRandomNode(slot);\n    }\n    /**\n     * @deprecated use `.masters` instead\n     */\n    getMasters() {\n        return this.masters;\n    }\n    /**\n     * @deprecated use `.slots[]` instead\n     */\n    getSlotMaster(slot) {\n        return this.slots[slot].master;\n    }\n}\n_RedisCluster_options = new WeakMap(), _RedisCluster_slots = new WeakMap(), _RedisCluster_Multi = new WeakMap(), _RedisCluster_instances = new WeakSet(), _RedisCluster_execute = async function _RedisCluster_execute(firstKey, isReadonly, executor) {\n    const maxCommandRedirections = __classPrivateFieldGet(this, _RedisCluster_options, \"f\").maxCommandRedirections ?? 16;\n    let client = await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getClient(firstKey, isReadonly);\n    for (let i = 0;; i++) {\n        try {\n            return await executor(client);\n        }\n        catch (err) {\n            if (++i > maxCommandRedirections || !(err instanceof errors_1.ErrorReply)) {\n                throw err;\n            }\n            if (err.message.startsWith('ASK')) {\n                const address = err.message.substring(err.message.lastIndexOf(' ') + 1);\n                let redirectTo = await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getMasterByAddress(address);\n                if (!redirectTo) {\n                    await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").rediscover(client);\n                    redirectTo = await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getMasterByAddress(address);\n                }\n                if (!redirectTo) {\n                    throw new Error(`Cannot find node ${address}`);\n                }\n                await redirectTo.asking();\n                client = redirectTo;\n                continue;\n            }\n            else if (err.message.startsWith('MOVED')) {\n                await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").rediscover(client);\n                client = await __classPrivateFieldGet(this, _RedisCluster_slots, \"f\").getClient(firstKey, isReadonly);\n                continue;\n            }\n            throw err;\n        }\n    }\n};\nexports.default = RedisCluster;\n(0, commander_1.attachCommands)({\n    BaseClass: RedisCluster,\n    commands: commands_1.default,\n    executor: RedisCluster.prototype.commandsExecutor\n});\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scriptSha1 = exports.defineScript = void 0;\nconst crypto_1 = require(\"crypto\");\nfunction defineScript(script) {\n    return {\n        ...script,\n        SHA1: scriptSha1(script.SCRIPT)\n    };\n}\nexports.defineScript = defineScript;\nfunction scriptSha1(script) {\n    return (0, crypto_1.createHash)('sha1').update(script).digest('hex');\n}\nexports.scriptSha1 = scriptSha1;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisFlushModes = exports.GeoReplyWith = exports.defineScript = exports.createCluster = exports.commandOptions = exports.createClient = void 0;\nconst client_1 = require(\"./lib/client\");\nconst cluster_1 = require(\"./lib/cluster\");\nexports.createClient = client_1.default.create;\nexports.commandOptions = client_1.default.commandOptions;\nexports.createCluster = cluster_1.default.create;\nvar lua_script_1 = require(\"./lib/lua-script\");\nObject.defineProperty(exports, \"defineScript\", { enumerable: true, get: function () { return lua_script_1.defineScript; } });\n__exportStar(require(\"./lib/errors\"), exports);\nvar generic_transformers_1 = require(\"./lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"GeoReplyWith\", { enumerable: true, get: function () { return generic_transformers_1.GeoReplyWith; } });\nvar FLUSHALL_1 = require(\"./lib/commands/FLUSHALL\");\nObject.defineProperty(exports, \"RedisFlushModes\", { enumerable: true, get: function () { return FLUSHALL_1.RedisFlushModes; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, item) {\n    return ['BF.ADD', key, item];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['BF.CARD', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, item) {\n    return ['BF.EXISTS', key, item];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['BF.INFO', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        capacity: reply[1],\n        size: reply[3],\n        numberOfFilters: reply[5],\n        numberOfInsertedItems: reply[7],\n        expansionRate: reply[9]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items, options) {\n    const args = ['BF.INSERT', key];\n    if (options?.CAPACITY) {\n        args.push('CAPACITY', options.CAPACITY.toString());\n    }\n    if (options?.ERROR) {\n        args.push('ERROR', options.ERROR.toString());\n    }\n    if (options?.EXPANSION) {\n        args.push('EXPANSION', options.EXPANSION.toString());\n    }\n    if (options?.NOCREATE) {\n        args.push('NOCREATE');\n    }\n    if (options?.NONSCALING) {\n        args.push('NONSCALING');\n    }\n    args.push('ITEMS');\n    return (0, generic_transformers_1.pushVerdictArguments)(args, items);\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_2 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, iteretor, chunk) {\n    return ['BF.LOADCHUNK', key, iteretor.toString(), chunk];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items) {\n    return ['BF.MADD', key, ...items];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, items) {\n    return ['BF.MEXISTS', key, ...items];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, errorRate, capacity, options) {\n    const args = ['BF.RESERVE', key, errorRate.toString(), capacity.toString()];\n    if (options?.EXPANSION) {\n        args.push('EXPANSION', options.EXPANSION.toString());\n    }\n    if (options?.NONSCALING) {\n        args.push('NONSCALING');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, iterator) {\n    return ['BF.SCANDUMP', key, iterator.toString()];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([iterator, chunk]) {\n    return {\n        iterator,\n        chunk\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ADD = require(\"./ADD\");\nconst CARD = require(\"./CARD\");\nconst EXISTS = require(\"./EXISTS\");\nconst INFO = require(\"./INFO\");\nconst INSERT = require(\"./INSERT\");\nconst LOADCHUNK = require(\"./LOADCHUNK\");\nconst MADD = require(\"./MADD\");\nconst MEXISTS = require(\"./MEXISTS\");\nconst RESERVE = require(\"./RESERVE\");\nconst SCANDUMP = require(\"./SCANDUMP\");\nexports.default = {\n    ADD,\n    add: ADD,\n    CARD,\n    card: CARD,\n    EXISTS,\n    exists: EXISTS,\n    INFO,\n    info: INFO,\n    INSERT,\n    insert: INSERT,\n    LOADCHUNK,\n    loadChunk: LOADCHUNK,\n    MADD,\n    mAdd: MADD,\n    MEXISTS,\n    mExists: MEXISTS,\n    RESERVE,\n    reserve: RESERVE,\n    SCANDUMP,\n    scanDump: SCANDUMP\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items) {\n    const args = ['CMS.INCRBY', key];\n    if (Array.isArray(items)) {\n        for (const item of items) {\n            pushIncrByItem(args, item);\n        }\n    }\n    else {\n        pushIncrByItem(args, items);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction pushIncrByItem(args, { item, incrementBy }) {\n    args.push(item, incrementBy.toString());\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['CMS.INFO', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        width: reply[1],\n        depth: reply[3],\n        count: reply[5]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, width, depth) {\n    return ['CMS.INITBYDIM', key, width.toString(), depth.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, error, probability) {\n    return ['CMS.INITBYPROB', key, error.toString(), probability.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(dest, src) {\n    const args = [\n        'CMS.MERGE',\n        dest,\n        src.length.toString()\n    ];\n    if (isStringSketches(src)) {\n        args.push(...src);\n    }\n    else {\n        for (const sketch of src) {\n            args.push(sketch.name);\n        }\n        args.push('WEIGHTS');\n        for (const sketch of src) {\n            args.push(sketch.weight.toString());\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction isStringSketches(src) {\n    return typeof src[0] === 'string';\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, items) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['CMS.QUERY', key], items);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst INCRBY = require(\"./INCRBY\");\nconst INFO = require(\"./INFO\");\nconst INITBYDIM = require(\"./INITBYDIM\");\nconst INITBYPROB = require(\"./INITBYPROB\");\nconst MERGE = require(\"./MERGE\");\nconst QUERY = require(\"./QUERY\");\nexports.default = {\n    INCRBY,\n    incrBy: INCRBY,\n    INFO,\n    info: INFO,\n    INITBYDIM,\n    initByDim: INITBYDIM,\n    INITBYPROB,\n    initByProb: INITBYPROB,\n    MERGE,\n    merge: MERGE,\n    QUERY,\n    query: QUERY\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, item) {\n    return ['CF.ADD', key, item];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, item) {\n    return ['CF.ADDNX', key, item];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, item) {\n    return ['CF.COUNT', key, item];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, item) {\n    return ['CF.DEL', key, item];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, item) {\n    return ['CF.EXISTS', key, item];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['CF.INFO', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        size: reply[1],\n        numberOfBuckets: reply[3],\n        numberOfFilters: reply[5],\n        numberOfInsertedItems: reply[7],\n        numberOfDeletedItems: reply[9],\n        bucketSize: reply[11],\n        expansionRate: reply[13],\n        maxIteration: reply[15]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items, options) {\n    return (0, _1.pushInsertOptions)(['CF.INSERT', key], items, options);\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items, options) {\n    return (0, _1.pushInsertOptions)(['CF.INSERTNX', key], items, options);\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, iterator, chunk) {\n    return ['CF.LOADCHUNK', key, iterator.toString(), chunk];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, capacity, options) {\n    const args = ['CF.RESERVE', key, capacity.toString()];\n    if (options?.BUCKETSIZE) {\n        args.push('BUCKETSIZE', options.BUCKETSIZE.toString());\n    }\n    if (options?.MAXITERATIONS) {\n        args.push('MAXITERATIONS', options.MAXITERATIONS.toString());\n    }\n    if (options?.EXPANSION) {\n        args.push('EXPANSION', options.EXPANSION.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, iterator) {\n    return ['CF.SCANDUMP', key, iterator.toString()];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply([iterator, chunk]) {\n    return {\n        iterator,\n        chunk\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pushInsertOptions = void 0;\nconst ADD = require(\"./ADD\");\nconst ADDNX = require(\"./ADDNX\");\nconst COUNT = require(\"./COUNT\");\nconst DEL = require(\"./DEL\");\nconst EXISTS = require(\"./EXISTS\");\nconst INFO = require(\"./INFO\");\nconst INSERT = require(\"./INSERT\");\nconst INSERTNX = require(\"./INSERTNX\");\nconst LOADCHUNK = require(\"./LOADCHUNK\");\nconst RESERVE = require(\"./RESERVE\");\nconst SCANDUMP = require(\"./SCANDUMP\");\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.default = {\n    ADD,\n    add: ADD,\n    ADDNX,\n    addNX: ADDNX,\n    COUNT,\n    count: COUNT,\n    DEL,\n    del: DEL,\n    EXISTS,\n    exists: EXISTS,\n    INFO,\n    info: INFO,\n    INSERT,\n    insert: INSERT,\n    INSERTNX,\n    insertNX: INSERTNX,\n    LOADCHUNK,\n    loadChunk: LOADCHUNK,\n    RESERVE,\n    reserve: RESERVE,\n    SCANDUMP,\n    scanDump: SCANDUMP\n};\nfunction pushInsertOptions(args, items, options) {\n    if (options?.CAPACITY) {\n        args.push('CAPACITY');\n        args.push(options.CAPACITY.toString());\n    }\n    if (options?.NOCREATE) {\n        args.push('NOCREATE');\n    }\n    args.push('ITEMS');\n    return (0, generic_transformers_1.pushVerdictArguments)(args, items);\n}\nexports.pushInsertOptions = pushInsertOptions;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, values) {\n    const args = ['TDIGEST.ADD', key];\n    for (const item of values) {\n        args.push(item.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, ranks) {\n    const args = ['TDIGEST.BYRANK', key];\n    for (const rank of ranks) {\n        args.push(rank.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoublesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, ranks) {\n    const args = ['TDIGEST.BYREVRANK', key];\n    for (const rank of ranks) {\n        args.push(rank.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoublesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, values) {\n    const args = ['TDIGEST.CDF', key];\n    for (const item of values) {\n        args.push(item.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoublesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, options) {\n    return (0, _1.pushCompressionArgument)(['TDIGEST.CREATE', key], options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return [\n        'TDIGEST.INFO',\n        key\n    ];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        comperssion: reply[1],\n        capacity: reply[3],\n        mergedNodes: reply[5],\n        unmergedNodes: reply[7],\n        mergedWeight: Number(reply[9]),\n        unmergedWeight: Number(reply[11]),\n        totalCompression: reply[13]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return [\n        'TDIGEST.MAX',\n        key\n    ];\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoubleReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(destKey, srcKeys, options) {\n    const args = (0, generic_transformers_1.pushVerdictArgument)(['TDIGEST.MERGE', destKey], srcKeys);\n    (0, _1.pushCompressionArgument)(args, options);\n    if (options?.OVERRIDE) {\n        args.push('OVERRIDE');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return [\n        'TDIGEST.MIN',\n        key\n    ];\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoubleReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, quantiles) {\n    const args = [\n        'TDIGEST.QUANTILE',\n        key\n    ];\n    for (const quantile of quantiles) {\n        args.push(quantile.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoublesReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, values) {\n    const args = ['TDIGEST.RANK', key];\n    for (const item of values) {\n        args.push(item.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['TDIGEST.RESET', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, values) {\n    const args = ['TDIGEST.REVRANK', key];\n    for (const item of values) {\n        args.push(item.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, lowCutPercentile, highCutPercentile) {\n    return [\n        'TDIGEST.TRIMMED_MEAN',\n        key,\n        lowCutPercentile.toString(),\n        highCutPercentile.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformDoubleReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformDoublesReply = exports.transformDoubleReply = exports.pushCompressionArgument = void 0;\nconst ADD = require(\"./ADD\");\nconst BYRANK = require(\"./BYRANK\");\nconst BYREVRANK = require(\"./BYREVRANK\");\nconst CDF = require(\"./CDF\");\nconst CREATE = require(\"./CREATE\");\nconst INFO = require(\"./INFO\");\nconst MAX = require(\"./MAX\");\nconst MERGE = require(\"./MERGE\");\nconst MIN = require(\"./MIN\");\nconst QUANTILE = require(\"./QUANTILE\");\nconst RANK = require(\"./RANK\");\nconst RESET = require(\"./RESET\");\nconst REVRANK = require(\"./REVRANK\");\nconst TRIMMED_MEAN = require(\"./TRIMMED_MEAN\");\nexports.default = {\n    ADD,\n    add: ADD,\n    BYRANK,\n    byRank: BYRANK,\n    BYREVRANK,\n    byRevRank: BYREVRANK,\n    CDF,\n    cdf: CDF,\n    CREATE,\n    create: CREATE,\n    INFO,\n    info: INFO,\n    MAX,\n    max: MAX,\n    MERGE,\n    merge: MERGE,\n    MIN,\n    min: MIN,\n    QUANTILE,\n    quantile: QUANTILE,\n    RANK,\n    rank: RANK,\n    RESET,\n    reset: RESET,\n    REVRANK,\n    revRank: REVRANK,\n    TRIMMED_MEAN,\n    trimmedMean: TRIMMED_MEAN\n};\nfunction pushCompressionArgument(args, options) {\n    if (options?.COMPRESSION) {\n        args.push('COMPRESSION', options.COMPRESSION.toString());\n    }\n    return args;\n}\nexports.pushCompressionArgument = pushCompressionArgument;\nfunction transformDoubleReply(reply) {\n    switch (reply) {\n        case 'inf':\n            return Infinity;\n        case '-inf':\n            return -Infinity;\n        case 'nan':\n            return NaN;\n        default:\n            return parseFloat(reply);\n    }\n}\nexports.transformDoubleReply = transformDoubleReply;\nfunction transformDoublesReply(reply) {\n    return reply.map(transformDoubleReply);\n}\nexports.transformDoublesReply = transformDoublesReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.ADD', key], items);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, items) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.COUNT', key], items);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, items) {\n    const args = ['TOPK.INCRBY', key];\n    if (Array.isArray(items)) {\n        for (const item of items) {\n            pushIncrByItem(args, item);\n        }\n    }\n    else {\n        pushIncrByItem(args, items);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction pushIncrByItem(args, { item, incrementBy }) {\n    args.push(item, incrementBy.toString());\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['TOPK.INFO', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        k: reply[1],\n        width: reply[3],\n        depth: reply[5],\n        decay: Number(reply[7])\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['TOPK.LIST', key, 'WITHCOUNT'];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const reply = [];\n    for (let i = 0; i < rawReply.length; i++) {\n        reply.push({\n            item: rawReply[i],\n            count: rawReply[++i]\n        });\n    }\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['TOPK.LIST', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, items) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.QUERY', key], items);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, topK, options) {\n    const args = ['TOPK.RESERVE', key, topK.toString()];\n    if (options) {\n        args.push(options.width.toString(), options.depth.toString(), options.decay.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ADD = require(\"./ADD\");\nconst COUNT = require(\"./COUNT\");\nconst INCRBY = require(\"./INCRBY\");\nconst INFO = require(\"./INFO\");\nconst LIST_WITHCOUNT = require(\"./LIST_WITHCOUNT\");\nconst LIST = require(\"./LIST\");\nconst QUERY = require(\"./QUERY\");\nconst RESERVE = require(\"./RESERVE\");\nexports.default = {\n    ADD,\n    add: ADD,\n    COUNT,\n    count: COUNT,\n    INCRBY,\n    incrBy: INCRBY,\n    INFO,\n    info: INFO,\n    LIST_WITHCOUNT,\n    listWithCount: LIST_WITHCOUNT,\n    LIST,\n    list: LIST,\n    QUERY,\n    query: QUERY,\n    RESERVE,\n    reserve: RESERVE\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst bloom_1 = require(\"./bloom\");\nconst count_min_sketch_1 = require(\"./count-min-sketch\");\nconst cuckoo_1 = require(\"./cuckoo\");\nconst t_digest_1 = require(\"./t-digest\");\nconst top_k_1 = require(\"./top-k\");\nexports.default = {\n    bf: bloom_1.default,\n    cms: count_min_sketch_1.default,\n    cf: cuckoo_1.default,\n    tDigest: t_digest_1.default,\n    topK: top_k_1.default\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar commands_1 = require(\"./commands\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return commands_1.default; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(configKey) {\n    return ['GRAPH.CONFIG', 'GET', configKey];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(configKey, value) {\n    return [\n        'GRAPH.CONFIG',\n        'SET',\n        configKey,\n        value.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['GRAPH.DELETE', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, query) {\n    return ['GRAPH.EXPLAIN', key, query];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments() {\n    return ['GRAPH.LIST'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, query) {\n    return ['GRAPH.PROFILE', key, query];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(graph, query, options, compact) {\n    return (0, _1.pushQueryArguments)(['GRAPH.QUERY'], graph, query, options, compact);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.length === 1 ? {\n        headers: undefined,\n        data: undefined,\n        metadata: reply[0]\n    } : {\n        headers: reply[0],\n        data: reply[1],\n        metadata: reply[2]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nvar QUERY_1 = require(\"./QUERY\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return QUERY_1.FIRST_KEY_INDEX; } });\nexports.IS_READ_ONLY = true;\nfunction transformArguments(graph, query, options, compact) {\n    return (0, _1.pushQueryArguments)(['GRAPH.RO_QUERY'], graph, query, options, compact);\n}\nexports.transformArguments = transformArguments;\nvar QUERY_2 = require(\"./QUERY\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return QUERY_2.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key) {\n    return ['GRAPH.SLOWLOG', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(logs) {\n    return logs.map(([timestamp, command, query, took]) => ({\n        timestamp: new Date(Number(timestamp) * 1000),\n        command,\n        query,\n        took: Number(took)\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pushQueryArguments = void 0;\nconst CONFIG_GET = require(\"./CONFIG_GET\");\nconst CONFIG_SET = require(\"./CONFIG_SET\");\n;\nconst DELETE = require(\"./DELETE\");\nconst EXPLAIN = require(\"./EXPLAIN\");\nconst LIST = require(\"./LIST\");\nconst PROFILE = require(\"./PROFILE\");\nconst QUERY = require(\"./QUERY\");\nconst RO_QUERY = require(\"./RO_QUERY\");\nconst SLOWLOG = require(\"./SLOWLOG\");\nexports.default = {\n    CONFIG_GET,\n    configGet: CONFIG_GET,\n    CONFIG_SET,\n    configSet: CONFIG_SET,\n    DELETE,\n    delete: DELETE,\n    EXPLAIN,\n    explain: EXPLAIN,\n    LIST,\n    list: LIST,\n    PROFILE,\n    profile: PROFILE,\n    QUERY,\n    query: QUERY,\n    RO_QUERY,\n    roQuery: RO_QUERY,\n    SLOWLOG,\n    slowLog: SLOWLOG\n};\nfunction pushQueryArguments(args, graph, query, options, compact) {\n    args.push(graph);\n    if (typeof options === 'number') {\n        args.push(query);\n        pushTimeout(args, options);\n    }\n    else {\n        args.push(options?.params ?\n            `CYPHER ${queryParamsToString(options.params)} ${query}` :\n            query);\n        if (options?.TIMEOUT !== undefined) {\n            pushTimeout(args, options.TIMEOUT);\n        }\n    }\n    if (compact) {\n        args.push('--compact');\n    }\n    return args;\n}\nexports.pushQueryArguments = pushQueryArguments;\nfunction pushTimeout(args, timeout) {\n    args.push('TIMEOUT', timeout.toString());\n}\nfunction queryParamsToString(params) {\n    const parts = [];\n    for (const [key, value] of Object.entries(params)) {\n        parts.push(`${key}=${queryParamToString(value)}`);\n    }\n    return parts.join(' ');\n}\nfunction queryParamToString(param) {\n    if (param === null) {\n        return 'null';\n    }\n    switch (typeof param) {\n        case 'string':\n            return `\"${param.replace(/[\"\\\\]/g, '\\\\$&')}\"`;\n        case 'number':\n        case 'boolean':\n            return param.toString();\n    }\n    if (Array.isArray(param)) {\n        return `[${param.map(queryParamToString).join(',')}]`;\n    }\n    else if (typeof param === 'object') {\n        const body = [];\n        for (const [key, value] of Object.entries(param)) {\n            body.push(`${key}:${queryParamToString(value)}`);\n        }\n        return `{${body.join(',')}}`;\n    }\n    else {\n        throw new TypeError(`Unexpected param type ${typeof param} ${param}`);\n    }\n}\n", "\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Graph_instances, _Graph_client, _Graph_name, _Graph_metadata, _Graph_setMetadataPromise, _Graph_updateMetadata, _Graph_setMetadata, _Graph_cleanMetadataArray, _Graph_getMetadata, _Graph_getMetadataAsync, _Graph_parseReply, _Graph_parseValue, _Graph_parseEdge, _Graph_parseNode, _Graph_parseProperties;\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/RedisGraph/RedisGraph/blob/master/src/resultset/formatters/resultset_formatter.h#L20\nvar GraphValueTypes;\n(function (GraphValueTypes) {\n    GraphValueTypes[GraphValueTypes[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n    GraphValueTypes[GraphValueTypes[\"NULL\"] = 1] = \"NULL\";\n    GraphValueTypes[GraphValueTypes[\"STRING\"] = 2] = \"STRING\";\n    GraphValueTypes[GraphValueTypes[\"INTEGER\"] = 3] = \"INTEGER\";\n    GraphValueTypes[GraphValueTypes[\"BOOLEAN\"] = 4] = \"BOOLEAN\";\n    GraphValueTypes[GraphValueTypes[\"DOUBLE\"] = 5] = \"DOUBLE\";\n    GraphValueTypes[GraphValueTypes[\"ARRAY\"] = 6] = \"ARRAY\";\n    GraphValueTypes[GraphValueTypes[\"EDGE\"] = 7] = \"EDGE\";\n    GraphValueTypes[GraphValueTypes[\"NODE\"] = 8] = \"NODE\";\n    GraphValueTypes[GraphValueTypes[\"PATH\"] = 9] = \"PATH\";\n    GraphValueTypes[GraphValueTypes[\"MAP\"] = 10] = \"MAP\";\n    GraphValueTypes[GraphValueTypes[\"POINT\"] = 11] = \"POINT\";\n})(GraphValueTypes || (GraphValueTypes = {}));\nclass Graph {\n    constructor(client, name) {\n        _Graph_instances.add(this);\n        _Graph_client.set(this, void 0);\n        _Graph_name.set(this, void 0);\n        _Graph_metadata.set(this, void 0);\n        _Graph_setMetadataPromise.set(this, void 0);\n        __classPrivateFieldSet(this, _Graph_client, client, \"f\");\n        __classPrivateFieldSet(this, _Graph_name, name, \"f\");\n    }\n    async query(query, options) {\n        return __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseReply).call(this, await __classPrivateFieldGet(this, _Graph_client, \"f\").graph.query(__classPrivateFieldGet(this, _Graph_name, \"f\"), query, options, true));\n    }\n    async roQuery(query, options) {\n        return __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseReply).call(this, await __classPrivateFieldGet(this, _Graph_client, \"f\").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, \"f\"), query, options, true));\n    }\n}\n_Graph_client = new WeakMap(), _Graph_name = new WeakMap(), _Graph_metadata = new WeakMap(), _Graph_setMetadataPromise = new WeakMap(), _Graph_instances = new WeakSet(), _Graph_updateMetadata = function _Graph_updateMetadata() {\n    __classPrivateFieldSet(this, _Graph_setMetadataPromise, __classPrivateFieldGet(this, _Graph_setMetadataPromise, \"f\") ?? __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_setMetadata).call(this)\n        .finally(() => __classPrivateFieldSet(this, _Graph_setMetadataPromise, undefined, \"f\")), \"f\");\n    return __classPrivateFieldGet(this, _Graph_setMetadataPromise, \"f\");\n}, _Graph_setMetadata = \n// DO NOT use directly, use #updateMetadata instead\nasync function _Graph_setMetadata() {\n    const [labels, relationshipTypes, propertyKeys] = await Promise.all([\n        __classPrivateFieldGet(this, _Graph_client, \"f\").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, \"f\"), 'CALL db.labels()'),\n        __classPrivateFieldGet(this, _Graph_client, \"f\").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, \"f\"), 'CALL db.relationshipTypes()'),\n        __classPrivateFieldGet(this, _Graph_client, \"f\").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, \"f\"), 'CALL db.propertyKeys()')\n    ]);\n    __classPrivateFieldSet(this, _Graph_metadata, {\n        labels: __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_cleanMetadataArray).call(this, labels.data),\n        relationshipTypes: __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_cleanMetadataArray).call(this, relationshipTypes.data),\n        propertyKeys: __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_cleanMetadataArray).call(this, propertyKeys.data)\n    }, \"f\");\n    return __classPrivateFieldGet(this, _Graph_metadata, \"f\");\n}, _Graph_cleanMetadataArray = function _Graph_cleanMetadataArray(arr) {\n    return arr.map(([value]) => value);\n}, _Graph_getMetadata = function _Graph_getMetadata(key, id) {\n    return __classPrivateFieldGet(this, _Graph_metadata, \"f\")?.[key][id] ?? __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_getMetadataAsync).call(this, key, id);\n}, _Graph_getMetadataAsync = \n// DO NOT use directly, use #getMetadata instead\nasync function _Graph_getMetadataAsync(key, id) {\n    const value = (await __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_updateMetadata).call(this))[key][id];\n    if (value === undefined)\n        throw new Error(`Cannot find value from ${key}[${id}]`);\n    return value;\n}, _Graph_parseReply = async function _Graph_parseReply(reply) {\n    if (!reply.data)\n        return reply;\n    const promises = [], parsed = {\n        metadata: reply.metadata,\n        data: reply.data.map((row) => {\n            const data = {};\n            for (let i = 0; i < row.length; i++) {\n                data[reply.headers[i][1]] = __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseValue).call(this, row[i], promises);\n            }\n            return data;\n        })\n    };\n    if (promises.length)\n        await Promise.all(promises);\n    return parsed;\n}, _Graph_parseValue = function _Graph_parseValue([valueType, value], promises) {\n    switch (valueType) {\n        case GraphValueTypes.NULL:\n            return null;\n        case GraphValueTypes.STRING:\n        case GraphValueTypes.INTEGER:\n            return value;\n        case GraphValueTypes.BOOLEAN:\n            return value === 'true';\n        case GraphValueTypes.DOUBLE:\n            return parseFloat(value);\n        case GraphValueTypes.ARRAY:\n            return value.map(x => __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseValue).call(this, x, promises));\n        case GraphValueTypes.EDGE:\n            return __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseEdge).call(this, value, promises);\n        case GraphValueTypes.NODE:\n            return __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseNode).call(this, value, promises);\n        case GraphValueTypes.PATH:\n            return {\n                nodes: value[0][1].map(([, node]) => __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseNode).call(this, node, promises)),\n                edges: value[1][1].map(([, edge]) => __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseEdge).call(this, edge, promises))\n            };\n        case GraphValueTypes.MAP:\n            const map = {};\n            for (let i = 0; i < value.length; i++) {\n                map[value[i++]] = __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseValue).call(this, value[i], promises);\n            }\n            return map;\n        case GraphValueTypes.POINT:\n            return {\n                latitude: parseFloat(value[0]),\n                longitude: parseFloat(value[1])\n            };\n        default:\n            throw new Error(`unknown scalar type: ${valueType}`);\n    }\n}, _Graph_parseEdge = function _Graph_parseEdge([id, relationshipTypeId, sourceId, destinationId, properties], promises) {\n    const edge = {\n        id,\n        sourceId,\n        destinationId,\n        properties: __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseProperties).call(this, properties, promises)\n    };\n    const relationshipType = __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_getMetadata).call(this, 'relationshipTypes', relationshipTypeId);\n    if (relationshipType instanceof Promise) {\n        promises.push(relationshipType.then(value => edge.relationshipType = value));\n    }\n    else {\n        edge.relationshipType = relationshipType;\n    }\n    return edge;\n}, _Graph_parseNode = function _Graph_parseNode([id, labelIds, properties], promises) {\n    const labels = new Array(labelIds.length);\n    for (let i = 0; i < labelIds.length; i++) {\n        const value = __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_getMetadata).call(this, 'labels', labelIds[i]);\n        if (value instanceof Promise) {\n            promises.push(value.then(value => labels[i] = value));\n        }\n        else {\n            labels[i] = value;\n        }\n    }\n    return {\n        id,\n        labels,\n        properties: __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseProperties).call(this, properties, promises)\n    };\n}, _Graph_parseProperties = function _Graph_parseProperties(raw, promises) {\n    const parsed = {};\n    for (const [id, type, value] of raw) {\n        const parsedValue = __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_parseValue).call(this, [type, value], promises), key = __classPrivateFieldGet(this, _Graph_instances, \"m\", _Graph_getMetadata).call(this, 'propertyKeys', id);\n        if (key instanceof Promise) {\n            promises.push(key.then(key => parsed[key] = parsedValue));\n        }\n        else {\n            parsed[key] = parsedValue;\n        }\n    }\n    return parsed;\n};\nexports.default = Graph;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Graph = exports.default = void 0;\nvar commands_1 = require(\"./commands\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return commands_1.default; } });\nvar graph_1 = require(\"./graph\");\nObject.defineProperty(exports, \"Graph\", { enumerable: true, get: function () { return graph_1.default; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, ...jsons) {\n    const args = ['JSON.ARRAPPEND', key, path];\n    for (const json of jsons) {\n        args.push((0, _1.transformRedisJsonArgument)(json));\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, path, json, start, stop) {\n    const args = ['JSON.ARRINDEX', key, path, (0, _1.transformRedisJsonArgument)(json)];\n    if (start !== undefined && start !== null) {\n        args.push(start.toString());\n        if (stop !== undefined && stop !== null) {\n            args.push(stop.toString());\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, index, ...jsons) {\n    const args = ['JSON.ARRINSERT', key, path, index.toString()];\n    for (const json of jsons) {\n        args.push((0, _1.transformRedisJsonArgument)(json));\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, path) {\n    const args = ['JSON.ARRLEN', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, index) {\n    const args = ['JSON.ARRPOP', key];\n    if (path) {\n        args.push(path);\n        if (index !== undefined && index !== null) {\n            args.push(index.toString());\n        }\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    if (reply === null)\n        return null;\n    if (Array.isArray(reply)) {\n        return reply.map(_1.transformRedisJsonNullReply);\n    }\n    return (0, _1.transformRedisJsonNullReply)(reply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, start, stop) {\n    return ['JSON.ARRTRIM', key, path, start.toString(), stop.toString()];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 2;\nfunction transformArguments(key, path) {\n    const args = ['JSON.DEBUG', 'MEMORY', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path) {\n    const args = ['JSON.DEL', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path) {\n    const args = ['JSON.FORGET', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, options) {\n    let args = ['JSON.GET', key];\n    if (options?.path) {\n        args = (0, generic_transformers_1.pushVerdictArguments)(args, options.path);\n    }\n    if (options?.INDENT) {\n        args.push('INDENT', options.INDENT);\n    }\n    if (options?.NEWLINE) {\n        args.push('NEWLINE', options.NEWLINE);\n    }\n    if (options?.SPACE) {\n        args.push('SPACE', options.SPACE);\n    }\n    if (options?.NOESCAPE) {\n        args.push('NOESCAPE');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformRedisJsonNullReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, json) {\n    return ['JSON.MERGE', key, path, (0, _1.transformRedisJsonArgument)(json)];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(keys, path) {\n    return [\n        'JSON.MGET',\n        ...keys,\n        path\n    ];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(_1.transformRedisJsonNullReply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(items) {\n    const args = new Array(1 + items.length * 3);\n    args[0] = 'JSON.MSET';\n    let argsIndex = 1;\n    for (let i = 0; i < items.length; i++) {\n        const item = items[i];\n        args[argsIndex++] = item.key;\n        args[argsIndex++] = item.path;\n        args[argsIndex++] = (0, _1.transformRedisJsonArgument)(item.value);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, by) {\n    return ['JSON.NUMINCRBY', key, path, by.toString()];\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformNumbersReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, by) {\n    return ['JSON.NUMMULTBY', key, path, by.toString()];\n}\nexports.transformArguments = transformArguments;\nvar _1 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _1.transformNumbersReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path) {\n    const args = ['JSON.OBJKEYS', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path) {\n    const args = ['JSON.OBJLEN', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path) {\n    const args = ['JSON.RESP', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path, json, options) {\n    const args = ['JSON.SET', key, path, (0, _1.transformRedisJsonArgument)(json)];\n    if (options?.NX) {\n        args.push('NX');\n    }\n    else if (options?.XX) {\n        args.push('XX');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(...[key, pathOrAppend, append]) {\n    const args = ['JSON.STRAPPEND', key];\n    if (append !== undefined && append !== null) {\n        args.push(pathOrAppend, (0, _1.transformRedisJsonArgument)(append));\n    }\n    else {\n        args.push((0, _1.transformRedisJsonArgument)(pathOrAppend));\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, path) {\n    const args = ['JSON.STRLEN', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, path) {\n    const args = ['JSON.TYPE', key];\n    if (path) {\n        args.push(path);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformNumbersReply = exports.transformRedisJsonNullReply = exports.transformRedisJsonReply = exports.transformRedisJsonArgument = void 0;\nconst ARRAPPEND = require(\"./ARRAPPEND\");\nconst ARRINDEX = require(\"./ARRINDEX\");\nconst ARRINSERT = require(\"./ARRINSERT\");\nconst ARRLEN = require(\"./ARRLEN\");\nconst ARRPOP = require(\"./ARRPOP\");\nconst ARRTRIM = require(\"./ARRTRIM\");\nconst DEBUG_MEMORY = require(\"./DEBUG_MEMORY\");\nconst DEL = require(\"./DEL\");\nconst FORGET = require(\"./FORGET\");\nconst GET = require(\"./GET\");\nconst MERGE = require(\"./MERGE\");\nconst MGET = require(\"./MGET\");\nconst MSET = require(\"./MSET\");\nconst NUMINCRBY = require(\"./NUMINCRBY\");\nconst NUMMULTBY = require(\"./NUMMULTBY\");\nconst OBJKEYS = require(\"./OBJKEYS\");\nconst OBJLEN = require(\"./OBJLEN\");\nconst RESP = require(\"./RESP\");\nconst SET = require(\"./SET\");\nconst STRAPPEND = require(\"./STRAPPEND\");\nconst STRLEN = require(\"./STRLEN\");\nconst TYPE = require(\"./TYPE\");\nexports.default = {\n    ARRAPPEND,\n    arrAppend: ARRAPPEND,\n    ARRINDEX,\n    arrIndex: ARRINDEX,\n    ARRINSERT,\n    arrInsert: ARRINSERT,\n    ARRLEN,\n    arrLen: ARRLEN,\n    ARRPOP,\n    arrPop: ARRPOP,\n    ARRTRIM,\n    arrTrim: ARRTRIM,\n    DEBUG_MEMORY,\n    debugMemory: DEBUG_MEMORY,\n    DEL,\n    del: DEL,\n    FORGET,\n    forget: FORGET,\n    GET,\n    get: GET,\n    MERGE,\n    merge: MERGE,\n    MGET,\n    mGet: MGET,\n    MSET,\n    mSet: MSET,\n    NUMINCRBY,\n    numIncrBy: NUMINCRBY,\n    NUMMULTBY,\n    numMultBy: NUMMULTBY,\n    OBJKEYS,\n    objKeys: OBJKEYS,\n    OBJLEN,\n    objLen: OBJLEN,\n    RESP,\n    resp: RESP,\n    SET,\n    set: SET,\n    STRAPPEND,\n    strAppend: STRAPPEND,\n    STRLEN,\n    strLen: STRLEN,\n    TYPE,\n    type: TYPE\n};\nfunction transformRedisJsonArgument(json) {\n    return JSON.stringify(json);\n}\nexports.transformRedisJsonArgument = transformRedisJsonArgument;\nfunction transformRedisJsonReply(json) {\n    return JSON.parse(json);\n}\nexports.transformRedisJsonReply = transformRedisJsonReply;\nfunction transformRedisJsonNullReply(json) {\n    if (json === null)\n        return null;\n    return transformRedisJsonReply(json);\n}\nexports.transformRedisJsonNullReply = transformRedisJsonNullReply;\nfunction transformNumbersReply(reply) {\n    return JSON.parse(reply);\n}\nexports.transformNumbersReply = transformNumbersReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar commands_1 = require(\"./commands\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return commands_1.default; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments() {\n    return ['FT._LIST'];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst _1 = require(\".\");\nfunction transformArguments(index, schema) {\n    const args = ['FT.ALTER', index, 'SCHEMA', 'ADD'];\n    (0, _1.pushSchema)(args, schema);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.pushAggregatehOptions = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = exports.AggregateGroupByReducers = exports.AggregateSteps = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nconst _1 = require(\".\");\nvar AggregateSteps;\n(function (AggregateSteps) {\n    AggregateSteps[\"GROUPBY\"] = \"GROUPBY\";\n    AggregateSteps[\"SORTBY\"] = \"SORTBY\";\n    AggregateSteps[\"APPLY\"] = \"APPLY\";\n    AggregateSteps[\"LIMIT\"] = \"LIMIT\";\n    AggregateSteps[\"FILTER\"] = \"FILTER\";\n})(AggregateSteps || (exports.AggregateSteps = AggregateSteps = {}));\nvar AggregateGroupByReducers;\n(function (AggregateGroupByReducers) {\n    AggregateGroupByReducers[\"COUNT\"] = \"COUNT\";\n    AggregateGroupByReducers[\"COUNT_DISTINCT\"] = \"COUNT_DISTINCT\";\n    AggregateGroupByReducers[\"COUNT_DISTINCTISH\"] = \"COUNT_DISTINCTISH\";\n    AggregateGroupByReducers[\"SUM\"] = \"SUM\";\n    AggregateGroupByReducers[\"MIN\"] = \"MIN\";\n    AggregateGroupByReducers[\"MAX\"] = \"MAX\";\n    AggregateGroupByReducers[\"AVG\"] = \"AVG\";\n    AggregateGroupByReducers[\"STDDEV\"] = \"STDDEV\";\n    AggregateGroupByReducers[\"QUANTILE\"] = \"QUANTILE\";\n    AggregateGroupByReducers[\"TOLIST\"] = \"TOLIST\";\n    AggregateGroupByReducers[\"TO_LIST\"] = \"TOLIST\";\n    AggregateGroupByReducers[\"FIRST_VALUE\"] = \"FIRST_VALUE\";\n    AggregateGroupByReducers[\"RANDOM_SAMPLE\"] = \"RANDOM_SAMPLE\";\n})(AggregateGroupByReducers || (exports.AggregateGroupByReducers = AggregateGroupByReducers = {}));\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query, options) {\n    return pushAggregatehOptions(['FT.AGGREGATE', index, query], options);\n}\nexports.transformArguments = transformArguments;\nfunction pushAggregatehOptions(args, options) {\n    if (options?.VERBATIM) {\n        args.push('VERBATIM');\n    }\n    if (options?.ADDSCORES) {\n        args.push('ADDSCORES');\n    }\n    if (options?.LOAD) {\n        args.push('LOAD');\n        (0, _1.pushArgumentsWithLength)(args, () => {\n            if (Array.isArray(options.LOAD)) {\n                for (const load of options.LOAD) {\n                    pushLoadField(args, load);\n                }\n            }\n            else {\n                pushLoadField(args, options.LOAD);\n            }\n        });\n    }\n    if (options?.STEPS) {\n        for (const step of options.STEPS) {\n            switch (step.type) {\n                case AggregateSteps.GROUPBY:\n                    args.push('GROUPBY');\n                    if (!step.properties) {\n                        args.push('0');\n                    }\n                    else {\n                        (0, generic_transformers_1.pushVerdictArgument)(args, step.properties);\n                    }\n                    if (Array.isArray(step.REDUCE)) {\n                        for (const reducer of step.REDUCE) {\n                            pushGroupByReducer(args, reducer);\n                        }\n                    }\n                    else {\n                        pushGroupByReducer(args, step.REDUCE);\n                    }\n                    break;\n                case AggregateSteps.SORTBY:\n                    (0, _1.pushSortByArguments)(args, 'SORTBY', step.BY);\n                    if (step.MAX) {\n                        args.push('MAX', step.MAX.toString());\n                    }\n                    break;\n                case AggregateSteps.APPLY:\n                    args.push('APPLY', step.expression, 'AS', step.AS);\n                    break;\n                case AggregateSteps.LIMIT:\n                    args.push('LIMIT', step.from.toString(), step.size.toString());\n                    break;\n                case AggregateSteps.FILTER:\n                    args.push('FILTER', step.expression);\n                    break;\n            }\n        }\n    }\n    (0, _1.pushParamsArgs)(args, options?.PARAMS);\n    if (options?.DIALECT) {\n        args.push('DIALECT', options.DIALECT.toString());\n    }\n    if (options?.TIMEOUT !== undefined) {\n        args.push('TIMEOUT', options.TIMEOUT.toString());\n    }\n    return args;\n}\nexports.pushAggregatehOptions = pushAggregatehOptions;\nfunction pushLoadField(args, toLoad) {\n    if (typeof toLoad === 'string') {\n        args.push(toLoad);\n    }\n    else {\n        args.push(toLoad.identifier);\n        if (toLoad.AS) {\n            args.push('AS', toLoad.AS);\n        }\n    }\n}\nfunction pushGroupByReducer(args, reducer) {\n    args.push('REDUCE', reducer.type);\n    switch (reducer.type) {\n        case AggregateGroupByReducers.COUNT:\n            args.push('0');\n            break;\n        case AggregateGroupByReducers.COUNT_DISTINCT:\n        case AggregateGroupByReducers.COUNT_DISTINCTISH:\n        case AggregateGroupByReducers.SUM:\n        case AggregateGroupByReducers.MIN:\n        case AggregateGroupByReducers.MAX:\n        case AggregateGroupByReducers.AVG:\n        case AggregateGroupByReducers.STDDEV:\n        case AggregateGroupByReducers.TOLIST:\n            args.push('1', reducer.property);\n            break;\n        case AggregateGroupByReducers.QUANTILE:\n            args.push('2', reducer.property, reducer.quantile.toString());\n            break;\n        case AggregateGroupByReducers.FIRST_VALUE: {\n            (0, _1.pushArgumentsWithLength)(args, () => {\n                args.push(reducer.property);\n                if (reducer.BY) {\n                    args.push('BY');\n                    if (typeof reducer.BY === 'string') {\n                        args.push(reducer.BY);\n                    }\n                    else {\n                        args.push(reducer.BY.property);\n                        if (reducer.BY.direction) {\n                            args.push(reducer.BY.direction);\n                        }\n                    }\n                }\n            });\n            break;\n        }\n        case AggregateGroupByReducers.RANDOM_SAMPLE:\n            args.push('2', reducer.property, reducer.sampleSize.toString());\n            break;\n    }\n    if (reducer.AS) {\n        args.push('AS', reducer.AS);\n    }\n}\nfunction transformReply(rawReply) {\n    const results = [];\n    for (let i = 1; i < rawReply.length; i++) {\n        results.push((0, generic_transformers_1.transformTuplesReply)(rawReply[i]));\n    }\n    return {\n        total: rawReply[0],\n        results\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst AGGREGATE_1 = require(\"./AGGREGATE\");\nvar AGGREGATE_2 = require(\"./AGGREGATE\");\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return AGGREGATE_2.FIRST_KEY_INDEX; } });\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return AGGREGATE_2.IS_READ_ONLY; } });\nfunction transformArguments(index, query, options) {\n    const args = (0, AGGREGATE_1.transformArguments)(index, query, options);\n    args.push('WITHCURSOR');\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        ...(0, AGGREGATE_1.transformReply)(reply[0]),\n        cursor: reply[1]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(name, index) {\n    return ['FT.ALIASADD', name, index];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(name, index) {\n    return ['FT.ALIASDEL', name, index];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(name, index) {\n    return ['FT.ALIASUPDATE', name, index];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(option) {\n    return ['FT.CONFIG', 'GET', option];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const transformedReply = Object.create(null);\n    for (const [key, value] of rawReply) {\n        transformedReply[key] = value;\n    }\n    return transformedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(option, value) {\n    return ['FT.CONFIG', 'SET', option, value];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nconst _1 = require(\".\");\nfunction transformArguments(index, schema, options) {\n    const args = ['FT.CREATE', index];\n    if (options?.ON) {\n        args.push('ON', options.ON);\n    }\n    (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'PREFIX', options?.PREFIX);\n    if (options?.FILTER) {\n        args.push('FILTER', options.FILTER);\n    }\n    if (options?.LANGUAGE) {\n        args.push('LANGUAGE', options.LANGUAGE);\n    }\n    if (options?.LANGUAGE_FIELD) {\n        args.push('LANGUAGE_FIELD', options.LANGUAGE_FIELD);\n    }\n    if (options?.SCORE) {\n        args.push('SCORE', options.SCORE.toString());\n    }\n    if (options?.SCORE_FIELD) {\n        args.push('SCORE_FIELD', options.SCORE_FIELD);\n    }\n    // if (options?.PAYLOAD_FIELD) {\n    //     args.push('PAYLOAD_FIELD', options.PAYLOAD_FIELD);\n    // }\n    if (options?.MAXTEXTFIELDS) {\n        args.push('MAXTEXTFIELDS');\n    }\n    if (options?.TEMPORARY) {\n        args.push('TEMPORARY', options.TEMPORARY.toString());\n    }\n    if (options?.NOOFFSETS) {\n        args.push('NOOFFSETS');\n    }\n    if (options?.NOHL) {\n        args.push('NOHL');\n    }\n    if (options?.NOFIELDS) {\n        args.push('NOFIELDS');\n    }\n    if (options?.NOFREQS) {\n        args.push('NOFREQS');\n    }\n    if (options?.SKIPINITIALSCAN) {\n        args.push('SKIPINITIALSCAN');\n    }\n    (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'STOPWORDS', options?.STOPWORDS);\n    args.push('SCHEMA');\n    (0, _1.pushSchema)(args, schema);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(index, cursorId) {\n    return [\n        'FT.CURSOR',\n        'DEL',\n        index,\n        cursorId.toString()\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, cursor, options) {\n    const args = [\n        'FT.CURSOR',\n        'READ',\n        index,\n        cursor.toString()\n    ];\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nvar AGGREGATE_WITHCURSOR_1 = require(\"./AGGREGATE_WITHCURSOR\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return AGGREGATE_WITHCURSOR_1.transformReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nfunction transformArguments(dictionary, term) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['FT.DICTADD', dictionary], term);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nfunction transformArguments(dictionary, term) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['FT.DICTDEL', dictionary], term);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(dictionary) {\n    return ['FT.DICTDUMP', dictionary];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(index, options) {\n    const args = ['FT.DROPINDEX', index];\n    if (options?.DD) {\n        args.push('DD');\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query, options) {\n    const args = ['FT.EXPLAIN', index, query];\n    (0, _1.pushParamsArgs)(args, options?.PARAMS);\n    if (options?.DIALECT) {\n        args.push('DIALECT', options.DIALECT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query) {\n    return ['FT.EXPLAINCLI', index, query];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nfunction transformArguments(index) {\n    return ['FT.INFO', index];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    return {\n        indexName: rawReply[1],\n        indexOptions: rawReply[3],\n        indexDefinition: (0, generic_transformers_1.transformTuplesReply)(rawReply[5]),\n        attributes: rawReply[7].map(attribute => (0, generic_transformers_1.transformTuplesReply)(attribute)),\n        numDocs: rawReply[9],\n        maxDocId: rawReply[11],\n        numTerms: rawReply[13],\n        numRecords: rawReply[15],\n        invertedSzMb: rawReply[17],\n        vectorIndexSzMb: rawReply[19],\n        totalInvertedIndexBlocks: rawReply[21],\n        offsetVectorsSzMb: rawReply[23],\n        docTableSizeMb: rawReply[25],\n        sortableValuesSizeMb: rawReply[27],\n        keyTableSizeMb: rawReply[29],\n        recordsPerDocAvg: rawReply[31],\n        bytesPerRecordAvg: rawReply[33],\n        offsetsPerTermAvg: rawReply[35],\n        offsetBitsPerRecordAvg: rawReply[37],\n        hashIndexingFailures: rawReply[39],\n        indexing: rawReply[41],\n        percentIndexed: rawReply[43],\n        gcStats: {\n            bytesCollected: rawReply[45][1],\n            totalMsRun: rawReply[45][3],\n            totalCycles: rawReply[45][5],\n            averageCycleTimeMs: rawReply[45][7],\n            lastRunTimeMs: rawReply[45][9],\n            gcNumericTreesMissed: rawReply[45][11],\n            gcBlocksDenied: rawReply[45][13]\n        },\n        cursorStats: {\n            globalIdle: rawReply[47][1],\n            globalTotal: rawReply[47][3],\n            indexCapacity: rawReply[47][5],\n            idnexTotal: rawReply[47][7]\n        },\n        stopWords: rawReply[49]\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query, options) {\n    return (0, _1.pushSearchOptions)(['FT.SEARCH', index, query], options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply, withoutDocuments) {\n    const documents = [];\n    let i = 1;\n    while (i < reply.length) {\n        documents.push({\n            id: reply[i++],\n            value: withoutDocuments ? Object.create(null) : documentValue(reply[i++])\n        });\n    }\n    return {\n        total: reply[0],\n        documents\n    };\n}\nexports.transformReply = transformReply;\nfunction documentValue(tuples) {\n    const message = Object.create(null);\n    let i = 0;\n    while (i < tuples.length) {\n        const key = tuples[i++], value = tuples[i++];\n        if (key === '$') { // might be a JSON reply\n            try {\n                Object.assign(message, JSON.parse(value));\n                continue;\n            }\n            catch {\n                // set as a regular property if not a valid JSON\n            }\n        }\n        message[key] = value;\n    }\n    return message;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst SEARCH_1 = require(\"./SEARCH\");\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query, options) {\n    let args = ['FT.PROFILE', index, 'SEARCH'];\n    if (options?.LIMITED) {\n        args.push('LIMITED');\n    }\n    args.push('QUERY', query);\n    return (0, _1.pushSearchOptions)(args, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply, withoutDocuments) {\n    return {\n        results: (0, SEARCH_1.transformReply)(reply[0], withoutDocuments),\n        profile: (0, _1.transformProfile)(reply[1])\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst AGGREGATE_1 = require(\"./AGGREGATE\");\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query, options) {\n    const args = ['FT.PROFILE', index, 'AGGREGATE'];\n    if (options?.LIMITED) {\n        args.push('LIMITED');\n    }\n    args.push('QUERY', query);\n    (0, AGGREGATE_1.pushAggregatehOptions)(args, options);\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        results: (0, AGGREGATE_1.transformReply)(reply[0]),\n        profile: (0, _1.transformProfile)(reply[1])\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(index, query, options) {\n    return (0, _1.pushSearchOptions)(['FT.SEARCH', index, query, 'NOCONTENT'], options);\n}\nexports.transformArguments = transformArguments;\n;\nfunction transformReply(reply) {\n    return {\n        total: reply[0],\n        documents: reply.slice(1)\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(index, query, options) {\n    const args = ['FT.SPELLCHECK', index, query];\n    if (options?.DISTANCE) {\n        args.push('DISTANCE', options.DISTANCE.toString());\n    }\n    if (options?.TERMS) {\n        if (Array.isArray(options.TERMS)) {\n            for (const term of options.TERMS) {\n                pushTerms(args, term);\n            }\n        }\n        else {\n            pushTerms(args, options.TERMS);\n        }\n    }\n    if (options?.DIALECT) {\n        args.push('DIALECT', options.DIALECT.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction pushTerms(args, { mode, dictionary }) {\n    args.push('TERMS', mode, dictionary);\n}\nfunction transformReply(rawReply) {\n    return rawReply.map(([, term, suggestions]) => ({\n        term,\n        suggestions: suggestions.map(([score, suggestion]) => ({\n            score: Number(score),\n            suggestion\n        }))\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(key, string, score, options) {\n    const args = ['FT.SUGADD', key, string, score.toString()];\n    if (options?.INCR) {\n        args.push('INCR');\n    }\n    if (options?.PAYLOAD) {\n        args.push('PAYLOAD', options.PAYLOAD);\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = void 0;\nfunction transformArguments(key, string) {\n    return ['FT.SUGDEL', key, string];\n}\nexports.transformArguments = transformArguments;\nvar generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, prefix, options) {\n    const args = ['FT.SUGGET', key, prefix];\n    if (options?.FUZZY) {\n        args.push('FUZZY');\n    }\n    if (options?.MAX) {\n        args.push('MAX', options.MAX.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst SUGGET_1 = require(\"./SUGGET\");\nvar SUGGET_2 = require(\"./SUGGET\");\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } });\nfunction transformArguments(key, prefix, options) {\n    return [\n        ...(0, SUGGET_1.transformArguments)(key, prefix, options),\n        'WITHPAYLOADS'\n    ];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    if (rawReply === null)\n        return null;\n    const transformedReply = [];\n    for (let i = 0; i < rawReply.length; i += 2) {\n        transformedReply.push({\n            suggestion: rawReply[i],\n            payload: rawReply[i + 1]\n        });\n    }\n    return transformedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst SUGGET_1 = require(\"./SUGGET\");\nvar SUGGET_2 = require(\"./SUGGET\");\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } });\nfunction transformArguments(key, prefix, options) {\n    return [\n        ...(0, SUGGET_1.transformArguments)(key, prefix, options),\n        'WITHSCORES',\n        'WITHPAYLOADS'\n    ];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    if (rawReply === null)\n        return null;\n    const transformedReply = [];\n    for (let i = 0; i < rawReply.length; i += 3) {\n        transformedReply.push({\n            suggestion: rawReply[i],\n            score: Number(rawReply[i + 1]),\n            payload: rawReply[i + 2]\n        });\n    }\n    return transformedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst SUGGET_1 = require(\"./SUGGET\");\nvar SUGGET_2 = require(\"./SUGGET\");\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } });\nfunction transformArguments(key, prefix, options) {\n    return [\n        ...(0, SUGGET_1.transformArguments)(key, prefix, options),\n        'WITHSCORES'\n    ];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    if (rawReply === null)\n        return null;\n    const transformedReply = [];\n    for (let i = 0; i < rawReply.length; i += 2) {\n        transformedReply.push({\n            suggestion: rawReply[i],\n            score: Number(rawReply[i + 1])\n        });\n    }\n    return transformedReply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['FT.SUGLEN', key];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(index) {\n    return ['FT.SYNDUMP', index];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nfunction transformArguments(index, groupId, terms, options) {\n    const args = ['FT.SYNUPDATE', index, groupId];\n    if (options?.SKIPINITIALSCAN) {\n        args.push('SKIPINITIALSCAN');\n    }\n    return (0, generic_transformers_1.pushVerdictArguments)(args, terms);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = void 0;\nfunction transformArguments(index, fieldName) {\n    return ['FT.TAGVALS', index, fieldName];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformProfile = exports.pushSearchOptions = exports.pushParamsArgs = exports.pushSchema = exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM = exports.VectorAlgorithms = exports.SchemaTextFieldPhonetics = exports.SchemaFieldTypes = exports.pushArgumentsWithLength = exports.pushSortByArguments = exports.pushSortByProperty = exports.RedisSearchLanguages = void 0;\nconst _LIST = require(\"./_LIST\");\nconst ALTER = require(\"./ALTER\");\nconst AGGREGATE_WITHCURSOR = require(\"./AGGREGATE_WITHCURSOR\");\nconst AGGREGATE = require(\"./AGGREGATE\");\nconst ALIASADD = require(\"./ALIASADD\");\nconst ALIASDEL = require(\"./ALIASDEL\");\nconst ALIASUPDATE = require(\"./ALIASUPDATE\");\nconst CONFIG_GET = require(\"./CONFIG_GET\");\nconst CONFIG_SET = require(\"./CONFIG_SET\");\nconst CREATE = require(\"./CREATE\");\nconst CURSOR_DEL = require(\"./CURSOR_DEL\");\nconst CURSOR_READ = require(\"./CURSOR_READ\");\nconst DICTADD = require(\"./DICTADD\");\nconst DICTDEL = require(\"./DICTDEL\");\nconst DICTDUMP = require(\"./DICTDUMP\");\nconst DROPINDEX = require(\"./DROPINDEX\");\nconst EXPLAIN = require(\"./EXPLAIN\");\nconst EXPLAINCLI = require(\"./EXPLAINCLI\");\nconst INFO = require(\"./INFO\");\nconst PROFILESEARCH = require(\"./PROFILE_SEARCH\");\nconst PROFILEAGGREGATE = require(\"./PROFILE_AGGREGATE\");\nconst SEARCH = require(\"./SEARCH\");\nconst SEARCH_NOCONTENT = require(\"./SEARCH_NOCONTENT\");\nconst SPELLCHECK = require(\"./SPELLCHECK\");\nconst SUGADD = require(\"./SUGADD\");\nconst SUGDEL = require(\"./SUGDEL\");\nconst SUGGET_WITHPAYLOADS = require(\"./SUGGET_WITHPAYLOADS\");\nconst SUGGET_WITHSCORES_WITHPAYLOADS = require(\"./SUGGET_WITHSCORES_WITHPAYLOADS\");\nconst SUGGET_WITHSCORES = require(\"./SUGGET_WITHSCORES\");\nconst SUGGET = require(\"./SUGGET\");\nconst SUGLEN = require(\"./SUGLEN\");\nconst SYNDUMP = require(\"./SYNDUMP\");\nconst SYNUPDATE = require(\"./SYNUPDATE\");\nconst TAGVALS = require(\"./TAGVALS\");\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.default = {\n    _LIST,\n    _list: _LIST,\n    ALTER,\n    alter: ALTER,\n    AGGREGATE_WITHCURSOR,\n    aggregateWithCursor: AGGREGATE_WITHCURSOR,\n    AGGREGATE,\n    aggregate: AGGREGATE,\n    ALIASADD,\n    aliasAdd: ALIASADD,\n    ALIASDEL,\n    aliasDel: ALIASDEL,\n    ALIASUPDATE,\n    aliasUpdate: ALIASUPDATE,\n    CONFIG_GET,\n    configGet: CONFIG_GET,\n    CONFIG_SET,\n    configSet: CONFIG_SET,\n    CREATE,\n    create: CREATE,\n    CURSOR_DEL,\n    cursorDel: CURSOR_DEL,\n    CURSOR_READ,\n    cursorRead: CURSOR_READ,\n    DICTADD,\n    dictAdd: DICTADD,\n    DICTDEL,\n    dictDel: DICTDEL,\n    DICTDUMP,\n    dictDump: DICTDUMP,\n    DROPINDEX,\n    dropIndex: DROPINDEX,\n    EXPLAIN,\n    explain: EXPLAIN,\n    EXPLAINCLI,\n    explainCli: EXPLAINCLI,\n    INFO,\n    info: INFO,\n    PROFILESEARCH,\n    profileSearch: PROFILESEARCH,\n    PROFILEAGGREGATE,\n    profileAggregate: PROFILEAGGREGATE,\n    SEARCH,\n    search: SEARCH,\n    SEARCH_NOCONTENT,\n    searchNoContent: SEARCH_NOCONTENT,\n    SPELLCHECK,\n    spellCheck: SPELLCHECK,\n    SUGADD,\n    sugAdd: SUGADD,\n    SUGDEL,\n    sugDel: SUGDEL,\n    SUGGET_WITHPAYLOADS,\n    sugGetWithPayloads: SUGGET_WITHPAYLOADS,\n    SUGGET_WITHSCORES_WITHPAYLOADS,\n    sugGetWithScoresWithPayloads: SUGGET_WITHSCORES_WITHPAYLOADS,\n    SUGGET_WITHSCORES,\n    sugGetWithScores: SUGGET_WITHSCORES,\n    SUGGET,\n    sugGet: SUGGET,\n    SUGLEN,\n    sugLen: SUGLEN,\n    SYNDUMP,\n    synDump: SYNDUMP,\n    SYNUPDATE,\n    synUpdate: SYNUPDATE,\n    TAGVALS,\n    tagVals: TAGVALS\n};\nvar RedisSearchLanguages;\n(function (RedisSearchLanguages) {\n    RedisSearchLanguages[\"ARABIC\"] = \"Arabic\";\n    RedisSearchLanguages[\"BASQUE\"] = \"Basque\";\n    RedisSearchLanguages[\"CATALANA\"] = \"Catalan\";\n    RedisSearchLanguages[\"DANISH\"] = \"Danish\";\n    RedisSearchLanguages[\"DUTCH\"] = \"Dutch\";\n    RedisSearchLanguages[\"ENGLISH\"] = \"English\";\n    RedisSearchLanguages[\"FINNISH\"] = \"Finnish\";\n    RedisSearchLanguages[\"FRENCH\"] = \"French\";\n    RedisSearchLanguages[\"GERMAN\"] = \"German\";\n    RedisSearchLanguages[\"GREEK\"] = \"Greek\";\n    RedisSearchLanguages[\"HUNGARIAN\"] = \"Hungarian\";\n    RedisSearchLanguages[\"INDONESAIN\"] = \"Indonesian\";\n    RedisSearchLanguages[\"IRISH\"] = \"Irish\";\n    RedisSearchLanguages[\"ITALIAN\"] = \"Italian\";\n    RedisSearchLanguages[\"LITHUANIAN\"] = \"Lithuanian\";\n    RedisSearchLanguages[\"NEPALI\"] = \"Nepali\";\n    RedisSearchLanguages[\"NORWEIGAN\"] = \"Norwegian\";\n    RedisSearchLanguages[\"PORTUGUESE\"] = \"Portuguese\";\n    RedisSearchLanguages[\"ROMANIAN\"] = \"Romanian\";\n    RedisSearchLanguages[\"RUSSIAN\"] = \"Russian\";\n    RedisSearchLanguages[\"SPANISH\"] = \"Spanish\";\n    RedisSearchLanguages[\"SWEDISH\"] = \"Swedish\";\n    RedisSearchLanguages[\"TAMIL\"] = \"Tamil\";\n    RedisSearchLanguages[\"TURKISH\"] = \"Turkish\";\n    RedisSearchLanguages[\"CHINESE\"] = \"Chinese\";\n})(RedisSearchLanguages || (exports.RedisSearchLanguages = RedisSearchLanguages = {}));\nfunction pushSortByProperty(args, sortBy) {\n    if (typeof sortBy === 'string') {\n        args.push(sortBy);\n    }\n    else {\n        args.push(sortBy.BY);\n        if (sortBy.DIRECTION) {\n            args.push(sortBy.DIRECTION);\n        }\n    }\n}\nexports.pushSortByProperty = pushSortByProperty;\nfunction pushSortByArguments(args, name, sortBy) {\n    const lengthBefore = args.push(name, '' // will be overwritten\n    );\n    if (Array.isArray(sortBy)) {\n        for (const field of sortBy) {\n            pushSortByProperty(args, field);\n        }\n    }\n    else {\n        pushSortByProperty(args, sortBy);\n    }\n    args[lengthBefore - 1] = (args.length - lengthBefore).toString();\n    return args;\n}\nexports.pushSortByArguments = pushSortByArguments;\nfunction pushArgumentsWithLength(args, fn) {\n    const lengthIndex = args.push('') - 1;\n    fn(args);\n    args[lengthIndex] = (args.length - lengthIndex - 1).toString();\n    return args;\n}\nexports.pushArgumentsWithLength = pushArgumentsWithLength;\nvar SchemaFieldTypes;\n(function (SchemaFieldTypes) {\n    SchemaFieldTypes[\"TEXT\"] = \"TEXT\";\n    SchemaFieldTypes[\"NUMERIC\"] = \"NUMERIC\";\n    SchemaFieldTypes[\"GEO\"] = \"GEO\";\n    SchemaFieldTypes[\"TAG\"] = \"TAG\";\n    SchemaFieldTypes[\"VECTOR\"] = \"VECTOR\";\n    SchemaFieldTypes[\"GEOSHAPE\"] = \"GEOSHAPE\";\n})(SchemaFieldTypes || (exports.SchemaFieldTypes = SchemaFieldTypes = {}));\nfunction pushCommonFieldArguments(args, fieldOptions) {\n    if (fieldOptions.SORTABLE) {\n        args.push('SORTABLE');\n        if (fieldOptions.SORTABLE === 'UNF') {\n            args.push('UNF');\n        }\n    }\n    if (fieldOptions.NOINDEX) {\n        args.push('NOINDEX');\n    }\n}\nvar SchemaTextFieldPhonetics;\n(function (SchemaTextFieldPhonetics) {\n    SchemaTextFieldPhonetics[\"DM_EN\"] = \"dm:en\";\n    SchemaTextFieldPhonetics[\"DM_FR\"] = \"dm:fr\";\n    SchemaTextFieldPhonetics[\"FM_PT\"] = \"dm:pt\";\n    SchemaTextFieldPhonetics[\"DM_ES\"] = \"dm:es\";\n})(SchemaTextFieldPhonetics || (exports.SchemaTextFieldPhonetics = SchemaTextFieldPhonetics = {}));\nvar VectorAlgorithms;\n(function (VectorAlgorithms) {\n    VectorAlgorithms[\"FLAT\"] = \"FLAT\";\n    VectorAlgorithms[\"HNSW\"] = \"HNSW\";\n})(VectorAlgorithms || (exports.VectorAlgorithms = VectorAlgorithms = {}));\nexports.SCHEMA_GEO_SHAPE_COORD_SYSTEM = {\n    SPHERICAL: 'SPHERICAL',\n    FLAT: 'FLAT'\n};\nfunction pushSchema(args, schema) {\n    for (const [field, fieldOptions] of Object.entries(schema)) {\n        args.push(field);\n        if (typeof fieldOptions === 'string') {\n            args.push(fieldOptions);\n            continue;\n        }\n        if (fieldOptions.AS) {\n            args.push('AS', fieldOptions.AS);\n        }\n        args.push(fieldOptions.type);\n        switch (fieldOptions.type) {\n            case SchemaFieldTypes.TEXT:\n                if (fieldOptions.NOSTEM) {\n                    args.push('NOSTEM');\n                }\n                if (fieldOptions.WEIGHT) {\n                    args.push('WEIGHT', fieldOptions.WEIGHT.toString());\n                }\n                if (fieldOptions.PHONETIC) {\n                    args.push('PHONETIC', fieldOptions.PHONETIC);\n                }\n                if (fieldOptions.WITHSUFFIXTRIE) {\n                    args.push('WITHSUFFIXTRIE');\n                }\n                pushCommonFieldArguments(args, fieldOptions);\n                if (fieldOptions.INDEXEMPTY) {\n                    args.push('INDEXEMPTY');\n                }\n                break;\n            case SchemaFieldTypes.NUMERIC:\n            case SchemaFieldTypes.GEO:\n                pushCommonFieldArguments(args, fieldOptions);\n                break;\n            case SchemaFieldTypes.TAG:\n                if (fieldOptions.SEPARATOR) {\n                    args.push('SEPARATOR', fieldOptions.SEPARATOR);\n                }\n                if (fieldOptions.CASESENSITIVE) {\n                    args.push('CASESENSITIVE');\n                }\n                if (fieldOptions.WITHSUFFIXTRIE) {\n                    args.push('WITHSUFFIXTRIE');\n                }\n                pushCommonFieldArguments(args, fieldOptions);\n                if (fieldOptions.INDEXEMPTY) {\n                    args.push('INDEXEMPTY');\n                }\n                break;\n            case SchemaFieldTypes.VECTOR:\n                args.push(fieldOptions.ALGORITHM);\n                pushArgumentsWithLength(args, () => {\n                    args.push('TYPE', fieldOptions.TYPE, 'DIM', fieldOptions.DIM.toString(), 'DISTANCE_METRIC', fieldOptions.DISTANCE_METRIC);\n                    if (fieldOptions.INITIAL_CAP) {\n                        args.push('INITIAL_CAP', fieldOptions.INITIAL_CAP.toString());\n                    }\n                    switch (fieldOptions.ALGORITHM) {\n                        case VectorAlgorithms.FLAT:\n                            if (fieldOptions.BLOCK_SIZE) {\n                                args.push('BLOCK_SIZE', fieldOptions.BLOCK_SIZE.toString());\n                            }\n                            break;\n                        case VectorAlgorithms.HNSW:\n                            if (fieldOptions.M) {\n                                args.push('M', fieldOptions.M.toString());\n                            }\n                            if (fieldOptions.EF_CONSTRUCTION) {\n                                args.push('EF_CONSTRUCTION', fieldOptions.EF_CONSTRUCTION.toString());\n                            }\n                            if (fieldOptions.EF_RUNTIME) {\n                                args.push('EF_RUNTIME', fieldOptions.EF_RUNTIME.toString());\n                            }\n                            break;\n                    }\n                });\n                break;\n            case SchemaFieldTypes.GEOSHAPE:\n                if (fieldOptions.COORD_SYSTEM !== undefined) {\n                    args.push('COORD_SYSTEM', fieldOptions.COORD_SYSTEM);\n                }\n                pushCommonFieldArguments(args, fieldOptions);\n                break;\n        }\n        if (fieldOptions.INDEXMISSING) {\n            args.push('INDEXMISSING');\n        }\n    }\n}\nexports.pushSchema = pushSchema;\nfunction pushParamsArgs(args, params) {\n    if (params) {\n        const enrties = Object.entries(params);\n        args.push('PARAMS', (enrties.length * 2).toString());\n        for (const [key, value] of enrties) {\n            args.push(key, typeof value === 'number' ? value.toString() : value);\n        }\n    }\n    return args;\n}\nexports.pushParamsArgs = pushParamsArgs;\nfunction pushSearchOptions(args, options) {\n    if (options?.VERBATIM) {\n        args.push('VERBATIM');\n    }\n    if (options?.NOSTOPWORDS) {\n        args.push('NOSTOPWORDS');\n    }\n    // if (options?.WITHSCORES) {\n    //     args.push('WITHSCORES');\n    // }\n    // if (options?.WITHPAYLOADS) {\n    //     args.push('WITHPAYLOADS');\n    // }\n    (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'INKEYS', options?.INKEYS);\n    (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'INFIELDS', options?.INFIELDS);\n    (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'RETURN', options?.RETURN);\n    if (options?.SUMMARIZE) {\n        args.push('SUMMARIZE');\n        if (typeof options.SUMMARIZE === 'object') {\n            if (options.SUMMARIZE.FIELDS) {\n                args.push('FIELDS');\n                (0, generic_transformers_1.pushVerdictArgument)(args, options.SUMMARIZE.FIELDS);\n            }\n            if (options.SUMMARIZE.FRAGS) {\n                args.push('FRAGS', options.SUMMARIZE.FRAGS.toString());\n            }\n            if (options.SUMMARIZE.LEN) {\n                args.push('LEN', options.SUMMARIZE.LEN.toString());\n            }\n            if (options.SUMMARIZE.SEPARATOR) {\n                args.push('SEPARATOR', options.SUMMARIZE.SEPARATOR);\n            }\n        }\n    }\n    if (options?.HIGHLIGHT) {\n        args.push('HIGHLIGHT');\n        if (typeof options.HIGHLIGHT === 'object') {\n            if (options.HIGHLIGHT.FIELDS) {\n                args.push('FIELDS');\n                (0, generic_transformers_1.pushVerdictArgument)(args, options.HIGHLIGHT.FIELDS);\n            }\n            if (options.HIGHLIGHT.TAGS) {\n                args.push('TAGS', options.HIGHLIGHT.TAGS.open, options.HIGHLIGHT.TAGS.close);\n            }\n        }\n    }\n    if (options?.SLOP) {\n        args.push('SLOP', options.SLOP.toString());\n    }\n    if (options?.INORDER) {\n        args.push('INORDER');\n    }\n    if (options?.LANGUAGE) {\n        args.push('LANGUAGE', options.LANGUAGE);\n    }\n    if (options?.EXPANDER) {\n        args.push('EXPANDER', options.EXPANDER);\n    }\n    if (options?.SCORER) {\n        args.push('SCORER', options.SCORER);\n    }\n    // if (options?.EXPLAINSCORE) {\n    //     args.push('EXPLAINSCORE');\n    // }\n    // if (options?.PAYLOAD) {\n    //     args.push('PAYLOAD', options.PAYLOAD);\n    // }\n    if (options?.SORTBY) {\n        args.push('SORTBY');\n        pushSortByProperty(args, options.SORTBY);\n    }\n    // if (options?.MSORTBY) {\n    //     pushSortByArguments(args, 'MSORTBY', options.MSORTBY);\n    // }\n    if (options?.LIMIT) {\n        args.push('LIMIT', options.LIMIT.from.toString(), options.LIMIT.size.toString());\n    }\n    if (options?.PARAMS) {\n        pushParamsArgs(args, options.PARAMS);\n    }\n    if (options?.DIALECT) {\n        args.push('DIALECT', options.DIALECT.toString());\n    }\n    if (options?.RETURN?.length === 0) {\n        args.preserve = true;\n    }\n    if (options?.TIMEOUT !== undefined) {\n        args.push('TIMEOUT', options.TIMEOUT.toString());\n    }\n    return args;\n}\nexports.pushSearchOptions = pushSearchOptions;\nfunction transformProfile(reply) {\n    return {\n        totalProfileTime: reply[0][1],\n        parsingTime: reply[1][1],\n        pipelineCreationTime: reply[2][1],\n        iteratorsProfile: transformIterators(reply[3][1])\n    };\n}\nexports.transformProfile = transformProfile;\nfunction transformIterators(IteratorsProfile) {\n    var res = {};\n    for (let i = 0; i < IteratorsProfile.length; i += 2) {\n        const value = IteratorsProfile[i + 1];\n        switch (IteratorsProfile[i]) {\n            case 'Type':\n                res.type = value;\n                break;\n            case 'Counter':\n                res.counter = value;\n                break;\n            case 'Time':\n                res.time = value;\n                break;\n            case 'Query type':\n                res.queryType = value;\n                break;\n            case 'Child iterators':\n                res.childIterators = value.map(transformChildIterators);\n                break;\n        }\n    }\n    return res;\n}\nfunction transformChildIterators(IteratorsProfile) {\n    var res = {};\n    for (let i = 1; i < IteratorsProfile.length; i += 2) {\n        const value = IteratorsProfile[i + 1];\n        switch (IteratorsProfile[i]) {\n            case 'Type':\n                res.type = value;\n                break;\n            case 'Counter':\n                res.counter = value;\n                break;\n            case 'Time':\n                res.time = value;\n                break;\n            case 'Size':\n                res.size = value;\n                break;\n            case 'Term':\n                res.term = value;\n                break;\n            case 'Child iterators':\n                res.childIterators = value.map(transformChildIterators);\n                break;\n        }\n    }\n    return res;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AggregateSteps = exports.AggregateGroupByReducers = exports.VectorAlgorithms = exports.SchemaTextFieldPhonetics = exports.SchemaFieldTypes = exports.RedisSearchLanguages = exports.default = void 0;\nvar commands_1 = require(\"./commands\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return commands_1.default; } });\nvar commands_2 = require(\"./commands\");\nObject.defineProperty(exports, \"RedisSearchLanguages\", { enumerable: true, get: function () { return commands_2.RedisSearchLanguages; } });\nObject.defineProperty(exports, \"SchemaFieldTypes\", { enumerable: true, get: function () { return commands_2.SchemaFieldTypes; } });\nObject.defineProperty(exports, \"SchemaTextFieldPhonetics\", { enumerable: true, get: function () { return commands_2.SchemaTextFieldPhonetics; } });\nObject.defineProperty(exports, \"VectorAlgorithms\", { enumerable: true, get: function () { return commands_2.VectorAlgorithms; } });\nvar AGGREGATE_1 = require(\"./commands/AGGREGATE\");\nObject.defineProperty(exports, \"AggregateGroupByReducers\", { enumerable: true, get: function () { return AGGREGATE_1.AggregateGroupByReducers; } });\nObject.defineProperty(exports, \"AggregateSteps\", { enumerable: true, get: function () { return AGGREGATE_1.AggregateSteps; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, timestamp, value, options) {\n    const args = [\n        'TS.ADD',\n        key,\n        (0, _1.transformTimestampArgument)(timestamp),\n        value.toString()\n    ];\n    (0, _1.pushRetentionArgument)(args, options?.RETENTION);\n    (0, _1.pushEncodingArgument)(args, options?.ENCODING);\n    (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE);\n    if (options?.ON_DUPLICATE) {\n        args.push('ON_DUPLICATE', options.ON_DUPLICATE);\n    }\n    (0, _1.pushLabelsArgument)(args, options?.LABELS);\n    (0, _1.pushIgnoreArgument)(args, options?.IGNORE);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, options) {\n    const args = ['TS.ALTER', key];\n    (0, _1.pushRetentionArgument)(args, options?.RETENTION);\n    (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE);\n    (0, _1.pushDuplicatePolicy)(args, options?.DUPLICATE_POLICY);\n    (0, _1.pushLabelsArgument)(args, options?.LABELS);\n    (0, _1.pushIgnoreArgument)(args, options?.IGNORE);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, options) {\n    const args = ['TS.CREATE', key];\n    (0, _1.pushRetentionArgument)(args, options?.RETENTION);\n    (0, _1.pushEncodingArgument)(args, options?.ENCODING);\n    (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE);\n    (0, _1.pushDuplicatePolicy)(args, options?.DUPLICATE_POLICY);\n    (0, _1.pushLabelsArgument)(args, options?.LABELS);\n    (0, _1.pushIgnoreArgument)(args, options?.IGNORE);\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(sourceKey, destinationKey, aggregationType, bucketDuration, alignTimestamp) {\n    const args = [\n        'TS.CREATERULE',\n        sourceKey,\n        destinationKey,\n        'AGGREGATION',\n        aggregationType,\n        bucketDuration.toString()\n    ];\n    if (alignTimestamp) {\n        args.push(alignTimestamp.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, value, options) {\n    return (0, _1.transformIncrDecrArguments)('TS.DECRBY', key, value, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRTS_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRTS_KEY_INDEX = 1;\nfunction transformArguments(key, fromTimestamp, toTimestamp) {\n    return [\n        'TS.DEL',\n        key,\n        (0, _1.transformTimestampArgument)(fromTimestamp),\n        (0, _1.transformTimestampArgument)(toTimestamp)\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(sourceKey, destinationKey) {\n    return [\n        'TS.DELETERULE',\n        sourceKey,\n        destinationKey\n    ];\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, options) {\n    return (0, _1.pushLatestArgument)(['TS.GET', key], options?.LATEST);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    if (reply.length === 0)\n        return null;\n    return (0, _1.transformSampleReply)(reply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(key, value, options) {\n    return (0, _1.transformIncrDecrArguments)('TS.INCRBY', key, value, options);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key) {\n    return ['TS.INFO', key];\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return {\n        totalSamples: reply[1],\n        memoryUsage: reply[3],\n        firstTimestamp: reply[5],\n        lastTimestamp: reply[7],\n        retentionTime: reply[9],\n        chunkCount: reply[11],\n        chunkSize: reply[13],\n        chunkType: reply[15],\n        duplicatePolicy: reply[17],\n        labels: reply[19].map(([name, value]) => ({\n            name,\n            value\n        })),\n        sourceKey: reply[21],\n        rules: reply[23].map(([key, timeBucket, aggregationType]) => ({\n            key,\n            timeBucket,\n            aggregationType\n        }))\n    };\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0;\nconst INFO_1 = require(\"./INFO\");\nvar INFO_2 = require(\"./INFO\");\nObject.defineProperty(exports, \"IS_READ_ONLY\", { enumerable: true, get: function () { return INFO_2.IS_READ_ONLY; } });\nObject.defineProperty(exports, \"FIRST_KEY_INDEX\", { enumerable: true, get: function () { return INFO_2.FIRST_KEY_INDEX; } });\nfunction transformArguments(key) {\n    const args = (0, INFO_1.transformArguments)(key);\n    args.push('DEBUG');\n    return args;\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(rawReply) {\n    const reply = (0, INFO_1.transformReply)(rawReply);\n    reply.keySelfName = rawReply[25];\n    reply.chunks = rawReply[27].map(chunk => ({\n        startTimestamp: chunk[1],\n        endTimestamp: chunk[3],\n        samples: chunk[5],\n        size: chunk[7],\n        bytesPerSample: chunk[9]\n    }));\n    return reply;\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nfunction transformArguments(toAdd) {\n    const args = ['TS.MADD'];\n    for (const { key, timestamp, value } of toAdd) {\n        args.push(key, (0, _1.transformTimestampArgument)(timestamp), value.toString());\n    }\n    return args;\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(filter, options) {\n    const args = (0, _1.pushLatestArgument)(['TS.MGET'], options?.LATEST);\n    return (0, _1.pushFilterArgument)(args, filter);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return reply.map(([key, _, sample]) => ({\n        key,\n        sample: (0, _1.transformSampleReply)(sample)\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(filter, options) {\n    const args = (0, _1.pushWithLabelsArgument)(['TS.MGET'], options?.SELECTED_LABELS);\n    return (0, _1.pushFilterArgument)(args, filter);\n}\nexports.transformArguments = transformArguments;\n;\nfunction transformReply(reply) {\n    return reply.map(([key, labels, sample]) => ({\n        key,\n        labels: (0, _1.transformLablesReply)(labels),\n        sample: (0, _1.transformSampleReply)(sample)\n    }));\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(filter) {\n    return (0, generic_transformers_1.pushVerdictArguments)(['TS.QUERYINDEX'], filter);\n}\nexports.transformArguments = transformArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fromTimestamp, toTimestamp, options) {\n    return (0, _1.pushRangeArguments)(['TS.RANGE', key], fromTimestamp, toTimestamp, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return (0, _1.transformRangeReply)(reply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;\nconst _1 = require(\".\");\nexports.FIRST_KEY_INDEX = 1;\nexports.IS_READ_ONLY = true;\nfunction transformArguments(key, fromTimestamp, toTimestamp, options) {\n    return (0, _1.pushRangeArguments)(['TS.REVRANGE', key], fromTimestamp, toTimestamp, options);\n}\nexports.transformArguments = transformArguments;\nfunction transformReply(reply) {\n    return (0, _1.transformRangeReply)(reply);\n}\nexports.transformReply = transformReply;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(fromTimestamp, toTimestamp, filters, options) {\n    return (0, _1.pushMRangeArguments)(['TS.MRANGE'], fromTimestamp, toTimestamp, filters, options);\n}\nexports.transformArguments = transformArguments;\nvar _2 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _2.transformMRangeReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(fromTimestamp, toTimestamp, filters, options) {\n    return (0, _1.pushMRangeWithLabelsArguments)(['TS.MRANGE'], fromTimestamp, toTimestamp, filters, options);\n}\nexports.transformArguments = transformArguments;\nvar _2 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _2.transformMRangeWithLabelsReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(fromTimestamp, toTimestamp, filters, options) {\n    return (0, _1.pushMRangeArguments)(['TS.MREVRANGE'], fromTimestamp, toTimestamp, filters, options);\n}\nexports.transformArguments = transformArguments;\nvar _2 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _2.transformMRangeReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;\nconst _1 = require(\".\");\nexports.IS_READ_ONLY = true;\nfunction transformArguments(fromTimestamp, toTimestamp, filters, options) {\n    return (0, _1.pushMRangeWithLabelsArguments)(['TS.MREVRANGE'], fromTimestamp, toTimestamp, filters, options);\n}\nexports.transformArguments = transformArguments;\nvar _2 = require(\".\");\nObject.defineProperty(exports, \"transformReply\", { enumerable: true, get: function () { return _2.transformMRangeWithLabelsReply; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pushLatestArgument = exports.transformMRangeWithLabelsReply = exports.transformMRangeReply = exports.transformRangeReply = exports.pushMRangeWithLabelsArguments = exports.pushWithLabelsArgument = exports.pushMRangeArguments = exports.pushFilterArgument = exports.pushMRangeGroupByArguments = exports.pushRangeArguments = exports.TimeSeriesBucketTimestamp = exports.transformSampleReply = exports.transformIncrDecrArguments = exports.pushLabelsArgument = exports.transformLablesReply = exports.pushDuplicatePolicy = exports.pushChunkSizeArgument = exports.pushEncodingArgument = exports.TimeSeriesEncoding = exports.pushRetentionArgument = exports.pushIgnoreArgument = exports.transformTimestampArgument = exports.TimeSeriesReducers = exports.TimeSeriesDuplicatePolicies = exports.TimeSeriesAggregationType = void 0;\nconst ADD = require(\"./ADD\");\nconst ALTER = require(\"./ALTER\");\nconst CREATE = require(\"./CREATE\");\nconst CREATERULE = require(\"./CREATERULE\");\nconst DECRBY = require(\"./DECRBY\");\nconst DEL = require(\"./DEL\");\nconst DELETERULE = require(\"./DELETERULE\");\nconst GET = require(\"./GET\");\nconst INCRBY = require(\"./INCRBY\");\nconst INFO_DEBUG = require(\"./INFO_DEBUG\");\nconst INFO = require(\"./INFO\");\nconst MADD = require(\"./MADD\");\nconst MGET = require(\"./MGET\");\nconst MGET_WITHLABELS = require(\"./MGET_WITHLABELS\");\nconst QUERYINDEX = require(\"./QUERYINDEX\");\nconst RANGE = require(\"./RANGE\");\nconst REVRANGE = require(\"./REVRANGE\");\nconst MRANGE = require(\"./MRANGE\");\nconst MRANGE_WITHLABELS = require(\"./MRANGE_WITHLABELS\");\nconst MREVRANGE = require(\"./MREVRANGE\");\nconst MREVRANGE_WITHLABELS = require(\"./MREVRANGE_WITHLABELS\");\nconst generic_transformers_1 = require(\"@redis/client/dist/lib/commands/generic-transformers\");\nexports.default = {\n    ADD,\n    add: ADD,\n    ALTER,\n    alter: ALTER,\n    CREATE,\n    create: CREATE,\n    CREATERULE,\n    createRule: CREATERULE,\n    DECRBY,\n    decrBy: DECRBY,\n    DEL,\n    del: DEL,\n    DELETERULE,\n    deleteRule: DELETERULE,\n    GET,\n    get: GET,\n    INCRBY,\n    incrBy: INCRBY,\n    INFO_DEBUG,\n    infoDebug: INFO_DEBUG,\n    INFO,\n    info: INFO,\n    MADD,\n    mAdd: MADD,\n    MGET,\n    mGet: MGET,\n    MGET_WITHLABELS,\n    mGetWithLabels: MGET_WITHLABELS,\n    QUERYINDEX,\n    queryIndex: QUERYINDEX,\n    RANGE,\n    range: RANGE,\n    REVRANGE,\n    revRange: REVRANGE,\n    MRANGE,\n    mRange: MRANGE,\n    MRANGE_WITHLABELS,\n    mRangeWithLabels: MRANGE_WITHLABELS,\n    MREVRANGE,\n    mRevRange: MREVRANGE,\n    MREVRANGE_WITHLABELS,\n    mRevRangeWithLabels: MREVRANGE_WITHLABELS\n};\nvar TimeSeriesAggregationType;\n(function (TimeSeriesAggregationType) {\n    TimeSeriesAggregationType[\"AVG\"] = \"AVG\";\n    // @deprecated\n    TimeSeriesAggregationType[\"AVERAGE\"] = \"AVG\";\n    TimeSeriesAggregationType[\"FIRST\"] = \"FIRST\";\n    TimeSeriesAggregationType[\"LAST\"] = \"LAST\";\n    TimeSeriesAggregationType[\"MIN\"] = \"MIN\";\n    // @deprecated\n    TimeSeriesAggregationType[\"MINIMUM\"] = \"MIN\";\n    TimeSeriesAggregationType[\"MAX\"] = \"MAX\";\n    // @deprecated\n    TimeSeriesAggregationType[\"MAXIMUM\"] = \"MAX\";\n    TimeSeriesAggregationType[\"SUM\"] = \"SUM\";\n    TimeSeriesAggregationType[\"RANGE\"] = \"RANGE\";\n    TimeSeriesAggregationType[\"COUNT\"] = \"COUNT\";\n    TimeSeriesAggregationType[\"STD_P\"] = \"STD.P\";\n    TimeSeriesAggregationType[\"STD_S\"] = \"STD.S\";\n    TimeSeriesAggregationType[\"VAR_P\"] = \"VAR.P\";\n    TimeSeriesAggregationType[\"VAR_S\"] = \"VAR.S\";\n    TimeSeriesAggregationType[\"TWA\"] = \"TWA\";\n})(TimeSeriesAggregationType || (exports.TimeSeriesAggregationType = TimeSeriesAggregationType = {}));\nvar TimeSeriesDuplicatePolicies;\n(function (TimeSeriesDuplicatePolicies) {\n    TimeSeriesDuplicatePolicies[\"BLOCK\"] = \"BLOCK\";\n    TimeSeriesDuplicatePolicies[\"FIRST\"] = \"FIRST\";\n    TimeSeriesDuplicatePolicies[\"LAST\"] = \"LAST\";\n    TimeSeriesDuplicatePolicies[\"MIN\"] = \"MIN\";\n    TimeSeriesDuplicatePolicies[\"MAX\"] = \"MAX\";\n    TimeSeriesDuplicatePolicies[\"SUM\"] = \"SUM\";\n})(TimeSeriesDuplicatePolicies || (exports.TimeSeriesDuplicatePolicies = TimeSeriesDuplicatePolicies = {}));\nvar TimeSeriesReducers;\n(function (TimeSeriesReducers) {\n    TimeSeriesReducers[\"AVG\"] = \"AVG\";\n    TimeSeriesReducers[\"SUM\"] = \"SUM\";\n    TimeSeriesReducers[\"MIN\"] = \"MIN\";\n    // @deprecated\n    TimeSeriesReducers[\"MINIMUM\"] = \"MIN\";\n    TimeSeriesReducers[\"MAX\"] = \"MAX\";\n    // @deprecated\n    TimeSeriesReducers[\"MAXIMUM\"] = \"MAX\";\n    TimeSeriesReducers[\"RANGE\"] = \"range\";\n    TimeSeriesReducers[\"COUNT\"] = \"COUNT\";\n    TimeSeriesReducers[\"STD_P\"] = \"STD.P\";\n    TimeSeriesReducers[\"STD_S\"] = \"STD.S\";\n    TimeSeriesReducers[\"VAR_P\"] = \"VAR.P\";\n    TimeSeriesReducers[\"VAR_S\"] = \"VAR.S\";\n})(TimeSeriesReducers || (exports.TimeSeriesReducers = TimeSeriesReducers = {}));\nfunction transformTimestampArgument(timestamp) {\n    if (typeof timestamp === 'string')\n        return timestamp;\n    return (typeof timestamp === 'number' ?\n        timestamp :\n        timestamp.getTime()).toString();\n}\nexports.transformTimestampArgument = transformTimestampArgument;\nfunction pushIgnoreArgument(args, ignore) {\n    if (ignore !== undefined) {\n        args.push('IGNORE', ignore.MAX_TIME_DIFF.toString(), ignore.MAX_VAL_DIFF.toString());\n    }\n}\nexports.pushIgnoreArgument = pushIgnoreArgument;\nfunction pushRetentionArgument(args, retention) {\n    if (retention !== undefined) {\n        args.push('RETENTION', retention.toString());\n    }\n    return args;\n}\nexports.pushRetentionArgument = pushRetentionArgument;\nvar TimeSeriesEncoding;\n(function (TimeSeriesEncoding) {\n    TimeSeriesEncoding[\"COMPRESSED\"] = \"COMPRESSED\";\n    TimeSeriesEncoding[\"UNCOMPRESSED\"] = \"UNCOMPRESSED\";\n})(TimeSeriesEncoding || (exports.TimeSeriesEncoding = TimeSeriesEncoding = {}));\nfunction pushEncodingArgument(args, encoding) {\n    if (encoding !== undefined) {\n        args.push('ENCODING', encoding);\n    }\n    return args;\n}\nexports.pushEncodingArgument = pushEncodingArgument;\nfunction pushChunkSizeArgument(args, chunkSize) {\n    if (chunkSize !== undefined) {\n        args.push('CHUNK_SIZE', chunkSize.toString());\n    }\n    return args;\n}\nexports.pushChunkSizeArgument = pushChunkSizeArgument;\nfunction pushDuplicatePolicy(args, duplicatePolicy) {\n    if (duplicatePolicy !== undefined) {\n        args.push('DUPLICATE_POLICY', duplicatePolicy);\n    }\n    return args;\n}\nexports.pushDuplicatePolicy = pushDuplicatePolicy;\nfunction transformLablesReply(reply) {\n    const labels = {};\n    for (const [key, value] of reply) {\n        labels[key] = value;\n    }\n    return labels;\n}\nexports.transformLablesReply = transformLablesReply;\nfunction pushLabelsArgument(args, labels) {\n    if (labels) {\n        args.push('LABELS');\n        for (const [label, value] of Object.entries(labels)) {\n            args.push(label, value);\n        }\n    }\n    return args;\n}\nexports.pushLabelsArgument = pushLabelsArgument;\nfunction transformIncrDecrArguments(command, key, value, options) {\n    const args = [\n        command,\n        key,\n        value.toString()\n    ];\n    if (options?.TIMESTAMP !== undefined && options?.TIMESTAMP !== null) {\n        args.push('TIMESTAMP', transformTimestampArgument(options.TIMESTAMP));\n    }\n    pushRetentionArgument(args, options?.RETENTION);\n    if (options?.UNCOMPRESSED) {\n        args.push('UNCOMPRESSED');\n    }\n    pushChunkSizeArgument(args, options?.CHUNK_SIZE);\n    pushLabelsArgument(args, options?.LABELS);\n    return args;\n}\nexports.transformIncrDecrArguments = transformIncrDecrArguments;\nfunction transformSampleReply(reply) {\n    return {\n        timestamp: reply[0],\n        value: Number(reply[1])\n    };\n}\nexports.transformSampleReply = transformSampleReply;\nvar TimeSeriesBucketTimestamp;\n(function (TimeSeriesBucketTimestamp) {\n    TimeSeriesBucketTimestamp[\"LOW\"] = \"-\";\n    TimeSeriesBucketTimestamp[\"HIGH\"] = \"+\";\n    TimeSeriesBucketTimestamp[\"MID\"] = \"~\";\n})(TimeSeriesBucketTimestamp || (exports.TimeSeriesBucketTimestamp = TimeSeriesBucketTimestamp = {}));\nfunction pushRangeArguments(args, fromTimestamp, toTimestamp, options) {\n    args.push(transformTimestampArgument(fromTimestamp), transformTimestampArgument(toTimestamp));\n    pushLatestArgument(args, options?.LATEST);\n    if (options?.FILTER_BY_TS) {\n        args.push('FILTER_BY_TS');\n        for (const ts of options.FILTER_BY_TS) {\n            args.push(transformTimestampArgument(ts));\n        }\n    }\n    if (options?.FILTER_BY_VALUE) {\n        args.push('FILTER_BY_VALUE', options.FILTER_BY_VALUE.min.toString(), options.FILTER_BY_VALUE.max.toString());\n    }\n    if (options?.COUNT) {\n        args.push('COUNT', options.COUNT.toString());\n    }\n    if (options?.ALIGN) {\n        args.push('ALIGN', transformTimestampArgument(options.ALIGN));\n    }\n    if (options?.AGGREGATION) {\n        args.push('AGGREGATION', options.AGGREGATION.type, transformTimestampArgument(options.AGGREGATION.timeBucket));\n        if (options.AGGREGATION.BUCKETTIMESTAMP) {\n            args.push('BUCKETTIMESTAMP', options.AGGREGATION.BUCKETTIMESTAMP);\n        }\n        if (options.AGGREGATION.EMPTY) {\n            args.push('EMPTY');\n        }\n    }\n    return args;\n}\nexports.pushRangeArguments = pushRangeArguments;\nfunction pushMRangeGroupByArguments(args, groupBy) {\n    if (groupBy) {\n        args.push('GROUPBY', groupBy.label, 'REDUCE', groupBy.reducer);\n    }\n    return args;\n}\nexports.pushMRangeGroupByArguments = pushMRangeGroupByArguments;\nfunction pushFilterArgument(args, filter) {\n    args.push('FILTER');\n    return (0, generic_transformers_1.pushVerdictArguments)(args, filter);\n}\nexports.pushFilterArgument = pushFilterArgument;\nfunction pushMRangeArguments(args, fromTimestamp, toTimestamp, filter, options) {\n    args = pushRangeArguments(args, fromTimestamp, toTimestamp, options);\n    args = pushFilterArgument(args, filter);\n    return pushMRangeGroupByArguments(args, options?.GROUPBY);\n}\nexports.pushMRangeArguments = pushMRangeArguments;\nfunction pushWithLabelsArgument(args, selectedLabels) {\n    if (!selectedLabels) {\n        args.push('WITHLABELS');\n    }\n    else {\n        args.push('SELECTED_LABELS');\n        args = (0, generic_transformers_1.pushVerdictArguments)(args, selectedLabels);\n    }\n    return args;\n}\nexports.pushWithLabelsArgument = pushWithLabelsArgument;\nfunction pushMRangeWithLabelsArguments(args, fromTimestamp, toTimestamp, filter, options) {\n    args = pushRangeArguments(args, fromTimestamp, toTimestamp, options);\n    args = pushWithLabelsArgument(args, options?.SELECTED_LABELS);\n    args = pushFilterArgument(args, filter);\n    return pushMRangeGroupByArguments(args, options?.GROUPBY);\n}\nexports.pushMRangeWithLabelsArguments = pushMRangeWithLabelsArguments;\nfunction transformRangeReply(reply) {\n    return reply.map(transformSampleReply);\n}\nexports.transformRangeReply = transformRangeReply;\nfunction transformMRangeReply(reply) {\n    const args = [];\n    for (const [key, _, sample] of reply) {\n        args.push({\n            key,\n            samples: sample.map(transformSampleReply)\n        });\n    }\n    return args;\n}\nexports.transformMRangeReply = transformMRangeReply;\nfunction transformMRangeWithLabelsReply(reply) {\n    const args = [];\n    for (const [key, labels, samples] of reply) {\n        args.push({\n            key,\n            labels: transformLablesReply(labels),\n            samples: samples.map(transformSampleReply)\n        });\n    }\n    return args;\n}\nexports.transformMRangeWithLabelsReply = transformMRangeWithLabelsReply;\nfunction pushLatestArgument(args, latest) {\n    if (latest) {\n        args.push('LATEST');\n    }\n    return args;\n}\nexports.pushLatestArgument = pushLatestArgument;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeSeriesBucketTimestamp = exports.TimeSeriesReducers = exports.TimeSeriesAggregationType = exports.TimeSeriesEncoding = exports.TimeSeriesDuplicatePolicies = exports.default = void 0;\nvar commands_1 = require(\"./commands\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return commands_1.default; } });\nvar commands_2 = require(\"./commands\");\nObject.defineProperty(exports, \"TimeSeriesDuplicatePolicies\", { enumerable: true, get: function () { return commands_2.TimeSeriesDuplicatePolicies; } });\nObject.defineProperty(exports, \"TimeSeriesEncoding\", { enumerable: true, get: function () { return commands_2.TimeSeriesEncoding; } });\nObject.defineProperty(exports, \"TimeSeriesAggregationType\", { enumerable: true, get: function () { return commands_2.TimeSeriesAggregationType; } });\nObject.defineProperty(exports, \"TimeSeriesReducers\", { enumerable: true, get: function () { return commands_2.TimeSeriesReducers; } });\nObject.defineProperty(exports, \"TimeSeriesBucketTimestamp\", { enumerable: true, get: function () { return commands_2.TimeSeriesBucketTimestamp; } });\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCluster = exports.createClient = void 0;\nconst client_1 = require(\"@redis/client\");\nconst bloom_1 = require(\"@redis/bloom\");\nconst graph_1 = require(\"@redis/graph\");\nconst json_1 = require(\"@redis/json\");\nconst search_1 = require(\"@redis/search\");\nconst time_series_1 = require(\"@redis/time-series\");\n__exportStar(require(\"@redis/client\"), exports);\n__exportStar(require(\"@redis/bloom\"), exports);\n__exportStar(require(\"@redis/graph\"), exports);\n__exportStar(require(\"@redis/json\"), exports);\n__exportStar(require(\"@redis/search\"), exports);\n__exportStar(require(\"@redis/time-series\"), exports);\nconst modules = {\n    ...bloom_1.default,\n    graph: graph_1.default,\n    json: json_1.default,\n    ft: search_1.default,\n    ts: time_series_1.default\n};\nfunction createClient(options) {\n    return (0, client_1.createClient)({\n        ...options,\n        modules: {\n            ...modules,\n            ...options?.modules\n        }\n    });\n}\nexports.createClient = createClient;\nfunction createCluster(options) {\n    return (0, client_1.createCluster)({\n        ...options,\n        modules: {\n            ...modules,\n            ...options?.modules\n        }\n    });\n}\nexports.createCluster = createCluster;\n", "/* istanbul ignore file */\nimport { DateTime } from 'luxon';\nimport { createClient, createCluster } from 'redis';\nimport { logger } from '../../../logger';\nimport { compressToBase64, decompressFromBase64 } from '../../compress';\nimport { regEx } from '../../regex';\nimport type { PackageCacheNamespace } from './types';\n\nlet client:\n  | ReturnType\n  | ReturnType\n  | undefined;\nlet rprefix: string | undefined;\n\nfunction getKey(namespace: PackageCacheNamespace, key: string): string {\n  return `${rprefix}${namespace}-${key}`;\n}\n\nexport function normalizeRedisUrl(url: string): string {\n  return url.replace(regEx(/^(rediss?)\\+cluster:\\/\\//), '$1://');\n}\n\nexport async function end(): Promise {\n  try {\n    // https://github.com/redis/node-redis#disconnecting\n    await client?.disconnect();\n  } catch (err) {\n    logger.warn({ err }, 'Redis cache end failed');\n  }\n}\n\nasync function rm(\n  namespace: PackageCacheNamespace,\n  key: string,\n): Promise {\n  logger.trace({ rprefix, namespace, key }, 'Removing cache entry');\n  await client?.del(getKey(namespace, key));\n}\n\nexport async function get(\n  namespace: PackageCacheNamespace,\n  key: string,\n): Promise {\n  if (!client) {\n    return undefined;\n  }\n  logger.trace(`cache.get(${namespace}, ${key})`);\n  try {\n    const res = await client?.get(getKey(namespace, key));\n    const cachedValue = res && JSON.parse(res);\n    if (cachedValue) {\n      if (DateTime.local() < DateTime.fromISO(cachedValue.expiry)) {\n        logger.trace({ rprefix, namespace, key }, 'Returning cached value');\n        // istanbul ignore if\n        if (!cachedValue.compress) {\n          return cachedValue.value;\n        }\n        const res = await decompressFromBase64(cachedValue.value);\n        return JSON.parse(res);\n      }\n      // istanbul ignore next\n      await rm(namespace, key);\n    }\n  } catch {\n    logger.trace({ rprefix, namespace, key }, 'Cache miss');\n  }\n  return undefined;\n}\n\nexport async function set(\n  namespace: PackageCacheNamespace,\n  key: string,\n  value: unknown,\n  ttlMinutes = 5,\n): Promise {\n  logger.trace({ rprefix, namespace, key, ttlMinutes }, 'Saving cached value');\n\n  // Redis requires TTL to be integer, not float\n  const redisTTL = Math.floor(ttlMinutes * 60);\n\n  try {\n    await client?.set(\n      getKey(namespace, key),\n      JSON.stringify({\n        compress: true,\n        value: await compressToBase64(JSON.stringify(value)),\n        expiry: DateTime.local().plus({ minutes: ttlMinutes }),\n      }),\n      { EX: redisTTL },\n    );\n  } catch (err) {\n    logger.once.warn({ err }, 'Error while setting Redis cache value');\n  }\n}\n\nexport async function init(\n  url: string,\n  prefix: string | undefined,\n): Promise {\n  if (!url) {\n    return;\n  }\n  rprefix = prefix ?? '';\n  logger.debug('Redis cache init');\n\n  const rewrittenUrl = normalizeRedisUrl(url);\n  // If any replacement was made, it means the regex matched and we are in clustered mode\n  const clusteredMode = rewrittenUrl.length !== url.length;\n\n  const config = {\n    url: rewrittenUrl,\n    socket: {\n      reconnectStrategy: (retries: number) => {\n        // Reconnect after this time\n        return Math.min(retries * 100, 3000);\n      },\n    },\n    pingInterval: 30000, // 30s\n  };\n  if (clusteredMode) {\n    client = createCluster({\n      rootNodes: [config],\n    });\n  } else {\n    client = createClient(config);\n  }\n  await client.connect();\n  logger.debug('Redis cache connected');\n}\n", "class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\n\t\t// TODO: Remove this when targeting Node.js 12.\n\t\tthis.next = undefined;\n\t}\n}\n\nclass Queue {\n\t// TODO: Use private class fields when targeting Node.js 12.\n\t// #_head;\n\t// #_tail;\n\t// #_size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this._head) {\n\t\t\tthis._tail.next = node;\n\t\t\tthis._tail = node;\n\t\t} else {\n\t\t\tthis._head = node;\n\t\t\tthis._tail = node;\n\t\t}\n\n\t\tthis._size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this._head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._head = this._head.next;\n\t\tthis._size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t}\n\n\tget size() {\n\t\treturn this._size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this._head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n\nmodule.exports = Queue;\n", "'use strict';\nconst Queue = require('yocto-queue');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tqueue.enqueue(run.bind(null, fn, resolve, ...args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, ...args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\n", "'use strict';\nconst pLimit = require('p-limit');\n\nclass EndError extends Error {\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t}\n}\n\n// The input can also be a promise, so we await it\nconst testElement = async (element, tester) => tester(await element);\n\n// The input can also be a promise, so we `Promise.all()` them both\nconst finder = async element => {\n\tconst values = await Promise.all(element);\n\tif (values[1] === true) {\n\t\tthrow new EndError(values[0]);\n\t}\n\n\treturn false;\n};\n\nconst pLocate = async (iterable, tester, options) => {\n\toptions = {\n\t\tconcurrency: Infinity,\n\t\tpreserveOrder: true,\n\t\t...options\n\t};\n\n\tconst limit = pLimit(options.concurrency);\n\n\t// Start all the promises concurrently with optional limit\n\tconst items = [...iterable].map(element => [element, limit(testElement, element, tester)]);\n\n\t// Check the promises either serially or concurrently\n\tconst checkLimit = pLimit(options.preserveOrder ? 1 : Infinity);\n\n\ttry {\n\t\tawait Promise.all(items.map(element => checkLimit(finder, element)));\n\t} catch (error) {\n\t\tif (error instanceof EndError) {\n\t\t\treturn error.value;\n\t\t}\n\n\t\tthrow error;\n\t}\n};\n\nmodule.exports = pLocate;\n", "'use strict';\nconst path = require('path');\nconst fs = require('fs');\nconst {promisify} = require('util');\nconst pLocate = require('p-locate');\n\nconst fsStat = promisify(fs.stat);\nconst fsLStat = promisify(fs.lstat);\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile'\n};\n\nfunction checkType({type}) {\n\tif (type in typeMappings) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => type === undefined || stat[typeMappings[type]]();\n\nmodule.exports = async (paths, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\ttype: 'file',\n\t\tallowSymlinks: true,\n\t\t...options\n\t};\n\n\tcheckType(options);\n\n\tconst statFn = options.allowSymlinks ? fsStat : fsLStat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFn(path.resolve(options.cwd, path_));\n\t\t\treturn matchType(options.type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, options);\n};\n\nmodule.exports.sync = (paths, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tallowSymlinks: true,\n\t\ttype: 'file',\n\t\t...options\n\t};\n\n\tcheckType(options);\n\n\tconst statFn = options.allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFn(path.resolve(options.cwd, path_));\n\n\t\t\tif (matchType(options.type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n};\n", "'use strict';\nconst fs = require('fs');\nconst {promisify} = require('util');\n\nconst pAccess = promisify(fs.access);\n\nmodule.exports = async path => {\n\ttry {\n\t\tawait pAccess(path);\n\t\treturn true;\n\t} catch (_) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports.sync = path => {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch (_) {\n\t\treturn false;\n\t}\n};\n", "'use strict';\nconst path = require('path');\nconst locatePath = require('locate-path');\nconst pathExists = require('path-exists');\n\nconst stop = Symbol('findUp.stop');\n\nmodule.exports = async (name, options = {}) => {\n\tlet directory = path.resolve(options.cwd || '');\n\tconst {root} = path.parse(directory);\n\tconst paths = [].concat(name);\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === stop) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\treturn path.resolve(directory, foundPath);\n\t\t}\n\n\t\tif (directory === root) {\n\t\t\treturn;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n};\n\nmodule.exports.sync = (name, options = {}) => {\n\tlet directory = path.resolve(options.cwd || '');\n\tconst {root} = path.parse(directory);\n\tconst paths = [].concat(name);\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath.sync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath.sync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === stop) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\treturn path.resolve(directory, foundPath);\n\t\t}\n\n\t\tif (directory === root) {\n\t\t\treturn;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n};\n\nmodule.exports.exists = pathExists;\n\nmodule.exports.sync.exists = pathExists.sync;\n\nmodule.exports.stop = stop;\n", "import upath from 'upath';\nimport { GlobalConfig } from '../../config/global';\nimport { FILE_ACCESS_VIOLATION_ERROR } from '../../constants/error-messages';\nimport { logger } from '../../logger';\n\nfunction assertBaseDir(path: string, allowedDir: string): void {\n  if (!path.startsWith(allowedDir)) {\n    logger.debug(\n      { path, allowedDir },\n      'Preventing access to file outside allowed directory',\n    );\n    throw new Error(FILE_ACCESS_VIOLATION_ERROR);\n  }\n}\n\nfunction ensurePath(path: string, key: 'localDir' | 'cacheDir'): string {\n  const baseDir = upath.resolve(GlobalConfig.get(key)!);\n  const fullPath = upath.resolve(\n    upath.isAbsolute(path) ? path : upath.join(baseDir, path),\n  );\n  assertBaseDir(fullPath, baseDir);\n  return fullPath;\n}\n\nexport function ensureLocalPath(path: string): string {\n  return ensurePath(path, 'localDir');\n}\n\nexport function ensureCachePath(path: string): string {\n  return ensurePath(path, 'cacheDir');\n}\n\nexport function isValidPath(\n  path: string,\n  key: 'localDir' | 'cacheDir',\n): boolean {\n  const baseDir = upath.resolve(GlobalConfig.get(key)!);\n  const fullPath = upath.resolve(\n    upath.isAbsolute(path) ? path : upath.join(baseDir, path),\n  );\n\n  return fullPath.startsWith(baseDir);\n}\n", "import stream from 'node:stream';\nimport util from 'node:util';\nimport is from '@sindresorhus/is';\nimport findUp from 'find-up';\nimport fs from 'fs-extra';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { ensureCachePath, ensureLocalPath, isValidPath } from './util';\n\nexport const pipeline = util.promisify(stream.pipeline);\n\nexport function getParentDir(fileName: string): string {\n  return upath.parse(fileName).dir;\n}\n\nexport function getSiblingFileName(\n  fileName: string,\n  siblingName: string,\n): string {\n  const subDirectory = getParentDir(fileName);\n  return upath.join(subDirectory, siblingName);\n}\n\nexport async function readLocalFile(fileName: string): Promise;\nexport async function readLocalFile(\n  fileName: string,\n  encoding: 'utf8',\n): Promise;\nexport async function readLocalFile(\n  fileName: string,\n  encoding?: BufferEncoding,\n): Promise {\n  const localFileName = ensureLocalPath(fileName);\n  try {\n    const fileContent = encoding\n      ? await fs.readFile(localFileName, encoding)\n      : await fs.readFile(localFileName);\n    return fileContent;\n  } catch (err) {\n    logger.trace({ err }, 'Error reading local file');\n    return null;\n  }\n}\n\nexport async function readLocalSymlink(\n  fileName: string,\n): Promise {\n  const localFileName = ensureLocalPath(fileName);\n  try {\n    const linkContent = await fs.readlink(localFileName);\n    return linkContent;\n  } catch (err) {\n    logger.trace({ err }, 'Error reading local symlink');\n    return null;\n  }\n}\n\nexport async function writeLocalFile(\n  fileName: string,\n  fileContent: string | Buffer,\n): Promise {\n  const localFileName = ensureLocalPath(fileName);\n  await fs.outputFile(localFileName, fileContent);\n}\n\nexport async function deleteLocalFile(fileName: string): Promise {\n  // This a failsafe and hopefully will never be triggered\n  if (GlobalConfig.get('platform') === 'local') {\n    throw new Error('Cannot delete file when platform=local');\n  }\n  const localDir = GlobalConfig.get('localDir');\n  if (localDir) {\n    const localFileName = ensureLocalPath(fileName);\n    await fs.remove(localFileName);\n  }\n}\n\nexport async function renameLocalFile(\n  fromFile: string,\n  toFile: string,\n): Promise {\n  const fromPath = ensureLocalPath(fromFile);\n  const toPath = ensureLocalPath(toFile);\n  await fs.move(fromPath, toPath);\n}\n\nexport async function ensureDir(dirName: string): Promise {\n  if (is.nonEmptyString(dirName)) {\n    await fs.ensureDir(dirName);\n  }\n}\n\nexport async function ensureLocalDir(dirName: string): Promise {\n  const fullPath = ensureLocalPath(dirName);\n  await fs.ensureDir(fullPath);\n  return fullPath;\n}\n\nexport async function ensureCacheDir(name: string): Promise {\n  const cacheDirName = ensureCachePath(`others/${name}`);\n  await fs.ensureDir(cacheDirName);\n  return cacheDirName;\n}\n\n/**\n * Return the path of the private cache directory. This directory is wiped\n * between repositories, so they can be used to store private registries' index\n * without risk of that information leaking to other repositories/users.\n */\nexport function privateCacheDir(): string {\n  const cacheDir = GlobalConfig.get('cacheDir');\n  return upath.join(cacheDir, '__renovate-private-cache');\n}\n\nexport async function localPathExists(pathName: string): Promise {\n  // Works for both files as well as directories\n  const path = ensureLocalPath(pathName);\n  try {\n    const s = await fs.stat(path);\n    return !!s;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Validate local path without throwing.\n * @param path Path to check\n * @returns `true` if given `path` is a valid local path, otherwise `false`.\n */\nexport function isValidLocalPath(path: string): boolean {\n  return isValidPath(path, 'localDir');\n}\n\n/**\n * Tries to find `otherFileName` in the directory where\n * `existingFileNameWithPath` is, then in its parent directory, then in the\n * grandparent, until we reach the top-level directory. All paths\n * must be relative to `localDir`.\n */\nexport async function findLocalSiblingOrParent(\n  existingFileNameWithPath: string,\n  otherFileName: string,\n): Promise {\n  if (upath.isAbsolute(existingFileNameWithPath)) {\n    return null;\n  }\n  if (upath.isAbsolute(otherFileName)) {\n    return null;\n  }\n\n  let current = existingFileNameWithPath;\n  while (current !== '') {\n    current = getParentDir(current);\n    const candidate = upath.join(current, otherFileName);\n    if (await localPathExists(candidate)) {\n      return candidate;\n    }\n  }\n\n  return null;\n}\n\n/**\n * Get files by name from directory\n */\nexport async function readLocalDirectory(path: string): Promise {\n  const localPath = ensureLocalPath(path);\n  const fileList = await fs.readdir(localPath);\n  return fileList;\n}\n\nexport function createCacheWriteStream(path: string): fs.WriteStream {\n  const fullPath = ensureCachePath(path);\n  return fs.createWriteStream(fullPath);\n}\n\nexport function createCacheReadStream(path: string): fs.ReadStream {\n  const fullPath = ensureCachePath(path);\n  return fs.createReadStream(fullPath);\n}\n\nexport async function localPathIsFile(pathName: string): Promise {\n  const path = ensureLocalPath(pathName);\n  try {\n    const s = await fs.stat(path);\n    return s.isFile();\n  } catch {\n    return false;\n  }\n}\n\nexport async function localPathIsSymbolicLink(\n  pathName: string,\n): Promise {\n  const path = ensureLocalPath(pathName);\n  try {\n    const s = await fs.lstat(path);\n    return s.isSymbolicLink();\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Find a file or directory by walking up parent directories within localDir\n */\n\nexport async function findUpLocal(\n  fileName: string | string[],\n  cwd: string,\n): Promise {\n  const localDir = GlobalConfig.get('localDir');\n  const absoluteCwd = upath.join(localDir, cwd);\n  const normalizedAbsoluteCwd = upath.normalizeSafe(absoluteCwd);\n  const res = await findUp(fileName, {\n    cwd: normalizedAbsoluteCwd,\n    type: 'file',\n  });\n  // Return null if nothing found\n  if (!is.nonEmptyString(res) || !is.nonEmptyString(localDir)) {\n    return null;\n  }\n  const safePath = upath.normalizeSafe(res);\n  // Return relative path if file is inside of local dir\n  if (safePath.startsWith(localDir)) {\n    let relativePath = safePath.replace(localDir, '');\n    if (relativePath.startsWith('/')) {\n      relativePath = relativePath.substring(1);\n    }\n    return relativePath;\n  }\n  // Return null if found file is outside of localDir\n  return null;\n}\n\nexport function chmodLocalFile(\n  fileName: string,\n  mode: string | number,\n): Promise {\n  const fullFileName = ensureLocalPath(fileName);\n  return fs.chmod(fullFileName, mode);\n}\n\nexport async function statLocalFile(\n  fileName: string,\n): Promise {\n  const fullFileName = ensureLocalPath(fileName);\n  try {\n    return await fs.stat(fullFileName);\n  } catch {\n    return null;\n  }\n}\n\nexport async function statCacheFile(\n  pathName: string,\n): Promise {\n  const path = ensureCachePath(pathName);\n  try {\n    return await fs.stat(path);\n  } catch {\n    return null;\n  }\n}\n\nexport function listCacheDir(\n  path: string,\n  options: { recursive: boolean } = { recursive: false },\n): Promise {\n  const fullPath = ensureCachePath(path);\n  return fs.readdir(fullPath, {\n    encoding: 'utf-8',\n    recursive: options.recursive,\n  });\n}\n\nexport async function rmCache(path: string): Promise {\n  const fullPath = ensureCachePath(path);\n  await fs.rm(fullPath, { recursive: true });\n}\n\nexport async function cachePathExists(pathName: string): Promise {\n  const path = ensureCachePath(pathName);\n  try {\n    const s = await fs.stat(path);\n    return !!s;\n  } catch {\n    return false;\n  }\n}\n\nexport async function cachePathIsFile(pathName: string): Promise {\n  const path = ensureCachePath(pathName);\n  try {\n    const s = await fs.stat(path);\n    return s.isFile();\n  } catch {\n    return false;\n  }\n}\n\nexport async function readCacheFile(fileName: string): Promise;\nexport async function readCacheFile(\n  fileName: string,\n  encoding: 'utf8',\n): Promise;\nexport function readCacheFile(\n  fileName: string,\n  encoding?: BufferEncoding,\n): Promise {\n  const fullPath = ensureCachePath(fileName);\n  return encoding ? fs.readFile(fullPath, encoding) : fs.readFile(fullPath);\n}\n\nexport function outputCacheFile(\n  file: string,\n  data: string | NodeJS.ArrayBufferView,\n): Promise {\n  const filePath = ensureCachePath(file);\n  return fs.outputFile(filePath, data);\n}\n\nexport async function readSystemFile(fileName: string): Promise;\nexport async function readSystemFile(\n  fileName: string,\n  encoding: 'utf8',\n): Promise;\nexport function readSystemFile(\n  fileName: string,\n  encoding?: BufferEncoding,\n): Promise {\n  return encoding ? fs.readFile(fileName, encoding) : fs.readFile(fileName);\n}\n\nexport async function writeSystemFile(\n  fileName: string,\n  data: string | Buffer,\n): Promise {\n  await fs.outputFile(fileName, data);\n}\n\nexport async function getLocalFiles(\n  fileNames: string[],\n): Promise> {\n  const fileContentMap: Record = {};\n\n  for (const fileName of fileNames) {\n    fileContentMap[fileName] = await readLocalFile(fileName, 'utf8');\n  }\n\n  return fileContentMap;\n}\n", "import { promisify } from 'node:util';\nimport zlib, { constants } from 'node:zlib';\nimport type { Database, Statement } from 'better-sqlite3';\nimport { exists } from 'fs-extra';\nimport * as upath from 'upath';\nimport { sqlite } from '../../../expose.cjs';\nimport { logger } from '../../../logger';\nimport { ensureDir } from '../../fs';\nimport type { PackageCacheNamespace } from './types';\n\nconst brotliCompress = promisify(zlib.brotliCompress);\nconst brotliDecompress = promisify(zlib.brotliDecompress);\n\nfunction compress(input: unknown): Promise {\n  const jsonStr = JSON.stringify(input);\n  return brotliCompress(jsonStr, {\n    params: {\n      [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT,\n      [constants.BROTLI_PARAM_QUALITY]: 3,\n    },\n  });\n}\n\nasync function decompress(input: Buffer): Promise {\n  const buf = await brotliDecompress(input);\n  const jsonStr = buf.toString('utf8');\n  return JSON.parse(jsonStr) as T;\n}\n\nexport class SqlitePackageCache {\n  private readonly upsertStatement: Statement;\n  private readonly getStatement: Statement;\n  private readonly deleteExpiredRows: Statement;\n  private readonly countStatement: Statement;\n\n  static async init(cacheDir: string): Promise {\n    // simply let it throw if it fails, so no test coverage needed\n    const Sqlite = sqlite();\n    const sqliteDir = upath.join(cacheDir, 'renovate/renovate-cache-sqlite');\n    await ensureDir(sqliteDir);\n    const sqliteFile = upath.join(sqliteDir, 'db.sqlite');\n\n    if (await exists(sqliteFile)) {\n      logger.debug(`Using SQLite package cache: ${sqliteFile}`);\n    } else {\n      logger.debug(`Creating SQLite package cache: ${sqliteFile}`);\n    }\n\n    const client = new Sqlite(sqliteFile);\n    const res = new SqlitePackageCache(client);\n    return res;\n  }\n\n  private constructor(private client: Database) {\n    client.pragma('journal_mode = WAL');\n    client.pragma(\"encoding = 'UTF-8'\");\n\n    client\n      .prepare(\n        `\n          CREATE TABLE IF NOT EXISTS package_cache (\n            namespace TEXT NOT NULL,\n            key TEXT NOT NULL,\n            expiry INTEGER NOT NULL,\n            data BLOB NOT NULL,\n            PRIMARY KEY (namespace, key)\n          )\n        `,\n      )\n      .run();\n    client\n      .prepare('CREATE INDEX IF NOT EXISTS expiry ON package_cache (expiry)')\n      .run();\n    client\n      .prepare(\n        'CREATE INDEX IF NOT EXISTS namespace_key ON package_cache (namespace, key)',\n      )\n      .run();\n\n    this.upsertStatement = client.prepare(`\n      INSERT INTO package_cache (namespace, key, data, expiry)\n      VALUES (@namespace, @key, @data, unixepoch() + @ttlSeconds)\n      ON CONFLICT (namespace, key) DO UPDATE SET\n        data = @data,\n        expiry = unixepoch() + @ttlSeconds\n    `);\n\n    this.getStatement = client\n      .prepare(\n        `\n          SELECT data FROM package_cache\n          WHERE\n            namespace = @namespace AND key = @key AND expiry > unixepoch()\n        `,\n      )\n      .pluck(true);\n\n    this.deleteExpiredRows = client.prepare(`\n      DELETE FROM package_cache\n      WHERE expiry <= unixepoch()\n    `);\n\n    this.countStatement = client\n      .prepare('SELECT COUNT(*) FROM package_cache')\n      .pluck(true);\n  }\n\n  async set(\n    namespace: PackageCacheNamespace,\n    key: string,\n    value: unknown,\n    ttlMinutes = 5,\n  ): Promise {\n    const data = await compress(value);\n    const ttlSeconds = ttlMinutes * 60;\n    this.upsertStatement.run({ namespace, key, data, ttlSeconds });\n    return Promise.resolve();\n  }\n\n  async get(\n    namespace: PackageCacheNamespace,\n    key: string,\n  ): Promise {\n    const data = this.getStatement.get({ namespace, key }) as\n      | Buffer\n      | undefined;\n\n    if (!data) {\n      return undefined;\n    }\n\n    return await decompress(data);\n  }\n\n  private cleanupExpired(): void {\n    const start = Date.now();\n    const totalCount = this.countStatement.get() as number;\n    const { changes: deletedCount } = this.deleteExpiredRows.run();\n    const finish = Date.now();\n    const durationMs = finish - start;\n    logger.debug(\n      `SQLite package cache: deleted ${deletedCount} of ${totalCount} entries in ${durationMs}ms`,\n    );\n  }\n\n  cleanup(): Promise {\n    this.cleanupExpired();\n    this.client.close();\n    return Promise.resolve();\n  }\n}\n", "import type { AllConfig } from '../../../config/types';\nimport { PackageCacheStats } from '../../stats';\nimport * as memCache from '../memory';\nimport * as fileCache from './file';\nimport { getCombinedKey } from './key';\nimport * as redisCache from './redis';\nimport { SqlitePackageCache } from './sqlite';\nimport type { PackageCache, PackageCacheNamespace } from './types';\n\nlet cacheProxy: PackageCache | undefined;\n\nexport async function get(\n  namespace: PackageCacheNamespace,\n  key: string,\n): Promise {\n  if (!cacheProxy) {\n    return undefined;\n  }\n\n  const combinedKey = getCombinedKey(namespace, key);\n  let p = memCache.get(combinedKey);\n  if (!p) {\n    p = PackageCacheStats.wrapGet(() =>\n      cacheProxy!.get(namespace, key),\n    );\n    memCache.set(combinedKey, p);\n  }\n\n  const result = await p;\n  return result;\n}\n\nexport async function set(\n  namespace: PackageCacheNamespace,\n  key: string,\n  value: unknown,\n  minutes: number,\n): Promise {\n  if (!cacheProxy) {\n    return;\n  }\n\n  await PackageCacheStats.wrapSet(() =>\n    cacheProxy!.set(namespace, key, value, minutes),\n  );\n\n  const combinedKey = getCombinedKey(namespace, key);\n  const p = Promise.resolve(value);\n  memCache.set(combinedKey, p);\n}\n\nexport async function init(config: AllConfig): Promise {\n  if (config.redisUrl) {\n    await redisCache.init(config.redisUrl, config.redisPrefix);\n    cacheProxy = {\n      get: redisCache.get,\n      set: redisCache.set,\n    };\n    return;\n  }\n\n  if (process.env.RENOVATE_X_SQLITE_PACKAGE_CACHE) {\n    cacheProxy = await SqlitePackageCache.init(config.cacheDir!);\n    return;\n  }\n\n  if (config.cacheDir) {\n    fileCache.init(config.cacheDir);\n    cacheProxy = {\n      get: fileCache.get,\n      set: fileCache.set,\n      cleanup: fileCache.cleanup,\n    };\n    return;\n  }\n}\n\nexport async function cleanup(config: AllConfig): Promise {\n  if (config?.redisUrl) {\n    await redisCache.end();\n  }\n  if (cacheProxy?.cleanup) {\n    await cacheProxy.cleanup();\n  }\n}\n", "function klona(val) {\n\tvar k, out, tmp;\n\n\tif (Array.isArray(val)) {\n\t\tout = Array(k=val.length);\n\t\twhile (k--) out[k] = (tmp=val[k]) && typeof tmp === 'object' ? klona(tmp) : tmp;\n\t\treturn out;\n\t}\n\n\tif (Object.prototype.toString.call(val) === '[object Object]') {\n\t\tout = {}; // null\n\t\tfor (k in val) {\n\t\t\tif (k === '__proto__') {\n\t\t\t\tObject.defineProperty(out, k, {\n\t\t\t\t\tvalue: klona(val[k]),\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tout[k] = (tmp=val[k]) && typeof tmp === 'object' ? klona(tmp) : tmp;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\n\treturn val;\n}\n\nexports.klona = klona;", "'use strict'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n  // Some magic numbers that worked out fine while benchmarking with v8 8.0\n  if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n    return `\"${str}\"`\n  }\n  return JSON.stringify(str)\n}\n\nfunction sort (array, comparator) {\n  // Insertion sort is very efficient for small input sizes, but it has a bad\n  // worst case complexity. Thus, use native array sort for bigger values.\n  if (array.length > 2e2 || comparator) {\n    return array.sort(comparator)\n  }\n  for (let i = 1; i < array.length; i++) {\n    const currentValue = array[i]\n    let position = i\n    while (position !== 0 && array[position - 1] > currentValue) {\n      array[position] = array[position - 1]\n      position--\n    }\n    array[position] = currentValue\n  }\n  return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n  Object.getOwnPropertyDescriptor(\n    Object.getPrototypeOf(\n      Object.getPrototypeOf(\n        new Int8Array()\n      )\n    ),\n    Symbol.toStringTag\n  ).get\n\nfunction isTypedArrayWithEntries (value) {\n  return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n  if (array.length < maximumBreadth) {\n    maximumBreadth = array.length\n  }\n  const whitespace = separator === ',' ? '' : ' '\n  let res = `\"0\":${whitespace}${array[0]}`\n  for (let i = 1; i < maximumBreadth; i++) {\n    res += `${separator}\"${i}\":${whitespace}${array[i]}`\n  }\n  return res\n}\n\nfunction getCircularValueOption (options) {\n  if (hasOwnProperty.call(options, 'circularValue')) {\n    const circularValue = options.circularValue\n    if (typeof circularValue === 'string') {\n      return `\"${circularValue}\"`\n    }\n    if (circularValue == null) {\n      return circularValue\n    }\n    if (circularValue === Error || circularValue === TypeError) {\n      return {\n        toString () {\n          throw new TypeError('Converting circular structure to JSON')\n        }\n      }\n    }\n    throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n  }\n  return '\"[Circular]\"'\n}\n\nfunction getDeterministicOption (options) {\n  let value\n  if (hasOwnProperty.call(options, 'deterministic')) {\n    value = options.deterministic\n    if (typeof value !== 'boolean' && typeof value !== 'function') {\n      throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')\n    }\n  }\n  return value === undefined ? true : value\n}\n\nfunction getBooleanOption (options, key) {\n  let value\n  if (hasOwnProperty.call(options, key)) {\n    value = options[key]\n    if (typeof value !== 'boolean') {\n      throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n    }\n  }\n  return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n  let value\n  if (hasOwnProperty.call(options, key)) {\n    value = options[key]\n    if (typeof value !== 'number') {\n      throw new TypeError(`The \"${key}\" argument must be of type number`)\n    }\n    if (!Number.isInteger(value)) {\n      throw new TypeError(`The \"${key}\" argument must be an integer`)\n    }\n    if (value < 1) {\n      throw new RangeError(`The \"${key}\" argument must be >= 1`)\n    }\n  }\n  return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n  if (number === 1) {\n    return '1 item'\n  }\n  return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n  const replacerSet = new Set()\n  for (const value of replacerArray) {\n    if (typeof value === 'string' || typeof value === 'number') {\n      replacerSet.add(String(value))\n    }\n  }\n  return replacerSet\n}\n\nfunction getStrictOption (options) {\n  if (hasOwnProperty.call(options, 'strict')) {\n    const value = options.strict\n    if (typeof value !== 'boolean') {\n      throw new TypeError('The \"strict\" argument must be of type boolean')\n    }\n    if (value) {\n      return (value) => {\n        let message = `Object can not safely be stringified. Received type ${typeof value}`\n        if (typeof value !== 'function') message += ` (${value.toString()})`\n        throw new Error(message)\n      }\n    }\n  }\n}\n\nfunction configure (options) {\n  options = { ...options }\n  const fail = getStrictOption(options)\n  if (fail) {\n    if (options.bigint === undefined) {\n      options.bigint = false\n    }\n    if (!('circularValue' in options)) {\n      options.circularValue = Error\n    }\n  }\n  const circularValue = getCircularValueOption(options)\n  const bigint = getBooleanOption(options, 'bigint')\n  const deterministic = getDeterministicOption(options)\n  const comparator = typeof deterministic === 'function' ? deterministic : undefined\n  const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n  const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n  function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n    let value = parent[key]\n\n    if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n      value = value.toJSON(key)\n    }\n    value = replacer.call(parent, key, value)\n\n    switch (typeof value) {\n      case 'string':\n        return strEscape(value)\n      case 'object': {\n        if (value === null) {\n          return 'null'\n        }\n        if (stack.indexOf(value) !== -1) {\n          return circularValue\n        }\n\n        let res = ''\n        let join = ','\n        const originalIndentation = indentation\n\n        if (Array.isArray(value)) {\n          if (value.length === 0) {\n            return '[]'\n          }\n          if (maximumDepth < stack.length + 1) {\n            return '\"[Array]\"'\n          }\n          stack.push(value)\n          if (spacer !== '') {\n            indentation += spacer\n            res += `\\n${indentation}`\n            join = `,\\n${indentation}`\n          }\n          const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n          let i = 0\n          for (; i < maximumValuesToStringify - 1; i++) {\n            const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n            res += tmp !== undefined ? tmp : 'null'\n            res += join\n          }\n          const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n          res += tmp !== undefined ? tmp : 'null'\n          if (value.length - 1 > maximumBreadth) {\n            const removedKeys = value.length - maximumBreadth - 1\n            res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n          }\n          if (spacer !== '') {\n            res += `\\n${originalIndentation}`\n          }\n          stack.pop()\n          return `[${res}]`\n        }\n\n        let keys = Object.keys(value)\n        const keyLength = keys.length\n        if (keyLength === 0) {\n          return '{}'\n        }\n        if (maximumDepth < stack.length + 1) {\n          return '\"[Object]\"'\n        }\n        let whitespace = ''\n        let separator = ''\n        if (spacer !== '') {\n          indentation += spacer\n          join = `,\\n${indentation}`\n          whitespace = ' '\n        }\n        const maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n        if (deterministic && !isTypedArrayWithEntries(value)) {\n          keys = sort(keys, comparator)\n        }\n        stack.push(value)\n        for (let i = 0; i < maximumPropertiesToStringify; i++) {\n          const key = keys[i]\n          const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n          if (tmp !== undefined) {\n            res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n            separator = join\n          }\n        }\n        if (keyLength > maximumBreadth) {\n          const removedKeys = keyLength - maximumBreadth\n          res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n          separator = join\n        }\n        if (spacer !== '' && separator.length > 1) {\n          res = `\\n${indentation}${res}\\n${originalIndentation}`\n        }\n        stack.pop()\n        return `{${res}}`\n      }\n      case 'number':\n        return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n      case 'boolean':\n        return value === true ? 'true' : 'false'\n      case 'undefined':\n        return undefined\n      case 'bigint':\n        if (bigint) {\n          return String(value)\n        }\n        // fallthrough\n      default:\n        return fail ? fail(value) : undefined\n    }\n  }\n\n  function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n    if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n      value = value.toJSON(key)\n    }\n\n    switch (typeof value) {\n      case 'string':\n        return strEscape(value)\n      case 'object': {\n        if (value === null) {\n          return 'null'\n        }\n        if (stack.indexOf(value) !== -1) {\n          return circularValue\n        }\n\n        const originalIndentation = indentation\n        let res = ''\n        let join = ','\n\n        if (Array.isArray(value)) {\n          if (value.length === 0) {\n            return '[]'\n          }\n          if (maximumDepth < stack.length + 1) {\n            return '\"[Array]\"'\n          }\n          stack.push(value)\n          if (spacer !== '') {\n            indentation += spacer\n            res += `\\n${indentation}`\n            join = `,\\n${indentation}`\n          }\n          const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n          let i = 0\n          for (; i < maximumValuesToStringify - 1; i++) {\n            const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n            res += tmp !== undefined ? tmp : 'null'\n            res += join\n          }\n          const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n          res += tmp !== undefined ? tmp : 'null'\n          if (value.length - 1 > maximumBreadth) {\n            const removedKeys = value.length - maximumBreadth - 1\n            res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n          }\n          if (spacer !== '') {\n            res += `\\n${originalIndentation}`\n          }\n          stack.pop()\n          return `[${res}]`\n        }\n        stack.push(value)\n        let whitespace = ''\n        if (spacer !== '') {\n          indentation += spacer\n          join = `,\\n${indentation}`\n          whitespace = ' '\n        }\n        let separator = ''\n        for (const key of replacer) {\n          const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n          if (tmp !== undefined) {\n            res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n            separator = join\n          }\n        }\n        if (spacer !== '' && separator.length > 1) {\n          res = `\\n${indentation}${res}\\n${originalIndentation}`\n        }\n        stack.pop()\n        return `{${res}}`\n      }\n      case 'number':\n        return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n      case 'boolean':\n        return value === true ? 'true' : 'false'\n      case 'undefined':\n        return undefined\n      case 'bigint':\n        if (bigint) {\n          return String(value)\n        }\n        // fallthrough\n      default:\n        return fail ? fail(value) : undefined\n    }\n  }\n\n  function stringifyIndent (key, value, stack, spacer, indentation) {\n    switch (typeof value) {\n      case 'string':\n        return strEscape(value)\n      case 'object': {\n        if (value === null) {\n          return 'null'\n        }\n        if (typeof value.toJSON === 'function') {\n          value = value.toJSON(key)\n          // Prevent calling `toJSON` again.\n          if (typeof value !== 'object') {\n            return stringifyIndent(key, value, stack, spacer, indentation)\n          }\n          if (value === null) {\n            return 'null'\n          }\n        }\n        if (stack.indexOf(value) !== -1) {\n          return circularValue\n        }\n        const originalIndentation = indentation\n\n        if (Array.isArray(value)) {\n          if (value.length === 0) {\n            return '[]'\n          }\n          if (maximumDepth < stack.length + 1) {\n            return '\"[Array]\"'\n          }\n          stack.push(value)\n          indentation += spacer\n          let res = `\\n${indentation}`\n          const join = `,\\n${indentation}`\n          const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n          let i = 0\n          for (; i < maximumValuesToStringify - 1; i++) {\n            const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n            res += tmp !== undefined ? tmp : 'null'\n            res += join\n          }\n          const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n          res += tmp !== undefined ? tmp : 'null'\n          if (value.length - 1 > maximumBreadth) {\n            const removedKeys = value.length - maximumBreadth - 1\n            res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n          }\n          res += `\\n${originalIndentation}`\n          stack.pop()\n          return `[${res}]`\n        }\n\n        let keys = Object.keys(value)\n        const keyLength = keys.length\n        if (keyLength === 0) {\n          return '{}'\n        }\n        if (maximumDepth < stack.length + 1) {\n          return '\"[Object]\"'\n        }\n        indentation += spacer\n        const join = `,\\n${indentation}`\n        let res = ''\n        let separator = ''\n        let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n        if (isTypedArrayWithEntries(value)) {\n          res += stringifyTypedArray(value, join, maximumBreadth)\n          keys = keys.slice(value.length)\n          maximumPropertiesToStringify -= value.length\n          separator = join\n        }\n        if (deterministic) {\n          keys = sort(keys, comparator)\n        }\n        stack.push(value)\n        for (let i = 0; i < maximumPropertiesToStringify; i++) {\n          const key = keys[i]\n          const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n          if (tmp !== undefined) {\n            res += `${separator}${strEscape(key)}: ${tmp}`\n            separator = join\n          }\n        }\n        if (keyLength > maximumBreadth) {\n          const removedKeys = keyLength - maximumBreadth\n          res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n          separator = join\n        }\n        if (separator !== '') {\n          res = `\\n${indentation}${res}\\n${originalIndentation}`\n        }\n        stack.pop()\n        return `{${res}}`\n      }\n      case 'number':\n        return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n      case 'boolean':\n        return value === true ? 'true' : 'false'\n      case 'undefined':\n        return undefined\n      case 'bigint':\n        if (bigint) {\n          return String(value)\n        }\n        // fallthrough\n      default:\n        return fail ? fail(value) : undefined\n    }\n  }\n\n  function stringifySimple (key, value, stack) {\n    switch (typeof value) {\n      case 'string':\n        return strEscape(value)\n      case 'object': {\n        if (value === null) {\n          return 'null'\n        }\n        if (typeof value.toJSON === 'function') {\n          value = value.toJSON(key)\n          // Prevent calling `toJSON` again\n          if (typeof value !== 'object') {\n            return stringifySimple(key, value, stack)\n          }\n          if (value === null) {\n            return 'null'\n          }\n        }\n        if (stack.indexOf(value) !== -1) {\n          return circularValue\n        }\n\n        let res = ''\n\n        const hasLength = value.length !== undefined\n        if (hasLength && Array.isArray(value)) {\n          if (value.length === 0) {\n            return '[]'\n          }\n          if (maximumDepth < stack.length + 1) {\n            return '\"[Array]\"'\n          }\n          stack.push(value)\n          const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n          let i = 0\n          for (; i < maximumValuesToStringify - 1; i++) {\n            const tmp = stringifySimple(String(i), value[i], stack)\n            res += tmp !== undefined ? tmp : 'null'\n            res += ','\n          }\n          const tmp = stringifySimple(String(i), value[i], stack)\n          res += tmp !== undefined ? tmp : 'null'\n          if (value.length - 1 > maximumBreadth) {\n            const removedKeys = value.length - maximumBreadth - 1\n            res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n          }\n          stack.pop()\n          return `[${res}]`\n        }\n\n        let keys = Object.keys(value)\n        const keyLength = keys.length\n        if (keyLength === 0) {\n          return '{}'\n        }\n        if (maximumDepth < stack.length + 1) {\n          return '\"[Object]\"'\n        }\n        let separator = ''\n        let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n        if (hasLength && isTypedArrayWithEntries(value)) {\n          res += stringifyTypedArray(value, ',', maximumBreadth)\n          keys = keys.slice(value.length)\n          maximumPropertiesToStringify -= value.length\n          separator = ','\n        }\n        if (deterministic) {\n          keys = sort(keys, comparator)\n        }\n        stack.push(value)\n        for (let i = 0; i < maximumPropertiesToStringify; i++) {\n          const key = keys[i]\n          const tmp = stringifySimple(key, value[key], stack)\n          if (tmp !== undefined) {\n            res += `${separator}${strEscape(key)}:${tmp}`\n            separator = ','\n          }\n        }\n        if (keyLength > maximumBreadth) {\n          const removedKeys = keyLength - maximumBreadth\n          res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n        }\n        stack.pop()\n        return `{${res}}`\n      }\n      case 'number':\n        return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n      case 'boolean':\n        return value === true ? 'true' : 'false'\n      case 'undefined':\n        return undefined\n      case 'bigint':\n        if (bigint) {\n          return String(value)\n        }\n        // fallthrough\n      default:\n        return fail ? fail(value) : undefined\n    }\n  }\n\n  function stringify (value, replacer, space) {\n    if (arguments.length > 1) {\n      let spacer = ''\n      if (typeof space === 'number') {\n        spacer = ' '.repeat(Math.min(space, 10))\n      } else if (typeof space === 'string') {\n        spacer = space.slice(0, 10)\n      }\n      if (replacer != null) {\n        if (typeof replacer === 'function') {\n          return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n        }\n        if (Array.isArray(replacer)) {\n          return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n        }\n      }\n      if (spacer.length !== 0) {\n        return stringifyIndent('', value, [], spacer, '')\n      }\n    }\n    return stringifySimple('', value, [])\n  }\n\n  return stringify\n}\n", "import { configure } from 'safe-stable-stringify';\n\nexport const quickStringify = configure({\n  deterministic: false,\n});\n\nexport const safeStringify = configure({\n  deterministic: true,\n});\n", "import { klona } from 'klona/json';\nimport { logger } from '../logger';\nimport { quickStringify } from './stringify';\n\n/**\n * Creates a deep clone of an object.\n * @param input The object to clone.\n */\nexport function clone(input: T): T {\n  try {\n    return klona(input);\n  } catch (err) {\n    logger.warn({ err }, 'error cloning object');\n    const str = quickStringify(input);\n    if (str) {\n      return JSON.parse(str) as T;\n    }\n\n    // istanbul ignore next: not easily testable\n    throw err;\n  }\n}\n", "import is from '@sindresorhus/is';\n\ntype Falsy = false | '' | 0 | 0n | null | undefined;\n\n/**\n * Filter and map an array *in place* with single iteration.\n */\nexport function filterMap(array: T[], fn: (item: T) => Falsy | U): U[] {\n  const length = array.length;\n  let newIdx = 0;\n  for (let oldIdx = 0; oldIdx < length; oldIdx += 1) {\n    const item = array[oldIdx];\n    const res = fn(item);\n    if (is.truthy(res)) {\n      array[newIdx] = res as never;\n      newIdx += 1;\n    }\n  }\n\n  const deletedCount = length - newIdx;\n  if (deletedCount) {\n    array.length = length - deletedCount;\n  }\n\n  return array as never;\n}\n", "import type { SafeParseReturnType, ZodType, ZodTypeDef } from 'zod';\nimport { ZodError, z } from 'zod';\nimport { logger } from '../logger';\n\ntype Val = NonNullable;\ntype Nullable = T | null | undefined;\n\ninterface Ok {\n  readonly ok: true;\n  readonly val: T;\n  readonly err?: never;\n}\n\ninterface Err {\n  readonly ok: false;\n  readonly err: E;\n  readonly val?: never;\n\n  /**\n   * Internal flag to indicate that the error was thrown during `.transform()`\n   * and will be re-thrown on `.unwrap()`.\n   */\n  readonly _uncaught?: true;\n}\n\ntype Res = Ok | Err;\n\nfunction isZodResult(\n  input: unknown,\n): input is SafeParseReturnType {\n  if (\n    typeof input !== 'object' ||\n    input === null ||\n    Object.keys(input).length !== 2 ||\n    !('success' in input) ||\n    typeof input.success !== 'boolean'\n  ) {\n    return false;\n  }\n\n  if (input.success) {\n    return (\n      'data' in input &&\n      typeof input.data !== 'undefined' &&\n      input.data !== null\n    );\n  } else {\n    return 'error' in input && input.error instanceof ZodError;\n  }\n}\n\nfunction fromZodResult(\n  input: SafeParseReturnType,\n): Result> {\n  return input.success ? Result.ok(input.data) : Result.err(input.error);\n}\n\n/**\n * All non-nullable values that also are not Promises nor Zod results.\n * It's useful for restricting Zod results to not return `null` or `undefined`.\n */\ntype RawValue = Exclude<\n  T,\n  SafeParseReturnType | Promise\n>;\n\nfunction fromNullable<\n  T extends Val,\n  ErrForNull extends Val,\n  ErrForUndefined extends Val,\n>(\n  input: Nullable,\n  errForNull: ErrForNull,\n  errForUndefined: ErrForUndefined,\n): Result {\n  if (input === null) {\n    return Result.err(errForNull);\n  }\n\n  if (input === undefined) {\n    return Result.err(errForUndefined);\n  }\n\n  return Result.ok(input);\n}\n\n/**\n * Class for representing a result that can fail.\n *\n * The mental model:\n * - `.wrap()` and `.wrapNullable()` are sinks\n * - `.transform()` are pipes which can be chained\n * - `.unwrap()` is the point of consumption\n */\nexport class Result {\n  private constructor(private readonly res: Res) {}\n\n  static ok(val: T): Result {\n    return new Result({ ok: true, val });\n  }\n\n  static err(err: E): Result {\n    return new Result({ ok: false, err });\n  }\n\n  static _uncaught(err: E): Result {\n    return new Result({ ok: false, err, _uncaught: true });\n  }\n\n  /**\n   * Wrap a callback or promise in a Result in such a way that any thrown errors\n   * are caught and wrapped with `Result.err()` (and hence never re-thrown).\n   *\n   * In case of a promise, the `AsyncResult` is returned.\n   * Use `.unwrap()` to get the `Promise>` from `AsyncResult`.\n   *\n   *   ```ts\n   *\n   *   // SYNC\n   *   const parse = (json: string) => Result.wrap(() => JSON.parse(json));\n   *\n   *   const { val, err } = parse('{\"foo\": \"bar\"}').unwrap();\n   *   expect(val).toEqual({ foo: 'bar' });\n   *   expect(err).toBeUndefined();\n   *\n   *   const { val, err } = parse('!!!').unwrap();\n   *   expect(val).toBeUndefined();\n   *   expect(err).toBeInstanceOf(SyntaxError);\n   *\n   *   // ASYNC\n   *   const request = (url: string) => Result.wrap(http.get(url));\n   *\n   *   const { val, err } = await request('https://example.com').unwrap();\n   *   expect(val).toBeString();\n   *   expect(err).toBeUndefined();\n   *\n   *   ```\n   */\n  static wrap(\n    zodResult: SafeParseReturnType,\n  ): Result>;\n  static wrap(\n    callback: () => RawValue,\n  ): Result;\n  static wrap(\n    callback: () => Promise>,\n  ): AsyncResult;\n  static wrap(\n    promise: Promise>,\n  ): AsyncResult;\n  static wrap(\n    promise: Promise>,\n  ): AsyncResult;\n  static wrap<\n    T extends Val,\n    E extends Val = Error,\n    EE extends Val = never,\n    Input = unknown,\n  >(\n    input:\n      | SafeParseReturnType\n      | (() => RawValue)\n      | (() => Promise>)\n      | Promise>\n      | Promise>,\n  ): Result> | Result | AsyncResult {\n    if (isZodResult(input)) {\n      return fromZodResult(input);\n    }\n\n    if (input instanceof Promise) {\n      return AsyncResult.wrap(input as never);\n    }\n\n    try {\n      const result = input();\n\n      if (result instanceof Promise) {\n        return AsyncResult.wrap(result);\n      }\n\n      return Result.ok(result);\n    } catch (error) {\n      return Result.err(error);\n    }\n  }\n\n  /**\n   * Similar to `Result.wrap()`, but helps to undo the billion dollar mistake by\n   * replacing `null` or `undefined` with an error of provided type.\n   *\n   * Errors thrown inside the callback or promise are caught and wrapped with `Result.err()`,\n   * hence never re-thrown.\n   *\n   * Since functions and promises returning nullable can't be wrapped with `Result.wrap()`\n   * because `val` is constrained by being `NonNullable`, `null` and `undefined`\n   * must be converted to some sort of `err` value.\n   *\n   * This method does exactly this, i.g. it is the feature-rich shorthand for:\n   *\n   *   ```ts\n   *   const { val, err } = Result.wrap(() => {\n   *     const result = callback();\n   *     return result === null || result === undefined\n   *       ? Result.err('oops')\n   *       : Result.ok(result);\n   *   }).unwrap();\n   *   ```\n   *\n   * In case of a promise, the `AsyncResult` is returned.\n   *\n   *   ```ts\n   *\n   *   // SYNC\n   *   const getHostname = (url: string) =>\n   *     Result.wrapNullable(\n   *       () => parseUrl(url)?.hostname,\n   *       'invalid-url' as const\n   *     );\n   *   const { val, err } = getHostname('foobar').unwrap();\n   *   expect(val).toBeUndefined();\n   *   expect(err).toBe('invalid-url');\n   *\n   *   // ASYNC\n   *   const { val, err } = await Result.wrapNullable(\n   *     readLocalFile('yarn.lock'),\n   *     'file-read-error' as const\n   *   ).unwrap();\n   *\n   *   ```\n   */\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNullable extends Val = Error,\n  >(\n    callback: () => Nullable,\n    errForNullable: ErrForNullable,\n  ): Result;\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNull extends Val = Error,\n    ErrForUndefined extends Val = Error,\n  >(\n    callback: () => Nullable,\n    errForNull: ErrForNull,\n    errForUndefined: ErrForUndefined,\n  ): Result;\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNullable extends Val = Error,\n  >(\n    promise: Promise>,\n    errForNullable: ErrForNullable,\n  ): AsyncResult;\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNull extends Val = Error,\n    ErrForUndefined extends Val = Error,\n  >(\n    promise: Promise>,\n    errForNull: ErrForNull,\n    errForUndefined: ErrForUndefined,\n  ): AsyncResult;\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNullable extends Val = Error,\n  >(\n    value: Nullable,\n    errForNullable: ErrForNullable,\n  ): Result;\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNull extends Val = Error,\n    ErrForUndefined extends Val = Error,\n  >(\n    value: Nullable,\n    errForNull: ErrForNull,\n    errForUndefined: ErrForUndefined,\n  ): Result;\n  static wrapNullable<\n    T extends Val,\n    E extends Val = Error,\n    ErrForNull extends Val = Error,\n    ErrForUndefined extends Val = Error,\n  >(\n    input: (() => Nullable) | Promise> | Nullable,\n    arg2: ErrForNull,\n    arg3?: ErrForUndefined,\n  ):\n    | Result\n    | AsyncResult {\n    const errForNull = arg2;\n    const errForUndefined = arg3 ?? arg2;\n\n    if (input instanceof Promise) {\n      return AsyncResult.wrapNullable(input, errForNull, errForUndefined);\n    }\n\n    if (input instanceof Function) {\n      try {\n        const result = input();\n        return fromNullable(result, errForNull, errForUndefined);\n      } catch (error) {\n        return Result.err(error);\n      }\n    }\n\n    return fromNullable(input, errForNull, errForUndefined);\n  }\n\n  /**\n   * Returns a discriminated union for type-safe consumption of the result.\n   * When error was uncaught during transformation, it's being re-thrown here.\n   *\n   *   ```ts\n   *\n   *   const { val, err } = Result.ok('foo').unwrap();\n   *   expect(val).toBe('foo');\n   *   expect(err).toBeUndefined();\n   *\n   *   ```\n   */\n  unwrap(): Res {\n    if (this.res.ok) {\n      return this.res;\n    }\n\n    if (this.res._uncaught) {\n      // TODO: fix, should only allow `Error` type\n      // eslint-disable-next-line @typescript-eslint/only-throw-error\n      throw this.res.err;\n    }\n\n    return this.res;\n  }\n\n  /**\n   * Returns a success value or a fallback value.\n   * When error was uncaught during transformation, it's being re-thrown here.\n   *\n   *   ```ts\n   *\n   *   const value = Result.err('bar').unwrapOr('foo');\n   *   expect(val).toBe('foo');\n   *\n   *   ```\n   */\n  unwrapOr(fallback: T): T {\n    if (this.res.ok) {\n      return this.res.val;\n    }\n\n    if (this.res._uncaught) {\n      // TODO: fix, should only allow `Error` type\n      // eslint-disable-next-line @typescript-eslint/only-throw-error\n      throw this.res.err;\n    }\n\n    return fallback;\n  }\n\n  /**\n   * Returns the ok-value or throw the error.\n   */\n  unwrapOrThrow(): T {\n    if (this.res.ok) {\n      return this.res.val;\n    }\n\n    // TODO: fix, should only allow `Error` type\n    // eslint-disable-next-line @typescript-eslint/only-throw-error\n    throw this.res.err;\n  }\n\n  /**\n   * Returns the ok-value or `null`.\n   * When error was uncaught during transformation, it's being re-thrown here.\n   */\n  unwrapOrNull(): T | null {\n    if (this.res.ok) {\n      return this.res.val;\n    }\n\n    if (this.res._uncaught) {\n      // TODO: fix, should only allow `Error` type\n      // eslint-disable-next-line @typescript-eslint/only-throw-error\n      throw this.res.err;\n    }\n\n    return null;\n  }\n\n  /**\n   * Transforms the ok-value, sync or async way.\n   *\n   * Transform functions SHOULD NOT throw.\n   * Uncaught errors are logged and wrapped to `Result._uncaught()`,\n   * which leads to re-throwing them in `unwrap()`.\n   *\n   * Zod `.safeParse()` results are converted automatically.\n   *\n   *   ```ts\n   *\n   *   // SYNC\n   *   const { val, err } = Result.ok('foo')\n   *     .transform((x) => x.length)\n   *     .unwrap();\n   *   expect(val).toBe(3);\n   *\n   *   // ASYNC\n   *   const { val, err } = await Result.wrap(\n   *     http.getJson('https://api.example.com/data.json')\n   *   )\n   *     .transform(({ body }) => body)\n   *     .unwrap();\n   *\n   *   ```\n   */\n  transform(\n    fn: (value: T) => Result,\n  ): Result;\n  transform(\n    fn: (value: T) => AsyncResult,\n  ): AsyncResult;\n  transform(\n    fn: (value: T) => SafeParseReturnType>,\n  ): Result>;\n  transform(\n    fn: (value: T) => Promise>>,\n  ): AsyncResult>;\n  transform(\n    fn: (value: T) => Promise>,\n  ): AsyncResult;\n  transform(\n    fn: (value: T) => Promise>,\n  ): AsyncResult;\n  transform(fn: (value: T) => RawValue): Result;\n  transform(\n    fn: (\n      value: T,\n    ) =>\n      | Result\n      | AsyncResult\n      | SafeParseReturnType>\n      | Promise>>\n      | Promise>\n      | Promise>\n      | RawValue,\n  ):\n    | Result>\n    | AsyncResult> {\n    if (!this.res.ok) {\n      return Result.err(this.res.err);\n    }\n\n    try {\n      const result = fn(this.res.val);\n\n      if (result instanceof Result) {\n        return result;\n      }\n\n      if (result instanceof AsyncResult) {\n        return result;\n      }\n\n      if (isZodResult(result)) {\n        return fromZodResult(result);\n      }\n\n      if (result instanceof Promise) {\n        return AsyncResult.wrap(result, (err) => {\n          logger.warn({ err }, 'Result: unhandled async transform error');\n          return Result._uncaught(err);\n        });\n      }\n\n      return Result.ok(result);\n    } catch (err) {\n      logger.warn({ err }, 'Result: unhandled transform error');\n      return Result._uncaught(err);\n    }\n  }\n\n  catch(\n    fn: (err: E) => Result,\n  ): Result;\n  catch(\n    fn: (err: E) => AsyncResult,\n  ): AsyncResult;\n  catch(\n    fn: (err: E) => Promise>,\n  ): AsyncResult;\n  catch(\n    fn: (err: E) => Result | AsyncResult | Promise>,\n  ): Result | AsyncResult {\n    if (this.res.ok) {\n      return this as never;\n    }\n\n    if (this.res._uncaught) {\n      return this as never;\n    }\n\n    try {\n      const result = fn(this.res.err);\n\n      if (result instanceof Promise) {\n        return AsyncResult.wrap(result, (err) => {\n          logger.warn(\n            { err },\n            'Result: unexpected error in async catch handler',\n          );\n          return Result._uncaught(err);\n        });\n      }\n\n      return result;\n    } catch (err) {\n      logger.warn({ err }, 'Result: unexpected error in catch handler');\n      return Result._uncaught(err);\n    }\n  }\n\n  /**\n   * Given a `schema` and `input`, returns a `Result` with `val` being the parsed value.\n   * Additionally, `null` and `undefined` values are converted into Zod error.\n   */\n  static parse<\n    T,\n    Schema extends ZodType,\n    Input = unknown,\n  >(\n    input: unknown,\n    schema: Schema,\n  ): Result>, ZodError> {\n    const parseResult = schema\n      .transform((result, ctx): NonNullable => {\n        if (result === undefined) {\n          ctx.addIssue({\n            code: z.ZodIssueCode.custom,\n            message: `Result can't accept nullish values, but input was parsed by Zod schema to undefined`,\n          });\n          return z.NEVER;\n        }\n\n        if (result === null) {\n          ctx.addIssue({\n            code: z.ZodIssueCode.custom,\n            message: `Result can't accept nullish values, but input was parsed by Zod schema to null`,\n          });\n          return z.NEVER;\n        }\n\n        return result;\n      })\n      .safeParse(input);\n\n    return fromZodResult(parseResult);\n  }\n\n  /**\n   * Given a `schema`, returns a `Result` with `val` being the parsed value.\n   * Additionally, `null` and `undefined` values are converted into Zod error.\n   */\n  parse, Input = unknown>(\n    schema: Schema,\n  ): Result>, E | ZodError> {\n    if (this.res.ok) {\n      return Result.parse(this.res.val, schema);\n    }\n\n    const err = this.res.err;\n\n    if (this.res._uncaught) {\n      return Result._uncaught(err);\n    }\n\n    return Result.err(err);\n  }\n\n  /**\n   * Call `fn` on the `val` if the result is ok.\n   */\n  onValue(fn: (value: T) => void): Result {\n    if (this.res.ok) {\n      try {\n        fn(this.res.val);\n      } catch (err) {\n        return Result._uncaught(err);\n      }\n    }\n\n    return this;\n  }\n\n  /**\n   * Call `fn` on the `err` if the result is err.\n   */\n  onError(fn: (err: E) => void): Result {\n    if (!this.res.ok) {\n      try {\n        fn(this.res.err);\n      } catch (err) {\n        return Result._uncaught(err);\n      }\n    }\n\n    return this;\n  }\n}\n\n/**\n * This class is being used when `Result` methods encounter async code.\n * It isn't meant to be used directly, but exported for usage in type annotations.\n *\n * All the methods resemble `Result` methods, but work asynchronously.\n */\nexport class AsyncResult\n  implements PromiseLike>\n{\n  private constructor(private asyncResult: Promise>) {}\n\n  then>(\n    onfulfilled?:\n      | ((value: Result) => TResult1 | PromiseLike)\n      | null,\n  ): PromiseLike {\n    return this.asyncResult.then(onfulfilled);\n  }\n\n  static ok(val: T): AsyncResult {\n    return new AsyncResult(Promise.resolve(Result.ok(val)));\n  }\n\n  static err(err: NonNullable): AsyncResult {\n    // eslint-disable-next-line promise/no-promise-in-callback\n    return new AsyncResult(Promise.resolve(Result.err(err)));\n  }\n\n  static wrap<\n    T extends Val,\n    E extends Val = Error,\n    EE extends Val = never,\n    Input = unknown,\n  >(\n    promise:\n      | Promise>\n      | Promise>\n      | Promise>,\n    onErr?: (err: NonNullable) => Result,\n  ): AsyncResult {\n    return new AsyncResult(\n      promise\n        .then((value) => {\n          if (value instanceof Result) {\n            return value;\n          }\n\n          if (isZodResult(value)) {\n            return fromZodResult(value);\n          }\n\n          return Result.ok(value);\n        })\n        .catch((err) => {\n          if (onErr) {\n            return onErr(err);\n          }\n          return Result.err(err);\n        }),\n    );\n  }\n\n  static wrapNullable<\n    T extends Val,\n    E extends Val,\n    ErrForNull extends Val,\n    ErrForUndefined extends Val,\n  >(\n    promise: Promise>,\n    errForNull: NonNullable,\n    errForUndefined: NonNullable,\n  ): AsyncResult {\n    return new AsyncResult(\n      promise\n        .then((value) => fromNullable(value, errForNull, errForUndefined))\n        .catch((err) => Result.err(err)),\n    );\n  }\n\n  /**\n   * Returns a discriminated union for type-safe consumption of the result.\n   *\n   *   ```ts\n   *\n   *   const { val, err } = await Result.wrap(readFile('foo.txt')).unwrap();\n   *   expect(val).toBe('foo');\n   *   expect(err).toBeUndefined();\n   *\n   *   ```\n   */\n  unwrap(): Promise> {\n    return this.asyncResult.then>((res) => res.unwrap());\n  }\n\n  /**\n   * Returns a success value or a fallback value.\n   *\n   *   ```ts\n   *\n   *   const val = await Result.wrap(readFile('foo.txt')).unwrapOr('bar');\n   *   expect(val).toBe('bar');\n   *   expect(err).toBeUndefined();\n   *\n   *   ```\n   */\n  unwrapOr(fallback: T): Promise {\n    return this.asyncResult.then((res) => res.unwrapOr(fallback));\n  }\n\n  /**\n   * Returns the ok-value or throw the error.\n   */\n  async unwrapOrThrow(): Promise {\n    const result = await this.asyncResult;\n    return result.unwrapOrThrow();\n  }\n\n  /**\n   * Returns the ok-value or `null`.\n   */\n  unwrapOrNull(): Promise {\n    return this.asyncResult.then((res) => res.unwrapOrNull());\n  }\n\n  /**\n   * Transforms the ok-value, sync or async way.\n   *\n   * Transform functions SHOULD NOT throw.\n   * Uncaught errors are logged and wrapped to `Result._uncaught()`,\n   * which leads to re-throwing them in `unwrap()`.\n   *\n   * Zod `.safeParse()` results are converted automatically.\n   *\n   *   ```ts\n   *\n   *   const { val, err } = await Result.wrap(\n   *     http.getJson('https://api.example.com/data.json')\n   *   )\n   *     .transform(({ body }) => body)\n   *     .unwrap();\n   *\n   *   ```\n   */\n  transform(\n    fn: (value: T) => Result,\n  ): AsyncResult;\n  transform(\n    fn: (value: T) => AsyncResult,\n  ): AsyncResult;\n  transform(\n    fn: (value: T) => SafeParseReturnType>,\n  ): AsyncResult>;\n  transform(\n    fn: (value: T) => Promise>>,\n  ): AsyncResult>;\n  transform(\n    fn: (value: T) => Promise>,\n  ): AsyncResult;\n  transform(\n    fn: (value: T) => Promise>,\n  ): AsyncResult;\n  transform(fn: (value: T) => RawValue): AsyncResult;\n  transform(\n    fn: (\n      value: T,\n    ) =>\n      | Result\n      | AsyncResult\n      | SafeParseReturnType>\n      | Promise>>\n      | Promise>\n      | Promise>\n      | RawValue,\n  ): AsyncResult> {\n    return new AsyncResult(\n      this.asyncResult\n        .then((oldResult) => {\n          const { ok, val: value, err: error } = oldResult.unwrap();\n          if (!ok) {\n            return Result.err(error);\n          }\n\n          try {\n            const result = fn(value);\n\n            if (result instanceof Result) {\n              return result;\n            }\n\n            if (result instanceof AsyncResult) {\n              return result;\n            }\n\n            if (isZodResult(result)) {\n              return fromZodResult(result);\n            }\n\n            if (result instanceof Promise) {\n              return AsyncResult.wrap(result, (err) => {\n                logger.warn(\n                  { err },\n                  'AsyncResult: unhandled async transform error',\n                );\n                return Result._uncaught(err);\n              });\n            }\n\n            return Result.ok(result);\n          } catch (err) {\n            logger.warn({ err }, 'AsyncResult: unhandled transform error');\n            return Result._uncaught(err);\n          }\n        })\n        .catch((err) => {\n          // Happens when `.unwrap()` of `oldResult` throws\n          return Result._uncaught(err);\n        }),\n    );\n  }\n\n  catch(\n    fn: (err: NonNullable) => Result,\n  ): AsyncResult;\n  catch(\n    fn: (err: NonNullable) => AsyncResult,\n  ): AsyncResult;\n  catch(\n    fn: (err: NonNullable) => Promise>,\n  ): AsyncResult;\n  catch(\n    fn: (\n      err: NonNullable,\n    ) => Result | AsyncResult | Promise>,\n  ): AsyncResult {\n    const caughtAsyncResult: Promise> = this.asyncResult.then(\n      (result) =>\n        // eslint-disable-next-line promise/no-nesting\n        result.catch(fn as never),\n    );\n    return AsyncResult.wrap(caughtAsyncResult);\n  }\n\n  /**\n   * Given a `schema`, returns a `Result` with `val` being the parsed value.\n   * Additionally, `null` and `undefined` values are converted into Zod error.\n   */\n  parse, Input = unknown>(\n    schema: Schema,\n  ): AsyncResult>, E | ZodError> {\n    return new AsyncResult(\n      this.asyncResult\n        .then((oldResult) => oldResult.parse(schema))\n        .catch(\n          /* istanbul ignore next: should never happen */\n          (err) => Result._uncaught(err),\n        ),\n    );\n  }\n\n  onValue(fn: (value: T) => void): AsyncResult {\n    return new AsyncResult(\n      this.asyncResult\n        .then((result) => result.onValue(fn))\n        .catch(\n          /* istanbul ignore next: should never happen */\n          (err) => Result._uncaught(err),\n        ),\n    );\n  }\n\n  onError(fn: (err: E) => void): AsyncResult {\n    return new AsyncResult(\n      this.asyncResult\n        .then((result) => result.onError(fn))\n        .catch(\n          /* istanbul ignore next: should never happen */\n          (err) => Result._uncaught(err),\n        ),\n    );\n  }\n}\n", "export type Handler = (\n  parameters: DecoratorParameters,\n) => Promise;\nexport type Method = (this: T, ...args: any[]) => Promise;\nexport type Decorator = (\n  target: U,\n  key: keyof U,\n  descriptor: TypedPropertyDescriptor>,\n) => TypedPropertyDescriptor>;\n\nexport interface DecoratorParameters {\n  /**\n   * Current call arguments.\n   */\n  args: U;\n\n  /**\n   * A callback to call the decorated method with the current arguments.\n   */\n  callback(this: void): unknown;\n\n  /**\n   * Current call context.\n   */\n  instance: T;\n\n  /**\n   * The decorated method name.\n   */\n  methodName?: string;\n}\n\n/**\n * Applies decorating function to intercept decorated method calls.\n * @param fn - The decorating function.\n */\nexport function decorate(fn: Handler): Decorator {\n  const result: Decorator = (\n    target,\n    key,\n    descriptor = {\n      enumerable: true,\n      configurable: true,\n      writable: true,\n      ...Object.getOwnPropertyDescriptor(target, key),\n    },\n  ) => {\n    const { value } = descriptor;\n\n    return Object.assign(descriptor, {\n      value(this: T, ...args: any[]) {\n        return fn({\n          args,\n          instance: this,\n          callback: () => value?.apply(this, args),\n          methodName: value?.name,\n        });\n      },\n    });\n  };\n\n  return result;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.E_CANCELED = exports.E_ALREADY_LOCKED = exports.E_TIMEOUT = void 0;\nexports.E_TIMEOUT = new Error('timeout while waiting for mutex to become available');\nexports.E_ALREADY_LOCKED = new Error('mutex already locked');\nexports.E_CANCELED = new Error('request for lock canceled');\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar errors_1 = require(\"./errors\");\nvar Semaphore = /** @class */ (function () {\n    function Semaphore(_value, _cancelError) {\n        if (_cancelError === void 0) { _cancelError = errors_1.E_CANCELED; }\n        this._value = _value;\n        this._cancelError = _cancelError;\n        this._queue = [];\n        this._weightedWaiters = [];\n    }\n    Semaphore.prototype.acquire = function (weight, priority) {\n        var _this = this;\n        if (weight === void 0) { weight = 1; }\n        if (priority === void 0) { priority = 0; }\n        if (weight <= 0)\n            throw new Error(\"invalid weight \".concat(weight, \": must be positive\"));\n        return new Promise(function (resolve, reject) {\n            var task = { resolve: resolve, reject: reject, weight: weight, priority: priority };\n            var i = findIndexFromEnd(_this._queue, function (other) { return priority <= other.priority; });\n            if (i === -1 && weight <= _this._value) {\n                // Needs immediate dispatch, skip the queue\n                _this._dispatchItem(task);\n            }\n            else {\n                _this._queue.splice(i + 1, 0, task);\n            }\n        });\n    };\n    Semaphore.prototype.runExclusive = function (callback_1) {\n        return tslib_1.__awaiter(this, arguments, void 0, function (callback, weight, priority) {\n            var _a, value, release;\n            if (weight === void 0) { weight = 1; }\n            if (priority === void 0) { priority = 0; }\n            return tslib_1.__generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.acquire(weight, priority)];\n                    case 1:\n                        _a = _b.sent(), value = _a[0], release = _a[1];\n                        _b.label = 2;\n                    case 2:\n                        _b.trys.push([2, , 4, 5]);\n                        return [4 /*yield*/, callback(value)];\n                    case 3: return [2 /*return*/, _b.sent()];\n                    case 4:\n                        release();\n                        return [7 /*endfinally*/];\n                    case 5: return [2 /*return*/];\n                }\n            });\n        });\n    };\n    Semaphore.prototype.waitForUnlock = function (weight, priority) {\n        var _this = this;\n        if (weight === void 0) { weight = 1; }\n        if (priority === void 0) { priority = 0; }\n        if (weight <= 0)\n            throw new Error(\"invalid weight \".concat(weight, \": must be positive\"));\n        if (this._couldLockImmediately(weight, priority)) {\n            return Promise.resolve();\n        }\n        else {\n            return new Promise(function (resolve) {\n                if (!_this._weightedWaiters[weight - 1])\n                    _this._weightedWaiters[weight - 1] = [];\n                insertSorted(_this._weightedWaiters[weight - 1], { resolve: resolve, priority: priority });\n            });\n        }\n    };\n    Semaphore.prototype.isLocked = function () {\n        return this._value <= 0;\n    };\n    Semaphore.prototype.getValue = function () {\n        return this._value;\n    };\n    Semaphore.prototype.setValue = function (value) {\n        this._value = value;\n        this._dispatchQueue();\n    };\n    Semaphore.prototype.release = function (weight) {\n        if (weight === void 0) { weight = 1; }\n        if (weight <= 0)\n            throw new Error(\"invalid weight \".concat(weight, \": must be positive\"));\n        this._value += weight;\n        this._dispatchQueue();\n    };\n    Semaphore.prototype.cancel = function () {\n        var _this = this;\n        this._queue.forEach(function (entry) { return entry.reject(_this._cancelError); });\n        this._queue = [];\n    };\n    Semaphore.prototype._dispatchQueue = function () {\n        this._drainUnlockWaiters();\n        while (this._queue.length > 0 && this._queue[0].weight <= this._value) {\n            this._dispatchItem(this._queue.shift());\n            this._drainUnlockWaiters();\n        }\n    };\n    Semaphore.prototype._dispatchItem = function (item) {\n        var previousValue = this._value;\n        this._value -= item.weight;\n        item.resolve([previousValue, this._newReleaser(item.weight)]);\n    };\n    Semaphore.prototype._newReleaser = function (weight) {\n        var _this = this;\n        var called = false;\n        return function () {\n            if (called)\n                return;\n            called = true;\n            _this.release(weight);\n        };\n    };\n    Semaphore.prototype._drainUnlockWaiters = function () {\n        if (this._queue.length === 0) {\n            for (var weight = this._value; weight > 0; weight--) {\n                var waiters = this._weightedWaiters[weight - 1];\n                if (!waiters)\n                    continue;\n                waiters.forEach(function (waiter) { return waiter.resolve(); });\n                this._weightedWaiters[weight - 1] = [];\n            }\n        }\n        else {\n            var queuedPriority_1 = this._queue[0].priority;\n            for (var weight = this._value; weight > 0; weight--) {\n                var waiters = this._weightedWaiters[weight - 1];\n                if (!waiters)\n                    continue;\n                var i = waiters.findIndex(function (waiter) { return waiter.priority <= queuedPriority_1; });\n                (i === -1 ? waiters : waiters.splice(0, i))\n                    .forEach((function (waiter) { return waiter.resolve(); }));\n            }\n        }\n    };\n    Semaphore.prototype._couldLockImmediately = function (weight, priority) {\n        return (this._queue.length === 0 || this._queue[0].priority < priority) &&\n            weight <= this._value;\n    };\n    return Semaphore;\n}());\nfunction insertSorted(a, v) {\n    var i = findIndexFromEnd(a, function (other) { return v.priority <= other.priority; });\n    a.splice(i + 1, 0, v);\n}\nfunction findIndexFromEnd(a, predicate) {\n    for (var i = a.length - 1; i >= 0; i--) {\n        if (predicate(a[i])) {\n            return i;\n        }\n    }\n    return -1;\n}\nexports.default = Semaphore;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar Semaphore_1 = require(\"./Semaphore\");\nvar Mutex = /** @class */ (function () {\n    function Mutex(cancelError) {\n        this._semaphore = new Semaphore_1.default(1, cancelError);\n    }\n    Mutex.prototype.acquire = function () {\n        return tslib_1.__awaiter(this, arguments, void 0, function (priority) {\n            var _a, releaser;\n            if (priority === void 0) { priority = 0; }\n            return tslib_1.__generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this._semaphore.acquire(1, priority)];\n                    case 1:\n                        _a = _b.sent(), releaser = _a[1];\n                        return [2 /*return*/, releaser];\n                }\n            });\n        });\n    };\n    Mutex.prototype.runExclusive = function (callback, priority) {\n        if (priority === void 0) { priority = 0; }\n        return this._semaphore.runExclusive(function () { return callback(); }, 1, priority);\n    };\n    Mutex.prototype.isLocked = function () {\n        return this._semaphore.isLocked();\n    };\n    Mutex.prototype.waitForUnlock = function (priority) {\n        if (priority === void 0) { priority = 0; }\n        return this._semaphore.waitForUnlock(1, priority);\n    };\n    Mutex.prototype.release = function () {\n        if (this._semaphore.isLocked())\n            this._semaphore.release();\n    };\n    Mutex.prototype.cancel = function () {\n        return this._semaphore.cancel();\n    };\n    return Mutex;\n}());\nexports.default = Mutex;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withTimeout = void 0;\nvar tslib_1 = require(\"tslib\");\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar errors_1 = require(\"./errors\");\nfunction withTimeout(sync, timeout, timeoutError) {\n    var _this = this;\n    if (timeoutError === void 0) { timeoutError = errors_1.E_TIMEOUT; }\n    return {\n        acquire: function (weightOrPriority, priority) {\n            var weight;\n            if (isSemaphore(sync)) {\n                weight = weightOrPriority;\n            }\n            else {\n                weight = undefined;\n                priority = weightOrPriority;\n            }\n            if (weight !== undefined && weight <= 0) {\n                throw new Error(\"invalid weight \".concat(weight, \": must be positive\"));\n            }\n            return new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n                var isTimeout, handle, ticket, release, e_1;\n                return tslib_1.__generator(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            isTimeout = false;\n                            handle = setTimeout(function () {\n                                isTimeout = true;\n                                reject(timeoutError);\n                            }, timeout);\n                            _a.label = 1;\n                        case 1:\n                            _a.trys.push([1, 3, , 4]);\n                            return [4 /*yield*/, (isSemaphore(sync)\n                                    ? sync.acquire(weight, priority)\n                                    : sync.acquire(priority))];\n                        case 2:\n                            ticket = _a.sent();\n                            if (isTimeout) {\n                                release = Array.isArray(ticket) ? ticket[1] : ticket;\n                                release();\n                            }\n                            else {\n                                clearTimeout(handle);\n                                resolve(ticket);\n                            }\n                            return [3 /*break*/, 4];\n                        case 3:\n                            e_1 = _a.sent();\n                            if (!isTimeout) {\n                                clearTimeout(handle);\n                                reject(e_1);\n                            }\n                            return [3 /*break*/, 4];\n                        case 4: return [2 /*return*/];\n                    }\n                });\n            }); });\n        },\n        runExclusive: function (callback, weight, priority) {\n            return tslib_1.__awaiter(this, void 0, void 0, function () {\n                var release, ticket;\n                return tslib_1.__generator(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            release = function () { return undefined; };\n                            _a.label = 1;\n                        case 1:\n                            _a.trys.push([1, , 7, 8]);\n                            return [4 /*yield*/, this.acquire(weight, priority)];\n                        case 2:\n                            ticket = _a.sent();\n                            if (!Array.isArray(ticket)) return [3 /*break*/, 4];\n                            release = ticket[1];\n                            return [4 /*yield*/, callback(ticket[0])];\n                        case 3: return [2 /*return*/, _a.sent()];\n                        case 4:\n                            release = ticket;\n                            return [4 /*yield*/, callback()];\n                        case 5: return [2 /*return*/, _a.sent()];\n                        case 6: return [3 /*break*/, 8];\n                        case 7:\n                            release();\n                            return [7 /*endfinally*/];\n                        case 8: return [2 /*return*/];\n                    }\n                });\n            });\n        },\n        release: function (weight) {\n            sync.release(weight);\n        },\n        cancel: function () {\n            return sync.cancel();\n        },\n        waitForUnlock: function (weightOrPriority, priority) {\n            var weight;\n            if (isSemaphore(sync)) {\n                weight = weightOrPriority;\n            }\n            else {\n                weight = undefined;\n                priority = weightOrPriority;\n            }\n            if (weight !== undefined && weight <= 0) {\n                throw new Error(\"invalid weight \".concat(weight, \": must be positive\"));\n            }\n            return new Promise(function (resolve, reject) {\n                var handle = setTimeout(function () { return reject(timeoutError); }, timeout);\n                (isSemaphore(sync)\n                    ? sync.waitForUnlock(weight, priority)\n                    : sync.waitForUnlock(priority)).then(function () {\n                    clearTimeout(handle);\n                    resolve();\n                });\n            });\n        },\n        isLocked: function () { return sync.isLocked(); },\n        getValue: function () { return sync.getValue(); },\n        setValue: function (value) { return sync.setValue(value); },\n    };\n}\nexports.withTimeout = withTimeout;\nfunction isSemaphore(sync) {\n    return sync.getValue !== undefined;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryAcquire = void 0;\nvar errors_1 = require(\"./errors\");\nvar withTimeout_1 = require(\"./withTimeout\");\n// eslint-disable-next-lisne @typescript-eslint/explicit-module-boundary-types\nfunction tryAcquire(sync, alreadyAcquiredError) {\n    if (alreadyAcquiredError === void 0) { alreadyAcquiredError = errors_1.E_ALREADY_LOCKED; }\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (0, withTimeout_1.withTimeout)(sync, 0, alreadyAcquiredError);\n}\nexports.tryAcquire = tryAcquire;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryAcquire = exports.withTimeout = exports.Semaphore = exports.Mutex = void 0;\nvar tslib_1 = require(\"tslib\");\nvar Mutex_1 = require(\"./Mutex\");\nObject.defineProperty(exports, \"Mutex\", { enumerable: true, get: function () { return Mutex_1.default; } });\nvar Semaphore_1 = require(\"./Semaphore\");\nObject.defineProperty(exports, \"Semaphore\", { enumerable: true, get: function () { return Semaphore_1.default; } });\nvar withTimeout_1 = require(\"./withTimeout\");\nObject.defineProperty(exports, \"withTimeout\", { enumerable: true, get: function () { return withTimeout_1.withTimeout; } });\nvar tryAcquire_1 = require(\"./tryAcquire\");\nObject.defineProperty(exports, \"tryAcquire\", { enumerable: true, get: function () { return tryAcquire_1.tryAcquire; } });\ntslib_1.__exportStar(require(\"./errors\"), exports);\n", "import { Mutex, type MutexInterface, withTimeout } from 'async-mutex';\n\nconst DEFAULT_NAMESPACE = 'default';\nconst mutexes: Record> = {};\n\nexport function getMutex(\n  key: string,\n  namespace: string = DEFAULT_NAMESPACE,\n): MutexInterface {\n  mutexes[namespace] ??= {};\n  // create a new mutex if it doesn't exist with a timeout of 2 minutes\n  mutexes[namespace][key] ??= withTimeout(new Mutex(), 1000 * 60 * 2);\n  return mutexes[namespace][key];\n}\n\nexport function acquireLock(\n  key: string,\n  namespace: string = DEFAULT_NAMESPACE,\n): Promise {\n  return getMutex(key, namespace).acquire();\n}\n", "import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport type { Decorator } from '../../decorator';\nimport { decorate } from '../../decorator';\nimport { acquireLock } from '../../mutex';\nimport type { DecoratorCachedRecord, PackageCacheNamespace } from './types';\nimport * as packageCache from '.';\n\ntype HashFunction = (...args: T) => string;\ntype NamespaceFunction = (\n  ...args: T\n) => PackageCacheNamespace;\ntype BooleanFunction = (...args: T) => boolean;\n\n/**\n * The cache decorator parameters.\n */\ninterface CacheParameters {\n  /**\n   * The cache namespace\n   * Either a string or a hash function that generates a string\n   */\n  namespace: PackageCacheNamespace | NamespaceFunction;\n\n  /**\n   * The cache key\n   * Either a string or a hash function that generates a string\n   */\n  key: string | HashFunction;\n\n  /**\n   * A function that returns true if a result is cacheable\n   * Used to prevent caching of private, sensitive, results\n   */\n  cacheable?: BooleanFunction;\n\n  /**\n   * The TTL (or expiry) of the key in minutes\n   */\n  ttlMinutes?: number;\n}\n\n/**\n * caches the result of a decorated method.\n */\nexport function cache({\n  namespace,\n  key,\n  cacheable = () => true,\n  ttlMinutes = 30,\n}: CacheParameters): Decorator {\n  return decorate(async ({ args, instance, callback, methodName }) => {\n    const cachePrivatePackages = GlobalConfig.get(\n      'cachePrivatePackages',\n      false,\n    );\n    const isCacheable = cachePrivatePackages || cacheable.apply(instance, args);\n    if (!isCacheable) {\n      return callback();\n    }\n\n    let finalNamespace: PackageCacheNamespace | undefined;\n    if (is.string(namespace)) {\n      finalNamespace = namespace;\n    } else if (is.function_(namespace)) {\n      finalNamespace = namespace.apply(instance, args);\n    }\n\n    let finalKey: string | undefined;\n    if (is.string(key)) {\n      finalKey = key;\n    } else if (is.function_(key)) {\n      finalKey = key.apply(instance, args);\n    }\n\n    // istanbul ignore if\n    if (!finalNamespace || !finalKey) {\n      return callback();\n    }\n\n    finalKey = `cache-decorator:${finalKey}`;\n\n    // prevent concurrent processing and cache writes\n    const releaseLock = await acquireLock(finalKey, finalNamespace);\n\n    try {\n      const oldRecord = await packageCache.get(\n        finalNamespace,\n        finalKey,\n      );\n\n      const ttlOverride = getTtlOverride(finalNamespace);\n      const softTtl = ttlOverride ?? ttlMinutes;\n\n      const cacheHardTtlMinutes = GlobalConfig.get(\n        'cacheHardTtlMinutes',\n        7 * 24 * 60,\n      );\n      let hardTtl = softTtl;\n      if (methodName === 'getReleases' || methodName === 'getDigest') {\n        hardTtl = Math.max(softTtl, cacheHardTtlMinutes);\n      }\n\n      let oldData: unknown;\n      if (oldRecord) {\n        const now = DateTime.local();\n        const cachedAt = DateTime.fromISO(oldRecord.cachedAt);\n\n        const softDeadline = cachedAt.plus({ minutes: softTtl });\n        if (now < softDeadline) {\n          return oldRecord.value;\n        }\n\n        const hardDeadline = cachedAt.plus({ minutes: hardTtl });\n        if (now < hardDeadline) {\n          oldData = oldRecord.value;\n        }\n      }\n\n      let newData: unknown;\n      if (oldData) {\n        try {\n          newData = (await callback()) as T | undefined;\n        } catch (err) {\n          logger.debug(\n            { err },\n            'Package cache decorator: callback error, returning old data',\n          );\n          return oldData;\n        }\n      } else {\n        newData = (await callback()) as T | undefined;\n      }\n\n      if (!is.undefined(newData)) {\n        const newRecord: DecoratorCachedRecord = {\n          cachedAt: DateTime.local().toISO(),\n          value: newData,\n        };\n        await packageCache.set(finalNamespace, finalKey, newRecord, hardTtl);\n      }\n\n      return newData;\n    } finally {\n      releaseLock();\n    }\n  });\n}\n\nexport function getTtlOverride(namespace: string): number | undefined {\n  const ttl: unknown = GlobalConfig.get('cacheTtlOverride', {})[namespace];\n  if (is.number(ttl)) {\n    return ttl;\n  }\n  return undefined;\n}\n", "/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it\u2019s part of a tag or an\n\t\t// unquoted attribute value. We\u2019re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer \u2264 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// \u201COtherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.\u201D\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they\u2019re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we\u2019re still here, `if ($7)` is implied; it\u2019s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = /** @class */ (function () {\n    function Node(parentNode, range) {\n        if (parentNode === void 0) { parentNode = null; }\n        this.parentNode = parentNode;\n        this.childNodes = [];\n        Object.defineProperty(this, 'range', {\n            enumerable: false,\n            writable: true,\n            configurable: true,\n            value: range !== null && range !== void 0 ? range : [-1, -1]\n        });\n    }\n    /**\n     * Remove current node\n     */\n    Node.prototype.remove = function () {\n        var _this = this;\n        if (this.parentNode) {\n            var children = this.parentNode.childNodes;\n            this.parentNode.childNodes = children.filter(function (child) {\n                return _this !== child;\n            });\n            this.parentNode = null;\n        }\n        return this;\n    };\n    Object.defineProperty(Node.prototype, \"innerText\", {\n        get: function () {\n            return this.rawText;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Node.prototype, \"textContent\", {\n        get: function () {\n            return (0, he_1.decode)(this.rawText);\n        },\n        set: function (val) {\n            this.rawText = (0, he_1.encode)(val);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return Node;\n}());\nexports.default = Node;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeType;\n(function (NodeType) {\n    NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n    NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n    NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n", "\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\nvar CommentNode = /** @class */ (function (_super) {\n    __extends(CommentNode, _super);\n    function CommentNode(rawText, parentNode, range, rawTagName) {\n        if (parentNode === void 0) { parentNode = null; }\n        if (rawTagName === void 0) { rawTagName = '!--'; }\n        var _this = _super.call(this, parentNode, range) || this;\n        _this.rawText = rawText;\n        _this.rawTagName = rawTagName;\n        /**\n         * Node Type declaration.\n         * @type {Number}\n         */\n        _this.nodeType = type_1.default.COMMENT_NODE;\n        return _this;\n    }\n    CommentNode.prototype.clone = function () {\n        return new CommentNode(this.rawText, null, undefined, this.rawTagName);\n    };\n    Object.defineProperty(CommentNode.prototype, \"text\", {\n        /**\n         * Get unescaped text value of current node and its children.\n         * @return {string} text content\n         */\n        get: function () {\n            return this.rawText;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    CommentNode.prototype.toString = function () {\n        return \"\");\n    };\n    return CommentNode;\n}(node_1.default));\nexports.default = CommentNode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n    /** Type for the root element of a document */\n    ElementType[\"Root\"] = \"root\";\n    /** Type for Text */\n    ElementType[\"Text\"] = \"text\";\n    /** Type for  */\n    ElementType[\"Directive\"] = \"directive\";\n    /** Type for  */\n    ElementType[\"Comment\"] = \"comment\";\n    /** Type for